summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ABOUT-NLS1770
-rw-r--r--AUTHORS13
-rw-r--r--ChangeLog1623
-rw-r--r--Makefile.DOS173
-rw-r--r--Makefile.am58
-rw-r--r--Makefile.ami103
-rw-r--r--Makefile.in353
-rw-r--r--NEWS178
-rw-r--r--NMakefile167
-rw-r--r--README61
-rw-r--r--README.Amiga27
-rw-r--r--README.DOS75
-rw-r--r--README.OS25
-rw-r--r--README.VMS (renamed from readme.vms)174
-rw-r--r--README.W32338
-rw-r--r--README.customs13
-rw-r--r--SMakefile210
-rw-r--r--acinclude.m419
-rw-r--r--aclocal.m4298
-rw-r--r--alloca.c2
-rw-r--r--amiga.c91
-rw-r--r--amiga.h3
-rw-r--r--ar.c58
-rw-r--r--arscan.c595
-rwxr-xr-xbuild.sh.in9
-rw-r--r--build_w32.bat206
-rw-r--r--commands.c178
-rw-r--r--commands.h27
-rw-r--r--config.ami81
-rw-r--r--config.h-vms81
-rw-r--r--config.h.W32347
-rw-r--r--config.h.in76
-rw-r--r--config/ChangeLog8
-rw-r--r--config/Makefile.am10
-rw-r--r--config/Makefile.in81
-rw-r--r--config/codeset.m423
-rwxr-xr-xconfig/compile228
-rw-r--r--config/config.guess410
-rwxr-xr-xconfig/config.rpath306
-rw-r--r--config/config.sub252
-rwxr-xr-xconfig/depcomp190
-rw-r--r--config/dospaths.m425
-rw-r--r--config/gettext.m4312
-rw-r--r--config/glibc21.m432
-rw-r--r--config/iconv.m4151
-rwxr-xr-xconfig/install-sh29
-rw-r--r--config/intdiv0.m472
-rw-r--r--config/intlmacosx.m451
-rw-r--r--config/intmax.m432
-rw-r--r--config/inttypes-pri.m432
-rw-r--r--config/inttypes.m427
-rw-r--r--config/inttypes_h.m428
-rw-r--r--config/isc-posix.m426
-rw-r--r--config/lcmessage.m432
-rw-r--r--config/lib-ld.m428
-rw-r--r--config/lib-link.m4381
-rw-r--r--config/lib-prefix.m491
-rw-r--r--config/longdouble.m430
-rw-r--r--config/longlong.m425
-rwxr-xr-xconfig/mdate-sh30
-rwxr-xr-xconfig/missing53
-rwxr-xr-xconfig/mkinstalldirs111
-rw-r--r--config/nls.m439
-rw-r--r--config/po.m4133
-rw-r--r--config/printf-posix.m446
-rw-r--r--config/progtest.m423
-rw-r--r--config/signed.m419
-rw-r--r--config/size_max.m461
-rw-r--r--config/stdint_h.m428
-rw-r--r--config/texinfo.tex1769
-rw-r--r--config/uintmax_t.m432
-rw-r--r--config/ulonglong.m425
-rw-r--r--config/wchar_t.m422
-rw-r--r--config/wint_t.m422
-rw-r--r--config/xsize.m414
-rw-r--r--configh.dos42
-rwxr-xr-xconfigure3013
-rw-r--r--configure.ac519
-rw-r--r--configure.bat3
-rw-r--r--configure.in478
-rw-r--r--debug.h3
-rw-r--r--default.c112
-rw-r--r--dep.h45
-rw-r--r--dir.c537
-rw-r--r--doc/Makefile.am3
-rw-r--r--doc/Makefile.in117
-rw-r--r--doc/fdl.texi3
-rw-r--r--doc/make-stds.texi43
-rw-r--r--doc/make.info322
-rw-r--r--doc/make.info-11204
-rw-r--r--doc/make.info-21483
-rw-r--r--doc/make.texi1652
-rw-r--r--doc/stamp-vti8
-rw-r--r--doc/version.texi8
-rw-r--r--dosbuild.bat8
-rw-r--r--expand.c299
-rw-r--r--file.c278
-rw-r--r--filedef.h98
-rw-r--r--function.c1132
-rw-r--r--getloadavg.c12
-rw-r--r--getopt.c26
-rw-r--r--getopt.h4
-rw-r--r--getopt1.c8
-rw-r--r--gettext.h3
-rw-r--r--glob/Makefile.in100
-rw-r--r--glob/glob.h2
-rw-r--r--gmk-default.h28
-rw-r--r--gmk-default.scm53
-rw-r--r--gnumake.h79
-rw-r--r--guile.c146
-rw-r--r--hash.c12
-rw-r--r--hash.h12
-rw-r--r--implicit.c127
-rw-r--r--job.c2124
-rw-r--r--job.h116
-rw-r--r--load.c240
-rw-r--r--loadapi.c61
-rw-r--r--main.c2500
-rw-r--r--make.1204
-rw-r--r--make.lnk2
-rw-r--r--make_msvc_net2003.vcproj22
-rw-r--r--makefile.com7
-rw-r--r--makefile.vms84
-rw-r--r--makeint.h (renamed from make.h)185
-rw-r--r--misc.c435
-rw-r--r--output.c762
-rw-r--r--output.h51
-rw-r--r--po/ChangeLog15
-rw-r--r--po/LINGUAS4
-rw-r--r--po/Makefile.in.in152
-rw-r--r--po/Makevars3
-rw-r--r--po/POTFILES.in7
-rw-r--r--po/Rules-quot2
-rw-r--r--po/be.gmobin11553 -> 7574 bytes
-rw-r--r--po/be.po1480
-rw-r--r--po/cs.gmobin0 -> 46061 bytes
-rw-r--r--po/cs.po2301
-rw-r--r--po/da.gmobin28868 -> 25052 bytes
-rw-r--r--po/da.po2158
-rw-r--r--po/de.gmobin26479 -> 15562 bytes
-rw-r--r--po/de.po1565
-rw-r--r--po/es.gmobin33141 -> 26931 bytes
-rw-r--r--po/es.po1861
-rw-r--r--po/fi.gmobin31391 -> 20417 bytes
-rw-r--r--po/fi.po1572
-rw-r--r--po/fr.gmobin41640 -> 26484 bytes
-rw-r--r--po/fr.po2078
-rw-r--r--po/ga.gmobin33028 -> 20848 bytes
-rw-r--r--po/ga.po1606
-rw-r--r--po/gl.gmobin30513 -> 23719 bytes
-rw-r--r--po/gl.po2315
-rw-r--r--po/he.gmobin21557 -> 11862 bytes
-rw-r--r--po/he.po1566
-rw-r--r--po/hr.gmobin29316 -> 26062 bytes
-rw-r--r--po/hr.po2435
-rw-r--r--po/id.gmobin32511 -> 20627 bytes
-rw-r--r--po/id.po1593
-rw-r--r--po/it.gmobin32636 -> 45617 bytes
-rw-r--r--po/it.po2120
-rw-r--r--po/ja.gmobin29402 -> 25372 bytes
-rw-r--r--po/ja.po1869
-rw-r--r--po/ko.gmobin22180 -> 11938 bytes
-rw-r--r--po/ko.po1562
-rw-r--r--po/lt.gmobin12636 -> 7754 bytes
-rw-r--r--po/lt.po1521
-rw-r--r--po/make.pot1322
-rw-r--r--po/nl.gmobin40708 -> 44804 bytes
-rw-r--r--po/nl.po1537
-rw-r--r--po/pl.gmobin40216 -> 44940 bytes
-rw-r--r--po/pl.po2015
-rw-r--r--po/pt_BR.gmobin29710 -> 25786 bytes
-rw-r--r--po/pt_BR.po1971
-rw-r--r--po/ru.gmobin51592 -> 57185 bytes
-rw-r--r--po/ru.po1699
-rw-r--r--po/sv.gmobin31469 -> 43854 bytes
-rw-r--r--po/sv.po2186
-rw-r--r--po/tr.gmobin33127 -> 21193 bytes
-rw-r--r--po/tr.po1594
-rw-r--r--po/uk.gmobin17336 -> 56603 bytes
-rw-r--r--po/uk.po2448
-rw-r--r--po/vi.gmobin37241 -> 47627 bytes
-rw-r--r--po/vi.po2275
-rw-r--r--po/zh_CN.gmobin31112 -> 19609 bytes
-rw-r--r--po/zh_CN.po1603
-rw-r--r--read.c1474
-rw-r--r--remake.c802
-rw-r--r--remote-cstms.c71
-rw-r--r--remote-stub.c6
-rw-r--r--rule.c225
-rw-r--r--rule.h18
-rw-r--r--signame.c24
-rw-r--r--strcache.c197
-rw-r--r--subproc.bat3
-rw-r--r--tests/ChangeLog364
-rw-r--r--tests/NEWS5
-rw-r--r--tests/README7
-rw-r--r--tests/guile.supp31
-rwxr-xr-xtests/mkshadow8
-rw-r--r--[-rwxr-xr-x]tests/run_make_tests.pl88
-rw-r--r--tests/scripts/features/archives95
-rw-r--r--tests/scripts/features/default_names49
-rw-r--r--tests/scripts/features/double_colon9
-rw-r--r--tests/scripts/features/errors19
-rw-r--r--tests/scripts/features/escape30
-rw-r--r--tests/scripts/features/include12
-rw-r--r--tests/scripts/features/jobserver61
-rw-r--r--tests/scripts/features/load102
-rw-r--r--tests/scripts/features/loadapi112
-rw-r--r--tests/scripts/features/mult_rules2
-rw-r--r--tests/scripts/features/output-sync334
-rw-r--r--tests/scripts/features/parallelism104
-rw-r--r--tests/scripts/features/patspecific_vars10
-rw-r--r--tests/scripts/features/patternrules5
-rw-r--r--tests/scripts/features/recursion16
-rw-r--r--tests/scripts/features/reinvoke17
-rw-r--r--tests/scripts/features/rule_glob37
-rw-r--r--tests/scripts/features/se_explicit17
-rw-r--r--tests/scripts/features/se_implicit34
-rw-r--r--tests/scripts/features/shell_assignment65
-rw-r--r--tests/scripts/features/targetvars12
-rw-r--r--tests/scripts/features/utf811
-rw-r--r--tests/scripts/features/varnesting47
-rw-r--r--tests/scripts/features/vpath2
-rw-r--r--tests/scripts/features/vpath365
-rw-r--r--tests/scripts/features/vpathgpath2
-rw-r--r--tests/scripts/features/vpathplus1
-rw-r--r--tests/scripts/functions/call15
-rw-r--r--tests/scripts/functions/file101
-rw-r--r--tests/scripts/functions/filter-out32
-rw-r--r--tests/scripts/functions/foreach6
-rw-r--r--tests/scripts/functions/guile99
-rw-r--r--tests/scripts/functions/sort98
-rw-r--r--tests/scripts/functions/wildcard12
-rw-r--r--tests/scripts/functions/word26
-rw-r--r--tests/scripts/misc/bs-nl129
-rw-r--r--tests/scripts/misc/fopen-fail15
-rw-r--r--tests/scripts/misc/general32
-rw-r--r--tests/scripts/options/dash-B4
-rw-r--r--tests/scripts/options/dash-C8
-rw-r--r--tests/scripts/options/dash-I4
-rw-r--r--tests/scripts/options/dash-W4
-rw-r--r--tests/scripts/options/dash-k11
-rw-r--r--tests/scripts/options/dash-n80
-rw-r--r--tests/scripts/options/eval10
-rw-r--r--tests/scripts/options/print-directory33
-rw-r--r--tests/scripts/options/symlinks10
-rw-r--r--tests/scripts/options/warn-undefined-variables4
-rw-r--r--tests/scripts/targets/DEFAULT4
-rw-r--r--tests/scripts/targets/INTERMEDIATE4
-rw-r--r--tests/scripts/targets/ONESHELL19
-rw-r--r--tests/scripts/targets/POSIX28
-rw-r--r--tests/scripts/targets/SECONDARY11
-rw-r--r--tests/scripts/variables/DEFAULT_GOAL2
-rw-r--r--tests/scripts/variables/GNUMAKEFLAGS42
-rw-r--r--tests/scripts/variables/LIBPATTERNS2
-rw-r--r--tests/scripts/variables/MAKE4
-rw-r--r--tests/scripts/variables/MAKEFLAGS26
-rw-r--r--tests/scripts/variables/MAKE_RESTARTS4
-rw-r--r--tests/scripts/variables/SHELL19
-rw-r--r--tests/scripts/variables/define56
-rw-r--r--tests/scripts/variables/flavors20
-rw-r--r--tests/scripts/variables/private44
-rw-r--r--tests/scripts/variables/special2
-rw-r--r--tests/test_driver.pl355
-rw-r--r--variable.c702
-rw-r--r--variable.h83
-rw-r--r--version.c6
-rw-r--r--vmsdir.h5
-rw-r--r--vmsfunctions.c5
-rw-r--r--vmsify.c3
-rw-r--r--vmsjobs.c732
-rw-r--r--vpath.c237
-rw-r--r--w32/.deps/libw32_a-misc.Po1
-rw-r--r--w32/.deps/libw32_a-pathstuff.Po1
-rw-r--r--w32/.deps/libw32_a-sub_proc.Po1
-rw-r--r--w32/.deps/libw32_a-w32err.Po1
-rw-r--r--w32/Makefile536
-rw-r--r--w32/Makefile.am5
-rw-r--r--w32/Makefile.in189
-rw-r--r--w32/compat/dirent.c3
-rw-r--r--w32/compat/posixfcn.c456
-rw-r--r--w32/include/dirent.h3
-rw-r--r--w32/include/dlfcn.h29
-rw-r--r--w32/include/pathstuff.h3
-rw-r--r--w32/include/sub_proc.h25
-rw-r--r--w32/include/w32err.h5
-rw-r--r--w32/pathstuff.c5
-rw-r--r--w32/subproc/NMakefile7
-rw-r--r--w32/subproc/build.bat21
-rw-r--r--w32/subproc/misc.c3
-rw-r--r--w32/subproc/proc.h3
-rw-r--r--w32/subproc/sub_proc.c382
-rw-r--r--w32/subproc/w32err.c33
293 files changed, 54566 insertions, 34858 deletions
diff --git a/ABOUT-NLS b/ABOUT-NLS
index 2f50c66..b1de1b6 100644
--- a/ABOUT-NLS
+++ b/ABOUT-NLS
@@ -1,10 +1,11 @@
-Notes on the Free Translation Project
-*************************************
+1 Notes on the Free Translation Project
+***************************************
Free software is going international! The Free Translation Project is
a way to get maintainers of free software, translators, and users all
-together, so that will gradually become able to speak many languages.
-A few packages already provide translations for their messages.
+together, so that free software will gradually become able to speak many
+languages. A few packages already provide translations for their
+messages.
If you found this `ABOUT-NLS' file inside a distribution, you may
assume that the distributed package does use GNU `gettext' internally,
@@ -15,38 +16,10 @@ this package with messages translated.
Installers will find here some useful hints. These notes also
explain how users should proceed for getting the programs to use the
available translations. They tell how people wanting to contribute and
-work at translations should contact the appropriate team.
+work on translations can contact the appropriate team.
- When reporting bugs in the `intl/' directory or bugs which may be
-related to internationalization, you should tell about the version of
-`gettext' which is used. The information can be found in the
-`intl/VERSION' file, in internationalized packages.
-
-Quick configuration advice
-==========================
-
-If you want to exploit the full power of internationalization, you
-should configure it using
-
- ./configure --with-included-gettext
-
-to force usage of internationalizing routines provided within this
-package, despite the existence of internationalizing capabilities in the
-operating system where this package is being installed. So far, only
-the `gettext' implementation in the GNU C library version 2 provides as
-many features (such as locale alias, message inheritance, automatic
-charset conversion or plural form handling) as the implementation here.
-It is also not possible to offer this additional functionality on top
-of a `catgets' implementation. Future versions of GNU `gettext' will
-very likely convey even more functionality. So it might be a good idea
-to change to GNU `gettext' as soon as possible.
-
- So you need _not_ provide this option if you are using GNU libc 2 or
-you have installed a recent copy of the GNU gettext package with the
-included `libintl'.
-
-INSTALL Matters
-===============
+1.1 INSTALL Matters
+===================
Some packages are "localizable" when properly installed; the programs
they contain can be made to speak your own native language. Most such
@@ -55,38 +28,21 @@ internationalization, predating GNU `gettext'.
By default, this package will be installed to allow translation of
messages. It will automatically detect whether the system already
-provides the GNU `gettext' functions. If not, the GNU `gettext' own
-library will be used. This library is wholly contained within this
-package, usually in the `intl/' subdirectory, so prior installation of
-the GNU `gettext' package is _not_ required. Installers may use
-special options at configuration time for changing the default
-behaviour. The commands:
-
- ./configure --with-included-gettext
+provides the GNU `gettext' functions. Installers may use special
+options at configuration time for changing the default behaviour. The
+command:
+
./configure --disable-nls
-will respectively bypass any pre-existing `gettext' to use the
-internationalizing routines provided within this package, or else,
-_totally_ disable translation of messages.
+will _totally_ disable translation of messages.
When you already have GNU `gettext' installed on your system and run
configure without an option for your new package, `configure' will
-probably detect the previously built and installed `libintl.a' file and
-will decide to use this. This might be not what is desirable. You
-should use the more recent version of the GNU `gettext' library. I.e.
-if the file `intl/VERSION' shows that the library which comes with this
-package is more recent, you should use
-
- ./configure --with-included-gettext
-
-to prevent auto-detection.
+probably detect the previously built and installed `libintl' library
+and will decide to use it. If not, you may have to to use the
+`--with-libintl-prefix' option to tell `configure' where to look for it.
- The configuration process will not test for the `catgets' function
-and therefore it will not be used. The reason is that even an
-emulation of `gettext' on top of `catgets' could not provide all the
-extensions of the GNU `gettext' library.
-
- Internationalized packages have usually many `po/LL.po' files, where
+ Internationalized packages usually have many `po/LL.po' files, where
LL gives an ISO 639 two-letter code identifying the language. Unless
translations have been forbidden at `configure' time by using the
`--disable-nls' switch, all available translations are installed
@@ -95,13 +51,16 @@ may be set, prior to configuration, to limit the installed set.
`LINGUAS' should then contain a space separated list of two-letter
codes, stating which languages are allowed.
-Using This Package
-==================
+1.2 Using This Package
+======================
As a user, if your language has been installed for this package, you
only have to set the `LANG' environment variable to the appropriate
-`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code,
-and `CC' is an ISO 3166 two-letter country code. For example, let's
+`LL_CC' combination. If you happen to have the `LC_ALL' or some other
+`LC_xxx' environment variables set, you should unset them before
+setting `LANG', otherwise the setting of `LANG' will not have the
+desired effect. Here `LL' is an ISO 639 two-letter language code, and
+`CC' is an ISO 3166 two-letter country code. For example, let's
suppose that you speak German and live in Germany. At the shell
prompt, merely execute `setenv LANG de_DE' (in `csh'),
`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
@@ -117,8 +76,8 @@ country code serves to distinguish the dialects.
language and `CC' denoting the country, is the one use on systems based
on GNU libc. On other systems, some variations of this scheme are
used, such as `LL' or `LL_CC.ENCODING'. You can get the list of
-locales supported by your system for your country by running the command
-`locale -a | grep '^LL''.
+locales supported by your system for your language by running the
+command `locale -a | grep '^LL''.
Not all programs have translations for all languages. By default, an
English message is shown in place of a nonexistent translation. If you
@@ -144,16 +103,15 @@ to denote the language's main dialect. For example, `de' is equivalent
to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
(Portuguese as spoken in Portugal) in this context.
-Translating Teams
-=================
+1.3 Translating Teams
+=====================
For the Free Translation Project to be a success, we need interested
people who like their own language and write it well, and who are also
able to synergize with other translators speaking the same language.
Each translation team has its own mailing list. The up-to-date list of
teams can be found at the Free Translation Project's homepage,
-`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
-area.
+`http://translationproject.org/', in the "Teams" area.
If you'd like to volunteer to _work_ at translating messages, you
should become a member of the translating team for your own language.
@@ -167,569 +125,1125 @@ message to `sv-request@li.org', having this message body:
_actively_ in translations, or at solving translational difficulties,
rather than merely lurking around. If your team does not exist yet and
you want to start one, or if you are unsure about what to do or how to
-get started, please write to `translation@iro.umontreal.ca' to reach the
-coordinator for all translator teams.
+get started, please write to `coordinator@translationproject.org' to
+reach the coordinator for all translator teams.
The English team is special. It works at improving and uniformizing
-the terminology in use. Proven linguistic skill are praised more than
-programming skill, here.
+the terminology in use. Proven linguistic skills are praised more than
+programming skills, here.
-Available Packages
-==================
+1.4 Available Packages
+======================
Languages are not equally supported in all packages. The following
-matrix shows the current state of internationalization, as of January
-2004. The matrix shows, in regard of each package, for which languages
+matrix shows the current state of internationalization, as of June
+2010. The matrix shows, in regard of each package, for which languages
PO files have been submitted to translation coordination, with a
translation percentage of at least 50%.
- Ready PO files af am ar az be bg bs ca cs da de el en en_GB eo es
- +----------------------------------------------------+
- a2ps | [] [] [] [] |
- aegis | () |
- ant-phone | () |
- anubis | |
- ap-utils | |
- aspell | [] |
- bash | [] [] [] [] |
- batchelor | |
- bfd | [] [] |
- binutils | [] [] |
- bison | [] [] [] |
- bluez-pin | [] [] [] |
- clisp | |
- clisp | [] [] [] |
- console-tools | [] [] |
- coreutils | [] [] [] [] |
- cpio | [] [] [] |
- darkstat | [] () [] |
- diffutils | [] [] [] [] [] [] [] |
- e2fsprogs | [] [] [] |
- enscript | [] [] [] [] |
- error | [] [] [] [] [] |
- fetchmail | [] () [] [] [] [] |
- fileutils | [] [] [] |
- findutils | [] [] [] [] [] [] [] |
- flex | [] [] [] [] |
- fslint | |
- gas | [] |
- gawk | [] [] [] [] |
- gbiff | [] |
- gcal | [] |
- gcc | [] [] |
- gettext | [] [] [] [] [] |
- gettext-examples | [] [] [] [] |
- gettext-runtime | [] [] [] [] [] |
- gettext-tools | [] [] [] |
- gimp-print | [] [] [] [] [] |
- gliv | |
- glunarclock | [] [] |
- gnubiff | [] |
- gnucash | [] () [] [] |
- gnucash-glossary | [] () [] |
- gnupg | [] () [] [] [] [] |
- gpe-aerial | [] |
- gpe-beam | [] [] |
- gpe-calendar | [] [] |
- gpe-clock | [] [] |
- gpe-conf | [] [] |
- gpe-contacts | [] [] |
- gpe-edit | [] |
- gpe-go | [] |
- gpe-login | [] [] |
- gpe-ownerinfo | [] [] |
- gpe-sketchbook | [] [] |
- gpe-su | [] [] |
- gpe-taskmanager | [] [] |
- gpe-timesheet | [] |
- gpe-today | [] [] |
- gpe-todo | [] [] |
- gphoto2 | [] [] [] [] |
- gprof | [] [] [] |
- gpsdrive | () () () |
- gramadoir | [] |
- grep | [] [] [] [] [] [] |
- gretl | [] |
- gtick | [] () |
- hello | [] [] [] [] [] [] |
- id-utils | [] [] |
- indent | [] [] [] [] |
- iso_3166 | [] [] [] [] [] [] [] [] [] [] |
- iso_3166_1 | [] [] [] [] [] [] |
- iso_3166_2 | |
- iso_3166_3 | [] |
- iso_4217 | [] [] [] [] |
- iso_639 | |
- jpilot | [] [] [] |
- jtag | |
- jwhois | [] |
- kbd | [] [] [] [] [] |
- latrine | () |
- ld | [] [] |
- libc | [] [] [] [] [] [] |
- libgpewidget | [] [] |
- libiconv | [] [] [] [] [] |
- lifelines | [] () |
- lilypond | [] |
- lingoteach | |
- lingoteach_lessons | () () |
- lynx | [] [] [] [] |
- m4 | [] [] [] [] |
- mailutils | [] [] |
- make | [] [] [] |
- man-db | [] () [] [] () |
- minicom | [] [] [] |
- mysecretdiary | [] [] [] |
- nano | [] () [] [] [] |
- nano_1_0 | [] () [] [] [] |
- opcodes | [] |
- parted | [] [] [] [] [] |
- ptx | [] [] [] [] [] |
- python | |
- radius | [] |
- recode | [] [] [] [] [] [] [] |
- rpm | [] [] |
- screem | |
- scrollkeeper | [] [] [] [] [] [] |
- sed | [] [] [] [] [] [] |
- sh-utils | [] [] [] |
- shared-mime-info | |
- sharutils | [] [] [] [] [] [] |
- silky | () |
- skencil | [] () [] |
- sketch | [] () [] |
- soundtracker | [] [] [] |
- sp | [] |
- tar | [] [] [] [] |
- texinfo | [] [] [] |
- textutils | [] [] [] [] |
- tin | () () |
- tp-robot | |
- tuxpaint | [] [] [] [] [] [] [] |
- unicode-han-tra... | |
- unicode-transla... | |
- util-linux | [] [] [] [] [] |
- vorbis-tools | [] [] [] [] |
- wastesedge | () |
- wdiff | [] [] [] [] |
- wget | [] [] [] [] [] [] |
- xchat | [] [] [] [] |
- xfree86_xkb_xml | [] [] |
- xpad | [] |
- +----------------------------------------------------+
- af am ar az be bg bs ca cs da de el en en_GB eo es
- 4 0 0 1 9 4 1 40 41 60 78 17 1 5 13 68
-
- et eu fa fi fr ga gl he hr hu id is it ja ko lg
+ Ready PO files af am an ar as ast az be be@latin bg bn_IN bs ca
+ +--------------------------------------------------+
+ a2ps | [] [] |
+ aegis | |
+ ant-phone | |
+ anubis | |
+ aspell | [] [] |
+ bash | |
+ bfd | |
+ bibshelf | [] |
+ binutils | |
+ bison | |
+ bison-runtime | [] |
+ bluez-pin | [] [] |
+ bombono-dvd | |
+ buzztard | |
+ cflow | |
+ clisp | |
+ coreutils | [] [] |
+ cpio | |
+ cppi | |
+ cpplib | [] |
+ cryptsetup | |
+ dfarc | |
+ dialog | [] [] |
+ dico | |
+ diffutils | [] |
+ dink | |
+ doodle | |
+ e2fsprogs | [] |
+ enscript | [] |
+ exif | |
+ fetchmail | [] |
+ findutils | [] |
+ flex | [] |
+ freedink | |
+ gas | |
+ gawk | [] [] |
+ gcal | [] |
+ gcc | |
+ gettext-examples | [] [] [] [] |
+ gettext-runtime | [] [] |
+ gettext-tools | [] [] |
+ gip | [] |
+ gjay | |
+ gliv | [] |
+ glunarclock | [] [] |
+ gnubiff | |
+ gnucash | [] |
+ gnuedu | |
+ gnulib | |
+ gnunet | |
+ gnunet-gtk | |
+ gnutls | |
+ gold | |
+ gpe-aerial | |
+ gpe-beam | |
+ gpe-bluetooth | |
+ gpe-calendar | |
+ gpe-clock | [] |
+ gpe-conf | |
+ gpe-contacts | |
+ gpe-edit | |
+ gpe-filemanager | |
+ gpe-go | |
+ gpe-login | |
+ gpe-ownerinfo | [] |
+ gpe-package | |
+ gpe-sketchbook | |
+ gpe-su | [] |
+ gpe-taskmanager | [] |
+ gpe-timesheet | [] |
+ gpe-today | [] |
+ gpe-todo | |
+ gphoto2 | |
+ gprof | [] |
+ gpsdrive | |
+ gramadoir | |
+ grep | |
+ grub | [] [] |
+ gsasl | |
+ gss | |
+ gst-plugins-bad | [] |
+ gst-plugins-base | [] |
+ gst-plugins-good | [] |
+ gst-plugins-ugly | [] |
+ gstreamer | [] [] [] |
+ gtick | |
+ gtkam | [] |
+ gtkorphan | [] |
+ gtkspell | [] [] [] |
+ gutenprint | |
+ hello | [] |
+ help2man | |
+ hylafax | |
+ idutils | |
+ indent | [] [] |
+ iso_15924 | |
+ iso_3166 | [] [] [] [] [] [] [] |
+ iso_3166_2 | |
+ iso_4217 | |
+ iso_639 | [] [] [] [] |
+ iso_639_3 | |
+ jwhois | |
+ kbd | |
+ keytouch | [] |
+ keytouch-editor | |
+ keytouch-keyboa... | [] |
+ klavaro | [] |
+ latrine | |
+ ld | [] |
+ leafpad | [] [] |
+ libc | [] [] |
+ libexif | () |
+ libextractor | |
+ libgnutls | |
+ libgpewidget | |
+ libgpg-error | |
+ libgphoto2 | |
+ libgphoto2_port | |
+ libgsasl | |
+ libiconv | [] |
+ libidn | |
+ lifelines | |
+ liferea | [] [] |
+ lilypond | |
+ linkdr | [] |
+ lordsawar | |
+ lprng | |
+ lynx | [] |
+ m4 | |
+ mailfromd | |
+ mailutils | |
+ make | |
+ man-db | |
+ man-db-manpages | |
+ minicom | |
+ mkisofs | |
+ myserver | |
+ nano | [] [] |
+ opcodes | |
+ parted | |
+ pies | |
+ popt | |
+ psmisc | |
+ pspp | [] |
+ pwdutils | |
+ radius | [] |
+ recode | [] [] |
+ rosegarden | |
+ rpm | |
+ rush | |
+ sarg | |
+ screem | |
+ scrollkeeper | [] [] [] |
+ sed | [] [] |
+ sharutils | [] [] |
+ shishi | |
+ skencil | |
+ solfege | |
+ solfege-manual | |
+ soundtracker | |
+ sp | |
+ sysstat | |
+ tar | [] |
+ texinfo | |
+ tin | |
+ unicode-han-tra... | |
+ unicode-transla... | |
+ util-linux-ng | [] |
+ vice | |
+ vmm | |
+ vorbis-tools | |
+ wastesedge | |
+ wdiff | |
+ wget | [] [] |
+ wyslij-po | |
+ xchat | [] [] [] [] |
+ xdg-user-dirs | [] [] [] [] [] [] [] [] [] |
+ xkeyboard-config | [] [] |
+ +--------------------------------------------------+
+ af am an ar as ast az be be@latin bg bn_IN bs ca
+ 6 0 1 2 3 19 1 10 3 28 3 1 38
+
+ crh cs da de el en en_GB en_ZA eo es et eu fa
+-------------------------------------------------+
- a2ps | [] [] [] () () |
- aegis | |
- ant-phone | [] |
- anubis | [] |
- ap-utils | [] |
- aspell | [] [] |
- bash | [] [] |
- batchelor | [] [] |
- bfd | [] |
- binutils | [] [] |
- bison | [] [] [] [] |
- bluez-pin | [] [] [] [] [] |
- clisp | |
- clisp | [] |
- console-tools | |
- coreutils | [] [] [] [] [] [] |
- cpio | [] [] [] [] |
- darkstat | () [] [] [] |
- diffutils | [] [] [] [] [] [] [] |
- e2fsprogs | |
- enscript | [] [] |
- error | [] [] [] [] |
- fetchmail | [] |
- fileutils | [] [] [] [] [] [] |
- findutils | [] [] [] [] [] [] [] [] [] [] [] |
- flex | [] [] [] |
- fslint | [] |
- gas | [] |
- gawk | [] [] [] |
- gbiff | [] |
- gcal | [] |
- gcc | [] |
- gettext | [] [] [] |
- gettext-examples | [] [] |
- gettext-runtime | [] [] [] [] [] |
- gettext-tools | [] [] [] |
- gimp-print | [] [] |
- gliv | () |
- glunarclock | [] [] [] [] |
- gnubiff | [] |
- gnucash | () [] |
- gnucash-glossary | [] |
- gnupg | [] [] [] [] [] [] [] |
- gpe-aerial | [] |
- gpe-beam | [] |
- gpe-calendar | [] [] [] |
- gpe-clock | [] |
- gpe-conf | [] |
- gpe-contacts | [] [] |
- gpe-edit | [] [] |
- gpe-go | [] |
- gpe-login | [] [] |
- gpe-ownerinfo | [] [] [] |
- gpe-sketchbook | [] |
- gpe-su | [] |
- gpe-taskmanager | [] |
- gpe-timesheet | [] [] [] |
- gpe-today | [] [] |
- gpe-todo | [] [] |
- gphoto2 | [] [] [] |
- gprof | [] [] |
- gpsdrive | () () () |
- gramadoir | [] [] |
- grep | [] [] [] [] [] [] [] [] [] [] [] |
- gretl | [] [] |
- gtick | [] [] [] |
- hello | [] [] [] [] [] [] [] [] [] [] [] [] [] |
- id-utils | [] [] [] [] |
- indent | [] [] [] [] [] [] [] [] [] |
- iso_3166 | [] [] [] [] [] [] [] |
- iso_3166_1 | [] [] [] [] [] |
- iso_3166_2 | |
- iso_3166_3 | |
- iso_4217 | [] [] [] [] [] [] |
- iso_639 | |
- jpilot | [] () |
- jtag | [] |
- jwhois | [] [] [] [] |
- kbd | [] |
- latrine | [] |
- ld | [] |
- libc | [] [] [] [] [] [] |
- libgpewidget | [] [] [] [] |
- libiconv | [] [] [] [] [] [] [] [] [] |
- lifelines | () |
- lilypond | [] |
- lingoteach | [] [] |
- lingoteach_lessons | |
- lynx | [] [] [] [] |
- m4 | [] [] [] [] |
- mailutils | |
- make | [] [] [] [] [] [] |
- man-db | () () |
- minicom | [] [] [] [] |
- mysecretdiary | [] [] |
- nano | [] [] [] [] |
- nano_1_0 | [] [] [] [] |
- opcodes | [] |
- parted | [] [] [] |
- ptx | [] [] [] [] [] [] [] |
- python | |
- radius | [] |
- recode | [] [] [] [] [] [] |
- rpm | [] [] |
+ a2ps | [] [] [] [] [] [] [] |
+ aegis | [] [] [] |
+ ant-phone | [] () |
+ anubis | [] [] |
+ aspell | [] [] [] [] [] |
+ bash | [] [] [] |
+ bfd | [] |
+ bibshelf | [] [] [] |
+ binutils | [] |
+ bison | [] [] |
+ bison-runtime | [] [] [] [] |
+ bluez-pin | [] [] [] [] [] [] |
+ bombono-dvd | [] |
+ buzztard | [] [] [] |
+ cflow | [] [] |
+ clisp | [] [] [] [] |
+ coreutils | [] [] [] [] |
+ cpio | |
+ cppi | |
+ cpplib | [] [] [] |
+ cryptsetup | [] |
+ dfarc | [] [] [] |
+ dialog | [] [] [] [] [] |
+ dico | |
+ diffutils | [] [] [] [] [] [] |
+ dink | [] [] [] |
+ doodle | [] |
+ e2fsprogs | [] [] [] |
+ enscript | [] [] [] |
+ exif | () [] [] |
+ fetchmail | [] [] () [] [] [] |
+ findutils | [] [] [] |
+ flex | [] [] |
+ freedink | [] [] [] |
+ gas | [] |
+ gawk | [] [] [] |
+ gcal | [] |
+ gcc | [] [] |
+ gettext-examples | [] [] [] [] |
+ gettext-runtime | [] [] [] [] |
+ gettext-tools | [] [] [] |
+ gip | [] [] [] [] |
+ gjay | [] |
+ gliv | [] [] [] |
+ glunarclock | [] [] |
+ gnubiff | () |
+ gnucash | [] () () () () |
+ gnuedu | [] [] |
+ gnulib | [] [] |
+ gnunet | |
+ gnunet-gtk | [] |
+ gnutls | [] [] |
+ gold | [] |
+ gpe-aerial | [] [] [] [] |
+ gpe-beam | [] [] [] [] |
+ gpe-bluetooth | [] [] |
+ gpe-calendar | [] |
+ gpe-clock | [] [] [] [] |
+ gpe-conf | [] [] [] |
+ gpe-contacts | [] [] [] |
+ gpe-edit | [] [] |
+ gpe-filemanager | [] [] [] |
+ gpe-go | [] [] [] [] |
+ gpe-login | [] [] |
+ gpe-ownerinfo | [] [] [] [] |
+ gpe-package | [] [] [] |
+ gpe-sketchbook | [] [] [] [] |
+ gpe-su | [] [] [] [] |
+ gpe-taskmanager | [] [] [] [] |
+ gpe-timesheet | [] [] [] [] |
+ gpe-today | [] [] [] [] |
+ gpe-todo | [] [] [] |
+ gphoto2 | [] [] () [] [] [] |
+ gprof | [] [] [] |
+ gpsdrive | [] [] [] |
+ gramadoir | [] [] [] |
+ grep | [] |
+ grub | [] [] |
+ gsasl | [] |
+ gss | |
+ gst-plugins-bad | [] [] [] [] [] |
+ gst-plugins-base | [] [] [] [] [] |
+ gst-plugins-good | [] [] [] [] [] [] |
+ gst-plugins-ugly | [] [] [] [] [] [] |
+ gstreamer | [] [] [] [] [] |
+ gtick | [] () [] |
+ gtkam | [] [] () [] [] |
+ gtkorphan | [] [] [] [] |
+ gtkspell | [] [] [] [] [] [] [] |
+ gutenprint | [] [] [] |
+ hello | [] [] [] [] |
+ help2man | [] |
+ hylafax | [] [] |
+ idutils | [] [] |
+ indent | [] [] [] [] [] [] [] |
+ iso_15924 | [] () [] [] |
+ iso_3166 | [] [] [] [] () [] [] [] () |
+ iso_3166_2 | () |
+ iso_4217 | [] [] [] () [] [] |
+ iso_639 | [] [] [] [] () [] [] |
+ iso_639_3 | [] |
+ jwhois | [] |
+ kbd | [] [] [] [] [] |
+ keytouch | [] [] |
+ keytouch-editor | [] [] |
+ keytouch-keyboa... | [] |
+ klavaro | [] [] [] [] |
+ latrine | [] () |
+ ld | [] [] |
+ leafpad | [] [] [] [] [] [] |
+ libc | [] [] [] [] |
+ libexif | [] [] () |
+ libextractor | |
+ libgnutls | [] |
+ libgpewidget | [] [] |
+ libgpg-error | [] [] |
+ libgphoto2 | [] () |
+ libgphoto2_port | [] () [] |
+ libgsasl | |
+ libiconv | [] [] [] [] [] |
+ libidn | [] [] [] |
+ lifelines | [] () |
+ liferea | [] [] [] [] [] |
+ lilypond | [] [] [] |
+ linkdr | [] [] [] |
+ lordsawar | [] |
+ lprng | |
+ lynx | [] [] [] [] |
+ m4 | [] [] [] [] |
+ mailfromd | |
+ mailutils | [] |
+ make | [] [] [] |
+ man-db | |
+ man-db-manpages | |
+ minicom | [] [] [] [] |
+ mkisofs | |
+ myserver | |
+ nano | [] [] [] |
+ opcodes | [] [] |
+ parted | [] [] |
+ pies | |
+ popt | [] [] [] [] [] |
+ psmisc | [] [] [] |
+ pspp | [] |
+ pwdutils | [] |
+ radius | [] |
+ recode | [] [] [] [] [] [] |
+ rosegarden | () () () |
+ rpm | [] [] [] |
+ rush | |
+ sarg | |
screem | |
- scrollkeeper | [] |
- sed | [] [] [] [] [] [] [] [] [] |
- sh-utils | [] [] [] [] [] [] [] |
- shared-mime-info | [] [] [] |
- sharutils | [] [] [] [] [] |
- silky | () [] () () |
- skencil | [] |
- sketch | [] |
- soundtracker | [] [] |
- sp | [] () |
- tar | [] [] [] [] [] [] [] [] [] |
- texinfo | [] [] [] [] |
- textutils | [] [] [] [] [] [] |
- tin | [] () |
- tp-robot | [] |
- tuxpaint | [] [] [] [] [] [] [] [] [] |
+ scrollkeeper | [] [] [] [] [] |
+ sed | [] [] [] [] [] [] |
+ sharutils | [] [] [] [] |
+ shishi | |
+ skencil | [] () [] |
+ solfege | [] [] [] |
+ solfege-manual | [] [] |
+ soundtracker | [] [] [] |
+ sp | [] |
+ sysstat | [] [] [] |
+ tar | [] [] [] [] |
+ texinfo | [] [] [] |
+ tin | [] [] |
unicode-han-tra... | |
- unicode-transla... | [] [] |
- util-linux | [] [] [] [] () [] |
- vorbis-tools | [] |
- wastesedge | () |
- wdiff | [] [] [] [] [] [] |
- wget | [] [] [] [] [] [] [] |
- xchat | [] [] [] |
- xfree86_xkb_xml | [] [] |
- xpad | [] [] |
+ unicode-transla... | |
+ util-linux-ng | [] [] [] [] |
+ vice | () () |
+ vmm | [] |
+ vorbis-tools | [] [] |
+ wastesedge | [] |
+ wdiff | [] [] |
+ wget | [] [] [] |
+ wyslij-po | |
+ xchat | [] [] [] [] [] |
+ xdg-user-dirs | [] [] [] [] [] [] [] [] [] |
+ xkeyboard-config | [] [] [] [] [] [] |
+-------------------------------------------------+
- et eu fa fi fr ga gl he hr hu id is it ja ko lg
- 22 2 1 26 106 28 24 8 10 41 33 1 26 33 12 0
-
- lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru
- +-----------------------------------------------------+
- a2ps | [] [] () () [] [] [] |
- aegis | () () () |
- ant-phone | [] [] |
- anubis | [] [] [] [] [] [] |
- ap-utils | [] () [] |
- aspell | [] |
- bash | [] [] [] |
- batchelor | [] |
- bfd | [] |
- binutils | [] |
- bison | [] [] [] [] [] |
- bluez-pin | [] [] [] |
- clisp | |
- clisp | [] |
- console-tools | [] |
- coreutils | [] [] |
- cpio | [] [] [] [] [] |
- darkstat | [] [] [] [] |
- diffutils | [] [] [] [] [] [] |
- e2fsprogs | [] |
- enscript | [] [] [] [] |
- error | [] [] [] |
- fetchmail | [] [] () [] |
- fileutils | [] [] [] |
- findutils | [] [] [] [] [] |
- flex | [] [] [] [] |
- fslint | [] [] |
- gas | |
- gawk | [] [] [] |
- gbiff | [] [] |
- gcal | |
- gcc | |
- gettext | [] [] [] |
- gettext-examples | [] [] [] |
- gettext-runtime | [] [] [] [] |
- gettext-tools | [] [] |
- gimp-print | [] |
- gliv | [] [] [] |
- glunarclock | [] [] [] [] |
- gnubiff | [] |
- gnucash | [] [] () [] |
- gnucash-glossary | [] [] |
- gnupg | [] |
- gpe-aerial | [] [] [] [] |
- gpe-beam | [] [] [] [] |
- gpe-calendar | [] [] [] [] |
- gpe-clock | [] [] [] [] |
- gpe-conf | [] [] [] [] |
- gpe-contacts | [] [] [] [] |
- gpe-edit | [] [] [] [] |
- gpe-go | [] [] [] |
- gpe-login | [] [] [] [] |
- gpe-ownerinfo | [] [] [] [] |
- gpe-sketchbook | [] [] [] [] |
- gpe-su | [] [] [] [] |
- gpe-taskmanager | [] [] [] [] |
- gpe-timesheet | [] [] [] [] |
- gpe-today | [] [] [] [] |
- gpe-todo | [] [] [] [] |
- gphoto2 | [] |
- gprof | [] [] |
- gpsdrive | () () [] |
- gramadoir | () [] |
- grep | [] [] [] [] [] |
- gretl | |
- gtick | [] [] [] |
- hello | [] [] [] [] [] [] [] [] [] [] |
- id-utils | [] [] [] [] |
- indent | [] [] [] [] |
- iso_3166 | [] [] [] |
- iso_3166_1 | [] [] |
- iso_3166_2 | |
- iso_3166_3 | [] |
- iso_4217 | [] [] [] [] [] [] [] [] |
- iso_639 | [] |
- jpilot | () () |
- jtag | |
- jwhois | [] [] [] [] () |
- kbd | [] [] [] |
- latrine | [] |
- ld | |
- libc | [] [] [] [] |
- libgpewidget | [] [] [] |
- libiconv | [] [] [] [] [] |
- lifelines | |
- lilypond | |
- lingoteach | |
- lingoteach_lessons | |
- lynx | [] [] [] |
- m4 | [] [] [] [] [] |
- mailutils | [] [] [] |
- make | [] [] [] [] |
- man-db | [] |
- minicom | [] [] [] [] |
- mysecretdiary | [] [] [] |
- nano | [] [] [] [] [] |
- nano_1_0 | [] [] [] [] [] [] |
- opcodes | [] [] |
- parted | [] [] [] [] |
- ptx | [] [] [] [] [] [] [] [] |
- python | |
- radius | [] [] |
- recode | [] [] [] [] |
- rpm | [] [] [] |
- screem | |
- scrollkeeper | [] [] [] [] [] |
- sed | [] [] [] |
- sh-utils | [] [] |
- shared-mime-info | [] [] |
- sharutils | [] [] |
- silky | () |
- skencil | [] [] |
- sketch | [] [] |
- soundtracker | |
- sp | |
- tar | [] [] [] [] [] [] |
- texinfo | [] [] [] [] |
- textutils | [] [] |
- tin | |
- tp-robot | [] |
- tuxpaint | [] [] [] [] [] [] [] [] |
- unicode-han-tra... | |
- unicode-transla... | |
- util-linux | [] [] [] |
- vorbis-tools | [] [] [] |
- wastesedge | |
- wdiff | [] [] [] [] [] |
- wget | [] [] [] |
- xchat | [] [] [] |
- xfree86_xkb_xml | [] [] |
- xpad | [] [] |
- +-----------------------------------------------------+
- lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru
- 1 2 0 3 12 0 10 69 6 7 1 40 26 36 76 63
-
- sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu
- +-----------------------------------------------------+
- a2ps | [] [] [] [] | 16
- aegis | | 0
- ant-phone | | 3
- anubis | [] [] | 9
- ap-utils | () | 3
- aspell | | 4
- bash | | 9
- batchelor | | 3
- bfd | [] [] | 6
- binutils | [] [] [] | 8
- bison | [] [] | 14
- bluez-pin | [] [] [] | 14
- clisp | | 0
- clisp | | 5
- console-tools | | 3
- coreutils | [] [] [] [] | 16
- cpio | [] [] | 14
- darkstat | [] [] [] () () | 12
- diffutils | [] [] [] | 23
- e2fsprogs | [] [] | 6
- enscript | [] [] | 12
- error | [] [] [] | 15
- fetchmail | [] [] | 11
- fileutils | [] [] [] [] [] | 17
- findutils | [] [] [] [] [] [] | 29
- flex | [] [] | 13
- fslint | | 3
- gas | [] | 3
- gawk | [] [] | 12
- gbiff | | 4
- gcal | [] [] | 4
- gcc | [] | 4
- gettext | [] [] [] [] [] | 16
- gettext-examples | [] [] [] [] [] | 14
- gettext-runtime | [] [] [] [] [] [] [] [] | 22
- gettext-tools | [] [] [] [] [] [] | 14
- gimp-print | [] [] | 10
- gliv | | 3
- glunarclock | [] [] [] | 13
- gnubiff | | 3
- gnucash | [] [] | 9
- gnucash-glossary | [] [] [] | 8
- gnupg | [] [] [] [] | 17
- gpe-aerial | [] | 7
- gpe-beam | [] | 8
- gpe-calendar | [] [] [] [] | 13
- gpe-clock | [] [] [] | 10
- gpe-conf | [] [] | 9
- gpe-contacts | [] [] [] | 11
- gpe-edit | [] [] [] [] [] | 12
- gpe-go | | 5
- gpe-login | [] [] [] [] [] | 13
- gpe-ownerinfo | [] [] [] [] | 13
- gpe-sketchbook | [] [] | 9
- gpe-su | [] [] [] | 10
- gpe-taskmanager | [] [] [] | 10
- gpe-timesheet | [] [] [] [] | 12
- gpe-today | [] [] [] [] [] | 13
- gpe-todo | [] [] [] [] | 12
- gphoto2 | [] [] [] | 11
- gprof | [] [] | 9
- gpsdrive | [] [] | 3
- gramadoir | [] | 5
- grep | [] [] [] [] | 26
- gretl | | 3
- gtick | | 7
- hello | [] [] [] [] [] | 34
- id-utils | [] [] | 12
- indent | [] [] [] [] | 21
- iso_3166 | [] [] [] [] [] [] [] | 27
- iso_3166_1 | [] [] [] | 16
- iso_3166_2 | | 0
- iso_3166_3 | | 2
- iso_4217 | [] [] [] [] [] [] | 24
- iso_639 | | 1
- jpilot | [] [] [] [] [] | 9
- jtag | [] | 2
- jwhois | () [] [] | 11
- kbd | [] [] | 11
- latrine | | 2
- ld | [] [] | 5
- libc | [] [] [] [] | 20
- libgpewidget | [] [] [] [] | 13
- libiconv | [] [] [] [] [] [] [] [] | 27
- lifelines | [] | 2
- lilypond | [] | 3
- lingoteach | | 2
- lingoteach_lessons | () | 0
- lynx | [] [] [] | 14
- m4 | [] [] | 15
- mailutils | | 5
- make | [] [] [] | 16
- man-db | [] | 5
- minicom | | 11
- mysecretdiary | [] [] | 10
- nano | [] [] [] [] | 17
- nano_1_0 | [] [] [] | 17
- opcodes | [] [] | 6
- parted | [] [] [] | 15
- ptx | [] [] | 22
- python | | 0
- radius | | 4
- recode | [] [] [] | 20
- rpm | [] [] | 9
- screem | [] [] | 2
- scrollkeeper | [] [] [] | 15
- sed | [] [] [] [] [] [] | 24
- sh-utils | [] [] | 14
- shared-mime-info | [] [] | 7
- sharutils | [] [] [] [] | 17
- silky | () | 3
- skencil | [] | 6
- sketch | [] | 6
- soundtracker | [] [] | 7
- sp | [] | 3
- tar | [] [] [] [] [] | 24
- texinfo | [] [] [] | 14
- textutils | [] [] [] [] | 16
- tin | | 1
- tp-robot | | 2
- tuxpaint | [] [] [] [] [] | 29
- unicode-han-tra... | | 0
- unicode-transla... | | 2
- util-linux | [] [] | 15
- vorbis-tools | | 8
- wastesedge | | 0
- wdiff | [] [] [] | 18
- wget | [] [] [] [] [] [] [] [] | 24
- xchat | [] [] [] [] [] | 15
- xfree86_xkb_xml | [] [] [] [] [] | 11
- xpad | | 5
- +-----------------------------------------------------+
- 63 teams sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu
- 131 domains 47 19 28 83 0 0 59 13 1 1 11 0 22 22 0 1373
+ crh cs da de el en en_GB en_ZA eo es et eu fa
+ 5 64 105 117 18 1 8 0 28 89 18 19 0
+
+ fi fr ga gl gu he hi hr hu hy id is it ja ka kn
+ +----------------------------------------------------+
+ a2ps | [] [] [] [] |
+ aegis | [] [] |
+ ant-phone | [] [] |
+ anubis | [] [] [] [] |
+ aspell | [] [] [] [] |
+ bash | [] [] [] [] |
+ bfd | [] [] [] |
+ bibshelf | [] [] [] [] [] |
+ binutils | [] [] [] |
+ bison | [] [] [] [] |
+ bison-runtime | [] [] [] [] [] [] |
+ bluez-pin | [] [] [] [] [] [] [] [] |
+ bombono-dvd | [] |
+ buzztard | [] |
+ cflow | [] [] [] |
+ clisp | [] |
+ coreutils | [] [] [] [] [] |
+ cpio | [] [] [] [] |
+ cppi | [] [] |
+ cpplib | [] [] [] |
+ cryptsetup | [] [] [] |
+ dfarc | [] [] [] |
+ dialog | [] [] [] [] [] [] [] |
+ dico | |
+ diffutils | [] [] [] [] [] [] [] [] [] |
+ dink | [] |
+ doodle | [] [] |
+ e2fsprogs | [] [] |
+ enscript | [] [] [] [] |
+ exif | [] [] [] [] [] [] |
+ fetchmail | [] [] [] [] |
+ findutils | [] [] [] [] [] [] |
+ flex | [] [] [] |
+ freedink | [] [] [] |
+ gas | [] [] |
+ gawk | [] [] [] [] () [] |
+ gcal | [] |
+ gcc | [] |
+ gettext-examples | [] [] [] [] [] [] [] |
+ gettext-runtime | [] [] [] [] [] [] |
+ gettext-tools | [] [] [] [] |
+ gip | [] [] [] [] [] [] |
+ gjay | [] |
+ gliv | [] () |
+ glunarclock | [] [] [] [] |
+ gnubiff | () [] () |
+ gnucash | () () () () () [] |
+ gnuedu | [] [] |
+ gnulib | [] [] [] [] [] [] |
+ gnunet | |
+ gnunet-gtk | [] |
+ gnutls | [] [] |
+ gold | [] [] |
+ gpe-aerial | [] [] [] |
+ gpe-beam | [] [] [] [] |
+ gpe-bluetooth | [] [] [] [] |
+ gpe-calendar | [] [] |
+ gpe-clock | [] [] [] [] [] |
+ gpe-conf | [] [] [] [] |
+ gpe-contacts | [] [] [] [] |
+ gpe-edit | [] [] [] |
+ gpe-filemanager | [] [] [] [] |
+ gpe-go | [] [] [] [] [] |
+ gpe-login | [] [] [] |
+ gpe-ownerinfo | [] [] [] [] [] |
+ gpe-package | [] [] [] |
+ gpe-sketchbook | [] [] [] [] |
+ gpe-su | [] [] [] [] [] [] |
+ gpe-taskmanager | [] [] [] [] [] |
+ gpe-timesheet | [] [] [] [] [] |
+ gpe-today | [] [] [] [] [] [] [] |
+ gpe-todo | [] [] [] |
+ gphoto2 | [] [] [] [] [] [] |
+ gprof | [] [] [] [] |
+ gpsdrive | [] [] [] |
+ gramadoir | [] [] [] |
+ grep | [] [] |
+ grub | [] [] [] [] |
+ gsasl | [] [] [] [] [] |
+ gss | [] [] [] [] [] |
+ gst-plugins-bad | [] [] [] [] [] [] |
+ gst-plugins-base | [] [] [] [] [] [] |
+ gst-plugins-good | [] [] [] [] [] [] |
+ gst-plugins-ugly | [] [] [] [] [] [] |
+ gstreamer | [] [] [] [] [] |
+ gtick | [] [] [] [] [] |
+ gtkam | [] [] [] [] [] |
+ gtkorphan | [] [] [] |
+ gtkspell | [] [] [] [] [] [] [] [] [] |
+ gutenprint | [] [] [] [] |
+ hello | [] [] [] |
+ help2man | [] [] |
+ hylafax | [] |
+ idutils | [] [] [] [] [] [] |
+ indent | [] [] [] [] [] [] [] [] |
+ iso_15924 | [] () [] [] |
+ iso_3166 | [] () [] [] [] [] [] [] [] [] [] [] |
+ iso_3166_2 | () [] [] [] |
+ iso_4217 | [] () [] [] [] [] |
+ iso_639 | [] () [] [] [] [] [] [] [] |
+ iso_639_3 | () [] [] |
+ jwhois | [] [] [] [] [] |
+ kbd | [] [] |
+ keytouch | [] [] [] [] [] [] |
+ keytouch-editor | [] [] [] [] [] |
+ keytouch-keyboa... | [] [] [] [] [] |
+ klavaro | [] [] |
+ latrine | [] [] [] |
+ ld | [] [] [] [] |
+ leafpad | [] [] [] [] [] [] [] () |
+ libc | [] [] [] [] [] |
+ libexif | [] |
+ libextractor | |
+ libgnutls | [] [] |
+ libgpewidget | [] [] [] [] |
+ libgpg-error | [] [] |
+ libgphoto2 | [] [] [] |
+ libgphoto2_port | [] [] [] |
+ libgsasl | [] [] [] [] [] |
+ libiconv | [] [] [] [] [] [] |
+ libidn | [] [] [] [] |
+ lifelines | () |
+ liferea | [] [] [] [] |
+ lilypond | [] [] |
+ linkdr | [] [] [] [] [] |
+ lordsawar | |
+ lprng | [] |
+ lynx | [] [] [] [] [] |
+ m4 | [] [] [] [] [] [] |
+ mailfromd | |
+ mailutils | [] [] |
+ make | [] [] [] [] [] [] [] [] [] |
+ man-db | [] [] |
+ man-db-manpages | [] |
+ minicom | [] [] [] [] [] |
+ mkisofs | [] [] [] [] |
+ myserver | |
+ nano | [] [] [] [] [] [] |
+ opcodes | [] [] [] [] |
+ parted | [] [] [] [] |
+ pies | |
+ popt | [] [] [] [] [] [] [] [] [] |
+ psmisc | [] [] [] |
+ pspp | |
+ pwdutils | [] [] |
+ radius | [] [] |
+ recode | [] [] [] [] [] [] [] [] |
+ rosegarden | () () () () () |
+ rpm | [] [] |
+ rush | |
+ sarg | [] |
+ screem | [] [] |
+ scrollkeeper | [] [] [] [] |
+ sed | [] [] [] [] [] [] [] [] |
+ sharutils | [] [] [] [] [] [] [] |
+ shishi | [] |
+ skencil | [] |
+ solfege | [] [] [] [] |
+ solfege-manual | [] [] |
+ soundtracker | [] [] |
+ sp | [] () |
+ sysstat | [] [] [] [] [] |
+ tar | [] [] [] [] [] [] [] |
+ texinfo | [] [] [] [] |
+ tin | [] |
+ unicode-han-tra... | |
+ unicode-transla... | [] [] |
+ util-linux-ng | [] [] [] [] [] [] |
+ vice | () () () |
+ vmm | [] |
+ vorbis-tools | [] |
+ wastesedge | () () |
+ wdiff | [] |
+ wget | [] [] [] [] [] [] [] [] |
+ wyslij-po | [] [] [] |
+ xchat | [] [] [] [] [] [] [] [] [] |
+ xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] |
+ xkeyboard-config | [] [] [] [] [] |
+ +----------------------------------------------------+
+ fi fr ga gl gu he hi hr hu hy id is it ja ka kn
+ 105 121 53 20 4 8 3 5 53 2 120 5 84 67 0 4
+
+ ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne
+ +-----------------------------------------------+
+ a2ps | [] |
+ aegis | |
+ ant-phone | |
+ anubis | [] [] |
+ aspell | [] |
+ bash | |
+ bfd | |
+ bibshelf | [] [] |
+ binutils | |
+ bison | [] |
+ bison-runtime | [] [] [] [] [] |
+ bluez-pin | [] [] [] [] [] |
+ bombono-dvd | |
+ buzztard | |
+ cflow | |
+ clisp | |
+ coreutils | [] |
+ cpio | |
+ cppi | |
+ cpplib | |
+ cryptsetup | |
+ dfarc | [] |
+ dialog | [] [] [] [] [] |
+ dico | |
+ diffutils | [] [] |
+ dink | |
+ doodle | |
+ e2fsprogs | |
+ enscript | |
+ exif | [] |
+ fetchmail | |
+ findutils | |
+ flex | |
+ freedink | [] |
+ gas | |
+ gawk | |
+ gcal | |
+ gcc | |
+ gettext-examples | [] [] [] [] |
+ gettext-runtime | [] |
+ gettext-tools | [] |
+ gip | [] [] |
+ gjay | |
+ gliv | |
+ glunarclock | [] |
+ gnubiff | |
+ gnucash | () () () () |
+ gnuedu | |
+ gnulib | |
+ gnunet | |
+ gnunet-gtk | |
+ gnutls | [] |
+ gold | |
+ gpe-aerial | [] |
+ gpe-beam | [] |
+ gpe-bluetooth | [] [] |
+ gpe-calendar | [] |
+ gpe-clock | [] [] [] [] [] |
+ gpe-conf | [] [] |
+ gpe-contacts | [] [] |
+ gpe-edit | [] |
+ gpe-filemanager | [] [] |
+ gpe-go | [] [] [] |
+ gpe-login | [] |
+ gpe-ownerinfo | [] [] |
+ gpe-package | [] [] |
+ gpe-sketchbook | [] [] |
+ gpe-su | [] [] [] [] [] [] |
+ gpe-taskmanager | [] [] [] [] [] [] |
+ gpe-timesheet | [] [] |
+ gpe-today | [] [] [] [] |
+ gpe-todo | [] [] |
+ gphoto2 | |
+ gprof | [] |
+ gpsdrive | |
+ gramadoir | |
+ grep | |
+ grub | |
+ gsasl | |
+ gss | |
+ gst-plugins-bad | [] [] [] [] |
+ gst-plugins-base | [] [] |
+ gst-plugins-good | [] [] |
+ gst-plugins-ugly | [] [] [] [] [] |
+ gstreamer | |
+ gtick | |
+ gtkam | [] |
+ gtkorphan | [] [] |
+ gtkspell | [] [] [] [] [] [] [] |
+ gutenprint | |
+ hello | [] [] [] |
+ help2man | |
+ hylafax | |
+ idutils | |
+ indent | |
+ iso_15924 | [] [] |
+ iso_3166 | [] [] () [] [] [] [] [] |
+ iso_3166_2 | |
+ iso_4217 | [] [] |
+ iso_639 | [] [] |
+ iso_639_3 | [] |
+ jwhois | [] |
+ kbd | |
+ keytouch | [] |
+ keytouch-editor | [] |
+ keytouch-keyboa... | [] |
+ klavaro | [] |
+ latrine | [] |
+ ld | |
+ leafpad | [] [] [] |
+ libc | [] |
+ libexif | |
+ libextractor | |
+ libgnutls | [] |
+ libgpewidget | [] [] |
+ libgpg-error | |
+ libgphoto2 | |
+ libgphoto2_port | |
+ libgsasl | |
+ libiconv | |
+ libidn | |
+ lifelines | |
+ liferea | |
+ lilypond | |
+ linkdr | |
+ lordsawar | |
+ lprng | |
+ lynx | |
+ m4 | |
+ mailfromd | |
+ mailutils | |
+ make | [] |
+ man-db | |
+ man-db-manpages | |
+ minicom | [] |
+ mkisofs | |
+ myserver | |
+ nano | [] [] |
+ opcodes | |
+ parted | |
+ pies | |
+ popt | [] [] [] |
+ psmisc | |
+ pspp | |
+ pwdutils | |
+ radius | |
+ recode | |
+ rosegarden | |
+ rpm | |
+ rush | |
+ sarg | |
+ screem | |
+ scrollkeeper | [] [] |
+ sed | |
+ sharutils | |
+ shishi | |
+ skencil | |
+ solfege | [] |
+ solfege-manual | |
+ soundtracker | |
+ sp | |
+ sysstat | [] |
+ tar | [] |
+ texinfo | [] |
+ tin | |
+ unicode-han-tra... | |
+ unicode-transla... | |
+ util-linux-ng | |
+ vice | |
+ vmm | |
+ vorbis-tools | |
+ wastesedge | |
+ wdiff | |
+ wget | [] |
+ wyslij-po | |
+ xchat | [] [] [] |
+ xdg-user-dirs | [] [] [] [] [] [] [] [] |
+ xkeyboard-config | [] [] [] |
+ +-----------------------------------------------+
+ ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne
+ 20 5 10 1 13 48 4 2 2 4 24 10 20 3 1
+
+ nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr
+ +---------------------------------------------------+
+ a2ps | [] [] [] [] [] [] [] [] |
+ aegis | [] [] [] |
+ ant-phone | [] [] |
+ anubis | [] [] [] |
+ aspell | [] [] [] [] [] |
+ bash | [] [] |
+ bfd | [] |
+ bibshelf | [] [] |
+ binutils | [] [] |
+ bison | [] [] [] |
+ bison-runtime | [] [] [] [] [] [] [] |
+ bluez-pin | [] [] [] [] [] [] [] [] |
+ bombono-dvd | [] () |
+ buzztard | [] [] |
+ cflow | [] |
+ clisp | [] [] |
+ coreutils | [] [] [] [] [] [] |
+ cpio | [] [] [] |
+ cppi | [] |
+ cpplib | [] |
+ cryptsetup | [] |
+ dfarc | [] |
+ dialog | [] [] [] [] |
+ dico | [] |
+ diffutils | [] [] [] [] [] [] |
+ dink | () |
+ doodle | [] [] |
+ e2fsprogs | [] [] |
+ enscript | [] [] [] [] [] |
+ exif | [] [] [] () [] |
+ fetchmail | [] [] [] [] |
+ findutils | [] [] [] [] [] |
+ flex | [] [] [] [] [] |
+ freedink | [] [] |
+ gas | |
+ gawk | [] [] [] [] |
+ gcal | |
+ gcc | [] |
+ gettext-examples | [] [] [] [] [] [] [] [] |
+ gettext-runtime | [] [] [] [] [] [] [] [] [] |
+ gettext-tools | [] [] [] [] [] [] |
+ gip | [] [] [] [] [] |
+ gjay | |
+ gliv | [] [] [] [] [] [] |
+ glunarclock | [] [] [] [] [] |
+ gnubiff | [] () |
+ gnucash | [] () () () |
+ gnuedu | [] |
+ gnulib | [] [] [] [] |
+ gnunet | |
+ gnunet-gtk | |
+ gnutls | [] [] |
+ gold | |
+ gpe-aerial | [] [] [] [] [] [] [] |
+ gpe-beam | [] [] [] [] [] [] [] |
+ gpe-bluetooth | [] [] |
+ gpe-calendar | [] [] [] [] |
+ gpe-clock | [] [] [] [] [] [] [] [] |
+ gpe-conf | [] [] [] [] [] [] [] |
+ gpe-contacts | [] [] [] [] [] |
+ gpe-edit | [] [] [] |
+ gpe-filemanager | [] [] [] |
+ gpe-go | [] [] [] [] [] [] [] [] |
+ gpe-login | [] [] |
+ gpe-ownerinfo | [] [] [] [] [] [] [] [] |
+ gpe-package | [] [] |
+ gpe-sketchbook | [] [] [] [] [] [] [] |
+ gpe-su | [] [] [] [] [] [] [] [] |
+ gpe-taskmanager | [] [] [] [] [] [] [] [] |
+ gpe-timesheet | [] [] [] [] [] [] [] [] |
+ gpe-today | [] [] [] [] [] [] [] [] |
+ gpe-todo | [] [] [] [] [] |
+ gphoto2 | [] [] [] [] [] [] [] [] |
+ gprof | [] [] [] |
+ gpsdrive | [] [] |
+ gramadoir | [] [] |
+ grep | [] [] [] [] |
+ grub | [] [] [] |
+ gsasl | [] [] [] [] |
+ gss | [] [] [] |
+ gst-plugins-bad | [] [] [] [] [] [] |
+ gst-plugins-base | [] [] [] [] [] |
+ gst-plugins-good | [] [] [] [] [] |
+ gst-plugins-ugly | [] [] [] [] [] [] |
+ gstreamer | [] [] [] [] [] |
+ gtick | [] [] [] |
+ gtkam | [] [] [] [] [] [] |
+ gtkorphan | [] |
+ gtkspell | [] [] [] [] [] [] [] [] [] [] |
+ gutenprint | [] [] |
+ hello | [] [] [] [] |
+ help2man | [] [] |
+ hylafax | [] |
+ idutils | [] [] [] [] [] |
+ indent | [] [] [] [] [] [] [] |
+ iso_15924 | [] [] [] [] |
+ iso_3166 | [] [] [] [] [] () [] [] [] [] [] [] [] [] |
+ iso_3166_2 | [] [] [] |
+ iso_4217 | [] [] [] [] [] [] [] [] |
+ iso_639 | [] [] [] [] [] [] [] [] [] |
+ iso_639_3 | [] [] |
+ jwhois | [] [] [] [] |
+ kbd | [] [] [] |
+ keytouch | [] [] [] |
+ keytouch-editor | [] [] [] |
+ keytouch-keyboa... | [] [] [] |
+ klavaro | [] [] |
+ latrine | [] [] |
+ ld | |
+ leafpad | [] [] [] [] [] [] [] [] [] |
+ libc | [] [] [] [] |
+ libexif | [] [] () [] |
+ libextractor | |
+ libgnutls | [] [] |
+ libgpewidget | [] [] [] |
+ libgpg-error | [] [] |
+ libgphoto2 | [] [] |
+ libgphoto2_port | [] [] [] [] [] |
+ libgsasl | [] [] [] [] [] |
+ libiconv | [] [] [] [] [] |
+ libidn | [] [] |
+ lifelines | [] [] |
+ liferea | [] [] [] [] [] () () [] |
+ lilypond | [] |
+ linkdr | [] [] [] |
+ lordsawar | |
+ lprng | [] |
+ lynx | [] [] [] |
+ m4 | [] [] [] [] [] |
+ mailfromd | [] |
+ mailutils | [] |
+ make | [] [] [] [] |
+ man-db | [] [] [] |
+ man-db-manpages | [] [] [] |
+ minicom | [] [] [] [] |
+ mkisofs | [] [] [] |
+ myserver | |
+ nano | [] [] [] [] |
+ opcodes | [] [] |
+ parted | [] [] [] [] |
+ pies | [] |
+ popt | [] [] [] [] |
+ psmisc | [] [] [] |
+ pspp | [] [] |
+ pwdutils | [] |
+ radius | [] [] [] |
+ recode | [] [] [] [] [] [] [] [] |
+ rosegarden | () () |
+ rpm | [] [] [] |
+ rush | [] [] |
+ sarg | |
+ screem | |
+ scrollkeeper | [] [] [] [] [] [] [] [] |
+ sed | [] [] [] [] [] [] [] [] [] |
+ sharutils | [] [] [] [] |
+ shishi | [] |
+ skencil | [] [] |
+ solfege | [] [] [] [] |
+ solfege-manual | [] [] [] |
+ soundtracker | [] |
+ sp | |
+ sysstat | [] [] [] [] |
+ tar | [] [] [] [] |
+ texinfo | [] [] [] [] |
+ tin | [] |
+ unicode-han-tra... | |
+ unicode-transla... | |
+ util-linux-ng | [] [] [] [] [] |
+ vice | [] |
+ vmm | [] |
+ vorbis-tools | [] [] |
+ wastesedge | [] |
+ wdiff | [] [] |
+ wget | [] [] [] [] [] [] [] |
+ wyslij-po | [] [] [] |
+ xchat | [] [] [] [] [] [] [] [] [] |
+ xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] |
+ xkeyboard-config | [] [] [] |
+ +---------------------------------------------------+
+ nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr
+ 135 10 4 7 105 1 29 62 47 91 3 54 46 9 37
+
+ sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW
+ +---------------------------------------------------+
+ a2ps | [] [] [] [] [] | 27
+ aegis | [] | 9
+ ant-phone | [] [] [] [] | 9
+ anubis | [] [] [] [] | 15
+ aspell | [] [] [] | 20
+ bash | [] [] [] | 12
+ bfd | [] | 6
+ bibshelf | [] [] [] | 16
+ binutils | [] [] | 8
+ bison | [] [] | 12
+ bison-runtime | [] [] [] [] [] [] | 29
+ bluez-pin | [] [] [] [] [] [] [] [] | 37
+ bombono-dvd | [] | 4
+ buzztard | [] | 7
+ cflow | [] [] [] | 9
+ clisp | | 10
+ coreutils | [] [] [] [] | 22
+ cpio | [] [] [] [] [] [] | 13
+ cppi | [] [] | 5
+ cpplib | [] [] [] [] [] [] | 14
+ cryptsetup | [] [] | 7
+ dfarc | [] | 9
+ dialog | [] [] [] [] [] [] [] | 30
+ dico | [] | 2
+ diffutils | [] [] [] [] [] [] | 30
+ dink | | 4
+ doodle | [] [] | 7
+ e2fsprogs | [] [] [] | 11
+ enscript | [] [] [] [] | 17
+ exif | [] [] [] | 16
+ fetchmail | [] [] [] | 17
+ findutils | [] [] [] [] [] | 20
+ flex | [] [] [] [] | 15
+ freedink | [] | 10
+ gas | [] | 4
+ gawk | [] [] [] [] | 18
+ gcal | [] [] | 5
+ gcc | [] [] [] | 7
+ gettext-examples | [] [] [] [] [] [] [] | 34
+ gettext-runtime | [] [] [] [] [] [] [] | 29
+ gettext-tools | [] [] [] [] [] [] | 22
+ gip | [] [] [] [] | 22
+ gjay | [] | 3
+ gliv | [] [] [] | 14
+ glunarclock | [] [] [] [] [] | 19
+ gnubiff | [] [] | 4
+ gnucash | () [] () [] () | 10
+ gnuedu | [] [] | 7
+ gnulib | [] [] [] [] | 16
+ gnunet | [] | 1
+ gnunet-gtk | [] [] [] | 5
+ gnutls | [] [] [] | 10
+ gold | [] | 4
+ gpe-aerial | [] [] [] | 18
+ gpe-beam | [] [] [] | 19
+ gpe-bluetooth | [] [] [] | 13
+ gpe-calendar | [] [] [] [] | 12
+ gpe-clock | [] [] [] [] [] | 28
+ gpe-conf | [] [] [] [] | 20
+ gpe-contacts | [] [] [] | 17
+ gpe-edit | [] [] [] | 12
+ gpe-filemanager | [] [] [] [] | 16
+ gpe-go | [] [] [] [] [] | 25
+ gpe-login | [] [] [] | 11
+ gpe-ownerinfo | [] [] [] [] [] | 25
+ gpe-package | [] [] [] | 13
+ gpe-sketchbook | [] [] [] | 20
+ gpe-su | [] [] [] [] [] | 30
+ gpe-taskmanager | [] [] [] [] [] | 29
+ gpe-timesheet | [] [] [] [] [] | 25
+ gpe-today | [] [] [] [] [] [] | 30
+ gpe-todo | [] [] [] [] | 17
+ gphoto2 | [] [] [] [] [] | 24
+ gprof | [] [] [] | 15
+ gpsdrive | [] [] [] | 11
+ gramadoir | [] [] [] | 11
+ grep | [] [] [] | 10
+ grub | [] [] [] | 14
+ gsasl | [] [] [] [] | 14
+ gss | [] [] [] | 11
+ gst-plugins-bad | [] [] [] [] | 26
+ gst-plugins-base | [] [] [] [] [] | 24
+ gst-plugins-good | [] [] [] [] | 24
+ gst-plugins-ugly | [] [] [] [] [] | 29
+ gstreamer | [] [] [] [] | 22
+ gtick | [] [] [] | 13
+ gtkam | [] [] [] | 20
+ gtkorphan | [] [] [] | 14
+ gtkspell | [] [] [] [] [] [] [] [] [] | 45
+ gutenprint | [] | 10
+ hello | [] [] [] [] [] [] | 21
+ help2man | [] [] | 7
+ hylafax | [] | 5
+ idutils | [] [] [] [] | 17
+ indent | [] [] [] [] [] [] | 30
+ iso_15924 | () [] () [] [] | 16
+ iso_3166 | [] [] () [] [] () [] [] [] () | 53
+ iso_3166_2 | () [] () [] | 9
+ iso_4217 | [] () [] [] () [] [] | 26
+ iso_639 | [] [] [] () [] () [] [] [] [] | 38
+ iso_639_3 | [] () | 8
+ jwhois | [] [] [] [] [] | 16
+ kbd | [] [] [] [] [] | 15
+ keytouch | [] [] [] | 16
+ keytouch-editor | [] [] [] | 14
+ keytouch-keyboa... | [] [] [] | 14
+ klavaro | [] | 11
+ latrine | [] [] [] | 10
+ ld | [] [] [] [] | 11
+ leafpad | [] [] [] [] [] [] | 33
+ libc | [] [] [] [] [] | 21
+ libexif | [] () | 7
+ libextractor | [] | 1
+ libgnutls | [] [] [] | 9
+ libgpewidget | [] [] [] | 14
+ libgpg-error | [] [] [] | 9
+ libgphoto2 | [] [] | 8
+ libgphoto2_port | [] [] [] [] | 14
+ libgsasl | [] [] [] | 13
+ libiconv | [] [] [] [] | 21
+ libidn | () [] [] | 11
+ lifelines | [] | 4
+ liferea | [] [] [] | 21
+ lilypond | [] | 7
+ linkdr | [] [] [] [] [] | 17
+ lordsawar | | 1
+ lprng | [] | 3
+ lynx | [] [] [] [] | 17
+ m4 | [] [] [] [] | 19
+ mailfromd | [] [] | 3
+ mailutils | [] | 5
+ make | [] [] [] [] | 21
+ man-db | [] [] [] | 8
+ man-db-manpages | | 4
+ minicom | [] [] | 16
+ mkisofs | [] [] | 9
+ myserver | | 0
+ nano | [] [] [] [] | 21
+ opcodes | [] [] [] | 11
+ parted | [] [] [] [] [] | 15
+ pies | [] [] | 3
+ popt | [] [] [] [] [] [] | 27
+ psmisc | [] [] | 11
+ pspp | | 4
+ pwdutils | [] [] | 6
+ radius | [] [] | 9
+ recode | [] [] [] [] | 28
+ rosegarden | () | 0
+ rpm | [] [] [] | 11
+ rush | [] [] | 4
+ sarg | | 1
+ screem | [] | 3
+ scrollkeeper | [] [] [] [] [] | 27
+ sed | [] [] [] [] [] | 30
+ sharutils | [] [] [] [] [] | 22
+ shishi | [] | 3
+ skencil | [] [] | 7
+ solfege | [] [] [] [] | 16
+ solfege-manual | [] | 8
+ soundtracker | [] [] [] | 9
+ sp | [] | 3
+ sysstat | [] [] | 15
+ tar | [] [] [] [] [] [] | 23
+ texinfo | [] [] [] [] [] | 17
+ tin | | 4
+ unicode-han-tra... | | 0
+ unicode-transla... | | 2
+ util-linux-ng | [] [] [] [] | 20
+ vice | () () | 1
+ vmm | [] | 4
+ vorbis-tools | [] | 6
+ wastesedge | | 2
+ wdiff | [] [] | 7
+ wget | [] [] [] [] [] | 26
+ wyslij-po | [] [] | 8
+ xchat | [] [] [] [] [] [] | 36
+ xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] | 63
+ xkeyboard-config | [] [] [] | 22
+ +---------------------------------------------------+
+ 85 teams sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW
+ 178 domains 119 1 3 3 0 10 65 51 155 17 98 7 41 2618
Some counters in the preceding matrix are higher than the number of
visible blocks let us expect. This is because a few extra PO files are
@@ -742,13 +1256,13 @@ distributed as such by its maintainer. There might be an observable
lag between the mere existence a PO file and its wide availability in a
distribution.
- If January 2004 seems to be old, you may fetch a more recent copy of
+ If June 2010 seems to be old, you may fetch a more recent copy of
this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
matrix with full percentage details can be found at
-`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
+`http://translationproject.org/extra/matrix.html'.
-Using `gettext' in new packages
-===============================
+1.5 Using `gettext' in new packages
+===================================
If you are writing a freely available program and want to
internationalize it you are welcome to use GNU `gettext' in your
@@ -763,6 +1277,6 @@ the use of `gettext' the only thing missing are the translations. The
Free Translation Project is also available for packages which are not
developed inside the GNU project. Therefore the information given above
applies also for every other Free Software Project. Contact
-`translation@iro.umontreal.ca' to make the `.pot' files available to
-the translation teams.
+`coordinator@translationproject.org' to make the `.pot' files available
+to the translation teams.
diff --git a/AUTHORS b/AUTHORS
index 8de80e6..14ae479 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -37,17 +37,20 @@ GNU make porting efforts:
Port to MS-DOS (DJGPP), OS/2, and MS-Windows (native/MinGW) by:
DJ Delorie <dj@delorie.com>
Rob Tulloh <rob_tulloh@tivoli.com>
- Eli Zaretskii <eliz@is.elta.co.il>
+ Eli Zaretskii <eliz@gnu.org>
Jonathan Grant <jg@jguk.org>
Andreas Beuning <andreas.buening@nexgo.de>
Earnie Boyd <earnie@uses.sf.net>
+ Troy Runkel <Troy.Runkel@mathworks.com>
-----------------------------------
Other contributors:
Janet Carson <janet_carson@tivoli.com>
Howard Chu <hyc@highlandsun.com>
+ Ludovic Courtès <ludo@gnu.org>
Paul Eggert <eggert@twinsun.com>
+ Ramon Garcia Fernandez <ramon.garcia.f@gmail.com>
Klaus Heinz <kamar@ease.rhein-main.de>
Michael Joosten
Jim Kelton <jim_kelton@tivoli.com>
@@ -55,19 +58,21 @@ Other contributors:
Tim Magill <tim.magill@telops.gte.com>
Markus Mauhart <qwe123@chello.at>
Greg McGary <greg@mcgary.org>
+ Thien-Thi Nguyen <ttn@gnuvola.org>
Thomas Riedl <thomas.riedl@siemens.com>
Han-Wen Nienhuys <hanwen@cs.uu.nl>
Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
Carl Staelin (Princeton University)
Ian Stewartson (Data Logic Limited)
- Ramon Garcia Fernandez <ramon.garcia.f@gmail.com>
+ David A. Wheeler <dwheeler@dwheeler.com>
+ David Boyce <dsb@boyski.com>
+ Frank Heckenbach <f.heckenbach@fh-soft.de>
With suggestions/comments/bug reports from a cast of ... well ...
hundreds, anyway :)
-------------------------------------------------------------------------------
-Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/ChangeLog b/ChangeLog
index d135d1c..5fcf273 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,1619 @@
+2013-10-09 Paul Smith <psmith@gnu.org>
+
+ Version 4.0 released.
+
+ * configure.ac: Updated for the release.
+ * NEWS: Updated for the release.
+
+ * maintMakefile (tag-release): New target to add a Git tag.
+ * read.c (eval): Typo fix.
+ * ChangeLog.1: Typo fixes.
+ * w32/subproc/sub_proc.c (process_cleanup): Typo fix.
+
+2013-10-07 Eli Zaretskii <eliz@gnu.org>
+
+ * w32/compat/posixfcn.c (tmpfile): Move declaration of h before
+ the first executable statement. Reported by Gisle Vanem
+ <gvanem@yahoo.no>.
+
+2013-10-05 Paul Smith <psmith@gnu.org>
+
+ * makeint.h (MAP_USERFUNC): A new map type for function names.
+ * main.c (initialize_stopchar_map): Set up the function name map.
+
+ * gnumake.h (gmk_func_ptr): Define a type for function pointers.
+ (gmk_add_function): Convert the last argument to FLAGS.
+ (GMK_FUNC_*): Define flags for the function. Change the default
+ behavior to "expand" since that's the most common one.
+
+ * function.c (function_table_entry): Use new function pointer type.
+ (lookup_function): Accept any valid function name character based
+ on the MAP_USERFUNC values.
+ (define_new_function): Use the new calling signature. Verify that
+ registered functions have valid names.
+
+ * guile.c (guile_gmake_setup): Use new calling signatures.
+ * loadapi.c (gmk_add_function): Ditto.
+ * variable.h (define_new_function): Ditto.
+
+ * doc/make.texi (Loaded Object API): Make the registered function
+ API documentation more clear.
+
+2013-10-03 Eli Zaretskii <eliz@gnu.org>
+
+ * function.c (abspath): Reset root_len to one for Cygwin only when
+ HAVE_DOS_PATHS is defined. Suggested by Christopher Faylor.
+
+2013-10-02 Eli Zaretskii <eliz@gnu.org>
+
+ * w32/compat/posixfcn.c (tmpfile): New function, a replacement for
+ the Windows libc version.
+
+ Fix $abspath on Cygwin when HAVE_DOS_PATHS is in effect.
+ * function.c (IS_ABSOLUTE) [__CYGWIN__]: Special definition for
+ Cygwin.
+ (abspath) [__CYGWIN__]: Reset root_len to 1 if the absolute file
+ name has the Posix /foo/bar form.
+ [HAVE_DOS_PATHS]: Use root_len instead of hard-coded 2.
+
+2013-10-01 Paul Smith <psmith@gnu.org>
+
+ * configure.ac: Update version to 3.99.93.
+ * NEWS: Ditto.
+
+2013-09-30 Paul Smith <psmith@gnu.org>
+
+ * guile.c: Portability fixes for Guile 1.8.
+
+2013-09-29 Paul Smith <psmith@gnu.org>
+
+ * output.c (output_dump): Always write Enter/Leave messages to stdio.
+ (log_working_directory): This now always writes to stdio, so we
+ don't need the struct output parameter anymore.
+ (output_start): Show the working directory when output_sync is not
+ set or is recursive.
+ * main.c (main): Ensure the special "already shown Enter message"
+ token is removed from MAKE_RESTARTS before the user can see it.
+ * function.c (func_shell_base): If the output_context stderr
+ exists but is invalid, write to the real stderr.
+ Fixes suggested by Frank Heckenbach <f.heckenbach@fh-soft.de>.
+
+ * output.c: Guard unistd.h inclusion, add io.h.
+ * gnumake.h: Move GMK_EXPORT before the declarations.
+ * make_msvc_net2003.vcproj: Add missing files.
+ Changes for MSVC suggested by Gerte Hoogewerf <g.hoogewerf@gmail.com>
+
+ * function.c (func_shell_base) [EMX]: Fix EMX support for output-sync.
+ * job.c (child_execute_job) [EMX]: Ditto.
+ * job.h (child_execute_job) [EMX]: Ditto.
+ * w32/compat/posixfcn.c: Invert the test for NO_OUTPUT_SYNC.
+
+ * guile.c (GSUBR_TYPE): Pre-2.0 Guile doesn't provide a typedef
+ for gsubr pointers. Create one.
+ (guile_define_module): Use it.
+ (internal_guile_eval): Force UTF-8 encoding for Guile strings.
+
+ * main.c (main): Clear GNUMAKEFLAGS after parsing, to avoid
+ proliferation of options.
+ * NEWS: Document it.
+ * doc/make.texi (Options/Recursion): Ditto.
+
+2013-09-23 Eli Zaretskii <eliz@gnu.org>
+
+ * w32/compat/posixfcn.c: Fix the forgotten OUTPUT_SYNC conditional.
+
+ * job.h: Ditto, but in a comment.
+
+2013-09-22 Paul Smith <psmith@gnu.org>
+
+ * configure.ac: Update version to 3.99.92.
+ * NEWS: Ditto.
+
+ * implicit.c (pattern_search): After second expansion be sure to
+ handle order-only markers inside the expansion properly.
+ Fixes Savannah bug #31155.
+
+ * guile.c (guile_define_module): Technically a void* cannot
+ contain a pointer-to-function and some compilers warn about this.
+ Cast the function pointers.
+ * load.c (load_object): Ditto.
+
+ * read.c (eval): If load_file() returns -1, don't add this to the
+ "to be rebuilt" list.
+ * doc/make.texi (load Directive): Document it.
+
+ * guile.c (guile_gmake_setup): Don't initialize Guile so early.
+ (func_guile): Lazily initialize Guile the first time the $(guile ..)
+ function is invoked. Guile can steal file descriptors which
+ confuses our jobserver FD checking, so we don't want to initialize
+ it before we have to.
+
+ VMS port updates by Hartmut Becker <becker.ismaning@freenet.de>
+
+ * makefile.com: Add output to the filelist.
+ * output.c (va_copy): Add an implementation of this macro for VMS.
+ * commands.c: Ensure filedef.h is #included before dep.h.
+ * dir.c: Ditto.
+ * file.c: Ditto.
+ * guile.c: Ditto.
+ * main.c: Ditto.
+ * misc.c: Ditto.
+ * read.c: Ditto.
+ * rule.c: Ditto.
+ * variable.c: Ditto.
+ * readme.vms: Renamed to README.VMS and updates for this release.
+ * Makefile.am: Ditto.
+ * NEWS: Ditto.
+ * README.template: Ditto.
+ * Makefile.DOS.template: Ditto.
+
+2013-09-21 Paul Smith <psmith@gnu.org>
+
+ * maintMakefile (check-alt-config): Create a target to test
+ alternative configurations. Each one will build make with a
+ different configuration then run the test suite.
+
+ Invert the output-sync #define to NO_OUTPUT_SYNC
+
+ * configure.ac: Don't set OUTPUT_SYNC.
+ * makeint.h: Ditto.
+ * main.c: Use NO_OUTPUT_SYNC instead of OUTPUT_SYNC.
+ * output.c: Ditto.
+ * output.h: Ditto.
+ * job.h: Ditto.
+ * job.c: Ditto.
+ * config.ami.template: Set NO_OUTPUT_SYNC.
+ * config.h-vms.template: Ditto.
+ * config.h.W32.template: Ditto.
+ * configh.dos.template: Ditto.
+
+ Output generated while reading makefiles should be synced.
+
+ * main.c (make_sync): Define a context for syncing while reading
+ makefiles and other top-level operations.
+ (main): If we request syncing, enable it while we are parsing
+ options, reading makefiles, etc. to capture that output. Just
+ before we start to run rules, dump the output if any.
+ (die): Dump any output we've been syncing before we die
+ * output.h (OUTPUT_SET): Disable output_context if not syncout.
+
+ Stderr generated from shell functions in recipes should be synced.
+
+ * job.h (FD_STDIN, FD_STDOUT, FD_STDERR): Create new macros to
+ avoid magic numbers.
+ (child_execute_job): Take a FD for stderr.
+ * job.c (child_execute_job): Handle STDERR FD's in addition to
+ stdin and stdout.
+ (start_job_command): Call child_execute_job() with the new STDERR
+ parameter. Instead of performing the dup() here, send it to
+ child_execute_job() where it's already being done.
+ * function.c (func_shell_base): Pass the OUTPUT_CONTEXT stderr to
+ child_execute_job() if it's set, otherwise FD_STDERR.
+ * main.c (main): Pass FD_STDERR to child_execute_job().
+
+2013-09-19 Paul Smith <psmith@gnu.org>
+
+ * main.c (main): Set MAKE_RESTARTS to negative before re-exec if
+ we've already generated an "Entering" message. If we are started
+ and notice that MAKE_RESTARTS is negative, assume we already wrote
+ "Entering" and don't write it again.
+
+2013-09-18 Paul Smith <psmith@gnu.org>
+
+ * main.c (main): Set starting_directory before we write any
+ errors. Fixes Savannah bug #40043.
+
+2013-09-16 Eli Zaretskii <eliz@gnu.org>
+
+ * output.c [WINDOWS32]: Include windows.h and sub_proc.h, to avoid
+ compiler warnings for CLOSE_ON_EXEC.
+
+2013-09-16 Paul Smith <psmith@gnu.org>
+
+ * configure.ac: Update version to 3.99.91.
+ * NEWS: Ditto.
+
+2013-09-15 Paul Smith <psmith@gnu.org>
+
+ * doc/make.texi (Error Messages): Add a bit more info to the
+ section on static pattern errors, since they're common.
+ Fixes Savannah bug #31326.
+
+ * read.c (eval_makefile): If the file open fails with an
+ unrecoverable error, stop now rather than trying to make it.
+ Fixes Savannah bug #27374.
+
+ * main.c (main): Perform the validation of the jobserver FDs
+ early, before we read makefiles, to ensure that something hasn't
+ opened and used those FDs for some other reason.
+ Fixes Savannah bug #39934.
+
+ * main.c (main): Don't set MAKEFLAGS in the environment when we
+ restart. We have the original command line flags so keep the
+ original MAKEFLAGS settings as well.
+ Fixes Savannah bug #39203.
+
+2013-09-14 Paul Smith <psmith@gnu.org>
+
+ * main.c (decode_debug_flags): Add support for the "n" flag to
+ disable all debugging.
+ * make.1: Document the "n" (none) flag.
+ * doc/make.texi (Options Summary): Ditto.
+ * NEWS: Ditto.
+ Fixes Savannah bug #35248.
+
+ * misc.c (close_stdout): Move to output.c.
+ * main.c (main): Move atexit call to output_init().
+ * makeint.h: Remove close_stdout() declaration.
+ * output.c (output_init): Add close_stdout at exit only if it's open.
+ Fixes Savannah bug #33134. Suggested by David Boyce <dsb@boyski.com>.
+
+2013-09-14 Paul Smith <psmith@gnu.org>
+
+ * misc.c (set_append_mode, open_tmpfd, open_tmpfile): Move to output.c.
+ * misc.h: Ditto.
+ * output.h: Ditto.
+ * main.c (main): Move stdio init into output.c:output_init().
+ Change open_tmpfile() to output_tmpfile().
+ * output.c: Rename open_*() to output_*(). set_append_mode() and
+ open_tmpfd() are static.
+ (_outputs, log_working_directory): Accept a struct output and
+ print to that rather than the global context.
+ (output_dump): In recurse mode print enter/leave once for the
+ whole makefile.
+ (output_init): Initialize this processes stdio as well as child's.
+
+ * vmsjobs.c: Reformat to be closer to convention.
+
+2013-09-12 Paul Smith <psmith@gnu.org>
+
+ Rework output to handle synchronization and directory logging more
+ reliably.
+
+ * output.c: New file. Implement lazy synchronization and
+ directory logging so that we manage them "just in time", and the
+ destination of the output is set via a global state variable.
+ * output.h: New file.
+ * function.c (func_shell_base): Ensure the output is set up before
+ running a shell command, in case it writes to stderr.
+ (func_error): Use outputs() to generate output.
+ * job.h (struct child): Add struct output to track the child's output.
+ * job.c: Use struct output in the child structure to track output.
+ (child_out, sync_init, assign_child_tempfiles, pump_from_tmp)
+ (acquire_semaphore, release_semaphore, sync_output): Move most of
+ the output_sync handling to output.c.
+ (child_error): Set output, then use simple message() and error()
+ not _s versions.
+ * main.c (log_working_directory): Moved to output.c
+ (trace_option, decode_trace_flags) Remove. Remove support for
+ different trace modes; we don't use it anymore.
+ (die) Invoke output_close() before we exit.
+ * misc.c (message_s, error_s): Removed; no longer needed.
+ (message, error, fatal, perror_with_name, pfatal_with_name): Moved
+ to output.c.
+ * makeint.h: Remove message_s(), error_s(), and
+ log_working_directory(). Remove the TRACE_* macros.
+ * doc/make.texi: Enhance documentation for output sync, and remove
+ MODE assignment for --trace.
+ * make.1: Remove MODE assignment for --trace.
+ * Makefile.am: Add new files.
+ * NMakefile.template: Ditto.
+ * SMakefile.template: Ditto.
+ * build_w32.bat: Ditto.
+ * dosbuild.bat: Ditto.
+ * make.lnk: Ditto.
+ * make_nsvc_net2003.vcproj: Ditto.
+ * makefile.vms: Ditto.
+ * po/POTFILES.in: Ditto.
+
+2013-08-22 Petr Machata <pmachata@redhat.com>
+
+ * function.c (func_shell_base): Get rid of any avoidable limit on
+ stack size for processes spawned via $(shell).
+
+2013-07-22 Paul Smith <psmith@gnu.org>
+
+ * implicit.c (pattern_search): Use PARSE_SIMPLE_SEQ() even for
+ non-second expansion prerequisites, to handle globbing in patterns.
+ Fixes Savannah bug #39310.
+
+ * dep.h (PARSE_SIMPLE_SEQ): Macro for simple file sequence parsing.
+ * default.c (set_default_suffixes): Use it.
+ * file.c (split_prereqs): Ditto.
+ * main.c (main): Ditto.
+ * read.c (eval): Ditto.
+ * rule.c (install_pattern_rule): Ditto.
+ * file.c (split_prereqs): Use PARSEFS_NONE instead of 0.
+
+2013-07-21 Paul Smith <psmith@gnu.org>
+
+ Cleanups detected by cppcheck. Fixes Savannah bug #39158.
+ * arscan.c (ar_scan): Reduce the scope of local variables.
+ * dir.c (vms_hash): Ditto.
+ (find_directory): Ditto.
+ (file_impossible_p): Ditto.
+ * expand.c (variable_expand_string): Ditto.
+ * function.c (func_sort): Ditto.
+ (func_and): Ditto.
+ * job.c (reap_children): Ditto.
+ (exec_command): Ditto.
+ * main.c (main): Ditto.
+ * misc.c (collapse_continuations): Ditto.
+ * read.c (eval): Ditto.
+ (parse_file_seq): Ditto.
+ * vpath.c (gpath_search): Ditto.
+ (selective_vpath_search): Ditto.
+ * job.c (is_bourne_compatible_shell): Simplify for non-Windows systems.
+ * remake.c (f_mtime): Remove duplicate test.
+ * signame.c (strsignal): Fix bogus conditional.
+
+ * job.c (assign_child_tempfiles): Assign OUTFD to -1 for safety.
+ (start_job_command): Don't test output_sync and sync_cmd: redundant.
+ Changes suggested by Frank Heckenbach <f.heckenbach@fh-soft.de>.
+
+2013-07-14 Paul Smith <psmith@gnu.org>
+
+ * filedef.h (update_status): Convert UPDATE_STATUS from a char to
+ an enumeration. Some systems declare "char" to be "unsigned"
+ which broke the code (which expected to be able to use -1 as a
+ flag). Using magic values was unpleasant, so rather than just
+ force "signed char" I reworked it to use an enum.
+
+ * dep.h (update_goal_chain): Return an update_status value not int.
+ * remake.c (touch_file): Ditto.
+ (update_goal_chain): Track the update_status enum.
+
+ * file.c (enter_file): Use new enumeration values with update_status.
+ (remove_intermediates): Ditto.
+ (print_file): Ditto.
+ * commands.c (execute_file_commands): Ditto.
+ * job.c (reap_children): Ditto.
+ (start_job_command): Ditto.
+ (start_waiting_job): Ditto.
+ * main.c (main): Ditto.
+ * remake.c (update_file): Ditto.
+ (complain): Ditto.
+ (update_file_1): Ditto.
+ (notice_finished_file): Ditto.
+ (remake_file): Ditto.
+ * vmsjobs.c (vmsHandleChildTerm): Ditto.
+
+2013-07-09 Paul Smith <psmith@gnu.org>
+
+ * implicit.c (pattern_search): Keep a local copy of the number of
+ deps in deplist: the global max might change due to recursion.
+ Fixes a bug reported by Martin d'Anjou <martin.danjou14@gmail.com>.
+
+2013-06-28 Paul Smith <psmith@gnu.org>
+
+ * misc.c (set_append_mode): Set the O_APPEND flag on a file descriptor.
+ (open_tmpfd): Set append mode on the temporary file descriptor.
+ * main.c (main): Set append mode on stdout and stderr.
+ * makeint.h (set_append_mode): Declare it.
+
+2013-06-22 Eli Zaretskii <eliz@gnu.org>
+
+ * build_w32.bat (LinkGCC): Prevent a comment from being displayed
+ at build time.
+
+ * job.c (construct_command_argv_internal) [WINDOWS32]: Use
+ case-insensitive comparison with internal commands of non-Unix
+ shells.
+
+ * main.c (find_and_set_default_shell): Don't use file_exists_p or
+ dir_file_exists_p, as those call readdir, which can fail if PATH
+ includes directories with non-ASCII characters, and that would
+ cause Make to fail at startup with confusing diagnostics. See
+ https://sourceforge.net/mailarchive/message.php?msg_id=30846737
+ for the details.
+
+2013-06-22 Paul Smith <psmith@gnu.org>
+
+ Improve performance by using a character map to determine where we
+ want to stop searching strings, rather than discrete comparisons.
+
+ * read.c (find_char_unquote): Pass a stop map instead of various
+ flags and use that to check when to stop parsing the string.
+ (eval): Use the new find_char_unquote() calling signature.
+ (remove_comments): Ditto.
+ (unescape_char): Ditto.
+ (find_percent_cached): Ditto.
+ (parse_file_seq): Use a stop-map flag.
+ * main.c (stopchar_map): Character map definition.
+ (initialize_stopchar_map): Initialize the map definition.
+ (main): Invoke the map initialization function.
+ * misc.c (end_of_token_w32): Remove unused function.
+ * dir.c (dosify): Use STOP_SET to check for stop chars.
+ * main.c (main): Ditto.
+ * misc.c (end_of_token): Ditto.
+ * function.c (subst_expand): Ditto.
+ (func_notdir_suffix): Ditto.
+ (func_basename_dir): Ditto.
+ (abspath): Ditto.
+ * job.c (is_bourne_compatible_shell): Ditto.
+ * variable.c (parse_variable_definition): Ditto.
+ * read.c (eval): Ditto.
+ (conditional_line): Ditto.
+ (find_percent_cached): Ditto.
+ * dep.h (PARSE_FILE_SEQ): Update function declaration.
+ * default.c (set_default_suffixes): Update PARSE_FILE_SEQ() call.
+ * file.c (split_prereqs): Ditto.
+ * function.c (string_glob): Ditto.
+ * implicit.c (pattern_search): Ditto.
+ * rule.c (install_pattern_rule): Ditto.
+ * main.c (main): Ditto.
+
+2013-06-21 Paul Smith <psmith@gnu.org>
+
+ * main.c (verify_flag): Global variable to determine whether to
+ verify the database or not.
+ (decode_debug_flags): If debug mode, enable verify_flag.
+ (main): If MAKE_MAINTAINER_MODE, enable verify_flag, otherwise not.
+ (die): Only verify the database if verify_flag is set.
+ * file.c (enter_file): Don't check caching unless verify_flag.
+ * makeint.h: Export verify_flag.
+
+2013-05-27 Paul Smith <psmith@gnu.org>
+
+ * variable.c (define_automatic_variables): Create a new variable
+ MAKE_HOST.
+
+2013-05-27 Hartmut Becker <becker.ismaning@freenet.de>
+
+ * function.c (func_shell_base) [VMS]: Support VMS.
+ * makefile.com [VMS]: Ditto.
+ * makefile.vms [VMS]: Ditto.
+ * makeint.h [VMS]: Ditto.
+ * vmsjobs.c [VMS]: Ditto.
+ * job.h: Define RECORD_SYNC_MUTEX() when OUTPUT_SYNC is not set.
+ * load.c (unload_file): Fix signature if MAKE_LOAD is not set.
+
+2013-05-26 Paul Smith <psmith@gnu.org>
+
+ * remake.c (f_mtime): Ensure that archive file names are in the
+ string cache. Fixes Savannah bug #38442.
+
+ * read.c (readline): To be safe, move the entire buffer if we
+ detect a CR. Fixes Savannah bug #38945.
+
+ * job.c (new_job): Compare OUT to the beginning of the OUT
+ var/function, not IN. Fixes Savannah bug #39035.
+
+2013-05-22 Paul Smith <psmith@gnu.org>
+
+ * main.c (switches[]): Order switches so simple flags all come first.
+ (define_makeflags): Rework to make option passing more
+ reliable and the code less tricksy. Ensure simple flags are kept
+ in the initial batch of flags. Do not allow any flags with
+ options in that batch. If there are only non-simple flags MAKEFLAGS
+ begins with ' '.
+ (print_data_base): Print the version. Fixes part of Savannah #35336.
+
+ * read.c (eval_buffer): Initialize lineno.
+
+2013-05-18 Alexey Pavlov <alexpux@gmail.com> (tiny change)
+
+ * w32/Makefile.am (libw32_a_SOURCES): Add compat/posixfcn.c.
+
+ * configure.ac (OUTPUT_SYNC): Define for mingw32 target.
+
+ * job.c (construct_command_argv_internal) <sh_cmds_dos>
+ [WINDOWS32]: Add "move". Fixes Savannah bug #30714.
+
+ * guile.c: Move inclusion of makeint.h before gnumake.h. This
+ order must be observed when building Make, because gnumake.h must
+ be included with GMK_BUILDING_MAKE defined, which makeint.h
+ already does. Otherwise, the linker will look for, and fail to
+ find, gmk_* functions in some external dynamic library.
+
+2013-05-17 Benno Schulenberg <bensberg@justemail.net>
+
+ * main.c (decode_output_sync_flags): Fix output message.
+ * read.c (EXTRANEOUS): Ditto.
+ (record_files): Ditto.
+ * remake.c (update_file_1): Ditto.
+
+2013-05-17 Eli Zaretskii <eliz@gnu.org>
+
+ * main.c (prepare_mutex_handle_string): Define conditioned on
+ OUTPUT_SYNC.
+
+ * build_w32.bat: Copy config.h.W32 to config.h regardless of
+ whether or not we are building from SCM.
+
+2013-05-17 Paul Smith <psmith@gnu.org>
+
+ * configure.ac: Update version to 3.99.90.
+ * NEWS: Ditto.
+
+ * Source (*.[ch]): Remove TABs, use GNU coding styles.
+
+ * ALL: Update copyright.
+
+ * hash.c (CALLOC): Use xcalloc() to handle out of memory errors.
+
+ * makeint.h: Prototype new unload_file() function.
+ * load.c (unload_file): Create a function to unload a file.
+ (struct load_list): Type to remember loaded objects.
+ (loaded_syms): Global variable of remembered loaded objects so we
+ can unload them later. We don't have to remove from the list
+ because the only time we unload is if we're about to re-exec.
+ (load_object): Remove unneeded extra DLP argument.
+ (load_file): Remove unneeded extra DLP argument.
+ * filedef.h (struct file): Remove the DLP pointer and add the
+ LOADED bit flag. Saves 32/64 bytes per file, as this pointer is
+ almost never needed.
+ * read.c (eval): Set the new LOADED bit flag on the file.
+ * file.c (rehash_file): Merge the loaded bitfield.
+ * commands.c (execute_file_commands): Call unload_file() instead
+ of dlclose() directly.
+
+2013-05-14 Paul Smith <psmith@gnu.org>
+
+ * doc/make.texi (Loaded Object API): Document the requirement for
+ the plugin_is_GPL_compatible symbol.
+ * load.c (load_object): Check for plugin_is_GPL_compatible symbol.
+
+2013-05-13 Paul Smith <psmith@gnu.org>
+
+ * filedef.h (struct file): Add a builtin flag.
+ * file.c (enter_file): Unset the builtin flag.
+ (rehash_file): Ditto.
+ (print_file): Don't print builtin files if we've omitted them.
+ * default.c (undefine_default_variables): New function: go through
+ the default variables and undefine them.
+ (set_default_suffixes): Mark these suffix rules as builtin.
+ * makeint.h: Prototype.
+ * main.c (main): Handle addition of -r and -R to MAKEFLAGS in the
+ makefile. Fixes Savannah bug #20501.
+
+ * main.c (define_makeflags): Assign o_env_override level to
+ MAKEFLAGS to ensure it's set even in the presence of -e.
+ Fixes Savannah bug #2216.
+
+ * makeint.h (TRACE_NONE, TRACE_RULE, TRACE_DIRECTORY): Define
+ constants for the trace mode.
+ * main.c: Add new --trace mode parsing.
+ (decode_trace_flags): New function.
+ (decode_switches): Call it.
+ (define_makeflags): Fix a bug with long-name options.
+ * misc.c (fatal): Remove special output-sync handling.
+ * make.1: Document new --trace mode flags.
+ * doc/make.texi (Options Summary): Ditto.
+
+2013-05-11 Eli Zaretskii <eliz@gnu.org>
+
+ * job.c (child_out): Output the newline following the message
+ before fllush-ing the stream. Avoids displaying the following
+ failure message, which goes to stderr, on the same line.
+
+2013-05-06 Eli Zaretskii <eliz@gnu.org>
+
+ * gnumake.h (GMK_EXPORT) [_WIN32]: Move the dllexport declaration
+ here from makeint.h.
+
+ * makeint.h (GMK_BUILDING_MAKE) [WINDOWS32]: Define before
+ including gnumake.h.
+
+ * doc/make.texi (Loaded Object Example): Add a note about building
+ shared objects on MS-Windows.
+
+2013-05-05 Paul Smith <psmith@gnu.org>
+
+ * makeint.h (OUTPUT_SYNC_LINE, OUTPUT_SYNC_RECURSE): Rename
+ output-sync options "job" to "line" and "make" to "recurse".
+ * main.c (decode_output_sync_flags): Ditto.
+ * job.c (reap_children): Ditto.
+ (start_job_command): Ditto.
+ * make.1: Ditto.
+ * doc/make.texi (Parallel Output): Ditto.
+
+ * job.c (child_out): Write newlines explicitly, and don't do
+ anything if the message is empty.
+ (sync_output): Put working dir messages around stdout AND stderr.
+ (start_job_command): Move the tmp file assignment earlier. After
+ we do it, write the command line to the temp file to get the order
+ correct.
+
+ * misc.c (message): Remove special handling for output_sync.
+ (error): Ditto.
+
+2013-05-04 Paul Smith <psmith@gnu.org>
+
+ * loadapi.c (gmk_alloc): New function.
+ * gnumake.h: Add gmk_alloc(). Clean GMK_EXPORT a bit to avoid MAIN.
+ * makeint.h (GMK_EXPORT): New handling, vs. MAIN.
+ * doc/make.texi (Loaded Object API): Add information on the memory
+ handling functions.
+ (Loaded Object Example): Create an example.
+
+ * job.c (pump_from_tmp): (Rename) Write to stdout/stderr using
+ FILE* rather than fd. It's not a good idea to mix and match.
+
+2013-05-04 Eli Zaretskii <eliz@gnu.org>
+
+ * makeint.h (ftruncate) [_MSC_VER]: Redirect to _chsize.
+ (_S_ISDIR): If not defined (MinGW64), define to S_ISDIR.
+
+2013-05-04 Paul Smith <psmith@gnu.org>
+
+ * job.c (child_out): Handle EINTR and incomplete write scenarios.
+ (sync_init): New function: separate the initialization code.
+ (assign_child_tempfiles): Remove truncation from this function,
+ (sync_output): and add it here after output is generated.
+ (reap_children): Always call sync_output() in case output_sync was
+ reset after the child started, due to error.
+ (start_job_command): Create new sync_cmd variable. Use new method
+ for initializing the handle.
+ If we're not syncing the output be sure any output we've saved is
+ dumped immediately before starting the child.
+
+2013-05-04 Eli Zaretskii <eliz@gnu.org>
+
+ * job.c (start_job_command): Make the condition for creating a
+ temporary output file be identical to the Posix code branch.
+ Suggested by Frank Heckenbach <f.heckenbach@fh-soft.de>.
+
+2013-05-03 Eli Zaretskii <eliz@gnu.org>
+
+ * w32/subproc/sub_proc.c: Include makeint.h. Remove a private
+ incompatible prototype of xmalloc.
+ (batch_file_with_spaces): New function, detects Windows batch
+ files whose names include whitespace characters.
+ (process_begin): If exec_name is a batch file with whitespace
+ characters in its name, pass NULL as the first argument to
+ CreateProcess. This avoids weird failures due to buggy quoting by
+ CreateProcess. For the details, see the discussion starting at
+ http://lists.gnu.org/archive/html/make-w32/2013-04/msg00008.html.
+
+ * load.c (load_object, load_file): Accept an additional argument
+ DLP and return in it a pointer that can be used to unload the
+ dynamic object.
+
+ * read.c (eval): Call load_file with an additional argument, and
+ record the pointer returned there in the 'struct file' object of
+ dynamic objects in that object's 'struct file'.
+
+ * commands.c (execute_file_commands): Unload dynamic objects
+ before remaking them, to avoid failure to remake if the OS doesn't
+ allow overwriting objects that are in use.
+
+ * filedef.h (struct file): New member dlopen_ptr.
+
+ * gnumake.h (GMK_EXPORT): Define to dllexport/dllimport
+ decorations for Windows and to nothing on other platforms.
+ (gmk_eval, gmk_expand, gmk_add_function): Add GMK_EXPORT qualifier
+ to prototypes.
+
+ * makeint.h (MAIN): Define before including gnumake.h, to give
+ correct dllexport decorations to exported functions.
+ (load_file): Adjust prototype.
+
+ * loadapi.c: Don't include gnumake.h, since makeint.h already
+ includes it, and takes care of defining MAIN before doing so.
+
+ * build_w32.bat (LinkGCC): Produce an import library for functions
+ exported by Make for loadable dynamic objects.
+
+ * w32/compat/posixfcn.c (dlclose): New function.
+
+ * w32/include/dlfcn.h (dlclose): Add prototype.
+
+2013-05-01 Eli Zaretskii <eliz@gnu.org>
+
+ * job.c (start_job_command) [WINDOWS32]: Make the same fix for
+ MS-Windows as the previous commit did for Posix platforms.
+ (construct_command_argv_internal): Don't treat a backslash as an
+ escape character before whitespace, if the shell is not a Posix
+ shell. For the description of the problem, see
+ http://lists.gnu.org/archive/html/make-w32/2013-04/msg00014.html.
+
+2013-05-01 Paul Smith <psmith@gnu.org>
+
+ * job.c (start_job_command): Don't redirect output for recursive
+ make jobs, unless we're in makefile synchronization mode.
+
+2013-04-30 Stefano Lattarini <stefano.lattarini@gmail.com> (tiny change)
+
+ build: enable the 'silent-rules' automake options
+
+ * configure.ac (AM_INIT_AUTOMAKE): Here. The future major Automake
+ version 2.0 (ETA about one, one and half year from now) will enable
+ it by default, so better prepare ourselves.
+
+2013-04-30 Stefano Lattarini <stefano.lattarini@gmail.com> (tiny change)
+
+ build: require Autoconf >= 2.62 and Automake >= 1.11.1
+
+ Older versions of those tools should be considered fully obsolete.
+ Also, GNU make already requires Gettext >= 0.18.1, which has been
+ released six months after Automake 1.11.1 and two years after
+ Autoconf 2.62; so the new requirement shouldn't be problematic
+ for people already bootstrapping GNU make from the Git repository.
+
+ * configure.ac (AC_PREREQ): Require Autoconf 2.62 or later.
+ (AM_INIT_AUTOMAKE): Require Automake 1.11.1 or later (1.11 had
+ some serious bugs, and should not be used).
+
+2013-04-30 Stefano Lattarini <stefano.lattarini@gmail.com> (tiny change)
+
+ build: get rid of 'HAVE_ANSI_COMPILER' C preprocessor conditional
+
+ GNU make already assume C89 or later throughout the codebase, and
+ that preprocessor conditional was no longer used anyway.
+
+ * configure.ac: Remove AC_DEFINE of HAVE_ANSI_COMPILER.
+ * config.ami.template: Remove #define of HAVE_ANSI_COMPILER.
+ * config.h-vms.template: Likewise.
+ * config.h.W32.template: Likewise.
+ * configh.dos.template: Likewise.
+
+2013-04-30 Stefano Lattarini <stefano.lattarini@gmail.com> (tiny change)
+
+ cosmetics: fix few innocuous typos
+
+ Most of these were found using Lucas De Marchi's 'codespell' tool.
+
+ * ChangeLog: Fix minor typos.
+ * ChangeLog.2: Likewise.
+ * README.Amiga: Likewise.
+ * TODO.private: Likewise.
+ * function.c: Likewise.
+ * glob/glob.h: Likewise.
+ * job.c: Likewise.
+ * main.c: Likewise.
+ * readme.vms: Likewise.
+ * remake.c: Likewise.
+ * tests/ChangeLog: Likewise.
+ * tests/NEWS: Likewise.
+ * tests/README: Likewise.
+ * tests/scripts/variables/private: Likewise.
+ * vmsdir.h: Likewise.
+ * signame.c: Likewise. While at it, improve line wrapping in the
+ touched comment.
+
+2013-04-29 Eli Zaretskii <eliz@gnu.org>
+
+ * w32/include/dlfcn.h: New file.
+
+ * w32/compat/posixfcn.c: Include dlfcn.h.
+ (dlopen, dlerror, dlsym) [MAKE_LOAD]: New functions, in support of
+ dynamic loading.
+
+ * config.h.W32.template (MAKE_LOAD): Define.
+
+ * load.c (load_object) [HAVE_DOS_PATHS]: Support backslashes and
+ drive letters in file names of dynamic objects.
+
+ * job.c (construct_command_argv_internal) [WINDOWS32]: Return
+ right after generating new_argv for one_shell case. This fixes
+ the Windows build for both Unixy shell and stock Windows shells.
+
+2013-04-28 Eli Zaretskii <eliz@gnu.org>
+
+ * dir.c (local_stat) [WINDOWS32]: Use the wrapper on MS-Windows.
+ If the argument ends in "dir/.", make sure the parent dir exists
+ and is indeed a directory. Fixes Savannah bug #37065.
+
+2013-04-28 Paul Smith <psmith@gnu.org>
+
+ * makeint.h (message_s, error_s): Functions that print to strings
+ rather than directly to files.
+ * misc.c (message_s, error_s): Create them.
+ * job.c (child_error): Print error messages to the output sync
+ logs, if one exists, rather then directly to the terminal.
+ (reap_children): Move the per-line sync after child_error().
+
+ * configure.ac: Remove support for pre-ANSI variadic function calls.
+ * makeint.h: Ditto.
+ * misc.c: Ditto.
+ * config.ami.template: Ditto.
+ * config.h-vms.template: Ditto.
+ * config.h.W32.template: Ditto.
+ * configh.dos.template: Ditto.
+
+ Implement a "per-job" output synchronization option.
+
+ * main.c (decode_output_sync_flags): Recognize the new option.
+ * makeint.h (OUTPUT_SYNC_JOB): Add new values for "job"
+ * job.c (assign_child_tempfiles): In per-job mode, truncate the
+ temp file for re-use by the next job.
+ (sync_output): Don't close the temp files as we may still use them.
+ (free_child): Close the temp files here as we definitely don't
+ need them.
+ (new_job): In per-job output mode, sync_output() after each job.
+ * job.h (struct child): Avoid ifdefs.
+ * make.1: Add new options to the man page.
+ * doc/make.texi (Parallel Output): Break documentation on input
+ and output into separate sections for readability. Document the
+ new "job" and "none" modes.
+
+2013-04-27 Paul Smith <psmith@gnu.org>
+
+ * job.c (construct_command_argv_internal): Fix oneshell support
+ for non-POSIX-sh shells.
+
+ * load.c (load_object): Extract all POSIX-isms into a separate
+ function for portability.
+ (load_file): Check the .LOADED variable first and don't invoke
+ load_object() if it's already been loaded.
+
+2013-04-27 Eli Zaretskii <eliz@gnu.org>
+
+ * read.c (record_files): Pay attention to .ONESHELL in MS-Windows.
+
+ * job.c (construct_command_argv_internal): Support .ONESHELL on
+ MS-Windows, when the shell is not a Unixy shell.
+
+2013-04-27 Eli Zaretskii <eliz@gnu.org>
+
+ * job.c: Fix compilation error on GNU/Linux due to "label at end
+ of compound statement".
+
+2013-04-27 Frank Heckenbach <f.heckenbach@fh-soft.de> (tiny change)
+
+ * job.c (sync_output): Don't discard the output if
+ acquire_semaphore fails; instead, dump the output unsynchronized.
+
+2013-04-27 Eli Zaretskii <eliz@gnu.org>
+
+ Support --output-sync on MS-Windows.
+ * w32/compat/posixfcn.c: New file, with emulations of Posix
+ functions and Posix functionality for MS-Windows.
+
+ * w32/subproc/sub_proc.c: Include io.h.
+ (process_noinherit): New function, forces a file descriptor to not
+ be inherited by child processes.
+ (process_easy): Accept two additional arguments, and use them to
+ set up the standard output and standard error handles of the child
+ process.
+
+ * w32/include/sub_proc.h (process_easy): Adjust prototype.
+ (process_noinherit): Add prototype.
+
+ * read.c [WINDOWS32]: Include windows.h and sub_proc.h.
+
+ * makeint.h (LOCALEDIR) [WINDOWS32}: Define to NULL if not
+ defined. This is needed because the MS-Windows build doesn't have
+ a canonical place for LOCALEDIR.
+ (WIN32_LEAN_AND_MEAN) [WINDOWS32]: Define, to avoid getting from
+ windows.h header too much stuff that could conflict with the code.
+
+ * main.c <sync_mutex>: New static variable.
+ <switches>: Add support for "--sync-mutex" switch.
+ (decode_output_sync_flags): Decode the --sync-mutex= switch.
+ (prepare_mutex_handle_string) [WINDOWS32]: New function.
+ (main): Add "output-sync" to .FEATURES.
+
+ * job.h (CLOSE_ON_EXEC) [WINDOWS32]: Define to call
+ process_noinherit.
+ (F_GETFD, F_SETLKW, F_WRLCK, F_UNLCK, struct flock) [WINDOWS32]:
+ New macros.
+ (RECORD_SYNC_MUTEX): New macro, a no-op for Posix platforms.
+ (sync_handle_t): New typedef.
+
+ * job.c <sync_handle>: Change type to sync_handle_t.
+ (FD_NOT_EMPTY): Seek to the file's end. Suggested by Frank
+ Heckenbach <f.heckenbach@fh-soft.de>.
+ (pump_from_tmp_fd) [WINDOWS32]: Switch to_fd to binary mode for
+ the duration of this function, and then change back before
+ returning.
+ (start_job_command) [WINDOWS32]: Support output_sync mode on
+ MS-Windows. Use a system-wide mutex instead of locking
+ stdout/stderr. Call process_easy with two additional arguments:
+ child->outfd and child->errfd.
+ (exec_command) [WINDOWS32]: Pass two additional arguments, both
+ -1, to process_easy, to adjust for the changed function signature.
+
+ * function.c (windows32_openpipe) [WINDOWS32]: This function now
+ returns an int, which is -1 if it fails and zero otherwise. It
+ also calls 'error' instead of 'fatal', to avoid exiting
+ prematurely.
+ (func_shell_base) [WINDOWS32]: Call perror_with_name if
+ windows32_openpipe fails, now that it always returns. This avoids
+ a compiler warning that error_prefix is not used in the MS-Windows
+ build.
+
+ * config.h.W32.template (OUTPUT_SYNC): Define.
+
+ * build_w32.bat: Add w32/compat/posixfcn.c to compilation and
+ linking commands.
+
+2013-04-20 Stefano Lattarini <stefano.lattarini@gmail.com> (tiny change)
+
+ * README.git: Our autoconf input file is 'configure.ac', not
+ 'configure.in'. Adjust accordingly.
+ * build_w32.bat: Likewise.
+ * config.h-vms.template: Likewise.
+ * Makefile.DOS.template: Likewise.
+
+2013-04-16 Paul Smith <psmith@gnu.org>
+
+ * misc.c (open_tmpfd): Add a new function that returns a temporary
+ file by file descriptor.
+ (open_tmpfile): Move here from main.c.
+ * job.c (assign_child_tempfiles): Use the new open_tmpfd().
+
+2013-04-15 Paul Smith <psmith@gnu.org>
+
+ * makeint.h (OUTPUT_SYNC_TARGET, OUTPUT_SYNC_MAKE): Rename.
+ * job.c (start_job_command): Use new constants.
+ * main.c: New -O argument format.
+
+ * doc/make.texi (Options Summary): Document the argument to -O.
+ * make.1: Ditto.
+
+ * main.c (define_makeflags): Don't add space between a single-char
+ option and its argument.
+
+2013-04-06 Paul Smith <psmith@gnu.org>
+
+ * doc/make.texi (Implicit Variables): Clarify LDFLAGS vs. LDLIBS.
+ Fixes Savannah bug #37970.
+
+ * remake.c (check_dep): Reconsider files waiting on prerequisites,
+ as they may have finished. Fixes Savannah bug #37703.
+
+2013-02-28 Paul Smith <psmith@gnu.org>
+
+ * function.c (func_realpath): On Solaris (at least) realpath() can
+ fail due to EINTR, so loop it. Fixes Savannah bug #38420.
+
+2013-02-25 Paul Smith <psmith@gnu.org>
+
+ Add a proposed supported API for GNU make loaded objects.
+
+ * doc/make.texi (Loaded Object API): Document it.
+ * Makefile.am (make_SOURCES): Add new loadapi.c.
+ * dep.h: Remove eval_buffer(); moved to loadapi.c:gmk_eval().
+ * read.c (eval_buffer): Change eval_buffer() signature.
+ * main.c (main): Change eval_buffer() signature.
+ * variable.h (define_new_function): Change func_ptr signature.
+ * load.c (SYMBOL_EXTENSION): Change the extension.
+ * loadapi.c: Implement the new API.
+ * gnumake.h (gmk_eval): New function prototype.
+ (gmk_expand) Ditto.
+ (gmk_add_function) Ditto.
+ * gmk-default.scm (gmk-eval): Remove: now implemented in guile.c.
+ * guile.c (guile_expand_wrapper): Use gmk_expand()
+ (guile_eval_wrapper): Implement eval here to avoid double-expansion.
+ (guile_define_module): Define gmk-eval.
+ (func_guile): Use new func_ptr calling model.
+ (guile_gmake_setup): Use gmk_add_function() to declare $(guile ...)
+ * function.c (function_table_entry): Provide alternative func_ptr.
+ (func_eval): New signature for eval_buffer();
+ (function_table_init): New initialization for function_table_entry.
+ (expand_builtin_function): Support alternative invocation signature.
+ (define_new_function): Ditto.
+
+2013-01-20 Paul Smith <psmith@gnu.org>
+
+ * gnumake.h: New file to contain externally-visible content.
+ * makeint.h: Include gnumake.h. Move gmk_floc type to gnumake.h.
+ * Makefile.am (include_HEADERS): Install the gnumake.h header.
+
+ * makeint.h: Change struct floc to gmk_floc typedef.
+ * Many: Use the new typedef.
+
+ * make.h: Rename to makeint.h.
+ * Many: Use the new name makeint.h.
+
+2013-01-19 Paul Smith <psmith@gnu.org>
+
+ * doc/make.texi (load Directive): Update to discuss location of
+ loaded object file.
+ (Remaking Loaded Objects): Document remaking of loaded objects.
+
+ * main.c (main): Rename READ_MAKEFILES to READ_FILES.
+ * read.c: Change READ_MAKEFILES to READ_FILES since it now
+ contains loaded object files as well.
+ (read_all_makefiles): Ditto.
+ (eval_makefile): Ditto.
+ (eval): Add any loaded file to the READ_FILES list, so that it
+ will be considered for re-build.
+
+ * load.c (load_file): Return the simple filename (no symbol) in
+ the LDNAME argument (now a const char **).
+ This filename should no longer have "./" prepended: modify the
+ function to always check the current directory if the name has no
+ "/", before using the normal methods.
+ * make.h: Change the load_file() prototype.
+
+ * README.git: Add a bit more documentation on Git workflow & rules.
+
+2013-01-13 Paul Smith <psmith@gnu.org>
+
+ * main.c (main): Restore all make flags after re-exec is complete.
+ Fixes Savannah bug #38051.
+
+2013-01-12 Paul Smith <psmith@gnu.org>
+
+ Convert CVS archive to Git.
+
+ * configure.in: Rename to configure.ac.
+ * README.cvs: Rename to README.git and rework for Git.
+ * maintMakefile: Use git clean for cleanup.
+ * ChangeLog: Use new Git repository URL.
+ * ChangeLog.2: Ditto.
+ * Makefile.am: Change documentation for Git
+ * Makefile.DOS.template: Ditto.
+ * README.template: Ditto.
+ * build_w32.bat: Ditto.
+ * prepare_w32.bat: Ditto.
+ * .cvsignore: Rename to .gitignore, and change to Git format.
+
+2012-12-08 Eli Zaretskii <eliz@gnu.org>
+
+ * job.c (create_batch_file): Fix last change: always increment the
+ counter of batch files before trying to use it.
+
+2012-12-07 Eli Zaretskii <eliz@gnu.org>
+
+ * job.c (construct_command_argv_internal): Remove " from
+ sh_chars_dos[]. Ignore an escaped backslash inside a string
+ quoted with "..". This lifts the 4KB or 8KB command-line length
+ limitation imposed by the Windows shells when a command uses quoted
+ strings, because we now don't call the shell in that case.
+
+ * job.c (create_batch_file): Declare the counter of batch files
+ static, to avoid having 2 jobs using the same file name and
+ stepping on each other's toes. When all 64K names are used up,
+ make one more loop looking for slots that became vacant. This
+ avoids leaving behind temporary batch files in the temporary
+ directory, which happens frequently on a fast machine when using
+ parallel builds.
+ (reap_children): Add debug message for when removal of a temporary
+ batch file fails.
+
+2012-10-29 Paul Smith <psmith@gnu.org>
+
+ New feature: "load" directive for dynamically-loaded objects.
+
+ * NEWS: Document new "load" directive.
+ * doc/make.texi (Extending make): New chapter on extensions to make.
+ * configure.in: Check for dlopen/dlsym/dlerror and -ldl.
+ * Makefile.am (make_SOURCES): Add new file load.c.
+ * make.h: Prototype for load_file().
+ * main.c (main): Add "load" to .FEATURES if it's available.
+ * read.c (eval): Parse "load" and "-load" directives.
+
+2012-09-29 Paul Smith <psmith@gnu.org>
+
+ * configure.in: Require a new version of gettext (1.18.1).
+ Fixes Savannah bug #37307.
+
+2012-09-09 Paul Smith <psmith@gnu.org>
+
+ * configure.in (bsd_signal): Define _GNU_SOURCE, a la make.h.
+ Fixes Savannah bug #32247.
+
+ * remake.c (update_file_1): Force intermediate files to be
+ considered, not pruned, if their non-intermediate parent needs to
+ be remade. Fixes Savannah bug #30653.
+
+ * job.c (construct_command_argv_internal): Keep the command line
+ on the heap for very long lines. Fixes Savannah bug #36451.
+
+ * function.c (func_realpath): BSD realpath(3) doesn't fail if the
+ file does not exist: use stat. Fixes Savannah bug #35919.
+
+ * file.c (expand_deps): Duplicate the current variable buffer, not
+ the old pointer. Fixes Savannah bug #36925.
+
+ * read.c (eval): If we detect an initial UTF-8 BOM, skip it.
+ Fixes Savannah bug #36529.
+ (record_target_var): Remove unused variable "fname".
+ (eval): Use the correct pointer when adding to the variable buffer.
+ Fixes Savannah bug #36106.
+
+2012-09-09 Eli Zaretskii <eliz@gnu.org>
+
+ * read.c (unescape_char): Fix a thinko in the last change.
+
+2012-09-09 Paul Smith <psmith@gnu.org>
+
+ * default.c (default_variables): Use a correct default LIBPPATERNS
+ for MacOS. Fixes Savannah bug #37197.
+
+ * read.c (record_files): Reset the default macro values if .POSIX
+ is set. Fixes Savannah bug #37069.
+ (parse_file_seq): Break out of an infinite loop if we're not
+ making progress when parsing archive references.
+
+2012-09-01 Eli Zaretskii <eliz@gnu.org>
+
+ * README.W32.template: Update for job-server and Guile support.
+
+ * read.c (unescape_char): Advance 'p' after copying the unescaped
+ characters. Otherwise the backslashes are incorrectly erased from
+ the original string.
+
+2012-03-05 Paul Smith <psmith@gnu.org>
+
+ Update copyright notices to use year ranges, as allowed by
+ clarifications in the GNU Maintainer's Manual.
+
+2012-03-04 Paul Smith <psmith@gnu.org>
+
+ * read.c (unescape_char): New function to remove escapes from a char.
+ (record_files): Call it on the dependency string to unescape ":".
+ Fixes Savannah bug #12126 and bug #16545.
+
+ * make.h (CSTRLEN): Determine the length of a constant string.
+ * main.c: Use the new macro.
+ * read.c: Ditto.
+ * variable.h: Ditto.
+ * function.c: Simplify checks for function alternatives.
+
+ * expand.c (variable_append): If the current set is local and the
+ next one is not a parent, then treat the next set as
+ local as well. Fixes Savannah bug #35468.
+
+2012-03-03 Paul Smith <psmith@gnu.org>
+
+ * acinclude.m4 (AC_STRUCT_ST_MTIM_NSEC): Add support for AIX 5.2+
+ nanosecond timestamps. Fixes Savannah bug #32485.
+
+ Convert uses of `foo' for quoting to 'foo' to reflect changes in
+ the GNU Coding Standards. Fixes Savannah bug #34530.
+
+ * job.c (construct_command_argv_internal): In oneshell we need to
+ break the SHELLFLAGS up for argv. Fixes Savannah bug #35397.
+
+ * function.c (func_filter_filterout): Recompute the length of each
+ filter word in case it was compressed due to escape chars. Don't
+ reset the string as it's freed. Fixes Savannah bug #35410.
+
+ * misc.c (collapse_continuations): Only use POSIX-style
+ backslash/newline handling if the .POSIX target is set.
+ Addresses Savannah bug #16670 without backward-incompatibility.
+ * NEWS: Document behavior change.
+ * doc/make.texi (Splitting Lines): New section describing how to
+ use backslash/newline to split long lines.
+
+2012-02-26 Paul Smith <psmith@gnu.org>
+
+ * implicit.c (pattern_search): Check the stem length to avoid
+ stack overflows in stem_str. Fixes Savannah bug #35525.
+
+2012-02-03 Eli Zaretskii <eliz@gnu.org>
+
+ * w32/subproc/sub_proc.c (proc_stdin_thread, proc_stdout_thread)
+ (proc_stderr_thread, process_pipe_io): Ifdef away unused
+ functions.
+
+ * w32/subproc/w32err.c (map_windows32_error_to_string) [_MSC_VER]:
+ Don't use TLS storage for szMessageBuffer. Ifdef away special
+ code for handling Winsock error codes. Make the function return a
+ `const char *'. Suggested by Ozkan Sezer. Fixes Savannah bug #34832.
+
+2012-01-29 Paul Smith <psmith@gnu.org>
+
+ * gmk-default.scm (to-string-maybe): Variables map to empty strings.
+ In Guile 2.0, (define ...) results in a variable object so make
+ sure that maps to an empty string in make.
+
+ * variable.c (parse_variable_definition): New POSIX assignment ::=
+ Take a struct variable to return more information after parsing.
+ (assign_variable_definition): New parse_variable_definition() call.
+ * variable.h: New declaration of parse_variable_definition().
+ * read.c (do_define): New parse_variable_definition() call.
+ (parse_var_assignment): Ditto.
+ (get_next_mword): Parse ::= as a variable assignment.
+ * doc/make.texi (Flavors): Describe the new ::= syntax.
+ * NEWS: Mention the ::= operator.
+
+ * variable.h (struct variable): Rearrange elts to reduce struct size.
+
+ * function.c (func_file): Create a new function, $(file ...)
+ * doc/make.texi (File Function): Document the $(file ..) function.
+ * NEWS: Announce it.
+
+ * gmk-default.scm (to-string-maybe): Use a more portable way to
+ test for unprintable characters.
+ * configure.in [GUILE]: Guile 1.6 doesn't have pkg-config
+ * build_w32.bat: Ditto.
+
+2012-01-28 Eli Zaretskii <eliz@gnu.org>
+
+ * config.h.W32.template: Update from config.h.in.
+
+ Support a Windows build with Guile.
+
+ * README.W32.template: Update with instructions for building with
+ Guile.
+
+ * build_w32.bat: Support building with Guile.
+
+ * make.h [HAVE_STDINT_H]: Include stdint.h.
+
+ * main.c (main, clean_jobserver): Move declarations of variables
+ not used in the WINDOWS32 build to the #else branch, to avoid
+ compiler warnings.
+
+ Fix failures on MS-Windows when Make's standard handles are invalid.
+ This can happen when Make is invoked from a GUI application.
+
+ * w32/subproc/sub_proc.c (process_init_fd): Don't dereference
+ pproc if it is a NULL pointer.
+ (process_begin, process_cleanup): Don't try to close pipe handles
+ whose value is INVALID_HANDLE_VALUE.
+ (process_easy): Initialize hIn, hOut, and hErr to
+ INVALID_HANDLE_VALUE. If DuplicateHandle fails with
+ ERROR_INVALID_HANDLE, duplicate a handle for the null device
+ instead of STD_INPUT_HANDLE, STD_OUTPUT_HANDLE or
+ STD_ERROR_HANDLE. Don't try to close pipe handles whose value is
+ INVALID_HANDLE_VALUE.
+
+ * function.c (windows32_openpipe): Initialize hIn and hErr to
+ INVALID_HANDLE_VALUE. If DuplicateHandle fails with
+ ERROR_INVALID_HANDLE, duplicate a handle for the null device
+ instead of STD_INPUT_HANDLE or STD_ERROR_HANDLE. Fix indentation.
+ Don't try to close handles whose value is INVALID_HANDLE_VALUE.
+
+2012-01-25 Eli Zaretskii <eliz@gnu.org>
+
+ * function.c (define_new_function): Fix format strings in calls to
+ `fatal'.
+
+2012-01-17 Paul Smith <psmith@gnu.org>
+
+ * guile.c (func_guile): Handle NULL returns from Guile.
+
+2012-01-16 Paul Smith <psmith@gnu.org>
+
+ * make.h (PATH_SEPARATOR_CHAR): Allow resetting for crosscompiling
+ for Windows. Patch by Chris Sutcliffe <ir0nh34d@gmail.com>
+ Fixes Savannah bug #34818.
+
+2012-01-15 Paul Smith <psmith@gnu.org>
+
+ * variable.h: Prototype an interface for defining new make functions.
+ * function.c (define_new_function): Define it.
+ (func_guile): Remove the "guile" function.
+ (function_table_init): Ditto.
+ * guile.c (func_guile): Add the "guile" function here.
+ (setup_guile): Call define_new_function() to define it.
+ (guile_eval_string): Obsolete.
+
+ * all: Update copyright notices.
+
+2012-01-12 Paul Smith <psmith@gnu.org>
+
+ Support GNU Guile as an embedded extension language for GNU make.
+
+ * NEWS: Note the new Guile capability.
+ * Makefile.am (EXTRA_DIST, make_SOURCES): Add new guile source files.
+ (AM_CFLAGS): Add Guile compiler flags.
+ (guile): Add a rule for converting default SCM into a C header.
+ * configure.in: Add support for --with-guile.
+ Also, convert the entire file to properly escaped autoconf m4, and
+ utilize newer features such as AS_IF() and AS_CASE().
+ * doc/make.texi (Guile Function): Document the GNU guile integration.
+ * make.h (guile_eval_string, guile_boot): Prototypes for Guile.
+ * main.c (main): Run guile_boot() to handle main().
+ (real_main): All the previous content of main() is here.
+ (real_main): Add "guile" to the .FEATURES variable.
+ * function.c (func_guile): Call Guile.
+ * guile.c: New file implementing GNU make integration with GNU Guile.
+ * gmk-default.scm: The integration of GNU make with Guile uses
+ Guile itself for much of the parsing and conversion of return
+ types, etc. This implementation is embedded into GNU make.
+ * config.h-vms.template: Disable Guile support.
+ * config.h.W32.template: Ditto.
+ * configh.dos.template: Ditto.
+ * config.ami.template: Ditto.
+ * makefile.vms: Add new Guile files.
+ * Makefile.DOS.template: Ditto.
+ * Makefile.ami: Ditto.
+ * NMakefile.template: Ditto.
+ * SMakefile.template: Ditto.
+ * build_w32.bat: Ditto.
+ * dosbuild.bat: Ditto.
+ * make_msvc_net2001.vcproj: Ditto.
+
+2011-11-15 Paul Smith <psmith@gnu.org>
+
+ * main.c (main): Use %ld when printing DWORD values.
+ * job.c (new_job): Ditto.
+ * w32/include/sub_proc.h: Use const.
+ * w32/subproc/sub_proc.c (open_jobserver_semaphore): Use const.
+ Fixes Savannah bug #34830. Changes suggested by Ozkan Sezer.
+
+ * configure.in (MAKE_JOBSERVER): Enable jobserver on W32 systems.
+ * config.h.W32.template (MAKE_JOBSERVER): Ditto.
+
+2011-11-14 Paul Smith <psmith@gnu.org>
+
+ * read.c (eval): parse_file_seq() might shorten the string due to
+ backslash removal. Start parsing again at the colon.
+ Fixes Savannah bug #33399.
+
+2011-11-13 Paul Smith <psmith@gnu.org>
+
+ * file.c (file_timestamp_cons): Match up data types to avoid warnings.
+ * filedef.h: Ditto.
+ * misc.c (concat): Ditto.
+ * read.c (eval): Assign value to avoid warnings.
+ * function.c (func_shell_base): Use fork() instead of vfork() to
+ avoid warnings.
+ * make.h (INTEGER_TYPE_SIGNED): Use <=0 to avoid warnings.
+ Fixes Savannah bug #34608.
+
+ * job.c (construct_command_argv): Remove _p.
+ (construct_command_argv_internal): Remove _ptr.
+ Fixes Savannah bug #32567.
+
+ * main.c (clean_jobserver): Don't write the free token to the pipe.
+ Change suggested by Tim Newsome <tnewsome@aristanetworks.com>
+
+ * acinclude.m4 (AC_STRUCT_ST_MTIM_NSEC): Add support for Darwin.
+ * filedef.h (FILE_TIMESTAMP_STAT_MODTIME): Ditto.
+ Patch provided by Troy Runkel <Troy.Runkel@mathworks.com>
+
+2011-10-11 Troy Runkel <Troy.Runkel@mathworks.com>
+
+ * config.h.W32: Enable job server support for Windows.
+ * main.c [WINDOWS32]: Include sub_proc.h
+ (main): Create a named semaphore to implement the job server.
+ (clean_jobserver): Free the job server semaphore when make is finished.
+ * job.c [WINDOWS32]: Define WAIT_NOHANG
+ (reap_children): Support non-blocking wait for child processes.
+ (free_child): Release job server semaphore when child process finished.
+ (job_noop): Don't define function on Windows.
+ (set_child_handler_action_flags): Don't define function on Windows.
+ (new_job): Wait for job server semaphore or child process termination.
+ (exec_command): Pass new parameters to process_wait_for_any.
+ * w32/include/sub_proc.h [WINDOWS32]: New/updated EXTERN_DECL entries.
+ * w32/subproc/sub_proc.c [WINDOWS32]: Added job server implementation.
+ (open_jobserver_semaphore): Open existing job server semaphore by name.
+ (create_jobserver_semaphore): Create new job server named semaphore.
+ (free_jobserver_semaphore): Close existing job server semaphore.
+ (acquire_jobserver_semaphore): Decrement job server semaphore count.
+ (release_jobserver_semaphore): Increment job server semaphore count.
+ (has_jobserver_semaphore): Returns whether job server semaphore exists.
+ (get_jobserver_semaphore_name): Returns name of job server semaphore.
+ (wait_for_semaphore_or_child_process): Wait for either the job server
+ semaphore to become signalled or a child process to terminate.
+ (process_wait_for_any_private): Support for non-blocking wait for child.
+ (process_wait_for_any): Added support for non-blocking wait for child.
+ (process_file_io): Pass new parameters to process_wait_for_any_private.
+
+2011-09-18 Paul Smith <psmith@gnu.org>
+
+ * main.c (main): If we're re-exec'ing and we're the master make,
+ then restore the job_slots value so it goes back into MAKEFLAGS
+ properly. See Savannah bug #33873.
+
+ * remake.c (library_search): STD_DIRS is computed when other
+ static vars like buflen etc. are computed, so it must be static
+ as well. See Savannah bug #32511.
+
+2011-09-16 Paul Smith <psmith@gnu.org>
+
+ * maintMakefile (do-po-update): Apparently we have to avoid
+ certificate checks on the http://translationproject.org site now.
+
+2011-09-12 Paul Smith <psmith@gnu.org>
+
+ * read.c (eval): Ensure exported variables are defined in the
+ global scope. Fixes Savannah bug #32498.
+
+2011-09-11 Paul Smith <psmith@gnu.org>
+
+ * Makefile.am (dist-hook): Remove w32/Makefile and .deps/ from the
+ dist file. Fixes Savannah bug #31489.
+
+ * doc/make.texi (Complex Makefile): Add a hint about using
+ #!/usr/bin/make (for Savannah support request #106459)
+
+2011-09-02 Paul Smith <psmith@gnu.org>
+
+ * remake.c (touch_file): If we have both -n and -t, -n takes
+ precedence. Patch from Michael Witten <mfwitten@gmail.com>
+
+2011-08-29 Paul Smith <psmith@gnu.org>
+
+ * expand.c (variable_expand_string): Always allocate a new buffer
+ for a string we're expanding. The string we're working on can get
+ freed while we work on it (for example if it's the value of a
+ variable which modifies itself using an eval operation).
+ See Savannah patch #7534 for the original report by Lubomir Rintel.
+
+2011-06-12 Paul Smith <psmith@gnu.org>
+
+ * read.c (parse_file_seq): Move the check for empty members out of
+ the loop so we can go to the next member properly.
+ Another fix for Savannah bug #30612.
+
+ * config.h-vms.template: Newer versions of VMS have strncasecmp()
+ Patch provided by: Hartmut Becker <becker.ismaning@freenet.de>
+
+2011-05-07 Paul Smith <psmith@gnu.org>
+
+ * expand.c (variable_append): Add a LOCAL argument to track
+ whether this is the first invocation or not. If it's not and
+ private_var is set, then skip this variable and try the next one.
+ Fixes Savannah bug #32872.
+
+ * read.c (parse_file_seq): Ensure existence checks use glob().
+
+2011-05-07 Eli Zaretskii <eliz@gnu.org>
+
+ * job.c (construct_command_argv_internal): Don't assume shellflags
+ is always non-NULL. Escape-protect characters special to the
+ shell when copying the value of SHELL into new_line. Fixes
+ Savannah bug #23922.
+
+2011-05-02 Paul Smith <psmith@gnu.org>
+
+ * doc/make.texi (Special Variables): Add documentation for the new
+ words in .FEATURES. Fixes Savannah bug #32058.
+ (Flavor Function): Rewrite the section on the flavor function.
+ Fixes Savannah bug #31582.
+
+ * function.c (func_sort): Use the same algorithm to count the
+ number of words we will get after the split, as we use to split.
+ Based on a patch from Matthias Hopf. Fixes Savannah bug #33125.
+
+ * make.h: Make global variable stack_limit extern.
+ Fixes Savannah bug #32753.
+
+2011-05-01 Paul Smith <psmith@gnu.org>
+
+ * read.c (parse_file_seq): Don't try to invoke glob() unless there
+ are potential wildcard characters in the filename. Performance
+ enhancement suggested by Michael Meeks <michael.meeks@novell.com>
+
+2011-04-29 Boris Kolpackov <boris@codesynthesis.com>
+
+ * read.c (eval_makefile): Delay caching of the file name until after
+ all the expansions and searches.
+
+2011-04-17 David A. Wheeler <dwheeler@dwheeler.com>
+
+ * doc/make.texi (Reading Makefiles): Document "!=".
+ (Setting): Ditto.
+ (Features): Ditto.
+ * variable.h (enum variable_flavor): New type "f_shell".
+ * variable.c (shell_result): Send a string to the shell and store
+ the output.
+ (do_variable_definition): Handle f_shell variables: expand the
+ value, then send it to the shell and store the result.
+ (parse_variable_definition): Parse "!=" shell assignments.
+ * read.c (get_next_mword): Treat "!=" as a varassign word.
+ * function.c (fold_newlines): If trim_newlines is set remove all
+ trailing newlines; otherwise remove only the last newline.
+ (func_shell_base): Move the guts of the shell function here.
+ (func_shell): Call func_shell_base().
+
+2011-02-21 Paul Smith <psmith@gnu.org>
+
+ * strcache.c (various): Increase performance based on comments
+ from Ralf Wildenhues <Ralf.Wildenhues@gmx.de>. Stop looking for
+ a buffer when we find the first one that fits, not the best fit.
+ If there is not enough free space in a buffer move it to a
+ separate list so we don't have to walk it again.
+ * make.h (NDEBUG): Turn off asserts unless maintainer mode is set.
+ (strcache_add_len, strcache_setbufsize): Use unsigned length/size.
+ * maintMakefile (AM_CPPFLAGS): Enable MAKE_MAINTAINER_MODE.
+
+ * remake.c (complain): Move translation lookups closer to use.
+
+2011-02-13 Paul Smith <psmith@gnu.org>
+
+ * doc/make.texi: Clean up references to "static" variables and
+ semicolon errors. Patch from Michael Witten <mfwitten@gmail.com>.
+
+2010-12-27 Paul Smith <psmith@gnu.org>
+
+ * make.1: Update the header/footer info in the man page.
+
+2010-11-28 Paul Smith <psmith@gnu.org>
+
+ * read.c (record_target_var): Don't reset v if it's the same as
+ the global version. Fixes Savannah bug #31743.
+
+2010-11-06 Paul Smith <psmith@gnu.org>
+
+ * variable.c (print_auto_variable): Print auto variables; ignore others.
+ (print_noauto_variable): Print non-auto variables; ignore others.
+ (print_variable_set): Allow the caller to select which type to print.
+ (print_target_variables): Show all the non-auto variables for a target.
+
+ * default.c (install_default_suffix_rules): Initialize recipe_prefix.
+ * rule.c (install_pattern_rule): Ditto.
+ * read.c (record_files): Pass in the current recipe prefix. Remember
+ it in the struct command for these targets.
+ (eval): Remember the value of RECIPEPREFIX when we start parsing.
+ Do not remove recipe prefixes from the recipe here: we'll do it later.
+ * job.c (start_job_command): Remove recipe prefix characters early,
+ before we print the output or chop it up.
+ * file.c (print_file): If recipe_prefix is not standard, reset it
+ in -p output. Assign target variables in -p output as well.
+
+ * commands.c (chop_commands): Max command lines is USHRT_MAX.
+ Set any_recurse as a bitfield.
+ * make.h (USHRT_MAX): Define if not set.
+
+2010-10-27 Paul Smith <psmith@gnu.org>
+
+ * commands.h (struct commands): Rearrange to make better use of
+ memory. Add new recipe_prefix value.
+
+2010-10-26 Paul Smith <psmith@gnu.org>
+
+ * doc/make.texi (Setting): Document the treatment of
+ backslash-newline in variable values.
+ * misc.c (collapse_continuations): Do not collapse multiple
+ backslash-newlines into a single space. Fixes Savannah bug #16670.
+
+2010-08-29 Paul Smith <psmith@gnu.org>
+
+ * doc/make.texi (Implicit Variables): Document LDLIBS and LOADLIBES.
+ Fixes Savannah bug #30807.
+ (Instead of Execution): Mention that included makefiles are still
+ rebuilt even with -n. Fixes Savannah bug #30762.
+
+ * configure.in: Bump to 3.82.90.
+
+ * make.h: Add trace_flag variable.
+ * main.c (switches): Add --trace option.
+ (trace_flag): Declare variable.
+ * job.c (start_job_command): Show recipe if trace_flag is set.
+ (new_job): Show trace messages if trace_flag is set.
+ * doc/make.texi (Options Summary): Document the new --trace option.
+ * make.1: Add --trace documentation.
+ * NEWS: Mention --trace.
+
+ * job.c (child_error): Show recipe filename/linenumber on error.
+ Also show "(ignored)" when appropriate even for signals/coredumps.
+ * NEWS: Mention file/linenumber change.
+
+ * main.c (main): Print version info when DB_BASIC is set.
+
+ * job.c (construct_command_argv_internal): If shellflags is not
+ set, choose an appropriate default value. Fixes Savannah bug #30748.
+
+2010-08-27 Eli Zaretskii <eliz@gnu.org>
+
+ * variable.c (define_automatic_variables) [__MSDOS__ || WINDOWS32]:
+ Remove trailing backslashes in $(@D), $(<D), etc., for consistency
+ with forward slashes. Fixes Savannah bug #30795.
+
+2010-08-13 Paul Smith <psmith@gnu.org>
+
+ * NEWS: Accidentally forgot to back out the sorted wildcard
+ enhancement in 3.82, so update NEWS.
+ Also add NEWS about the error check for explicit and pattern
+ targets in the same rule, added to 3.82.
+
+ * main.c (main): Add "oneshell" to $(.FEATURES) (forgot to add
+ this in 3.82!)
+
+ * read.c (parse_file_seq): Fix various errors parsing archives
+ with multiple objects in the parenthesis, as well as wildcards.
+ Fixes Savannah bug #30612.
+
+2010-08-10 Paul Smith <psmith@gnu.org>
+
+ * main.c (main): Expand MAKEFLAGS before adding it to the
+ environment when re-exec'ing. Fixes Savannah bug #30723.
+
+2010-08-07 Eli Zaretskii <eliz@gnu.org>
+
+ * w32/subproc/build.bat: Make all 3 cl.exe compile command lines
+ use the same /I switches. Fixes Savannah bug #30662.
+
+ * function.c (func_shell) [WINDOWS32]: Reset just_print_flag
+ around the call to construct_command_argv, so that a temporary
+ batch file _is_ created when needed for $(shell).
+ Fixes Savannah bug #16362.
+
+2010-08-07 Juan Manuel Guerrero <juan.guerrero@gmx.de>
+
+ * configh.dos.template (HAVE_STRNCASECMP): Define.
+
2010-07-28 Paul Smith <psmith@gnu.org>
Version 3.82 released.
@@ -3994,15 +5610,14 @@
-See ChangeLog.2, available in the CVS repository at:
+See ChangeLog.2, available in the Git repository at:
- http://savannah.gnu.org/cvs/?group=make
+ http://git.savannah.gnu.org/cgit/make.git/tree/
for earlier changes.
-Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free
-Software Foundation, Inc.
+Copyright (C) 2000-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/Makefile.DOS b/Makefile.DOS
index 58c950c..42cd487 100644
--- a/Makefile.DOS
+++ b/Makefile.DOS
@@ -1,8 +1,7 @@
# -*-Makefile-*- template for DJGPP
# Makefile.in generated automatically by automake 1.2 from Makefile.am
#
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-# 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
@@ -72,13 +71,13 @@ PACKAGE = make
PERL = perl
RANLIB = ranlib
REMOTE = stub
-VERSION = 3.82
+VERSION = 4.0
AUTOMAKE_OPTIONS = 1.2
bin_PROGRAMS = make$(EXEEXT)
-make_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c file.c function.c getopt.c getopt1.c implicit.c job.c main.c misc.c read.c remake.c rule.c signame.c strcache.c variable.c version.c vpath.c hash.c remote-$(REMOTE).c
+make_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c file.c function.c getopt.c getopt1.c implicit.c job.c load.c loadapi.c main.c misc.c output.c read.c remake.c rule.c signame.c strcache.c variable.c version.c vpath.c hash.c guile.c remote-$(REMOTE).c
# This should include the glob/ prefix
libglob_a_SOURCES = glob/fnmatch.c glob/glob.c glob/fnmatch.h glob/glob.h
make_LDADD = glob/libglob.a
@@ -89,7 +88,7 @@ INCLUDES = -I$(srcdir)/glob -DLIBDIR=\"$(prefix)$(libdir)\" -DINCLUDEDIR=\"$(pre
BUILT_SOURCES = README build.sh-in
-EXTRA_DIST = $(BUILT_SOURCES) $(man_MANS) README.customs remote-cstms.c make-stds.texi texinfo.tex SCOPTIONS SMakefile Makefile.ami README.Amiga config.ami amiga.c amiga.h NMakefile README.DOS configh.dos configure.bat makefile.com README.W32 build_w32.bat config.h-W32 subproc.bat make.lnk config.h-vms makefile.vms readme.vms vmsdir.h vmsfunctions.c vmsify.c
+EXTRA_DIST = $(BUILT_SOURCES) $(man_MANS) README.customs remote-cstms.c make-stds.texi texinfo.tex SCOPTIONS SMakefile Makefile.ami README.Amiga config.ami amiga.c amiga.h NMakefile README.DOS configh.dos configure.bat makefile.com README.W32 build_w32.bat config.h-W32 subproc.bat make.lnk config.h-vms makefile.vms README.VMS vmsdir.h vmsfunctions.c vmsify.c gmk-default.scm gmk-default.h
SUBDIRS = glob doc
mkinstalldirs = ${exec_prefix}/bin/gmkdir -p
@@ -104,7 +103,7 @@ DEFS = -I. -I$(srcdir) -I.
CPPFLAGS = -DHAVE_CONFIG_H
LDFLAGS =
LIBS =
-make_OBJECTS = ar.o arscan.o commands.o default.o dir.o expand.o file.o function.o getopt.o getopt1.o implicit.o job.o main.o misc.o read.o remake.o rule.o signame.o strcache.o variable.o version.o vpath.o hash.o remote-$(REMOTE).o
+make_OBJECTS = ar.o arscan.o commands.o default.o dir.o expand.o file.o function.o getopt.o getopt1.o implicit.o job.o load.o loadapi.o main.o misc.o output.o read.o remake.o rule.o signame.o strcache.o variable.o version.o vpath.o hash.o guile.o remote-$(REMOTE).o
make_DEPENDENCIES = glob/libglob.a
make_LDFLAGS =
libglob_a_LIBADD =
@@ -123,7 +122,7 @@ man1dir = $(mandir)/man1
MANS = $(man_MANS)
NROFF = nroff
-DIST_COMMON = README ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL Makefile.am Makefile.in NEWS acconfig.h aclocal.m4 alloca.c build.sh-in config.h-in configure configure.in getloadavg.c
+DIST_COMMON = README ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL Makefile.am Makefile.in NEWS acconfig.h aclocal.m4 alloca.c build.sh-in config.h-in configure configure.ac getloadavg.c
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
@@ -507,7 +506,7 @@ html
#
dist-hook:
(cd $(srcdir); \
- w32=`find w32 -follow \( -name CVS -prune \) -o -type f -print`; \
+ w32=`find w32 -follow \( -name .git -prune \) -o -type f -print`; \
tar chf - $$w32) \
| (cd $(distdir); tar xfBp -)
@@ -594,60 +593,67 @@ check-regression:
# dummy
# .deps/ar.Po
-ar.o: ar.c make.h config.h \
+ar.o: ar.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
filedef.h hash.h dep.h \
# .deps/arscan.Po
-arscan.o: arscan.c make.h config.h \
+arscan.o: arscan.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
# .deps/commands.Po
-commands.o: commands.c make.h config.h \
+commands.o: commands.c \
+ makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h filedef.h hash.h variable.h job.h \
+ filedef.h hash.h dep.h \
+ variable.h job.h output.h \
commands.h
# .deps/default.Po
-default.o: default.c make.h config.h \
+default.o: default.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- filedef.h hash.h variable.h rule.h dep.h \
- job.h \
+ filedef.h hash.h variable.h rule.h dep.h job.h output.h \
commands.h
# .deps/dir.Po
-dir.o: dir.c make.h config.h \
+dir.o: dir.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- hash.h \
+ hash.h filedef.h dep.h \
# .deps/expand.Po
-expand.o: expand.c make.h config.h \
+expand.o: expand.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- filedef.h hash.h \
- job.h \
- commands.h variable.h \
- rule.h
+ filedef.h hash.h job.h output.h \
+ commands.h variable.h rule.h
# .deps/file.Po
-file.o: file.c make.h config.h \
+file.o: file.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h filedef.h \
- hash.h job.h \
+ filedef.h hash.h dep.h job.h output.h \
commands.h variable.h \
debug.h
# .deps/function.Po
-function.o: function.c make.h config.h \
+function.o: function.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- filedef.h hash.h variable.h dep.h job.h \
+ filedef.h hash.h \
+ variable.h dep.h job.h output.h \
commands.h debug.h
# .deps/getloadavg.Po
@@ -659,96 +665,143 @@ getopt.o: getopt.c config.h \
# .deps/getopt1.Po
getopt1.o: getopt1.c config.h getopt.h \
+# .deps/guile.Po
+guile.o: guile.c makeint.h config.h \
+ gnumake.h \
+ getopt.h \
+ gettext.h \
+ debug.h filedef.h hash.h \
+ dep.h variable.h \
+ gmk-default.h
+
# .deps/hash.Po
-hash.o: hash.c make.h config.h \
+hash.o: hash.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
hash.h
# .deps/implicit.Po
-implicit.o: implicit.c make.h config.h \
+implicit.o: implicit.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- filedef.h hash.h rule.h dep.h debug.h \
- variable.h job.h \
+ filedef.h hash.h rule.h \
+ dep.h debug.h variable.h job.h output.h \
commands.h
# .deps/job.Po
-job.o: job.c make.h config.h \
+job.o: job.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- job.h \
- debug.h filedef.h hash.h commands.h \
+ job.h output.h \
+ debug.h filedef.h hash.h \
+ commands.h variable.h
+
+# .deps/load.Po
+load.o: load.c makeint.h config.h \
+ gnumake.h \
+ getopt.h \
+ gettext.h \
+ debug.h filedef.h hash.h \
variable.h
+# .deps/loadapi.Po
+loadapi.o: loadapi.c makeint.h config.h \
+ gnumake.h \
+ getopt.h \
+ gettext.h \
+ filedef.h hash.h \
+ variable.h dep.h
+
# .deps/loadavg-getloadavg.Po
# dummy
# .deps/main.Po
-main.o: main.c make.h config.h \
+main.o: main.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h filedef.h hash.h variable.h job.h \
- commands.h rule.h debug.h getopt.h \
+ filedef.h hash.h dep.h \
+ variable.h job.h output.h \
+ commands.h rule.h debug.h \
+ getopt.h
# .deps/misc.Po
-misc.o: misc.c make.h config.h \
+misc.o: misc.c makeint.h config.h \
+ gnumake.h \
+ getopt.h \
+ gettext.h \
+ filedef.h hash.h dep.h \
+ debug.h \
+
+# .deps/output.Po
+output.o: output.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h debug.h
+ job.h output.h \
# .deps/read.Po
-read.o: read.c make.h config.h \
+read.o: read.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h filedef.h hash.h job.h \
- commands.h variable.h rule.h debug.h \
+ filedef.h hash.h dep.h job.h output.h \
+ commands.h variable.h rule.h \
+ debug.h
# .deps/remake.Po
-remake.o: remake.c make.h config.h \
+remake.o: remake.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
filedef.h hash.h job.h \
- commands.h dep.h variable.h debug.h \
+ output.h \
+ commands.h dep.h variable.h \
+ debug.h
# .deps/remote-cstms.Po
# dummy
# .deps/remote-stub.Po
-remote-stub.o: remote-stub.c make.h config.h \
+remote-stub.o: remote-stub.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
filedef.h hash.h job.h \
+ output.h \
commands.h
# .deps/rule.Po
-rule.o: rule.c make.h config.h \
+rule.o: rule.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h filedef.h \
- hash.h job.h \
- commands.h variable.h \
- rule.h
+ filedef.h hash.h dep.h job.h output.h \
+ commands.h variable.h rule.h
# .deps/signame.Po
-signame.o: signame.c make.h config.h \
+signame.o: signame.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
# .deps/strcache.Po
-strcache.o: strcache.c make.h config.h \
+strcache.o: strcache.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
hash.h
# .deps/variable.Po
-variable.o: variable.c make.h config.h \
+variable.o: variable.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h filedef.h \
- hash.h job.h \
- commands.h variable.h \
- rule.h
+ filedef.h hash.h dep.h job.h output.h \
+ commands.h variable.h rule.h
# .deps/version.Po
version.o: version.c config.h
@@ -757,7 +810,9 @@ version.o: version.c config.h
# dummy
# .deps/vpath.Po
-vpath.o: vpath.c make.h config.h \
+vpath.o: vpath.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- filedef.h hash.h variable.h
+ filedef.h hash.h \
+ variable.h
diff --git a/Makefile.am b/Makefile.am
index 92acdc2..5156f47 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,7 +1,6 @@
# This is a -*-Makefile-*-, or close enough
#
-# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
@@ -32,6 +31,7 @@ endif
SUBDIRS = glob config po doc $(MAYBE_W32)
bin_PROGRAMS = make
+include_HEADERS = gnumake.h
if USE_CUSTOMS
remote = remote-cstms.c
@@ -39,18 +39,23 @@ else
remote = remote-stub.c
endif
-
make_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c file.c \
- function.c getopt.c getopt1.c implicit.c job.c main.c \
- misc.c read.c remake.c $(remote) rule.c signame.c \
- strcache.c variable.c version.c vpath.c hash.c
+ function.c getopt.c getopt1.c implicit.c job.c load.c \
+ loadapi.c main.c misc.c output.c read.c remake.c rule.c \
+ signame.c strcache.c variable.c version.c vpath.c hash.c \
+ $(remote)
+
+if HAVE_GUILE
+ make_SOURCES += guile.c
+endif
EXTRA_make_SOURCES = vmsjobs.c remote-stub.c remote-cstms.c
-noinst_HEADERS = commands.h dep.h filedef.h job.h make.h rule.h variable.h \
- debug.h getopt.h gettext.h hash.h
+noinst_HEADERS = commands.h dep.h filedef.h job.h makeint.h rule.h variable.h \
+ debug.h getopt.h gettext.h hash.h output.h
-make_LDADD = @LIBOBJS@ @ALLOCA@ $(GLOBLIB) @GETLOADAVG_LIBS@ @LIBINTL@
+make_LDADD = @LIBOBJS@ @ALLOCA@ $(GLOBLIB) @GETLOADAVG_LIBS@ @LIBINTL@ \
+ $(GUILE_LIBS)
# Only process if target is MS-Windows
if WINDOWSENV
make_LDADD += $(W32LIB)
@@ -61,6 +66,7 @@ man_MANS = make.1
DEFS = -DLOCALEDIR=\"$(localedir)\" -DLIBDIR=\"$(libdir)\" -DINCLUDEDIR=\"$(includedir)\" @DEFS@
AM_CPPFLAGS = $(GLOBINC)
+AM_CFLAGS = $(GUILE_CFLAGS)
# Only process if target is MS-Windows
if WINDOWSENV
AM_CPPFLAGS += $(W32INC)
@@ -76,8 +82,9 @@ EXTRA_DIST = README build.sh.in $(man_MANS) \
README.DOS Makefile.DOS configure.bat dosbuild.bat configh.dos\
README.W32 NMakefile config.h.W32 build_w32.bat subproc.bat \
make_msvc_net2003.sln make_msvc_net2003.vcproj \
- readme.vms makefile.vms makefile.com config.h-vms \
- vmsdir.h vmsfunctions.c vmsify.c
+ README.VMS makefile.vms makefile.com config.h-vms \
+ vmsdir.h vmsfunctions.c vmsify.c \
+ gmk-default.scm gmk-default.h
# This is built during configure, but behind configure's back
@@ -100,8 +107,8 @@ localedir = $(datadir)/locale
#
# Whether or not make needs to be installed setgid.
-# The value should be either `true' or `false'.
-# On many systems, the getloadavg function (used to implement the `-l'
+# The value should be either 'true' or 'false'.
+# On many systems, the getloadavg function (used to implement the '-l'
# switch) will not work unless make is installed setgid kmem.
#
inst_setgid = @NEED_SETGID@
@@ -117,19 +124,28 @@ install-exec-local:
echo "chgrp $(inst_group) $$app && chmod g+s $$app"; \
else \
echo "$$app needs to be owned by group $(inst_group) and setgid;"; \
- echo "otherwise the \`-l' option will probably not work."; \
+ echo "otherwise the '-l' option will probably not work."; \
echo "You may need special privileges to complete the installation"; \
echo "of $$app."; \
fi; \
else true; fi
+# --------------- Generate the Guile default module content
+
+guile.$(OBJEXT): gmk-default.h
+gmk-default.h: $(srcdir)/gmk-default.scm
+ (echo 'static const char *const GUILE_module_defn = " '\\ \
+ && sed -e 's/;.*//' -e '/^[ \t]*$$/d' -e 's/"/\\"/g' -e 's/$$/ \\/' \
+ $(srcdir)/gmk-default.scm \
+ && echo '";') > $@
+
# --------------- Local DIST Section
# Install the w32 and tests subdirectories
#
dist-hook:
(cd $(srcdir); \
- sub=`find w32 tests -follow \( -name CVS -prune -o -name .cvsignore -o -name work -prune \) -o \( -name \*.orig -o -name \*.rej -o -name \*~ -prune \) -o -type f -print`; \
+ sub=`find w32 tests -follow \( -name .git -o -name .deps -o -name work -o -name .gitignore -o -name \*.orig -o -name \*.rej -o -name \*~ -o -name Makefile \) -prune -o -type f -print`; \
tar chf - $$sub) \
| (cd $(distdir); tar xfBp -)
@@ -168,18 +184,18 @@ loadavg_LDADD = @GETLOADAVG_LIBS@
MAKETESTFLAGS =
check-regression:
- @if test -f "$(srcdir)/tests/run_make_tests"; then \
+ @if test -f '$(srcdir)/tests/run_make_tests'; then \
if $(PERL) -v >/dev/null 2>&1; then \
- case `cd $(srcdir); pwd` in `pwd`) : ;; \
+ case `cd '$(srcdir)'; pwd` in `pwd`) : ;; \
*) test -d tests || mkdir tests; \
rm -f srctests; \
- if ln -s "$(srcdir)/tests" srctests; then \
+ if ln -s '$(srcdir)/tests' srctests; then \
for f in run_make_tests run_make_tests.pl test_driver.pl scripts; do \
rm -f tests/$$f; ln -s ../srctests/$$f tests; \
done; fi ;; \
esac; \
- echo "cd tests && $(PERL) ./run_make_tests.pl -make ../make$(EXEEXT) $(MAKETESTFLAGS)"; \
- cd tests && $(PERL) ./run_make_tests.pl -make ../make$(EXEEXT) $(MAKETESTFLAGS); \
+ echo "cd tests && $(PERL) ./run_make_tests.pl -srcdir $(abs_srcdir) -make ../make$(EXEEXT) $(MAKETESTFLAGS)"; \
+ cd tests && $(PERL) ./run_make_tests.pl -srcdir '$(abs_srcdir)' -make '../make$(EXEEXT)' $(MAKETESTFLAGS); \
else \
echo "Can't find a working Perl ($(PERL)); the test suite requires Perl."; \
fi; \
@@ -191,7 +207,7 @@ check-regression:
# --------------- Maintainer's Section
# Tell automake that I haven't forgotten about this file and it will be
-# created before we build a distribution (see maintMakefile in the CVS
+# created before we build a distribution (see maintMakefile in the Git
# distribution).
README:
diff --git a/Makefile.ami b/Makefile.ami
index 8cc67df..efbab01 100644
--- a/Makefile.ami
+++ b/Makefile.ami
@@ -1,10 +1,9 @@
# -*-Makefile-*- for GNU make on Amiga
#
-# NOTE: If you have no `make' program at all to process this makefile, run
-# `build.sh' instead.
+# NOTE: If you have no 'make' program at all to process this makefile, run
+# 'build.sh' instead.
#
-# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 1995-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
@@ -32,18 +31,18 @@ CPPFLAGS =
LDFLAGS =
# Define these for your system as follows:
-# -DNO_ARCHIVES To disable `ar' archive support.
+# -DNO_ARCHIVES To disable 'ar' archive support.
# -DNO_FLOAT To avoid using floating-point numbers.
# -DENUM_BITFIELDS If the compiler isn't GCC but groks enum foo:2.
# Some compilers apparently accept this
# without complaint but produce losing code,
# so beware.
# NeXT 1.0a uses an old version of GCC, which required -D__inline=inline.
-# See also `config.h'.
+# See also 'config.h'.
defines =
# Which flavor of remote job execution support to use.
-# The code is found in `remote-$(REMOTE).c'.
+# The code is found in 'remote-$(REMOTE).c'.
REMOTE = stub
# If you are using the GNU C library, or have the GNU getopt functions in
@@ -77,9 +76,9 @@ prefix =
# Common prefix for machine-dependent installed files.
exec_prefix =
-# Directory to install `make' in.
+# Directory to install 'make' in.
bindir = sc:c
-# Directory to find libraries in for `-lXXX'.
+# Directory to find libraries in for '-lXXX'.
libdir = lib:
# Directory to search by default for included makefiles.
includedir = include:
@@ -89,20 +88,20 @@ infodir = doc:
mandir = t:
# Number to put on the man page filename.
manext = 1
-# Prefix to put on installed `make' binary file name.
+# Prefix to put on installed 'make' binary file name.
binprefix =
-# Prefix to put on installed `make' man page file name.
+# Prefix to put on installed 'make' man page file name.
manprefix = $(binprefix)
# Whether or not make needs to be installed setgid.
-# The value should be either `true' or `false'.
-# On many systems, the getloadavg function (used to implement the `-l'
+# The value should be either 'true' or 'false'.
+# On many systems, the getloadavg function (used to implement the '-l'
# switch) will not work unless make is installed setgid kmem.
install_setgid = false
# Install make setgid to this group so it can read /dev/kmem.
group = sys
-# Program to install `make'.
+# Program to install 'make'.
INSTALL_PROGRAM = copy
# Program to install the man page.
INSTALL_DATA = copy
@@ -118,21 +117,24 @@ TEXI2DVI = texi2dvi
ETAGS = etags -w
CTAGS = ctags -w
-objs = commands.o job.o dir.o file.o misc.o main.o read.o remake.o \
- rule.o implicit.o default.o variable.o expand.o function.o \
- vpath.o version.o ar.o arscan.o signame.o strcache.o hash.o \
- remote-$(REMOTE).o $(GETOPT) $(ALLOCA) $(extras)
+#guile = guile.o
+
+objs = commands.o job.o dir.o file.o misc.o main.o read.o remake.o \
+ rule.o implicit.o default.o variable.o expand.o function.o \
+ vpath.o version.o ar.o arscan.o signame.o strcache.o hash.o \
+ remote-$(REMOTE).o $(GETOPT) $(ALLOCA) $(extras) $(guile)
+
srcs = $(srcdir)commands.c $(srcdir)job.c $(srcdir)dir.c \
$(srcdir)file.c $(srcdir)getloadavg.c $(srcdir)misc.c \
$(srcdir)main.c $(srcdir)read.c $(srcdir)remake.c \
$(srcdir)rule.c $(srcdir)implicit.c $(srcdir)default.c \
$(srcdir)variable.c $(srcdir)expand.c $(srcdir)function.c \
$(srcdir)vpath.c $(srcdir)version.c $(srcdir)hash.c \
- $(srcdir)remote-$(REMOTE).c \
- $(srcdir)ar.c $(srcdir)arscan.c $(srcdir)strcache.c \
- $(srcdir)signame.c $(srcdir)signame.h $(GETOPT_SRC) \
- $(srcdir)commands.h $(srcdir)dep.h $(srcdir)filedep.h \
- $(srcdir)job.h $(srcdir)make.h $(srcdir)rule.h \
+ $(srcdir)guile.c $(srcdir)remote-$(REMOTE).c \
+ $(srcdir)ar.c $(srcdir)arscan.c $(srcdir)strcache.c \
+ $(srcdir)signame.c $(srcdir)signame.h $(GETOPT_SRC) \
+ $(srcdir)commands.h $(srcdir)dep.h $(srcdir)filedep.h \
+ $(srcdir)job.h $(srcdir)makeint.h $(srcdir)rule.h \
$(srcdir)variable.h $(ALLOCA_SRC) $(srcdir)config.h.in
@@ -142,7 +144,7 @@ srcs = $(srcdir)commands.c $(srcdir)job.c $(srcdir)dir.c \
all: make
info: make.info
dvi: make.dvi
-# Some makes apparently use .PHONY as the default goal if it is before `all'.
+# Some makes apparently use .PHONY as the default goal if it is before 'all'.
.PHONY: all check info dvi
make.info: make.texinfo
@@ -179,8 +181,6 @@ glob/libglob.a: FORCE config.h
cd glob; $(MAKE) libglob.a
FORCE:
-tagsrcs = $(srcs) $(srcdir)remote-*.c
-
.PHONY: install installdirs
install: installdirs \
$(bindir)$(binprefix)make $(infodir)make.info \
@@ -196,7 +196,7 @@ $(bindir)$(binprefix)make: make
echo "chgrp $(group) $@.new && chmod g+s $@.new"; \
else \
echo "$@ needs to be owned by group $(group) and setgid;"; \
- echo "otherwise the \`-l' option will probably not work."; \
+ echo "otherwise the '-l' option will probably not work."; \
echo "You may need special privileges to install $@."; \
fi; \
else true; fi
@@ -213,9 +213,9 @@ $(infodir)make.info: make.info
`echo $@ | sed "s,make.info\$$,$$name,"`; \
done
# Run install-info only if it exists.
-# Use `if' instead of just prepending `-' to the
+# Use 'if' instead of just prepending '-' to the
# line so we notice real errors from install-info.
-# We use `$(SHELL) -c' because some shells do not
+# We use '$(SHELL) -c' because some shells do not
# fail gracefully when there is an unknown command.
if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
if [ -r ./make.info ]; then dir=.; else dir=$(srcdir); fi; \
@@ -266,42 +266,43 @@ glob-clean glob-realclean:
.NOEXPORT:
# The automatically generated dependencies below may omit config.h
-# because it is included with ``#include <config.h>'' rather than
-# ``#include "config.h"''. So we add the explicit dependency to make sure.
+# because it is included with '#include <config.h>' rather than
+# '#include "config.h"'. So we add the explicit dependency to make sure.
$(objs): config.h
# Automatically generated dependencies will be put at the end of the file.
# Automatically generated dependencies.
-commands.o: commands.c make.h dep.h filedef.h variable.h job.h \
+commands.o: commands.c makeint.h dep.h filedef.h variable.h job.h \
commands.h
-job.o: job.c make.h job.h filedef.h commands.h variable.h
-dir.o: dir.c make.h
-file.o: file.c make.h dep.h filedef.h job.h commands.h variable.h
-misc.o: misc.c make.h dep.h
-main.o: main.c make.h dep.h filedef.h variable.h job.h commands.h \
+job.o: job.c makeint.h job.h filedef.h commands.h variable.h
+dir.o: dir.c makeint.h
+file.o: file.c makeint.h dep.h filedef.h job.h commands.h variable.h
+misc.o: misc.c makeint.h dep.h
+main.o: main.c makeint.h dep.h filedef.h variable.h job.h commands.h \
getopt.h
-read.o: read.c make.h dep.h filedef.h job.h commands.h variable.h \
+guile.o: guile.c makeint.h dep.h debug.h variable.h gmk-default.h
+read.o: read.c makeint.h dep.h filedef.h job.h commands.h variable.h \
glob/glob.h
-remake.o: remake.c make.h filedef.h job.h commands.h dep.h
-rule.o: rule.c make.h dep.h filedef.h job.h commands.h variable.h \
+remake.o: remake.c makeint.h filedef.h job.h commands.h dep.h
+rule.o: rule.c makeint.h dep.h filedef.h job.h commands.h variable.h \
rule.h
-implicit.o: implicit.c make.h rule.h dep.h filedef.h
-default.o: default.c make.h rule.h dep.h filedef.h job.h commands.h \
+implicit.o: implicit.c makeint.h rule.h dep.h filedef.h
+default.o: default.c makeint.h rule.h dep.h filedef.h job.h commands.h \
variable.h
-variable.o: variable.c make.h dep.h filedef.h job.h commands.h \
+variable.o: variable.c makeint.h dep.h filedef.h job.h commands.h \
variable.h
-expand.o: expand.c make.h filedef.h job.h commands.h variable.h
-function.o: function.c make.h filedef.h variable.h dep.h job.h \
+expand.o: expand.c makeint.h filedef.h job.h commands.h variable.h
+function.o: function.c makeint.h filedef.h variable.h dep.h job.h \
commands.h amiga.h
-vpath.o: vpath.c make.h filedef.h variable.h
-strcache.o: strcache.c make.h hash.h
+vpath.o: vpath.c makeint.h filedef.h variable.h
+strcache.o: strcache.c makeint.h hash.h
version.o: version.c
-ar.o: ar.c make.h filedef.h dep.h
-arscan.o: arscan.c make.h
+ar.o: ar.c makeint.h filedef.h dep.h
+arscan.o: arscan.c makeint.h
signame.o: signame.c signame.h
-remote-stub.o: remote-stub.c make.h filedef.h job.h commands.h
+remote-stub.o: remote-stub.c makeint.h filedef.h job.h commands.h
getopt.o: getopt.c
getopt1.o : getopt1.c getopt.h
getloadavg.o: getloadavg.c
-amiga.o: amiga.c make.h variable.h amiga.h
+amiga.o: amiga.c makeint.h variable.h amiga.h
diff --git a/Makefile.in b/Makefile.in
index 6481e99..9814180 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -17,8 +17,7 @@
# This is a -*-Makefile-*-, or close enough
#
-# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
@@ -36,6 +35,23 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -55,66 +71,85 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
bin_PROGRAMS = make$(EXEEXT)
+@HAVE_GUILE_TRUE@am__append_1 = guile.c
# Only process if target is MS-Windows
-@WINDOWSENV_TRUE@am__append_1 = $(W32LIB)
+@WINDOWSENV_TRUE@am__append_2 = $(W32LIB)
# Only process if target is MS-Windows
-@WINDOWSENV_TRUE@am__append_2 = $(W32INC)
+@WINDOWSENV_TRUE@am__append_3 = $(W32INC)
check_PROGRAMS = loadavg$(EXEEXT)
subdir = .
-DIST_COMMON = README $(am__configure_deps) $(noinst_HEADERS) \
- $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \
+ $(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/config.h.in $(top_srcdir)/configure ABOUT-NLS \
AUTHORS COPYING ChangeLog INSTALL NEWS alloca.c getloadavg.c
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/config/dospaths.m4 \
$(top_srcdir)/config/gettext.m4 $(top_srcdir)/config/iconv.m4 \
- $(top_srcdir)/config/isc-posix.m4 \
+ $(top_srcdir)/config/intlmacosx.m4 \
$(top_srcdir)/config/lib-ld.m4 \
$(top_srcdir)/config/lib-link.m4 \
$(top_srcdir)/config/lib-prefix.m4 $(top_srcdir)/config/nls.m4 \
$(top_srcdir)/config/po.m4 $(top_srcdir)/config/progtest.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \
+ "$(DESTDIR)$(includedir)"
PROGRAMS = $(bin_PROGRAMS)
nodist_loadavg_OBJECTS = loadavg-getloadavg.$(OBJEXT)
loadavg_OBJECTS = $(nodist_loadavg_OBJECTS)
loadavg_DEPENDENCIES =
am__make_SOURCES_DIST = ar.c arscan.c commands.c default.c dir.c \
expand.c file.c function.c getopt.c getopt1.c implicit.c job.c \
- main.c misc.c read.c remake.c remote-stub.c remote-cstms.c \
- rule.c signame.c strcache.c variable.c version.c vpath.c \
- hash.c
+ load.c loadapi.c main.c misc.c output.c read.c remake.c rule.c \
+ signame.c strcache.c variable.c version.c vpath.c hash.c \
+ remote-stub.c remote-cstms.c guile.c
@USE_CUSTOMS_FALSE@am__objects_1 = remote-stub.$(OBJEXT)
@USE_CUSTOMS_TRUE@am__objects_1 = remote-cstms.$(OBJEXT)
+@HAVE_GUILE_TRUE@am__objects_2 = guile.$(OBJEXT)
am_make_OBJECTS = ar.$(OBJEXT) arscan.$(OBJEXT) commands.$(OBJEXT) \
default.$(OBJEXT) dir.$(OBJEXT) expand.$(OBJEXT) \
file.$(OBJEXT) function.$(OBJEXT) getopt.$(OBJEXT) \
getopt1.$(OBJEXT) implicit.$(OBJEXT) job.$(OBJEXT) \
- main.$(OBJEXT) misc.$(OBJEXT) read.$(OBJEXT) remake.$(OBJEXT) \
- $(am__objects_1) rule.$(OBJEXT) signame.$(OBJEXT) \
- strcache.$(OBJEXT) variable.$(OBJEXT) version.$(OBJEXT) \
- vpath.$(OBJEXT) hash.$(OBJEXT)
+ load.$(OBJEXT) loadapi.$(OBJEXT) main.$(OBJEXT) misc.$(OBJEXT) \
+ output.$(OBJEXT) read.$(OBJEXT) remake.$(OBJEXT) \
+ rule.$(OBJEXT) signame.$(OBJEXT) strcache.$(OBJEXT) \
+ variable.$(OBJEXT) version.$(OBJEXT) vpath.$(OBJEXT) \
+ hash.$(OBJEXT) $(am__objects_1) $(am__objects_2)
make_OBJECTS = $(am_make_OBJECTS)
am__DEPENDENCIES_1 =
@WINDOWSENV_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
make_DEPENDENCIES = @LIBOBJS@ @ALLOCA@ $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_2)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
DEFAULT_INCLUDES = -I.@am__isrc@
depcomp = $(SHELL) $(top_srcdir)/config/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(nodist_loadavg_SOURCES) $(make_SOURCES) \
$(EXTRA_make_SOURCES)
DIST_SOURCES = $(am__make_SOURCES_DIST) $(EXTRA_make_SOURCES)
@@ -125,6 +160,11 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -146,10 +186,16 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
man1dir = $(mandir)/man1
NROFF = nroff
MANS = $(man_MANS)
-HEADERS = $(noinst_HEADERS)
+HEADERS = $(include_HEADERS) $(noinst_HEADERS)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -162,9 +208,11 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
- { test ! -d "$(distdir)" \
- || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -fr "$(distdir)"; }; }
+ if test -d "$(distdir)"; then \
+ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -rf "$(distdir)" \
+ || { sleep 5 && rm -rf "$(distdir)"; }; \
+ else :; fi
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -193,10 +241,14 @@ am__relativize = \
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AM_LDFLAGS = @AM_LDFLAGS@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -216,16 +268,21 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
GLOBINC = @GLOBINC@
GLOBLIB = @GLOBLIB@
GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
GREP = @GREP@
+GUILE_CFLAGS = @GUILE_CFLAGS@
+GUILE_LIBS = @GUILE_LIBS@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
KMEM_GROUP = @KMEM_GROUP@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -238,8 +295,8 @@ LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MAKE_HOST = @MAKE_HOST@
MKDIR_P = @MKDIR_P@
-MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
MSGMERGE = @MSGMERGE@
NEED_SETGID = @NEED_SETGID@
OBJEXT = @OBJEXT@
@@ -252,6 +309,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
REMOTE = @REMOTE@
@@ -261,6 +321,8 @@ STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -321,21 +383,23 @@ ACLOCAL_AMFLAGS = -I config
@WINDOWSENV_TRUE@W32INC = -I $(top_srcdir)/w32/include
@WINDOWSENV_TRUE@W32LIB = -Lw32 -lw32
SUBDIRS = glob config po doc $(MAYBE_W32)
+include_HEADERS = gnumake.h
@USE_CUSTOMS_FALSE@remote = remote-stub.c
@USE_CUSTOMS_TRUE@remote = remote-cstms.c
-make_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c file.c \
- function.c getopt.c getopt1.c implicit.c job.c main.c \
- misc.c read.c remake.c $(remote) rule.c signame.c \
- strcache.c variable.c version.c vpath.c hash.c
-
+make_SOURCES = ar.c arscan.c commands.c default.c dir.c expand.c \
+ file.c function.c getopt.c getopt1.c implicit.c job.c load.c \
+ loadapi.c main.c misc.c output.c read.c remake.c rule.c \
+ signame.c strcache.c variable.c version.c vpath.c hash.c \
+ $(remote) $(am__append_1)
EXTRA_make_SOURCES = vmsjobs.c remote-stub.c remote-cstms.c
-noinst_HEADERS = commands.h dep.h filedef.h job.h make.h rule.h variable.h \
- debug.h getopt.h gettext.h hash.h
+noinst_HEADERS = commands.h dep.h filedef.h job.h makeint.h rule.h variable.h \
+ debug.h getopt.h gettext.h hash.h output.h
make_LDADD = @LIBOBJS@ @ALLOCA@ $(GLOBLIB) @GETLOADAVG_LIBS@ @LIBINTL@ \
- $(am__append_1)
+ $(GUILE_LIBS) $(am__append_2)
man_MANS = make.1
-AM_CPPFLAGS = $(GLOBINC) $(am__append_2)
+AM_CPPFLAGS = $(GLOBINC) $(am__append_3)
+AM_CFLAGS = $(GUILE_CFLAGS)
# Extra stuff to include in the distribution.
EXTRA_DIST = README build.sh.in $(man_MANS) \
@@ -345,8 +409,9 @@ EXTRA_DIST = README build.sh.in $(man_MANS) \
README.DOS Makefile.DOS configure.bat dosbuild.bat configh.dos\
README.W32 NMakefile config.h.W32 build_w32.bat subproc.bat \
make_msvc_net2003.sln make_msvc_net2003.vcproj \
- readme.vms makefile.vms makefile.com config.h-vms \
- vmsdir.h vmsfunctions.c vmsify.c
+ README.VMS makefile.vms makefile.com config.h-vms \
+ vmsdir.h vmsfunctions.c vmsify.c \
+ gmk-default.scm gmk-default.h
# This is built during configure, but behind configure's back
@@ -358,8 +423,8 @@ DISTCLEANFILES = build.sh
#
# Whether or not make needs to be installed setgid.
-# The value should be either `true' or `false'.
-# On many systems, the getloadavg function (used to implement the `-l'
+# The value should be either 'true' or 'false'.
+# On many systems, the getloadavg function (used to implement the '-l'
# switch) will not work unless make is installed setgid kmem.
#
inst_setgid = @NEED_SETGID@
@@ -383,7 +448,7 @@ all: config.h
.SUFFIXES:
.SUFFIXES: .c .o .obj
-am--refresh:
+am--refresh: Makefile
@:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
@@ -419,10 +484,8 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
$(am__aclocal_m4_deps):
config.h: stamp-h1
- @if test ! -f $@; then \
- rm -f stamp-h1; \
- $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
- else :; fi
+ @if test ! -f $@; then rm -f stamp-h1; else :; fi
+ @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
@@ -436,8 +499,11 @@ distclean-hdr:
-rm -f config.h stamp-h1
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
- test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p; \
@@ -474,12 +540,12 @@ clean-binPROGRAMS:
clean-checkPROGRAMS:
-test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
-loadavg$(EXEEXT): $(loadavg_OBJECTS) $(loadavg_DEPENDENCIES)
+loadavg$(EXEEXT): $(loadavg_OBJECTS) $(loadavg_DEPENDENCIES) $(EXTRA_loadavg_DEPENDENCIES)
@rm -f loadavg$(EXEEXT)
- $(LINK) $(loadavg_OBJECTS) $(loadavg_LDADD) $(LIBS)
-make$(EXEEXT): $(make_OBJECTS) $(make_DEPENDENCIES)
+ $(AM_V_CCLD)$(LINK) $(loadavg_OBJECTS) $(loadavg_LDADD) $(LIBS)
+make$(EXEEXT): $(make_OBJECTS) $(make_DEPENDENCIES) $(EXTRA_make_DEPENDENCIES)
@rm -f make$(EXEEXT)
- $(LINK) $(make_OBJECTS) $(make_LDADD) $(LIBS)
+ $(AM_V_CCLD)$(LINK) $(make_OBJECTS) $(make_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -499,12 +565,16 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/function.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/guile.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/implicit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/job.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/load.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loadapi.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/loadavg-getloadavg.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/output.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/read.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remake.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote-cstms.Po@am__quote@
@@ -518,39 +588,46 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vpath.Po@am__quote@
.c.o:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
.c.obj:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
loadavg-getloadavg.o: getloadavg.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loadavg_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT loadavg-getloadavg.o -MD -MP -MF $(DEPDIR)/loadavg-getloadavg.Tpo -c -o loadavg-getloadavg.o `test -f 'getloadavg.c' || echo '$(srcdir)/'`getloadavg.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/loadavg-getloadavg.Tpo $(DEPDIR)/loadavg-getloadavg.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='getloadavg.c' object='loadavg-getloadavg.o' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loadavg_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT loadavg-getloadavg.o -MD -MP -MF $(DEPDIR)/loadavg-getloadavg.Tpo -c -o loadavg-getloadavg.o `test -f 'getloadavg.c' || echo '$(srcdir)/'`getloadavg.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/loadavg-getloadavg.Tpo $(DEPDIR)/loadavg-getloadavg.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getloadavg.c' object='loadavg-getloadavg.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loadavg_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o loadavg-getloadavg.o `test -f 'getloadavg.c' || echo '$(srcdir)/'`getloadavg.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loadavg_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o loadavg-getloadavg.o `test -f 'getloadavg.c' || echo '$(srcdir)/'`getloadavg.c
loadavg-getloadavg.obj: getloadavg.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loadavg_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT loadavg-getloadavg.obj -MD -MP -MF $(DEPDIR)/loadavg-getloadavg.Tpo -c -o loadavg-getloadavg.obj `if test -f 'getloadavg.c'; then $(CYGPATH_W) 'getloadavg.c'; else $(CYGPATH_W) '$(srcdir)/getloadavg.c'; fi`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/loadavg-getloadavg.Tpo $(DEPDIR)/loadavg-getloadavg.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='getloadavg.c' object='loadavg-getloadavg.obj' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loadavg_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT loadavg-getloadavg.obj -MD -MP -MF $(DEPDIR)/loadavg-getloadavg.Tpo -c -o loadavg-getloadavg.obj `if test -f 'getloadavg.c'; then $(CYGPATH_W) 'getloadavg.c'; else $(CYGPATH_W) '$(srcdir)/getloadavg.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/loadavg-getloadavg.Tpo $(DEPDIR)/loadavg-getloadavg.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getloadavg.c' object='loadavg-getloadavg.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loadavg_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o loadavg-getloadavg.obj `if test -f 'getloadavg.c'; then $(CYGPATH_W) 'getloadavg.c'; else $(CYGPATH_W) '$(srcdir)/getloadavg.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(loadavg_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o loadavg-getloadavg.obj `if test -f 'getloadavg.c'; then $(CYGPATH_W) 'getloadavg.c'; else $(CYGPATH_W) '$(srcdir)/getloadavg.c'; fi`
install-man1: $(man_MANS)
@$(NORMAL_INSTALL)
- test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
- @list=''; test -n "$(man1dir)" || exit 0; \
- { for i in $$list; do echo "$$i"; done; \
- l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
- sed -n '/\.1[a-z]*$$/p'; \
+ @list1=''; \
+ list2='$(man_MANS)'; \
+ test -n "$(man1dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.1[a-z]*$$/p'; \
+ fi; \
} | while read p; do \
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; echo "$$p"; \
@@ -579,9 +656,28 @@ uninstall-man1:
sed -n '/\.1[a-z]*$$/p'; \
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
- test -z "$$files" || { \
- echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
+install-includeHEADERS: $(include_HEADERS)
+ @$(NORMAL_INSTALL)
+ @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
+ done
+
+uninstall-includeHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -771,13 +867,10 @@ distdir: $(DISTFILES)
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
@@ -811,7 +904,11 @@ dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
- tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+
+dist-lzip: distdir
+ tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
$(am__remove_distdir)
dist-lzma: distdir
@@ -819,7 +916,7 @@ dist-lzma: distdir
$(am__remove_distdir)
dist-xz: distdir
- tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
+ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__remove_distdir)
dist-tarZ: distdir
@@ -837,7 +934,7 @@ dist-zip: distdir
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
@@ -851,6 +948,8 @@ distcheck: dist
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
+ *.tar.lz*) \
+ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
*.tar.xz*) \
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
*.tar.Z*) \
@@ -860,7 +959,7 @@ distcheck: dist
*.zip*) \
unzip $(distdir).zip ;;\
esac
- chmod -R a-w $(distdir); chmod a+w $(distdir)
+ chmod -R a-w $(distdir); chmod u+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
@@ -870,6 +969,7 @@ distcheck: dist
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
@@ -898,8 +998,16 @@ distcheck: dist
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
- @$(am__cd) '$(distuninstallcheck_dir)' \
- && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+ @test -n '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: trying to run $@ with an empty' \
+ '$$(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ $(am__cd) '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
@@ -922,7 +1030,7 @@ check: check-recursive
all-am: Makefile $(PROGRAMS) $(MANS) $(HEADERS) config.h
installdirs: installdirs-recursive
installdirs-am:
- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(includedir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-recursive
@@ -935,10 +1043,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -973,7 +1086,7 @@ info: info-recursive
info-am:
-install-data-am: install-man
+install-data-am: install-includeHEADERS install-man
install-dvi: install-dvi-recursive
@@ -1020,7 +1133,8 @@ ps: ps-recursive
ps-am:
-uninstall-am: uninstall-binPROGRAMS uninstall-man
+uninstall-am: uninstall-binPROGRAMS uninstall-includeHEADERS \
+ uninstall-man
uninstall-man: uninstall-man1
@@ -1031,19 +1145,21 @@ uninstall-man: uninstall-man1
all all-am am--refresh check check-am check-local clean \
clean-binPROGRAMS clean-checkPROGRAMS clean-generic ctags \
ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-hook \
- dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \
- distclean distclean-compile distclean-generic distclean-hdr \
- distclean-tags distcleancheck distdir distuninstallcheck dvi \
- dvi-am html html-am info info-am install install-am \
- install-binPROGRAMS install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-exec-local \
- install-html install-html-am install-info install-info-am \
- install-man install-man1 install-pdf install-pdf-am install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags tags-recursive \
- uninstall uninstall-am uninstall-binPROGRAMS uninstall-man \
+ dist-lzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
+ distcheck distclean distclean-compile distclean-generic \
+ distclean-hdr distclean-tags distcleancheck distdir \
+ distuninstallcheck dvi dvi-am html html-am info info-am \
+ install install-am install-binPROGRAMS install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-exec-local install-html \
+ install-html-am install-includeHEADERS install-info \
+ install-info-am install-man install-man1 install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs installdirs-am \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+ tags tags-recursive uninstall uninstall-am \
+ uninstall-binPROGRAMS uninstall-includeHEADERS uninstall-man \
uninstall-man1
@@ -1061,19 +1177,28 @@ install-exec-local:
echo "chgrp $(inst_group) $$app && chmod g+s $$app"; \
else \
echo "$$app needs to be owned by group $(inst_group) and setgid;"; \
- echo "otherwise the \`-l' option will probably not work."; \
+ echo "otherwise the '-l' option will probably not work."; \
echo "You may need special privileges to complete the installation"; \
echo "of $$app."; \
fi; \
else true; fi
+# --------------- Generate the Guile default module content
+
+guile.$(OBJEXT): gmk-default.h
+gmk-default.h: $(srcdir)/gmk-default.scm
+ (echo 'static const char *const GUILE_module_defn = " '\\ \
+ && sed -e 's/;.*//' -e '/^[ \t]*$$/d' -e 's/"/\\"/g' -e 's/$$/ \\/' \
+ $(srcdir)/gmk-default.scm \
+ && echo '";') > $@
+
# --------------- Local DIST Section
# Install the w32 and tests subdirectories
#
dist-hook:
(cd $(srcdir); \
- sub=`find w32 tests -follow \( -name CVS -prune -o -name .cvsignore -o -name work -prune \) -o \( -name \*.orig -o -name \*.rej -o -name \*~ -prune \) -o -type f -print`; \
+ sub=`find w32 tests -follow \( -name .git -o -name .deps -o -name work -o -name .gitignore -o -name \*.orig -o -name \*.rej -o -name \*~ -o -name Makefile \) -prune -o -type f -print`; \
tar chf - $$sub) \
| (cd $(distdir); tar xfBp -)
@@ -1097,18 +1222,18 @@ check-loadavg: loadavg$(EXEEXT)
-./loadavg$(EXEEXT)
check-regression:
- @if test -f "$(srcdir)/tests/run_make_tests"; then \
+ @if test -f '$(srcdir)/tests/run_make_tests'; then \
if $(PERL) -v >/dev/null 2>&1; then \
- case `cd $(srcdir); pwd` in `pwd`) : ;; \
+ case `cd '$(srcdir)'; pwd` in `pwd`) : ;; \
*) test -d tests || mkdir tests; \
rm -f srctests; \
- if ln -s "$(srcdir)/tests" srctests; then \
+ if ln -s '$(srcdir)/tests' srctests; then \
for f in run_make_tests run_make_tests.pl test_driver.pl scripts; do \
rm -f tests/$$f; ln -s ../srctests/$$f tests; \
done; fi ;; \
esac; \
- echo "cd tests && $(PERL) ./run_make_tests.pl -make ../make$(EXEEXT) $(MAKETESTFLAGS)"; \
- cd tests && $(PERL) ./run_make_tests.pl -make ../make$(EXEEXT) $(MAKETESTFLAGS); \
+ echo "cd tests && $(PERL) ./run_make_tests.pl -srcdir $(abs_srcdir) -make ../make$(EXEEXT) $(MAKETESTFLAGS)"; \
+ cd tests && $(PERL) ./run_make_tests.pl -srcdir '$(abs_srcdir)' -make '../make$(EXEEXT)' $(MAKETESTFLAGS); \
else \
echo "Can't find a working Perl ($(PERL)); the test suite requires Perl."; \
fi; \
@@ -1119,7 +1244,7 @@ check-regression:
# --------------- Maintainer's Section
# Tell automake that I haven't forgotten about this file and it will be
-# created before we build a distribution (see maintMakefile in the CVS
+# created before we build a distribution (see maintMakefile in the Git
# distribution).
README:
diff --git a/NEWS b/NEWS
index 523c9a7..2227a35 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,6 @@
GNU make NEWS -*-indented-text-*-
History of user-visible changes.
- 28 July 2010
+ 09 Oct 2013
See the end of this file for copyrights and conditions.
@@ -9,7 +9,111 @@ manual, which is contained in this distribution as the file doc/make.texi.
See the README file and the GNU make manual for instructions for
reporting bugs.
-Version 3.82
+Version 4.0 (09 Oct 2013)
+
+A complete list of bugs fixed in this version is available here:
+
+http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=101&set=custom
+
+* WARNING: Backward-incompatibility!
+ If .POSIX is specified, then make adheres to the POSIX backslash/newline
+ handling requirements, which introduces the following changes to the
+ standard backslash/newline handling in non-recipe lines:
+ * Any trailing space before the backslash is preserved
+ * Each backslash/newline (plus subsequent whitespace) is converted to a
+ single space
+
+* New feature: GNU Guile integration
+ This version of GNU make can be compiled with GNU Guile integration.
+ GNU Guile serves as an embedded extension language for make.
+ See the "Guile Function" section in the GNU Make manual for details.
+ Currently GNU Guile 1.8 and 2.0+ are supported. In Guile 1.8 there is no
+ support for internationalized character sets. In Guile 2.0+, scripts can be
+ encoded in UTF-8.
+
+* New command line option: --output-sync (-O) enables grouping of output by
+ target or by recursive make. This is useful during parallel builds to avoid
+ mixing output from different jobs together giving hard-to-understand
+ results. Original implementation by David Boyce <dsb@boyski.com>.
+ Reworked and enhanced by Frank Heckenbach <f.heckenbach@fh-soft.de>.
+ Windows support by Eli Zaretskii <eliz@gnu.org>.
+
+* New command line option: --trace enables tracing of targets. When enabled
+ the recipe to be invoked is printed even if it would otherwise be suppressed
+ by .SILENT or a "@" prefix character. Also before each recipe is run the
+ makefile name and linenumber where it was defined are shown as well as the
+ prerequisites that caused the target to be considered out of date.
+
+* New command line option argument: --debug now accepts a "n" (none) flag
+ which disables all debugging settings that are currently enabled.
+
+* New feature: The "job server" capability is now supported on Windows.
+ Implementation contributed by Troy Runkel <Troy.Runkel@mathworks.com>
+
+* New feature: The .ONESHELL capability is now supported on Windows. Support
+ added by Eli Zaretskii <eliz@gnu.org>.
+
+* New feature: "!=" shell assignment operator as an alternative to the
+ $(shell ...) function. Implemented for compatibility with BSD makefiles.
+ Note there are subtle differences between "!=" and $(shell ...). See the
+ description in the GNU make manual.
+ WARNING: Backward-incompatibility!
+ Variables ending in "!" previously defined as "variable!= value" will now be
+ interpreted as shell assignment. Change your assignment to add whitespace
+ between the "!" and "=": "variable! = value"
+
+* New feature: "::=" simple assignment operator as defined by POSIX in 2012.
+ This operator has identical functionality to ":=" in GNU make, but will be
+ portable to any implementation of make conforming to a sufficiently new
+ version of POSIX (see http://austingroupbugs.net/view.php?id=330). It is
+ not necessary to define the .POSIX target to access this operator.
+
+* New feature: Loadable objects
+ This version of GNU make contains a "technology preview": the ability to
+ load dynamic objects into the make runtime. These objects can be created by
+ the user and can add extended functionality, usable by makefiles.
+
+* New function: $(file ...) writes to a file.
+
+* New variable: $(GNUMAKEFLAGS) will be parsed for make flags, just like
+ MAKEFLAGS is. It can be set in the environment or the makefile, containing
+ GNU make-specific flags to allow your makefile to be portable to other
+ versions of make. Once this variable is parsed, GNU make will set it to the
+ empty string so that flags will not be duplicated on recursion.
+
+* New variable: `MAKE_HOST' gives the name of the host architecture
+ make was compiled for. This is the same value you see after 'Built for'
+ when running 'make --version'.
+
+* Behavior of MAKEFLAGS and MFLAGS is more rigorously defined. All simple
+ flags are grouped together in the first word of MAKEFLAGS. No options that
+ accept arguments appear in the first word. If no simple flags are present
+ MAKEFLAGS begins with a space. Flags with both short and long versions
+ always use the short versions in MAKEFLAGS. Flags are listed in
+ alphabetical order using ASCII ordering. MFLAGS never begins with "- ".
+
+* Setting the -r and -R options in MAKEFLAGS inside a makefile now works as
+ expected, removing all built-in rules and variables, respectively.
+
+* If a recipe fails, the makefile name and linenumber of the recipe are shown.
+
+* A .RECIPEPREFIX setting is remembered per-recipe and variables expanded
+ in that recipe also use that recipe prefix setting.
+
+* In -p output, .RECIPEPREFIX settings are shown and all target-specific
+ variables are output as if in a makefile, instead of as comments.
+
+* On MS-Windows, recipes that use ".." quoting will no longer force
+ invocation of commands via temporary batch files and stock Windows
+ shells, they will be short-circuited and invoked directly. (In
+ other words, " is no longer a special character for stock Windows
+ shells.) This avoids hitting shell limits for command length when
+ quotes are used, but nothing else in the command requires the shell.
+ This change could potentially mean some minor incompatibilities in
+ behavior when the recipe uses quoted string on shell command lines.
+
+
+Version 3.82 (28 Jul 2010)
A complete list of bugs fixed in this version is available here:
@@ -18,14 +122,6 @@ http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=104&set
* Compiling GNU make now requires a conforming ISO C 1989 compiler and
standard runtime library.
-* WARNING: Future backward-incompatibility!
- Wildcards are not documented as returning sorted values, but up to and
- including this release the results have been sorted and some makefiles are
- apparently depending on that. In the next release of GNU make, for
- performance reasons, we may remove that sorting. If your makefiles
- require sorted results from wildcard expansions, use the $(sort ...)
- function to request it explicitly.
-
* WARNING: Backward-incompatibility!
The POSIX standard for make was changed in the 2008 version in a
fundamentally incompatible way: make is required to invoke the shell as if
@@ -42,6 +138,21 @@ http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=104&set
existing targets were provided in $?).
* WARNING: Backward-incompatibility!
+ Wildcards were not documented as returning sorted values, but the results
+ have been sorted up until this release.. If your makefiles require sorted
+ results from wildcard expansions, use the $(sort ...) function to request
+ it explicitly.
+
+* WARNING: Backward-incompatibility!
+ In previous versions of make it was acceptable to list one or more explicit
+ targets followed by one or more pattern targets in the same rule and it
+ worked "as expected". However, this was not documented as acceptable and if
+ you listed any explicit targets AFTER the pattern targets, the entire rule
+ would be mis-parsed. This release removes this ability completely: make
+ will generate an error message if you mix explicit and pattern targets in
+ the same rule.
+
+* WARNING: Backward-incompatibility!
As a result of parser enhancements, three backward-compatibility issues
exist: first, a prerequisite containing an "=" cannot be escaped with a
backslash any longer. You must create a variable containing an "=" and
@@ -115,7 +226,7 @@ http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=104&set
multi-line variable assignment.
-Version 3.81
+Version 3.81 (01 Apr 2006)
* GNU make is ported to OS/2.
@@ -238,7 +349,7 @@ Version 3.81
could be found on the system.
* On VMS there is now support for case-sensitive filesystems such as ODS5.
- See the readme.vms file for information.
+ See the README.VMS file for information.
* Parallel builds (-jN) no longer require a working Bourne shell on
Windows platforms. They work even with the stock Windows shells, such
@@ -256,7 +367,7 @@ A complete list of bugs fixed in this version is available here:
http://savannah.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=103
-Version 3.80
+Version 3.80 (03 Oct 2002)
* A new feature exists: order-only prerequisites. These prerequisites
affect the order in which targets are built, but they do not impact
@@ -338,7 +449,7 @@ A complete list of bugs fixed in this version is available here:
http://savannah.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=102
-Version 3.79.1
+Version 3.79.1 (23 Jun 2000)
* .SECONDARY with no prerequisites now prevents any target from being
removed because make thinks it's an intermediate file, not just those
@@ -347,7 +458,7 @@ Version 3.79.1
* New configure option --disable-nsec-timestamps, but this was
superseded in later versions by the .LOW_RESOLUTION_TIME pseudo-target.
-Version 3.79
+Version 3.79 (04 Apr 2000)
* GNU make optionally supports internationalization and locales via the
GNU gettext (or local gettext if suitable) package. See the ABOUT-NLS
@@ -388,9 +499,9 @@ Version 3.79
returned.
* Hartmut Becker provided many updates for the VMS port of GNU make.
- See the readme.vms file for more details.
+ See the README.VMS file for more details.
-Version 3.78
+Version 3.78 (22 Sep 1999)
* Two new functions, $(error ...) and $(warning ...) are available. The
former will cause make to fail and exit immediately upon expansion of
@@ -446,7 +557,7 @@ Version 3.78
by running "make check" in the distribution. Note that it requires
Perl (either Perl 4 or Perl 5) to run.
-Version 3.77
+Version 3.77 (28 Jul 1998)
* Implement BSD make's "?=" variable assignment operator. The variable
is assigned the specified value only if that variable is not already
@@ -492,11 +603,11 @@ Version 3.77
* Updates to the Windows 95/NT port from Rob Tulloh (see README.W32),
and to the DOS port from Eli Zaretski (see README.DOS).
-Version 3.76.1
+Version 3.76.1 (19 Sep 1997)
* Small (but serious) bug fix. Quick rollout to get into the GNU source CD.
-Version 3.76
+Version 3.76 (16 Sep 1997)
* GNU make now uses automake to control Makefile.in generation. This
should make it more consistent with the GNU standards.
@@ -541,7 +652,7 @@ Version 3.76
* John W. Eaton has updated the VMS port to support libraries and VPATH.
-Version 3.75
+Version 3.75 (27 Aug 1996)
* The directory messages printed by `-w' and implicitly in sub-makes,
are now omitted if Make runs no commands and has no other messages to print.
@@ -562,7 +673,7 @@ Version 3.75
See README.W32 for details, and direct all Windows-related questions to
<rob_tulloh@tivoli.com>.
-Version 3.73
+Version 3.73 (05 Apr 1995)
* Converted to use Autoconf version 2, so `configure' has some new options.
See INSTALL for details.
@@ -570,7 +681,7 @@ Version 3.73
* You can now send a SIGUSR1 signal to Make to toggle printing of debugging
output enabled by -d, at any time during the run.
-Version 3.72
+Version 3.72 (04 Nov 1994)
* DJ Delorie has ported Make to MS-DOS using the GO32 extender.
He is maintaining the DOS port, not the GNU Make maintainer;
@@ -604,7 +715,7 @@ Version 3.72
of `.SILENT', then the recipe to update that file will not be printed
before it is run. (This change was made to conform to POSIX.2.)
-Version 3.71
+Version 3.71 (21 May 1994)
* The automatic variables `$(@D)', `$(%D)', `$(*D)', `$(<D)', `$(?D)', and
`$(^D)' now omit the trailing slash from the directory name. (This change
@@ -626,7 +737,7 @@ Version 3.71
The exit status is 1 only when using -q and some target is not up to date.
(This change was made to comply with POSIX.2.)
-Version 3.70
+Version 3.70 (03 Jan 1994)
* It is no longer a fatal error to have a NUL character in a makefile.
You should never put a NUL in a makefile because it can have strange
@@ -637,7 +748,7 @@ Version 3.70
makefile name and line number where the `include' appeared, so Emacs's
C-x ` command takes you there (in case it's a typo you need to fix).
-Version 3.69
+Version 3.69 (07 Nov 1993)
* Implicit rule search for archive member references is now done in the
opposite order from previous versions: the whole target name `LIB(MEM)'
@@ -667,7 +778,7 @@ Version 3.69
* The recipe given for `.DEFAULT' is now used for phony targets with no
recipe.
-Version 3.68
+Version 3.68 (28 Jul 1993)
* You can list several archive member names inside parenthesis:
`lib(mem1 mem2 mem3)' is equivalent to `lib(mem1) lib(mem2) lib(mem3)'.
@@ -693,16 +804,16 @@ Version 3.68
to set up variables for them. They used to run with the environment
that `make' started with.
-Version 3.66
+Version 3.66 (21 May 1993)
* `make --version' (or `make -v') now exits immediately after printing
the version number.
-Version 3.65
+Version 3.65 (09 May 1993)
* Make now supports long-named members in `ar' archive files.
-Version 3.64
+Version 3.64 (21 Apr 1993)
* Make now supports the `+=' syntax for a variable definition which appends
to the variable's previous value. See the section `Appending More Text
@@ -716,7 +827,7 @@ Version 3.64
* The built-in implicit rules now support the alternative extension
`.txinfo' for Texinfo files, just like `.texinfo' and `.texi'.
-Version 3.63
+Version 3.63 (22 Jan 1993)
* Make now uses a standard GNU `configure' script. See the new file
INSTALL for the new (and much simpler) installation procedure.
@@ -1096,9 +1207,8 @@ Version 3.05
(Changes from versions 1 through 3.05 were never recorded. Sorry.)
-------------------------------------------------------------------------------
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc. This file is part of GNU Make.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
+This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
diff --git a/NMakefile b/NMakefile
index f4a6fe5..176535a 100644
--- a/NMakefile
+++ b/NMakefile
@@ -3,8 +3,7 @@
# NOTE: If you have no 'make' program at all to process this makefile,
# run 'build_w32.bat' instead.
#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
@@ -73,6 +72,8 @@ $(OUTDIR):
LIBS = kernel32.lib user32.lib advapi32.lib
+#guile = $(OUTDIR)/guile.obj
+
OBJS = \
$(OUTDIR)/ar.obj \
$(OUTDIR)/arscan.obj \
@@ -90,6 +91,7 @@ OBJS = \
$(OUTDIR)/job.obj \
$(OUTDIR)/main.obj \
$(OUTDIR)/misc.obj \
+ $(OUTDIR)/output.obj \
$(OUTDIR)/read.obj \
$(OUTDIR)/remake.obj \
$(OUTDIR)/remote-stub.obj \
@@ -102,7 +104,8 @@ OBJS = \
$(OUTDIR)/glob.obj \
$(OUTDIR)/fnmatch.obj \
$(OUTDIR)/dirent.obj \
- $(OUTDIR)/pathstuff.obj
+ $(OUTDIR)/pathstuff.obj \
+ $(guile)
$(OUTDIR)/make.exe: $(OUTDIR) $(OBJS)
$(LINK) @<<
@@ -128,60 +131,67 @@ $(OUTDIR)/pathstuff.obj : w32/pathstuff.c
# dummy
# .deps/ar.Po
-$(OUTDIR)/ar.obj: ar.c make.h config.h \
+$(OUTDIR)/ar.obj: ar.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
filedef.h hash.h dep.h \
# .deps/arscan.Po
-$(OUTDIR)/arscan.obj: arscan.c make.h config.h \
+$(OUTDIR)/arscan.obj: arscan.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
# .deps/commands.Po
-$(OUTDIR)/commands.obj: commands.c make.h config.h \
+$(OUTDIR)/commands.obj: commands.c \
+ makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h filedef.h hash.h variable.h job.h \
+ filedef.h hash.h dep.h \
+ variable.h job.h output.h \
commands.h
# .deps/default.Po
-$(OUTDIR)/default.obj: default.c make.h config.h \
+$(OUTDIR)/default.obj: default.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- filedef.h hash.h variable.h rule.h dep.h \
- job.h \
+ filedef.h hash.h variable.h rule.h dep.h job.h output.h \
commands.h
# .deps/dir.Po
-$(OUTDIR)/dir.obj: dir.c make.h config.h \
+$(OUTDIR)/dir.obj: dir.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- hash.h \
+ hash.h filedef.h dep.h \
# .deps/expand.Po
-$(OUTDIR)/expand.obj: expand.c make.h config.h \
+$(OUTDIR)/expand.obj: expand.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- filedef.h hash.h \
- job.h \
- commands.h variable.h \
- rule.h
+ filedef.h hash.h job.h output.h \
+ commands.h variable.h rule.h
# .deps/file.Po
-$(OUTDIR)/file.obj: file.c make.h config.h \
+$(OUTDIR)/file.obj: file.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h filedef.h \
- hash.h job.h \
+ filedef.h hash.h dep.h job.h output.h \
commands.h variable.h \
debug.h
# .deps/function.Po
-$(OUTDIR)/function.obj: function.c make.h config.h \
+$(OUTDIR)/function.obj: function.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- filedef.h hash.h variable.h dep.h job.h \
+ filedef.h hash.h \
+ variable.h dep.h job.h output.h \
commands.h debug.h
# .deps/getloadavg.Po
@@ -193,96 +203,143 @@ $(OUTDIR)/getopt.obj: getopt.c config.h \
# .deps/getopt1.Po
$(OUTDIR)/getopt1.obj: getopt1.c config.h getopt.h \
+# .deps/guile.Po
+$(OUTDIR)/guile.obj: guile.c makeint.h config.h \
+ gnumake.h \
+ getopt.h \
+ gettext.h \
+ debug.h filedef.h hash.h \
+ dep.h variable.h \
+ gmk-default.h
+
# .deps/hash.Po
-$(OUTDIR)/hash.obj: hash.c make.h config.h \
+$(OUTDIR)/hash.obj: hash.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
hash.h
# .deps/implicit.Po
-$(OUTDIR)/implicit.obj: implicit.c make.h config.h \
+$(OUTDIR)/implicit.obj: implicit.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- filedef.h hash.h rule.h dep.h debug.h \
- variable.h job.h \
+ filedef.h hash.h rule.h \
+ dep.h debug.h variable.h job.h output.h \
commands.h
# .deps/job.Po
-$(OUTDIR)/job.obj: job.c make.h config.h \
+$(OUTDIR)/job.obj: job.c makeint.h config.h \
+ gnumake.h \
+ getopt.h \
+ gettext.h \
+ job.h output.h \
+ debug.h filedef.h hash.h \
+ commands.h variable.h
+
+# .deps/load.Po
+$(OUTDIR)/load.obj: load.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- job.h \
- debug.h filedef.h hash.h commands.h \
+ debug.h filedef.h hash.h \
variable.h
+# .deps/loadapi.Po
+$(OUTDIR)/loadapi.obj: loadapi.c makeint.h config.h \
+ gnumake.h \
+ getopt.h \
+ gettext.h \
+ filedef.h hash.h \
+ variable.h dep.h
+
# .deps/loadavg-getloadavg.Po
# dummy
# .deps/main.Po
-$(OUTDIR)/main.obj: main.c make.h config.h \
+$(OUTDIR)/main.obj: main.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h filedef.h hash.h variable.h job.h \
- commands.h rule.h debug.h getopt.h \
+ filedef.h hash.h dep.h \
+ variable.h job.h output.h \
+ commands.h rule.h debug.h \
+ getopt.h
# .deps/misc.Po
-$(OUTDIR)/misc.obj: misc.c make.h config.h \
+$(OUTDIR)/misc.obj: misc.c makeint.h config.h \
+ gnumake.h \
+ getopt.h \
+ gettext.h \
+ filedef.h hash.h dep.h \
+ debug.h \
+
+# .deps/output.Po
+$(OUTDIR)/output.obj: output.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h debug.h
+ job.h output.h \
# .deps/read.Po
-$(OUTDIR)/read.obj: read.c make.h config.h \
+$(OUTDIR)/read.obj: read.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h filedef.h hash.h job.h \
- commands.h variable.h rule.h debug.h \
+ filedef.h hash.h dep.h job.h output.h \
+ commands.h variable.h rule.h \
+ debug.h
# .deps/remake.Po
-$(OUTDIR)/remake.obj: remake.c make.h config.h \
+$(OUTDIR)/remake.obj: remake.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
filedef.h hash.h job.h \
- commands.h dep.h variable.h debug.h \
+ output.h \
+ commands.h dep.h variable.h \
+ debug.h
# .deps/remote-cstms.Po
# dummy
# .deps/remote-stub.Po
-$(OUTDIR)/remote-stub.obj: remote-stub.c make.h config.h \
+$(OUTDIR)/remote-stub.obj: remote-stub.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
filedef.h hash.h job.h \
+ output.h \
commands.h
# .deps/rule.Po
-$(OUTDIR)/rule.obj: rule.c make.h config.h \
+$(OUTDIR)/rule.obj: rule.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h filedef.h \
- hash.h job.h \
- commands.h variable.h \
- rule.h
+ filedef.h hash.h dep.h job.h output.h \
+ commands.h variable.h rule.h
# .deps/signame.Po
-$(OUTDIR)/signame.obj: signame.c make.h config.h \
+$(OUTDIR)/signame.obj: signame.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
# .deps/strcache.Po
-$(OUTDIR)/strcache.obj: strcache.c make.h config.h \
+$(OUTDIR)/strcache.obj: strcache.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
hash.h
# .deps/variable.Po
-$(OUTDIR)/variable.obj: variable.c make.h config.h \
+$(OUTDIR)/variable.obj: variable.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h filedef.h \
- hash.h job.h \
- commands.h variable.h \
- rule.h
+ filedef.h hash.h dep.h job.h output.h \
+ commands.h variable.h rule.h
# .deps/version.Po
$(OUTDIR)/version.obj: version.c config.h
@@ -291,7 +348,9 @@ $(OUTDIR)/version.obj: version.c config.h
# dummy
# .deps/vpath.Po
-$(OUTDIR)/vpath.obj: vpath.c make.h config.h \
+$(OUTDIR)/vpath.obj: vpath.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- filedef.h hash.h variable.h
+ filedef.h hash.h \
+ variable.h
diff --git a/README b/README
index 07e5dc5..8b10c42 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-This directory contains the 3.82 release of GNU Make.
+This directory contains the 4.0 release of GNU Make.
See the file NEWS for the user-visible changes from previous releases.
In addition, there have been bugs fixed.
@@ -8,20 +8,22 @@ your operating system.
For general building and installation instructions, see the file INSTALL.
-If you need to build GNU Make and have no other `make' program to use,
-you can use the shell script `build.sh' instead. To do this, first run
-`configure' as described in INSTALL. Then, instead of typing `make' to
-build the program, type `sh build.sh'. This should compile the program
+If you need to build GNU Make and have no other 'make' program to use,
+you can use the shell script 'build.sh' instead. To do this, first run
+'configure' as described in INSTALL. Then, instead of typing 'make' to
+build the program, type 'sh build.sh'. This should compile the program
in the current directory. Then you will have a Make program that you can
-use for `./make install', or whatever else.
+use for './make install', or whatever else.
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.
+Make, try using 'build.sh' instead.
GNU Make is free software. See the file COPYING for copying conditions.
-
+GNU Make is copyright by the Free Software Foundation. Copyright notices
+condense sequential years into a range; e.g. "1987-1994" means all years
+from 1987 to 1994 inclusive.
Downloading
-----------
@@ -64,7 +66,7 @@ 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
+section of the GNU make manual entitled 'Problems and Bugs' for
information on submitting useful and complete bug reports.
You can also use the online bug tracking system in the Savannah GNU Make
@@ -79,31 +81,20 @@ If you need help using GNU make, try these forums:
news:gnu.utils.help
news:gnu.utils.bug
- http://savannah.gnu.org/support/?group=make
-
-You may also find interesting patches to GNU Make available here:
-
- http://savannah.gnu.org/patch/?group=make
-
-Note these patches are provided by our users as a service and we make no
-statements regarding their correctness. Please contact the authors
-directly if you have a problem or suggestion for a patch available on
-this page.
-
-CVS Access
+Git Access
----------
-The GNU make source repository is available via anonymous CVS from the
-GNU Subversions CVS server; look here for details:
+The GNU make source repository is available via Git from the
+GNU Savannah Git server; look here for details:
- http://savannah.gnu.org/cvs/?group=make
+ http://savannah.gnu.org/git/?group=make
-Please note: you won't be able to build GNU make from CVS without
+Please note: you won't be able to build GNU make from Git without
installing appropriate maintainer's tools, such as GNU m4, automake,
-autoconf, Perl, GNU make, and GCC. See the README.cvs file for hints on
+autoconf, Perl, GNU make, and GCC. See the README.git file for hints on
how to build GNU make once these tools are available. We make no
-guarantees about the contents or quality of the latest code in the CVS
+guarantees about the contents or quality of the latest code in the Git
repository: it is not unheard of for code that is known to be broken to
be checked in. Use at your own risk.
@@ -112,8 +103,8 @@ System-specific Notes
---------------------
It has been reported that the XLC 1.2 compiler on AIX 3.2 is buggy such
-that if you compile make with `cc -O' on AIX 3.2, it will not work
-correctly. It is said that using `cc' without `-O' does work.
+that if you compile make with 'cc -O' on AIX 3.2, it will not work
+correctly. It is said that using 'cc' without '-O' does work.
The standard /bin/sh on SunOS 4.1.3_U1 and 4.1.4 is broken and cannot be
used to configure GNU make. Please install a different shell such as
@@ -123,15 +114,15 @@ information:
One area that is often a problem in configuration and porting is the code
to check the system's current load average. To make it easier to test and
-debug this code, you can do `make check-loadavg' to see if it works
-properly on your system. (You must run `configure' beforehand, but you
+debug this code, you can do 'make check-loadavg' to see if it works
+properly on your system. (You must run 'configure' beforehand, but you
need not build Make itself to run this test.)
Another potential source of porting problems is the support for large
files (LFS) in configure for those operating systems that provide it.
Please report any bugs that you find in this area. If you run into
difficulties, then as a workaround you should be able to disable LFS by
-adding the `--disable-largefile' option to the `configure' script.
+adding the '--disable-largefile' option to the 'configure' script.
On systems that support micro- and nano-second timestamp values and
where stat(2) provides this information, GNU make will use it when
@@ -151,7 +142,7 @@ 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.VMS for details about GNU Make on OpenVMS.
- See README.Amiga for details about GNU Make on AmigaDOS.
@@ -171,9 +162,7 @@ at the right README!
-------------------------------------------------------------------------------
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/README.Amiga b/README.Amiga
index 091b8b4..1fabe07 100644
--- a/README.Amiga
+++ b/README.Amiga
@@ -11,7 +11,7 @@ GNU make):
- Can run multi-line statements
- Allows to use Device-Names in targets:
- c:make : make.o
+ c:make : make.o
is ok. To distinguish between device-names and target : or ::, MAKE
looks for spaces. If there are any around :, it's taken as a target
@@ -19,14 +19,14 @@ GNU make):
that "make:make.o" tries to create "make.o" on the device "make:".
- Replaces @@ by a newline in any command line:
- if exists make @@\
- delete make.bak quiet @@\
- rename make make.bak @@\
- endif @@\
- $(CC) Link Make.o To make
+ if exists make @@\
+ delete make.bak quiet @@\
+ rename make make.bak @@\
+ endif @@\
+ $(CC) Link Make.o To make
- works. Note that the @@ must stand alone (ie. "make@@\" is illegal).
- Also be carefull that there is a space after the "\" (ie, at the
+ works. Note that the @@ must stand alone (i.e., "make@@\" is illegal).
+ Also be careful that there is a space after the "\" (i.e., at the
beginning of the next line).
- Can be made resident to save space and time
- Amiga specific wildcards can be used in $(wildcard ...)
@@ -36,17 +36,17 @@ BUGS:
dummy.h : src/*.c
-tries to make dummy.h from "src/*.c" (ie. no wildcard-expansion takes
+tries to make dummy.h from "src/*.c" (i.e., no wildcard-expansion takes
place). You have to use "$(wildcard src/*.c)" instead.
COMPILING FROM SCRATCH
----------------------
-To recompile, you need SAS/C 6.51. make itself is not neccessary, there
+To recompile, you need SAS/C 6.51. make itself is not necessary, there
is an smakefile.
1. Copy config.ami to config.h
-2. If you use make to compie, copy Makefile.ami to Makefile and
+2. If you use make to compile, copy Makefile.ami to Makefile and
glob/Makefile.ami to glob/Makefile. Copy make into the current
directory.
@@ -54,15 +54,14 @@ is an smakefile.
INSTALLATION
-Copy make somewhere in your search path (eg. sc:c or sc:bin).
+Copy make somewhere in your search path (e.g., sc:c or sc:bin).
If you plan to use recursive makes, install make resident:
Resident make Add
-------------------------------------------------------------------------------
-Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1995-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/README.DOS b/README.DOS
index 52529ab..158560d 100644
--- a/README.DOS
+++ b/README.DOS
@@ -8,12 +8,12 @@ New (since 3.74) DOS-specific features:
1. Supports long filenames when run from DOS box on Windows 9x.
2. Supports both stock DOS COMMAND.COM and Unix-style shells
- (details in ``Notes'' below).
+ (details in 'Notes' below).
3. Supports DOS drive letters in dependencies and pattern rules.
4. Better support for DOS-style backslashes in pathnames (but see
- ``Notes'' below).
+ 'Notes' below).
5. The $(shell) built-in can run arbitrary complex commands,
including pipes and redirection, even when COMMAND.COM is your
@@ -55,20 +55,20 @@ To build from sources:
either DJTAR (which is part of the DJGPP development
environment), or the DJGPP port of GNU Tar.
- 2. Invoke the `configure.bat' batch file.
+ 2. Invoke the 'configure.bat' batch file.
If you are building Make in-place, i.e. in the same directory
where its sources are kept, just type "configure.bat" and press
[Enter]. Otherwise, you need to supply the path to the source
directory as an argument to the batch file, like this:
- c:\djgpp\gnu\make-3.82\configure.bat c:/djgpp/gnu/make-3.82
+ c:\djgpp\gnu\make-4.0\configure.bat c:/djgpp/gnu/make-4.0
Note the forward slashes in the source path argument: you MUST
use them here.
3. If configure.bat doesn't find a working Make, it will suggest to
- use the `dosbuild.bat' batch file to build Make. Either do as it
+ use the 'dosbuild.bat' batch file to build Make. Either do as it
suggests or install another Make program (a pre-compiled binary
should be available from the usual DJGPP sites) and rerun
configure.bat.
@@ -84,14 +84,14 @@ To build from sources:
If you are building from outside of the source directory, you
need to tell Make where the sources are, like this:
- make srcdir=c:/djgpp/gnu/make-3.82
+ make srcdir=c:/djgpp/gnu/make-4.0
(configure.bat will tell you this when it finishes). You MUST
use a full, not relative, name of the source directory here, or
else Make might fail.
6. After Make finishes, if you have a Unix-style shell installed,
- you can use the `install' target to install the package. You
+ you can use the 'install' target to install the package. You
will also need GNU Fileutils and GNU Sed for this (they should
be available from the DJGPP sites).
@@ -99,7 +99,7 @@ To build from sources:
area. If you wish to use a different directory, override the
DESTDIR variable when invoking "make install", like this:
- make install DESTDIR=c:/other/dir
+ make install DESTDIR=c:/other/dir
This causes the make executable to be placed in c:/other/dir/bin,
the man pages in c:/other/dir/man, etc.
@@ -107,21 +107,21 @@ To build from sources:
Without a Unix-style shell, you will have to install programs
and the docs manually. Copy make.exe to a directory on your
PATH, make.i* info files to your Info directory, and update the
- file `dir' in your Info directory by adding the following item
+ file 'dir' in your Info directory by adding the following item
to the main menu:
- * Make: (make.info). The GNU make utility.
+ * Make: (make.info). The GNU make utility.
- If you have the `install-info' program (from the GNU Texinfo
+ If you have the 'install-info' program (from the GNU Texinfo
package), it will do that for you if you invoke it like this:
- install-info --info-dir=c:/djgpp/info c:/djgpp/info/make.info
+ install-info --info-dir=c:/djgpp/info c:/djgpp/info/make.info
(If your Info directory is other than C:\DJGPP\INFO, change this
command accordingly.)
- 7. The `clean' targets also require Unix-style shell, and GNU Sed
- and `rm' programs (the latter from Fileutils).
+ 7. The 'clean' targets also require Unix-style shell, and GNU Sed
+ and 'rm' programs (the latter from Fileutils).
8. To run the test suite, type "make check". This requires a Unix
shell (I used the DJGPP port of Bash 2.03), Perl, Sed, Fileutils
@@ -144,7 +144,7 @@ Notes:
This port supports both DOS shells (the stock COMMAND.COM and its
4DOS/NDOS replacements), and Unix-style shells (tested with the
- venerable Stewartson's `ms_sh' 2.3 and the DJGPP port of `bash' by
+ venerable Stewartson's 'ms_sh' 2.3 and the DJGPP port of 'bash' by
Daisuke Aoyama <jack@st.rim.or.jp>).
When the $SHELL variable points to a Unix-style shell, Make
@@ -166,17 +166,17 @@ Notes:
redirection and pipes, and shall only call the shell when a
batch file or a command internal to the shell is invoked. (Even
when a command is an internal shell command, Make will first
- search the $PATH for it, so that if a Makefile calls `mkdir',
- you can install, say, a port of GNU `mkdir' and have it called
+ search the $PATH for it, so that if a Makefile calls 'mkdir',
+ you can install, say, a port of GNU 'mkdir' and have it called
in that case.)
- The key to all this is the extended functionality of `spawn' and
- `system' functions from the DJGPP library; this port just calls
- `system' where it would invoke the shell on Unix. The most
+ The key to all this is the extended functionality of 'spawn' and
+ 'system' functions from the DJGPP library; this port just calls
+ 'system' where it would invoke the shell on Unix. The most
important aspect of these functions is that they use a special
mechanism to pass long (up to 16KB) command lines to DJGPP
- programs. In addition, `system' emulates some internal
- commands, like `cd' (so that you can now use forward slashes
+ programs. In addition, 'system' emulates some internal
+ commands, like 'cd' (so that you can now use forward slashes
with it, and can also change the drive if the directory is on
another drive). Another aspect worth mentioning is that you can
call Unix shell scripts directly, provided that the shell whose
@@ -186,7 +186,7 @@ Notes:
reference for more details.
The $(shell) built-in is implemented in this port by calling
- `popen'. Since `popen' calls `system', the above considerations
+ 'popen'. Since 'popen' calls 'system', the above considerations
are valid for $(shell) as well. In particular, you can put
arbitrary complex commands, including pipes and redirection,
inside $(shell), which is in many cases a valid substitute for
@@ -197,12 +197,12 @@ Notes:
Many Unix Makefiles include a line which sets the SHELL, for
those versions of Make which don't have this as the default.
- Since many DOS systems don't have `sh' installed (in fact, most
- of them don't even have a `/bin' directory), this port takes
+ Since many DOS systems don't have 'sh' installed (in fact, most
+ of them don't even have a '/bin' directory), this port takes
such directives with a grain of salt. It will only honor such a
- directive if the basename of the shell name (like `sh' in the
+ directive if the basename of the shell name (like 'sh' in the
above example) can indeed be found in the directory that is
- mentioned in the SHELL= line (`/bin' in the above example), or
+ mentioned in the SHELL= line ('/bin' in the above example), or
in the current working directory, or anywhere on the $PATH (in
that order). If the basename doesn't include a filename
extension, Make will look for any known extension that indicates
@@ -237,8 +237,8 @@ Notes:
require such a shell). More important, you can convert Unix
Makefiles to MSDOS and leave the line which sets the shell
intact, so that people who do have Unixy shell could use it for
- targets which aren't converted to DOS (like `install' and
- `uninstall', for example).
+ targets which aren't converted to DOS (like 'install' and
+ 'uninstall', for example).
3. Default directories.
@@ -258,14 +258,14 @@ Notes:
If you run Make on Windows 9x, you should be aware of the
letter-case issue. Make is internally case-sensitive, but all
file operations are case-insensitive on Windows 9x, so
- e.g. files `FAQ', `faq' and `Faq' all refer to the same file, as
+ e.g. files 'FAQ', 'faq' and 'Faq' all refer to the same file, as
far as Windows is concerned. The underlying DJGPP C library
functions honor the letter-case of the filenames they get from
the OS, except that by default, they down-case 8+3 DOS filenames
which are stored in upper case in the directory and would break
many Makefiles otherwise. (The details of which filenames are
converted to lower case are explained in the DJGPP libc docs,
- under the `_preserve_fncase' and `_lfn_gen_short_fname'
+ under the '_preserve_fncase' and '_lfn_gen_short_fname'
functions, but as a thumb rule, any filename that is stored in
upper case in the directory, is a valid DOS 8+3 filename and
doesn't include characters invalid on MSDOS FAT filesystems,
@@ -282,8 +282,8 @@ Notes:
There are a lot of places throughout the program sources which
make implicit assumptions about the pathname syntax. In
- particular, the directories are assumed to be separated by `/',
- and any pathname which doesn't begin with a `/' is assumed to be
+ particular, the directories are assumed to be separated by '/',
+ and any pathname which doesn't begin with a '/' is assumed to be
relative to the current directory. This port attempts to
support DOS-style pathnames which might include the drive letter
and use backslashes instead of forward slashes. However, this
@@ -296,7 +296,7 @@ Notes:
is the standard programs which come with MSDOS. Otherwise, you
are advised to stay away from backslashes whenever possible. In
particular, filename globbing won't work on pathnames with
- backslashes, because the GNU `glob' library doesn't support them
+ backslashes, because the GNU 'glob' library doesn't support them
(backslash is special in filename wildcards, and I didn't want
to break that).
@@ -315,17 +315,16 @@ Bug reports:
<djgpp@delorie.com>, which is an email gateway into the above news
group). For other bugs, please follow the procedure explained in
the "Bugs" chapter of the Info docs. If you don't have an Info
- reader, look up that chapter in the `make.i1' file with any text
+ reader, look up that chapter in the 'make.i1' file with any text
browser/editor.
Enjoy,
- Eli Zaretskii <eliz@is.elta.co.il>
+ Eli Zaretskii <eliz@is.elta.co.il>
-------------------------------------------------------------------------------
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/README.OS2 b/README.OS2
index 0da6385..792c4bb 100644
--- a/README.OS2
+++ b/README.OS2
@@ -140,7 +140,7 @@ to do this but the testsuite ignores the environment. -DNO_CHDIR2 causes
make not to use drive letters for directory names (i.e. _chdir2() and
_getcwd2() are NOT used). The testsuite interpretes the whole output of
make, especially statements like make[1]: Entering directory
-`C:/somewhere/make-3.79.1/tests' where the testsuite does not expect the
+'C:/somewhere/make-3.79.1/tests' where the testsuite does not expect the
drive letter. This would be interpreted as an error even if there is
none.
@@ -160,8 +160,7 @@ from the make source tree.
-------------------------------------------------------------------------------
-Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-Foundation, Inc.
+Copyright (C) 2003-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/readme.vms b/README.VMS
index ec3d624..f7b064d 100644
--- a/readme.vms
+++ b/README.VMS
@@ -1,23 +1,33 @@
-This is the VMS version of GNU Make, updated by Hartmut Becker
-
-Changes are based on GNU make 3.82.
-
-This version was built and tested on OpenVMS V7.3 (VAX), V7.3-2 (Alpha) and
-V8.3-1H1 (I64).
+This version of GNU make has been tested on
+OpenVMS V8.3 (Alpha) and V8.4 (Integrity).
Build instructions
+------------------
Make a 1st version
$ @makefile.com ! ignore any compiler and/or linker warning
- $ rena make.exe 1st-make.exe
-Use the 1st version to generate a 2nd version
- $ mc sys$disk:[]1st-make clean
+ $ copy make.exe 1st-make.exe
+ Use the 1st version to generate a 2nd version
+ $ mc sys$disk:[]1st-make clean ! ignore any file not found messages
$ mc sys$disk:[]1st-make
-Verify your 2nd version
- $ rena make.exe 2nd-make.exe
+ Verify your 2nd version
+ $ copy make.exe 2nd-make.exe
$ mc sys$disk:[]2nd-make clean
$ mc sys$disk:[]2nd-make
+ Don't use the HP C V7.2-001 compiler, which has an incompatible change
+ how __STDC__ is defined. This results at least in compile time warnings.
+
+Changes since GNU make 3.82
+---------------------------
-Changes (3.81.90)
+Fix build problems.
+
+The new feature "Loadable objects" is not yet supported. If you need it,
+please send a change request or submit a bug report.
+
+The new option --output-sync (-O) is accepted but has no effect: GNU make
+for VMS does not support running multiple commands simultaneously.
+
+Changes for GNU make 3.82
Michael Gehre (at VISTEC-SEMI dot COM) supplied a fix for a problem with
timestamps of object modules in OLBs. The timestamps were not correctly
@@ -34,30 +44,6 @@ systems.
Build fixes for const-ified code in VMS specific sources.
-Build notes:
-- Try to avoid HP C V7.2-001, which has an incompatible change
-how __STDC__ is defined. This results at least in compile time warnings.
-
-- On V8.3-1H1, if you press Ctrl+C you may see a traceback, starting with
-%SYSTEM-F-CONTROLC, operation completed under CTRL/C
-%TRACE-F-TRACEBACK, symbolic stack dump follows
-image module routine line rel PC abs PC
-
-DECC$SHR C$SIGNAL gsignal 27991 0000000000001180
-FFFFFFFF84AB2DA0
-DECC$SHR C$SIGNAL raise 28048 0000000000001280
-FFFFFFFF84AB2EA0
-DECC$SHR C$SIGPENDING decc$$deliver_signals
- 12475 0000000000000890
-FFFFFFFF84C13690
-...
-This looks like an incompatibility to the Alpha and VAX behavior, so it looks
-like a problem in I64 VMS version(s).
-
-- There is no clean build on VAX. In the environment I tested, I had to use GNU
-make's alloca which produced a couple of compile time warnings. It seems too
-much effort to work on a clean build on VAX.
-
A note on appending the redirected output. With this change, a simple mechanism
is implemented to make ">>" work in action lines. In VMS there is no simple
feature like ">>" to have DCL command or program output redirected and appended
@@ -78,117 +64,24 @@ happens. Pressing Ctrl+Y to abort make is one case. In case of Ctrl+Y the
associated command procedure is left in SYS$SCRATCH as well. Its name is
CMDxxxxx.COM.
-Change in the Ctrl+Y handling
-
-Ctrl+Y was: The CtrlY handler called $forcex for the current child.
-
-Ctrl+Y changed: The CtrlY handler uses $delprc to delete all children. This way
-also actions with DCL commands will be stopped. As before Ctrl+Y then sends
-SIGQUIT to itself, which is handled in common code.
+Change in the Ctrl+Y handling. The CtrlY handler now uses $delprc to delete all
+children. This way also actions with DCL commands will be stopped. As before
+the CtrlY handler then sends SIGQUIT to itself, which is handled in common
+code.
-Change in deleteing temporary command files
-
-Temporary command files were deleted in the main line, after returning from the
-vms child termination handler. If Ctrl+C was pressed, the handler is called but
-did not return to main line.
-
-Now, temporary command files are deleted in the vms child termination
-handler. That deletes the them even if a Ctrl+C was pressed.
+Change in deleteing temporary command files. Temporary command files are now
+deleted in the vms child termination handler. That deletes them even if
+a Ctrl+C was pressed.
The behavior of pressing Ctrl+C is not changed. It still has only an effect,
after the current action is terminated. If that doesn't happen or takes too
long, Ctrl+Y should be used instead.
-Changes (3.80)
+Changes for GNU make 3.80
. In default.c define variable ARCH as IA64 for VMS on Itanium systems.
. In makefile.vms avoid name collision for glob and globfree.
-
-In newer version of the VMS CRTL there are glob and globfree implemented.
-Compiling and linking may result in
-
- %ILINK-W-MULDEFLNKG, symbol DECC$GLOBFREE has subsequent linkage definition
- in module DECC$SHR file SYS$COMMON:[SYSLIB]DECC$SHR.EXE;1
- %ILINK-W-MULDEF, symbol DECC$GLOBFREE multiply defined
- in module DECC$SHR file SYS$COMMON:[SYSLIB]DECC$SHR.EXE;1
-
-linker messages (and similar for DECC$GLOB). The messages just say, that
-globfree is a known CRTL whose name was mapped by the compiler to
-DECC$GLOBFREE. This is done in glob.c as well, so this name is defined
-twice. One possible solution is to use the VMS versions of glob and
-globfree. However, then the build environment needs to figure out if
-there is a new CRTL supporting these or not. This adds complexity. Even
-more, these functions return VMS file specifications, which is not
-expected by the other make sources. There is a switch at run time (a VMS
-logical DECC$GLOB_UNIX_STYLE), which can be set to get Unix style
-names. This may conflict with other software. The recommended solution
-for this is to set this switch just prior to calling main: in an
-initialization routine. This adds more complexity and more VMS specific
-code. It is easier to tell the compiler NOT to map the routine names
-with a simple change in makefile.vms.
-
-Some notes on case sensitive names in rules and on the disk. In the VMS
-template for CONFIG.H case sensitive rules can be enabled with defining
-WANT_CASE_SENSITIVE_TARGETS. For recent version of VMS there is a case
-sensitive file system: ODS5. To make use of that, additionally un-defining
-the HAVE_CASE_INSENSITIVE_FS is required. As these are C macros, different
-versions of make need to be built to have any case sensitivity for VMS
-working. Unfortunately, for ODS5 disks that's not all.
-
-- Usually DCL upcases command line tokens (except strings) and usually the
- file system is case blind (similar to how Windows systems work)
- $ set proc/parse=extended/case=sensitive
- preserves lower and UPPER on the command line and (for this process and all
- sub-processes) enables case sensitivity in the file system
-
-- Usually the CRTL tries to reverse what DCL did with command line tokens, it
- lowercases all tokens (except strings)
- $ define DECC$ARGV_PARSE_STYLE enable
- passes (the now preserved) lower and UPPER from the command line to main()
-
-- Usually the CRTL upcases the arguments to open() and friends
- $ define DECC$EFS_CASE_PRESERVE enable
- preserves the names as is.
-
-It is important to know that not all VMS tools are ready for case sensitivity.
-With this setup some tools may not work as expected. The setup should not
-blindly be applied for all users in default login procedures.
-
-Example? The poor coding gives a compiler message, showing that there are
-different files:
-
-$ dir
-
-Directory ODS5DISK[HB]
-
-A.c;1 B.c;1 c.c;1 X.c;1
-x.c;1
-
-Total of 5 files.
-$ ods5make x.obj
-cc /obj=x.obj x.c
-
-foo(){lowercase_x();}
-......^
-%CC-I-IMPLICITFUNC, In this statement, the identifier "lowercase_x" is implicitly declared as a function.
-at line number 1 in file ODS5DISK[HB]x.c;1
-$ mc SYS$SYSDEVICE:[HARTMUT.MAKE_3_80P]ods5make X.obj
-cc /obj=X.obj X.c
-
-foo() {UPPERCASE_X();}
-.......^
-%CC-I-IMPLICITFUNC, In this statement, the identifier "UPPERCASE_X" is implicitly declared as a function.
-at line number 1 in file ODS5DISK[HB]X.c;1
-$ dir
-
-Directory ODS5DISK[HB]
-
-A.c;1 B.c;1 c.c;1 X.c;1
-x.c;1 X.obj;1 x.obj;1
-
-Total of 7 files.
-$
This is the VMS port of GNU Make done by Hartmut.Becker@compaq.com.
@@ -212,7 +105,7 @@ returns a modification time 1 hour ahead. This results in GNU make
warning messages. For a just created source you will see:
$ gmake x.exe
- gmake.exe;1: *** Warning: File `x.c' has modification time in the future (940582863 > 940579269)
+ gmake.exe;1: *** Warning: File 'x.c' has modification time in the future (940582863 > 940579269)
cc /obj=x.obj x.c
link x.obj /exe=x.exe
gmake.exe;1: *** Warning: Clock skew detected. Your build may be incomplete.
@@ -353,7 +246,7 @@ replaced it with a hack in vmsfunctions.c. I will provide a full rewrite
somewhere in the future. Be warned, the time resolution inside make is
less than what vms provides. This might be a problem on the faster Alphas.
-You can use a : in a filename only if you preceed it with a backslash ('\').
+You can use a : in a filename only if you precede it with a backslash ('\').
E.g.- hobbes\:[bogas.files]
Make ignores success, informational, or warning errors (-S-, -I-, or
@@ -375,8 +268,7 @@ Long command lines are now converted to command files.
Comma (',') as a separator is now allowed. See makefile.vms for an example.
-------------------------------------------------------------------------------
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/README.W32 b/README.W32
index 60025d0..e311170 100644
--- a/README.W32
+++ b/README.W32
@@ -1,4 +1,5 @@
-This version of GNU make has been tested on Microsoft Windows 2000/XP/2003.
+This version of GNU make has been tested on
+Microsoft Windows 2000/XP/2003/Vista/7/2008.
It has also been used on Windows 95/98/NT, and on OS/2.
It builds with the MinGW port of GCC (tested with GCC 3.4.2).
@@ -6,6 +7,23 @@ It builds with the MinGW port of GCC (tested with GCC 3.4.2).
It also builds with MSVC 2.x, 4.x, 5.x, 6.x, and 2003 as well as
with .NET 7.x and .NET 2003.
+As of version 4.0, a build with Guile is supported (tested with Guile
+2.0.3). To build with Guile, you will need, in addition to Guile
+itself, its dependency libraries and the pkg-config program. The
+latter is used to figure out which compilation and link switches and
+libraries need to be mentioned on the compiler command lines to
+correctly link with Guile. A Windows port of pkg-config can be found
+on the Windows download page of the GTK+ project:
+
+ http://www.gtk.org/download/win32.php
+
+The libraries on which Guile depends can vary depending on your
+version and build of Guile. At the very least, the Boehm's GC library
+will be needed, and typically also GNU MP, libffi, libunistring, and
+libtool's libltdl. Whoever built the port of Guile you have should
+also provide you with these dependencies or a URL where to download
+them.
+
The Windows 32-bit port of GNU make is maintained jointly by various
people. It was originally made by Rob Tulloh.
@@ -37,10 +55,16 @@ Building with (MinGW-)GCC using build_w32.bat
2. Open a W32 command prompt for your installed (MinGW-)GCC, setup a
correct PATH and other environment variables for it, then execute ...
- build_w32.bat gcc
+ build_w32.bat gcc
This produces gnumake.exe in the current directory.
+ The batch file will probe for Guile installation, and will build
+ gnumake.exe with Guile if it finds it. If you have Guile
+ installed, but want to build Make without Guile support, type
+
+ build_w32.bat --without-guile gcc
+
Building with (MSVC++-)cl using build_w32.bat or NMakefile
----------------------------------------------------------
@@ -51,16 +75,21 @@ Building with (MSVC++-)cl using build_w32.bat or NMakefile
e.g. "%VS71COMNTOOLS%vsvars32.bat"; or using a corresponding start
menue entry from the cl-installation), then execute EITHER ...
- build_w32.bat
+ build_w32.bat
(this produces WinDebug/gnumake.exe and WinRel/gnumake.exe)
... OR ...
- nmake /f NMakefile
+ nmake /f NMakefile
(this produces WinDebug/make.exe and WinRel/make.exe).
+ The batch file will probe for Guile installation, and will build
+ gnumake.exe with Guile if it finds it. If you have Guile
+ installed, but want to build Make without Guile support, type
+
+ build_w32.bat --without-guile
-------------------
-- Notes/Caveats --
@@ -68,212 +97,203 @@ Building with (MSVC++-)cl using build_w32.bat or NMakefile
GNU make on Windows 32-bit platforms:
- This version of make is ported natively to Windows32 platforms
- (Windows NT 3.51, Windows NT 4.0, Windows 2000, Windows XP,
- Windows 95, and Windows 98). It does not rely on any 3rd party
- software or add-on packages for building. The only thing
- needed is a Windows compiler. Two compilers supported
- officially are the MinGW port of GNU GCC, and the various
- versions of the Microsoft C compiler.
+ This version of make is ported natively to Windows32 platforms
+ (Windows NT 3.51, Windows NT 4.0, Windows 2000, Windows XP,
+ Windows 95, and Windows 98). It does not rely on any 3rd party
+ software or add-on packages for building. The only thing
+ needed is a Windows compiler. Two compilers supported
+ officially are the MinGW port of GNU GCC, and the various
+ versions of the Microsoft C compiler.
- Do not confuse this port of GNU make with other Windows32 projects
- which provide a GNU make binary. These are separate projects
- and are not connected to this port effort.
+ Do not confuse this port of GNU make with other Windows32 projects
+ which provide a GNU make binary. These are separate projects
+ and are not connected to this port effort.
GNU make and sh.exe:
- This port prefers if you have a working sh.exe somewhere on
- your system. If you don't have sh.exe, the port falls back to
- MSDOS mode for launching programs (via a batch file). The
- MSDOS mode style execution has not been tested that carefully
- though (The author uses GNU bash as sh.exe).
+ This port prefers if you have a working sh.exe somewhere on
+ your system. If you don't have sh.exe, the port falls back to
+ MSDOS mode for launching programs (via a batch file). The
+ MSDOS mode style execution has not been tested that carefully
+ though (The author uses GNU bash as sh.exe).
- There are very few true ports of Bourne shell for NT right now.
- There is a version of GNU bash available from Cygnus "Cygwin"
- porting effort (http://www.cygwin.com/).
- Other possibilities are the MKS version of sh.exe, or building
+ There are very few true ports of Bourne shell for NT right now.
+ There is a version of GNU bash available from Cygnus "Cygwin"
+ porting effort (http://www.cygwin.com/).
+ Other possibilities are the MKS version of sh.exe, or building
your own with a package like NutCracker (DataFocus) or Portage
(Consensys). Also MinGW includes sh (http://mingw.org/).
GNU make and brain-dead shells (BATCH_MODE_ONLY_SHELL):
- Some versions of Bourne shell do not behave well when invoked
- as 'sh -c' from CreateProcess(). The main problem is they seem
- to have a hard time handling quoted strings correctly. This can
- be circumvented by writing commands to be executed to a batch
- file and then executing the command by calling 'sh file'.
-
- To work around this difficulty, this version of make supports
- a batch mode. When BATCH_MODE_ONLY_SHELL is defined at compile
- time, make forces all command lines to be executed via script
- files instead of by command line. In this mode you must have a
- working sh.exe in order to use parallel builds (-j).
-
- A native Windows32 system with no Bourne shell will also run
- in batch mode. All command lines will be put into batch files
- and executed via $(COMSPEC) (%COMSPEC%). However, parallel
- builds ARE supported with Windows shells (cmd.exe and
- command.com). See the next section about some peculiarities
- of parallel builds on Windows.
+ Some versions of Bourne shell do not behave well when invoked
+ as 'sh -c' from CreateProcess(). The main problem is they seem
+ to have a hard time handling quoted strings correctly. This can
+ be circumvented by writing commands to be executed to a batch
+ file and then executing the command by calling 'sh file'.
+
+ To work around this difficulty, this version of make supports
+ a batch mode. When BATCH_MODE_ONLY_SHELL is defined at compile
+ time, make forces all command lines to be executed via script
+ files instead of by command line. In this mode you must have a
+ working sh.exe in order to use parallel builds (-j).
+
+ A native Windows32 system with no Bourne shell will also run
+ in batch mode. All command lines will be put into batch files
+ and executed via $(COMSPEC) (%COMSPEC%). However, parallel
+ builds ARE supported with Windows shells (cmd.exe and
+ command.com). See the next section about some peculiarities
+ of parallel builds on Windows.
Support for parallel builds
- Parallel builds (-jN) are supported in this port, with 2
- limitations:
-
- - The number of concurrent processes has a hard limit of 64,
- due to the way this port implements waiting for its
- subprocesses;
-
- - The job server method (available when Make runs on Posix
- platforms) is not supported, which means you must pass an
- explicit -jN switch to sub-Make's in a recursive Makefile.
- If a sub-Make does not receive an explicit -jN switch, it
- will default to -j1, i.e. no parallelism in sub-Make's.
+ Parallel builds (-jN) are supported in this port, with 1
+ limitation: The number of concurrent processes has a hard
+ limit of 64, due to the way this port implements waiting for
+ its subprocesses.
GNU make and Cygnus GNU Windows32 tools:
- Good news! Make now has native support for Cygwin sh. To enable,
- define the HAVE_CYGWIN_SHELL in config.h and rebuild make
- from scratch. This version of make tested with B20.1 of Cygwin.
- Do not define BATCH_MODE_ONLY_SHELL if you use HAVE_CYGWIN_SHELL.
+ Good news! Make now has native support for Cygwin sh. To enable,
+ define the HAVE_CYGWIN_SHELL in config.h and rebuild make
+ from scratch. This version of make tested with B20.1 of Cygwin.
+ Do not define BATCH_MODE_ONLY_SHELL if you use HAVE_CYGWIN_SHELL.
GNU make and the MKS shell:
- There is now semi-official support for the MKS shell. To turn this
- support on, define HAVE_MKS_SHELL in the config.h.W32 before you
- build make. Do not define BATCH_MODE_ONLY_SHELL if you turn
- on HAVE_MKS_SHELL.
+ There is now semi-official support for the MKS shell. To turn this
+ support on, define HAVE_MKS_SHELL in the config.h.W32 before you
+ build make. Do not define BATCH_MODE_ONLY_SHELL if you turn
+ on HAVE_MKS_SHELL.
GNU make handling of drive letters in pathnames (PATH, vpath, VPATH):
- There is a caveat that should be noted with respect to handling
- single character pathnames on Windows systems. When colon is
- used in PATH variables, make tries to be smart about knowing when
- you are using colon as a separator versus colon as a drive
- letter. Unfortunately, something as simple as the string 'x:/'
- could be interpreted 2 ways: (x and /) or (x:/).
-
- Make chooses to interpret a letter plus colon (e.g. x:/) as a
- drive letter pathname. If it is necessary to use single
- character directories in paths (VPATH, vpath, Path, PATH), the
- user must do one of two things:
-
- a. Use semicolon as the separator to disambiguate colon. For
- example use 'x;/' if you want to say 'x' and '/' are
- separate components.
-
- b. Qualify the directory name so that there is more than
- one character in the path(s) used. For example, none
- of these settings are ambiguous:
-
- ./x:./y
- /some/path/x:/some/path/y
- x:/some/path/x:x:/some/path/y
-
- Please note that you are free to mix colon and semi-colon in the
- specification of paths. Make is able to figure out the intended
- result and convert the paths internally to the format needed
- when interacting with the operating system, providing the path
- is not within quotes, e.g. "x:/test/test.c".
-
- You are encouraged to use colon as the separator character.
- This should ease the pain of deciding how to handle various path
- problems which exist between platforms. If colon is used on
- both Unix and Windows systems, then no ifdef'ing will be
- necessary in the makefile source.
+ There is a caveat that should be noted with respect to handling
+ single character pathnames on Windows systems. When colon is
+ used in PATH variables, make tries to be smart about knowing when
+ you are using colon as a separator versus colon as a drive
+ letter. Unfortunately, something as simple as the string 'x:/'
+ could be interpreted 2 ways: (x and /) or (x:/).
+
+ Make chooses to interpret a letter plus colon (e.g. x:/) as a
+ drive letter pathname. If it is necessary to use single
+ character directories in paths (VPATH, vpath, Path, PATH), the
+ user must do one of two things:
+
+ a. Use semicolon as the separator to disambiguate colon. For
+ example use 'x;/' if you want to say 'x' and '/' are
+ separate components.
+
+ b. Qualify the directory name so that there is more than
+ one character in the path(s) used. For example, none
+ of these settings are ambiguous:
+
+ ./x:./y
+ /some/path/x:/some/path/y
+ x:/some/path/x:x:/some/path/y
+
+ Please note that you are free to mix colon and semi-colon in the
+ specification of paths. Make is able to figure out the intended
+ result and convert the paths internally to the format needed
+ when interacting with the operating system, providing the path
+ is not within quotes, e.g. "x:/test/test.c".
+
+ You are encouraged to use colon as the separator character.
+ This should ease the pain of deciding how to handle various path
+ problems which exist between platforms. If colon is used on
+ both Unix and Windows systems, then no ifdef'ing will be
+ necessary in the makefile source.
GNU make test suite:
- I verified all functionality with a slightly modified version
- of make-test-3.82 (modifications to get test suite to run
- on Windows NT). All tests pass in an environment that includes
- sh.exe. Tests were performed on both Windows NT and Windows 95.
+ I verified all functionality with a slightly modified version
+ of make-test-4.0 (modifications to get test suite to run
+ on Windows NT). All tests pass in an environment that includes
+ sh.exe. Tests were performed on both Windows NT and Windows 95.
Pathnames and white space:
- Unlike Unix, Windows 95/NT systems encourage pathnames which
- contain white space (e.g. C:\Program Files\). These sorts of
- pathnames are valid on Unix too, but are never encouraged.
- There is at least one place in make (VPATH/vpath handling) where
- paths containing white space will simply not work. There may be
- others too. I chose to not try and port make in such a way so
- that these sorts of paths could be handled. I offer these
- suggestions as workarounds:
+ Unlike Unix, Windows 95/NT systems encourage pathnames which
+ contain white space (e.g. C:\Program Files\). These sorts of
+ pathnames are valid on Unix too, but are never encouraged.
+ There is at least one place in make (VPATH/vpath handling) where
+ paths containing white space will simply not work. There may be
+ others too. I chose to not try and port make in such a way so
+ that these sorts of paths could be handled. I offer these
+ suggestions as workarounds:
- 1. Use 8.3 notation. i.e. "x:/long~1/", which is actually
- "x:\longpathtest". Type "dir /x" to view these filenames
- within the cmd.exe shell.
- 2. Rename the directory so it does not contain white space.
+ 1. Use 8.3 notation. i.e. "x:/long~1/", which is actually
+ "x:\longpathtest". Type "dir /x" to view these filenames
+ within the cmd.exe shell.
+ 2. Rename the directory so it does not contain white space.
- If you are unhappy with this choice, this is free software
- and you are free to take a crack at making this work. The code
- in w32/pathstuff.c and vpath.c would be the places to start.
+ If you are unhappy with this choice, this is free software
+ and you are free to take a crack at making this work. The code
+ in w32/pathstuff.c and vpath.c would be the places to start.
Pathnames and Case insensitivity:
- Unlike Unix, Windows 95/NT systems are case insensitive but case
- preserving. For example if you tell the file system to create a
- file named "Target", it will preserve the case. Subsequent access to
- the file with other case permutations will succeed (i.e. opening a
- file named "target" or "TARGET" will open the file "Target").
+ Unlike Unix, Windows 95/NT systems are case insensitive but case
+ preserving. For example if you tell the file system to create a
+ file named "Target", it will preserve the case. Subsequent access to
+ the file with other case permutations will succeed (i.e. opening a
+ file named "target" or "TARGET" will open the file "Target").
- By default, GNU make retains its case sensitivity when comparing
- target names and existing files or directories. It can be
- configured, however, into a case preserving and case insensitive
- mode by adding a define for HAVE_CASE_INSENSITIVE_FS to
- config.h.W32.
+ By default, GNU make retains its case sensitivity when comparing
+ target names and existing files or directories. It can be
+ configured, however, into a case preserving and case insensitive
+ mode by adding a define for HAVE_CASE_INSENSITIVE_FS to
+ config.h.W32.
- For example, the following makefile will create a file named
- Target in the directory subdir which will subsequently be used
- to satisfy the dependency of SUBDIR/DepTarget on SubDir/TARGET.
- Without HAVE_CASE_INSENSITIVE_FS configured, the dependency link
- will not be made:
+ For example, the following makefile will create a file named
+ Target in the directory subdir which will subsequently be used
+ to satisfy the dependency of SUBDIR/DepTarget on SubDir/TARGET.
+ Without HAVE_CASE_INSENSITIVE_FS configured, the dependency link
+ will not be made:
- subdir/Target:
- touch $@
+ subdir/Target:
+ touch $@
- SUBDIR/DepTarget: SubDir/TARGET
- cp $^ $@
+ SUBDIR/DepTarget: SubDir/TARGET
+ cp $^ $@
- Reliance on this behavior also eliminates the ability of GNU make
- to use case in comparison of matching rules. For example, it is
- not possible to set up a C++ rule using %.C that is different
- than a C rule using %.c. GNU make will consider these to be the
- same rule and will issue a warning.
+ Reliance on this behavior also eliminates the ability of GNU make
+ to use case in comparison of matching rules. For example, it is
+ not possible to set up a C++ rule using %.C that is different
+ than a C rule using %.c. GNU make will consider these to be the
+ same rule and will issue a warning.
SAMBA/NTFS/VFAT:
- I have not had any success building the debug version of this
- package using SAMBA as my file server. The reason seems to be
- related to the way VC++ 4.0 changes the case name of the pdb
- filename it is passed on the command line. It seems to change
- the name always to to lower case. I contend that the VC++
- compiler should not change the casename of files that are passed
- as arguments on the command line. I don't think this was a
- problem in MSVC 2.x, but I know it is a problem in MSVC 4.x.
+ I have not had any success building the debug version of this
+ package using SAMBA as my file server. The reason seems to be
+ related to the way VC++ 4.0 changes the case name of the pdb
+ filename it is passed on the command line. It seems to change
+ the name always to to lower case. I contend that the VC++
+ compiler should not change the casename of files that are passed
+ as arguments on the command line. I don't think this was a
+ problem in MSVC 2.x, but I know it is a problem in MSVC 4.x.
- The package builds fine on VFAT and NTFS filesystems.
+ The package builds fine on VFAT and NTFS filesystems.
- Most all of the development I have done to date has been using
- NTFS and long file names. I have not done any considerable work
- under VFAT. VFAT users may wish to be aware that this port of
- make does respect case sensitivity.
+ Most all of the development I have done to date has been using
+ NTFS and long file names. I have not done any considerable work
+ under VFAT. VFAT users may wish to be aware that this port of
+ make does respect case sensitivity.
FAT:
- Version 3.76 added support for FAT filesystems. Make works
- around some difficulties with stat'ing of files and caching of
- filenames and directories internally.
+ Version 3.76 added support for FAT filesystems. Make works
+ around some difficulties with stat'ing of files and caching of
+ filenames and directories internally.
Bug reports:
- Please submit bugs via the normal bug reporting mechanism which
- is described in the GNU make manual and the base README.
+ Please submit bugs via the normal bug reporting mechanism which
+ is described in the GNU make manual and the base README.
-------------------------------------------------------------------------------
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/README.customs b/README.customs
index 0ad1837..8b3fa74 100644
--- a/README.customs
+++ b/README.customs
@@ -35,19 +35,19 @@ you'll need to re-apply them by hand.
Install the Customs library and header files according to the
documentation. You should also install the man pages (contrary to
comments in the documentation, they weren't installed automatically for
-me; I had to cd to the ``pmake-2.1.33/doc'' directory and run ``pmake
-install'' there directly).
+me; I had to cd to the 'pmake-2.1.33/doc' directory and run 'pmake
+install' there directly).
BUILDING GNU MAKE
-----------------
Once you've installed Customs, you can build GNU make to use it. When
-configuring GNU make, merely use the ``--with-customs=DIR'' option.
-Provide the directory containing the ``lib'' and ``include/customs''
+configuring GNU make, merely use the '--with-customs=DIR' option.
+Provide the directory containing the 'lib' and 'include/customs'
subdirectories as DIR. For example, if you installed the customs
library in /usr/local/lib and the headers in /usr/local/include/customs,
-then you'd pass ``--with-customs=/usr/local'' as an option to configure.
+then you'd pass '--with-customs=/usr/local' as an option to configure.
Run make (or use build.sh) normally to build GNU make as described in
the INSTALL file.
@@ -96,8 +96,7 @@ SunOS 4.1.x:
-------------------------------------------------------------------------------
-Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1998-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/SMakefile b/SMakefile
index 2a46032..766a5c6 100644
--- a/SMakefile
+++ b/SMakefile
@@ -3,8 +3,7 @@
# NOTE: If you have no 'make' program at all to process this makefile,
# run 'build.sh' instead.
#
-# Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 1995-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
@@ -25,9 +24,9 @@
#
# Ultrix 2.2 make doesn't expand the value of VPATH.
-VPATH = /make-3.82/
-# This must repeat the value, because configure will remove `VPATH = .'.
-srcdir = /make-3.82/
+VPATH = /make-4.0/
+# This must repeat the value, because configure will remove 'VPATH = .'.
+srcdir = /make-4.0/
CC = sc
RM = delete
@@ -38,18 +37,18 @@ CPPFLAGS =
LDFLAGS =
# Define these for your system as follows:
-# -DNO_ARCHIVES To disable `ar' archive support.
+# -DNO_ARCHIVES To disable 'ar' archive support.
# -DNO_FLOAT To avoid using floating-point numbers.
# -DENUM_BITFIELDS If the compiler isn't GCC but groks enum foo:2.
# Some compilers apparently accept this
# without complaint but produce losing code,
# so beware.
# NeXT 1.0a uses an old version of GCC, which required -D__inline=inline.
-# See also `config.h'.
+# See also 'config.h'.
defines =
# Which flavor of remote job execution support to use.
-# The code is found in `remote-$(REMOTE).c'.
+# The code is found in 'remote-$(REMOTE).c'.
REMOTE = stub
# If you are using the GNU C library, or have the GNU getopt functions in
@@ -83,9 +82,9 @@ prefix =
# Common prefix for machine-dependent installed files.
exec_prefix =
-# Directory to install `make' in.
+# Directory to install 'make' in.
bindir = sc:c
-# Directory to find libraries in for `-lXXX'.
+# Directory to find libraries in for '-lXXX'.
libdir = lib:
# Directory to search by default for included makefiles.
includedir = include:
@@ -95,20 +94,20 @@ infodir = doc:
mandir = t:
# Number to put on the man page filename.
manext = 1
-# Prefix to put on installed `make' binary file name.
+# Prefix to put on installed 'make' binary file name.
binprefix =
-# Prefix to put on installed `make' man page file name.
+# Prefix to put on installed 'make' man page file name.
manprefix = $(binprefix)
# Whether or not make needs to be installed setgid.
-# The value should be either `true' or `false'.
-# On many systems, the getloadavg function (used to implement the `-l'
+# The value should be either 'true' or 'false'.
+# On many systems, the getloadavg function (used to implement the '-l'
# switch) will not work unless make is installed setgid kmem.
install_setgid = false
# Install make setgid to this group so it can read /dev/kmem.
group = sys
-# Program to install `make'.
+# Program to install 'make'.
INSTALL_PROGRAM = copy
# Program to install the man page.
INSTALL_DATA = copy
@@ -124,21 +123,26 @@ TEXI2DVI = texi2dvi
ETAGS = etags -w
CTAGS = ctags -w
-objs = commands.o job.o dir.o file.o misc.o main.o read.o remake.o \
- rule.o implicit.o default.o variable.o expand.o function.o \
- vpath.o version.o ar.o arscan.o signame.o strcache.o hash.o \
- remote-$(REMOTE).o $(GLOB) $(GETOPT) $(ALLOCA) $(extras)
+#guile = guile.o
+
+objs = commands.o job.o dir.o file.o misc.o main.o read.o remake.o \
+ rule.o implicit.o default.o variable.o expand.o function.o \
+ vpath.o version.o ar.o arscan.o signame.o strcache.o hash.o \
+ output.o remote-$(REMOTE).o $(GLOB) $(GETOPT) $(ALLOCA) \
+ $(extras) $(guile)
+
srcs = $(srcdir)commands.c $(srcdir)job.c $(srcdir)dir.c \
$(srcdir)file.c $(srcdir)getloadavg.c $(srcdir)misc.c \
$(srcdir)main.c $(srcdir)read.c $(srcdir)remake.c \
$(srcdir)rule.c $(srcdir)implicit.c $(srcdir)default.c \
$(srcdir)variable.c $(srcdir)expand.c $(srcdir)function.c \
$(srcdir)vpath.c $(srcdir)version.c $(srcdir)hash.c \
- $(srcdir)remote-$(REMOTE).c \
- $(srcdir)ar.c $(srcdir)arscan.c $(srcdir)strcache.c \
- $(srcdir)signame.c $(srcdir)signame.h $(GETOPT_SRC) \
+ $(srcdir)guile.c $(srcdir)remote-$(REMOTE).c \
+ $(srcdir)ar.c $(srcdir)arscan.c $(srcdir)strcache.c \
+ $(srcdir)signame.c $(srcdir)signame.h $(GETOPT_SRC) \
$(srcdir)commands.h $(srcdir)dep.h $(srcdir)file.h \
- $(srcdir)job.h $(srcdir)make.h $(srcdir)rule.h \
+ $(srcdir)job.h $(srcdir)makeint.h $(srcdir)rule.h \
+ $(srcdir)output.c $(srcdir)output.h \
$(srcdir)variable.h $(ALLOCA_SRC) $(srcdir)config.h.in
@@ -148,7 +152,7 @@ srcs = $(srcdir)commands.c $(srcdir)job.c $(srcdir)dir.c \
all: make
info: make.info
dvi: make.dvi
-# Some makes apparently use .PHONY as the default goal if it is before `all'.
+# Some makes apparently use .PHONY as the default goal if it is before 'all'.
.PHONY: all check info dvi
make.info: make.texinfo
@@ -220,60 +224,67 @@ glob-clean glob-realclean:
# dummy
# .deps/ar.Po
-ar.o: ar.c make.h config.h \
+ar.o: ar.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
filedef.h hash.h dep.h \
# .deps/arscan.Po
-arscan.o: arscan.c make.h config.h \
+arscan.o: arscan.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
# .deps/commands.Po
-commands.o: commands.c make.h config.h \
+commands.o: commands.c \
+ makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h filedef.h hash.h variable.h job.h \
+ filedef.h hash.h dep.h \
+ variable.h job.h output.h \
commands.h
# .deps/default.Po
-default.o: default.c make.h config.h \
+default.o: default.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- filedef.h hash.h variable.h rule.h dep.h \
- job.h \
+ filedef.h hash.h variable.h rule.h dep.h job.h output.h \
commands.h
# .deps/dir.Po
-dir.o: dir.c make.h config.h \
+dir.o: dir.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- hash.h \
+ hash.h filedef.h dep.h \
# .deps/expand.Po
-expand.o: expand.c make.h config.h \
+expand.o: expand.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- filedef.h hash.h \
- job.h \
- commands.h variable.h \
- rule.h
+ filedef.h hash.h job.h output.h \
+ commands.h variable.h rule.h
# .deps/file.Po
-file.o: file.c make.h config.h \
+file.o: file.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h filedef.h \
- hash.h job.h \
+ filedef.h hash.h dep.h job.h output.h \
commands.h variable.h \
debug.h
# .deps/function.Po
-function.o: function.c make.h config.h \
+function.o: function.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- filedef.h hash.h variable.h dep.h job.h \
+ filedef.h hash.h \
+ variable.h dep.h job.h output.h \
commands.h debug.h
# .deps/getloadavg.Po
@@ -285,96 +296,143 @@ getopt.o: getopt.c config.h \
# .deps/getopt1.Po
getopt1.o: getopt1.c config.h getopt.h \
+# .deps/guile.Po
+guile.o: guile.c makeint.h config.h \
+ gnumake.h \
+ getopt.h \
+ gettext.h \
+ debug.h filedef.h hash.h \
+ dep.h variable.h \
+ gmk-default.h
+
# .deps/hash.Po
-hash.o: hash.c make.h config.h \
+hash.o: hash.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
hash.h
# .deps/implicit.Po
-implicit.o: implicit.c make.h config.h \
+implicit.o: implicit.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- filedef.h hash.h rule.h dep.h debug.h \
- variable.h job.h \
+ filedef.h hash.h rule.h \
+ dep.h debug.h variable.h job.h output.h \
commands.h
# .deps/job.Po
-job.o: job.c make.h config.h \
+job.o: job.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- job.h \
- debug.h filedef.h hash.h commands.h \
+ job.h output.h \
+ debug.h filedef.h hash.h \
+ commands.h variable.h
+
+# .deps/load.Po
+load.o: load.c makeint.h config.h \
+ gnumake.h \
+ getopt.h \
+ gettext.h \
+ debug.h filedef.h hash.h \
variable.h
+# .deps/loadapi.Po
+loadapi.o: loadapi.c makeint.h config.h \
+ gnumake.h \
+ getopt.h \
+ gettext.h \
+ filedef.h hash.h \
+ variable.h dep.h
+
# .deps/loadavg-getloadavg.Po
# dummy
# .deps/main.Po
-main.o: main.c make.h config.h \
+main.o: main.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h filedef.h hash.h variable.h job.h \
- commands.h rule.h debug.h getopt.h \
+ filedef.h hash.h dep.h \
+ variable.h job.h output.h \
+ commands.h rule.h debug.h \
+ getopt.h
# .deps/misc.Po
-misc.o: misc.c make.h config.h \
+misc.o: misc.c makeint.h config.h \
+ gnumake.h \
+ getopt.h \
+ gettext.h \
+ filedef.h hash.h dep.h \
+ debug.h \
+
+# .deps/output.Po
+output.o: output.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h debug.h
+ job.h output.h \
# .deps/read.Po
-read.o: read.c make.h config.h \
+read.o: read.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h filedef.h hash.h job.h \
- commands.h variable.h rule.h debug.h \
+ filedef.h hash.h dep.h job.h output.h \
+ commands.h variable.h rule.h \
+ debug.h
# .deps/remake.Po
-remake.o: remake.c make.h config.h \
+remake.o: remake.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
filedef.h hash.h job.h \
- commands.h dep.h variable.h debug.h \
+ output.h \
+ commands.h dep.h variable.h \
+ debug.h
# .deps/remote-cstms.Po
# dummy
# .deps/remote-stub.Po
-remote-stub.o: remote-stub.c make.h config.h \
+remote-stub.o: remote-stub.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
filedef.h hash.h job.h \
+ output.h \
commands.h
# .deps/rule.Po
-rule.o: rule.c make.h config.h \
+rule.o: rule.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h filedef.h \
- hash.h job.h \
- commands.h variable.h \
- rule.h
+ filedef.h hash.h dep.h job.h output.h \
+ commands.h variable.h rule.h
# .deps/signame.Po
-signame.o: signame.c make.h config.h \
+signame.o: signame.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
# .deps/strcache.Po
-strcache.o: strcache.c make.h config.h \
+strcache.o: strcache.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
hash.h
# .deps/variable.Po
-variable.o: variable.c make.h config.h \
+variable.o: variable.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- dep.h filedef.h \
- hash.h job.h \
- commands.h variable.h \
- rule.h
+ filedef.h hash.h dep.h job.h output.h \
+ commands.h variable.h rule.h
# .deps/version.Po
version.o: version.c config.h
@@ -383,7 +441,9 @@ version.o: version.c config.h
# dummy
# .deps/vpath.Po
-vpath.o: vpath.c make.h config.h \
+vpath.o: vpath.c makeint.h config.h \
+ gnumake.h \
getopt.h \
gettext.h \
- filedef.h hash.h variable.h
+ filedef.h hash.h \
+ variable.h
diff --git a/acinclude.m4 b/acinclude.m4
index 0e56441..b7d8efd 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -1,8 +1,7 @@
dnl acinclude.m4 -- Extra macros needed for GNU make.
dnl
dnl Automake will incorporate this into its generated aclocal.m4.
-dnl Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-dnl 2008, 2009, 2010 Free Software Foundation, Inc.
+dnl Copyright (C) 1998-2013 Free Software Foundation, Inc.
dnl This file is part of GNU Make.
dnl
dnl GNU Make is free software; you can redistribute it and/or modify it under
@@ -100,22 +99,26 @@ changequote([,])dnl
dnl ---------------------------------------------------------------------------
dnl From Paul Eggert <eggert@twinsun.com>
+dnl Update for Darwin by Troy Runkel <Troy.Runkel@mathworks.com>
+dnl Update for AIX by Olexiy Buyanskyy (Savannah bug 32485)
AC_DEFUN([AC_STRUCT_ST_MTIM_NSEC],
- [AC_CACHE_CHECK([for nanoseconds field of struct stat.st_mtim],
+ [AC_CACHE_CHECK([for nanoseconds field of struct stat],
ac_cv_struct_st_mtim_nsec,
[ac_save_CPPFLAGS="$CPPFLAGS"
ac_cv_struct_st_mtim_nsec=no
- # tv_nsec -- the usual case
- # _tv_nsec -- Solaris 2.6, if
+ # st_mtim.tv_nsec -- the usual case
+ # st_mtim._tv_nsec -- Solaris 2.6, if
# (defined _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED == 1
# && !defined __EXTENSIONS__)
- # st__tim.tv_nsec -- UnixWare 2.1.2
- for ac_val in tv_nsec _tv_nsec st__tim.tv_nsec; do
+ # st_mtim.st__tim.tv_nsec -- UnixWare 2.1.2
+ # st_mtime_n -- AIX 5.2 and above
+ # st_mtimespec.tv_nsec -- Darwin (Mac OSX)
+ for ac_val in st_mtim.tv_nsec st_mtim._tv_nsec st_mtim.st__tim.tv_nsec st_mtime_n st_mtimespec.tv_nsec; do
CPPFLAGS="$ac_save_CPPFLAGS -DST_MTIM_NSEC=$ac_val"
AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/stat.h>
- ], [struct stat s; s.st_mtim.ST_MTIM_NSEC;],
+ ], [struct stat s; s.ST_MTIM_NSEC;],
[ac_cv_struct_st_mtim_nsec=$ac_val; break])
done
CPPFLAGS="$ac_save_CPPFLAGS"
diff --git a/aclocal.m4 b/aclocal.m4
index b3ea5ea..833ec7d 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,7 +1,8 @@
-# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
+# Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -13,18 +14,181 @@
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],,
-[m4_warning([this file was generated for autoconf 2.65.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.])])
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
+# serial 1 (pkg-config-0.24)
+#
+# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=m4_default([$1], [0.9.0])
+ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ PKG_CONFIG=""
+ fi
+fi[]dnl
+])# PKG_PROG_PKG_CONFIG
+
+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#
+# Check to see whether a particular set of modules exists. Similar
+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
+#
+# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+# only at the first occurence in configure.ac, so if the first place
+# it's called might be skipped (such as if it is within an "if", you
+# have to call PKG_CHECK_EXISTS manually
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+ m4_default([$2], [:])
+m4_ifvaln([$3], [else
+ $3])dnl
+fi])
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+ pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+ PKG_CHECK_EXISTS([$3],
+ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes ],
+ [pkg_failed=yes])
+ else
+ pkg_failed=untried
+fi[]dnl
+])# _PKG_CONFIG
+
+# _PKG_SHORT_ERRORS_SUPPORTED
+# -----------------------------
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi[]dnl
+])# _PKG_SHORT_ERRORS_SUPPORTED
+
+
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+#
+#
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+ AC_MSG_RESULT([no])
+ _PKG_SHORT_ERRORS_SUPPORTED
+ if test $_pkg_short_errors_supported = yes; then
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+ else
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+ m4_default([$4], [AC_MSG_ERROR(
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT])[]dnl
+ ])
+elif test $pkg_failed = untried; then
+ AC_MSG_RESULT([no])
+ m4_default([$4], [AC_MSG_FAILURE(
+[The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+ ])
+else
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ AC_MSG_RESULT([yes])
+ $3
+fi[]dnl
+])# PKG_CHECK_MODULES
+
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
+# Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 1
+
# AM_AUTOMAKE_VERSION(VERSION)
# ----------------------------
# Automake X.Y traces this macro to ensure aclocal.m4 has been
@@ -34,7 +198,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.11'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.11.1], [],
+m4_if([$1], [1.11.6], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -50,19 +214,21 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.1])dnl
+[AM_AUTOMAKE_VERSION([1.11.6])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 1
+
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
@@ -144,14 +310,14 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
-# Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
+# 2010, 2011 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 10
+# serial 12
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
@@ -191,6 +357,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
+ rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
@@ -255,7 +422,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
break
fi
;;
- msvisualcpp | msvcmsys)
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
@@ -320,10 +487,13 @@ AC_DEFUN([AM_DEP_TRACK],
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
+ am__nodep='_no'
fi
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
AC_SUBST([AMDEPBACKSLASH])dnl
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
])
# Generate code to set up dependency tracking. -*- Autoconf -*-
@@ -407,20 +577,19 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
])
-# Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2005
+# Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2010
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 3
+# serial 4
AC_DEFUN([AM_WITH_DMALLOC],
[AC_MSG_CHECKING([if malloc debugging is wanted])
AC_ARG_WITH(dmalloc,
-[ --with-dmalloc use dmalloc, as in
- http://www.dmalloc.com/dmalloc.tar.gz],
+[ --with-dmalloc use dmalloc, as in http://www.dmalloc.com],
[if test "$withval" = yes; then
AC_MSG_RESULT(yes)
AC_DEFINE(WITH_DMALLOC,1,
@@ -573,12 +742,15 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
+# Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 1
+
# AM_PROG_INSTALL_SH
# ------------------
# Define $install_sh.
@@ -745,12 +917,15 @@ else
fi
])
-# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
+# Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 1
+
# AM_PROG_MKDIR_P
# ---------------
# Check for `mkdir -p'.
@@ -773,13 +948,14 @@ esac
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
+# Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 4
+# serial 5
# _AM_MANGLE_OPTION(NAME)
# -----------------------
@@ -787,13 +963,13 @@ AC_DEFUN([_AM_MANGLE_OPTION],
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
# _AM_SET_OPTION(NAME)
-# ------------------------------
+# --------------------
# Set option NAME. Presently that only means defining a flag for this option.
AC_DEFUN([_AM_SET_OPTION],
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
# _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
+# ------------------------
# OPTIONS is a space-separated list of Automake options.
AC_DEFUN([_AM_SET_OPTIONS],
[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
@@ -869,12 +1045,71 @@ Check your system clock])
fi
AC_MSG_RESULT(yes)])
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2009, 2011 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# AM_SILENT_RULES([DEFAULT])
+# --------------------------
+# Enable less verbose build rules; with the default set to DEFAULT
+# (`yes' being less verbose, `no' or empty being verbose).
+AC_DEFUN([AM_SILENT_RULES],
+[AC_ARG_ENABLE([silent-rules],
+[ --enable-silent-rules less verbose build output (undo: `make V=1')
+ --disable-silent-rules verbose build output (undo: `make V=0')])
+case $enable_silent_rules in
+yes) AM_DEFAULT_VERBOSITY=0;;
+no) AM_DEFAULT_VERBOSITY=1;;
+*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+dnl
+dnl A few `make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+ [am_cv_make_support_nested_variables],
+ [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+ dnl Using `$V' instead of `$(V)' breaks IRIX make.
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 1
+
# AM_PROG_INSTALL_STRIP
# ---------------------
# One issue with vendor `install' (even GNU) is that you can't
@@ -897,13 +1132,13 @@ fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 2
+# serial 3
# _AM_SUBST_NOTMAKE(VARIABLE)
# ---------------------------
@@ -912,13 +1147,13 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])])
AC_DEFUN([_AM_SUBST_NOTMAKE])
# AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
+# --------------------------
# Public sister of _AM_SUBST_NOTMAKE.
AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -940,10 +1175,11 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# a tarball read from stdin.
# $(am__untar) < result.tar
AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.
-AM_MISSING_PROG([AMTAR], [tar])
+[# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
m4_if([$1], [v7],
- [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
[m4_case([$1], [ustar],, [pax],,
[m4_fatal([Unknown tar format])])
AC_MSG_CHECKING([how to create a $1 tar archive])
@@ -1015,7 +1251,7 @@ AC_SUBST([am__untar])
m4_include([config/dospaths.m4])
m4_include([config/gettext.m4])
m4_include([config/iconv.m4])
-m4_include([config/isc-posix.m4])
+m4_include([config/intlmacosx.m4])
m4_include([config/lib-ld.m4])
m4_include([config/lib-link.m4])
m4_include([config/lib-prefix.m4])
diff --git a/alloca.c b/alloca.c
index 6e009b4..02ac921 100644
--- a/alloca.c
+++ b/alloca.c
@@ -116,7 +116,7 @@ static int stack_dir; /* 1 or -1 once known. */
static void
find_stack_direction (void)
{
- static char *addr = NULL; /* Address of first `dummy', once known. */
+ static char *addr = NULL; /* Address of first 'dummy', once known. */
auto char dummy; /* To get stack address. */
if (addr == NULL)
diff --git a/amiga.c b/amiga.c
index 6e70f65..73ed59a 100644
--- a/amiga.c
+++ b/amiga.c
@@ -1,6 +1,5 @@
/* Running commands on Amiga
-Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1995-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -15,7 +14,7 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
#include "variable.h"
#include "amiga.h"
#include <assert.h>
@@ -25,7 +24,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
#include <proto/dos.h>
static const char Amiga_version[] = "$VER: Make 3.74.3 (12.05.96) \n"
- "Amiga Port by A. Digulla (digulla@home.lake.de)";
+ "Amiga Port by A. Digulla (digulla@home.lake.de)";
int
MyExecute (char **argv)
@@ -37,7 +36,7 @@ MyExecute (char **argv)
for (aptr=argv; *aptr; aptr++)
{
- len += strlen (*aptr) + 4;
+ len += strlen (*aptr) + 4;
}
buffer = AllocMem (len, MEMF_ANY);
@@ -49,41 +48,41 @@ MyExecute (char **argv)
for (aptr=argv; *aptr; aptr++)
{
- if (((*aptr)[0] == ';' && !(*aptr)[1]))
- {
- *ptr ++ = '"';
- strcpy (ptr, *aptr);
- ptr += strlen (ptr);
- *ptr ++ = '"';
- }
- else if ((*aptr)[0] == '@' && (*aptr)[1] == '@' && !(*aptr)[2])
- {
- *ptr ++ = '\n';
- continue;
- }
- else
- {
- strcpy (ptr, *aptr);
- ptr += strlen (ptr);
- }
- *ptr ++ = ' ';
- *ptr = 0;
+ if (((*aptr)[0] == ';' && !(*aptr)[1]))
+ {
+ *ptr ++ = '"';
+ strcpy (ptr, *aptr);
+ ptr += strlen (ptr);
+ *ptr ++ = '"';
+ }
+ else if ((*aptr)[0] == '@' && (*aptr)[1] == '@' && !(*aptr)[2])
+ {
+ *ptr ++ = '\n';
+ continue;
+ }
+ else
+ {
+ strcpy (ptr, *aptr);
+ ptr += strlen (ptr);
+ }
+ *ptr ++ = ' ';
+ *ptr = 0;
}
ptr[-1] = '\n';
status = SystemTags (buffer,
- SYS_UserShell, TRUE,
- TAG_END);
+ SYS_UserShell, TRUE,
+ TAG_END);
FreeMem (buffer, len);
- if (SetSignal(0L,0L) & SIGBREAKF_CTRL_C)
- status = 20;
+ if (SetSignal (0L,0L) & SIGBREAKF_CTRL_C)
+ status = 20;
/* Warnings don't count */
if (status == 5)
- status = 0;
+ status = 0;
return status;
}
@@ -91,27 +90,27 @@ MyExecute (char **argv)
char *
wildcard_expansion (char *wc, char *o)
{
-# define PATH_SIZE 1024
+# define PATH_SIZE 1024
struct AnchorPath * apath;
if ( (apath = AllocMem (sizeof (struct AnchorPath) + PATH_SIZE,
- MEMF_CLEAR))
- )
+ MEMF_CLEAR))
+ )
{
- apath->ap_Strlen = PATH_SIZE;
-
- if (MatchFirst (wc, apath) == 0)
- {
- do
- {
- o = variable_buffer_output (o, apath->ap_Buf,
- strlen (apath->ap_Buf));
- o = variable_buffer_output (o, " ",1);
- } while (MatchNext (apath) == 0);
- }
-
- MatchEnd (apath);
- FreeMem (apath, sizeof (struct AnchorPath) + PATH_SIZE);
+ apath->ap_Strlen = PATH_SIZE;
+
+ if (MatchFirst (wc, apath) == 0)
+ {
+ do
+ {
+ o = variable_buffer_output (o, apath->ap_Buf,
+ strlen (apath->ap_Buf));
+ o = variable_buffer_output (o, " ",1);
+ } while (MatchNext (apath) == 0);
+ }
+
+ MatchEnd (apath);
+ FreeMem (apath, sizeof (struct AnchorPath) + PATH_SIZE);
}
return o;
diff --git a/amiga.h b/amiga.h
index ee2aa32..a11a128 100644
--- a/amiga.h
+++ b/amiga.h
@@ -1,6 +1,5 @@
/* Definitions for amiga specific things
-Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1995-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/ar.c b/ar.c
index 95dcbbb..afed591 100644
--- a/ar.c
+++ b/ar.c
@@ -1,7 +1,5 @@
-/* Interface to `ar' archives for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+/* Interface to 'ar' archives for GNU Make.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
@@ -17,18 +15,18 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
-#ifndef NO_ARCHIVES
+#ifndef NO_ARCHIVES
#include "filedef.h"
#include "dep.h"
#include <fnmatch.h>
/* Return nonzero if NAME is an archive-member reference, zero if not. An
- archive-member reference is a name like `lib(member)' where member is a
+ archive-member reference is a name like 'lib(member)' where member is a
non-empty string.
- If a name like `lib((entry))' is used, a fatal error is signaled at
+ If a name like 'lib((entry))' is used, a fatal error is signaled at
the attempt to use this unsupported feature. */
int
@@ -45,7 +43,7 @@ ar_name (const char *name)
return 0;
if (p[1] == '(' && end[-1] == ')')
- fatal (NILF, _("attempt to use unsupported feature: `%s'"), name);
+ fatal (NILF, _("attempt to use unsupported feature: '%s'"), name);
return 1;
}
@@ -63,20 +61,20 @@ ar_parse_name (const char *name, char **arname_p, char **memname_p)
*arname_p = xstrdup (name);
p = strchr (*arname_p, '(');
*(p++) = '\0';
- p[strlen(p) - 1] = '\0';
+ p[strlen (p) - 1] = '\0';
*memname_p = p;
}
-/* This function is called by `ar_scan' to find which member to look at. */
+/* This function is called by 'ar_scan' to find which member to look at. */
/* ARGSUSED */
static long int
ar_member_date_1 (int desc UNUSED, const char *mem, int truncated,
- long int hdrpos UNUSED, long int datapos UNUSED,
+ long int hdrpos UNUSED, long int datapos UNUSED,
long int size UNUSED, long int date,
int uid UNUSED, int gid UNUSED, int mode UNUSED,
- const void *name)
+ const void *name)
{
return ar_name_equal (name, mem, truncated) ? date : 0;
}
@@ -146,24 +144,24 @@ ar_touch (const char *name)
switch (ar_member_touch (arname, memname))
{
case -1:
- error (NILF, _("touch: Archive `%s' does not exist"), arname);
+ error (NILF, _("touch: Archive '%s' does not exist"), arname);
break;
case -2:
- error (NILF, _("touch: `%s' is not a valid archive"), arname);
+ error (NILF, _("touch: '%s' is not a valid archive"), arname);
break;
case -3:
perror_with_name ("touch: ", arname);
break;
case 1:
error (NILF,
- _("touch: Member `%s' does not exist in `%s'"), memname, arname);
+ _("touch: Member '%s' does not exist in '%s'"), memname, arname);
break;
case 0:
val = 0;
break;
default:
error (NILF,
- _("touch: Bad return code from ar_member_touch on `%s'"), name);
+ _("touch: Bad return code from ar_member_touch on '%s'"), name);
}
free (arname);
@@ -172,7 +170,7 @@ ar_touch (const char *name)
}
#endif /* !VMS */
-/* State of an `ar_glob' run, passed to `ar_glob_match'. */
+/* State of an 'ar_glob' run, passed to 'ar_glob_match'. */
struct ar_glob_state
{
@@ -183,12 +181,12 @@ struct ar_glob_state
unsigned int n;
};
-/* This function is called by `ar_scan' to match one archive
+/* This function is called by 'ar_scan' to match one archive
element against the pattern in STATE. */
static long int
ar_glob_match (int desc UNUSED, const char *mem, int truncated UNUSED,
- long int hdrpos UNUSED, long int datapos UNUSED,
+ long int hdrpos UNUSED, long int datapos UNUSED,
long int size UNUSED, long int date UNUSED, int uid UNUSED,
int gid UNUSED, int mode UNUSED, const void *arg)
{
@@ -220,21 +218,21 @@ glob_pattern_p (const char *pattern, int quote)
{
case '?':
case '*':
- return 1;
+ return 1;
case '\\':
- if (quote)
- ++p;
- break;
+ if (quote)
+ ++p;
+ break;
case '[':
- opened = 1;
- break;
+ opened = 1;
+ break;
case ']':
- if (opened)
- return 1;
- break;
+ if (opened)
+ return 1;
+ break;
}
return 0;
@@ -284,4 +282,4 @@ ar_glob (const char *arname, const char *member_pattern, unsigned int size)
return state.chain;
}
-#endif /* Not NO_ARCHIVES. */
+#endif /* Not NO_ARCHIVES. */
diff --git a/arscan.c b/arscan.c
index 4ef8375..2b3cd5d 100644
--- a/arscan.c
+++ b/arscan.c
@@ -1,7 +1,5 @@
/* Library function for scanning an archive file.
-Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1987-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,7 +14,7 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
@@ -24,7 +22,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
#include <sys/file.h>
#endif
-#ifndef NO_ARCHIVES
+#ifndef NO_ARCHIVES
#ifdef VMS
#include <lbrdef.h>
@@ -63,11 +61,11 @@ VMS_get_member_info (struct dsc$descriptor_s *module, unsigned long *rfa)
bufdesc.dsc$w_length = sizeof (filename);
status = lbr$set_module (&VMS_lib_idx, rfa, &bufdesc,
- &bufdesc.dsc$w_length, 0);
+ &bufdesc.dsc$w_length, 0);
if (! (status & 1))
{
error (NILF, _("lbr$set_module() failed to extract module info, status = %d"),
- status);
+ status);
lbr$close (&VMS_lib_idx);
@@ -114,7 +112,7 @@ VMS_get_member_info (struct dsc$descriptor_s *module, unsigned long *rfa)
fnval =
(*VMS_function) (-1, filename, 0, 0, 0, 0, val, 0, 0, 0,
- VMS_saved_memname);
+ VMS_saved_memname);
if (fnval)
{
@@ -184,8 +182,8 @@ ar_scan (const char *archive, ar_member_func_t function, const void *arg)
if (! (status & 1))
{
- error (NILF, _("unable to open library `%s' to lookup member `%s'"),
- archive, (char *)arg);
+ error (NILF, _("unable to open library '%s' to lookup member '%s'"),
+ archive, (char *)arg);
return -1;
}
@@ -214,8 +212,8 @@ ar_scan (const char *archive, ar_member_func_t function, const void *arg)
#else /* !VMS */
/* SCO Unix's compiler defines both of these. */
-#ifdef M_UNIX
-#undef M_XENIX
+#ifdef M_UNIX
+#undef M_XENIX
#endif
/* On the sun386i and in System V rel 3, ar.h defines two different archive
@@ -224,7 +222,7 @@ ar_scan (const char *archive, ar_member_func_t function, const void *arg)
to have a nonzero value. */
#if (!defined (PORTAR) || PORTAR == 0) && (!defined (PORT5AR) || PORT5AR == 0)
-#undef PORTAR
+#undef PORTAR
#ifdef M_XENIX
/* According to Jim Sievert <jas1@rsvl.unisys.com>, for SCO XENIX defining
PORTAR to 1 gets the wrong archive format, and defining it to 0 gets the
@@ -259,17 +257,17 @@ ar_scan (const char *archive, ar_member_func_t function, const void *arg)
/* BeOS 5 doesn't have <ar.h> but has archives in the same format
* as many other Unices. This was taken from GNU binutils for BeOS.
*/
-# define ARMAG "!<arch>\n" /* String that begins an archive file. */
-# define SARMAG 8 /* Size of that string. */
-# define ARFMAG "`\n" /* String in ar_fmag at end of each header. */
+# define ARMAG "!<arch>\n" /* String that begins an archive file. */
+# define SARMAG 8 /* Size of that string. */
+# define ARFMAG "`\n" /* String in ar_fmag at end of each header. */
struct ar_hdr
{
- char ar_name[16]; /* Member file name, sometimes / terminated. */
- char ar_date[12]; /* File date, decimal seconds since Epoch. */
- char ar_uid[6], ar_gid[6]; /* User and group IDs, in ASCII decimal. */
- char ar_mode[8]; /* File mode, in ASCII octal. */
- char ar_size[10]; /* File size, in ASCII decimal. */
- char ar_fmag[2]; /* Always contains ARFMAG. */
+ char ar_name[16]; /* Member file name, sometimes / terminated. */
+ char ar_date[12]; /* File date, decimal seconds since Epoch. */
+ char ar_uid[6], ar_gid[6]; /* User and group IDs, in ASCII decimal. */
+ char ar_mode[8]; /* File mode, in ASCII octal. */
+ char ar_size[10]; /* File size, in ASCII decimal. */
+ char ar_fmag[2]; /* Always contains ARFMAG. */
};
# endif
# define TOCHAR(_m) (_m)
@@ -294,8 +292,8 @@ struct ar_hdr
#endif
/* Cray's <ar.h> apparently defines this. */
-#ifndef AR_HDR_SIZE
-# define AR_HDR_SIZE (sizeof (struct ar_hdr))
+#ifndef AR_HDR_SIZE
+# define AR_HDR_SIZE (sizeof (struct ar_hdr))
#endif
/* Takes three arguments ARCHIVE, FUNCTION and ARG.
@@ -330,12 +328,10 @@ ar_scan (const char *archive, ar_member_func_t function, const void *arg)
{
#ifdef AIAMAG
FL_HDR fl_header;
-#ifdef AIAMAGBIG
+# ifdef AIAMAGBIG
int big_archive = 0;
FL_HDR_BIG fl_header_big;
-#endif
-#else
- int long_name = 0;
+# endif
#endif
char *namemap = 0;
int desc = open (archive, O_RDONLY, 0);
@@ -347,8 +343,8 @@ ar_scan (const char *archive, ar_member_func_t function, const void *arg)
register int nread = read (desc, buf, SARMAG);
if (nread != SARMAG || memcmp (buf, ARMAG, SARMAG))
{
- (void) close (desc);
- return -2;
+ (void) close (desc);
+ return -2;
}
}
#else
@@ -358,39 +354,39 @@ ar_scan (const char *archive, ar_member_func_t function, const void *arg)
if (nread != FL_HSZ)
{
- (void) close (desc);
- return -2;
+ (void) close (desc);
+ return -2;
}
#ifdef AIAMAGBIG
/* If this is a "big" archive, then set the flag and
re-read the header into the "big" structure. */
if (!memcmp (fl_header.fl_magic, AIAMAGBIG, SAIAMAG))
{
- big_archive = 1;
-
- /* seek back to beginning of archive */
- if (lseek (desc, 0, 0) < 0)
- {
- (void) close (desc);
- return -2;
- }
-
- /* re-read the header into the "big" structure */
- nread = read (desc, &fl_header_big, FL_HSZ_BIG);
- if (nread != FL_HSZ_BIG)
- {
- (void) close (desc);
- return -2;
- }
+ big_archive = 1;
+
+ /* seek back to beginning of archive */
+ if (lseek (desc, 0, 0) < 0)
+ {
+ (void) close (desc);
+ return -2;
+ }
+
+ /* re-read the header into the "big" structure */
+ nread = read (desc, &fl_header_big, FL_HSZ_BIG);
+ if (nread != FL_HSZ_BIG)
+ {
+ (void) close (desc);
+ return -2;
+ }
}
else
#endif
/* Check to make sure this is a "normal" archive. */
if (memcmp (fl_header.fl_magic, AIAMAG, SAIAMAG))
- {
+ {
(void) close (desc);
return -2;
- }
+ }
}
#else
{
@@ -399,11 +395,11 @@ ar_scan (const char *archive, ar_member_func_t function, const void *arg)
#else
unsigned short int buf;
#endif
- register int nread = read(desc, &buf, sizeof (buf));
+ register int nread = read (desc, &buf, sizeof (buf));
if (nread != sizeof (buf) || buf != ARMAG)
{
- (void) close (desc);
- return -2;
+ (void) close (desc);
+ return -2;
}
}
#endif
@@ -421,143 +417,144 @@ ar_scan (const char *archive, ar_member_func_t function, const void *arg)
#ifdef AIAMAGBIG
if ( big_archive )
{
- sscanf (fl_header_big.fl_fstmoff, "%20ld", &member_offset);
- sscanf (fl_header_big.fl_lstmoff, "%20ld", &last_member_offset);
+ sscanf (fl_header_big.fl_fstmoff, "%20ld", &member_offset);
+ sscanf (fl_header_big.fl_lstmoff, "%20ld", &last_member_offset);
}
else
#endif
{
- sscanf (fl_header.fl_fstmoff, "%12ld", &member_offset);
- sscanf (fl_header.fl_lstmoff, "%12ld", &last_member_offset);
+ sscanf (fl_header.fl_fstmoff, "%12ld", &member_offset);
+ sscanf (fl_header.fl_lstmoff, "%12ld", &last_member_offset);
}
if (member_offset == 0)
{
- /* Empty archive. */
- close (desc);
- return 0;
+ /* Empty archive. */
+ close (desc);
+ return 0;
}
#else
-#ifndef M_XENIX
+#ifndef M_XENIX
register long int member_offset = sizeof (int);
-#else /* Xenix. */
+#else /* Xenix. */
register long int member_offset = sizeof (unsigned short int);
-#endif /* Not Xenix. */
+#endif /* Not Xenix. */
#endif
#endif
while (1)
{
- register int nread;
- struct ar_hdr member_header;
+ register int nread;
+ struct ar_hdr member_header;
#ifdef AIAMAGBIG
- struct ar_hdr_big member_header_big;
+ struct ar_hdr_big member_header_big;
#endif
#ifdef AIAMAG
- char name[256];
- int name_len;
- long int dateval;
- int uidval, gidval;
- long int data_offset;
+ char name[256];
+ int name_len;
+ long int dateval;
+ int uidval, gidval;
+ long int data_offset;
#else
- char namebuf[sizeof member_header.ar_name + 1];
- char *name;
- int is_namemap; /* Nonzero if this entry maps long names. */
+ char namebuf[sizeof member_header.ar_name + 1];
+ char *name;
+ int is_namemap; /* Nonzero if this entry maps long names. */
+ int long_name = 0;
#endif
- long int eltsize;
- int eltmode;
- long int fnval;
+ long int eltsize;
+ int eltmode;
+ long int fnval;
- if (lseek (desc, member_offset, 0) < 0)
- {
- (void) close (desc);
- return -2;
- }
+ if (lseek (desc, member_offset, 0) < 0)
+ {
+ (void) close (desc);
+ return -2;
+ }
#ifdef AIAMAG
#define AR_MEMHDR_SZ(x) (sizeof(x) - sizeof (x._ar_name))
#ifdef AIAMAGBIG
- if (big_archive)
- {
- nread = read (desc, &member_header_big,
- AR_MEMHDR_SZ(member_header_big) );
-
- if (nread != AR_MEMHDR_SZ(member_header_big))
- {
- (void) close (desc);
- return -2;
- }
-
- sscanf (member_header_big.ar_namlen, "%4d", &name_len);
- nread = read (desc, name, name_len);
-
- if (nread != name_len)
- {
- (void) close (desc);
- return -2;
- }
-
- name[name_len] = 0;
-
- sscanf (member_header_big.ar_date, "%12ld", &dateval);
- sscanf (member_header_big.ar_uid, "%12d", &uidval);
- sscanf (member_header_big.ar_gid, "%12d", &gidval);
- sscanf (member_header_big.ar_mode, "%12o", &eltmode);
- sscanf (member_header_big.ar_size, "%20ld", &eltsize);
-
- data_offset = (member_offset + AR_MEMHDR_SZ(member_header_big)
- + name_len + 2);
- }
- else
+ if (big_archive)
+ {
+ nread = read (desc, &member_header_big,
+ AR_MEMHDR_SZ(member_header_big) );
+
+ if (nread != AR_MEMHDR_SZ(member_header_big))
+ {
+ (void) close (desc);
+ return -2;
+ }
+
+ sscanf (member_header_big.ar_namlen, "%4d", &name_len);
+ nread = read (desc, name, name_len);
+
+ if (nread != name_len)
+ {
+ (void) close (desc);
+ return -2;
+ }
+
+ name[name_len] = 0;
+
+ sscanf (member_header_big.ar_date, "%12ld", &dateval);
+ sscanf (member_header_big.ar_uid, "%12d", &uidval);
+ sscanf (member_header_big.ar_gid, "%12d", &gidval);
+ sscanf (member_header_big.ar_mode, "%12o", &eltmode);
+ sscanf (member_header_big.ar_size, "%20ld", &eltsize);
+
+ data_offset = (member_offset + AR_MEMHDR_SZ(member_header_big)
+ + name_len + 2);
+ }
+ else
#endif
- {
- nread = read (desc, &member_header,
- AR_MEMHDR_SZ(member_header) );
-
- if (nread != AR_MEMHDR_SZ(member_header))
- {
- (void) close (desc);
- return -2;
- }
-
- sscanf (member_header.ar_namlen, "%4d", &name_len);
- nread = read (desc, name, name_len);
-
- if (nread != name_len)
- {
- (void) close (desc);
- return -2;
- }
-
- name[name_len] = 0;
-
- sscanf (member_header.ar_date, "%12ld", &dateval);
- sscanf (member_header.ar_uid, "%12d", &uidval);
- sscanf (member_header.ar_gid, "%12d", &gidval);
- sscanf (member_header.ar_mode, "%12o", &eltmode);
- sscanf (member_header.ar_size, "%12ld", &eltsize);
-
- data_offset = (member_offset + AR_MEMHDR_SZ(member_header)
- + name_len + 2);
- }
- data_offset += data_offset % 2;
-
- fnval =
- (*function) (desc, name, 0,
- member_offset, data_offset, eltsize,
- dateval, uidval, gidval,
- eltmode, arg);
-
-#else /* Not AIAMAG. */
- nread = read (desc, &member_header, AR_HDR_SIZE);
- if (nread == 0)
- /* No data left means end of file; that is OK. */
- break;
-
- if (nread != AR_HDR_SIZE
+ {
+ nread = read (desc, &member_header,
+ AR_MEMHDR_SZ(member_header) );
+
+ if (nread != AR_MEMHDR_SZ(member_header))
+ {
+ (void) close (desc);
+ return -2;
+ }
+
+ sscanf (member_header.ar_namlen, "%4d", &name_len);
+ nread = read (desc, name, name_len);
+
+ if (nread != name_len)
+ {
+ (void) close (desc);
+ return -2;
+ }
+
+ name[name_len] = 0;
+
+ sscanf (member_header.ar_date, "%12ld", &dateval);
+ sscanf (member_header.ar_uid, "%12d", &uidval);
+ sscanf (member_header.ar_gid, "%12d", &gidval);
+ sscanf (member_header.ar_mode, "%12o", &eltmode);
+ sscanf (member_header.ar_size, "%12ld", &eltsize);
+
+ data_offset = (member_offset + AR_MEMHDR_SZ(member_header)
+ + name_len + 2);
+ }
+ data_offset += data_offset % 2;
+
+ fnval =
+ (*function) (desc, name, 0,
+ member_offset, data_offset, eltsize,
+ dateval, uidval, gidval,
+ eltmode, arg);
+
+#else /* Not AIAMAG. */
+ nread = read (desc, &member_header, AR_HDR_SIZE);
+ if (nread == 0)
+ /* No data left means end of file; that is OK. */
+ break;
+
+ if (nread != AR_HDR_SIZE
#if defined(ARFMAG) || defined(ARFZMAG)
- || (
+ || (
# ifdef ARFMAG
memcmp (member_header.ar_fmag, ARFMAG, 2)
# else
@@ -571,152 +568,152 @@ ar_scan (const char *archive, ar_member_func_t function, const void *arg)
# endif
)
#endif
- )
- {
- (void) close (desc);
- return -2;
- }
-
- name = namebuf;
- memcpy (name, member_header.ar_name, sizeof member_header.ar_name);
- {
- register char *p = name + sizeof member_header.ar_name;
- do
- *p = '\0';
- while (p > name && *--p == ' ');
+ )
+ {
+ (void) close (desc);
+ return -2;
+ }
+
+ name = namebuf;
+ memcpy (name, member_header.ar_name, sizeof member_header.ar_name);
+ {
+ register char *p = name + sizeof member_header.ar_name;
+ do
+ *p = '\0';
+ while (p > name && *--p == ' ');
#ifndef AIAMAG
- /* If the member name is "//" or "ARFILENAMES/" this may be
- a list of file name mappings. The maximum file name
- length supported by the standard archive format is 14
- characters. This member will actually always be the
- first or second entry in the archive, but we don't check
- that. */
- is_namemap = (!strcmp (name, "//")
- || !strcmp (name, "ARFILENAMES/"));
-#endif /* Not AIAMAG. */
- /* On some systems, there is a slash after each member name. */
- if (*p == '/')
- *p = '\0';
+ /* If the member name is "//" or "ARFILENAMES/" this may be
+ a list of file name mappings. The maximum file name
+ length supported by the standard archive format is 14
+ characters. This member will actually always be the
+ first or second entry in the archive, but we don't check
+ that. */
+ is_namemap = (!strcmp (name, "//")
+ || !strcmp (name, "ARFILENAMES/"));
+#endif /* Not AIAMAG. */
+ /* On some systems, there is a slash after each member name. */
+ if (*p == '/')
+ *p = '\0';
#ifndef AIAMAG
- /* If the member name starts with a space or a slash, this
- is an index into the file name mappings (used by GNU ar).
- Otherwise if the member name looks like #1/NUMBER the
- real member name appears in the element data (used by
- 4.4BSD). */
- if (! is_namemap
- && (name[0] == ' ' || name[0] == '/')
- && namemap != 0)
- {
- name = namemap + atoi (name + 1);
- long_name = 1;
- }
- else if (name[0] == '#'
- && name[1] == '1'
- && name[2] == '/')
- {
- int namesize = atoi (name + 3);
-
- name = alloca (namesize + 1);
- nread = read (desc, name, namesize);
- if (nread != namesize)
- {
- close (desc);
- return -2;
- }
- name[namesize] = '\0';
-
- long_name = 1;
- }
+ /* If the member name starts with a space or a slash, this
+ is an index into the file name mappings (used by GNU ar).
+ Otherwise if the member name looks like #1/NUMBER the
+ real member name appears in the element data (used by
+ 4.4BSD). */
+ if (! is_namemap
+ && (name[0] == ' ' || name[0] == '/')
+ && namemap != 0)
+ {
+ name = namemap + atoi (name + 1);
+ long_name = 1;
+ }
+ else if (name[0] == '#'
+ && name[1] == '1'
+ && name[2] == '/')
+ {
+ int namesize = atoi (name + 3);
+
+ name = alloca (namesize + 1);
+ nread = read (desc, name, namesize);
+ if (nread != namesize)
+ {
+ close (desc);
+ return -2;
+ }
+ name[namesize] = '\0';
+
+ long_name = 1;
+ }
#endif /* Not AIAMAG. */
- }
-
-#ifndef M_XENIX
- sscanf (TOCHAR (member_header.ar_mode), "%o", &eltmode);
- eltsize = atol (TOCHAR (member_header.ar_size));
-#else /* Xenix. */
- eltmode = (unsigned short int) member_header.ar_mode;
- eltsize = member_header.ar_size;
-#endif /* Not Xenix. */
-
- fnval =
- (*function) (desc, name, ! long_name, member_offset,
- member_offset + AR_HDR_SIZE, eltsize,
-#ifndef M_XENIX
- atol (TOCHAR (member_header.ar_date)),
- atoi (TOCHAR (member_header.ar_uid)),
- atoi (TOCHAR (member_header.ar_gid)),
-#else /* Xenix. */
- member_header.ar_date,
- member_header.ar_uid,
- member_header.ar_gid,
-#endif /* Not Xenix. */
- eltmode, arg);
+ }
+
+#ifndef M_XENIX
+ sscanf (TOCHAR (member_header.ar_mode), "%o", &eltmode);
+ eltsize = atol (TOCHAR (member_header.ar_size));
+#else /* Xenix. */
+ eltmode = (unsigned short int) member_header.ar_mode;
+ eltsize = member_header.ar_size;
+#endif /* Not Xenix. */
+
+ fnval =
+ (*function) (desc, name, ! long_name, member_offset,
+ member_offset + AR_HDR_SIZE, eltsize,
+#ifndef M_XENIX
+ atol (TOCHAR (member_header.ar_date)),
+ atoi (TOCHAR (member_header.ar_uid)),
+ atoi (TOCHAR (member_header.ar_gid)),
+#else /* Xenix. */
+ member_header.ar_date,
+ member_header.ar_uid,
+ member_header.ar_gid,
+#endif /* Not Xenix. */
+ eltmode, arg);
#endif /* AIAMAG. */
- if (fnval)
- {
- (void) close (desc);
- return fnval;
- }
+ if (fnval)
+ {
+ (void) close (desc);
+ return fnval;
+ }
#ifdef AIAMAG
- if (member_offset == last_member_offset)
- /* End of the chain. */
- break;
+ if (member_offset == last_member_offset)
+ /* End of the chain. */
+ break;
#ifdef AIAMAGBIG
- if (big_archive)
+ if (big_archive)
sscanf (member_header_big.ar_nxtmem, "%20ld", &member_offset);
- else
+ else
#endif
- sscanf (member_header.ar_nxtmem, "%12ld", &member_offset);
+ sscanf (member_header.ar_nxtmem, "%12ld", &member_offset);
- if (lseek (desc, member_offset, 0) != member_offset)
- {
- (void) close (desc);
- return -2;
- }
+ if (lseek (desc, member_offset, 0) != member_offset)
+ {
+ (void) close (desc);
+ return -2;
+ }
#else
- /* If this member maps archive names, we must read it in. The
- name map will always precede any members whose names must
- be mapped. */
- if (is_namemap)
- {
- char *clear;
- char *limit;
-
- namemap = alloca (eltsize);
- nread = read (desc, namemap, eltsize);
- if (nread != eltsize)
- {
- (void) close (desc);
- return -2;
- }
-
- /* The names are separated by newlines. Some formats have
- a trailing slash. Null terminate the strings for
- convenience. */
- limit = namemap + eltsize;
- for (clear = namemap; clear < limit; clear++)
- {
- if (*clear == '\n')
- {
- *clear = '\0';
- if (clear[-1] == '/')
- clear[-1] = '\0';
- }
- }
-
- is_namemap = 0;
- }
-
- member_offset += AR_HDR_SIZE + eltsize;
- if (member_offset % 2 != 0)
- member_offset++;
+ /* If this member maps archive names, we must read it in. The
+ name map will always precede any members whose names must
+ be mapped. */
+ if (is_namemap)
+ {
+ char *clear;
+ char *limit;
+
+ namemap = alloca (eltsize);
+ nread = read (desc, namemap, eltsize);
+ if (nread != eltsize)
+ {
+ (void) close (desc);
+ return -2;
+ }
+
+ /* The names are separated by newlines. Some formats have
+ a trailing slash. Null terminate the strings for
+ convenience. */
+ limit = namemap + eltsize;
+ for (clear = namemap; clear < limit; clear++)
+ {
+ if (*clear == '\n')
+ {
+ *clear = '\0';
+ if (clear[-1] == '/')
+ clear[-1] = '\0';
+ }
+ }
+
+ is_namemap = 0;
+ }
+
+ member_offset += AR_HDR_SIZE + eltsize;
+ if (member_offset % 2 != 0)
+ member_offset++;
#endif
}
}
@@ -748,9 +745,9 @@ ar_name_equal (const char *name, const char *mem, int truncated)
#else
struct ar_hdr hdr;
#if !defined (__hpux) && !defined (cray)
- return strneq (name, mem, sizeof(hdr.ar_name) - 1);
+ return strneq (name, mem, sizeof (hdr.ar_name) - 1);
#else
- return strneq (name, mem, sizeof(hdr.ar_name) - 2);
+ return strneq (name, mem, sizeof (hdr.ar_name) - 2);
#endif /* !__hpux && !cray */
#endif /* !AIAMAG */
}
@@ -763,7 +760,7 @@ ar_name_equal (const char *name, const char *mem, int truncated)
/* ARGSUSED */
static long int
ar_member_pos (int desc UNUSED, const char *mem, int truncated,
- long int hdrpos, long int datapos UNUSED, long int size UNUSED,
+ long int hdrpos, long int datapos UNUSED, long int size UNUSED,
long int date UNUSED, int uid UNUSED, int gid UNUSED,
int mode UNUSED, const void *name)
{
@@ -817,7 +814,7 @@ ar_member_touch (const char *arname, const char *memname)
ar_hdr.ar_date[ui] = ' ';
sprintf (TOCHAR (ar_hdr.ar_date), "%ld", (long int) statbuf.st_mtime);
#ifdef AIAMAG
- ar_hdr.ar_date[strlen(ar_hdr.ar_date)] = ' ';
+ ar_hdr.ar_date[strlen (ar_hdr.ar_date)] = ' ';
#endif
#else
ar_hdr.ar_date = statbuf.st_mtime;
@@ -842,14 +839,14 @@ ar_member_touch (const char *arname, const char *memname)
long int
describe_member (int desc, const char *name, int truncated,
- long int hdrpos, long int datapos, long int size,
+ long int hdrpos, long int datapos, long int size,
long int date, int uid, int gid, int mode, const void *arg)
{
extern char *ctime ();
- printf (_("Member `%s'%s: %ld bytes at %ld (%ld).\n"),
- name, truncated ? _(" (name might be truncated)") : "",
- size, hdrpos, datapos);
+ printf (_("Member '%s'%s: %ld bytes at %ld (%ld).\n"),
+ name, truncated ? _(" (name might be truncated)") : "",
+ size, hdrpos, datapos);
printf (_(" Date %s"), ctime (&date));
printf (_(" uid = %d, gid = %d, mode = 0%o.\n"), uid, gid, mode);
@@ -863,5 +860,5 @@ main (int argc, char **argv)
return 0;
}
-#endif /* TEST. */
-#endif /* NO_ARCHIVES. */
+#endif /* TEST. */
+#endif /* NO_ARCHIVES. */
diff --git a/build.sh.in b/build.sh.in
index 213df8d..92957bd 100755
--- a/build.sh.in
+++ b/build.sh.in
@@ -1,9 +1,8 @@
#!/bin/sh
-# Shell script to build GNU Make in the absence of any `make' program.
+# Shell script to build GNU Make in the absence of any 'make' program.
# @configure_input@
-# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 1993-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
@@ -39,7 +38,7 @@ EXEEXT='@EXEEXT@'
prefix='@prefix@'
# Common prefix for machine-dependent installed files.
exec_prefix=`eval echo @exec_prefix@`
-# Directory to find libraries in for `-lXXX'.
+# Directory to find libraries in for '-lXXX'.
libdir=${exec_prefix}/lib
# Directory to search by default for included makefiles.
includedir=${prefix}/include
@@ -53,7 +52,7 @@ defines="-DALIASPATH=\"${aliaspath}\" -DLOCALEDIR=\"${localedir}\" -DLIBDIR=\"${
set -e
# These are all the objects we need to link together.
-objs="ar.${OBJEXT} arscan.${OBJEXT} commands.${OBJEXT} default.${OBJEXT} dir.${OBJEXT} expand.${OBJEXT} file.${OBJEXT} function.${OBJEXT} getopt.${OBJEXT} getopt1.${OBJEXT} implicit.${OBJEXT} job.${OBJEXT} main.${OBJEXT} misc.${OBJEXT} read.${OBJEXT} remake.${OBJEXT} rule.${OBJEXT} signame.${OBJEXT} strcache.${OBJEXT} variable.${OBJEXT} version.${OBJEXT} vpath.${OBJEXT} hash.${OBJEXT} remote-${REMOTE}.${OBJEXT} ${extras} ${ALLOCA}"
+objs="ar.${OBJEXT} arscan.${OBJEXT} commands.${OBJEXT} default.${OBJEXT} dir.${OBJEXT} expand.${OBJEXT} file.${OBJEXT} function.${OBJEXT} getopt.${OBJEXT} getopt1.${OBJEXT} implicit.${OBJEXT} job.${OBJEXT} load.${OBJEXT} loadapi.${OBJEXT} main.${OBJEXT} misc.${OBJEXT} output.${OBJEXT} read.${OBJEXT} remake.${OBJEXT} rule.${OBJEXT} signame.${OBJEXT} strcache.${OBJEXT} variable.${OBJEXT} version.${OBJEXT} vpath.${OBJEXT} hash.${OBJEXT} guile.${OBJEXT} remote-${REMOTE}.${OBJEXT} ${extras} ${ALLOCA}"
if [ x"$GLOBLIB" != x ]; then
objs="$objs glob/fnmatch.${OBJEXT} glob/glob.${OBJEXT}"
diff --git a/build_w32.bat b/build_w32.bat
index de758b0..148dfac 100644
--- a/build_w32.bat
+++ b/build_w32.bat
@@ -1,6 +1,5 @@
@echo off
-rem Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-rem 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+rem Copyright (C) 1996-2013 Free Software Foundation, Inc.
rem This file is part of GNU Make.
rem
rem GNU Make is free software; you can redistribute it and/or modify it under
@@ -16,21 +15,84 @@ rem
rem You should have received a copy of the GNU General Public License along
rem with this program. If not, see <http://www.gnu.org/licenses/>.
-if exist config.h.W32 GoTo NotCVS
-sed -n "s/^AC_INIT(\[GNU make\],\[\([^]]\+\)\].*/s,%%VERSION%%,\1,g/p" configure.in > config.h.W32.sed
+if "%1" == "-h" GoTo Usage
+if "%1" == "--help" GoTo Usage
+if not exist config.h.W32.template GoTo NotSCM
+sed -n "s/^AC_INIT(\[GNU make\],\[\([^]]\+\)\].*/s,%%VERSION%%,\1,g/p" configure.ac > config.h.W32.sed
echo s,%%PACKAGE%%,make,g >> config.h.W32.sed
sed -f config.h.W32.sed config.h.W32.template > config.h.W32
-:NotCVS
-if not exist config.h copy config.h.W32 config.h
+echo static const char *const GUILE_module_defn = ^" \> gmk-default.h
+sed -e "s/;.*//" -e "/^[ \t]*$/d" -e "s/\"/\\\\\"/g" -e "s/$/ \\/" gmk-default.scm >> gmk-default.h
+echo ^";>> gmk-default.h
+:NotSCM
+copy config.h.W32 config.h
+
+rem Guile configuration
+set GUILECFLAGS=
+set GUILELIBS=
+set GUILESRC=
+set NOGUILE=
+set OPT=-O2
+set COMPILER=
+set PKGMSC=
+:ParseSW
+if "%1" == "--debug" GoTo SetOpt
+if "%1" == "--without-guile" GoTo NoGuile
+if "%1" == "gcc" GoTo SetCC
+if "%1" == "" GoTo ChkGuile
+:SetOpt
+set OPT=-O0
+shift
+GoTo ParseSW
+:NoGuile
+set NOGUILE=Y
+echo "Building without Guile"
+shift
+GoTo ParseSW
+:SetCC
+set COMPILER=gcc
+echo "Building with GCC"
+shift
+GoTo ParseSW
+rem Build with Guile is supported only on NT and later versions
+:ChkGuile
+if "%NOGUILE%" == "Y" GoTo GuileDone
+if not "%OS%" == "Windows_NT" GoTo NoGuile
+pkg-config --help > guile.tmp 2> NUL
+if ERRORLEVEL 1 GoTo NoPkgCfg
+echo "Checking for Guile 2.0"
+if not "%COMPILER%" == "gcc" set PKGMSC=--msvc-syntax
+pkg-config --cflags --short-errors "guile-2.0" > guile.tmp
+if not ERRORLEVEL 1 set /P GUILECFLAGS= < guile.tmp
+pkg-config --libs --static --short-errors %PKGMSC% "guile-2.0" > guile.tmp
+if not ERRORLEVEL 1 set /P GUILELIBS= < guile.tmp
+if not "%GUILECFLAGS%" == "" GoTo GuileDone
+echo "Checking for Guile 1.8"
+pkg-config --cflags --short-errors "guile-1.8" > guile.tmp
+if not ERRORLEVEL 1 set /P GUILECFLAGS= < guile.tmp
+pkg-config --libs --static --short-errors %PKGMSC% "guile-1.8" > guile.tmp
+if not ERRORLEVEL 1 set /P GUILELIBS= < guile.tmp
+if not "%GUILECFLAGS%" == "" GoTo GuileDone
+echo "No Guile found, building without Guile"
+GoTo GuileDone
+:NoPkgCfg
+echo "pkg-config not found, building without Guile"
+:GuileDone
+if not "%GUILECFLAGS%" == "" echo "Guile found, building with Guile"
+if not "%GUILECFLAGS%" == "" set GUILESRC=guile.c
+if not "%GUILECFLAGS%" == "" set GUILECFLAGS=%GUILECFLAGS% -DHAVE_GUILE
+if "%COMPILER%" == "gcc" if "%OPT%" == "-O0" echo "Building without compiler optimizations"
cd w32\subproc
+echo.
echo "Creating the subproc library"
-%ComSpec% /c build.bat %1
+%ComSpec% /c build.bat
cd ..\..
if exist link.dbg del link.dbg
if exist link.rel del link.rel
-echo "Creating GNU Make for Windows 9X/NT/2K/XP"
-if "%1" == "gcc" GoTo GCCBuild
+echo.
+echo "Creating GNU Make for Windows 9X/NT/2K/XP/Vista/7/8"
+if "%COMPILER%" == "gcc" GoTo GCCBuild
set make=gnumake
echo on
if not exist .\WinDebug\nul mkdir .\WinDebug
@@ -54,12 +116,14 @@ cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D
echo WinDebug\expand.obj >>link.dbg
cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c dir.c
echo WinDebug\dir.obj >>link.dbg
-cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c main.c
+cl.exe /nologo /MT /W4 /GX /Zi /YX /Od %GUILECFLAGS% /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c main.c
echo WinDebug\main.obj >>link.dbg
cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c getopt1.c
echo WinDebug\getopt1.obj >>link.dbg
cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c job.c
echo WinDebug\job.obj >>link.dbg
+cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c output.c
+echo WinDebug\output.obj >>link.dbg
cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c read.c
echo WinDebug\read.obj >>link.dbg
cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c version.c
@@ -84,18 +148,28 @@ cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D
echo WinDebug\vpath.obj >>link.dbg
cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c implicit.c
echo WinDebug\implicit.obj >>link.dbg
+cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c loadapi.c
+echo WinDebug\loadapi.obj >>link.dbg
+cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c load.c
+echo WinDebug\load.obj >>link.dbg
cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c .\w32\compat\dirent.c
echo WinDebug\dirent.obj >>link.dbg
+cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c .\w32\compat\posixfcn.c
+echo WinDebug\posixfcn.obj >>link.dbg
cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c .\glob\glob.c
echo WinDebug\glob.obj >>link.dbg
cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c .\glob\fnmatch.c
echo WinDebug\fnmatch.obj >>link.dbg
cl.exe /nologo /MT /W4 /GX /Zi /YX /Od /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c .\w32\pathstuff.c
echo WinDebug\pathstuff.obj >>link.dbg
+if "%GUILESRC%" == "" GoTo LinkDbg
+cl.exe /nologo /MT /W4 /GX /Zi /YX /Od %GUILECFLAGS%% /I . /I glob /I w32/include /D _DEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinDebug/ /Fp.\WinDebug/%make%.pch /Fo.\WinDebug/ /Fd.\WinDebug/%make%.pdb /c guile.c
+echo WinDebug\guile.obj >>link.dbg
+:LinkDbg
echo off
echo "Linking WinDebug/%make%.exe"
-rem link.exe kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\windebug\subproc.lib /NOLOGO /SUBSYSTEM:console /INCREMENTAL:yes /PDB:.\WinDebug/%make%.pdb /DEBUG /OUT:.\WinDebug/%make%.exe .\WinDebug/variable.obj .\WinDebug/rule.obj .\WinDebug/remote-stub.obj .\WinDebug/commands.obj .\WinDebug/file.obj .\WinDebug/getloadavg.obj .\WinDebug/default.obj .\WinDebug/signame.obj .\WinDebug/expand.obj .\WinDebug/dir.obj .\WinDebug/main.obj .\WinDebug/getopt1.obj .\WinDebug/job.obj .\WinDebug/read.obj .\WinDebug/version.obj .\WinDebug/getopt.obj .\WinDebug/arscan.obj .\WinDebug/remake.obj .\WinDebug/hash.obj .\WinDebug/strcache.obj .\WinDebug/misc.obj .\WinDebug/ar.obj .\WinDebug/function.obj .\WinDebug/vpath.obj .\WinDebug/implicit.obj .\WinDebug/dirent.obj .\WinDebug/glob.obj .\WinDebug/fnmatch.obj .\WinDebug/pathstuff.obj
-echo kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\windebug\subproc.lib >>link.dbg
+rem link.exe %GUILELIBS% kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\windebug\subproc.lib /NOLOGO /SUBSYSTEM:console /INCREMENTAL:yes /PDB:.\WinDebug/%make%.pdb /DEBUG /OUT:.\WinDebug/%make%.exe .\WinDebug/variable.obj .\WinDebug/rule.obj .\WinDebug/remote-stub.obj .\WinDebug/commands.obj .\WinDebug/file.obj .\WinDebug/getloadavg.obj .\WinDebug/default.obj .\WinDebug/signame.obj .\WinDebug/expand.obj .\WinDebug/dir.obj .\WinDebug/main.obj .\WinDebug/getopt1.obj .\WinDebug/job.obj .\WinDebug/output.obj .\WinDebug/read.obj .\WinDebug/version.obj .\WinDebug/getopt.obj .\WinDebug/arscan.obj .\WinDebug/remake.obj .\WinDebug/hash.obj .\WinDebug/strcache.obj .\WinDebug/misc.obj .\WinDebug/ar.obj .\WinDebug/function.obj .\WinDebug/vpath.obj .\WinDebug/implicit.obj .\WinDebug/dirent.obj .\WinDebug/glob.obj .\WinDebug/fnmatch.obj .\WinDebug/pathstuff.obj
+echo %GUILELIBS% kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\windebug\subproc.lib >>link.dbg
link.exe /NOLOGO /SUBSYSTEM:console /INCREMENTAL:yes /PDB:.\WinDebug/%make%.pdb /DEBUG /OUT:.\WinDebug/%make%.exe @link.dbg
if not exist .\WinDebug/%make%.exe echo "WinDebug build failed"
if exist .\WinDebug/%make%.exe echo "WinDebug build succeeded!"
@@ -121,12 +195,14 @@ cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WIND
echo WinRel\expand.obj >>link.rel
cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c dir.c
echo WinRel\dir.obj >>link.rel
-cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c main.c
+cl.exe /nologo /MT /W4 /GX /YX /O2 %GUILECFLAGS% /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c main.c
echo WinRel\main.obj >>link.rel
cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c getopt1.c
echo WinRel\getopt1.obj >>link.rel
cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c job.c
echo WinRel\job.obj >>link.rel
+cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c output.c
+echo WinRel\output.obj >>link.rel
cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c read.c
echo WinRel\read.obj >>link.rel
cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c version.c
@@ -151,18 +227,28 @@ cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WIND
echo WinRel\vpath.obj >>link.rel
cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c implicit.c
echo WinRel\implicit.obj >>link.rel
+cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c loadapi.c
+echo WinRel\loadapi.obj >>link.rel
+cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c load.c
+echo WinRel\load.obj >>link.rel
cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c .\w32\compat\dirent.c
echo WinRel\dirent.obj >>link.rel
+cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c .\w32\compat\posixfcn.c
+echo WinRel\posixfcn.obj >>link.rel
cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c .\glob\glob.c
echo WinRel\glob.obj >>link.rel
cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c .\glob\fnmatch.c
echo WinRel\fnmatch.obj >>link.rel
cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c .\w32\pathstuff.c
echo WinRel\pathstuff.obj >>link.rel
+if "%GUILESRC%" == "" GoTo LinkRel
+cl.exe /nologo /MT /W4 /GX /YX /O2 /I . /I glob /I w32/include /D NDEBUG /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR.\WinRel/ /Fp.\WinRel/%make%.pch /Fo.\WinRel/ /c guile.c
+echo WinRel\guile.obj >>link.rel
+:LinkRel
echo off
echo "Linking WinRel/%make%.exe"
-rem link.exe kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\winrel\subproc.lib /NOLOGO /SUBSYSTEM:console /INCREMENTAL:no /PDB:.\WinRel/%make%.pdb /OUT:.\WinRel/%make%.exe .\WinRel/variable.obj .\WinRel/rule.obj .\WinRel/remote-stub.obj .\WinRel/commands.obj .\WinRel/file.obj .\WinRel/getloadavg.obj .\WinRel/default.obj .\WinRel/signame.obj .\WinRel/expand.obj .\WinRel/dir.obj .\WinRel/main.obj .\WinRel/getopt1.obj .\WinRel/job.obj .\WinRel/read.obj .\WinRel/version.obj .\WinRel/getopt.obj .\WinRel/arscan.obj .\WinRel/remake.obj .\WinRel/misc.obj .\WinRel/hash.obj .\WinRel/strcache.obj .\WinRel/ar.obj .\WinRel/function.obj .\WinRel/vpath.obj .\WinRel/implicit.obj .\WinRel/dirent.obj .\WinRel/glob.obj .\WinRel/fnmatch.obj .\WinRel/pathstuff.obj
-echo kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\winrel\subproc.lib >>link.rel
+rem link.exe %GUILELIBS% kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\winrel\subproc.lib /NOLOGO /SUBSYSTEM:console /INCREMENTAL:no /PDB:.\WinRel/%make%.pdb /OUT:.\WinRel/%make%.exe .\WinRel/variable.obj .\WinRel/rule.obj .\WinRel/remote-stub.obj .\WinRel/commands.obj .\WinRel/file.obj .\WinRel/getloadavg.obj .\WinRel/default.obj .\WinRel/signame.obj .\WinRel/expand.obj .\WinRel/dir.obj .\WinRel/main.obj .\WinRel/getopt1.obj .\WinRel/job.obj .\WinRel/output.obj .\WinRel/read.obj .\WinRel/version.obj .\WinRel/getopt.obj .\WinRel/arscan.obj .\WinRel/remake.obj .\WinRel/misc.obj .\WinRel/hash.obj .\WinRel/strcache.obj .\WinRel/ar.obj .\WinRel/function.obj .\WinRel/vpath.obj .\WinRel/implicit.obj .\WinRel/dirent.obj .\WinRel/glob.obj .\WinRel/fnmatch.obj .\WinRel/pathstuff.obj
+echo %GUILELIBS% kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib w32\subproc\winrel\subproc.lib >>link.rel
link.exe /NOLOGO /SUBSYSTEM:console /INCREMENTAL:no /PDB:.\WinRel/%make%.pdb /OUT:.\WinRel/%make%.exe @link.rel
if not exist .\WinRel/%make%.exe echo "WinRel build failed"
if exist .\WinRel/%make%.exe echo "WinRel build succeeded!"
@@ -170,34 +256,66 @@ set make=
GoTo BuildEnd
:GCCBuild
echo on
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c variable.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c rule.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c remote-stub.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c commands.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c file.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getloadavg.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c default.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c signame.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c expand.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c dir.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c main.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getopt1.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c job.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c read.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c version.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getopt.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c arscan.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c remake.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c hash.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c strcache.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c misc.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ar.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c function.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c vpath.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c implicit.c
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./glob/glob.c -o glob.o
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./glob/fnmatch.c -o fnmatch.o
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./w32/pathstuff.c -o pathstuff.o
-gcc -mthreads -gdwarf-2 -g3 -o gnumake.exe variable.o rule.o remote-stub.o commands.o file.o getloadavg.o default.o signame.o expand.o dir.o main.o getopt1.o job.o read.o version.o getopt.o arscan.o remake.o misc.o hash.o strcache.o ar.o function.o vpath.o implicit.o glob.o fnmatch.o pathstuff.o w32_misc.o sub_proc.o w32err.o -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c variable.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c rule.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c remote-stub.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c commands.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c file.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getloadavg.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c default.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c signame.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c expand.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c dir.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H %GUILECFLAGS% -c main.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getopt1.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c job.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c output.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c read.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c version.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c getopt.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c arscan.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c remake.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c hash.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c strcache.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c misc.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ar.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c function.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c vpath.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c implicit.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c loadapi.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c load.c
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./glob/glob.c -o glob.o
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./glob/fnmatch.c -o fnmatch.o
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./w32/pathstuff.c -o pathstuff.o
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c ./w32/compat/posixfcn.c -o posixfcn.o
+@echo off
+set GUILEOBJ=
+if "%GUILESRC%" == "" GoTo LinkGCC
+set GUILEOBJ=guile.o
+echo on
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% %GUILECFLAGS% -I. -I./glob -I./w32/include -DWINDOWS32 -DHAVE_CONFIG_H -c guile.c
+:LinkGCC
+@echo off
+Rem The version NN of libgnumake-NN.dll.a should be bumped whenever
+Rem the API changes in binary-incompatible manner.
+@echo on
+gcc -mthreads -gdwarf-2 -g3 -o gnumake.exe variable.o rule.o remote-stub.o commands.o file.o getloadavg.o default.o signame.o expand.o dir.o main.o getopt1.o %GUILEOBJ% job.o output.o read.o version.o getopt.o arscan.o remake.o misc.o hash.o strcache.o ar.o function.o vpath.o implicit.o loadapi.o load.o glob.o fnmatch.o pathstuff.o posixfcn.o w32_misc.o sub_proc.o w32err.o %GUILELIBS% -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32 -Wl,--out-implib=libgnumake-1.dll.a
+@GoTo BuildEnd
+:Usage
+echo Usage: %0 [options] [gcc]
+echo Options:
+echo. --debug For GCC only, make a debug build
+echo. (MSVC build always makes both debug and release)
+echo. --without-guile Do not compile Guile support even if found
+echo. --help Display these instructions and exit
:BuildEnd
+@echo off
+set GUILEOBJ=
+set GUILESRC=
+set GUILELIBS=
+set GUILECFLAGS=
+set PKGMSC=
+set OPT=
+set COMPILER=
+set NOGUILE=
echo on
diff --git a/commands.c b/commands.c
index f360bd4..f910358 100644
--- a/commands.c
+++ b/commands.c
@@ -1,7 +1,5 @@
/* Command processing for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,9 +14,11 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
-#include "dep.h"
+#include <dlfcn.h>
+
+#include "makeint.h"
#include "filedef.h"
+#include "dep.h"
#include "variable.h"
#include "job.h"
#include "commands.h"
@@ -35,7 +35,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
int remote_kill (int id, int sig);
-#ifndef HAVE_UNISTD_H
+#ifndef HAVE_UNISTD_H
int getpid ();
#endif
@@ -70,9 +70,9 @@ set_file_variables (struct file *file)
struct dep *d;
const char *at, *percent, *star, *less;
-#ifndef NO_ARCHIVES
- /* If the target is an archive member `lib(member)',
- then $@ is `lib' and $% is `member'. */
+#ifndef NO_ARCHIVES
+ /* If the target is an archive member 'lib(member)',
+ then $@ is 'lib' and $% is 'member'. */
if (ar_name (file->name))
{
@@ -92,7 +92,7 @@ set_file_variables (struct file *file)
percent = p;
}
else
-#endif /* NO_ARCHIVES. */
+#endif /* NO_ARCHIVES. */
{
at = file->name;
percent = "";
@@ -102,35 +102,35 @@ set_file_variables (struct file *file)
if (file->stem == 0)
{
/* In Unix make, $* is set to the target name with
- any suffix in the .SUFFIXES list stripped off for
- explicit rules. We store this in the `stem' member. */
+ any suffix in the .SUFFIXES list stripped off for
+ explicit rules. We store this in the 'stem' member. */
const char *name;
unsigned int len;
-#ifndef NO_ARCHIVES
+#ifndef NO_ARCHIVES
if (ar_name (file->name))
- {
- name = strchr (file->name, '(') + 1;
- len = strlen (name) - 1;
- }
+ {
+ name = strchr (file->name, '(') + 1;
+ len = strlen (name) - 1;
+ }
else
#endif
- {
- name = file->name;
- len = strlen (name);
- }
+ {
+ name = file->name;
+ len = strlen (name);
+ }
for (d = enter_file (strcache_add (".SUFFIXES"))->deps; d ; d = d->next)
- {
- unsigned int slen = strlen (dep_name (d));
- if (len > slen && strneq (dep_name (d), name + (len - slen), slen))
- {
- file->stem = strcache_add_len (name, len - slen);
- break;
- }
- }
+ {
+ unsigned int slen = strlen (dep_name (d));
+ if (len > slen && strneq (dep_name (d), name + (len - slen), slen))
+ {
+ file->stem = strcache_add_len (name, len - slen);
+ break;
+ }
+ }
if (d == 0)
- file->stem = "";
+ file->stem = "";
}
star = file->stem;
@@ -149,7 +149,7 @@ set_file_variables (struct file *file)
In this case $< is the same as $@. */
less = at;
-#define DEFINE_VARIABLE(name, len, value) \
+#define DEFINE_VARIABLE(name, len, value) \
(void) define_variable_for_file (name,len,value,o_automatic,0,file)
/* Define the variables. */
@@ -202,13 +202,13 @@ set_file_variables (struct file *file)
cp = plus_value;
- qmark_len = plus_len + 1; /* Will be this or less. */
+ qmark_len = plus_len + 1; /* Will be this or less. */
for (d = file->deps; d != 0; d = d->next)
if (! d->ignore_mtime && ! d->need_2nd_expansion)
{
const char *c = dep_name (d);
-#ifndef NO_ARCHIVES
+#ifndef NO_ARCHIVES
if (ar_name (c))
{
c = strchr (c, '(') + 1;
@@ -222,7 +222,7 @@ set_file_variables (struct file *file)
cp += len;
*cp++ = FILE_LIST_SEPARATOR;
if (! (d->changed || always_make_flag))
- qmark_len -= len + 1; /* Don't space in $? for this one. */
+ qmark_len -= len + 1; /* Don't space in $? for this one. */
}
/* Kill the last space and define the variable. */
@@ -277,23 +277,23 @@ set_file_variables (struct file *file)
continue;
c = dep_name (d);
-#ifndef NO_ARCHIVES
+#ifndef NO_ARCHIVES
if (ar_name (c))
- {
- c = strchr (c, '(') + 1;
- len = strlen (c) - 1;
- }
- else
+ {
+ c = strchr (c, '(') + 1;
+ len = strlen (c) - 1;
+ }
+ else
#endif
- len = strlen (c);
+ len = strlen (c);
if (d->ignore_mtime)
{
memcpy (bp, c, len);
- bp += len;
- *bp++ = FILE_LIST_SEPARATOR;
- }
- else
+ bp += len;
+ *bp++ = FILE_LIST_SEPARATOR;
+ }
+ else
{
memcpy (cp, c, len);
cp += len;
@@ -321,11 +321,11 @@ set_file_variables (struct file *file)
DEFINE_VARIABLE ("|", 1, bar_value);
}
-#undef DEFINE_VARIABLE
+#undef DEFINE_VARIABLE
}
/* Chop CMDS up into individual command lines if necessary.
- Also set the `lines_flags' and `any_recurse' members. */
+ Also set the 'lines_flags' and 'any_recurse' members. */
void
chop_commands (struct commands *cmds)
@@ -402,6 +402,9 @@ chop_commands (struct commands *cmds)
/* Finally, set the corresponding CMDS->lines_flags elements and the
CMDS->any_recurse flag. */
+ if (nlines > USHRT_MAX)
+ fatal (&cmds->fileinfo, _("Recipe has too many lines (%ud)"), nlines);
+
cmds->ncommand_lines = nlines;
cmds->command_lines = lines;
@@ -433,7 +436,7 @@ chop_commands (struct commands *cmds)
flags |= COMMANDS_RECURSE;
cmds->lines_flags[idx] = flags;
- cmds->any_recurse |= flags & COMMANDS_RECURSE;
+ cmds->any_recurse |= flags & COMMANDS_RECURSE ? 1 : 0;
}
}
@@ -456,7 +459,7 @@ execute_file_commands (struct file *file)
{
/* If there are no commands, assume everything worked. */
set_command_state (file, cs_running);
- file->update_status = 0;
+ file->update_status = us_success;
notice_finished_file (file);
return;
}
@@ -467,6 +470,11 @@ execute_file_commands (struct file *file)
set_file_variables (file);
+ /* If this is a loaded dynamic object, unload it before remaking.
+ Some systems don't support overwriting a loaded object. */
+ if (file->loaded)
+ unload_file (file->name);
+
/* Start the commands running. */
new_job (file);
}
@@ -511,14 +519,14 @@ fatal_error_signal (int sig)
DWORD susp_count = SuspendThread (main_thread);
if (susp_count != 0)
- fprintf (stderr, "SuspendThread: suspend count = %ld\n", susp_count);
+ fprintf (stderr, "SuspendThread: suspend count = %ld\n", susp_count);
else if (susp_count == (DWORD)-1)
- {
- DWORD ierr = GetLastError ();
+ {
+ DWORD ierr = GetLastError ();
- fprintf (stderr, "SuspendThread: error %ld: %s\n",
- ierr, map_windows32_error_to_string (ierr));
- }
+ fprintf (stderr, "SuspendThread: error %ld: %s\n",
+ ierr, map_windows32_error_to_string (ierr));
+ }
}
#endif
handling_fatal_signal = 1;
@@ -534,8 +542,8 @@ fatal_error_signal (int sig)
{
struct child *c;
for (c = children; c != 0; c = c->next)
- if (!c->remote)
- (void) kill (c->pid, SIGTERM);
+ if (!c->remote)
+ (void) kill (c->pid, SIGTERM);
}
/* If we got a signal that means the user
@@ -553,18 +561,18 @@ fatal_error_signal (int sig)
struct child *c;
/* Remote children won't automatically get signals sent
- to the process group, so we must send them. */
+ to the process group, so we must send them. */
for (c = children; c != 0; c = c->next)
- if (c->remote)
- (void) remote_kill (c->pid, sig);
+ if (c->remote)
+ (void) remote_kill (c->pid, sig);
for (c = children; c != 0; c = c->next)
- delete_child_targets (c);
+ delete_child_targets (c);
/* Clean up the children. We don't just use the call below because
- we don't want to print the "Waiting for children" message. */
+ we don't want to print the "Waiting for children" message. */
while (job_slots_used > 0)
- reap_children (1, 0);
+ reap_children (1, 0);
}
else
/* Wait for our children to die. */
@@ -614,17 +622,17 @@ delete_target (struct file *file, const char *on_behalf_of)
if (ar_name (file->name))
{
time_t file_date = (file->last_mtime == NONEXISTENT_MTIME
- ? (time_t) -1
- : (time_t) FILE_TIMESTAMP_S (file->last_mtime));
+ ? (time_t) -1
+ : (time_t) FILE_TIMESTAMP_S (file->last_mtime));
if (ar_member_date (file->name) != file_date)
- {
- if (on_behalf_of)
- error (NILF, _("*** [%s] Archive member `%s' may be bogus; not deleted"),
- on_behalf_of, file->name);
- else
- error (NILF, _("*** Archive member `%s' may be bogus; not deleted"),
- file->name);
- }
+ {
+ if (on_behalf_of)
+ error (NILF, _("*** [%s] Archive member '%s' may be bogus; not deleted"),
+ on_behalf_of, file->name);
+ else
+ error (NILF, _("*** Archive member '%s' may be bogus; not deleted"),
+ file->name);
+ }
return;
}
#endif
@@ -635,12 +643,12 @@ delete_target (struct file *file, const char *on_behalf_of)
&& FILE_TIMESTAMP_STAT_MODTIME (file->name, st) != file->last_mtime)
{
if (on_behalf_of)
- error (NILF, _("*** [%s] Deleting file `%s'"), on_behalf_of, file->name);
+ error (NILF, _("*** [%s] Deleting file '%s'"), on_behalf_of, file->name);
else
- error (NILF, _("*** Deleting file `%s'"), file->name);
+ error (NILF, _("*** Deleting file '%s'"), file->name);
if (unlink (file->name) < 0
- && errno != ENOENT) /* It disappeared; so what. */
- perror_with_name ("unlink: ", file->name);
+ && errno != ENOENT) /* It disappeared; so what. */
+ perror_with_name ("unlink: ", file->name);
}
}
@@ -659,7 +667,7 @@ delete_child_targets (struct child *child)
/* Delete the target file if it changed. */
delete_target (child->file, NULL);
- /* Also remove any non-precious targets listed in the `also_make' member. */
+ /* Also remove any non-precious targets listed in the 'also_make' member. */
for (d = child->file->also_make; d != 0; d = d->next)
delete_target (d->file, child->file->name);
@@ -678,17 +686,23 @@ print_commands (const struct commands *cmds)
if (cmds->fileinfo.filenm == 0)
puts (_(" (built-in):"));
else
- printf (_(" (from `%s', line %lu):\n"),
+ printf (_(" (from '%s', line %lu):\n"),
cmds->fileinfo.filenm, cmds->fileinfo.lineno);
s = cmds->commands;
while (*s != '\0')
{
const char *end;
+ int bs;
- end = strchr (s, '\n');
- if (end == 0)
- end = s + strlen (s);
+ /* Print one full logical recipe line: find a non-escaped newline. */
+ for (end = s, bs = 0; *end != '\0'; ++end)
+ {
+ if (*end == '\n' && !bs)
+ break;
+
+ bs = *end == '\\' ? !bs : 0;
+ }
printf ("%c%.*s\n", cmd_prefix, (int) (end - s), s);
diff --git a/commands.h b/commands.h
index 24426fa..7829e40 100644
--- a/commands.h
+++ b/commands.h
@@ -1,7 +1,5 @@
/* Definition of data structures describing shell commands for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -21,19 +19,20 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
struct commands
{
- struct floc fileinfo; /* Where commands were defined. */
- char *commands; /* Commands text. */
- unsigned int ncommand_lines;/* Number of command lines. */
- char **command_lines; /* Commands chopped up into lines. */
- char *lines_flags; /* One set of flag bits for each line. */
- int any_recurse; /* Nonzero if any `lines_recurse' elt has */
- /* the COMMANDS_RECURSE bit set. */
+ gmk_floc fileinfo; /* Where commands were defined. */
+ char *commands; /* Commands text. */
+ char **command_lines; /* Commands chopped up into lines. */
+ char *lines_flags; /* One set of flag bits for each line. */
+ unsigned short ncommand_lines;/* Number of command lines. */
+ char recipe_prefix; /* Recipe prefix for this command set. */
+ unsigned int any_recurse:1; /* Nonzero if any 'lines_flags' elt has */
+ /* the COMMANDS_RECURSE bit set. */
};
-/* Bits in `lines_flags'. */
-#define COMMANDS_RECURSE 1 /* Recurses: + or $(MAKE). */
-#define COMMANDS_SILENT 2 /* Silent: @. */
-#define COMMANDS_NOERROR 4 /* No errors: -. */
+/* Bits in 'lines_flags'. */
+#define COMMANDS_RECURSE 1 /* Recurses: + or $(MAKE). */
+#define COMMANDS_SILENT 2 /* Silent: @. */
+#define COMMANDS_NOERROR 4 /* No errors: -. */
void execute_file_commands (struct file *file);
void print_commands (const struct commands *cmds);
diff --git a/config.ami b/config.ami
index 6d86c23..126a0e5 100644
--- a/config.ami
+++ b/config.ami
@@ -1,6 +1,5 @@
/* config.h -- hand-massaged for Amiga -*-C-*-
-Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1995-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -17,7 +16,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define if on AIX 3.
System headers sometimes define this.
- We just want to avoid a redefinition error message. */
+ We just want to avoid a redefinition error message. */
#ifndef _ALL_SOURCE
/* #undef _ALL_SOURCE */
#endif
@@ -38,14 +37,14 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define for DGUX with <sys/dg_sys_info.h>. */
/* #undef DGUX */
-/* Define if the `getloadavg' function needs to be run setuid or setgid. */
+/* Define if the 'getloadavg' function needs to be run setuid or setgid. */
/* #undef GETLOADAVG_PRIVILEGED */
-/* Define to `unsigned long' or `unsigned long long'
+/* Define to 'unsigned long' or 'unsigned long long'
if <inttypes.h> doesn't define. */
#define uintmax_t unsigned long
-/* Define to `int' if <sys/types.h> doesn't define. */
+/* Define to 'int' if <sys/types.h> doesn't define. */
#define gid_t int
/* Define if you have alloca, as a function or macro. */
@@ -54,25 +53,25 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
/* #undef HAVE_ALLOCA_H */
-/* Define if you don't have vprintf but do have _doprnt. */
-/* #undef HAVE_DOPRNT */
-
/* Define if your system has a working fnmatch function. */
/* #undef HAVE_FNMATCH */
-/* Define if your system has its own `getloadavg' function. */
+/* Define if your system has its own 'getloadavg' function. */
/* #undef HAVE_GETLOADAVG */
/* Define if you have the getmntent function. */
/* #undef HAVE_GETMNTENT */
-/* Define if the `long double' type works. */
+/* Embed GNU Guile support */
+/* #undef HAVE_GUILE */
+
+/* Define if the 'long double' type works. */
/* #undef HAVE_LONG_DOUBLE */
-/* Define if you support file names longer than 14 characters. */
+/* Define if you support file names longer than 14 characters. */
#define HAVE_LONG_FILE_NAMES 1
-/* Define if you have a working `mmap' system call. */
+/* Define if you have a working 'mmap' system call. */
/* #undef HAVE_MMAP */
/* Define if system calls automatically restart after interruption
@@ -85,7 +84,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define if your struct stat has st_blocks. */
/* #undef HAVE_ST_BLOCKS */
-/* Define if you have the strcoll function and it is properly defined. */
+/* Define if you have the strcoll function and it is properly defined. */
#define HAVE_STRCOLL 1
/* Define if your struct stat has st_rdev. */
@@ -94,7 +93,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define if you have the strftime function. */
#define HAVE_STRFTIME 1
-/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
+/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
/* #undef HAVE_SYS_WAIT_H */
/* Define if your struct tm has tm_zone. */
@@ -110,16 +109,10 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define if utime(file, NULL) sets file's timestamp to the present. */
/* #undef HAVE_UTIME_NULL */
-/* Define if you have <vfork.h>. */
-/* #undef HAVE_VFORK_H */
-
-/* Define if you have the vprintf function. */
-#define HAVE_VPRINTF 1
-
/* Define if you have the wait3 system call. */
/* #undef HAVE_WAIT3 */
-/* Define if on MINIX. */
+/* Define if on MINIX. */
/* #undef _MINIX */
/* Define if your struct nlist has an n_un member. */
@@ -131,7 +124,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define if your C compiler doesn't accept -c and -o together. */
/* #undef NO_MINUS_C_MINUS_O */
-/* Define to `int' if <sys/types.h> doesn't define. */
+/* Define to 'int' if <sys/types.h> doesn't define. */
#define pid_t int
/* Define if the system does not provide POSIX.1 features except
@@ -152,28 +145,25 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown
*/
#define STACK_DIRECTION -1
-/* Define if the `S_IS*' macros in <sys/stat.h> do not work properly. */
+/* Define if the 'S_IS*' macros in <sys/stat.h> do not work properly. */
/* #undef STAT_MACROS_BROKEN */
-/* Define if your compiler conforms to the ANSI C standard. */
-#define HAVE_ANSI_COMPILER 1
-
-/* Define if you have the ANSI C header files. */
+/* Define if you have the ANSI C header files. */
#define STDC_HEADERS
/* Define on System V Release 4. */
/* #undef SVR4 */
-/* Define if `sys_siglist' is declared by <signal.h>. */
+/* Define if 'sys_siglist' is declared by <signal.h>. */
/* #undef SYS_SIGLIST_DECLARED */
-/* Define to `int' if <sys/types.h> doesn't define. */
+/* Define to 'int' if <sys/types.h> doesn't define. */
#define uid_t int
/* Define for Encore UMAX. */
@@ -183,19 +173,16 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
instead of <sys/cpustats.h>. */
/* #undef UMAX4_3 */
-/* Define vfork as fork if vfork does not work. */
-/* #undef vfork */
-
/* Name of this package (needed by automake) */
#define PACKAGE "make"
/* Version of this package (needed by automake) */
-#define VERSION "3.82"
+#define VERSION "4.0"
-/* Define to the name of the SCCS `get' command. */
+/* Define to the name of the SCCS 'get' command. */
#define SCCS_GET "get"
-/* Define this if the SCCS `get' command understands the `-G<file>' option. */
+/* Define this if the SCCS 'get' command understands the '-G<file>' option. */
/* #undef SCCS_GET_MINUS_G */
/* Define this to enable job server support in GNU make. */
@@ -205,13 +192,13 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
if it exists. */
/* #undef ST_MTIM_NSEC */
-/* Define this if the C library defines the variable `sys_siglist'. */
+/* Define this if the C library defines the variable 'sys_siglist'. */
/* #undef HAVE_SYS_SIGLIST */
-/* Define this if the C library defines the variable `_sys_siglist'. */
+/* Define this if the C library defines the variable '_sys_siglist'. */
/* #undef HAVE__SYS_SIGLIST */
-/* Define this if you have the `union wait' type in <sys/wait.h>. */
+/* Define this if you have the 'union wait' type in <sys/wait.h>. */
/* #undef HAVE_UNION_WAIT */
/* Define if you have the dup2 function. */
@@ -247,7 +234,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define if you have the seteuid function. */
/* #undef HAVE_SETEUID */
-/* Define if you have the setlinebuf function. */
+/* Define if you have the setlinebuf function. */
/* #undef HAVE_SETLINEBUF */
/* Define if you have the setregid function. */
@@ -256,7 +243,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define if you have the setreuid function. */
/* #undef HAVE_SETREUID */
-/* Define if you have the sigsetmask function. */
+/* Define if you have the sigsetmask function. */
/* #undef HAVE_SIGSETMASK */
/* Define if you have the socket function. */
@@ -301,9 +288,6 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define if you have the <ndir.h> header file. */
/* #undef HAVE_NDIR_H */
-/* Define to 1 if you have the <stdarg.h> header file. */
-#define HAVE_STDARG_H 1
-
/* Define if you have the <stdlib.h> header file. */
/* #undef HAVE_STDLIB_H */
@@ -337,6 +321,9 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define if you have the sun library (-lsun). */
/* #undef HAVE_LIBSUN */
+/* Output sync sypport */
+#define NO_OUTPUT_SYNC
+
/* Define for Case Insensitve behavior */
#define HAVE_CASE_INSENSITIVE_FS
diff --git a/config.h-vms b/config.h-vms
index a6f19b6..8d307ee 100644
--- a/config.h-vms
+++ b/config.h-vms
@@ -1,7 +1,6 @@
/* config.h-vms. Generated by hand by Klaus Kämpf <kkaempf@rmi.de> -*-C-*-
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -17,7 +16,7 @@ You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
/* config.h. Generated automatically by configure. */
-/* config.h.in. Generated automatically from configure.in by autoheader. */
+/* config.h.in. Generated automatically from configure.ac by autoheader. */
/* Define to 1 if on AIX 3.
System headers sometimes define this.
@@ -35,6 +34,9 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define as 1 if you have gettext and don't want to use GNU gettext. */
/* #undef HAVE_GETTEXT */
+/* Embed GNU Guile support */
+/* #undef HAVE_GUILE */
+
/* Define to 1 if your locale.h file contains LC_MESSAGES. */
/* #undef HAVE_LC_MESSAGES */
@@ -57,14 +59,14 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define for DGUX with <sys/dg_sys_info.h>. */
/* #undef DGUX */
-/* Define to 1 if the `getloadavg' function needs to be run setuid or setgid. */
+/* Define to 1 if the 'getloadavg' function needs to be run setuid or setgid. */
/* #undef GETLOADAVG_PRIVILEGED */
-/* Define to `unsigned long' or `unsigned long long'
+/* Define to 'unsigned long' or 'unsigned long long'
if <inttypes.h> doesn't define. */
#define uintmax_t unsigned long
-/* Define to `int' if <sys/types.h> doesn't define. */
+/* Define to 'int' if <sys/types.h> doesn't define. */
/* #undef gid_t */
/* Define to 1 if you have alloca, as a function or macro. */
@@ -73,28 +75,25 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix). */
/* #undef HAVE_ALLOCA_H */
-/* Define to 1 if you don't have vprintf but do have _doprnt. */
-/* #undef HAVE_DOPRNT */
-
/* Define to 1 if you have the fdopen function. */
#define HAVE_FDOPEN 1
/* Define to 1 if your system has a working fnmatch function. */
/* #undef HAVE_FNMATCH */
-/* Define to 1 if your system has its own `getloadavg' function. */
+/* Define to 1 if your system has its own 'getloadavg' function. */
/* #undef HAVE_GETLOADAVG */
/* Define to 1 if you have the getmntent function. */
/* #undef HAVE_GETMNTENT */
-/* Define to 1 if the `long double' type works. */
+/* Define to 1 if the 'long double' type works. */
/* #undef HAVE_LONG_DOUBLE */
/* Define to 1 if you support file names longer than 14 characters. */
#define HAVE_LONG_FILE_NAMES 1
-/* Define to 1 if you have a working `mmap' system call. */
+/* Define to 1 if you have a working 'mmap' system call. */
/* #undef HAVE_MMAP */
/* Define to 1 if system calls automatically restart after interruption
@@ -110,6 +109,11 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have the strcoll function and it is properly defined. */
/* #undef HAVE_STRCOLL */
+/* Define to 1 if you have the strncasecmp' function. */
+#if __CRTL_VER >= 70000000
+#define HAVE_STRNCASECMP 1
+#endif
+
/* Define to 1 if your struct stat has st_rdev. */
/* #undef HAVE_ST_RDEV */
@@ -134,12 +138,6 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if utime(file, NULL) sets file's timestamp to the present. */
/* #undef HAVE_UTIME_NULL */
-/* Define to 1 if you have <vfork.h>. */
-/* #undef HAVE_VFORK_H */
-
-/* Define to 1 if you have the vprintf function. */
-#define HAVE_VPRINTF 1
-
/* Define to 1 if you have the wait3 system call. */
/* #undef HAVE_WAIT3 */
@@ -155,7 +153,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
/* #undef NO_MINUS_C_MINUS_O */
-/* Define to `int' if <sys/types.h> doesn't define. */
+/* Define to 'int' if <sys/types.h> doesn't define. */
/* I assume types.h is available for all 5.0 cc/cxx compilers */
#if __DECC_VER < 50090000
#define pid_t int
@@ -179,13 +177,13 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at run-time.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown
*/
/* #undef STACK_DIRECTION */
-/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
+/* Define to 1 if the 'S_IS*' macros in <sys/stat.h> do not work properly. */
/* #undef STAT_MACROS_BROKEN */
/* Define to 1 if you have the ANSI C header files. */
@@ -194,10 +192,10 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define on System V Release 4. */
/* #undef SVR4 */
-/* Define to 1 if `sys_siglist' is declared by <signal.h>. */
+/* Define to 1 if 'sys_siglist' is declared by <signal.h>. */
/* #undef SYS_SIGLIST_DECLARED */
-/* Define to `int' if <sys/types.h> doesn't define. */
+/* Define to 'int' if <sys/types.h> doesn't define. */
#if __DECC_VER < 50090000
#define uid_t int
#endif
@@ -209,19 +207,16 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
instead of <sys/cpustats.h>. */
/* #undef UMAX4_3 */
-/* Define vfork as fork if vfork does not work. */
-/* #undef vfork */
-
/* Name of this package (needed by automake) */
#define PACKAGE "make"
/* Version of this package (needed by automake) */
-#define VERSION "3.82"
+#define VERSION "4.0"
-/* Define to the name of the SCCS `get' command. */
+/* Define to the name of the SCCS 'get' command. */
/* #undef SCCS_GET */
-/* Define this if the SCCS `get' command understands the `-G<file>' option. */
+/* Define this if the SCCS 'get' command understands the '-G<file>' option. */
/* #undef SCCS_GET_MINUS_G */
/* Define this to enable job server support in GNU make. */
@@ -231,13 +226,13 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
if it exists. */
/* #undef ST_MTIM_NSEC */
-/* Define to 1 if the C library defines the variable `sys_siglist'. */
+/* Define to 1 if the C library defines the variable 'sys_siglist'. */
/* #undefine HAVE_SYS_SIGLIST */
-/* Define to 1 if the C library defines the variable `_sys_siglist'. */
+/* Define to 1 if the C library defines the variable '_sys_siglist'. */
/* #undef HAVE__SYS_SIGLIST */
-/* Define to 1 if you have the `union wait' type in <sys/wait.h>. */
+/* Define to 1 if you have the 'union wait' type in <sys/wait.h>. */
/* #undef HAVE_UNION_WAIT */
/* Define to 1 if you have the dup2 function. */
@@ -255,9 +250,6 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have the gethostname function. */
/* #undef HAVE_GETHOSTNAME */
-/* Define to 1 if you have the getloadavg function. */
-/* #undef HAVE_GETLOADAVG */
-
/* Define to 1 if you have the memmove function. */
#define HAVE_MEMMOVE 1
@@ -332,12 +324,6 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have the <ndir.h> header file. */
/* #undef HAVE_NDIR_H */
-/* Define to 1 if your compiler conforms to the ANSI C standard. */
-#define HAVE_ANSI_COMPILER 1
-
-/* Define to 1 if you have the <stdarg.h> header file. */
-#define HAVE_STDARG_H 1
-
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
@@ -420,10 +406,13 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define if using alloca.c. */
/* #undef C_ALLOCA */
-/* maybe this should be placed into make.h */
-#if defined(__VAX) && defined(__DECC)
-#define alloca(n) __ALLOCA(n)
+/* maybe this should be placed into makeint.h */
+#if defined(__VAX) && defined(__DECC)
+#define alloca(n) __ALLOCA(n)
#endif
+/* Output sync sypport */
+#define NO_OUTPUT_SYNC
+
/* Build host information. */
#define MAKE_HOST "VMS"
diff --git a/config.h.W32 b/config.h.W32
index 4ac84f7..664816d 100644
--- a/config.h.W32
+++ b/config.h.W32
@@ -1,7 +1,6 @@
/* config.h.W32 -- hand-massaged config.h file for Windows builds -*-C-*-
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -28,19 +27,19 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
# define _CRT_NONSTDC_NO_WARNINGS /* functions w/o a leading underscore */
#endif
-/* Define to 1 if the `closedir' function returns void instead of `int'. */
+/* Define to 1 if the 'closedir' function returns void instead of 'int'. */
/* #undef CLOSEDIR_VOID */
-/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
- systems. This function is required for `alloca.c' support on those systems.
+/* Define to one of '_getb67', 'GETB67', 'getb67' for Cray-2 and Cray-YMP
+ systems. This function is required for 'alloca.c' support on those systems.
*/
/* #undef CRAY_STACKSEG_END */
-/* Define to 1 if using `alloca.c'. */
+/* Define to 1 if using 'alloca.c'. */
/* #undef C_ALLOCA */
-/* Define to 1 if using `getloadavg.c'. */
-/*#define C_GETLOADAVG 1*/
+/* Define to 1 if using 'getloadavg.c'. */
+#define C_GETLOADAVG 1
/* Define to 1 for DGUX with <sys/dg_sys_info.h>. */
/* #undef DGUX */
@@ -52,34 +51,51 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Use high resolution file timestamps if nonzero. */
#define FILE_TIMESTAMP_HI_RES 0
-/* Define to 1 if the `getloadavg' function needs to be run setuid or setgid.
+/* Define to 1 if the 'getloadavg' function needs to be run setuid or setgid.
*/
/* #undef GETLOADAVG_PRIVILEGED */
-/* Define to 1 if you have `alloca', as a function or macro. */
+/* Define to 1 if you have 'alloca', as a function or macro. */
#define HAVE_ALLOCA 1
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
*/
/* #undef HAVE_ALLOCA_H */
-/* Define if your compiler conforms to the ANSI C standard. */
-#define HAVE_ANSI_COMPILER 1
-
-/* Define to 1 if you have the `bsd_signal' function. */
-/* #undef HAVE_BSD_SIGNAL */
+/* Define to 1 if you have the 'atexit' function. */
+#define HAVE_ATEXIT 1
/* Use case insensitive file names */
/* #undef HAVE_CASE_INSENSITIVE_FS */
-/* Define if you have the clock_gettime function. */
+/* Define to 1 if you have the clock_gettime function. */
/* #undef HAVE_CLOCK_GETTIME */
+/* Embed GNU Guile support. Windows build sets this on the
+ compilation command line. */
+/* #undef HAVE_GUILE */
+
/* Define if the GNU dcgettext() function is already present or preinstalled.
*/
/* #undef HAVE_DCGETTEXT */
-/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+/* Define to 1 if you have the declaration of 'bsd_signal', and to 0 if you
+ don't. */
+#define HAVE_DECL_BSD_SIGNAL 0
+
+/* Define to 1 if you have the declaration of 'sys_siglist', and to 0 if you
+ don't. */
+#define HAVE_DECL_SYS_SIGLIST 0
+
+/* Define to 1 if you have the declaration of '_sys_siglist', and to 0 if you
+ don't. */
+#define HAVE_DECL__SYS_SIGLIST 0
+
+/* Define to 1 if you have the declaration of '__sys_siglist', and to 0 if you
+ don't. */
+#define HAVE_DECL___SYS_SIGLIST 0
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines 'DIR'.
*/
#define HAVE_DIRENT_H 1
@@ -90,58 +106,61 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
# define HAVE_DIRECT_H 1
#endif
-/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
-/* #undef HAVE_DOPRNT */
-
/* Use platform specific coding */
#define HAVE_DOS_PATHS 1
-/* Define to 1 if you have the `dup2' function. */
+/* Define to 1 if you have the 'dup2' function. */
#define HAVE_DUP2 1
/* Define to 1 if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1
-/* Define to 1 if you have the `fdopen' function. */
-/*#define HAVE_FDOPEN 1*/
+/* Define to 1 if you have the 'fdopen' function. */
+#ifdef __MINGW32__
+#define HAVE_FDOPEN 1
+#endif
-/* Define to 1 if you have the `fork' function. */
-/* #undef HAVE_FORK */
+/* Define to 1 if you have the 'fileno' function. */
+#define HAVE_FILENO 1
-/* Define to 1 if you have the `getcwd' function. */
+/* Define to 1 if you have the 'getcwd' function. */
#define HAVE_GETCWD 1
-/* Define to 1 if you have the `getgroups' function. */
+/* Define to 1 if you have the 'getgroups' function. */
/* #undef HAVE_GETGROUPS */
-/* Define to 1 if you have the `gethostbyname' function. */
+/* Define to 1 if you have the 'gethostbyname' function. */
/* #undef HAVE_GETHOSTBYNAME */
-/* Define to 1 if you have the `gethostname' function. */
+/* Define to 1 if you have the 'gethostname' function. */
/* #undef HAVE_GETHOSTNAME */
-/* Define to 1 if you have the `getloadavg' function. */
+/* Define to 1 if you have the 'getloadavg' function. */
/* #undef HAVE_GETLOADAVG */
-/* Define to 1 if you have the `getrlimit' function. */
+/* Define to 1 if you have the 'getrlimit' function. */
/* #undef HAVE_GETRLIMIT */
/* Define if the GNU gettext() function is already present or preinstalled. */
/* #undef HAVE_GETTEXT */
-/* Define if you have a standard gettimeofday function */
-/* #undef HAVE_GETTIMEOFDAY */
+/* Define to 1 if you have a standard gettimeofday function */
+#ifdef __MINGW32__
+#define HAVE_GETTIMEOFDAY 1
+#endif
/* Define if you have the iconv() function. */
/* #undef HAVE_ICONV */
/* Define to 1 if you have the <inttypes.h> header file. */
-/*#define HAVE_INTTYPES_H 1*/
+#ifdef __MINGW32__
+#define HAVE_INTTYPES_H 1
+#endif
-/* Define to 1 if you have the `dgc' library (-ldgc). */
+/* Define to 1 if you have the 'dgc' library (-ldgc). */
/* #undef HAVE_LIBDGC */
-/* Define to 1 if you have the `kstat' library (-lkstat). */
+/* Define to 1 if you have the 'kstat' library (-lkstat). */
/* #undef HAVE_LIBKSTAT */
/* Define to 1 if you have the <limits.h> header file. */
@@ -150,195 +169,196 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have the <locale.h> header file. */
/*#define HAVE_LOCALE_H 1*/
+/* Define to 1 if you have the 'lstat' function. */
+/* #undef HAVE_LSTAT */
+
/* Define to 1 if you have the <mach/mach.h> header file. */
/* #undef HAVE_MACH_MACH_H */
-/* Define to 1 if you have the `memmove' function. */
-#define HAVE_MEMMOVE 1
-
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
-/* Define to 1 if you have the `mkstemp' function. */
+/* Define to 1 if you have the 'mkstemp' function. */
/* #undef HAVE_MKSTEMP */
-/* Define to 1 if you have the `mktemp' function. */
+/* Define to 1 if you have the 'mktemp' function. */
#define HAVE_MKTEMP 1
-/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+/* Define to 1 if you have the <ndir.h> header file, and it defines 'DIR'. */
/* #undef HAVE_NDIR_H */
/* Define to 1 if you have the <nlist.h> header file. */
/* #undef HAVE_NLIST_H */
-/* Define to 1 if you have the `pipe' function. */
+/* Define to 1 if you have the 'pipe' function. */
/* #undef HAVE_PIPE */
-/* Define to 1 if you have the `pstat_getdynamic' function. */
+/* Define to 1 if you have the 'pstat_getdynamic' function. */
/* #undef HAVE_PSTAT_GETDYNAMIC */
-/* Define to 1 if you have the `realpath' function. */
+/* Define to 1 if you have the 'readlink' function. */
+/* #undef HAVE_READLINK */
+
+/* Define to 1 if you have the 'realpath' function. */
/* #undef HAVE_REALPATH */
-/* Define if <signal.h> defines the SA_RESTART constant. */
+/* Define to 1 if <signal.h> defines the SA_RESTART constant. */
/* #undef HAVE_SA_RESTART */
-/* Define to 1 if you have the `setegid' function. */
+/* Define to 1 if you have the 'setegid' function. */
/* #undef HAVE_SETEGID */
-/* Define to 1 if you have the `seteuid' function. */
+/* Define to 1 if you have the 'seteuid' function. */
/* #undef HAVE_SETEUID */
-/* Define to 1 if you have the `setlinebuf' function. */
+/* Define to 1 if you have the 'setlinebuf' function. */
/* #undef HAVE_SETLINEBUF */
-/* Define to 1 if you have the `setlocale' function. */
+/* Define to 1 if you have the 'setlocale' function. */
/*#define HAVE_SETLOCALE 1*/
-/* Define to 1 if you have the `setregid' function. */
+/* Define to 1 if you have the 'setregid' function. */
/* #undef HAVE_SETREGID */
-/* Define to 1 if you have the `setreuid' function. */
+/* Define to 1 if you have the 'setreuid' function. */
/* #undef HAVE_SETREUID */
-/* Define to 1 if you have the `setrlimit' function. */
+/* Define to 1 if you have the 'setrlimit' function. */
/* #undef HAVE_SETRLIMIT */
-/* Define to 1 if you have the `setvbuf' function. */
-/*#define HAVE_SETVBUF 1 */
+/* Define to 1 if you have the 'setvbuf' function. */
+#define HAVE_SETVBUF 1
-/* Define to 1 if you have the `sigaction' function. */
+/* Define to 1 if you have the 'sigaction' function. */
/* #undef HAVE_SIGACTION */
-/* Define to 1 if you have the `sigsetmask' function. */
+/* Define to 1 if you have the 'sigsetmask' function. */
/* #undef HAVE_SIGSETMASK */
-/* Define to 1 if you have the `socket' function. */
+/* Define to 1 if you have the 'socket' function. */
/* #undef HAVE_SOCKET */
-/* Define to 1 if you have the <stdarg.h> header file. */
-#define HAVE_STDARG_H 1
-
/* Define to 1 if you have the <stdint.h> header file. */
-/*#define HAVE_STDINT_H 1*/
+#ifdef __MINGW32__
+#define HAVE_STDINT_H 1
+#endif
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
-/* Define to 1 if you have the `strcasecmp' function. */
-/* #undef HAVE_STRCASECMP */
-
-/* Define to 1 if you have the `strcmpi' function. */
-/* #undef HAVE_STRCMPI */
-
-/* Define to 1 if you have the `stricmp' function. */
-#define HAVE_STRICMP 1
-
-/* Define to 1 if you have the `strncasecmp' function. */
-/* #undef HAVE_STRNCASECMP */
-
-/* Define to 1 if you have the `strncmpi' function. */
-/* #undef HAVE_STRNCMPI */
-
-/* Define to 1 if you have the `strnicmp' function. */
-#define HAVE_STRNICMP 1
+/* Define to 1 if you have the 'strcasecmp' function. */
+#ifdef __MINGW32__
+#define HAVE_STRCASECMP 1
+#endif
-/* Define to 1 if you have the `strchr' function. */
-#define HAVE_STRCHR 1
+/* Define to 1 if you have the 'strcmpi' function. */
+#define HAVE_STRCMPI 1
-/* Define to 1 if you have the `strcoll' function and it is properly defined.
+/* Define to 1 if you have the 'strcoll' function and it is properly defined.
*/
#define HAVE_STRCOLL 1
-/* Define to 1 if you have the `strdup' function. */
-/* #define HAVE_STRDUP 1*/
+/* Define to 1 if you have the 'strdup' function. */
+#define HAVE_STRDUP 1
-/* Define to 1 if you have the `strerror' function. */
+/* Define to 1 if you have the 'strerror' function. */
#define HAVE_STRERROR 1
+/* Define to 1 if you have the 'stricmp' function. */
+#define HAVE_STRICMP 1
+
/* Define to 1 if you have the <strings.h> header file. */
/* #define HAVE_STRINGS_H 1 */
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
-/* Define to 1 if you have the `strsignal' function. */
+/* Define to 1 if you have the 'strncasecmp' function. */
+#ifdef __MINGW32__
+#define HAVE_STRNCASECMP 1
+#endif
+
+/* Define to 1 if you have the 'strncmpi' function. */
+/* #undef HAVE_STRNCMPI */
+
+/* Define to 1 if you have the 'strndup' function. */
+/* #undef HAVE_STRNDUP */
+
+/* Define to 1 if you have the 'strnicmp' function. */
+#ifdef __MINGW32__
+#define HAVE_STRNICMP 1
+#endif
+
+/* Define to 1 if you have the 'strsignal' function. */
/* #undef HAVE_STRSIGNAL */
-/* Define to 1 if `n_un.n_name' is member of `struct nlist'. */
+/* Define to 1 if 'n_un.n_name' is a member of 'struct nlist'. */
/* #undef HAVE_STRUCT_NLIST_N_UN_N_NAME */
-/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines 'DIR'.
*/
/* #undef HAVE_SYS_DIR_H */
-/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines 'DIR'.
*/
/* #undef HAVE_SYS_NDIR_H */
/* Define to 1 if you have the <sys/param.h> header file. */
-/* #define HAVE_SYS_PARAM_H 1 */
+#ifdef __MINGW32__
+#define HAVE_SYS_PARAM_H 1
+#endif
/* Define to 1 if you have the <sys/resource.h> header file. */
/* #undef HAVE_SYS_RESOURCE_H */
/* Define to 1 if you have the <sys/stat.h> header file. */
-/* #define HAVE_SYS_STAT_H 1 */
+#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/timeb.h> header file. */
-/*#define HAVE_SYS_TIMEB_H 1*/
+#define HAVE_SYS_TIMEB_H 1
/* Define to 1 if you have the <sys/time.h> header file. */
-/*#define HAVE_SYS_TIME_H 1*/
+#ifdef __MINGW32__
+#define HAVE_SYS_TIME_H 1
+#endif
/* Define to 1 if you have the <sys/types.h> header file. */
-/*#define HAVE_SYS_TYPES_H 1*/
+#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <sys/wait.h> header file. */
/* #undef HAVE_SYS_WAIT_H */
-/* Define this if you have the \`union wait' type in <sys/wait.h>. */
+/* Define to 1 if you have the \'union wait' type in <sys/wait.h>. */
/* #undef HAVE_UNION_WAIT */
/* Define to 1 if you have the <unistd.h> header file. */
-/* #define HAVE_UNISTD_H 1*/
-
-/* Define to 1 if you have the <varargs.h> header file. */
-/* #undef HAVE_VARARGS_H */
-
-/* Define to 1 if you have the `vfork' function. */
-/* #undef HAVE_VFORK */
-
-/* Define to 1 if you have the <vfork.h> header file. */
-/* #undef HAVE_VFORK_H */
-
-/* Define to 1 if you have the `vprintf' function. */
-#define HAVE_VPRINTF 1
-
+#ifdef __MINGW32__
+#define HAVE_UNISTD_H 1
+#endif
-/* Define to 1 if you have the `wait3' function. */
+/* Define to 1 if you have the 'wait3' function. */
/* #undef HAVE_WAIT3 */
-/* Define to 1 if you have the `waitpid' function. */
+/* Define to 1 if you have the 'waitpid' function. */
/* #undef HAVE_WAITPID */
-/* Define to 1 if `fork' works. */
-/* #undef HAVE_WORKING_FORK */
-
-/* Define to 1 if `vfork' works. */
-/* #undef HAVE_WORKING_VFORK */
-
/* Build host information. */
#define MAKE_HOST "Windows32"
-/* Define this to enable job server support in GNU make. */
-/* #undef MAKE_JOBSERVER */
+/* Define to 1 to enable job server support in GNU make. */
+#define MAKE_JOBSERVER 1
+
+/* Define to 1 to enable 'load' support in GNU make. */
+#define MAKE_LOAD 1
-/* Define to 1 if your `struct nlist' has an `n_un' member. Obsolete, depend
- on `HAVE_STRUCT_NLIST_N_UN_N_NAME */
+/* Define to 1 to enable symbolic link timestamp checking. */
+/* #undef MAKE_SYMLINKS */
+
+/* Define to 1 if your 'struct nlist' has an 'n_un' member. Obsolete, depend
+ on 'HAVE_STRUCT_NLIST_N_UN_N_NAME */
/* #undef NLIST_NAME_UNION */
-/* Define if struct nlist.n_name is a pointer rather than an array. */
+/* Define to 1 if struct nlist.n_name is a pointer rather than an array. */
/* #undef NLIST_STRUCT */
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
@@ -347,10 +367,22 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Name of this package (needed by automake) */
#define PACKAGE "make"
-/* Define to 1 if the C compiler supports function prototypes. */
-#define PROTOTYPES 1
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "bug-make@gnu.org"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "GNU make"
-/* Define as the return type of signal handlers (`int' or `void'). */
+/* Define to the home page for this package. */
+#define PACKAGE_URL "http://www.gnu.org/software/make/"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "4.0"
+
+/* Define to the character that separates directories in PATH. */
+#define PATH_SEPARATOR_CHAR ';'
+
+/* Define as the return type of signal handlers ('int' or 'void'). */
#define RETSIGTYPE void
/* Define to the name of the SCCS 'get' command. */
@@ -359,20 +391,20 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define this if the SCCS 'get' command understands the '-G<file>' option. */
/* #undef SCCS_GET_MINUS_G */
-/* Define to 1 if the `setvbuf' function takes the buffering type as its
+/* Define to 1 if the 'setvbuf' function takes the buffering type as its
second argument and the buffer pointer as the third, as on System V before
release 3. */
/* #undef SETVBUF_REVERSED */
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
- automatically deduced at run-time.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown */
+ automatically deduced at run time.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown */
/* #undef STACK_DIRECTION */
-/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
+/* Define to 1 if the 'S_IS*' macros in <sys/stat.h> do not work properly. */
/* #undef STAT_MACROS_BROKEN */
/* Define to 1 if you have the ANSI C header files. */
@@ -385,7 +417,9 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* #undef SVR4 */
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-/* #define TIME_WITH_SYS_TIME 1 */
+#ifdef __MINGW32__
+#define TIME_WITH_SYS_TIME 1
+#endif
/* Define to 1 for Encore UMAX. */
/* #undef UMAX */
@@ -395,7 +429,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* #undef UMAX4_3 */
/* Version number of package */
-#define VERSION "3.82"
+#define VERSION "4.0"
/* Define if using the dmalloc debugging malloc package */
/* #undef WITH_DMALLOC */
@@ -420,21 +454,18 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
this defined. */
/* #undef _POSIX_1_SOURCE */
-/* Define to 1 if you need to in order for `stat' and other things to work. */
-#define _POSIX_SOURCE 1
+/* Define to 1 if you need to in order for 'stat' and other things to work. */
+/* #undef _POSIX_SOURCE */
-/* Define like PROTOTYPES; this can be used by system headers. */
-/*#define __PROTOTYPES 1*/
-
-/* Define to empty if `const' does not conform to ANSI C. */
+/* Define to empty if 'const' does not conform to ANSI C. */
/* #undef const */
#include <sys/types.h>
-/* Define to `int' if <sys/types.h> doesn't define. */
+/* Define to 'int' if <sys/types.h> doesn't define. */
#define gid_t int
-/* Define to `int' if <sys/types.h> does not define. */
+/* Define to 'int' if <sys/types.h> does not define. */
/* GCC 4.x reportedly defines pid_t. */
#ifndef _PID_T_
#ifdef _WIN64
@@ -444,45 +475,17 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
#endif
#endif
-/* Define to `int' if <sys/types.h> doesn't define. */
+/* Define to 'int' if <sys/types.h> doesn't define. */
#define uid_t int
/* Define uintmax_t if not defined in <stdint.h> or <inttypes.h>. */
+#if !HAVE_STDINT_H && !HAVE_INTTYPES_H
#define uintmax_t unsigned long
-
-/* Define as `fork' if `vfork' does not work. */
-/*#define vfork fork*/
-
-/* Define to `unsigned long' or `unsigned long long'
- if <inttypes.h> doesn't define. */
-#define uintmax_t unsigned long
-
-/* Define if you support file names longer than 14 characters. */
-#define HAVE_LONG_FILE_NAMES 1
-
-/* Define if your struct stat has st_rdev. */
-#undef HAVE_ST_RDEV
-#define HAVE_ST_RDEV 1
-
-/* Define if you have the strftime function. */
-#undef HAVE_STRFTIME
-#define HAVE_STRFTIME 1
+#endif
/* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
/* #undef HAVE_SYS_WAIT_H */
-/* Define if your struct tm has tm_zone. */
-/* #undef HAVE_TM_ZONE */
-
-/* Define if you don't have tm_zone but do have the external array
- tzname. */
-#undef HAVE_TZNAME
-#define HAVE_TZNAME 1
-
-/* Define if utime(file, NULL) sets file's timestamp to the present. */
-#undef HAVE_UTIME_NULL
-#define HAVE_UTIME_NULL 1
-
/* Define to the installation directory for locales. */
#define LOCALEDIR ""
diff --git a/config.h.in b/config.h.in
index da28f93..bd6843f 100644
--- a/config.h.in
+++ b/config.h.in
@@ -1,4 +1,4 @@
-/* config.h.in. Generated from configure.in by autoheader. */
+/* config.h.in. Generated from configure.ac by autoheader. */
/* Define to 1 if the `closedir' function returns void instead of `int'. */
#undef CLOSEDIR_VOID
@@ -35,15 +35,20 @@
*/
#undef HAVE_ALLOCA_H
-/* Define to 1 if your compiler conforms to the ANSI C standard. */
-#undef HAVE_ANSI_COMPILER
-
/* Define to 1 if you have the `atexit' function. */
#undef HAVE_ATEXIT
/* Use case insensitive file names */
#undef HAVE_CASE_INSENSITIVE_FS
+/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
+ CoreFoundation framework. */
+#undef HAVE_CFLOCALECOPYCURRENT
+
+/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
+ the CoreFoundation framework. */
+#undef HAVE_CFPREFERENCESCOPYAPPVALUE
+
/* Define to 1 if you have the clock_gettime function. */
#undef HAVE_CLOCK_GETTIME
@@ -55,6 +60,18 @@
don't. */
#undef HAVE_DECL_BSD_SIGNAL
+/* Define to 1 if you have the declaration of `dlerror', and to 0 if you
+ don't. */
+#undef HAVE_DECL_DLERROR
+
+/* Define to 1 if you have the declaration of `dlopen', and to 0 if you don't.
+ */
+#undef HAVE_DECL_DLOPEN
+
+/* Define to 1 if you have the declaration of `dlsym', and to 0 if you don't.
+ */
+#undef HAVE_DECL_DLSYM
+
/* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you
don't. */
#undef HAVE_DECL_SYS_SIGLIST
@@ -71,12 +88,12 @@
*/
#undef HAVE_DIRENT_H
-/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
-#undef HAVE_DOPRNT
-
/* Use platform specific coding */
#undef HAVE_DOS_PATHS
+/* Define to 1 if you have the `dup' function. */
+#undef HAVE_DUP
+
/* Define to 1 if you have the `dup2' function. */
#undef HAVE_DUP2
@@ -89,9 +106,6 @@
/* Define to 1 if you have the `fileno' function. */
#undef HAVE_FILENO
-/* Define to 1 if you have the `fork' function. */
-#undef HAVE_FORK
-
/* Define to 1 if you have the `getcwd' function. */
#undef HAVE_GETCWD
@@ -116,7 +130,10 @@
/* Define to 1 if you have a standard gettimeofday function */
#undef HAVE_GETTIMEOFDAY
-/* Define if you have the iconv() function. */
+/* Embed GNU Guile support */
+#undef HAVE_GUILE
+
+/* Define if you have the iconv() function and it works. */
#undef HAVE_ICONV
/* Define to 1 if you have the <inttypes.h> header file. */
@@ -203,9 +220,6 @@
/* Define to 1 if you have the `socket' function. */
#undef HAVE_SOCKET
-/* Define to 1 if you have the <stdarg.h> header file. */
-#undef HAVE_STDARG_H
-
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
@@ -284,42 +298,27 @@
/* Define to 1 if you have the <sys/wait.h> header file. */
#undef HAVE_SYS_WAIT_H
-/* Define to 1 if you have the \`union wait' type in <sys/wait.h>. */
+/* Define to 1 if you have the 'union wait' type in <sys/wait.h>. */
#undef HAVE_UNION_WAIT
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
-/* Define to 1 if you have the <varargs.h> header file. */
-#undef HAVE_VARARGS_H
-
-/* Define to 1 if you have the `vfork' function. */
-#undef HAVE_VFORK
-
-/* Define to 1 if you have the <vfork.h> header file. */
-#undef HAVE_VFORK_H
-
-/* Define to 1 if you have the `vprintf' function. */
-#undef HAVE_VPRINTF
-
/* Define to 1 if you have the `wait3' function. */
#undef HAVE_WAIT3
/* Define to 1 if you have the `waitpid' function. */
#undef HAVE_WAITPID
-/* Define to 1 if `fork' works. */
-#undef HAVE_WORKING_FORK
-
-/* Define to 1 if `vfork' works. */
-#undef HAVE_WORKING_VFORK
-
/* Build host information. */
#undef MAKE_HOST
/* Define to 1 to enable job server support in GNU make. */
#undef MAKE_JOBSERVER
+/* Define to 1 to enable 'load' support in GNU make. */
+#undef MAKE_LOAD
+
/* Define to 1 to enable symbolic link timestamp checking. */
#undef MAKE_SYMLINKS
@@ -427,6 +426,11 @@
/* Define if using the dmalloc debugging malloc package */
#undef WITH_DMALLOC
+/* Enable large inode numbers on Mac OS X 10.5. */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif
+
/* Number of bits in a file offset, on hosts where this is settable. */
#undef _FILE_OFFSET_BITS
@@ -452,11 +456,11 @@
/* Define to `int' if <sys/types.h> does not define. */
#undef pid_t
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+#undef size_t
+
/* Define to `int' if <sys/types.h> doesn't define. */
#undef uid_t
/* Define uintmax_t if not defined in <stdint.h> or <inttypes.h>. */
#undef uintmax_t
-
-/* Define as `fork' if `vfork' does not work. */
-#undef vfork
diff --git a/config/ChangeLog b/config/ChangeLog
index aed4694..4e3155b 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,8 @@
+2012-01-15 Paul Smith <psmith@gnu.org>
+
+ * dospaths.m4: Use AC_LANG_PROGRAM to encapsulate the test code.
+ Fixes Savannah bug #35256. Patch from Sebastian Pipping.
+
2006-03-09 Paul Smith <psmith@gnu.org>
* dospaths.m4: Add MSYS to the list of targets allowing DOS-style
@@ -28,8 +33,7 @@
* Makefile.am: New file.
-Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
-Foundation, Inc.
+Copyright (C) 2002-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/config/Makefile.am b/config/Makefile.am
index 203a5ee..f770e64 100644
--- a/config/Makefile.am
+++ b/config/Makefile.am
@@ -1,6 +1,5 @@
# -*-Makefile-*-, or close enough
-# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-# Software Foundation, Inc.
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
@@ -16,9 +15,4 @@
# You should have received a copy of the GNU General Public License along with
# this program. If not, see <http://www.gnu.org/licenses/>.
-EXTRA_DIST = codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 nls.m4 \
- intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 \
- isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \
- progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 longlong.m4 \
- dospaths.m4 po.m4 signed.m4 longdouble.m4 wchar_t.m4 \
- wint_t.m4 intmax.m4 printf-posix.m4 xsize.m4 size_max.m4
+# Autoconf / automake know how to handle this directory.
diff --git a/config/Makefile.in b/config/Makefile.in
index 41127d6..3a05524 100644
--- a/config/Makefile.in
+++ b/config/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,8 +16,7 @@
@SET_MAKE@
# -*-Makefile-*-, or close enough
-# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-# Software Foundation, Inc.
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
@@ -33,6 +32,23 @@
# You should have received a copy of the GNU General Public License along with
# this program. If not, see <http://www.gnu.org/licenses/>.
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -54,28 +70,41 @@ host_triplet = @host@
subdir = config
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog \
compile config.guess config.rpath config.sub depcomp \
- install-sh mdate-sh missing mkinstalldirs texinfo.tex
+ install-sh mdate-sh missing texinfo.tex
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/config/dospaths.m4 \
$(top_srcdir)/config/gettext.m4 $(top_srcdir)/config/iconv.m4 \
- $(top_srcdir)/config/isc-posix.m4 \
+ $(top_srcdir)/config/intlmacosx.m4 \
$(top_srcdir)/config/lib-ld.m4 \
$(top_srcdir)/config/lib-link.m4 \
$(top_srcdir)/config/lib-prefix.m4 $(top_srcdir)/config/nls.m4 \
$(top_srcdir)/config/po.m4 $(top_srcdir)/config/progtest.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AM_LDFLAGS = @AM_LDFLAGS@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -95,16 +124,21 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
GLOBINC = @GLOBINC@
GLOBLIB = @GLOBLIB@
GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
GREP = @GREP@
+GUILE_CFLAGS = @GUILE_CFLAGS@
+GUILE_LIBS = @GUILE_LIBS@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
KMEM_GROUP = @KMEM_GROUP@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -117,8 +151,8 @@ LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MAKE_HOST = @MAKE_HOST@
MKDIR_P = @MKDIR_P@
-MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
MSGMERGE = @MSGMERGE@
NEED_SETGID = @NEED_SETGID@
OBJEXT = @OBJEXT@
@@ -131,6 +165,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
REMOTE = @REMOTE@
@@ -140,6 +177,8 @@ STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -190,13 +229,6 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-EXTRA_DIST = codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 nls.m4 \
- intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 \
- isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \
- progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 longlong.m4 \
- dospaths.m4 po.m4 signed.m4 longdouble.m4 wchar_t.m4 \
- wint_t.m4 intmax.m4 printf-posix.m4 xsize.m4 size_max.m4
-
all: all-am
.SUFFIXES:
@@ -281,10 +313,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -375,6 +412,8 @@ uninstall-am:
mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
+# Autoconf / automake know how to handle this directory.
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/config/codeset.m4 b/config/codeset.m4
deleted file mode 100644
index 59535eb..0000000
--- a/config/codeset.m4
+++ /dev/null
@@ -1,23 +0,0 @@
-# codeset.m4 serial AM1 (gettext-0.10.40)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([AM_LANGINFO_CODESET],
-[
- AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
- [AC_TRY_LINK([#include <langinfo.h>],
- [char* cs = nl_langinfo(CODESET);],
- am_cv_langinfo_codeset=yes,
- am_cv_langinfo_codeset=no)
- ])
- if test $am_cv_langinfo_codeset = yes; then
- AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
- [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
- fi
-])
diff --git a/config/compile b/config/compile
index c0096a7..862a14e 100755
--- a/config/compile
+++ b/config/compile
@@ -1,10 +1,10 @@
#! /bin/sh
-# Wrapper for compilers which do not understand `-c -o'.
+# Wrapper for compilers which do not understand '-c -o'.
-scriptversion=2009-10-06.20; # UTC
+scriptversion=2012-03-05.13; # UTC
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software
-# Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
+# Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
@@ -29,21 +29,219 @@ scriptversion=2009-10-06.20; # UTC
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
+nl='
+'
+
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" "" $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+ file=$1
+ case $file in
+ / | /[!/]*) # absolute file, and not a UNC file
+ if test -z "$file_conv"; then
+ # lazily determine how to convert abs files
+ case `uname -s` in
+ MINGW*)
+ file_conv=mingw
+ ;;
+ CYGWIN*)
+ file_conv=cygwin
+ ;;
+ *)
+ file_conv=wine
+ ;;
+ esac
+ fi
+ case $file_conv/,$2, in
+ *,$file_conv,*)
+ ;;
+ mingw/*)
+ file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+ ;;
+ cygwin/*)
+ file=`cygpath -m "$file" || echo "$file"`
+ ;;
+ wine/*)
+ file=`winepath -w "$file" || echo "$file"`
+ ;;
+ esac
+ ;;
+ esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+ func_file_conv "$1"
+ if test -z "$lib_path"; then
+ lib_path=$file
+ else
+ lib_path="$lib_path;$file"
+ fi
+ linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+ lib=$1
+ found=no
+ save_IFS=$IFS
+ IFS=';'
+ for dir in $lib_path $LIB
+ do
+ IFS=$save_IFS
+ if $shared && test -f "$dir/$lib.dll.lib"; then
+ found=yes
+ lib=$dir/$lib.dll.lib
+ break
+ fi
+ if test -f "$dir/$lib.lib"; then
+ found=yes
+ lib=$dir/$lib.lib
+ break
+ fi
+ done
+ IFS=$save_IFS
+
+ if test "$found" != yes; then
+ lib=$lib.lib
+ fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+ # Assume a capable shell
+ lib_path=
+ shared=:
+ linker_opts=
+ for arg
+ do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ eat=1
+ case $2 in
+ *.o | *.[oO][bB][jJ])
+ func_file_conv "$2"
+ set x "$@" -Fo"$file"
+ shift
+ ;;
+ *)
+ func_file_conv "$2"
+ set x "$@" -Fe"$file"
+ shift
+ ;;
+ esac
+ ;;
+ -I)
+ eat=1
+ func_file_conv "$2" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -I*)
+ func_file_conv "${1#-I}" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -l)
+ eat=1
+ func_cl_dashl "$2"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -l*)
+ func_cl_dashl "${1#-l}"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -L)
+ eat=1
+ func_cl_dashL "$2"
+ ;;
+ -L*)
+ func_cl_dashL "${1#-L}"
+ ;;
+ -static)
+ shared=false
+ ;;
+ -Wl,*)
+ arg=${1#-Wl,}
+ save_ifs="$IFS"; IFS=','
+ for flag in $arg; do
+ IFS="$save_ifs"
+ linker_opts="$linker_opts $flag"
+ done
+ IFS="$save_ifs"
+ ;;
+ -Xlinker)
+ eat=1
+ linker_opts="$linker_opts $2"
+ ;;
+ -*)
+ set x "$@" "$1"
+ shift
+ ;;
+ *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+ func_file_conv "$1"
+ set x "$@" -Tp"$file"
+ shift
+ ;;
+ *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+ func_file_conv "$1" mingw
+ set x "$@" "$file"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+ done
+ if test -n "$linker_opts"; then
+ linker_opts="-link$linker_opts"
+ fi
+ exec "$@" $linker_opts
+ exit 1
+}
+
+eat=
+
case $1 in
'')
- echo "$0: No command. Try \`$0 --help' for more information." 1>&2
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: compile [--help] [--version] PROGRAM [ARGS]
-Wrapper for compilers which do not understand `-c -o'.
-Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
arguments, and rename the output as expected.
If you are trying to build a whole package this is not the
-right script to run: please start by reading the file `INSTALL'.
+right script to run: please start by reading the file 'INSTALL'.
Report bugs to <bug-automake@gnu.org>.
EOF
@@ -53,11 +251,13 @@ EOF
echo "compile $scriptversion"
exit $?
;;
+ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+ func_cl_wrapper "$@" # Doesn't return...
+ ;;
esac
ofile=
cfile=
-eat=
for arg
do
@@ -66,8 +266,8 @@ do
else
case $1 in
-o)
- # configure might choose to run compile as `compile cc -o foo foo.c'.
- # So we strip `-o arg' only if arg is an object.
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ # So we strip '-o arg' only if arg is an object.
eat=1
case $2 in
*.o | *.obj)
@@ -94,10 +294,10 @@ do
done
if test -z "$ofile" || test -z "$cfile"; then
- # If no `-o' option was seen then we might have been invoked from a
+ # If no '-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no
- # `.c' file was seen then we are probably linking. That is also
+ # '.c' file was seen then we are probably linking. That is also
# ok.
exec "$@"
fi
@@ -106,7 +306,7 @@ fi
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
# Create the lock directory.
-# Note: use `[/\\:.-]' here to ensure that we don't use the same name
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
diff --git a/config/config.guess b/config/config.guess
index 115f944..b79252d 100644
--- a/config/config.guess
+++ b/config/config.guess
@@ -1,14 +1,12 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-# Free Software Foundation, Inc.
+# Copyright 1992-2013 Free Software Foundation, Inc.
-timestamp='2010-04-03'
+timestamp='2013-06-10'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
@@ -17,26 +15,22 @@ timestamp='2010-04-03'
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner. Please send patches (context
-# diff format) to <config-patches@gnu.org> and include a ChangeLog
-# entry.
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
#
-# This script attempts to guess a canonical system name similar to
-# config.sub. If it succeeds, it prints the system name on stdout, and
-# exits with 0. Otherwise, it exits with 1.
+# Originally written by Per Bothner.
#
# You can get the latest version of this script from:
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+#
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+
me=`echo "$0" | sed -e 's,.*/,,'`
@@ -56,9 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-Software Foundation, Inc.
+Copyright 1992-2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -92,7 +84,7 @@ if test $# != 0; then
exit 1
fi
-trap 'exit 1' HUP INT TERM
+trap 'exit 1' 1 2 15
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
@@ -106,7 +98,7 @@ trap 'exit 1' HUP INT TERM
set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
@@ -140,12 +132,33 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ LIBC=gnu
+
+ eval $set_cc_for_build
+ cat <<-EOF > $dummy.c
+ #include <features.h>
+ #if defined(__UCLIBC__)
+ LIBC=uclibc
+ #elif defined(__dietlibc__)
+ LIBC=dietlibc
+ #else
+ LIBC=gnu
+ #endif
+ EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+ ;;
+esac
+
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
# switched to ELF, *-*-netbsd* would select the old
# object file format. This provides both forward
@@ -181,7 +194,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
fi
;;
*)
- os=netbsd
+ os=netbsd
;;
esac
# The OS release
@@ -202,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
exit ;;
+ *:Bitrig:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+ exit ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
@@ -224,7 +241,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
;;
*5.*)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
;;
esac
# According to Compaq, /usr/sbin/psrinfo has been available on
@@ -270,7 +287,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit ;;
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ exitcode=$?
+ trap '' 0
+ exit $exitcode ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
@@ -296,12 +316,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
echo s390-ibm-zvmoe
exit ;;
*:OS400:*:*)
- echo powerpc-ibm-os400
+ echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit ;;
- arm:riscos:*:*|arm:RISCOS:*:*)
+ arm*:riscos:*:*|arm*:RISCOS:*:*)
echo arm-unknown-riscos
exit ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
@@ -395,23 +415,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
+ exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit ;;
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit ;;
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit ;;
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit ;;
m68k:machten:*:*)
echo m68k-apple-machten${UNAME_RELEASE}
exit ;;
@@ -481,8 +501,8 @@ EOF
echo m88k-motorola-sysv3
exit ;;
AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
@@ -495,7 +515,7 @@ EOF
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
- exit ;;
+ exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit ;;
@@ -552,7 +572,7 @@ EOF
echo rs6000-ibm-aix3.2
fi
exit ;;
- *:AIX:*:[456])
+ *:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
@@ -595,52 +615,52 @@ EOF
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
- 532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
- 32) HP_ARCH="hppa2.0n" ;;
- 64) HP_ARCH="hppa2.0w" ;;
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
- esac ;;
- esac
+ esac ;;
+ esac
fi
if [ "${HP_ARCH}" = "" ]; then
eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ sed 's/^ //' << EOF >$dummy.c
- #define _HPUX_SOURCE
- #include <stdlib.h>
- #include <unistd.h>
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
EOF
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
test -z "$HP_ARCH" && HP_ARCH=hppa
@@ -731,22 +751,22 @@ EOF
exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
- exit ;;
+ exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
- exit ;;
+ exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
- exit ;;
+ exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
- exit ;;
+ exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
- exit ;;
+ exit ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
@@ -770,14 +790,14 @@ EOF
exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
5000:UNIX_System_V:4.*:*)
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
@@ -789,30 +809,35 @@ EOF
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit ;;
*:FreeBSD:*:*)
- case ${UNAME_MACHINE} in
- pc98)
- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ case ${UNAME_PROCESSOR} in
amd64)
echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
esac
exit ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
exit ;;
+ *:MINGW64*:*)
+ echo ${UNAME_MACHINE}-pc-mingw64
+ exit ;;
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
+ i*:MSYS*:*)
+ echo ${UNAME_MACHINE}-pc-msys
+ exit ;;
i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
*:Interix*:*)
- case ${UNAME_MACHINE} in
+ case ${UNAME_MACHINE} in
x86)
echo i586-pc-interix${UNAME_RELEASE}
exit ;;
@@ -849,15 +874,22 @@ EOF
exit ;;
*:GNU:*:*)
# the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
exit ;;
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
exit ;;
+ aarch64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ aarch64_be:Linux:*:*)
+ UNAME_MACHINE=aarch64_be
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;;
@@ -867,52 +899,56 @@ EOF
EV6) UNAME_MACHINE=alphaev6 ;;
EV67) UNAME_MACHINE=alphaev67 ;;
EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
+ esac
objdump --private-headers /bin/sh | grep -q ld.so.1
- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ arc:Linux:*:* | arceb:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
arm*:Linux:*:*)
eval $set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
else
- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+ else
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+ fi
fi
exit ;;
avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
cris:Linux:*:*)
- echo cris-axis-linux-gnu
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;;
crisv32:Linux:*:*)
- echo crisv32-axis-linux-gnu
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;;
frv:Linux:*:*)
- echo frv-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ hexagon:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
i*86:Linux:*:*)
- LIBC=gnu
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #ifdef __dietlibc__
- LIBC=dietlibc
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
exit ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
eval $set_cc_for_build
@@ -931,51 +967,63 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;;
+ or1k:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
or32:Linux:*:*)
- echo or32-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
padre:Linux:*:*)
- echo sparc-unknown-linux-gnu
+ echo sparc-unknown-linux-${LIBC}
exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-gnu
+ echo hppa64-unknown-linux-${LIBC}
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-gnu ;;
- PA8*) echo hppa2.0-unknown-linux-gnu ;;
- *) echo hppa-unknown-linux-gnu ;;
+ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+ *) echo hppa-unknown-linux-${LIBC} ;;
esac
exit ;;
ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
+ echo powerpc64-unknown-linux-${LIBC}
exit ;;
ppc:Linux:*:*)
- echo powerpc-unknown-linux-gnu
+ echo powerpc-unknown-linux-${LIBC}
+ exit ;;
+ ppc64le:Linux:*:*)
+ echo powerpc64le-unknown-linux-${LIBC}
+ exit ;;
+ ppcle:Linux:*:*)
+ echo powerpcle-unknown-linux-${LIBC}
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux
+ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
exit ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ tile*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-gnu
+ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
exit ;;
x86_64:Linux:*:*)
- echo x86_64-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -984,11 +1032,11 @@ EOF
echo i386-sequent-sysv4
exit ;;
i*86:UNIX_SV:4.2MP:2.*)
- # Unixware is an offshoot of SVR4, but it has its own version
- # number series starting with 2...
- # I am not positive that other SVR4 systems won't match this,
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
- # Use sysv4.2uw... so that sysv4* matches it.
+ # Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit ;;
i*86:OS/2:*:*)
@@ -1020,7 +1068,7 @@ EOF
fi
exit ;;
i*86:*:5:[678]*)
- # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
@@ -1048,13 +1096,13 @@ EOF
exit ;;
pc:*:*:*)
# Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i586.
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i586.
# Note: whatever this is, it MUST be the same as what config.sub
# prints for the "djgpp" host, or else GDB configury will decide that
# this is a cross-build.
echo i586-pc-msdosdjgpp
- exit ;;
+ exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
exit ;;
@@ -1089,8 +1137,8 @@ EOF
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4; exit; } ;;
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4; exit; } ;;
NCR*:*:4.2:* | MPRAS*:*:4.2:*)
OS_REL='.3'
test -r /etc/.relid \
@@ -1133,10 +1181,10 @@ EOF
echo ns32k-sni-sysv
fi
exit ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
@@ -1162,11 +1210,11 @@ EOF
exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
+ echo mips-nec-sysv${UNAME_RELEASE}
else
- echo mips-unknown-sysv${UNAME_RELEASE}
+ echo mips-unknown-sysv${UNAME_RELEASE}
fi
- exit ;;
+ exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
exit ;;
@@ -1179,6 +1227,9 @@ EOF
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
echo i586-pc-haiku
exit ;;
+ x86_64:Haiku:*:*)
+ echo x86_64-unknown-haiku
+ exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
exit ;;
@@ -1205,19 +1256,21 @@ EOF
exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- case $UNAME_PROCESSOR in
- i386)
- eval $set_cc_for_build
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- UNAME_PROCESSOR="x86_64"
- fi
- fi ;;
- unknown) UNAME_PROCESSOR=powerpc ;;
- esac
+ eval $set_cc_for_build
+ if test "$UNAME_PROCESSOR" = unknown ; then
+ UNAME_PROCESSOR=powerpc
+ fi
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
+ fi
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
@@ -1231,7 +1284,10 @@ EOF
*:QNX:*:4*)
echo i386-pc-qnx
exit ;;
- NSE-?:NONSTOP_KERNEL:*:*)
+ NEO-?:NONSTOP_KERNEL:*:*)
+ echo neo-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSE-*:NONSTOP_KERNEL:*:*)
echo nse-tandem-nsk${UNAME_RELEASE}
exit ;;
NSR-?:NONSTOP_KERNEL:*:*)
@@ -1276,13 +1332,13 @@ EOF
echo pdp10-unknown-its
exit ;;
SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
+ echo mips-sei-seiux${UNAME_RELEASE}
exit ;;
*:DragonFly:*:*)
echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit ;;
*:*VMS:*:*)
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
case "${UNAME_MACHINE}" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;
@@ -1300,11 +1356,11 @@ EOF
i*86:AROS:*:*)
echo ${UNAME_MACHINE}-pc-aros
exit ;;
+ x86_64:VMkernel:*:*)
+ echo ${UNAME_MACHINE}-unknown-esx
+ exit ;;
esac
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
eval $set_cc_for_build
cat >$dummy.c <<EOF
#ifdef _SEQUENT_
@@ -1322,11 +1378,11 @@ main ()
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
- "4"
+ "4"
#else
- ""
+ ""
#endif
- ); exit (0);
+ ); exit (0);
#endif
#endif
diff --git a/config/config.rpath b/config/config.rpath
index 4db13e5..17298f2 100755
--- a/config/config.rpath
+++ b/config/config.rpath
@@ -2,28 +2,13 @@
# Output a system dependent set of variables, describing how to set the
# run time search path of shared libraries in an executable.
#
-# Copyright 1996-2003 Free Software Foundation, Inc.
+# Copyright 1996-2010 Free Software Foundation, Inc.
# Taken from GNU libtool, 2001
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
#
# The first argument passed to this file is the canonical host specification,
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
@@ -40,7 +25,7 @@
# known workaround is to choose shorter directory names for the build
# directory and/or the installation directory.
-# All known linkers require a `.a' archive for static linking (except M$VC,
+# All known linkers require a `.a' archive for static linking (except MSVC,
# which needs '.lib').
libext=a
shrext=.so
@@ -50,7 +35,19 @@ host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
+# Code taken from libtool.m4's _LT_CC_BASENAME.
+
+for cc_temp in $CC""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
+
+# Code taken from libtool.m4's _LT_COMPILER_PIC.
wl=
if test "$GCC" = yes; then
@@ -60,7 +57,14 @@ else
aix*)
wl='-Wl,'
;;
- mingw* | pw32* | os2*)
+ darwin*)
+ case $cc_basename in
+ xlc*)
+ wl='-Wl,'
+ ;;
+ esac
+ ;;
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
;;
hpux9* | hpux10* | hpux11*)
wl='-Wl,'
@@ -70,20 +74,39 @@ else
;;
newsos6)
;;
- linux*)
- case $CC in
- icc|ecc)
+ linux* | k*bsd*-gnu)
+ case $cc_basename in
+ ecc*)
wl='-Wl,'
;;
- ccc)
+ icc* | ifort*)
wl='-Wl,'
;;
+ lf95*)
+ wl='-Wl,'
+ ;;
+ pgcc | pgf77 | pgf90)
+ wl='-Wl,'
+ ;;
+ ccc*)
+ wl='-Wl,'
+ ;;
+ como)
+ wl='-lopt='
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ wl='-Wl,'
+ ;;
+ esac
+ ;;
esac
;;
osf3* | osf4* | osf5*)
wl='-Wl,'
;;
- sco3.2v5*)
+ rdos*)
;;
solaris*)
wl='-Wl,'
@@ -91,17 +114,23 @@ else
sunos4*)
wl='-Qoption ld '
;;
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ sysv4 | sysv4.2uw2* | sysv4.3*)
wl='-Wl,'
;;
sysv4*MP*)
;;
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ wl='-Wl,'
+ ;;
+ unicos*)
+ wl='-Wl,'
+ ;;
uts4*)
;;
esac
fi
-# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
+# Code taken from libtool.m4's _LT_LINKER_SHLIBS.
hardcode_libdir_flag_spec=
hardcode_libdir_separator=
@@ -109,7 +138,7 @@ hardcode_direct=no
hardcode_minus_L=no
case "$host_os" in
- cygwin* | mingw* | pw32*)
+ cygwin* | mingw* | pw32* | cegcc*)
# FIXME: the MSVC++ port hasn't been tested in a loooong time
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
@@ -117,6 +146,10 @@ case "$host_os" in
with_gnu_ld=no
fi
;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
openbsd*)
with_gnu_ld=no
;;
@@ -124,8 +157,14 @@ esac
ld_shlibs=yes
if test "$with_gnu_ld" = yes; then
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ # Unlike libtool, we use -rpath here, not --rpath, since the documented
+ # option of GNU ld is called -rpath, not --rpath.
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
case "$host_os" in
- aix3* | aix4* | aix5*)
+ aix[3-9]*)
# On AIX/PPC, the GNU linker is very broken
if test "$host_cpu" != ia64; then
ld_shlibs=no
@@ -138,7 +177,7 @@ if test "$with_gnu_ld" = yes; then
# that the semantics of dynamic libraries on AmigaOS, at least up
# to version 4, is to share data among multiple programs linked
# with the same dynamic library. Since this doesn't match the
- # behavior of shared libraries on other platforms, we can use
+ # behavior of shared libraries on other platforms, we cannot use
# them.
ld_shlibs=no
;;
@@ -149,7 +188,7 @@ if test "$with_gnu_ld" = yes; then
ld_shlibs=no
fi
;;
- cygwin* | mingw* | pw32*)
+ cygwin* | mingw* | pw32* | cegcc*)
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
hardcode_libdir_flag_spec='-L$libdir'
@@ -159,9 +198,20 @@ if test "$with_gnu_ld" = yes; then
ld_shlibs=no
fi
;;
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ gnu* | linux* | k*bsd*-gnu)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
netbsd*)
;;
- solaris* | sysv5*)
+ solaris*)
if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
ld_shlibs=no
elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
@@ -170,6 +220,20 @@ if test "$with_gnu_ld" = yes; then
ld_shlibs=no
fi
;;
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ ;;
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
sunos4*)
hardcode_direct=yes
;;
@@ -181,10 +245,8 @@ if test "$with_gnu_ld" = yes; then
fi
;;
esac
- if test "$ld_shlibs" = yes; then
- # Unlike libtool, we use -rpath here, not --rpath, since the documented
- # option of GNU ld is called -rpath, not --rpath.
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ if test "$ld_shlibs" = no; then
+ hardcode_libdir_flag_spec=
fi
else
case "$host_os" in
@@ -198,7 +260,7 @@ else
hardcode_direct=unsupported
fi
;;
- aix4* | aix5*)
+ aix[4-9]*)
if test "$host_cpu" = ia64; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
@@ -208,13 +270,14 @@ else
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
for ld_flag in $LDFLAGS; do
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
aix_use_runtimelinking=yes
break
fi
done
+ ;;
esac
fi
hardcode_direct=yes
@@ -226,7 +289,7 @@ else
strings "$collect2name" | grep resolve_lib_name >/dev/null
then
# We have reworked collect2
- hardcode_direct=yes
+ :
else
# We have old collect2
hardcode_direct=unsupported
@@ -234,6 +297,7 @@ else
hardcode_libdir_flag_spec='-L$libdir'
hardcode_libdir_separator=
fi
+ ;;
esac
fi
# Begin _LT_AC_SYS_LIBPATH_AIX.
@@ -266,9 +330,9 @@ else
# see comment about different semantics on the GNU ld section
ld_shlibs=no
;;
- bsdi4*)
+ bsdi[45]*)
;;
- cygwin* | mingw* | pw32*)
+ cygwin* | mingw* | pw32* | cegcc*)
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
@@ -277,8 +341,17 @@ else
libext=lib
;;
darwin* | rhapsody*)
- if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then
- hardcode_direct=no
+ hardcode_direct=no
+ if test "$GCC" = yes ; then
+ :
+ else
+ case $cc_basename in
+ xlc*)
+ ;;
+ *)
+ ld_shlibs=no
+ ;;
+ esac
fi
;;
dgux*)
@@ -295,7 +368,7 @@ else
hardcode_direct=yes
hardcode_minus_L=yes
;;
- freebsd*)
+ freebsd* | dragonfly*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
@@ -307,24 +380,25 @@ else
# but as the default location of the library.
hardcode_minus_L=yes
;;
- hpux10* | hpux11*)
+ hpux10*)
if test "$with_gnu_ld" = no; then
- case "$host_cpu" in
- hppa*64*)
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=no
- ;;
- ia64*)
- hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+ hpux11*)
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ case $host_cpu in
+ hppa*64*|ia64*)
hardcode_direct=no
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
;;
*)
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
hardcode_direct=yes
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
@@ -347,18 +421,22 @@ else
hardcode_libdir_separator=:
;;
openbsd*)
- hardcode_direct=yes
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ else
+ case "$host_os" in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
else
- case "$host_os" in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- *)
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- ;;
- esac
+ ld_shlibs=no
fi
;;
os2*)
@@ -378,8 +456,6 @@ else
fi
hardcode_libdir_separator=:
;;
- sco3.2v5*)
- ;;
solaris*)
hardcode_libdir_flag_spec='-R$libdir'
;;
@@ -408,14 +484,11 @@ else
ld_shlibs=yes
fi
;;
- sysv4.2uw2*)
- hardcode_direct=yes
- hardcode_minus_L=no
- ;;
- sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
;;
- sysv5*)
- hardcode_libdir_flag_spec=
+ sysv5* | sco3.2v5* | sco5v6*)
+ hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+ hardcode_libdir_separator=':'
;;
uts4*)
hardcode_libdir_flag_spec='-L$libdir'
@@ -427,35 +500,55 @@ else
fi
# Check dynamic linker characteristics
-# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
+# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER.
+# Unlike libtool.m4, here we don't care about _all_ names of the library, but
+# only about the one the linker finds when passed -lNAME. This is the last
+# element of library_names_spec in libtool.m4, or possibly two of them if the
+# linker has special search rules.
+library_names_spec= # the last element of library_names_spec in libtool.m4
libname_spec='lib$name'
case "$host_os" in
aix3*)
+ library_names_spec='$libname.a'
;;
- aix4* | aix5*)
+ aix[4-9]*)
+ library_names_spec='$libname$shrext'
;;
amigaos*)
+ library_names_spec='$libname.a'
;;
beos*)
+ library_names_spec='$libname$shrext'
;;
- bsdi4*)
+ bsdi[45]*)
+ library_names_spec='$libname$shrext'
;;
- cygwin* | mingw* | pw32*)
+ cygwin* | mingw* | pw32* | cegcc*)
shrext=.dll
+ library_names_spec='$libname.dll.a $libname.lib'
;;
darwin* | rhapsody*)
shrext=.dylib
+ library_names_spec='$libname$shrext'
;;
dgux*)
+ library_names_spec='$libname$shrext'
;;
freebsd1*)
;;
- freebsd*)
+ freebsd* | dragonfly*)
+ case "$host_os" in
+ freebsd[123]*)
+ library_names_spec='$libname$shrext$versuffix' ;;
+ *)
+ library_names_spec='$libname$shrext' ;;
+ esac
;;
gnu*)
+ library_names_spec='$libname$shrext'
;;
hpux9* | hpux10* | hpux11*)
- case "$host_cpu" in
+ case $host_cpu in
ia64*)
shrext=.so
;;
@@ -466,8 +559,13 @@ case "$host_os" in
shrext=.sl
;;
esac
+ library_names_spec='$libname$shrext'
+ ;;
+ interix[3-9]*)
+ library_names_spec='$libname$shrext'
;;
irix5* | irix6* | nonstopux*)
+ library_names_spec='$libname$shrext'
case "$host_os" in
irix5* | nonstopux*)
libsuff= shlibsuff=
@@ -484,42 +582,62 @@ case "$host_os" in
;;
linux*oldld* | linux*aout* | linux*coff*)
;;
- linux*)
+ linux* | k*bsd*-gnu)
+ library_names_spec='$libname$shrext'
+ ;;
+ knetbsd*-gnu)
+ library_names_spec='$libname$shrext'
;;
netbsd*)
+ library_names_spec='$libname$shrext'
;;
newsos6)
+ library_names_spec='$libname$shrext'
;;
- nto-qnx)
+ nto-qnx*)
+ library_names_spec='$libname$shrext'
;;
openbsd*)
+ library_names_spec='$libname$shrext$versuffix'
;;
os2*)
libname_spec='$name'
shrext=.dll
+ library_names_spec='$libname.a'
;;
osf3* | osf4* | osf5*)
+ library_names_spec='$libname$shrext'
;;
- sco3.2v5*)
+ rdos*)
;;
solaris*)
+ library_names_spec='$libname$shrext'
;;
sunos4*)
+ library_names_spec='$libname$shrext$versuffix'
;;
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ sysv4 | sysv4.3*)
+ library_names_spec='$libname$shrext'
;;
sysv4*MP*)
+ library_names_spec='$libname$shrext'
+ ;;
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ library_names_spec='$libname$shrext'
;;
uts4*)
+ library_names_spec='$libname$shrext'
;;
esac
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
+escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
+LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
# How to pass a linker flag through the compiler.
wl="$escaped_wl"
@@ -530,6 +648,12 @@ libext="$libext"
# Shared library suffix (normally "so").
shlibext="$shlibext"
+# Format of library name prefix.
+libname_spec="$escaped_libname_spec"
+
+# Library names that the linker finds when passed -lNAME.
+library_names_spec="$escaped_library_names_spec"
+
# Flag to hardcode \$libdir into a binary during linking.
# This must work even if \$libdir does not exist.
hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
diff --git a/config/config.sub b/config/config.sub
index 204218c..61cb4bc 100644
--- a/config/config.sub
+++ b/config/config.sub
@@ -1,38 +1,31 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-# Free Software Foundation, Inc.
+# Copyright 1992-2013 Free Software Foundation, Inc.
-timestamp='2010-05-21'
+timestamp='2013-10-01'
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
@@ -75,9 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-Software Foundation, Inc.
+Copyright 1992-2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -125,13 +116,17 @@ esac
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
- linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
knetbsd*-gnu* | netbsd*-gnu* | \
kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
+ android-linux)
+ os=-linux-android
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+ ;;
*)
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
if [ $basic_machine != $1 ]
@@ -154,12 +149,12 @@ case $os in
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray | -microblaze)
+ -apple | -axis | -knuth | -cray | -microblaze*)
os=
basic_machine=$1
;;
- -bluegene*)
- os=-cnk
+ -bluegene*)
+ os=-cnk
;;
-sim | -cisco | -oki | -wec | -winbond)
os=
@@ -175,10 +170,10 @@ case $os in
os=-chorusos
basic_machine=$1
;;
- -chorusrdb)
- os=-chorusrdb
+ -chorusrdb)
+ os=-chorusrdb
basic_machine=$1
- ;;
+ ;;
-hiux*)
os=-hiuxwe2
;;
@@ -223,6 +218,12 @@ case $os in
-isc*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
+ -lynx*178)
+ os=-lynxos178
+ ;;
+ -lynx*5)
+ os=-lynxos5
+ ;;
-lynx*)
os=-lynxos
;;
@@ -247,20 +248,28 @@ case $basic_machine in
# Some are omitted here because they have special meanings below.
1750a | 580 \
| a29k \
+ | aarch64 | aarch64_be \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+ | arc | arceb \
+ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+ | avr | avr32 \
+ | be32 | be64 \
| bfin \
- | c4x | clipper \
+ | c4x | c8051 | clipper \
| d10v | d30v | dlx | dsp16xx \
+ | epiphany \
| fido | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
+ | k1om \
+ | le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | mcore | mep | metag \
+ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
@@ -278,29 +287,32 @@ case $basic_machine in
| mipsisa64r2 | mipsisa64r2el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
| moxie \
| mt \
| msp430 \
- | nios | nios2 \
+ | nds32 | nds32le | nds32be \
+ | nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \
- | or32 \
+ | open8 \
+ | or1k | or32 \
| pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ | powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
- | rx \
+ | rl78 | rx \
| score \
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
- | spu | strongarm \
- | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+ | spu \
+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
| ubicom32 \
- | v850 | v850e \
+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
| we32k \
- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+ | x86 | xc16x | xstormy16 | xtensa \
| z8k | z80)
basic_machine=$basic_machine-unknown
;;
@@ -313,8 +325,7 @@ case $basic_machine in
c6x)
basic_machine=tic6x-unknown
;;
- m6811 | m68hc11 | m6812 | m68hc12 | picochip)
- # Motorola 68HC11/12.
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
@@ -324,6 +335,21 @@ case $basic_machine in
basic_machine=mt-unknown
;;
+ strongarm | thumb | xscale)
+ basic_machine=arm-unknown
+ ;;
+ xgate)
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ xscaleeb)
+ basic_machine=armeb-unknown
+ ;;
+
+ xscaleel)
+ basic_machine=armel-unknown
+ ;;
+
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
@@ -338,25 +364,31 @@ case $basic_machine in
# Recognize the basic CPU types with company name.
580-* \
| a29k-* \
+ | aarch64-* | aarch64_be-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
+ | be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
- | clipper-* | craynv-* | cydra-* \
+ | c8051-* | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
+ | k1om-* \
+ | le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+ | microblaze-* | microblazeel-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
@@ -374,30 +406,34 @@ case $basic_machine in
| mipsisa64r2-* | mipsisa64r2el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipsr5900-* | mipsr5900el-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
| mt-* \
| msp430-* \
- | nios-* | nios2-* \
+ | nds32-* | nds32le-* | nds32be-* \
+ | nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \
+ | open8-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
| pyramid-* \
- | romp-* | rs6000-* | rx-* \
+ | rl78-* | romp-* | rs6000-* | rx-* \
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
| sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
- | tahoe-* | thumb-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+ | tahoe-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
- | tile-* | tilegx-* \
+ | tile*-* \
| tron-* \
| ubicom32-* \
- | v850-* | v850e-* | vax-* \
+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+ | vax-* \
| we32k-* \
- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+ | x86-* | x86_64-* | xc16x-* | xps100-* \
| xstormy16-* | xtensa*-* \
| ymp-* \
| z8k-* | z80-*)
@@ -422,7 +458,7 @@ case $basic_machine in
basic_machine=a29k-amd
os=-udi
;;
- abacus)
+ abacus)
basic_machine=abacus-unknown
;;
adobe68k)
@@ -505,7 +541,7 @@ case $basic_machine in
basic_machine=c90-cray
os=-unicos
;;
- cegcc)
+ cegcc)
basic_machine=arm-unknown
os=-cegcc
;;
@@ -537,7 +573,7 @@ case $basic_machine in
basic_machine=craynv-cray
os=-unicosmp
;;
- cr16)
+ cr16 | cr16-*)
basic_machine=cr16-unknown
os=-elf
;;
@@ -695,7 +731,6 @@ case $basic_machine in
i370-ibm* | ibm*)
basic_machine=i370-ibm
;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
i*86v32)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv32
@@ -753,11 +788,15 @@ case $basic_machine in
basic_machine=ns32k-utek
os=-sysv
;;
- microblaze)
+ microblaze*)
basic_machine=microblaze-xilinx
;;
+ mingw64)
+ basic_machine=x86_64-pc
+ os=-mingw64
+ ;;
mingw32)
- basic_machine=i386-pc
+ basic_machine=i686-pc
os=-mingw32
;;
mingw32ce)
@@ -792,10 +831,18 @@ case $basic_machine in
ms1-*)
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;;
+ msys)
+ basic_machine=i686-pc
+ os=-msys
+ ;;
mvs)
basic_machine=i370-ibm
os=-mvs
;;
+ nacl)
+ basic_machine=le32-unknown
+ os=-nacl
+ ;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
@@ -860,6 +907,12 @@ case $basic_machine in
np1)
basic_machine=np1-gould
;;
+ neo-tandem)
+ basic_machine=neo-tandem
+ ;;
+ nse-tandem)
+ basic_machine=nse-tandem
+ ;;
nsr-tandem)
basic_machine=nsr-tandem
;;
@@ -942,9 +995,10 @@ case $basic_machine in
;;
power) basic_machine=power-ibm
;;
- ppc) basic_machine=powerpc-unknown
+ ppc | ppcbe) basic_machine=powerpc-unknown
;;
- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ppc-* | ppcbe-*)
+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle | ppc-le | powerpc-little)
basic_machine=powerpcle-unknown
@@ -969,7 +1023,11 @@ case $basic_machine in
basic_machine=i586-unknown
os=-pw32
;;
- rdos)
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ os=-rdos
+ ;;
+ rdos32)
basic_machine=i386-pc
os=-rdos
;;
@@ -1038,6 +1096,9 @@ case $basic_machine in
basic_machine=i860-stratus
os=-sysv4
;;
+ strongarm-* | thumb-*)
+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
sun2)
basic_machine=m68000-sun
;;
@@ -1094,13 +1155,8 @@ case $basic_machine in
basic_machine=t90-cray
os=-unicos
;;
- # This must be matched before tile*.
- tilegx*)
- basic_machine=tilegx-unknown
- os=-linux-gnu
- ;;
tile*)
- basic_machine=tile-unknown
+ basic_machine=$basic_machine-unknown
os=-linux-gnu
;;
tx39)
@@ -1170,6 +1226,9 @@ case $basic_machine in
xps | xps100)
basic_machine=xps100-honeywell
;;
+ xscale-* | xscalee[bl]-*)
+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+ ;;
ymp)
basic_machine=ymp-cray
os=-unicos
@@ -1267,11 +1326,11 @@ esac
if [ x"$os" != x"" ]
then
case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
+ # First match some system type aliases
+ # that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
- -auroraux)
- os=-auroraux
+ -auroraux)
+ os=-auroraux
;;
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
@@ -1295,21 +1354,21 @@ case $os in
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
- | -sym* | -kopensolaris* \
+ | -sym* | -kopensolaris* | -plan9* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
- | -openbsd* | -solidbsd* \
+ | -bitrig* | -openbsd* | -solidbsd* \
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -linux-android* \
- | -linux-newlib* | -linux-uclibc* \
+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+ | -linux-newlib* | -linux-musl* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@@ -1356,7 +1415,7 @@ case $os in
-opened*)
os=-openedition
;;
- -os400*)
+ -os400*)
os=-os400
;;
-wince*)
@@ -1405,7 +1464,7 @@ case $os in
-sinix*)
os=-sysv4
;;
- -tpf*)
+ -tpf*)
os=-tpf
;;
-triton*)
@@ -1441,17 +1500,14 @@ case $os in
-aros*)
os=-aros
;;
- -kaos*)
- os=-kaos
- ;;
-zvmoe)
os=-zvmoe
;;
-dicos*)
os=-dicos
;;
- -nacl*)
- ;;
+ -nacl*)
+ ;;
-none)
;;
*)
@@ -1474,10 +1530,10 @@ else
# system, and we'll never get to this point.
case $basic_machine in
- score-*)
+ score-*)
os=-elf
;;
- spu-*)
+ spu-*)
os=-elf
;;
*-acorn)
@@ -1489,8 +1545,14 @@ case $basic_machine in
arm*-semi)
os=-aout
;;
- c4x-* | tic4x-*)
- os=-coff
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
+ c8051-*)
+ os=-elf
+ ;;
+ hexagon-*)
+ os=-elf
;;
tic54x-*)
os=-coff
@@ -1519,14 +1581,11 @@ case $basic_machine in
;;
m68000-sun)
os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
;;
m68*-cisco)
os=-aout
;;
- mep-*)
+ mep-*)
os=-elf
;;
mips*-cisco)
@@ -1535,6 +1594,9 @@ case $basic_machine in
mips*-*)
os=-elf
;;
+ or1k-*)
+ os=-elf
+ ;;
or32-*)
os=-coff
;;
@@ -1553,7 +1615,7 @@ case $basic_machine in
*-ibm)
os=-aix
;;
- *-knuth)
+ *-knuth)
os=-mmixware
;;
*-wec)
diff --git a/config/depcomp b/config/depcomp
index df8eea7..25a39e6 100755
--- a/config/depcomp
+++ b/config/depcomp
@@ -1,10 +1,10 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2012-03-27.16; # UTC
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
-# Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
+# 2011, 2012 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -28,7 +28,7 @@ scriptversion=2009-04-28.21; # UTC
case $1 in
'')
- echo "$0: No command. Try \`$0 --help' for more information." 1>&2
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
@@ -40,11 +40,11 @@ as side-effects.
Environment variables:
depmode Dependency tracking mode.
- source Source file read by `PROGRAMS ARGS'.
- object Object file output by `PROGRAMS ARGS'.
+ source Source file read by 'PROGRAMS ARGS'.
+ object Object file output by 'PROGRAMS ARGS'.
DEPDIR directory where to store dependencies.
depfile Dependency file to output.
- tmpdepfile Temporary file to use when outputing dependencies.
+ tmpdepfile Temporary file to use when outputting dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to <bug-automake@gnu.org>.
@@ -57,6 +57,12 @@ EOF
;;
esac
+# A tabulation character.
+tab=' '
+# A newline character.
+nl='
+'
+
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
@@ -90,10 +96,24 @@ if test "$depmode" = msvcmsys; then
# This is just like msvisualcpp but w/o cygpath translation.
# Just convert the backslash-escaped backslashes to single forward
# slashes to satisfy depend.m4
- cygpath_u="sed s,\\\\\\\\,/,g"
+ cygpath_u='sed s,\\\\,/,g'
depmode=msvisualcpp
fi
+if test "$depmode" = msvc7msys; then
+ # This is just like msvc7 but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u='sed s,\\\\,/,g'
+ depmode=msvc7
+fi
+
+if test "$depmode" = xlc; then
+ # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
+ gccflag=-qmakedep=gcc,-MF
+ depmode=gcc
+fi
+
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
@@ -148,20 +168,21 @@ gcc)
## The second -e expression handles DOS-style file names with drive letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the `deleted header file' problem.
+## This next piece of magic avoids the "deleted header file" problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
- tr ' ' '
-' < "$tmpdepfile" |
-## Some versions of gcc put a space before the `:'. On the theory
+ tr ' ' "$nl" < "$tmpdepfile" |
+## Some versions of gcc put a space before the ':'. On the theory
## that the space means something, we add a space to the output as
-## well.
+## well. hp depmode also adds that space, but also prefixes the VPATH
+## to the object. Take care to not repeat it in the output.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
@@ -193,18 +214,15 @@ sgi)
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
- # the IRIX cc adds comments like `#:fec' to the end of the
+ # the IRIX cc adds comments like '#:fec' to the end of the
# dependency line.
- tr ' ' '
-' < "$tmpdepfile" \
+ tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
- tr '
-' ' ' >> "$depfile"
+ tr "$nl" ' ' >> "$depfile"
echo >> "$depfile"
# The second pass generates a dummy entry for each header file.
- tr ' ' '
-' < "$tmpdepfile" \
+ tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> "$depfile"
else
@@ -216,10 +234,17 @@ sgi)
rm -f "$tmpdepfile"
;;
+xlc)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
- # current directory. Also, the AIX compiler puts `$object:' at the
+ # current directory. Also, the AIX compiler puts '$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
@@ -249,12 +274,11 @@ aix)
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
- # Each line is of the form `foo.o: dependent.h'.
+ # Each line is of the form 'foo.o: dependent.h'.
# Do two passes, one to just change these to
- # `$object: dependent.h' and one to simply `dependent.h:'.
+ # '$object: dependent.h' and one to simply 'dependent.h:'.
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- # That's a tab and a space in the [].
- sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+ sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
@@ -265,23 +289,26 @@ aix)
;;
icc)
- # Intel's C compiler understands `-MD -MF file'. However on
- # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+ # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
+ # However on
+ # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
# ICC 7.0 will fill foo.d with something like
# foo.o: sub/foo.c
# foo.o: sub/foo.h
- # which is wrong. We want:
+ # which is wrong. We want
# sub/foo.o: sub/foo.c
# sub/foo.o: sub/foo.h
# sub/foo.c:
# sub/foo.h:
# ICC 7.1 will output
# foo.o: sub/foo.c sub/foo.h
- # and will wrap long lines using \ :
+ # and will wrap long lines using '\':
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
-
+ # tcc 0.9.26 (FIXME still under development at the moment of writing)
+ # will emit a similar output, but also prepend the continuation lines
+ # with horizontal tabulation characters.
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
@@ -290,15 +317,21 @@ icc)
exit $stat
fi
rm -f "$depfile"
- # Each line is of the form `foo.o: dependent.h',
- # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+ # Each line is of the form 'foo.o: dependent.h',
+ # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
# Do two passes, one to just change these to
- # `$object: dependent.h' and one to simply `dependent.h:'.
- sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
- # Some versions of the HPUX 10.20 sed can't process this invocation
- # correctly. Breaking it into two sed invocations is a workaround.
- sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
- sed -e 's/$/ :/' >> "$depfile"
+ # '$object: dependent.h' and one to simply 'dependent.h:'.
+ sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \
+ < "$tmpdepfile" > "$depfile"
+ sed '
+ s/[ '"$tab"'][ '"$tab"']*/ /g
+ s/^ *//
+ s/ *\\*$//
+ s/^[^:]*: *//
+ /^$/d
+ /:$/d
+ s/$/ :/
+ ' < "$tmpdepfile" >> "$depfile"
rm -f "$tmpdepfile"
;;
@@ -334,7 +367,7 @@ hp2)
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
- # Add `dependent.h:' lines.
+ # Add 'dependent.h:' lines.
sed -ne '2,${
s/^ *//
s/ \\*$//
@@ -349,9 +382,9 @@ hp2)
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
- # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+ # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
- # dependencies in `foo.d' instead, so we check for that too.
+ # dependencies in 'foo.d' instead, so we check for that too.
# Subdirectories are respected.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
@@ -397,14 +430,59 @@ tru64)
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- # That's a tab and a space in the [].
- sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+ sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
+msvc7)
+ if test "$libtool" = yes; then
+ showIncludes=-Wc,-showIncludes
+ else
+ showIncludes=-showIncludes
+ fi
+ "$@" $showIncludes > "$tmpdepfile"
+ stat=$?
+ grep -v '^Note: including file: ' "$tmpdepfile"
+ if test "$stat" = 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ # The first sed program below extracts the file names and escapes
+ # backslashes for cygpath. The second sed program outputs the file
+ # name when reading, but also accumulates all include files in the
+ # hold buffer in order to output them again at the end. This only
+ # works with sed implementations that can handle large buffers.
+ sed < "$tmpdepfile" -n '
+/^Note: including file: *\(.*\)/ {
+ s//\1/
+ s/\\/\\\\/g
+ p
+}' | $cygpath_u | sort -u | sed -n '
+s/ /\\ /g
+s/\(.*\)/'"$tab"'\1 \\/p
+s/.\(.*\) \\/\1:/
+H
+$ {
+ s/.*/'"$tab"'/
+ G
+ p
+}' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvc7msys)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
@@ -422,7 +500,7 @@ dashmstdout)
shift
fi
- # Remove `-o $object'.
+ # Remove '-o $object'.
IFS=" "
for arg
do
@@ -442,15 +520,14 @@ dashmstdout)
done
test -z "$dashmflag" && dashmflag=-M
- # Require at least two characters before searching for `:'
+ # Require at least two characters before searching for ':'
# in the target name. This is to cope with DOS-style filenames:
- # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+ # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
"$@" $dashmflag |
- sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
+ sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
- tr ' ' '
-' < "$tmpdepfile" | \
+ tr ' ' "$nl" < "$tmpdepfile" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
@@ -503,9 +580,10 @@ makedepend)
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
- cat < "$tmpdepfile" > "$depfile"
- sed '1,2d' "$tmpdepfile" | tr ' ' '
-' | \
+ # makedepend may prepend the VPATH from the source file name to the object.
+ # No need to regex-escape $object, excess matching of '.' is harmless.
+ sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
+ sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
@@ -525,7 +603,7 @@ cpp)
shift
fi
- # Remove `-o $object'.
+ # Remove '-o $object'.
IFS=" "
for arg
do
@@ -594,8 +672,8 @@ msvisualcpp)
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
- sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
- echo " " >> "$depfile"
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
+ echo "$tab" >> "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
diff --git a/config/dospaths.m4 b/config/dospaths.m4
index da544f8..3686377 100644
--- a/config/dospaths.m4
+++ b/config/dospaths.m4
@@ -1,8 +1,7 @@
# Test if the system uses DOS-style pathnames (drive specs and backslashes)
# By Paul Smith <psmith@gnu.org>. Based on dos.m4 by Jim Meyering.
#
-# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 1993-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
@@ -18,21 +17,17 @@
# You should have received a copy of the GNU General Public License along with
# this program. If not, see <http://www.gnu.org/licenses/>.
-AC_DEFUN([pds_AC_DOS_PATHS],
- [
- AC_CACHE_CHECK([whether system uses MSDOS-style paths], [ac_cv_dos_paths],
- [
- AC_COMPILE_IFELSE([
+AC_DEFUN([pds_AC_DOS_PATHS], [
+ AC_CACHE_CHECK([whether system uses MSDOS-style paths], [ac_cv_dos_paths], [
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __EMX__ && !defined __MSYS__ && !defined __CYGWIN__
neither MSDOS nor Windows nor OS2
#endif
-],
+]])],
[ac_cv_dos_paths=yes],
- [ac_cv_dos_paths=no])
- ])
+ [ac_cv_dos_paths=no])])
- if test x"$ac_cv_dos_paths" = xyes; then
- AC_DEFINE_UNQUOTED([HAVE_DOS_PATHS], 1,
- [Define if the system uses DOS-style pathnames.])
- fi
- ])
+ AS_IF([test x"$ac_cv_dos_paths" = xyes],
+ [ AC_DEFINE_UNQUOTED([HAVE_DOS_PATHS], 1,
+ [Define if the system uses DOS-style pathnames.])])
+])
diff --git a/config/gettext.m4 b/config/gettext.m4
index a374f03..f84e6a5 100644
--- a/config/gettext.m4
+++ b/config/gettext.m4
@@ -1,10 +1,8 @@
-# gettext.m4 serial 28 (gettext-0.13)
-dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
+# gettext.m4 serial 63 (gettext-0.18)
+dnl Copyright (C) 1995-2010 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
dnl
dnl This file can can be used in projects which are not available under
dnl the GNU General Public License or the GNU Library General Public
@@ -17,7 +15,7 @@ dnl They are *not* in the public domain.
dnl Authors:
dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2006, 2008-2010.
dnl Macro to add for using GNU gettext.
@@ -62,11 +60,18 @@ AC_DEFUN([AM_GNU_GETTEXT],
ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
[errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
])])])])])
+ ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old],
+ [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])])
ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
[errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
])])])])
- define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
- define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
+ define([gt_included_intl],
+ ifelse([$1], [external],
+ ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]),
+ [yes]))
+ define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], []))
+ gt_NEEDS_INIT
+ AM_GNU_GETTEXT_NEED([$2])
AC_REQUIRE([AM_PO_SUBDIRS])dnl
ifelse(gt_included_intl, yes, [
@@ -80,7 +85,7 @@ AC_DEFUN([AM_GNU_GETTEXT],
dnl Sometimes libintl requires libiconv, so first search for libiconv.
dnl Ideally we would do this search only after the
dnl if test "$USE_NLS" = "yes"; then
- dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+ dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
dnl the configure script would need to contain the same shell code
dnl again, outside any 'if'. There are two solutions:
@@ -92,8 +97,11 @@ AC_DEFUN([AM_GNU_GETTEXT],
AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
])
+ dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation.
+ gt_INTL_MACOSX
+
dnl Set USE_NLS.
- AM_NLS
+ AC_REQUIRE([AM_NLS])
ifelse(gt_included_intl, yes, [
BUILD_INCLUDED_LIBINTL=no
@@ -103,16 +111,25 @@ AC_DEFUN([AM_GNU_GETTEXT],
LTLIBINTL=
POSUB=
+ dnl Add a version number to the cache macros.
+ case " $gt_needs " in
+ *" need-formatstring-macros "*) gt_api_version=3 ;;
+ *" need-ngettext "*) gt_api_version=2 ;;
+ *) gt_api_version=1 ;;
+ esac
+ gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
+ gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
+
dnl If we use NLS figure out what method
if test "$USE_NLS" = "yes"; then
gt_use_preinstalled_gnugettext=no
ifelse(gt_included_intl, yes, [
AC_MSG_CHECKING([whether included gettext is requested])
- AC_ARG_WITH(included-gettext,
+ AC_ARG_WITH([included-gettext],
[ --with-included-gettext use the GNU gettext library included here],
nls_cv_force_use_gnu_gettext=$withval,
nls_cv_force_use_gnu_gettext=no)
- AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
+ AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext])
nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
@@ -121,28 +138,35 @@ AC_DEFUN([AM_GNU_GETTEXT],
dnl to use. If GNU gettext is available we use this. Else we have
dnl to fall back to GNU NLS library.
- dnl Add a version number to the cache macros.
- define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
- define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
- define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
-
- AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
- [AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+ if test $gt_api_version -ge 3; then
+ gt_revision_test_code='
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
#endif
changequote(,)dnl
typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
+'
+ else
+ gt_revision_test_code=
+ fi
+ if test $gt_api_version -ge 2; then
+ gt_expression_test_code=' + * ngettext ("", "", 0)'
+ else
+ gt_expression_test_code=
+ fi
+
+ AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc],
+ [AC_TRY_LINK([#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
extern int *_nl_domain_bindings;],
[bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
- gt_cv_func_gnugettext_libc=yes,
- gt_cv_func_gnugettext_libc=no)])
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings],
+ [eval "$gt_func_gnugettext_libc=yes"],
+ [eval "$gt_func_gnugettext_libc=no"])])
- if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
dnl Sometimes libintl requires libiconv, so first search for libiconv.
ifelse(gt_included_intl, yes, , [
AM_ICONV_LINK
@@ -153,52 +177,40 @@ return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("",
dnl even if libiconv doesn't exist.
AC_LIB_LINKFLAGS_BODY([intl])
AC_CACHE_CHECK([for GNU gettext in libintl],
- gt_cv_func_gnugettext_libintl,
+ [$gt_func_gnugettext_libintl],
[gt_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $INCINTL"
gt_save_LIBS="$LIBS"
LIBS="$LIBS $LIBINTL"
dnl Now see whether libintl exists and does not depend on libiconv.
AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
extern
#ifdef __cplusplus
"C"
#endif
-const char *_nl_expand_alias ();],
+const char *_nl_expand_alias (const char *);],
[bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
- gt_cv_func_gnugettext_libintl=yes,
- gt_cv_func_gnugettext_libintl=no)
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
+ [eval "$gt_func_gnugettext_libintl=yes"],
+ [eval "$gt_func_gnugettext_libintl=no"])
dnl Now see whether libintl exists and depends on libiconv.
- if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
LIBS="$LIBS $LIBICONV"
AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
extern
#ifdef __cplusplus
"C"
#endif
-const char *_nl_expand_alias ();],
+const char *_nl_expand_alias (const char *);],
[bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
[LIBINTL="$LIBINTL $LIBICONV"
LTLIBINTL="$LTLIBINTL $LTLIBICONV"
- gt_cv_func_gnugettext_libintl=yes
+ eval "$gt_func_gnugettext_libintl=yes"
])
fi
CPPFLAGS="$gt_save_CPPFLAGS"
@@ -209,8 +221,8 @@ return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("",
dnl use it. But if this macro is used in GNU gettext, and GNU
dnl gettext is already preinstalled in libintl, we update this
dnl libintl. (Cf. the install rule in intl/Makefile.in.)
- if test "$gt_cv_func_gnugettext_libc" = "yes" \
- || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
+ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
&& test "$PACKAGE" != gettext-runtime \
&& test "$PACKAGE" != gettext-tools; }; then
gt_use_preinstalled_gnugettext=yes
@@ -233,11 +245,12 @@ return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("",
dnl Mark actions used to generate GNU NLS library.
BUILD_INCLUDED_LIBINTL=yes
USE_INCLUDED_LIBINTL=yes
- LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
- LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
+ LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD"
+ LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD"
LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
fi
+ CATOBJEXT=
if test "$gt_use_preinstalled_gnugettext" = "yes" \
|| test "$nls_cv_use_gnu_gettext" = "yes"; then
dnl Mark actions to use GNU gettext tools.
@@ -245,9 +258,18 @@ return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("",
fi
])
+ if test -n "$INTL_MACOSX_LIBS"; then
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Some extra flags are needed during linking.
+ LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+ LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+ fi
+ fi
+
if test "$gt_use_preinstalled_gnugettext" = "yes" \
|| test "$nls_cv_use_gnu_gettext" = "yes"; then
- AC_DEFINE(ENABLE_NLS, 1,
+ AC_DEFINE([ENABLE_NLS], [1],
[Define to 1 if translation of program messages to the user's native language
is requested.])
else
@@ -260,7 +282,7 @@ return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("",
if test "$USE_NLS" = "yes"; then
AC_MSG_CHECKING([where the gettext function comes from])
if test "$gt_use_preinstalled_gnugettext" = "yes"; then
- if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
gt_source="external libintl"
else
gt_source="libc"
@@ -274,16 +296,16 @@ return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("",
if test "$USE_NLS" = "yes"; then
if test "$gt_use_preinstalled_gnugettext" = "yes"; then
- if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
AC_MSG_CHECKING([how to link with libintl])
AC_MSG_RESULT([$LIBINTL])
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
fi
dnl For backward compatibility. Some packages may be using this.
- AC_DEFINE(HAVE_GETTEXT, 1,
+ AC_DEFINE([HAVE_GETTEXT], [1],
[Define if the GNU gettext() function is already present or preinstalled.])
- AC_DEFINE(HAVE_DCGETTEXT, 1,
+ AC_DEFINE([HAVE_DCGETTEXT], [1],
[Define if the GNU dcgettext() function is already present or preinstalled.])
fi
@@ -299,9 +321,9 @@ return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("",
fi
dnl Make all variables we use known to autoconf.
- AC_SUBST(BUILD_INCLUDED_LIBINTL)
- AC_SUBST(USE_INCLUDED_LIBINTL)
- AC_SUBST(CATOBJEXT)
+ AC_SUBST([BUILD_INCLUDED_LIBINTL])
+ AC_SUBST([USE_INCLUDED_LIBINTL])
+ AC_SUBST([CATOBJEXT])
dnl For backward compatibility. Some configure.ins may be using this.
nls_cv_header_intl=
@@ -309,177 +331,51 @@ return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("",
dnl For backward compatibility. Some Makefiles may be using this.
DATADIRNAME=share
- AC_SUBST(DATADIRNAME)
+ AC_SUBST([DATADIRNAME])
dnl For backward compatibility. Some Makefiles may be using this.
INSTOBJEXT=.mo
- AC_SUBST(INSTOBJEXT)
+ AC_SUBST([INSTOBJEXT])
dnl For backward compatibility. Some Makefiles may be using this.
GENCAT=gencat
- AC_SUBST(GENCAT)
+ AC_SUBST([GENCAT])
dnl For backward compatibility. Some Makefiles may be using this.
+ INTLOBJS=
if test "$USE_INCLUDED_LIBINTL" = yes; then
INTLOBJS="\$(GETTOBJS)"
fi
- AC_SUBST(INTLOBJS)
+ AC_SUBST([INTLOBJS])
dnl Enable libtool support if the surrounding package wishes it.
INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
- AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
+ AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX])
])
dnl For backward compatibility. Some Makefiles may be using this.
INTLLIBS="$LIBINTL"
- AC_SUBST(INTLLIBS)
+ AC_SUBST([INTLLIBS])
dnl Make all documented variables known to autoconf.
- AC_SUBST(LIBINTL)
- AC_SUBST(LTLIBINTL)
- AC_SUBST(POSUB)
+ AC_SUBST([LIBINTL])
+ AC_SUBST([LTLIBINTL])
+ AC_SUBST([POSUB])
])
-dnl Checks for all prerequisites of the intl subdirectory,
-dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
-dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
-AC_DEFUN([AM_INTL_SUBDIR],
+dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized.
+m4_define([gt_NEEDS_INIT],
[
- AC_REQUIRE([AC_PROG_INSTALL])dnl
- AC_REQUIRE([AM_MKINSTALLDIRS])dnl
- AC_REQUIRE([AC_PROG_CC])dnl
- AC_REQUIRE([AC_CANONICAL_HOST])dnl
- AC_REQUIRE([AC_PROG_RANLIB])dnl
- AC_REQUIRE([AC_ISC_POSIX])dnl
- AC_REQUIRE([AC_HEADER_STDC])dnl
- AC_REQUIRE([AC_C_CONST])dnl
- AC_REQUIRE([bh_C_SIGNED])dnl
- AC_REQUIRE([AC_C_INLINE])dnl
- AC_REQUIRE([AC_TYPE_OFF_T])dnl
- AC_REQUIRE([AC_TYPE_SIZE_T])dnl
- AC_REQUIRE([jm_AC_TYPE_LONG_LONG])dnl
- AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl
- AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
- AC_REQUIRE([gt_TYPE_WINT_T])dnl
- AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
- AC_REQUIRE([jm_AC_HEADER_STDINT_H])
- AC_REQUIRE([gt_TYPE_INTMAX_T])
- AC_REQUIRE([gt_PRINTF_POSIX])
- AC_REQUIRE([AC_FUNC_ALLOCA])dnl
- AC_REQUIRE([AC_FUNC_MMAP])dnl
- AC_REQUIRE([jm_GLIBC21])dnl
- AC_REQUIRE([gt_INTDIV0])dnl
- AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
- AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
- AC_REQUIRE([gt_INTTYPES_PRI])dnl
- AC_REQUIRE([gl_XSIZE])dnl
-
- AC_CHECK_TYPE([ptrdiff_t], ,
- [AC_DEFINE([ptrdiff_t], [long],
- [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
- ])
- AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
-stdlib.h string.h unistd.h sys/param.h])
- AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \
-mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \
-strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \
-__fsetlocking])
-
- dnl Use the _snprintf function only if it is declared (because on NetBSD it
- dnl is defined as a weak alias of snprintf; we prefer to use the latter).
- gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
- gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
-
- dnl Use the *_unlocked functions only if they are declared.
- dnl (because some of them were defined without being declared in Solaris
- dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
- dnl on Solaris 2.5.1 to run on Solaris 2.6).
- dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
- gt_CHECK_DECL(feof_unlocked, [#include <stdio.h>])
- gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>])
- gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
-
- case $gt_cv_func_printf_posix in
- *yes) HAVE_POSIX_PRINTF=1 ;;
- *) HAVE_POSIX_PRINTF=0 ;;
- esac
- AC_SUBST([HAVE_POSIX_PRINTF])
- if test "$ac_cv_func_asprintf" = yes; then
- HAVE_ASPRINTF=1
- else
- HAVE_ASPRINTF=0
- fi
- AC_SUBST([HAVE_ASPRINTF])
- if test "$ac_cv_func_snprintf" = yes; then
- HAVE_SNPRINTF=1
- else
- HAVE_SNPRINTF=0
- fi
- AC_SUBST([HAVE_SNPRINTF])
- if test "$ac_cv_func_wprintf" = yes; then
- HAVE_WPRINTF=1
- else
- HAVE_WPRINTF=0
- fi
- AC_SUBST([HAVE_WPRINTF])
-
- AM_ICONV
- AM_LANGINFO_CODESET
- if test $ac_cv_header_locale_h = yes; then
- AM_LC_MESSAGES
- fi
-
- dnl intl/plural.c is generated from intl/plural.y. It requires bison,
- dnl because plural.y uses bison specific features. It requires at least
- dnl bison-1.26 because earlier versions generate a plural.c that doesn't
- dnl compile.
- dnl bison is only needed for the maintainer (who touches plural.y). But in
- dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
- dnl the rule in general Makefile. Now, some people carelessly touch the
- dnl files or have a broken "make" program, hence the plural.c rule will
- dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
- dnl present or too old.
- AC_CHECK_PROGS([INTLBISON], [bison])
- if test -z "$INTLBISON"; then
- ac_verc_fail=yes
- else
- dnl Found it, now check the version.
- AC_MSG_CHECKING([version of bison])
-changequote(<<,>>)dnl
- ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
- case $ac_prog_version in
- '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
- 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
-changequote([,])dnl
- ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
- *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
- esac
- AC_MSG_RESULT([$ac_prog_version])
- fi
- if test $ac_verc_fail = yes; then
- INTLBISON=:
- fi
+ m4_divert_text([DEFAULTS], [gt_needs=])
+ m4_define([gt_NEEDS_INIT], [])
])
-dnl gt_CHECK_DECL(FUNC, INCLUDES)
-dnl Check whether a function is declared.
-AC_DEFUN([gt_CHECK_DECL],
+dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL])
+AC_DEFUN([AM_GNU_GETTEXT_NEED],
[
- AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1,
- [AC_TRY_COMPILE([$2], [
-#ifndef $1
- char *p = (char *) $1;
-#endif
-], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)])
- if test $ac_cv_have_decl_$1 = yes; then
- gt_value=1
- else
- gt_value=0
- fi
- AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
- [Define to 1 if you have the declaration of `$1', and to 0 if you don't.])
+ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"])
])
diff --git a/config/glibc21.m4 b/config/glibc21.m4
deleted file mode 100644
index 9c9f3db..0000000
--- a/config/glibc21.m4
+++ /dev/null
@@ -1,32 +0,0 @@
-# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-# Test for the GNU C Library, version 2.1 or newer.
-# From Bruno Haible.
-
-AC_DEFUN([jm_GLIBC21],
- [
- AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
- ac_cv_gnu_library_2_1,
- [AC_EGREP_CPP([Lucky GNU user],
- [
-#include <features.h>
-#ifdef __GNU_LIBRARY__
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
- Lucky GNU user
- #endif
-#endif
- ],
- ac_cv_gnu_library_2_1=yes,
- ac_cv_gnu_library_2_1=no)
- ]
- )
- AC_SUBST(GLIBC21)
- GLIBC21="$ac_cv_gnu_library_2_1"
- ]
-)
diff --git a/config/iconv.m4 b/config/iconv.m4
index c5f3579..e2041b9 100644
--- a/config/iconv.m4
+++ b/config/iconv.m4
@@ -1,10 +1,8 @@
-# iconv.m4 serial AM4 (gettext-0.11.3)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
+# iconv.m4 serial 11 (gettext-0.18.1)
+dnl Copyright (C) 2000-2002, 2007-2010 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
dnl From Bruno Haible.
@@ -23,6 +21,7 @@ AC_DEFUN([AM_ICONV_LINK],
[
dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
dnl those with the standalone portable GNU libiconv installed).
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
dnl accordingly.
@@ -35,7 +34,7 @@ AC_DEFUN([AM_ICONV_LINK],
am_save_CPPFLAGS="$CPPFLAGS"
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
- AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
+ AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [
am_cv_func_iconv="no, consider installing GNU libiconv"
am_cv_lib_iconv=no
AC_TRY_LINK([#include <stdlib.h>
@@ -43,7 +42,7 @@ AC_DEFUN([AM_ICONV_LINK],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
- am_cv_func_iconv=yes)
+ [am_cv_func_iconv=yes])
if test "$am_cv_func_iconv" != yes; then
am_save_LIBS="$LIBS"
LIBS="$LIBS $LIBICONV"
@@ -52,13 +51,110 @@ AC_DEFUN([AM_ICONV_LINK],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
- am_cv_lib_iconv=yes
- am_cv_func_iconv=yes)
+ [am_cv_lib_iconv=yes]
+ [am_cv_func_iconv=yes])
LIBS="$am_save_LIBS"
fi
])
if test "$am_cv_func_iconv" = yes; then
- AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
+ AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [
+ dnl This tests against bugs in AIX 5.1, HP-UX 11.11, Solaris 10.
+ am_save_LIBS="$LIBS"
+ if test $am_cv_lib_iconv = yes; then
+ LIBS="$LIBS $LIBICONV"
+ fi
+ AC_TRY_RUN([
+#include <iconv.h>
+#include <string.h>
+int main ()
+{
+ /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+ returns. */
+ {
+ iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+ if (cd_utf8_to_88591 != (iconv_t)(-1))
+ {
+ static const char input[] = "\342\202\254"; /* EURO SIGN */
+ char buf[10];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_utf8_to_88591,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res == 0)
+ return 1;
+ }
+ }
+ /* Test against Solaris 10 bug: Failures are not distinguishable from
+ successful returns. */
+ {
+ iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
+ if (cd_ascii_to_88591 != (iconv_t)(-1))
+ {
+ static const char input[] = "\263";
+ char buf[10];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_ascii_to_88591,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res == 0)
+ return 1;
+ }
+ }
+#if 0 /* This bug could be worked around by the caller. */
+ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char buf[50];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if ((int)res > 0)
+ return 1;
+ }
+ }
+#endif
+ /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+ provided. */
+ if (/* Try standardized names. */
+ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+ /* Try IRIX, OSF/1 names. */
+ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+ /* Try AIX names. */
+ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+ /* Try HP-UX names. */
+ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+ return 1;
+ return 0;
+}], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no],
+ [case "$host_os" in
+ aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+ *) am_cv_func_iconv_works="guessing yes" ;;
+ esac])
+ LIBS="$am_save_LIBS"
+ ])
+ case "$am_cv_func_iconv_works" in
+ *no) am_func_iconv=no am_cv_lib_iconv=no ;;
+ *) am_func_iconv=yes ;;
+ esac
+ else
+ am_func_iconv=no am_cv_lib_iconv=no
+ fi
+ if test "$am_func_iconv" = yes; then
+ AC_DEFINE([HAVE_ICONV], [1],
+ [Define if you have the iconv() function and it works.])
fi
if test "$am_cv_lib_iconv" = yes; then
AC_MSG_CHECKING([how to link with libiconv])
@@ -70,16 +166,31 @@ AC_DEFUN([AM_ICONV_LINK],
LIBICONV=
LTLIBICONV=
fi
- AC_SUBST(LIBICONV)
- AC_SUBST(LTLIBICONV)
+ AC_SUBST([LIBICONV])
+ AC_SUBST([LTLIBICONV])
])
-AC_DEFUN([AM_ICONV],
+dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to
+dnl avoid warnings like
+dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required".
+dnl This is tricky because of the way 'aclocal' is implemented:
+dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN.
+dnl Otherwise aclocal's initial scan pass would miss the macro definition.
+dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions.
+dnl Otherwise aclocal would emit many "Use of uninitialized value $1"
+dnl warnings.
+m4_define([gl_iconv_AC_DEFUN],
+ m4_version_prereq([2.64],
+ [[AC_DEFUN_ONCE(
+ [$1], [$2])]],
+ [[AC_DEFUN(
+ [$1], [$2])]]))
+gl_iconv_AC_DEFUN([AM_ICONV],
[
AM_ICONV_LINK
if test "$am_cv_func_iconv" = yes; then
AC_MSG_CHECKING([for iconv declaration])
- AC_CACHE_VAL(am_cv_proto_iconv, [
+ AC_CACHE_VAL([am_cv_proto_iconv], [
AC_TRY_COMPILE([
#include <stdlib.h>
#include <iconv.h>
@@ -92,12 +203,12 @@ size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, si
#else
size_t iconv();
#endif
-], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
+], [], [am_cv_proto_iconv_arg1=""], [am_cv_proto_iconv_arg1="const"])
am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
- AC_MSG_RESULT([$]{ac_t:-
- }[$]am_cv_proto_iconv)
- AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
+ AC_MSG_RESULT([
+ $am_cv_proto_iconv])
+ AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1],
[Define as const if the declaration of iconv() needs const.])
fi
])
diff --git a/config/install-sh b/config/install-sh
index 6781b98..a9244eb 100755
--- a/config/install-sh
+++ b/config/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2011-01-19.21; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -156,6 +156,10 @@ while test $# -ne 0; do
-s) stripcmd=$stripprog;;
-t) dst_arg=$2
+ # Protect names problematic for `test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
shift;;
-T) no_target_directory=true;;
@@ -186,6 +190,10 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
fi
shift # arg
dst_arg=$arg
+ # Protect names problematic for `test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
done
fi
@@ -200,7 +208,11 @@ if test $# -eq 0; then
fi
if test -z "$dir_arg"; then
- trap '(exit $?); exit' 1 2 13 15
+ do_exit='(exit $ret); exit $ret'
+ trap "ret=129; $do_exit" 1
+ trap "ret=130; $do_exit" 2
+ trap "ret=141; $do_exit" 13
+ trap "ret=143; $do_exit" 15
# Set umask so as not to create temps with too-generous modes.
# However, 'strip' requires both read and write access to temps.
@@ -228,9 +240,9 @@ fi
for src
do
- # Protect names starting with `-'.
+ # Protect names problematic for `test' and other utilities.
case $src in
- -*) src=./$src;;
+ -* | [=\(\)!]) src=./$src;;
esac
if test -n "$dir_arg"; then
@@ -252,12 +264,7 @@ do
echo "$0: no destination specified." >&2
exit 1
fi
-
dst=$dst_arg
- # Protect names starting with `-'.
- case $dst in
- -*) dst=./$dst;;
- esac
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
@@ -385,7 +392,7 @@ do
case $dstdir in
/*) prefix='/';;
- -*) prefix='./';;
+ [-=\(\)!]*) prefix='./';;
*) prefix='';;
esac
@@ -403,7 +410,7 @@ do
for d
do
- test -z "$d" && continue
+ test X"$d" = X && continue
prefix=$prefix$d
if test -d "$prefix"; then
diff --git a/config/intdiv0.m4 b/config/intdiv0.m4
deleted file mode 100644
index 55dddcf..0000000
--- a/config/intdiv0.m4
+++ /dev/null
@@ -1,72 +0,0 @@
-# intdiv0.m4 serial 1 (gettext-0.11.3)
-dnl Copyright (C) 2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([gt_INTDIV0],
-[
- AC_REQUIRE([AC_PROG_CC])dnl
- AC_REQUIRE([AC_CANONICAL_HOST])dnl
-
- AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
- gt_cv_int_divbyzero_sigfpe,
- [
- AC_TRY_RUN([
-#include <stdlib.h>
-#include <signal.h>
-
-static void
-#ifdef __cplusplus
-sigfpe_handler (int sig)
-#else
-sigfpe_handler (sig) int sig;
-#endif
-{
- /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */
- exit (sig != SIGFPE);
-}
-
-int x = 1;
-int y = 0;
-int z;
-int nan;
-
-int main ()
-{
- signal (SIGFPE, sigfpe_handler);
-/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */
-#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
- signal (SIGTRAP, sigfpe_handler);
-#endif
-/* Linux/SPARC yields signal SIGILL. */
-#if defined (__sparc__) && defined (__linux__)
- signal (SIGILL, sigfpe_handler);
-#endif
-
- z = x / y;
- nan = y / y;
- exit (1);
-}
-], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
- [
- # Guess based on the CPU.
- case "$host_cpu" in
- alpha* | i[34567]86 | m68k | s390*)
- gt_cv_int_divbyzero_sigfpe="guessing yes";;
- *)
- gt_cv_int_divbyzero_sigfpe="guessing no";;
- esac
- ])
- ])
- case "$gt_cv_int_divbyzero_sigfpe" in
- *yes) value=1;;
- *) value=0;;
- esac
- AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
- [Define if integer division by zero raises signal SIGFPE.])
-])
diff --git a/config/intlmacosx.m4 b/config/intlmacosx.m4
new file mode 100644
index 0000000..dd91025
--- /dev/null
+++ b/config/intlmacosx.m4
@@ -0,0 +1,51 @@
+# intlmacosx.m4 serial 3 (gettext-0.18)
+dnl Copyright (C) 2004-2010 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Checks for special options needed on MacOS X.
+dnl Defines INTL_MACOSX_LIBS.
+AC_DEFUN([gt_INTL_MACOSX],
+[
+ dnl Check for API introduced in MacOS X 10.2.
+ AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
+ [gt_cv_func_CFPreferencesCopyAppValue],
+ [gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ AC_TRY_LINK([#include <CoreFoundation/CFPreferences.h>],
+ [CFPreferencesCopyAppValue(NULL, NULL)],
+ [gt_cv_func_CFPreferencesCopyAppValue=yes],
+ [gt_cv_func_CFPreferencesCopyAppValue=no])
+ LIBS="$gt_save_LIBS"])
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+ AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
+ [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
+ fi
+ dnl Check for API introduced in MacOS X 10.3.
+ AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent],
+ [gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ AC_TRY_LINK([#include <CoreFoundation/CFLocale.h>], [CFLocaleCopyCurrent();],
+ [gt_cv_func_CFLocaleCopyCurrent=yes],
+ [gt_cv_func_CFLocaleCopyCurrent=no])
+ LIBS="$gt_save_LIBS"])
+ if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+ AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1],
+ [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
+ fi
+ INTL_MACOSX_LIBS=
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+ INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+ fi
+ AC_SUBST([INTL_MACOSX_LIBS])
+])
diff --git a/config/intmax.m4 b/config/intmax.m4
deleted file mode 100644
index dfb08cc..0000000
--- a/config/intmax.m4
+++ /dev/null
@@ -1,32 +0,0 @@
-# intmax.m4 serial 1 (gettext-0.12)
-dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-dnl Test whether the system has the 'intmax_t' type, but don't attempt to
-dnl find a replacement if it is lacking.
-
-AC_DEFUN([gt_TYPE_INTMAX_T],
-[
- AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
- AC_REQUIRE([jm_AC_HEADER_STDINT_H])
- AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t,
- [AC_TRY_COMPILE([
-#include <stddef.h>
-#include <stdlib.h>
-#if HAVE_STDINT_H_WITH_UINTMAX
-#include <stdint.h>
-#endif
-#if HAVE_INTTYPES_H_WITH_UINTMAX
-#include <inttypes.h>
-#endif
-], [intmax_t x = -1;], gt_cv_c_intmax_t=yes, gt_cv_c_intmax_t=no)])
- if test $gt_cv_c_intmax_t = yes; then
- AC_DEFINE(HAVE_INTMAX_T, 1,
- [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
- fi
-])
diff --git a/config/inttypes-pri.m4 b/config/inttypes-pri.m4
deleted file mode 100644
index fd007c3..0000000
--- a/config/inttypes-pri.m4
+++ /dev/null
@@ -1,32 +0,0 @@
-# inttypes-pri.m4 serial 1 (gettext-0.11.4)
-dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-# Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
-# macros to non-string values. This is the case on AIX 4.3.3.
-
-AC_DEFUN([gt_INTTYPES_PRI],
-[
- AC_REQUIRE([gt_HEADER_INTTYPES_H])
- if test $gt_cv_header_inttypes_h = yes; then
- AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
- gt_cv_inttypes_pri_broken,
- [
- AC_TRY_COMPILE([#include <inttypes.h>
-#ifdef PRId32
-char *p = PRId32;
-#endif
-], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes)
- ])
- fi
- if test "$gt_cv_inttypes_pri_broken" = yes; then
- AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1,
- [Define if <inttypes.h> exists and defines unusable PRI* macros.])
- fi
-])
diff --git a/config/inttypes.m4 b/config/inttypes.m4
deleted file mode 100644
index ab370ff..0000000
--- a/config/inttypes.m4
+++ /dev/null
@@ -1,27 +0,0 @@
-# inttypes.m4 serial 1 (gettext-0.11.4)
-dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-# Define HAVE_INTTYPES_H if <inttypes.h> exists and doesn't clash with
-# <sys/types.h>.
-
-AC_DEFUN([gt_HEADER_INTTYPES_H],
-[
- AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h,
- [
- AC_TRY_COMPILE(
- [#include <sys/types.h>
-#include <inttypes.h>],
- [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no)
- ])
- if test $gt_cv_header_inttypes_h = yes; then
- AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
- [Define if <inttypes.h> exists and doesn't clash with <sys/types.h>.])
- fi
-])
diff --git a/config/inttypes_h.m4 b/config/inttypes_h.m4
deleted file mode 100644
index f342eba..0000000
--- a/config/inttypes_h.m4
+++ /dev/null
@@ -1,28 +0,0 @@
-# inttypes_h.m4 serial 5 (gettext-0.12)
-dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
-# doesn't clash with <sys/types.h>, and declares uintmax_t.
-
-AC_DEFUN([jm_AC_HEADER_INTTYPES_H],
-[
- AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
- [AC_TRY_COMPILE(
- [#include <sys/types.h>
-#include <inttypes.h>],
- [uintmax_t i = (uintmax_t) -1;],
- jm_ac_cv_header_inttypes_h=yes,
- jm_ac_cv_header_inttypes_h=no)])
- if test $jm_ac_cv_header_inttypes_h = yes; then
- AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
- [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
- and declares uintmax_t. ])
- fi
-])
diff --git a/config/isc-posix.m4 b/config/isc-posix.m4
deleted file mode 100644
index 1319dd1..0000000
--- a/config/isc-posix.m4
+++ /dev/null
@@ -1,26 +0,0 @@
-# isc-posix.m4 serial 2 (gettext-0.11.2)
-dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-# This file is not needed with autoconf-2.53 and newer. Remove it in 2005.
-
-# This test replaces the one in autoconf.
-# Currently this macro should have the same name as the autoconf macro
-# because gettext's gettext.m4 (distributed in the automake package)
-# still uses it. Otherwise, the use in gettext.m4 makes autoheader
-# give these diagnostics:
-# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
-# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
-
-undefine([AC_ISC_POSIX])
-
-AC_DEFUN([AC_ISC_POSIX],
- [
- dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
- AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
- ]
-)
diff --git a/config/lcmessage.m4 b/config/lcmessage.m4
deleted file mode 100644
index ffd4008..0000000
--- a/config/lcmessage.m4
+++ /dev/null
@@ -1,32 +0,0 @@
-# lcmessage.m4 serial 3 (gettext-0.11.3)
-dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1995.
-
-# Check whether LC_MESSAGES is available in <locale.h>.
-
-AC_DEFUN([AM_LC_MESSAGES],
-[
- AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
- [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
- am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
- if test $am_cv_val_LC_MESSAGES = yes; then
- AC_DEFINE(HAVE_LC_MESSAGES, 1,
- [Define if your <locale.h> file defines LC_MESSAGES.])
- fi
-])
diff --git a/config/lib-ld.m4 b/config/lib-ld.m4
index 38aeaec..ebb3052 100644
--- a/config/lib-ld.m4
+++ b/config/lib-ld.m4
@@ -1,10 +1,8 @@
-# lib-ld.m4 serial 3 (gettext-0.13)
-dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
+# lib-ld.m4 serial 4 (gettext-0.18)
+dnl Copyright (C) 1996-2003, 2009-2010 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
dnl Subroutines of libtool.m4,
dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
@@ -12,7 +10,7 @@ dnl with libtool.m4.
dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
AC_DEFUN([AC_LIB_PROG_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld],
[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
case `$LD -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*)
@@ -25,7 +23,7 @@ with_gnu_ld=$acl_cv_prog_gnu_ld
dnl From libtool-1.4. Sets the variable LD.
AC_DEFUN([AC_LIB_PROG_LD],
-[AC_ARG_WITH(gnu-ld,
+[AC_ARG_WITH([gnu-ld],
[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
AC_REQUIRE([AC_PROG_CC])dnl
@@ -61,7 +59,7 @@ if test "$GCC" = yes; then
# Canonicalize the path of ld
ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
done
test -z "$LD" && LD="$ac_prog"
;;
@@ -79,7 +77,7 @@ elif test "$with_gnu_ld" = yes; then
else
AC_MSG_CHECKING([for non-GNU ld])
fi
-AC_CACHE_VAL(acl_cv_path_LD,
+AC_CACHE_VAL([acl_cv_path_LD],
[if test -z "$LD"; then
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
for ac_dir in $PATH; do
@@ -91,9 +89,9 @@ AC_CACHE_VAL(acl_cv_path_LD,
# Break only if it was the GNU/non-GNU ld that we prefer.
case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
*GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break ;;
+ test "$with_gnu_ld" != no && break ;;
*)
- test "$with_gnu_ld" != yes && break ;;
+ test "$with_gnu_ld" != yes && break ;;
esac
fi
done
@@ -103,9 +101,9 @@ else
fi])
LD="$acl_cv_path_LD"
if test -n "$LD"; then
- AC_MSG_RESULT($LD)
+ AC_MSG_RESULT([$LD])
else
- AC_MSG_RESULT(no)
+ AC_MSG_RESULT([no])
fi
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
AC_LIB_PROG_LD_GNU
diff --git a/config/lib-link.m4 b/config/lib-link.m4
index eeb200d..c73bd8e 100644
--- a/config/lib-link.m4
+++ b/config/lib-link.m4
@@ -1,58 +1,66 @@
-# lib-link.m4 serial 4 (gettext-0.12)
-dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
+# lib-link.m4 serial 21 (gettext-0.18)
+dnl Copyright (C) 2001-2010 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
dnl From Bruno Haible.
+AC_PREREQ([2.54])
+
dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
dnl the libraries corresponding to explicit and implicit dependencies.
dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
dnl augments the CPPFLAGS variable.
+dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
+dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
AC_DEFUN([AC_LIB_LINKFLAGS],
[
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
AC_REQUIRE([AC_LIB_RPATH])
- define([Name],[translit([$1],[./-], [___])])
- define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+ pushdef([Name],[translit([$1],[./-], [___])])
+ pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
AC_LIB_LINKFLAGS_BODY([$1], [$2])
ac_cv_lib[]Name[]_libs="$LIB[]NAME"
ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
+ ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
])
LIB[]NAME="$ac_cv_lib[]Name[]_libs"
LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
+ LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
AC_SUBST([LIB]NAME)
AC_SUBST([LTLIB]NAME)
+ AC_SUBST([LIB]NAME[_PREFIX])
dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
dnl results of this search when this library appears as a dependency.
HAVE_LIB[]NAME=yes
- undefine([Name])
- undefine([NAME])
+ popdef([NAME])
+ popdef([Name])
])
-dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
+dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message])
dnl searches for libname and the libraries corresponding to explicit and
dnl implicit dependencies, together with the specified include files and
-dnl the ability to compile and link the specified testcode. If found, it
-dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
-dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
+dnl the ability to compile and link the specified testcode. The missing-message
+dnl defaults to 'no' and may contain additional hints for the user.
+dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME}
+dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and
dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
+dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
+dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
[
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
AC_REQUIRE([AC_LIB_RPATH])
- define([Name],[translit([$1],[./-], [___])])
- define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+ pushdef([Name],[translit([$1],[./-], [___])])
+ pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
dnl accordingly.
@@ -66,13 +74,25 @@ AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
ac_save_LIBS="$LIBS"
- LIBS="$LIBS $LIB[]NAME"
- AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
+ dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS,
+ dnl because these -l options might require -L options that are present in
+ dnl LIBS. -l options benefit only from the -L options listed before it.
+ dnl Otherwise, add it to the front of LIBS, because it may be a static
+ dnl library that depends on another static library that is present in LIBS.
+ dnl Static libraries benefit only from the static libraries listed after
+ dnl it.
+ case " $LIB[]NAME" in
+ *" -l"*) LIBS="$LIBS $LIB[]NAME" ;;
+ *) LIBS="$LIB[]NAME $LIBS" ;;
+ esac
+ AC_TRY_LINK([$3], [$4],
+ [ac_cv_lib[]Name=yes],
+ [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])'])
LIBS="$ac_save_LIBS"
])
if test "$ac_cv_lib[]Name" = yes; then
HAVE_LIB[]NAME=yes
- AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
+ AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.])
AC_MSG_CHECKING([how to link with lib[]$1])
AC_MSG_RESULT([$LIB[]NAME])
else
@@ -82,24 +102,32 @@ AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
CPPFLAGS="$ac_save_CPPFLAGS"
LIB[]NAME=
LTLIB[]NAME=
+ LIB[]NAME[]_PREFIX=
fi
AC_SUBST([HAVE_LIB]NAME)
AC_SUBST([LIB]NAME)
AC_SUBST([LTLIB]NAME)
- undefine([Name])
- undefine([NAME])
+ AC_SUBST([LIB]NAME[_PREFIX])
+ popdef([NAME])
+ popdef([Name])
])
dnl Determine the platform dependent parameters needed to use rpath:
-dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
-dnl hardcode_direct, hardcode_minus_L.
+dnl acl_libext,
+dnl acl_shlibext,
+dnl acl_hardcode_libdir_flag_spec,
+dnl acl_hardcode_libdir_separator,
+dnl acl_hardcode_direct,
+dnl acl_hardcode_minus_L.
AC_DEFUN([AC_LIB_RPATH],
[
+ dnl Tell automake >= 1.10 to complain if config.rpath is missing.
+ m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
- AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
+ AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [
CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
. ./conftest.sh
@@ -107,34 +135,66 @@ AC_DEFUN([AC_LIB_RPATH],
acl_cv_rpath=done
])
wl="$acl_cv_wl"
- libext="$acl_cv_libext"
- shlibext="$acl_cv_shlibext"
- hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
- hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
- hardcode_direct="$acl_cv_hardcode_direct"
- hardcode_minus_L="$acl_cv_hardcode_minus_L"
+ acl_libext="$acl_cv_libext"
+ acl_shlibext="$acl_cv_shlibext"
+ acl_libname_spec="$acl_cv_libname_spec"
+ acl_library_names_spec="$acl_cv_library_names_spec"
+ acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+ acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+ acl_hardcode_direct="$acl_cv_hardcode_direct"
+ acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
dnl Determine whether the user wants rpath handling at all.
- AC_ARG_ENABLE(rpath,
+ AC_ARG_ENABLE([rpath],
[ --disable-rpath do not hardcode runtime library paths],
:, enable_rpath=yes)
])
+dnl AC_LIB_FROMPACKAGE(name, package)
+dnl declares that libname comes from the given package. The configure file
+dnl will then not have a --with-libname-prefix option but a
+dnl --with-package-prefix option. Several libraries can come from the same
+dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar
+dnl macro call that searches for libname.
+AC_DEFUN([AC_LIB_FROMPACKAGE],
+[
+ pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+ define([acl_frompackage_]NAME, [$2])
+ popdef([NAME])
+ pushdef([PACK],[$2])
+ pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+ define([acl_libsinpackage_]PACKUP,
+ m4_ifdef([acl_libsinpackage_]PACKUP, [acl_libsinpackage_]PACKUP[[, ]],)[lib$1])
+ popdef([PACKUP])
+ popdef([PACK])
+])
+
dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
dnl the libraries corresponding to explicit and implicit dependencies.
dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
+dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
+dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
[
- define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+ pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+ pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])])
+ pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+ pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])])
+ dnl Autoconf >= 2.61 supports dots in --with options.
+ pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit(PACK,[.],[_])],PACK)])
dnl By default, look in $includedir and $libdir.
use_additional=yes
AC_LIB_WITH_FINAL_PREFIX([
eval additional_includedir=\"$includedir\"
eval additional_libdir=\"$libdir\"
])
- AC_LIB_ARG_WITH([lib$1-prefix],
-[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
- --without-lib$1-prefix don't search for lib$1 in includedir and libdir],
+ AC_ARG_WITH(P_A_C_K[-prefix],
+[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib
+ --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]],
[
if test "X$withval" = "Xno"; then
use_additional=no
@@ -146,7 +206,11 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
])
else
additional_includedir="$withval/include"
- additional_libdir="$withval/lib"
+ additional_libdir="$withval/$acl_libdirstem"
+ if test "$acl_libdirstem2" != "$acl_libdirstem" \
+ && ! test -d "$withval/$acl_libdirstem"; then
+ additional_libdir="$withval/$acl_libdirstem2"
+ fi
fi
fi
])
@@ -155,6 +219,10 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
LIB[]NAME=
LTLIB[]NAME=
INC[]NAME=
+ LIB[]NAME[]_PREFIX=
+ dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been
+ dnl computed. So it has to be reset here.
+ HAVE_LIB[]NAME=
rpathdirs=
ltrpathdirs=
names_already_handled=
@@ -194,22 +262,55 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
found_la=
found_so=
found_a=
+ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
+ if test -n "$acl_shlibext"; then
+ shrext=".$acl_shlibext" # typically: shrext=.so
+ else
+ shrext=
+ fi
if test $use_additional = yes; then
- if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
- found_dir="$additional_libdir"
- found_so="$additional_libdir/lib$name.$shlibext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- else
- if test -f "$additional_libdir/lib$name.$libext"; then
- found_dir="$additional_libdir"
- found_a="$additional_libdir/lib$name.$libext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
+ dir="$additional_libdir"
+ dnl The same code as in the loop below:
+ dnl First look for a shared library.
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
fi
fi
fi
+ dnl Then look for a static library.
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
fi
if test "X$found_dir" = "X"; then
for x in $LDFLAGS $LTLIB[]NAME; do
@@ -217,21 +318,46 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
case "$x" in
-L*)
dir=`echo "X$x" | sed -e 's/^X-L//'`
- if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
- found_dir="$dir"
- found_so="$dir/lib$name.$shlibext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- else
- if test -f "$dir/lib$name.$libext"; then
+ dnl First look for a shared library.
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
found_dir="$dir"
- found_a="$dir/lib$name.$libext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
fi
fi
fi
+ dnl Then look for a static library.
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
;;
esac
if test "X$found_dir" != "X"; then
@@ -246,7 +372,9 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
dnl Linking with a shared library. We attempt to hardcode its
dnl directory into the executable's runpath, unless it's the
dnl standard /usr/lib.
- if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+ if test "$enable_rpath" = no \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
dnl No hardcoding is needed.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
else
@@ -265,12 +393,12 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
ltrpathdirs="$ltrpathdirs $found_dir"
fi
dnl The hardcoding into $LIBNAME is system dependent.
- if test "$hardcode_direct" = yes; then
+ if test "$acl_hardcode_direct" = yes; then
dnl Using DIR/libNAME.so during linking hardcodes DIR into the
dnl resulting binary.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
else
- if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
dnl Use an explicit option to hardcode DIR into the resulting
dnl binary.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
@@ -301,13 +429,13 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
if test -z "$haveit"; then
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
fi
- if test "$hardcode_minus_L" != no; then
+ if test "$acl_hardcode_minus_L" != no; then
dnl FIXME: Not sure whether we should use
dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
dnl here.
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
else
- dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
+ dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
dnl here, because this doesn't fit in flags passed to the
dnl compiler. So give up. No hardcoding. This affects only
dnl very old systems.
@@ -332,8 +460,18 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
dnl Assume the include files are nearby.
additional_includedir=
case "$found_dir" in
- */lib | */lib/)
- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+ */$acl_libdirstem | */$acl_libdirstem/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+ if test "$name" = '$1'; then
+ LIB[]NAME[]_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ */$acl_libdirstem2 | */$acl_libdirstem2/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+ if test "$name" = '$1'; then
+ LIB[]NAME[]_PREFIX="$basedir"
+ fi
additional_includedir="$basedir/include"
;;
esac
@@ -350,7 +488,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
if test "X$additional_includedir" = "X/usr/local/include"; then
if test -n "$GCC"; then
case $host_os in
- linux*) haveit=yes;;
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
esac
fi
fi
@@ -394,12 +532,14 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
dnl 3. if it's already present in $LDFLAGS or the already
dnl constructed $LIBNAME,
dnl 4. if it doesn't exist as a directory.
- if test "X$additional_libdir" != "X/usr/lib"; then
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
+ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
haveit=
- if test "X$additional_libdir" = "X/usr/local/lib"; then
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
+ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
if test -n "$GCC"; then
case $host_os in
- linux*) haveit=yes;;
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
esac
fi
fi
@@ -495,18 +635,18 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
done
done
if test "X$rpathdirs" != "X"; then
- if test -n "$hardcode_libdir_separator"; then
+ if test -n "$acl_hardcode_libdir_separator"; then
dnl Weird platform: only the last -rpath option counts, the user must
dnl pass all path elements in one option. We can arrange that for a
dnl single library, but not when more than one $LIBNAMEs are used.
alldirs=
for found_dir in $rpathdirs; do
- alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
done
- dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
+ dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
acl_save_libdir="$libdir"
libdir="$alldirs"
- eval flag=\"$hardcode_libdir_flag_spec\"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
libdir="$acl_save_libdir"
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
else
@@ -514,7 +654,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
for found_dir in $rpathdirs; do
acl_save_libdir="$libdir"
libdir="$found_dir"
- eval flag=\"$hardcode_libdir_flag_spec\"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
libdir="$acl_save_libdir"
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
done
@@ -527,6 +667,11 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
done
fi
+ popdef([P_A_C_K])
+ popdef([PACKLIBS])
+ popdef([PACKUP])
+ popdef([PACK])
+ popdef([NAME])
])
dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
@@ -549,3 +694,81 @@ AC_DEFUN([AC_LIB_APPENDTOVAR],
fi
done
])
+
+dnl For those cases where a variable contains several -L and -l options
+dnl referring to unknown libraries and directories, this macro determines the
+dnl necessary additional linker options for the runtime path.
+dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
+dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
+dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
+dnl otherwise linking without libtool is assumed.
+AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
+[
+ AC_REQUIRE([AC_LIB_RPATH])
+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+ $1=
+ if test "$enable_rpath" != no; then
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+ dnl Use an explicit option to hardcode directories into the resulting
+ dnl binary.
+ rpathdirs=
+ next=
+ for opt in $2; do
+ if test -n "$next"; then
+ dir="$next"
+ dnl No need to hardcode the standard /usr/lib.
+ if test "X$dir" != "X/usr/$acl_libdirstem" \
+ && test "X$dir" != "X/usr/$acl_libdirstem2"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ next=
+ else
+ case $opt in
+ -L) next=yes ;;
+ -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
+ dnl No need to hardcode the standard /usr/lib.
+ if test "X$dir" != "X/usr/$acl_libdirstem" \
+ && test "X$dir" != "X/usr/$acl_libdirstem2"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ next= ;;
+ *) next= ;;
+ esac
+ fi
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n ""$3""; then
+ dnl libtool is used for linking. Use -R options.
+ for dir in $rpathdirs; do
+ $1="${$1}${$1:+ }-R$dir"
+ done
+ else
+ dnl The linker is used for linking directly.
+ if test -n "$acl_hardcode_libdir_separator"; then
+ dnl Weird platform: only the last -rpath option counts, the user
+ dnl must pass all path elements in one option.
+ alldirs=
+ for dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
+ done
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ $1="$flag"
+ else
+ dnl The -rpath options are cumulative.
+ for dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$dir"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ $1="${$1}${$1:+ }$flag"
+ done
+ fi
+ fi
+ fi
+ fi
+ fi
+ AC_SUBST([$1])
+])
diff --git a/config/lib-prefix.m4 b/config/lib-prefix.m4
index 8aff5a9..1601cea 100644
--- a/config/lib-prefix.m4
+++ b/config/lib-prefix.m4
@@ -1,10 +1,8 @@
-# lib-prefix.m4 serial 3 (gettext-0.13)
-dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
+# lib-prefix.m4 serial 7 (gettext-0.18)
+dnl Copyright (C) 2001-2005, 2008-2010 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
dnl From Bruno Haible.
@@ -26,6 +24,7 @@ AC_DEFUN([AC_LIB_PREFIX],
AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
dnl By default, look in $includedir and $libdir.
use_additional=yes
@@ -47,7 +46,7 @@ AC_DEFUN([AC_LIB_PREFIX],
])
else
additional_includedir="$withval/include"
- additional_libdir="$withval/lib"
+ additional_libdir="$withval/$acl_libdirstem"
fi
fi
])
@@ -71,7 +70,7 @@ AC_DEFUN([AC_LIB_PREFIX],
if test "X$additional_includedir" = "X/usr/local/include"; then
if test -n "$GCC"; then
case $host_os in
- linux*) haveit=yes;;
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
esac
fi
fi
@@ -89,7 +88,7 @@ AC_DEFUN([AC_LIB_PREFIX],
dnl 2. if it's already present in $LDFLAGS,
dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
dnl 4. if it doesn't exist as a directory.
- if test "X$additional_libdir" != "X/usr/lib"; then
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
haveit=
for x in $LDFLAGS; do
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
@@ -99,7 +98,7 @@ AC_DEFUN([AC_LIB_PREFIX],
fi
done
if test -z "$haveit"; then
- if test "X$additional_libdir" = "X/usr/local/lib"; then
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
if test -n "$GCC"; then
case $host_os in
linux*) haveit=yes;;
@@ -153,3 +152,73 @@ AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
exec_prefix="$acl_save_exec_prefix"
prefix="$acl_save_prefix"
])
+
+dnl AC_LIB_PREPARE_MULTILIB creates
+dnl - a variable acl_libdirstem, containing the basename of the libdir, either
+dnl "lib" or "lib64" or "lib/64",
+dnl - a variable acl_libdirstem2, as a secondary possible value for
+dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or
+dnl "lib/amd64".
+AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
+[
+ dnl There is no formal standard regarding lib and lib64.
+ dnl On glibc systems, the current practice is that on a system supporting
+ dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
+ dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine
+ dnl the compiler's default mode by looking at the compiler's library search
+ dnl path. If at least one of its elements ends in /lib64 or points to a
+ dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI.
+ dnl Otherwise we use the default, namely "lib".
+ dnl On Solaris systems, the current practice is that on a system supporting
+ dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
+ dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or
+ dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib.
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ acl_libdirstem=lib
+ acl_libdirstem2=
+ case "$host_os" in
+ solaris*)
+ dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
+ dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>.
+ dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
+ dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
+ dnl symlink is missing, so we set acl_libdirstem2 too.
+ AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit],
+ [AC_EGREP_CPP([sixtyfour bits], [
+#ifdef _LP64
+sixtyfour bits
+#endif
+ ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no])
+ ])
+ if test $gl_cv_solaris_64bit = yes; then
+ acl_libdirstem=lib/64
+ case "$host_cpu" in
+ sparc*) acl_libdirstem2=lib/sparcv9 ;;
+ i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
+ esac
+ fi
+ ;;
+ *)
+ searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+ if test -n "$searchpath"; then
+ acl_save_IFS="${IFS= }"; IFS=":"
+ for searchdir in $searchpath; do
+ if test -d "$searchdir"; then
+ case "$searchdir" in
+ */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
+ */../ | */.. )
+ # Better ignore directories of this form. They are misleading.
+ ;;
+ *) searchdir=`cd "$searchdir" && pwd`
+ case "$searchdir" in
+ */lib64 ) acl_libdirstem=lib64 ;;
+ esac ;;
+ esac
+ fi
+ done
+ IFS="$acl_save_IFS"
+ fi
+ ;;
+ esac
+ test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+])
diff --git a/config/longdouble.m4 b/config/longdouble.m4
deleted file mode 100644
index 1333d2f..0000000
--- a/config/longdouble.m4
+++ /dev/null
@@ -1,30 +0,0 @@
-# longdouble.m4 serial 1 (gettext-0.12)
-dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-dnl Test whether the compiler supports the 'long double' type.
-dnl Prerequisite: AC_PROG_CC
-
-AC_DEFUN([gt_TYPE_LONGDOUBLE],
-[
- AC_CACHE_CHECK([for long double], gt_cv_c_long_double,
- [if test "$GCC" = yes; then
- gt_cv_c_long_double=yes
- else
- AC_TRY_COMPILE([
- /* The Stardent Vistra knows sizeof(long double), but does not support it. */
- long double foo = 0.0;
- /* On Ultrix 4.3 cc, long double is 4 and double is 8. */
- int array [2*(sizeof(long double) >= sizeof(double)) - 1];
- ], ,
- gt_cv_c_long_double=yes, gt_cv_c_long_double=no)
- fi])
- if test $gt_cv_c_long_double = yes; then
- AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.])
- fi
-])
diff --git a/config/longlong.m4 b/config/longlong.m4
deleted file mode 100644
index d7d7350..0000000
--- a/config/longlong.m4
+++ /dev/null
@@ -1,25 +0,0 @@
-# longlong.m4 serial 4
-dnl Copyright (C) 1999-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-# Define HAVE_LONG_LONG if 'long long' works.
-
-AC_DEFUN([jm_AC_TYPE_LONG_LONG],
-[
- AC_CACHE_CHECK([for long long], ac_cv_type_long_long,
- [AC_TRY_LINK([long long ll = 1LL; int i = 63;],
- [long long llmax = (long long) -1;
- return ll << i | ll >> i | llmax / ll | llmax % ll;],
- ac_cv_type_long_long=yes,
- ac_cv_type_long_long=no)])
- if test $ac_cv_type_long_long = yes; then
- AC_DEFINE(HAVE_LONG_LONG, 1,
- [Define if you have the 'long long' type.])
- fi
-])
diff --git a/config/mdate-sh b/config/mdate-sh
index e631b22..60dc485 100755
--- a/config/mdate-sh
+++ b/config/mdate-sh
@@ -1,10 +1,10 @@
#!/bin/sh
# Get modification time of a file or directory and pretty-print it.
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2010-08-21.06; # UTC
-# Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005, 2007, 2009 Free
-# Software Foundation, Inc.
+# Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005, 2007, 2009, 2010
+# Free Software Foundation, Inc.
# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
#
# This program is free software; you can redistribute it and/or modify
@@ -29,6 +29,15 @@ scriptversion=2009-04-28.21; # UTC
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+fi
+
case $1 in
'')
echo "$0: No file. Try \`$0 --help' for more information." 1>&2
@@ -38,7 +47,8 @@ case $1 in
cat <<\EOF
Usage: mdate-sh [--help] [--version] FILE
-Pretty-print the modification time of FILE.
+Pretty-print the modification day of FILE, in the format:
+1 January 1970
Report bugs to <bug-automake@gnu.org>.
EOF
@@ -50,6 +60,13 @@ EOF
;;
esac
+error ()
+{
+ echo "$0: $1" >&2
+ exit 1
+}
+
+
# Prevent date giving response in another language.
LANG=C
export LANG
@@ -99,6 +116,7 @@ month=
command=
until test $month
do
+ test $# -gt 0 || error "failed parsing \`$ls_command /' output"
shift
# Add another shift to the command.
command="$command shift;"
@@ -118,8 +136,10 @@ do
esac
done
+test -n "$month" || error "failed parsing \`$ls_command /' output"
+
# Get the extended ls output of the file or directory.
-set dummy x`eval "$ls_command \"\$save_arg1\""`
+set dummy x`eval "$ls_command \"\\\$save_arg1\""`
# Remove all preceding arguments
eval $command
diff --git a/config/missing b/config/missing
index 28055d2..86a8fc3 100755
--- a/config/missing
+++ b/config/missing
@@ -1,10 +1,10 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2012-01-06.13; # UTC
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-# 2008, 2009 Free Software Foundation, Inc.
+# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
@@ -84,7 +84,6 @@ Supported PROGRAM values:
help2man touch the output file
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
- tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
@@ -122,15 +121,6 @@ case $1 in
# Not GNU programs, they don't have --version.
;;
- tar*)
- if test -n "$run"; then
- echo 1>&2 "ERROR: \`tar' requires --run"
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- exit 1
- fi
- ;;
-
*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
@@ -226,7 +216,7 @@ WARNING: \`$1' $msg. You should only need it if
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if test $# -ne 1; then
- eval LASTARG="\${$#}"
+ eval LASTARG=\${$#}
case $LASTARG in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
@@ -256,7 +246,7 @@ WARNING: \`$1' is $msg. You should only need it if
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if test $# -ne 1; then
- eval LASTARG="\${$#}"
+ eval LASTARG=\${$#}
case $LASTARG in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
@@ -318,41 +308,6 @@ WARNING: \`$1' is $msg. You should only need it if
touch $file
;;
- tar*)
- shift
-
- # We have already tried tar in the generic part.
- # Look for gnutar/gtar before invocation to avoid ugly error
- # messages.
- if (gnutar --version > /dev/null 2>&1); then
- gnutar "$@" && exit 0
- fi
- if (gtar --version > /dev/null 2>&1); then
- gtar "$@" && exit 0
- fi
- firstarg="$1"
- if shift; then
- case $firstarg in
- *o*)
- firstarg=`echo "$firstarg" | sed s/o//`
- tar "$firstarg" "$@" && exit 0
- ;;
- esac
- case $firstarg in
- *h*)
- firstarg=`echo "$firstarg" | sed s/h//`
- tar "$firstarg" "$@" && exit 0
- ;;
- esac
- fi
-
- echo 1>&2 "\
-WARNING: I can't seem to be able to run \`tar' with the given arguments.
- You may want to install GNU tar or Free paxutils, or check the
- command line arguments."
- exit 1
- ;;
-
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and is $msg.
diff --git a/config/mkinstalldirs b/config/mkinstalldirs
deleted file mode 100755
index d2d5f21..0000000
--- a/config/mkinstalldirs
+++ /dev/null
@@ -1,111 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
-
-errstatus=0
-dirmode=""
-
-usage="\
-Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
-
-# process command line arguments
-while test $# -gt 0 ; do
- case $1 in
- -h | --help | --h*) # -h for help
- echo "$usage" 1>&2
- exit 0
- ;;
- -m) # -m PERM arg
- shift
- test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
- dirmode=$1
- shift
- ;;
- --) # stop option processing
- shift
- break
- ;;
- -*) # unknown option
- echo "$usage" 1>&2
- exit 1
- ;;
- *) # first non-opt arg
- break
- ;;
- esac
-done
-
-for file
-do
- if test -d "$file"; then
- shift
- else
- break
- fi
-done
-
-case $# in
- 0) exit 0 ;;
-esac
-
-case $dirmode in
- '')
- if mkdir -p -- . 2>/dev/null; then
- echo "mkdir -p -- $*"
- exec mkdir -p -- "$@"
- fi
- ;;
- *)
- if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
- echo "mkdir -m $dirmode -p -- $*"
- exec mkdir -m "$dirmode" -p -- "$@"
- fi
- ;;
-esac
-
-for file
-do
- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
- shift
-
- pathcomp=
- for d
- do
- pathcomp="$pathcomp$d"
- case $pathcomp in
- -*) pathcomp=./$pathcomp ;;
- esac
-
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp"
-
- mkdir "$pathcomp" || lasterr=$?
-
- if test ! -d "$pathcomp"; then
- errstatus=$lasterr
- else
- if test ! -z "$dirmode"; then
- echo "chmod $dirmode $pathcomp"
- lasterr=""
- chmod "$dirmode" "$pathcomp" || lasterr=$?
-
- if test ! -z "$lasterr"; then
- errstatus=$lasterr
- fi
- fi
- fi
- fi
-
- pathcomp="$pathcomp/"
- done
-done
-
-exit $errstatus
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# End:
-# mkinstalldirs ends here
diff --git a/config/nls.m4 b/config/nls.m4
index 36bc493..003704c 100644
--- a/config/nls.m4
+++ b/config/nls.m4
@@ -1,10 +1,9 @@
-# nls.m4 serial 1 (gettext-0.12)
-dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
+# nls.m4 serial 5 (gettext-0.18)
+dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation,
+dnl Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
dnl
dnl This file can can be used in projects which are not available under
dnl the GNU General Public License or the GNU Library General Public
@@ -19,31 +18,15 @@ dnl Authors:
dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+AC_PREREQ([2.50])
+
AC_DEFUN([AM_NLS],
[
AC_MSG_CHECKING([whether NLS is requested])
dnl Default is enabled NLS
- AC_ARG_ENABLE(nls,
+ AC_ARG_ENABLE([nls],
[ --disable-nls do not use Native Language Support],
USE_NLS=$enableval, USE_NLS=yes)
- AC_MSG_RESULT($USE_NLS)
- AC_SUBST(USE_NLS)
-])
-
-AC_DEFUN([AM_MKINSTALLDIRS],
-[
- dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
- dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
- dnl Try to locate it.
- MKINSTALLDIRS=
- if test -n "$ac_aux_dir"; then
- case "$ac_aux_dir" in
- /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
- *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
- esac
- fi
- if test -z "$MKINSTALLDIRS"; then
- MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
- fi
- AC_SUBST(MKINSTALLDIRS)
+ AC_MSG_RESULT([$USE_NLS])
+ AC_SUBST([USE_NLS])
])
diff --git a/config/po.m4 b/config/po.m4
index e161998..47f36a4 100644
--- a/config/po.m4
+++ b/config/po.m4
@@ -1,10 +1,8 @@
-# po.m4 serial 3 (gettext-0.14)
-dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
+# po.m4 serial 17 (gettext-0.18)
+dnl Copyright (C) 1995-2010 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
dnl
dnl This file can can be used in projects which are not available under
dnl the GNU General Public License or the GNU Library General Public
@@ -19,14 +17,20 @@ dnl Authors:
dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+AC_PREREQ([2.50])
+
dnl Checks for all prerequisites of the po subdirectory.
AC_DEFUN([AM_PO_SUBDIRS],
[
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AC_PROG_INSTALL])dnl
- AC_REQUIRE([AM_MKINSTALLDIRS])dnl
+ AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
AC_REQUIRE([AM_NLS])dnl
+ dnl Release version of the gettext macros. This is used to ensure that
+ dnl the gettext macros and po/Makefile.in.in are in sync.
+ AC_SUBST([GETTEXT_MACRO_VERSION], [0.18])
+
dnl Perform the following tests also if --disable-nls has been given,
dnl because they are needed for "make dist" to work.
@@ -34,59 +38,61 @@ AC_DEFUN([AM_PO_SUBDIRS],
dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
dnl The second test excludes FreeBSD msgfmt.
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
- [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
+ [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
(if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
:)
- AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+ AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT])
+
+ dnl Test whether it is GNU msgfmt >= 0.15.
+changequote(,)dnl
+ case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
+ *) MSGFMT_015=$MSGFMT ;;
+ esac
+changequote([,])dnl
+ AC_SUBST([MSGFMT_015])
+changequote(,)dnl
+ case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
+ *) GMSGFMT_015=$GMSGFMT ;;
+ esac
+changequote([,])dnl
+ AC_SUBST([GMSGFMT_015])
dnl Search for GNU xgettext 0.12 or newer in the PATH.
dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
dnl The second test excludes FreeBSD xgettext.
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
+ [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
(if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
:)
dnl Remove leftover from FreeBSD xgettext call.
rm -f messages.po
+ dnl Test whether it is GNU xgettext >= 0.15.
+changequote(,)dnl
+ case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
+ *) XGETTEXT_015=$XGETTEXT ;;
+ esac
+changequote([,])dnl
+ AC_SUBST([XGETTEXT_015])
+
dnl Search for GNU msgmerge 0.11 or newer in the PATH.
AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
- [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
+ [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :)
- dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
- dnl Test whether we really found GNU msgfmt.
- if test "$GMSGFMT" != ":"; then
- dnl If it is no GNU msgfmt we define it as : so that the
- dnl Makefiles still can work.
- if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
- (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- : ;
- else
- GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
- AC_MSG_RESULT(
- [found $GMSGFMT program is not GNU msgfmt; ignore it])
- GMSGFMT=":"
- fi
- fi
+ dnl Installation directories.
+ dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we
+ dnl have to define it here, so that it can be used in po/Makefile.
+ test -n "$localedir" || localedir='${datadir}/locale'
+ AC_SUBST([localedir])
- dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
- dnl Test whether we really found GNU xgettext.
- if test "$XGETTEXT" != ":"; then
- dnl If it is no GNU xgettext we define it as : so that the
- dnl Makefiles still can work.
- if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
- (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- : ;
- else
- AC_MSG_RESULT(
- [found xgettext program is not GNU xgettext; ignore it])
- XGETTEXT=":"
- fi
- dnl Remove leftover from FreeBSD xgettext call.
- rm -f messages.po
- fi
+ dnl Support for AM_XGETTEXT_OPTION.
+ test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
+ AC_SUBST([XGETTEXT_EXTRA_OPTIONS])
- AC_OUTPUT_COMMANDS([
+ AC_CONFIG_COMMANDS([po-directories], [[
for ac_file in $CONFIG_FILES; do
# Support "outfile[:infile[:infile...]]"
case "$ac_file" in
@@ -106,6 +112,9 @@ AC_DEFUN([AM_PO_SUBDIRS],
/*) top_srcdir="$ac_given_srcdir" ;;
*) top_srcdir="$ac_dots$ac_given_srcdir" ;;
esac
+ # Treat a directory as a PO directory if and only if it has a
+ # POTFILES.in file. This allows packages to have multiple PO
+ # directories under different names or in different locations.
if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
rm -f "$ac_dir/POTFILES"
test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
@@ -119,12 +128,13 @@ AC_DEFUN([AM_PO_SUBDIRS],
if test -n "$OBSOLETE_ALL_LINGUAS"; then
test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
fi
- ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
- # Hide the ALL_LINGUAS assigment from automake.
+ ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
else
# The set of available languages was given in configure.in.
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
fi
# Compute POFILES
@@ -194,10 +204,10 @@ AC_DEFUN([AM_PO_SUBDIRS],
fi
;;
esac
- done],
+ done]],
[# Capture the value of obsolete ALL_LINGUAS because we need it to compute
# POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
- # from automake.
+ # from automake < 1.5.
eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
# Capture the value of LINGUAS because we need it to compute CATALOGS.
LINGUAS="${LINGUAS-%UNSET%}"
@@ -283,7 +293,7 @@ x
changequote([,])dnl
# Set POTFILES to the value of the Makefile variable POTFILES.
- sed_x_POTFILES="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`"
+ sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`
POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
# Compute POTFILES_DEPS as
# $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
@@ -298,14 +308,14 @@ changequote([,])dnl
fi
if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
# The LINGUAS file contains the set of available languages.
- ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
else
# Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
- sed_x_LINGUAS="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`"
+ sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`
ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
fi
- # Hide the ALL_LINGUAS assigment from automake.
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
# Compute POFILES
# as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
@@ -348,7 +358,7 @@ changequote([,])dnl
QMFILES="$QMFILES $srcdirpre$lang.qm"
frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
- frobbedlang=`echo $lang | sed -e 's/_/-/g'`
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
done
# CATALOGS depends on both $ac_dir and the user's LINGUAS
@@ -389,7 +399,7 @@ changequote([,])dnl
QTCATALOGS="$QTCATALOGS $lang.qm"
frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
- frobbedlang=`echo $lang | sed -e 's/_/-/g'`
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
done
fi
@@ -409,7 +419,7 @@ EOF
if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
# Add dependencies that cannot be formulated as a simple suffix rule.
for lang in $ALL_LINGUAS; do
- frobbedlang=`echo $lang | sed -e 's/_/-/g'`
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
cat >> "$ac_file.tmp" <<EOF
$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
@@ -424,3 +434,16 @@ EOF
fi
mv "$ac_file.tmp" "$ac_file"
])
+
+dnl Initializes the accumulator used by AM_XGETTEXT_OPTION.
+AC_DEFUN([AM_XGETTEXT_OPTION_INIT],
+[
+ XGETTEXT_EXTRA_OPTIONS=
+])
+
+dnl Registers an option to be passed to xgettext in the po subdirectory.
+AC_DEFUN([AM_XGETTEXT_OPTION],
+[
+ AC_REQUIRE([AM_XGETTEXT_OPTION_INIT])
+ XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1"
+])
diff --git a/config/printf-posix.m4 b/config/printf-posix.m4
deleted file mode 100644
index 186ba6a..0000000
--- a/config/printf-posix.m4
+++ /dev/null
@@ -1,46 +0,0 @@
-# printf-posix.m4 serial 2 (gettext-0.13.1)
-dnl Copyright (C) 2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-dnl Test whether the printf() function supports POSIX/XSI format strings with
-dnl positions.
-
-AC_DEFUN([gt_PRINTF_POSIX],
-[
- AC_REQUIRE([AC_PROG_CC])
- AC_CACHE_CHECK([whether printf() supports POSIX/XSI format strings],
- gt_cv_func_printf_posix,
- [
- AC_TRY_RUN([
-#include <stdio.h>
-#include <string.h>
-/* The string "%2$d %1$d", with dollar characters protected from the shell's
- dollar expansion (possibly an autoconf bug). */
-static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
-static char buf[100];
-int main ()
-{
- sprintf (buf, format, 33, 55);
- return (strcmp (buf, "55 33") != 0);
-}], gt_cv_func_printf_posix=yes, gt_cv_func_printf_posix=no,
- [
- AC_EGREP_CPP(notposix, [
-#if defined __NetBSD__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__
- notposix
-#endif
- ], gt_cv_func_printf_posix="guessing no",
- gt_cv_func_printf_posix="guessing yes")
- ])
- ])
- case $gt_cv_func_printf_posix in
- *yes)
- AC_DEFINE(HAVE_POSIX_PRINTF, 1,
- [Define if your printf() function supports format strings with positions.])
- ;;
- esac
-])
diff --git a/config/progtest.m4 b/config/progtest.m4
index 8fe527c..2d804ac 100644
--- a/config/progtest.m4
+++ b/config/progtest.m4
@@ -1,10 +1,8 @@
-# progtest.m4 serial 3 (gettext-0.12)
-dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
+# progtest.m4 serial 6 (gettext-0.18)
+dnl Copyright (C) 1996-2003, 2005, 2008-2010 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
dnl
dnl This file can can be used in projects which are not available under
dnl the GNU General Public License or the GNU Library General Public
@@ -18,6 +16,8 @@ dnl They are *not* in the public domain.
dnl Authors:
dnl Ulrich Drepper <drepper@cygnus.com>, 1996.
+AC_PREREQ([2.50])
+
# Search path for a program which passes the given test.
dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
@@ -55,7 +55,7 @@ rm -f conf$$.file
# Extract the first word of "$2", so it can be a program name with args.
set dummy $2; ac_word=[$]2
AC_MSG_CHECKING([for $ac_word])
-AC_CACHE_VAL(ac_cv_path_$1,
+AC_CACHE_VAL([ac_cv_path_$1],
[case "[$]$1" in
[[\\/]]* | ?:[[\\/]]*)
ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
@@ -67,6 +67,7 @@ AC_CACHE_VAL(ac_cv_path_$1,
test -z "$ac_dir" && ac_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD
if [$3]; then
ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
break 2
@@ -83,9 +84,9 @@ ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
esac])dnl
$1="$ac_cv_path_$1"
if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
- AC_MSG_RESULT([$]$1)
+ AC_MSG_RESULT([$][$1])
else
- AC_MSG_RESULT(no)
+ AC_MSG_RESULT([no])
fi
-AC_SUBST($1)dnl
+AC_SUBST([$1])dnl
])
diff --git a/config/signed.m4 b/config/signed.m4
deleted file mode 100644
index dc1f54f..0000000
--- a/config/signed.m4
+++ /dev/null
@@ -1,19 +0,0 @@
-# signed.m4 serial 1 (gettext-0.10.40)
-dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([bh_C_SIGNED],
-[
- AC_CACHE_CHECK([for signed], bh_cv_c_signed,
- [AC_TRY_COMPILE(, [signed char x;], bh_cv_c_signed=yes, bh_cv_c_signed=no)])
- if test $bh_cv_c_signed = no; then
- AC_DEFINE(signed, ,
- [Define to empty if the C compiler doesn't support this keyword.])
- fi
-])
diff --git a/config/size_max.m4 b/config/size_max.m4
deleted file mode 100644
index 5762fc3..0000000
--- a/config/size_max.m4
+++ /dev/null
@@ -1,61 +0,0 @@
-# size_max.m4 serial 2
-dnl Copyright (C) 2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([gl_SIZE_MAX],
-[
- AC_CHECK_HEADERS(stdint.h)
- dnl First test whether the system already has SIZE_MAX.
- AC_MSG_CHECKING([for SIZE_MAX])
- result=
- AC_EGREP_CPP([Found it], [
-#include <limits.h>
-#if HAVE_STDINT_H
-#include <stdint.h>
-#endif
-#ifdef SIZE_MAX
-Found it
-#endif
-], result=yes)
- if test -z "$result"; then
- dnl Define it ourselves. Here we assume that the type 'size_t' is not wider
- dnl than the type 'unsigned long'.
- dnl The _AC_COMPUTE_INT macro works up to LONG_MAX, since it uses 'expr',
- dnl which is guaranteed to work from LONG_MIN to LONG_MAX.
- _AC_COMPUTE_INT([~(size_t)0 / 10], res_hi,
- [#include <stddef.h>], result=?)
- _AC_COMPUTE_INT([~(size_t)0 % 10], res_lo,
- [#include <stddef.h>], result=?)
- _AC_COMPUTE_INT([sizeof (size_t) <= sizeof (unsigned int)], fits_in_uint,
- [#include <stddef.h>], result=?)
- if test "$fits_in_uint" = 1; then
- dnl Even though SIZE_MAX fits in an unsigned int, it must be of type
- dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'.
- AC_TRY_COMPILE([#include <stddef.h>
- extern size_t foo;
- extern unsigned long foo;
- ], [], fits_in_uint=0)
- fi
- if test -z "$result"; then
- if test "$fits_in_uint" = 1; then
- result="$res_hi$res_lo"U
- else
- result="$res_hi$res_lo"UL
- fi
- else
- dnl Shouldn't happen, but who knows...
- result='~(size_t)0'
- fi
- fi
- AC_MSG_RESULT([$result])
- if test "$result" != yes; then
- AC_DEFINE_UNQUOTED([SIZE_MAX], [$result],
- [Define as the maximum value of type 'size_t', if the system doesn't define it.])
- fi
-])
diff --git a/config/stdint_h.m4 b/config/stdint_h.m4
deleted file mode 100644
index 32ba7ae..0000000
--- a/config/stdint_h.m4
+++ /dev/null
@@ -1,28 +0,0 @@
-# stdint_h.m4 serial 3 (gettext-0.12)
-dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
-# doesn't clash with <sys/types.h>, and declares uintmax_t.
-
-AC_DEFUN([jm_AC_HEADER_STDINT_H],
-[
- AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h,
- [AC_TRY_COMPILE(
- [#include <sys/types.h>
-#include <stdint.h>],
- [uintmax_t i = (uintmax_t) -1;],
- jm_ac_cv_header_stdint_h=yes,
- jm_ac_cv_header_stdint_h=no)])
- if test $jm_ac_cv_header_stdint_h = yes; then
- AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
- [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
- and declares uintmax_t. ])
- fi
-])
diff --git a/config/texinfo.tex b/config/texinfo.tex
index bab1b33..bfd765d 100644
--- a/config/texinfo.tex
+++ b/config/texinfo.tex
@@ -3,11 +3,11 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2010-06-17.11}
+\def\texinfoversion{2013-09-11.11}
%
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+% 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
%
% This texinfo.tex file is free software: you can redistribute it and/or
% modify it under the terms of the GNU General Public License as
@@ -24,13 +24,14 @@
%
% As a special exception, when this file is read by TeX when processing
% a Texinfo source document, you may use the result without
-% restriction. (This has been our intent since Texinfo was invented.)
+% restriction. This Exception is an additional permission under section 7
+% of the GNU General Public License, version 3 ("GPLv3").
%
% Please try the latest version of texinfo.tex before submitting bug
% reports; you can get the latest version from:
-% http://www.gnu.org/software/texinfo/ (the Texinfo home page), or
-% ftp://tug.org/tex/texinfo.tex
-% (and all CTAN mirrors, see http://www.ctan.org).
+% http://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or
+% http://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or
+% http://www.gnu.org/software/texinfo/ (the Texinfo home page)
% The texinfo.tex in any given distribution could well be out
% of date, so if that's what you're using, please check.
%
@@ -116,10 +117,11 @@
% Set up fixed words for English if not already set.
\ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi
\ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi
+\ifx\putworderror\undefined \gdef\putworderror{error}\fi
\ifx\putwordfile\undefined \gdef\putwordfile{file}\fi
\ifx\putwordin\undefined \gdef\putwordin{in}\fi
-\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
-\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi
+\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
+\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi
\ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi
\ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi
\ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi
@@ -158,15 +160,18 @@
\def\spaceisspace{\catcode`\ =\spacecat}
% sometimes characters are active, so we need control sequences.
+\chardef\ampChar = `\&
\chardef\colonChar = `\:
\chardef\commaChar = `\,
\chardef\dashChar = `\-
\chardef\dotChar = `\.
\chardef\exclamChar= `\!
+\chardef\hashChar = `\#
\chardef\lquoteChar= `\`
\chardef\questChar = `\?
\chardef\rquoteChar= `\'
\chardef\semiChar = `\;
+\chardef\slashChar = `\/
\chardef\underChar = `\_
% Ignore a token.
@@ -215,7 +220,7 @@
\tracingmacros2
\tracingrestores1
\showboxbreadth\maxdimen \showboxdepth\maxdimen
- \ifx\eTeXversion\undefined\else % etex gives us more logging
+ \ifx\eTeXversion\thisisundefined\else % etex gives us more logging
\tracingscantokens1
\tracingifs1
\tracinggroups1
@@ -226,6 +231,13 @@
\errorcontextlines16
}%
+% @errormsg{MSG}. Do the index-like expansions on MSG, but if things
+% aren't perfect, it's not the end of the world, being an error message,
+% after all.
+%
+\def\errormsg{\begingroup \indexnofonts \doerrormsg}
+\def\doerrormsg#1{\errmessage{#1}}
+
% add check for \lastpenalty to plain's definitions. If the last thing
% we did was a \nobreak, we don't want to insert more space.
%
@@ -269,9 +281,9 @@
\toks6=\expandafter{\prevsectiondefs}%
\toks8=\expandafter{\lastcolordefs}%
\mark{%
- \the\toks0 \the\toks2
- \noexpand\or \the\toks4 \the\toks6
- \noexpand\else \the\toks8
+ \the\toks0 \the\toks2 % 0: top marks (\last...)
+ \noexpand\or \the\toks4 \the\toks6 % 1: bottom marks (default, \prev...)
+ \noexpand\else \the\toks8 % 2: color marks
}%
}
% \topmark doesn't work for the very first chapter (after the title
@@ -310,10 +322,13 @@
%
% Do this outside of the \shipout so @code etc. will be expanded in
% the headline as they should be, not taken literally (outputting ''code).
+ \def\commmonheadfootline{\let\hsize=\pagewidth \texinfochars}
+ %
\ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
- \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
+ \global\setbox\headlinebox = \vbox{\commmonheadfootline \makeheadline}%
+ %
\ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
- \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
+ \global\setbox\footlinebox = \vbox{\commmonheadfootline \makefootline}%
%
{%
% Have to do this stuff outside the \shipout because we want it to
@@ -545,7 +560,7 @@
}
\def\inenvironment#1{%
\ifx#1\empty
- out of any environment%
+ outside of any environment%
\else
in environment \expandafter\string#1%
\fi
@@ -557,7 +572,7 @@
\parseargdef\end{%
\if 1\csname iscond.#1\endcsname
\else
- % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03
+ % The general wording of \badenverr may not be ideal.
\expandafter\checkenv\csname#1\endcsname
\csname E#1\endcsname
\endgroup
@@ -583,7 +598,7 @@
\def\:{\spacefactor=1000 }
% @* forces a line break.
-\def\*{\hfil\break\hbox{}\ignorespaces}
+\def\*{\unskip\hfil\break\hbox{}\ignorespaces}
% @/ allows a line break.
\let\/=\allowbreak
@@ -608,7 +623,7 @@
\else\ifx\temp\offword \plainnonfrenchspacing
\else
\errhelp = \EMsimple
- \errmessage{Unknown @frenchspacing option `\temp', must be on/off}%
+ \errmessage{Unknown @frenchspacing option `\temp', must be on|off}%
\fi\fi
}
@@ -690,15 +705,6 @@ where each line of input produces a line of output.}
\newdimen\mil \mil=0.001in
-% Old definition--didn't work.
-%\parseargdef\need{\par %
-%% This method tries to make TeX break the page naturally
-%% if the depth of the box does not fit.
-%{\baselineskip=0pt%
-%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak
-%\prevdepth=-1000pt
-%}}
-
\parseargdef\need{%
% Ensure vertical mode, so we don't make a big box in the middle of a
% paragraph.
@@ -849,6 +855,7 @@ where each line of input produces a line of output.}
\makevalueexpandable % we want to expand any @value in FILE.
\turnoffactive % and allow special characters in the expansion
\indexnofonts % Allow `@@' and other weird things in file names.
+ \wlog{texinfo.tex: doing @include of #1^^J}%
\edef\temp{\noexpand\input #1 }%
%
% This trickery is to read FILE outside of a group, in case it makes
@@ -884,7 +891,7 @@ where each line of input produces a line of output.}
\def\popthisfilestack{\errthisfilestackempty}
\def\errthisfilestackempty{\errmessage{Internal error:
the stack of filenames is empty.}}
-
+%
\def\thisfile{}
% @center line
@@ -892,36 +899,46 @@ where each line of input produces a line of output.}
%
\parseargdef\center{%
\ifhmode
- \let\next\centerH
+ \let\centersub\centerH
\else
- \let\next\centerV
+ \let\centersub\centerV
\fi
- \next{\hfil \ignorespaces#1\unskip \hfil}%
+ \centersub{\hfil \ignorespaces#1\unskip \hfil}%
+ \let\centersub\relax % don't let the definition persist, just in case
}
-\def\centerH#1{%
- {%
- \hfil\break
- \advance\hsize by -\leftskip
- \advance\hsize by -\rightskip
- \line{#1}%
- \break
- }%
+\def\centerH#1{{%
+ \hfil\break
+ \advance\hsize by -\leftskip
+ \advance\hsize by -\rightskip
+ \line{#1}%
+ \break
+}}
+%
+\newcount\centerpenalty
+\def\centerV#1{%
+ % The idea here is the same as in \startdefun, \cartouche, etc.: if
+ % @center is the first thing after a section heading, we need to wipe
+ % out the negative parskip inserted by \sectionheading, but still
+ % prevent a page break here.
+ \centerpenalty = \lastpenalty
+ \ifnum\centerpenalty>10000 \vskip\parskip \fi
+ \ifnum\centerpenalty>9999 \penalty\centerpenalty \fi
+ \line{\kern\leftskip #1\kern\rightskip}%
}
-\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}}
% @sp n outputs n lines of vertical space
-
+%
\parseargdef\sp{\vskip #1\baselineskip}
% @comment ...line which is ignored...
% @c is the same as @comment
% @ignore ... @end ignore is another way to write a comment
-
+%
\def\comment{\begingroup \catcode`\^^M=\other%
\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
\commentxxx}
{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
-
+%
\let\c=\comment
% @paragraphindent NCHARS
@@ -1078,9 +1095,8 @@ where each line of input produces a line of output.}
\newif\ifpdfmakepagedest
% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1
-% can be set). So we test for \relax and 0 as well as \undefined,
-% borrowed from ifpdf.sty.
-\ifx\pdfoutput\undefined
+% can be set). So we test for \relax and 0 as well as being undefined.
+\ifx\pdfoutput\thisisundefined
\else
\ifx\pdfoutput\relax
\else
@@ -1095,50 +1111,24 @@ where each line of input produces a line of output.}
% for display in the outlines, and in other places. Thus, we have to
% double any backslashes. Otherwise, a name like "\node" will be
% interpreted as a newline (\n), followed by o, d, e. Not good.
-% http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html
-% (and related messages, the final outcome is that it is up to the TeX
-% user to double the backslashes and otherwise make the string valid, so
-% that's what we do).
-
-% double active backslashes.
-%
-{\catcode`\@=0 \catcode`\\=\active
- @gdef@activebackslashdouble{%
- @catcode`@\=@active
- @let\=@doublebackslash}
-}
-
-% To handle parens, we must adopt a different approach, since parens are
-% not active characters. hyperref.dtx (which has the same problem as
-% us) handles it with this amazing macro to replace tokens, with minor
-% changes for Texinfo. It is included here under the GPL by permission
-% from the author, Heiko Oberdiek.
-%
-% #1 is the tokens to replace.
-% #2 is the replacement.
-% #3 is the control sequence with the string.
-%
-\def\HyPsdSubst#1#2#3{%
- \def\HyPsdReplace##1#1##2\END{%
- ##1%
- \ifx\\##2\\%
- \else
- #2%
- \HyReturnAfterFi{%
- \HyPsdReplace##2\END
- }%
- \fi
- }%
- \xdef#3{\expandafter\HyPsdReplace#3#1\END}%
-}
-\long\def\HyReturnAfterFi#1\fi{\fi#1}
-
-% #1 is a control sequence in which to do the replacements.
-\def\backslashparens#1{%
- \xdef#1{#1}% redefine it as its expansion; the definition is simply
- % \lastnode when called from \setref -> \pdfmkdest.
- \HyPsdSubst{(}{\realbackslash(}{#1}%
- \HyPsdSubst{)}{\realbackslash)}{#1}%
+%
+% See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and
+% related messages. The final outcome is that it is up to the TeX user
+% to double the backslashes and otherwise make the string valid, so
+% that's what we do. pdftex 1.30.0 (ca.2005) introduced a primitive to
+% do this reliably, so we use it.
+
+% #1 is a control sequence in which to do the replacements,
+% which we \xdef.
+\def\txiescapepdf#1{%
+ \ifx\pdfescapestring\thisisundefined
+ % No primitive available; should we give a warning or log?
+ % Many times it won't matter.
+ \else
+ % The expandable \pdfescapestring primitive escapes parentheses,
+ % backslashes, and other special chars.
+ \xdef#1{\pdfescapestring{#1}}%
+ \fi
}
\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images
@@ -1197,32 +1187,34 @@ output) for that.)}
%
% #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
\def\dopdfimage#1#2#3{%
- \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
- \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
+ \def\pdfimagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
+ \def\pdfimageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
%
- % pdftex (and the PDF format) support .png, .jpg, .pdf (among
- % others). Let's try in that order.
+ % pdftex (and the PDF format) support .pdf, .png, .jpg (among
+ % others). Let's try in that order, PDF first since if
+ % someone has a scalable image, presumably better to use that than a
+ % bitmap.
\let\pdfimgext=\empty
\begingroup
- \openin 1 #1.png \ifeof 1
- \openin 1 #1.jpg \ifeof 1
- \openin 1 #1.jpeg \ifeof 1
- \openin 1 #1.JPG \ifeof 1
- \openin 1 #1.pdf \ifeof 1
- \openin 1 #1.PDF \ifeof 1
+ \openin 1 #1.pdf \ifeof 1
+ \openin 1 #1.PDF \ifeof 1
+ \openin 1 #1.png \ifeof 1
+ \openin 1 #1.jpg \ifeof 1
+ \openin 1 #1.jpeg \ifeof 1
+ \openin 1 #1.JPG \ifeof 1
\errhelp = \nopdfimagehelp
\errmessage{Could not find image file #1 for pdf}%
- \else \gdef\pdfimgext{PDF}%
+ \else \gdef\pdfimgext{JPG}%
\fi
- \else \gdef\pdfimgext{pdf}%
+ \else \gdef\pdfimgext{jpeg}%
\fi
- \else \gdef\pdfimgext{JPG}%
+ \else \gdef\pdfimgext{jpg}%
\fi
- \else \gdef\pdfimgext{jpeg}%
+ \else \gdef\pdfimgext{png}%
\fi
- \else \gdef\pdfimgext{jpg}%
+ \else \gdef\pdfimgext{PDF}%
\fi
- \else \gdef\pdfimgext{png}%
+ \else \gdef\pdfimgext{pdf}%
\fi
\closein 1
\endgroup
@@ -1234,8 +1226,8 @@ output) for that.)}
\else
\immediate\pdfximage
\fi
- \ifdim \wd0 >0pt width \imagewidth \fi
- \ifdim \wd2 >0pt height \imageheight \fi
+ \ifdim \wd0 >0pt width \pdfimagewidth \fi
+ \ifdim \wd2 >0pt height \pdfimageheight \fi
\ifnum\pdftexversion<13
#1.\pdfimgext
\else
@@ -1250,10 +1242,9 @@ output) for that.)}
% such as \, aren't expanded when present in a section title.
\indexnofonts
\turnoffactive
- \activebackslashdouble
\makevalueexpandable
\def\pdfdestname{#1}%
- \backslashparens\pdfdestname
+ \txiescapepdf\pdfdestname
\safewhatsit{\pdfdest name{\pdfdestname} xyz}%
}}
%
@@ -1285,28 +1276,22 @@ output) for that.)}
% page number. We could generate a destination for the section
% text in the case where a section has no node, but it doesn't
% seem worth the trouble, since most documents are normally structured.
- \def\pdfoutlinedest{#3}%
+ \edef\pdfoutlinedest{#3}%
\ifx\pdfoutlinedest\empty
\def\pdfoutlinedest{#4}%
\else
- % Doubled backslashes in the name.
- {\activebackslashdouble \xdef\pdfoutlinedest{#3}%
- \backslashparens\pdfoutlinedest}%
+ \txiescapepdf\pdfoutlinedest
\fi
%
- % Also double the backslashes in the display string.
- {\activebackslashdouble \xdef\pdfoutlinetext{#1}%
- \backslashparens\pdfoutlinetext}%
+ % Also escape PDF chars in the display string.
+ \edef\pdfoutlinetext{#1}%
+ \txiescapepdf\pdfoutlinetext
%
\pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
}
%
\def\pdfmakeoutlines{%
\begingroup
- % Thanh's hack / proper braces in bookmarks
- \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
- \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
- %
% Read toc silently, to get counts of subentries for \pdfoutline.
\def\partentry##1##2##3##4{}% ignore parts in the outlines
\def\numchapentry##1##2##3##4{%
@@ -1362,25 +1347,41 @@ output) for that.)}
% Latin 2 (0xea) gets translated to a | character. Info from
% Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100.
%
- % xx to do this right, we have to translate 8-bit characters to
- % their "best" equivalent, based on the @documentencoding. Right
- % now, I guess we'll just let the pdf reader have its way.
+ % TODO this right, we have to translate 8-bit characters to
+ % their "best" equivalent, based on the @documentencoding. Too
+ % much work for too little return. Just use the ASCII equivalents
+ % we use for the index sort strings.
+ %
\indexnofonts
\setupdatafile
+ % We can have normal brace characters in the PDF outlines, unlike
+ % Texinfo index files. So set that up.
+ \def\{{\lbracecharliteral}%
+ \def\}{\rbracecharliteral}%
\catcode`\\=\active \otherbackslash
\input \tocreadfilename
\endgroup
}
+ {\catcode`[=1 \catcode`]=2
+ \catcode`{=\other \catcode`}=\other
+ \gdef\lbracecharliteral[{]%
+ \gdef\rbracecharliteral[}]%
+ ]
%
\def\skipspaces#1{\def\PP{#1}\def\D{|}%
\ifx\PP\D\let\nextsp\relax
\else\let\nextsp\skipspaces
- \ifx\p\space\else\addtokens{\filename}{\PP}%
- \advance\filenamelength by 1
- \fi
+ \addtokens{\filename}{\PP}%
+ \advance\filenamelength by 1
\fi
\nextsp}
- \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
+ \def\getfilename#1{%
+ \filenamelength=0
+ % If we don't expand the argument now, \skipspaces will get
+ % snagged on things like "@value{foo}".
+ \edef\temp{#1}%
+ \expandafter\skipspaces\temp|\relax
+ }
\ifnum\pdftexversion < 14
\let \startlink \pdfannotlink
\else
@@ -1477,9 +1478,6 @@ output) for that.)}
\def\ttsl{\setfontstyle{ttsl}}
-% Default leading.
-\newdimen\textleading \textleading = 13.2pt
-
% Set the baselineskip to #1, and the lineskip and strut size
% correspondingly. There is no deep meaning behind these magic numbers
% used as factors; they just match (closely enough) what Knuth defined.
@@ -1491,6 +1489,7 @@ output) for that.)}
% can get a sort of poor man's double spacing by redefining this.
\def\baselinefactor{1}
%
+\newdimen\textleading
\def\setleading#1{%
\dimen0 = #1\relax
\normalbaselineskip = \baselinefactor\dimen0
@@ -1512,7 +1511,7 @@ output) for that.)}
% if we are producing pdf, and we have \pdffontattr, then define cmaps.
% (\pdffontattr was introduced many years ago, but people still run
% older pdftex's; it's easy to conditionalize, so we do.)
-\ifpdf \ifx\pdffontattr\undefined \else
+\ifpdf \ifx\pdffontattr\thisisundefined \else
\begingroup
\catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
\catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
@@ -1763,28 +1762,34 @@ end
\fi\fi
-% Set the font macro #1 to the font named #2, adding on the
-% specified font prefix (normally `cm').
+% Set the font macro #1 to the font named \fontprefix#2.
% #3 is the font's design size, #4 is a scale factor, #5 is the CMap
-% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass
-% empty to omit).
+% encoding (only OT1, OT1IT and OT1TT are allowed, or empty to omit).
+% Example:
+% #1 = \textrm
+% #2 = \rmshape
+% #3 = 10
+% #4 = \mainmagstep
+% #5 = OT1
+%
\def\setfont#1#2#3#4#5{%
\font#1=\fontprefix#2#3 scaled #4
\csname cmap#5\endcsname#1%
}
% This is what gets called when #5 of \setfont is empty.
\let\cmap\gobble
-% emacs-page end of cmaps
+%
+% (end of cmaps)
% Use cm as the default font prefix.
% To specify the font prefix, you must define \fontprefix
% before you read in texinfo.tex.
-\ifx\fontprefix\undefined
+\ifx\fontprefix\thisisundefined
\def\fontprefix{cm}
\fi
% Support font families that don't use the same naming scheme as CM.
\def\rmshape{r}
-\def\rmbshape{bx} %where the normal face is bold
+\def\rmbshape{bx} % where the normal face is bold
\def\bfshape{b}
\def\bxshape{bx}
\def\ttshape{tt}
@@ -1799,8 +1804,7 @@ end
\def\scshape{csc}
\def\scbshape{csc}
-% Definitions for a main text size of 11pt. This is the default in
-% Texinfo.
+% Definitions for a main text size of 11pt. (The default in Texinfo.)
%
\def\definetextfontsizexi{%
% Text fonts (11.2pt, magstep1).
@@ -1925,7 +1929,7 @@ end
\textleading = 13.2pt % line spacing for 11pt CM
\textfonts % reset the current fonts
\rm
-} % end of 11pt text font size definitions
+} % end of 11pt text font size definitions, \definetextfontsizexi
% Definitions to make the main text be 10pt Computer Modern, with
@@ -2057,7 +2061,7 @@ end
\textleading = 12pt % line spacing for 10pt CM
\textfonts % reset the current fonts
\rm
-} % end of 10pt text font size definitions
+} % end of 10pt text font size definitions, \definetextfontsizex
% We provide the user-level command
@@ -2070,7 +2074,7 @@ end
%
\parseargdef\fonttextsize{%
\def\textsizearg{#1}%
- \wlog{doing @fonttextsize \textsizearg}%
+ %\wlog{doing @fonttextsize \textsizearg}%
%
% Set \globaldefs so that documents can use this inside @tex, since
% makeinfo 4.8 does not support it, but we need it nonetheless.
@@ -2252,12 +2256,14 @@ end
% Markup style setup for left and right quotes.
\defmarkupstylesetup\markupsetuplq{%
- \expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname
+ \expandafter\let\expandafter \temp
+ \csname markupsetuplq\currentmarkupstyle\endcsname
\ifx\temp\relax \markupsetuplqdefault \else \temp \fi
}
\defmarkupstylesetup\markupsetuprq{%
- \expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname
+ \expandafter\let\expandafter \temp
+ \csname markupsetuprq\currentmarkupstyle\endcsname
\ifx\temp\relax \markupsetuprqdefault \else \temp \fi
}
@@ -2270,8 +2276,6 @@ end
\gdef\markupsetcodequoteleft{\let`\codequoteleft}
\gdef\markupsetcodequoteright{\let'\codequoteright}
-
-\gdef\markupsetnoligaturesquoteleft{\let`\noligaturesquoteleft}
}
\let\markupsetuplqcode \markupsetcodequoteleft
@@ -2280,6 +2284,9 @@ end
\let\markupsetuplqexample \markupsetcodequoteleft
\let\markupsetuprqexample \markupsetcodequoteright
%
+\let\markupsetuplqkbd \markupsetcodequoteleft
+\let\markupsetuprqkbd \markupsetcodequoteright
+%
\let\markupsetuplqsamp \markupsetcodequoteleft
\let\markupsetuprqsamp \markupsetcodequoteright
%
@@ -2289,14 +2296,11 @@ end
\let\markupsetuplqverbatim \markupsetcodequoteleft
\let\markupsetuprqverbatim \markupsetcodequoteright
-\let\markupsetuplqkbd \markupsetnoligaturesquoteleft
-
-% Allow an option to not replace quotes with a regular directed right
-% quote/apostrophe (char 0x27), but instead use the undirected quote
-% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it
-% the default, but it works for pasting with more pdf viewers (at least
-% evince), the lilypond developers report. xpdf does work with the
-% regular 0x27.
+% Allow an option to not use regular directed right quote/apostrophe
+% (char 0x27), but instead the undirected quote from cmtt (char 0x0d).
+% The undirected quote is ugly, so don't make it the default, but it
+% works for pasting with more pdf viewers (at least evince), the
+% lilypond developers report. xpdf does work with the regular 0x27.
%
\def\codequoteright{%
\expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
@@ -2320,6 +2324,36 @@ end
\else \char'22 \fi
}
+% Commands to set the quote options.
+%
+\parseargdef\codequoteundirected{%
+ \def\temp{#1}%
+ \ifx\temp\onword
+ \expandafter\let\csname SETtxicodequoteundirected\endcsname
+ = t%
+ \else\ifx\temp\offword
+ \expandafter\let\csname SETtxicodequoteundirected\endcsname
+ = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @codequoteundirected value `\temp', must be on|off}%
+ \fi\fi
+}
+%
+\parseargdef\codequotebacktick{%
+ \def\temp{#1}%
+ \ifx\temp\onword
+ \expandafter\let\csname SETtxicodequotebacktick\endcsname
+ = t%
+ \else\ifx\temp\offword
+ \expandafter\let\csname SETtxicodequotebacktick\endcsname
+ = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @codequotebacktick value `\temp', must be on|off}%
+ \fi\fi
+}
+
% [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font.
\def\noligaturesquoteleft{\relax\lq}
@@ -2333,7 +2367,7 @@ end
% and 2) do not add an italic correction.
\def\dosmartslant#1#2{%
\ifusingtt
- {\ttsl #2\let\next=\relax}%
+ {{\ttsl #2}\let\next=\relax}%
{\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}%
\next
}
@@ -2346,20 +2380,29 @@ end
\ifx\next,%
\else\ifx\next-%
\else\ifx\next.%
+ \else\ifx\next\.%
+ \else\ifx\next\comma%
\else\ptexslash
- \fi\fi\fi}
+ \fi\fi\fi\fi\fi
+ \aftersmartic
+}
-% like \smartslanted except unconditionally uses \ttsl, and no ic.
-% @var is set to this for defun arguments.
+% Unconditional use \ttsl, and no ic. @var is set to this for defuns.
\def\ttslanted#1{{\ttsl #1}}
% @cite is like \smartslanted except unconditionally use \sl. We never want
% ttsl for book titles, do we?
\def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection}
+\def\aftersmartic{}
+\def\var#1{%
+ \let\saveaftersmartic = \aftersmartic
+ \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}%
+ \smartslanted{#1}%
+}
+
\let\i=\smartitalic
\let\slanted=\smartslanted
-\def\var#1{\smartslanted{#1}}
\let\dfn=\smartslanted
\let\emph=\smartitalic
@@ -2409,34 +2452,12 @@ end
% @samp.
\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}}
-% definition of @key that produces a lozenge. Doesn't adjust to text size.
-%\setfont\keyrm\rmshape{8}{1000}{OT1}
-%\font\keysy=cmsy9
-%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
-% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
-% \vbox{\hrule\kern-0.4pt
-% \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
-% \kern-0.4pt\hrule}%
-% \kern-.06em\raise0.4pt\hbox{\angleright}}}}
-
-% definition of @key with no lozenge. If the current font is already
-% monospace, don't change it; that way, we respect @kbdinputstyle. But
-% if it isn't monospace, then use \tt.
-%
-\def\key#1{{\setupmarkupstyle{key}%
- \nohyphenation
- \ifmonospace\else\tt\fi
- #1}\null}
-
-% ctrl is no longer a Texinfo command.
-\def\ctrl #1{{\tt \rawbackslash \hat}#1}
-
-% @file, @option are the same as @samp.
-\let\file=\samp
-\let\option=\samp
+% @indicateurl is \samp, that is, with quotes.
+\let\indicateurl=\samp
-% @code is a modification of @t,
-% which makes spaces the same size as normal in the surrounding text.
+% @code (and similar) prints in typewriter, but with spaces the same
+% size as normal in the surrounding text, without hyphenation, etc.
+% This is a subroutine for that.
\def\tclose#1{%
{%
% Change normal interword space to be same as for the current font.
@@ -2455,18 +2476,18 @@ end
\plainfrenchspacing
#1%
}%
- \null
+ \null % reset spacefactor to 1000
}
% We *must* turn on hyphenation at `-' and `_' in @code.
+% (But see \codedashfinish below.)
% Otherwise, it is too hard to avoid overfull hboxes
% in the Emacs manual, the Library manual, etc.
-
+%
% Unfortunately, TeX uses one parameter (\hyphenchar) to control
% both hyphenation at - and hyphenation within words.
% We must therefore turn them both off (\tclose does that)
-% and arrange explicitly to hyphenate at a dash.
-% -- rms.
+% and arrange explicitly to hyphenate at a dash. -- rms.
{
\catcode`\-=\active \catcode`\_=\active
\catcode`\'=\active \catcode`\`=\active
@@ -2480,15 +2501,38 @@ end
\let-\codedash
\let_\codeunder
\else
- \let-\realdash
+ \let-\normaldash
\let_\realunder
\fi
+ % Given -foo (with a single dash), we do not want to allow a break
+ % after the hyphen.
+ \global\let\codedashprev=\codedash
+ %
\codex
}
+ %
+ \gdef\codedash{\futurelet\next\codedashfinish}
+ \gdef\codedashfinish{%
+ \normaldash % always output the dash character itself.
+ %
+ % Now, output a discretionary to allow a line break, unless
+ % (a) the next character is a -, or
+ % (b) the preceding character is a -.
+ % E.g., given --posix, we do not want to allow a break after either -.
+ % Given --foo-bar, we do want to allow a break between the - and the b.
+ \ifx\next\codedash \else
+ \ifx\codedashprev\codedash
+ \else \discretionary{}{}{}\fi
+ \fi
+ % we need the space after the = for the case when \next itself is a
+ % space token; it would get swallowed otherwise. As in @code{- a}.
+ \global\let\codedashprev= \next
+ }
}
+\def\normaldash{-}
+%
+\def\codex #1{\tclose{#1}\endgroup}
-\def\realdash{-}
-\def\codedash{-\discretionary{}{}{}}
\def\codeunder{%
% this is all so @math{@code{var_name}+1} can work. In math mode, _
% is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.)
@@ -2500,12 +2544,11 @@ end
\discretionary{}{}{}}%
{\_}%
}
-\def\codex #1{\tclose{#1}\endgroup}
% An additional complication: the above will allow breaks after, e.g.,
-% each of the four underscores in __typeof__. This is undesirable in
-% some manuals, especially if they don't have long identifiers in
-% general. @allowcodebreaks provides a way to control this.
+% each of the four underscores in __typeof__. This is bad.
+% @allowcodebreaks provides a document-level way to turn breaking at -
+% and _ on and off.
%
\newif\ifallowcodebreaks \allowcodebreakstrue
@@ -2520,63 +2563,25 @@ end
\allowcodebreaksfalse
\else
\errhelp = \EMsimple
- \errmessage{Unknown @allowcodebreaks option `\txiarg'}%
+ \errmessage{Unknown @allowcodebreaks option `\txiarg', must be true|false}%
\fi\fi
}
-% @kbd is like @code, except that if the argument is just one @key command,
-% then @kbd has no effect.
-\def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}}
-
-% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
-% `example' (@kbd uses ttsl only inside of @example and friends),
-% or `code' (@kbd uses normal tty font always).
-\parseargdef\kbdinputstyle{%
- \def\txiarg{#1}%
- \ifx\txiarg\worddistinct
- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
- \else\ifx\txiarg\wordexample
- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
- \else\ifx\txiarg\wordcode
- \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
- \else
- \errhelp = \EMsimple
- \errmessage{Unknown @kbdinputstyle option `\txiarg'}%
- \fi\fi\fi
-}
-\def\worddistinct{distinct}
-\def\wordexample{example}
-\def\wordcode{code}
-
-% Default is `distinct'.
-\kbdinputstyle distinct
-
-\def\xkey{\key}
-\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
-\ifx\one\xkey\ifx\threex\three \key{#2}%
-\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
-\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi}
-
-% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
-\let\indicateurl=\code
-\let\env=\code
+% For @command, @env, @file, @option quotes seem unnecessary,
+% so use \code rather than \samp.
\let\command=\code
-
-% @clicksequence{File @click{} Open ...}
-\def\clicksequence#1{\begingroup #1\endgroup}
-
-% @clickstyle @arrow (by default)
-\parseargdef\clickstyle{\def\click{#1}}
-\def\click{\arrow}
+\let\env=\code
+\let\file=\code
+\let\option=\code
% @uref (abbreviation for `urlref') takes an optional (comma-separated)
% second argument specifying the text to display and an optional third
% arg as text to display instead of (rather than in addition to) the url
-% itself. First (mandatory) arg is the url. Perhaps eventually put in
-% a hypertex \special here.
-%
-\def\uref#1{\douref #1,,,\finish}
-\def\douref#1,#2,#3,#4\finish{\begingroup
+% itself. First (mandatory) arg is the url.
+% (This \urefnobreak definition isn't used now, leaving it for a while
+% for comparison.)
+\def\urefnobreak#1{\dourefnobreak #1,,,\finish}
+\def\dourefnobreak#1,#2,#3,#4\finish{\begingroup
\unsepspaces
\pdfurl{#1}%
\setbox0 = \hbox{\ignorespaces #3}%
@@ -2597,6 +2602,103 @@ end
\endlink
\endgroup}
+% This \urefbreak definition is the active one.
+\def\urefbreak{\begingroup \urefcatcodes \dourefbreak}
+\let\uref=\urefbreak
+\def\dourefbreak#1{\urefbreakfinish #1,,,\finish}
+\def\urefbreakfinish#1,#2,#3,#4\finish{% doesn't work in @example
+ \unsepspaces
+ \pdfurl{#1}%
+ \setbox0 = \hbox{\ignorespaces #3}%
+ \ifdim\wd0 > 0pt
+ \unhbox0 % third arg given, show only that
+ \else
+ \setbox0 = \hbox{\ignorespaces #2}%
+ \ifdim\wd0 > 0pt
+ \ifpdf
+ \unhbox0 % PDF: 2nd arg given, show only it
+ \else
+ \unhbox0\ (\urefcode{#1})% DVI: 2nd arg given, show both it and url
+ \fi
+ \else
+ \urefcode{#1}% only url given, so show it
+ \fi
+ \fi
+ \endlink
+\endgroup}
+
+% Allow line breaks around only a few characters (only).
+\def\urefcatcodes{%
+ \catcode\ampChar=\active \catcode\dotChar=\active
+ \catcode\hashChar=\active \catcode\questChar=\active
+ \catcode\slashChar=\active
+}
+{
+ \urefcatcodes
+ %
+ \global\def\urefcode{\begingroup
+ \setupmarkupstyle{code}%
+ \urefcatcodes
+ \let&\urefcodeamp
+ \let.\urefcodedot
+ \let#\urefcodehash
+ \let?\urefcodequest
+ \let/\urefcodeslash
+ \codex
+ }
+ %
+ % By default, they are just regular characters.
+ \global\def&{\normalamp}
+ \global\def.{\normaldot}
+ \global\def#{\normalhash}
+ \global\def?{\normalquest}
+ \global\def/{\normalslash}
+}
+
+% we put a little stretch before and after the breakable chars, to help
+% line breaking of long url's. The unequal skips make look better in
+% cmtt at least, especially for dots.
+\def\urefprestretch{\urefprebreak \hskip0pt plus.13em }
+\def\urefpoststretch{\urefpostbreak \hskip0pt plus.1em }
+%
+\def\urefcodeamp{\urefprestretch \&\urefpoststretch}
+\def\urefcodedot{\urefprestretch .\urefpoststretch}
+\def\urefcodehash{\urefprestretch \#\urefpoststretch}
+\def\urefcodequest{\urefprestretch ?\urefpoststretch}
+\def\urefcodeslash{\futurelet\next\urefcodeslashfinish}
+{
+ \catcode`\/=\active
+ \global\def\urefcodeslashfinish{%
+ \urefprestretch \slashChar
+ % Allow line break only after the final / in a sequence of
+ % slashes, to avoid line break between the slashes in http://.
+ \ifx\next/\else \urefpoststretch \fi
+ }
+}
+
+% One more complication: by default we'll break after the special
+% characters, but some people like to break before the special chars, so
+% allow that. Also allow no breaking at all, for manual control.
+%
+\parseargdef\urefbreakstyle{%
+ \def\txiarg{#1}%
+ \ifx\txiarg\wordnone
+ \def\urefprebreak{\nobreak}\def\urefpostbreak{\nobreak}
+ \else\ifx\txiarg\wordbefore
+ \def\urefprebreak{\allowbreak}\def\urefpostbreak{\nobreak}
+ \else\ifx\txiarg\wordafter
+ \def\urefprebreak{\nobreak}\def\urefpostbreak{\allowbreak}
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @urefbreakstyle setting `\txiarg'}%
+ \fi\fi\fi
+}
+\def\wordafter{after}
+\def\wordbefore{before}
+\def\wordnone{none}
+
+\urefbreakstyle after
+
% @url synonym for @uref, since that's how everyone uses it.
%
\let\url=\uref
@@ -2618,6 +2720,67 @@ end
\let\email=\uref
\fi
+% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
+% `example' (@kbd uses ttsl only inside of @example and friends),
+% or `code' (@kbd uses normal tty font always).
+\parseargdef\kbdinputstyle{%
+ \def\txiarg{#1}%
+ \ifx\txiarg\worddistinct
+ \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
+ \else\ifx\txiarg\wordexample
+ \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
+ \else\ifx\txiarg\wordcode
+ \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @kbdinputstyle setting `\txiarg'}%
+ \fi\fi\fi
+}
+\def\worddistinct{distinct}
+\def\wordexample{example}
+\def\wordcode{code}
+
+% Default is `distinct'.
+\kbdinputstyle distinct
+
+% @kbd is like @code, except that if the argument is just one @key command,
+% then @kbd has no effect.
+\def\kbd#1{{\def\look{#1}\expandafter\kbdsub\look??\par}}
+
+\def\xkey{\key}
+\def\kbdsub#1#2#3\par{%
+ \def\one{#1}\def\three{#3}\def\threex{??}%
+ \ifx\one\xkey\ifx\threex\three \key{#2}%
+ \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
+ \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
+}
+
+% definition of @key that produces a lozenge. Doesn't adjust to text size.
+%\setfont\keyrm\rmshape{8}{1000}{OT1}
+%\font\keysy=cmsy9
+%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
+% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
+% \vbox{\hrule\kern-0.4pt
+% \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
+% \kern-0.4pt\hrule}%
+% \kern-.06em\raise0.4pt\hbox{\angleright}}}}
+
+% definition of @key with no lozenge. If the current font is already
+% monospace, don't change it; that way, we respect @kbdinputstyle. But
+% if it isn't monospace, then use \tt.
+%
+\def\key#1{{\setupmarkupstyle{key}%
+ \nohyphenation
+ \ifmonospace\else\tt\fi
+ #1}\null}
+
+% @clicksequence{File @click{} Open ...}
+\def\clicksequence#1{\begingroup #1\endgroup}
+
+% @clickstyle @arrow (by default)
+\parseargdef\clickstyle{\def\click{#1}}
+\def\click{\arrow}
+
% Typeset a dimension, e.g., `in' or `pt'. The only reason for the
% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt.
%
@@ -2639,6 +2802,7 @@ end
\ifx\temp\empty \else
\space ({\unsepspaces \ignorespaces \temp \unskip})%
\fi
+ \null % reset \spacefactor=1000
}
% @abbr for "Comput. J." and the like.
@@ -2651,6 +2815,7 @@ end
\ifx\temp\empty \else
\space ({\unsepspaces \ignorespaces \temp \unskip})%
\fi
+ \null % reset \spacefactor=1000
}
% @asis just yields its argument. Used with @table, for example.
@@ -2715,20 +2880,77 @@ end
}
}
+% ctrl is no longer a Texinfo command, but leave this definition for fun.
+\def\ctrl #1{{\tt \rawbackslash \hat}#1}
+
+% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
+% Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
+% except specified as a normal braced arg, so no newlines to worry about.
+%
+\def\outfmtnametex{tex}
+%
+\long\def\inlinefmt#1{\doinlinefmt #1,\finish}
+\long\def\doinlinefmt#1,#2,\finish{%
+ \def\inlinefmtname{#1}%
+ \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi
+}
+%
+% @inlinefmtifelse{FMTNAME,THEN-TEXT,ELSE-TEXT} expands THEN-TEXT if
+% FMTNAME is tex, else ELSE-TEXT.
+\long\def\inlinefmtifelse#1{\doinlinefmtifelse #1,,,\finish}
+\long\def\doinlinefmtifelse#1,#2,#3,#4,\finish{%
+ \def\inlinefmtname{#1}%
+ \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\else \ignorespaces #3\fi
+}
+%
+% For raw, must switch into @tex before parsing the argument, to avoid
+% setting catcodes prematurely. Doing it this way means that, for
+% example, @inlineraw{html, foo{bar} gets a parse error instead of being
+% ignored. But this isn't important because if people want a literal
+% *right* brace they would have to use a command anyway, so they may as
+% well use a command to get a left brace too. We could re-use the
+% delimiter character idea from \verb, but it seems like overkill.
+%
+\long\def\inlineraw{\tex \doinlineraw}
+\long\def\doinlineraw#1{\doinlinerawtwo #1,\finish}
+\def\doinlinerawtwo#1,#2,\finish{%
+ \def\inlinerawname{#1}%
+ \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi
+ \endgroup % close group opened by \tex.
+}
+
+% @inlineifset{VAR, TEXT} expands TEXT if VAR is @set.
+%
+\long\def\inlineifset#1{\doinlineifset #1,\finish}
+\long\def\doinlineifset#1,#2,\finish{%
+ \def\inlinevarname{#1}%
+ \expandafter\ifx\csname SET\inlinevarname\endcsname\relax
+ \else\ignorespaces#2\fi
+}
+
+% @inlineifclear{VAR, TEXT} expands TEXT if VAR is not @set.
+%
+\long\def\inlineifclear#1{\doinlineifclear #1,\finish}
+\long\def\doinlineifclear#1,#2,\finish{%
+ \def\inlinevarname{#1}%
+ \expandafter\ifx\csname SET\inlinevarname\endcsname\relax \ignorespaces#2\fi
+}
+
\message{glyphs,}
% and logos.
-% @@ prints an @.
+% @@ prints an @, as does @atchar{}.
\def\@{\char64 }
+\let\atchar=\@
-% Used to generate quoted braces. Unless we're in typewriter, use
-% \ecfont because the CM text fonts do not have braces, and we don't
-% want to switch into math.
+% @{ @} @lbracechar{} @rbracechar{} all generate brace characters.
+% Unless we're in typewriter, use \ecfont because the CM text fonts do
+% not have braces, and we don't want to switch into math.
\def\mylbrace{{\ifmonospace\else\ecfont\fi \char123}}
\def\myrbrace{{\ifmonospace\else\ecfont\fi \char125}}
-\let\{=\mylbrace
-\let\}=\myrbrace
+\let\{=\mylbrace \let\lbracechar=\{
+\let\}=\myrbrace \let\rbracechar=\}
\begingroup
% Definitions to produce \{ and \} commands for indices,
% and @{ and @} for the aux/toc files.
@@ -2856,7 +3078,7 @@ end
{\tentt \global\dimen0 = 3em}% Width of the box.
\dimen2 = .55pt % Thickness of rules
% The text. (`r' is open on the right, `e' somewhat less so on the left.)
-\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt}
+\setbox0 = \hbox{\kern-.75pt \reducedsf \putworderror\kern-1.5pt}
%
\setbox\errorbox=\hbox to \dimen0{\hfil
\hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
@@ -2977,12 +3199,17 @@ end
% hopefully nobody will notice/care.
\edef\ecsize{\csname\curfontsize ecsize\endcsname}%
\edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%
- \ifx\curfontstyle\bfstylename
- % bold:
- \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
+ \ifmonospace
+ % typewriter:
+ \font\thisecfont = ectt\ecsize \space at \nominalsize
\else
- % regular:
- \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
+ \ifx\curfontstyle\bfstylename
+ % bold:
+ \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
+ \else
+ % regular:
+ \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
+ \fi
\fi
\thisecfont
}
@@ -3005,7 +3232,7 @@ end
% Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38
% so we'll define it if necessary.
%
-\ifx\Orb\undefined
+\ifx\Orb\thisisundefined
\def\Orb{\mathhexbox20D}
\fi
@@ -3033,8 +3260,9 @@ end
\newif\ifsetshortcontentsaftertitlepage
\let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
-\parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
- \endgroup\page\hbox{}\page}
+\parseargdef\shorttitlepage{%
+ \begingroup \hbox{}\vskip 1.5in \chaprm \centerline{#1}%
+ \endgroup\page\hbox{}\page}
\envdef\titlepage{%
% Open one extra group, as we want to close it in the middle of \Etitlepage.
@@ -3094,14 +3322,28 @@ end
\finishedtitlepagetrue
}
-%%% Macros to be used within @titlepage:
+% Settings used for typesetting titles: no hyphenation, no indentation,
+% don't worry much about spacing, ragged right. This should be used
+% inside a \vbox, and fonts need to be set appropriately first. Because
+% it is always used for titles, nothing else, we call \rmisbold. \par
+% should be specified before the end of the \vbox, since a vbox is a group.
+%
+\def\raggedtitlesettings{%
+ \rmisbold
+ \hyphenpenalty=10000
+ \parindent=0pt
+ \tolerance=5000
+ \ptexraggedright
+}
+
+% Macros to be used within @titlepage:
\let\subtitlerm=\tenrm
\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
\parseargdef\title{%
\checkenv\titlepage
- \leftline{\titlefonts\rmisbold #1}
+ \vbox{\titlefonts \raggedtitlesettings #1\par}%
% print a rule at the page bottom also.
\finishedtitlepagefalse
\vskip4pt \hrule height 4pt width \hsize \vskip4pt
@@ -3127,7 +3369,7 @@ end
}
-%%% Set up page headings and footings.
+% Set up page headings and footings.
\let\thispage=\folio
@@ -3279,7 +3521,7 @@ end
% This produces Day Month Year style of output.
% Only define if not already defined, in case a txi-??.tex file has set
% up a different format (e.g., txi-cs.tex does this).
-\ifx\today\undefined
+\ifx\today\thisisundefined
\def\today{%
\number\day\space
\ifcase\month
@@ -3826,18 +4068,18 @@ end
\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
\global\advance\multitablelinespace by-\ht0
\fi
-%% Test to see if parskip is larger than space between lines of
-%% table. If not, do nothing.
-%% If so, set to same dimension as multitablelinespace.
+% Test to see if parskip is larger than space between lines of
+% table. If not, do nothing.
+% If so, set to same dimension as multitablelinespace.
\ifdim\multitableparskip>\multitablelinespace
\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
- %% than skip between lines in the table.
+\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller
+ % than skip between lines in the table.
\fi%
\ifdim\multitableparskip=0pt
\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
- %% than skip between lines in the table.
+\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller
+ % than skip between lines in the table.
\fi}
@@ -3989,7 +4231,7 @@ end
\def\value{\begingroup\makevalueexpandable\valuexxx}
\def\valuexxx#1{\expandablevalue{#1}\endgroup}
{
- \catcode`\- = \active \catcode`\_ = \active
+ \catcode`\-=\active \catcode`\_=\active
%
\gdef\makevalueexpandable{%
\let\value = \expandablevalue
@@ -3998,7 +4240,7 @@ end
% ..., but we might end up with active ones in the argument if
% we're called from @code, as @code{@value{foo-bar_}}, though.
% So \let them to their normal equivalents.
- \let-\realdash \let_\normalunderscore
+ \let-\normaldash \let_\normalunderscore
}
}
@@ -4009,7 +4251,12 @@ end
% variable's value contains other Texinfo commands, it's almost certain
% it will fail (although perhaps we could fix that with sufficient work
% to do a one-level expansion on the result, instead of complete).
-%
+%
+% Unfortunately, this has the consequence that when _ is in the *value*
+% of an @set, it does not print properly in the roman fonts (get the cmr
+% dot accent at position 126 instead). No fix comes to mind, and it's
+% been this way since 2003 or earlier, so just ignore it.
+%
\def\expandablevalue#1{%
\expandafter\ifx\csname SET#1\endcsname\relax
{[No value for ``#1'']}%
@@ -4021,8 +4268,9 @@ end
% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
% with @set.
-%
-% To get special treatment of `@end ifset,' call \makeond and the redefine.
+%
+% To get the special treatment we need for `@end ifset,' we call
+% \makecond and then redefine.
%
\makecond{ifset}
\def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}}
@@ -4038,7 +4286,7 @@ end
}
\def\ifsetfail{\doignore{ifset}}
-% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
+% @ifclear VAR ... @end executes the `...' iff VAR has never been
% defined with @set, or has been undefined with @clear.
%
% The `\else' inside the `\doifset' parameter is a trick to reuse the
@@ -4049,6 +4297,35 @@ end
\def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}}
\def\ifclearfail{\doignore{ifclear}}
+% @ifcommandisdefined CMD ... @end executes the `...' if CMD (written
+% without the @) is in fact defined. We can only feasibly check at the
+% TeX level, so something like `mathcode' is going to considered
+% defined even though it is not a Texinfo command.
+%
+\makecond{ifcommanddefined}
+\def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}}
+%
+\def\doifcmddefined#1#2{{%
+ \makevalueexpandable
+ \let\next=\empty
+ \expandafter\ifx\csname #2\endcsname\relax
+ #1% If not defined, \let\next as above.
+ \fi
+ \expandafter
+ }\next
+}
+\def\ifcmddefinedfail{\doignore{ifcommanddefined}}
+
+% @ifcommandnotdefined CMD ... handled similar to @ifclear above.
+\makecond{ifcommandnotdefined}
+\def\ifcommandnotdefined{%
+ \parsearg{\doifcmddefined{\else \let\next=\ifcmdnotdefinedfail}}}
+\def\ifcmdnotdefinedfail{\doignore{ifcommandnotdefined}}
+
+% Set the `txicommandconditionals' variable, so documents have a way to
+% test if the @ifcommand...defined conditionals are available.
+\set txicommandconditionals
+
% @dircategory CATEGORY -- specify a category of the dir file
% which this file should belong to. Ignore this in TeX.
\let\dircategory=\comment
@@ -4212,7 +4489,7 @@ end
\def\commondummies{%
%
% \definedummyword defines \#1 as \string\#1\space, thus effectively
- % preventing its expansion. This is used only for control% words,
+ % preventing its expansion. This is used only for control words,
% not control letters, because the \space would be incorrect for
% control characters, but is needed to separate the control word
% from whatever follows.
@@ -4231,6 +4508,7 @@ end
\commondummiesnofonts
%
\definedummyletter\_%
+ \definedummyletter\-%
%
% Non-English letters.
\definedummyword\AA
@@ -4267,6 +4545,7 @@ end
\definedummyword\TeX
%
% Assorted special characters.
+ \definedummyword\arrow
\definedummyword\bullet
\definedummyword\comma
\definedummyword\copyright
@@ -4277,11 +4556,14 @@ end
\definedummyword\equiv
\definedummyword\error
\definedummyword\euro
+ \definedummyword\expansion
+ \definedummyword\geq
\definedummyword\guillemetleft
\definedummyword\guillemetright
\definedummyword\guilsinglleft
\definedummyword\guilsinglright
- \definedummyword\expansion
+ \definedummyword\lbracechar
+ \definedummyword\leq
\definedummyword\minus
\definedummyword\ogonek
\definedummyword\pounds
@@ -4293,6 +4575,7 @@ end
\definedummyword\quoteleft
\definedummyword\quoteright
\definedummyword\quotesinglbase
+ \definedummyword\rbracechar
\definedummyword\result
\definedummyword\textdegree
%
@@ -4338,19 +4621,27 @@ end
\definedummyword\b
\definedummyword\i
\definedummyword\r
+ \definedummyword\sansserif
\definedummyword\sc
+ \definedummyword\slanted
\definedummyword\t
%
% Commands that take arguments.
+ \definedummyword\abbr
\definedummyword\acronym
+ \definedummyword\anchor
\definedummyword\cite
\definedummyword\code
\definedummyword\command
\definedummyword\dfn
+ \definedummyword\dmn
\definedummyword\email
\definedummyword\emph
\definedummyword\env
\definedummyword\file
+ \definedummyword\image
+ \definedummyword\indicateurl
+ \definedummyword\inforef
\definedummyword\kbd
\definedummyword\key
\definedummyword\math
@@ -4378,7 +4669,7 @@ end
\def\definedummyaccent##1{\let##1\asis}%
% We can just ignore other control letters.
\def\definedummyletter##1{\let##1\empty}%
- % Hopefully, all control words can become @asis.
+ % All control words become @asis by default; overrides below.
\let\definedummyword\definedummyaccent
%
\commondummiesnofonts
@@ -4390,8 +4681,17 @@ end
%
\def\ { }%
\def\@{@}%
- % how to handle braces?
\def\_{\normalunderscore}%
+ \def\-{}% @- shouldn't affect sorting
+ %
+ % Unfortunately, texindex is not prepared to handle braces in the
+ % content at all. So for index sorting, we map @{ and @} to strings
+ % starting with |, since that ASCII character is between ASCII { and }.
+ \def\{{|a}%
+ \def\lbracechar{|a}%
+ %
+ \def\}{|b}%
+ \def\rbracechar{|b}%
%
% Non-English letters.
\def\AA{AA}%
@@ -4419,6 +4719,7 @@ end
%
% Assorted special characters.
% (The following {} will end up in the sort string, but that's ok.)
+ \def\arrow{->}%
\def\bullet{bullet}%
\def\comma{,}%
\def\copyright{copyright}%
@@ -4428,10 +4729,12 @@ end
\def\error{error}%
\def\euro{euro}%
\def\expansion{==>}%
+ \def\geq{>=}%
\def\guillemetleft{<<}%
\def\guillemetright{>>}%
\def\guilsinglleft{<}%
\def\guilsinglright{>}%
+ \def\leq{<=}%
\def\minus{-}%
\def\point{.}%
\def\pounds{pounds}%
@@ -4564,10 +4867,9 @@ end
%
% ..., ready, GO:
%
-\def\safewhatsit#1{%
-\ifhmode
+\def\safewhatsit#1{\ifhmode
#1%
-\else
+ \else
% \lastskip and \lastpenalty cannot both be nonzero simultaneously.
\whatsitskip = \lastskip
\edef\lastskipmacro{\the\lastskip}%
@@ -4591,7 +4893,6 @@ end
% to re-insert the same penalty (values >10000 are used for various
% signals); since we just inserted a non-discardable item, any
% following glue (such as a \parskip) would be a breakpoint. For example:
- %
% @deffn deffn-whatever
% @vindex index-whatever
% Description.
@@ -4604,8 +4905,7 @@ end
% (the whatsit from the \write), so we must insert a \nobreak.
\nobreak\vskip\whatsitskip
\fi
-\fi
-}
+\fi}
% The index entry written in the file actually looks like
% \entry {sortstring}{page}{topic}
@@ -5225,7 +5525,8 @@ end
\global\let\subsubsection = \appendixsubsubsec
}
-\outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
+% normally unnmhead0 calls unnumberedzzz:
+\outer\parseargdef\unnumbered{\unnmhead0{#1}}
\def\unnumberedzzz#1{%
\global\secno=0 \global\subsecno=0 \global\subsubsecno=0
\global\advance\unnumberedno by 1
@@ -5269,40 +5570,47 @@ end
\let\top\unnumbered
% Sections.
+%
\outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz
\def\seczzz#1{%
\global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
\sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}%
}
-\outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz
+% normally calls appendixsectionzzz:
+\outer\parseargdef\appendixsection{\apphead1{#1}}
\def\appendixsectionzzz#1{%
\global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
\sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}%
}
\let\appendixsec\appendixsection
-\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz
+% normally calls unnumberedseczzz:
+\outer\parseargdef\unnumberedsec{\unnmhead1{#1}}
\def\unnumberedseczzz#1{%
\global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
\sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}%
}
% Subsections.
-\outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz
+%
+% normally calls numberedsubseczzz:
+\outer\parseargdef\numberedsubsec{\numhead2{#1}}
\def\numberedsubseczzz#1{%
\global\subsubsecno=0 \global\advance\subsecno by 1
\sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}%
}
-\outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz
+% normally calls appendixsubseczzz:
+\outer\parseargdef\appendixsubsec{\apphead2{#1}}
\def\appendixsubseczzz#1{%
\global\subsubsecno=0 \global\advance\subsecno by 1
\sectionheading{#1}{subsec}{Yappendix}%
{\appendixletter.\the\secno.\the\subsecno}%
}
-\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
+% normally calls unnumberedsubseczzz:
+\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}}
\def\unnumberedsubseczzz#1{%
\global\subsubsecno=0 \global\advance\subsecno by 1
\sectionheading{#1}{subsec}{Ynothing}%
@@ -5310,21 +5618,25 @@ end
}
% Subsubsections.
-\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz
+%
+% normally numberedsubsubseczzz:
+\outer\parseargdef\numberedsubsubsec{\numhead3{#1}}
\def\numberedsubsubseczzz#1{%
\global\advance\subsubsecno by 1
\sectionheading{#1}{subsubsec}{Ynumbered}%
{\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}%
}
-\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz
+% normally appendixsubsubseczzz:
+\outer\parseargdef\appendixsubsubsec{\apphead3{#1}}
\def\appendixsubsubseczzz#1{%
\global\advance\subsubsecno by 1
\sectionheading{#1}{subsubsec}{Yappendix}%
{\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}%
}
-\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
+% normally unnumberedsubsubseczzz:
+\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}}
\def\unnumberedsubsubseczzz#1{%
\global\advance\subsubsecno by 1
\sectionheading{#1}{subsubsec}{Ynothing}%
@@ -5340,14 +5652,6 @@ end
% Define @majorheading, @heading and @subheading
-% NOTE on use of \vbox for chapter headings, section headings, and such:
-% 1) We use \vbox rather than the earlier \line to permit
-% overlong headings to fold.
-% 2) \hyphenpenalty is set to 10000 because hyphenation in a
-% heading is obnoxious; this forbids it.
-% 3) Likewise, headings look best if no \parindent is used, and
-% if justification is not attempted. Hence \raggedright.
-
\def\majorheading{%
{\advance\chapheadingskip by 10pt \chapbreak }%
\parsearg\chapheadingzzz
@@ -5355,10 +5659,8 @@ end
\def\chapheading{\chapbreak \parsearg\chapheadingzzz}
\def\chapheadingzzz#1{%
- {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\ptexraggedright
- \rmisbold #1\hfill}}%
- \bigskip \par\penalty 200\relax
+ \vbox{\chapfonts \raggedtitlesettings #1\par}%
+ \nobreak\bigskip \nobreak
\suppressfirstparagraphindent
}
@@ -5374,14 +5676,13 @@ end
% (including whitespace, linebreaking, etc. around it),
% given all the information in convenient, parsed form.
-%%% Args are the skip and penalty (usually negative)
+% Args are the skip and penalty (usually negative)
\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
-%%% Define plain chapter starts, and page on/off switching for it
% Parameter controlling skip before chapter headings (if needed)
-
\newskip\chapheadingskip
+% Define plain chapter starts, and page on/off switching for it.
\def\chapbreak{\dobreak \chapheadingskip {-4000}}
\def\chappager{\par\vfill\supereject}
% Because \domark is called before \chapoddpage, the filler page will
@@ -5518,8 +5819,7 @@ end
%
% Typeset the actual heading.
\nobreak % Avoid page breaks at the interline glue.
- \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright
- \hangindent=\wd0 \centerparametersmaybe
+ \vbox{\raggedtitlesettings \hangindent=\wd0 \centerparametersmaybe
\unhbox0 #1\par}%
}%
\nobreak\bigskip % no page break after a chapter title
@@ -5541,18 +5841,18 @@ end
\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
%
\def\unnchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\ptexraggedright
- \rmisbold #1\hfill}}\bigskip \par\nobreak
+ \chapoddpage
+ \vbox{\chapfonts \raggedtitlesettings #1\par}%
+ \nobreak\bigskip\nobreak
}
\def\chfopen #1#2{\chapoddpage {\chapfonts
\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
\par\penalty 5000 %
}
\def\centerchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt
- \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak
+ \chapoddpage
+ \vbox{\chapfonts \raggedtitlesettings \hfill #1\hfill}%
+ \nobreak\bigskip \nobreak
}
\def\CHAPFopen{%
\global\let\chapmacro=\chfopen
@@ -5584,6 +5884,8 @@ end
%
\def\sectionheading#1#2#3#4{%
{%
+ \checkenv{}% should not be in an environment.
+ %
% Switch to the right set of fonts.
\csname #2fonts\endcsname \rmisbold
%
@@ -5641,7 +5943,7 @@ end
%
% Now the second mark, after the heading break. No break points
% between here and the heading.
- \let\prevsectiondefs=\lastsectiondefs
+ \global\let\prevsectiondefs=\lastsectiondefs
\domark
%
% Only insert the space after the number if we have a section number.
@@ -5695,15 +5997,15 @@ end
%
% We'll almost certainly start a paragraph next, so don't let that
% glue accumulate. (Not a breakpoint because it's preceded by a
- % discardable item.)
+ % discardable item.) However, when a paragraph is not started next
+ % (\startdefun, \cartouche, \center, etc.), this needs to be wiped out
+ % or the negative glue will cause weirdly wrong output, typically
+ % obscuring the section heading with something else.
\vskip-\parskip
%
- % This is purely so the last item on the list is a known \penalty >
- % 10000. This is so \startdefun can avoid allowing breakpoints after
- % section headings. Otherwise, it would insert a valid breakpoint between:
- %
- % @section sec-whatever
- % @deffn def-whatever
+ % This is so the last item on the main vertical list is a known
+ % \penalty > 10000, so \startdefun, etc., can recognize the situation
+ % and do the needful.
\penalty 10001
}
@@ -6008,8 +6310,8 @@ end
\catcode `\|=\other
\catcode `\<=\other
\catcode `\>=\other
- \catcode`\`=\other
- \catcode`\'=\other
+ \catcode `\`=\other
+ \catcode `\'=\other
\escapechar=`\\
%
% ' is active in math mode (mathcode"8000). So reset it, and all our
@@ -6033,7 +6335,7 @@ end
\let\/=\ptexslash
\let\*=\ptexstar
\let\t=\ptext
- \expandafter \let\csname top\endcsname=\ptextop % outer
+ \expandafter \let\csname top\endcsname=\ptextop % we've made it outer
\let\frenchspacing=\plainfrenchspacing
%
\def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
@@ -6119,6 +6421,12 @@ end
\normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
% Flag to tell @lisp, etc., not to narrow margin.
\let\nonarrowing = t%
+ %
+ % If this cartouche directly follows a sectioning command, we need the
+ % \parskip glue (backspaced over by default) or the cartouche can
+ % collide with the section heading.
+ \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi
+ %
\vbox\bgroup
\baselineskip=0pt\parskip=0pt\lineskip=0pt
\carttop
@@ -6132,7 +6440,7 @@ end
\lineskip=\normlskip
\parskip=\normpskip
\vskip -\parskip
- \comment % For explanation, see the end of \def\group.
+ \comment % For explanation, see the end of def\group.
}
\def\Ecartouche{%
\ifhmode\par\fi
@@ -6152,7 +6460,7 @@ end
\newdimen\nonfillparindent
\def\nonfillstart{%
\aboveenvbreak
- \hfuzz = 12pt % Don't be fussy
+ \ifdim\hfuzz < 12pt \hfuzz = 12pt \fi % Don't be fussy
\sepspaces % Make spaces be word-separators rather than space tokens.
\let\par = \lisppar % don't ignore blank lines
\obeylines % each line of input is a line of output
@@ -6310,16 +6618,9 @@ end
\makedispenvdef{quotation}{\quotationstart}
%
\def\quotationstart{%
- {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
- \parindent=0pt
- %
- % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
+ \indentedblockstart % same as \indentedblock, but increase right margin too.
\ifx\nonarrowing\relax
- \advance\leftskip by \lispnarrowing
\advance\rightskip by \lispnarrowing
- \exdentamount = \lispnarrowing
- \else
- \let\nonarrowing = \relax
\fi
\parsearg\quotationlabel
}
@@ -6329,7 +6630,7 @@ end
%
\def\Equotation{%
\par
- \ifx\quotationauthor\undefined\else
+ \ifx\quotationauthor\thisisundefined\else
% indent a bit.
\leftline{\kern 2\leftskip \sl ---\quotationauthor}%
\fi
@@ -6345,6 +6646,32 @@ end
\fi
}
+% @indentedblock is like @quotation, but indents only on the left and
+% has no optional argument.
+%
+\makedispenvdef{indentedblock}{\indentedblockstart}
+%
+\def\indentedblockstart{%
+ {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
+ \parindent=0pt
+ %
+ % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
+ \ifx\nonarrowing\relax
+ \advance\leftskip by \lispnarrowing
+ \exdentamount = \lispnarrowing
+ \else
+ \let\nonarrowing = \relax
+ \fi
+}
+
+% Keep a nonzero parskip for the environment, since we're doing normal filling.
+%
+\def\Eindentedblock{%
+ \par
+ {\parskip=0pt \afterenvbreak}%
+}
+\def\Esmallindentedblock{\Eindentedblock}
+
% LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}
% If we want to allow any <char> as delimiter,
@@ -6488,6 +6815,7 @@ end
\makevalueexpandable
\setupverbatim
\indexnofonts % Allow `@@' and other weird things in file names.
+ \wlog{texinfo.tex: doing @verbatiminclude of #1^^J}%
\input #1
\afterenvbreak
}%
@@ -6537,7 +6865,7 @@ end
% commands also insert a nobreak penalty, and we don't want to allow
% a break between a section heading and a defun.
%
- % As a minor refinement, we avoid "club" headers by signalling
+ % As a further refinement, we avoid "club" headers by signalling
% with penalty of 10003 after the very first @deffn in the
% sequence (see above), and penalty of 10002 after any following
% @def command.
@@ -6604,13 +6932,36 @@ end
\def\domakedefun#1#2#3{%
\envdef#1{%
\startdefun
+ \doingtypefnfalse % distinguish typed functions from all else
\parseargusing\activeparens{\printdefunline#3}%
}%
\def#2{\dodefunx#1}%
\def#3%
}
-%%% Untyped functions:
+\newif\ifdoingtypefn % doing typed function?
+\newif\ifrettypeownline % typeset return type on its own line?
+
+% @deftypefnnewline on|off says whether the return type of typed functions
+% are printed on their own line. This affects @deftypefn, @deftypefun,
+% @deftypeop, and @deftypemethod.
+%
+\parseargdef\deftypefnnewline{%
+ \def\temp{#1}%
+ \ifx\temp\onword
+ \expandafter\let\csname SETtxideftypefnnl\endcsname
+ = \empty
+ \else\ifx\temp\offword
+ \expandafter\let\csname SETtxideftypefnnl\endcsname
+ = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @txideftypefnnl value `\temp',
+ must be on|off}%
+ \fi\fi
+}
+
+% Untyped functions:
% @deffn category name args
\makedefun{deffn}{\deffngeneral{}}
@@ -6629,7 +6980,7 @@ end
\defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}%
}
-%%% Typed functions:
+% Typed functions:
% @deftypefn category type name args
\makedefun{deftypefn}{\deftypefngeneral{}}
@@ -6644,10 +6995,11 @@ end
%
\def\deftypefngeneral#1#2 #3 #4 #5\endheader{%
\dosubind{fn}{\code{#4}}{#1}%
+ \doingtypefntrue
\defname{#2}{#3}{#4}\defunargs{#5\unskip}%
}
-%%% Typed variables:
+% Typed variables:
% @deftypevr category type var args
\makedefun{deftypevr}{\deftypecvgeneral{}}
@@ -6665,7 +7017,7 @@ end
\defname{#2}{#3}{#4}\defunargs{#5\unskip}%
}
-%%% Untyped variables:
+% Untyped variables:
% @defvr category var args
\makedefun{defvr}#1 {\deftypevrheader{#1} {} }
@@ -6676,7 +7028,8 @@ end
% \defcvof {category of}class var args
\def\defcvof#1#2 {\deftypecvof{#1}#2 {} }
-%%% Type:
+% Types:
+
% @deftp category name args
\makedefun{deftp}#1 #2 #3\endheader{%
\doind{tp}{\code{#2}}%
@@ -6704,25 +7057,49 @@ end
% We are followed by (but not passed) the arguments, if any.
%
\def\defname#1#2#3{%
+ \par
% Get the values of \leftskip and \rightskip as they were outside the @def...
\advance\leftskip by -\defbodyindent
%
- % How we'll format the type name. Putting it in brackets helps
+ % Determine if we are typesetting the return type of a typed function
+ % on a line by itself.
+ \rettypeownlinefalse
+ \ifdoingtypefn % doing a typed function specifically?
+ % then check user option for putting return type on its own line:
+ \expandafter\ifx\csname SETtxideftypefnnl\endcsname\relax \else
+ \rettypeownlinetrue
+ \fi
+ \fi
+ %
+ % How we'll format the category name. Putting it in brackets helps
% distinguish it from the body text that may end up on the next line
% just below it.
\def\temp{#1}%
\setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi}
%
- % Figure out line sizes for the paragraph shape.
+ % Figure out line sizes for the paragraph shape. We'll always have at
+ % least two.
+ \tempnum = 2
+ %
% The first line needs space for \box0; but if \rightskip is nonzero,
% we need only space for the part of \box0 which exceeds it:
\dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip
+ %
+ % If doing a return type on its own line, we'll have another line.
+ \ifrettypeownline
+ \advance\tempnum by 1
+ \def\maybeshapeline{0in \hsize}%
+ \else
+ \def\maybeshapeline{}%
+ \fi
+ %
% The continuations:
\dimen2=\hsize \advance\dimen2 by -\defargsindent
- % (plain.tex says that \dimen1 should be used only as global.)
- \parshape 2 0in \dimen0 \defargsindent \dimen2
%
- % Put the type name to the right margin.
+ % The final paragraph shape:
+ \parshape \tempnum 0in \dimen0 \maybeshapeline \defargsindent \dimen2
+ %
+ % Put the category name at the right margin.
\noindent
\hbox to 0pt{%
\hfil\box0 \kern-\hsize
@@ -6744,8 +7121,16 @@ end
% . this still does not fix the ?` and !` ligatures, but so far no
% one has made identifiers using them :).
\df \tt
- \def\temp{#2}% return value type
- \ifx\temp\empty\else \tclose{\temp} \fi
+ \def\temp{#2}% text of the return type
+ \ifx\temp\empty\else
+ \tclose{\temp}% typeset the return type
+ \ifrettypeownline
+ % put return type on its own line; prohibit line break following:
+ \hfil\vadjust{\nobreak}\break
+ \else
+ \space % type on same line, so just followed by a space
+ \fi
+ \fi % no return type
#3% output function name
}%
{\rm\enskip}% hskip 0.5 em of \tenrm
@@ -6765,7 +7150,10 @@ end
\df \sl \hyphenchar\font=0
%
% On the other hand, if an argument has two dashes (for instance), we
- % want a way to get ttsl. Let's try @var for that.
+ % want a way to get ttsl. We used to recommend @var for that, so
+ % leave the code in, but it's strange for @var to lead to typewriter.
+ % Nowadays we recommend @code, since the difference between a ttsl hyphen
+ % and a tt hyphen is pretty tiny. @code also disables ?` !`.
\def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}%
#1%
\sl\hyphenchar\font=45
@@ -6863,7 +7251,7 @@ end
% To do this right we need a feature of e-TeX, \scantokens,
% which we arrange to emulate with a temporary file in ordinary TeX.
-\ifx\eTeXversion\undefined
+\ifx\eTeXversion\thisisundefined
\newwrite\macscribble
\def\scantokens#1{%
\toks0={#1}%
@@ -6874,25 +7262,30 @@ end
}
\fi
-\def\scanmacro#1{%
- \begingroup
- \newlinechar`\^^M
- \let\xeatspaces\eatspaces
- % Undo catcode changes of \startcontents and \doprintindex
- % When called from @insertcopying or (short)caption, we need active
- % backslash to get it printed correctly. Previously, we had
- % \catcode`\\=\other instead. We'll see whether a problem appears
- % with macro expansion. --kasal, 19aug04
- \catcode`\@=0 \catcode`\\=\active \escapechar=`\@
- % ... and \example
- \spaceisspace
- %
- % Append \endinput to make sure that TeX does not see the ending newline.
- % I've verified that it is necessary both for e-TeX and for ordinary TeX
- % --kasal, 29nov03
- \scantokens{#1\endinput}%
- \endgroup
-}
+\def\scanmacro#1{\begingroup
+ \newlinechar`\^^M
+ \let\xeatspaces\eatspaces
+ %
+ % Undo catcode changes of \startcontents and \doprintindex
+ % When called from @insertcopying or (short)caption, we need active
+ % backslash to get it printed correctly. Previously, we had
+ % \catcode`\\=\other instead. We'll see whether a problem appears
+ % with macro expansion. --kasal, 19aug04
+ \catcode`\@=0 \catcode`\\=\active \escapechar=`\@
+ %
+ % ... and for \example:
+ \spaceisspace
+ %
+ % The \empty here causes a following catcode 5 newline to be eaten as
+ % part of reading whitespace after a control sequence. It does not
+ % eat a catcode 13 newline. There's no good way to handle the two
+ % cases (untried: maybe e-TeX's \everyeof could help, though plain TeX
+ % would then have different behavior). See the Macro Details node in
+ % the manual for the workaround we recommend for macros and
+ % line-oriented commands.
+ %
+ \scantokens{#1\empty}%
+\endgroup}
\def\scanexp#1{%
\edef\temp{\noexpand\scanmacro{#1}}%
@@ -7025,9 +7418,15 @@ end
\def\macroxxx#1{%
\getargs{#1}% now \macname is the macname and \argl the arglist
\ifx\argl\empty % no arguments
- \paramno=0
+ \paramno=0\relax
\else
\expandafter\parsemargdef \argl;%
+ \if\paramno>256\relax
+ \ifx\eTeXversion\thisisundefined
+ \errhelp = \EMsimple
+ \errmessage{You need eTeX to compile a file with macros with more than 256 arguments}
+ \fi
+ \fi
\fi
\if1\csname ismacro.\the\macname\endcsname
\message{Warning: redefining \the\macname}%
@@ -7077,9 +7476,17 @@ end
\def\getmacname#1 #2\relax{\macname={#1}}
\def\getmacargs#1{\def\argl{#1}}
+% For macro processing make @ a letter so that we can make Texinfo private macro names.
+\edef\texiatcatcode{\the\catcode`\@}
+\catcode `@=11\relax
+
% Parse the optional {params} list. Set up \paramno and \paramlist
-% so \defmacro knows what to do. Define \macarg.blah for each blah
-% in the params list to be ##N where N is the position in that list.
+% so \defmacro knows what to do. Define \macarg.BLAH for each BLAH
+% in the params list to some hook where the argument si to be expanded. If
+% there are less than 10 arguments that hook is to be replaced by ##N where N
+% is the position in that list, that is to say the macro arguments are to be
+% defined `a la TeX in the macro body.
+%
% That gets used by \mbodybackslash (above).
%
% We need to get `macro parameter char #' into several definitions.
@@ -7089,12 +7496,33 @@ end
%
% The same technique is used to protect \eatspaces till just before
% the macro is used.
-
+%
+% If there are 10 or more arguments, a different technique is used, where the
+% hook remains in the body, and when macro is to be expanded the body is
+% processed again to replace the arguments.
+%
+% In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the
+% argument N value and then \edef the body (nothing else will expand because of
+% the catcode regime underwhich the body was input).
+%
+% If you compile with TeX (not eTeX), and you have macros with 10 or more
+% arguments, you need that no macro has more than 256 arguments, otherwise an
+% error is produced.
\def\parsemargdef#1;{%
\paramno=0\def\paramlist{}%
\let\hash\relax
\let\xeatspaces\relax
\parsemargdefxxx#1,;,%
+ % In case that there are 10 or more arguments we parse again the arguments
+ % list to set new definitions for the \macarg.BLAH macros corresponding to
+ % each BLAH argument. It was anyhow needed to parse already once this list
+ % in order to count the arguments, and as macros with at most 9 arguments
+ % are by far more frequent than macro with 10 or more arguments, defining
+ % twice the \macarg.BLAH macros does not cost too much processing power.
+ \ifnum\paramno<10\relax\else
+ \paramno0\relax
+ \parsemmanyargdef@@#1,;,% 10 or more arguments
+ \fi
}
\def\parsemargdefxxx#1,{%
\if#1;\let\next=\relax
@@ -7105,16 +7533,205 @@ end
\edef\paramlist{\paramlist\hash\the\paramno,}%
\fi\next}
+\def\parsemmanyargdef@@#1,{%
+ \if#1;\let\next=\relax
+ \else
+ \let\next=\parsemmanyargdef@@
+ \edef\tempb{\eatspaces{#1}}%
+ \expandafter\def\expandafter\tempa
+ \expandafter{\csname macarg.\tempb\endcsname}%
+ % Note that we need some extra \noexpand\noexpand, this is because we
+ % don't want \the to be expanded in the \parsermacbody as it uses an
+ % \xdef .
+ \expandafter\edef\tempa
+ {\noexpand\noexpand\noexpand\the\toks\the\paramno}%
+ \advance\paramno by 1\relax
+ \fi\next}
+
% These two commands read recursive and nonrecursive macro bodies.
% (They're different since rec and nonrec macros end differently.)
%
+
+\catcode `\@\texiatcatcode
\long\def\parsemacbody#1@end macro%
{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
\long\def\parsermacbody#1@end rmacro%
{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
+\catcode `\@=11\relax
+
+\let\endargs@\relax
+\let\nil@\relax
+\def\nilm@{\nil@}%
+\long\def\nillm@{\nil@}%
+
+% This macro is expanded during the Texinfo macro expansion, not during its
+% definition. It gets all the arguments values and assigns them to macros
+% macarg.ARGNAME
+%
+% #1 is the macro name
+% #2 is the list of argument names
+% #3 is the list of argument values
+\def\getargvals@#1#2#3{%
+ \def\macargdeflist@{}%
+ \def\saveparamlist@{#2}% Need to keep a copy for parameter expansion.
+ \def\paramlist{#2,\nil@}%
+ \def\macroname{#1}%
+ \begingroup
+ \macroargctxt
+ \def\argvaluelist{#3,\nil@}%
+ \def\@tempa{#3}%
+ \ifx\@tempa\empty
+ \setemptyargvalues@
+ \else
+ \getargvals@@
+ \fi
+}
+
+%
+\def\getargvals@@{%
+ \ifx\paramlist\nilm@
+ % Some sanity check needed here that \argvaluelist is also empty.
+ \ifx\argvaluelist\nillm@
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Too many arguments in macro `\macroname'!}%
+ \fi
+ \let\next\macargexpandinbody@
+ \else
+ \ifx\argvaluelist\nillm@
+ % No more arguments values passed to macro. Set remaining named-arg
+ % macros to empty.
+ \let\next\setemptyargvalues@
+ \else
+ % pop current arg name into \@tempb
+ \def\@tempa##1{\pop@{\@tempb}{\paramlist}##1\endargs@}%
+ \expandafter\@tempa\expandafter{\paramlist}%
+ % pop current argument value into \@tempc
+ \def\@tempa##1{\longpop@{\@tempc}{\argvaluelist}##1\endargs@}%
+ \expandafter\@tempa\expandafter{\argvaluelist}%
+ % Here \@tempb is the current arg name and \@tempc is the current arg value.
+ % First place the new argument macro definition into \@tempd
+ \expandafter\macname\expandafter{\@tempc}%
+ \expandafter\let\csname macarg.\@tempb\endcsname\relax
+ \expandafter\def\expandafter\@tempe\expandafter{%
+ \csname macarg.\@tempb\endcsname}%
+ \edef\@tempd{\long\def\@tempe{\the\macname}}%
+ \push@\@tempd\macargdeflist@
+ \let\next\getargvals@@
+ \fi
+ \fi
+ \next
+}
+
+\def\push@#1#2{%
+ \expandafter\expandafter\expandafter\def
+ \expandafter\expandafter\expandafter#2%
+ \expandafter\expandafter\expandafter{%
+ \expandafter#1#2}%
+}
+
+% Replace arguments by their values in the macro body, and place the result
+% in macro \@tempa
+\def\macvalstoargs@{%
+ % To do this we use the property that token registers that are \the'ed
+ % within an \edef expand only once. So we are going to place all argument
+ % values into respective token registers.
+ %
+ % First we save the token context, and initialize argument numbering.
+ \begingroup
+ \paramno0\relax
+ % Then, for each argument number #N, we place the corresponding argument
+ % value into a new token list register \toks#N
+ \expandafter\putargsintokens@\saveparamlist@,;,%
+ % Then, we expand the body so that argument are replaced by their
+ % values. The trick for values not to be expanded themselves is that they
+ % are within tokens and that tokens expand only once in an \edef .
+ \edef\@tempc{\csname mac.\macroname .body\endcsname}%
+ % Now we restore the token stack pointer to free the token list registers
+ % which we have used, but we make sure that expanded body is saved after
+ % group.
+ \expandafter
+ \endgroup
+ \expandafter\def\expandafter\@tempa\expandafter{\@tempc}%
+ }
+
+\def\macargexpandinbody@{%
+ %% Define the named-macro outside of this group and then close this group.
+ \expandafter
+ \endgroup
+ \macargdeflist@
+ % First the replace in body the macro arguments by their values, the result
+ % is in \@tempa .
+ \macvalstoargs@
+ % Then we point at the \norecurse or \gobble (for recursive) macro value
+ % with \@tempb .
+ \expandafter\let\expandafter\@tempb\csname mac.\macroname .recurse\endcsname
+ % Depending on whether it is recursive or not, we need some tailing
+ % \egroup .
+ \ifx\@tempb\gobble
+ \let\@tempc\relax
+ \else
+ \let\@tempc\egroup
+ \fi
+ % And now we do the real job:
+ \edef\@tempd{\noexpand\@tempb{\macroname}\noexpand\scanmacro{\@tempa}\@tempc}%
+ \@tempd
+}
+
+\def\putargsintokens@#1,{%
+ \if#1;\let\next\relax
+ \else
+ \let\next\putargsintokens@
+ % First we allocate the new token list register, and give it a temporary
+ % alias \@tempb .
+ \toksdef\@tempb\the\paramno
+ % Then we place the argument value into that token list register.
+ \expandafter\let\expandafter\@tempa\csname macarg.#1\endcsname
+ \expandafter\@tempb\expandafter{\@tempa}%
+ \advance\paramno by 1\relax
+ \fi
+ \next
+}
+
+% Save the token stack pointer into macro #1
+\def\texisavetoksstackpoint#1{\edef#1{\the\@cclvi}}
+% Restore the token stack pointer from number in macro #1
+\def\texirestoretoksstackpoint#1{\expandafter\mathchardef\expandafter\@cclvi#1\relax}
+% newtoks that can be used non \outer .
+\def\texinonouternewtoks{\alloc@ 5\toks \toksdef \@cclvi}
+
+% Tailing missing arguments are set to empty
+\def\setemptyargvalues@{%
+ \ifx\paramlist\nilm@
+ \let\next\macargexpandinbody@
+ \else
+ \expandafter\setemptyargvaluesparser@\paramlist\endargs@
+ \let\next\setemptyargvalues@
+ \fi
+ \next
+}
+
+\def\setemptyargvaluesparser@#1,#2\endargs@{%
+ \expandafter\def\expandafter\@tempa\expandafter{%
+ \expandafter\def\csname macarg.#1\endcsname{}}%
+ \push@\@tempa\macargdeflist@
+ \def\paramlist{#2}%
+}
+
+% #1 is the element target macro
+% #2 is the list macro
+% #3,#4\endargs@ is the list value
+\def\pop@#1#2#3,#4\endargs@{%
+ \def#1{#3}%
+ \def#2{#4}%
+}
+\long\def\longpop@#1#2#3,#4\endargs@{%
+ \long\def#1{#3}%
+ \long\def#2{#4}%
+}
-% This defines the macro itself. There are six cases: recursive and
-% nonrecursive macros of zero, one, and many arguments.
+% This defines a Texinfo @macro. There are eight cases: recursive and
+% nonrecursive macros of zero, one, up to nine, and many arguments.
% Much magic with \expandafter here.
% \xdef is used so that macro definitions will survive the file
% they're defined in; @include reads the file inside a group.
@@ -7133,17 +7750,25 @@ end
\expandafter\noexpand\csname\the\macname xxx\endcsname}%
\expandafter\xdef\csname\the\macname xxx\endcsname##1{%
\egroup\noexpand\scanmacro{\temp}}%
- \else % many
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \noexpand\csname\the\macname xx\endcsname}%
- \expandafter\xdef\csname\the\macname xx\endcsname##1{%
- \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
- \expandafter\expandafter
- \expandafter\xdef
- \expandafter\expandafter
- \csname\the\macname xxx\endcsname
- \paramlist{\egroup\noexpand\scanmacro{\temp}}%
+ \else
+ \ifnum\paramno<10\relax % at most 9
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup\noexpand\macroargctxt
+ \noexpand\csname\the\macname xx\endcsname}%
+ \expandafter\xdef\csname\the\macname xx\endcsname##1{%
+ \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+ \expandafter\expandafter
+ \expandafter\xdef
+ \expandafter\expandafter
+ \csname\the\macname xxx\endcsname
+ \paramlist{\egroup\noexpand\scanmacro{\temp}}%
+ \else % 10 or more
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \noexpand\getargvals@{\the\macname}{\argl}%
+ }%
+ \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp
+ \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble
+ \fi
\fi
\else
\ifcase\paramno
@@ -7160,23 +7785,33 @@ end
\egroup
\noexpand\norecurse{\the\macname}%
\noexpand\scanmacro{\temp}\egroup}%
- \else % many
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \expandafter\noexpand\csname\the\macname xx\endcsname}%
- \expandafter\xdef\csname\the\macname xx\endcsname##1{%
- \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
- \expandafter\expandafter
- \expandafter\xdef
- \expandafter\expandafter
- \csname\the\macname xxx\endcsname
- \paramlist{%
- \egroup
- \noexpand\norecurse{\the\macname}%
- \noexpand\scanmacro{\temp}\egroup}%
+ \else % at most 9
+ \ifnum\paramno<10\relax
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup\noexpand\macroargctxt
+ \expandafter\noexpand\csname\the\macname xx\endcsname}%
+ \expandafter\xdef\csname\the\macname xx\endcsname##1{%
+ \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+ \expandafter\expandafter
+ \expandafter\xdef
+ \expandafter\expandafter
+ \csname\the\macname xxx\endcsname
+ \paramlist{%
+ \egroup
+ \noexpand\norecurse{\the\macname}%
+ \noexpand\scanmacro{\temp}\egroup}%
+ \else % 10 or more:
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \noexpand\getargvals@{\the\macname}{\argl}%
+ }%
+ \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp
+ \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\norecurse
+ \fi
\fi
\fi}
+\catcode `\@\texiatcatcode\relax
+
\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
% \braceorline decides whether the next nonwhitespace character is a
@@ -7215,7 +7850,8 @@ end
% @inforef is relatively simple.
\def\inforef #1{\inforefzzz #1,,,,**}
-\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
+\def\inforefzzz #1,#2,#3,#4**{%
+ \putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
node \samp{\ignorespaces#1{}}}
% @node's only job in TeX is to define \lastnode, which is used in
@@ -7276,11 +7912,32 @@ end
\toks0 = \expandafter{\lastsection}%
\immediate \writexrdef{title}{\the\toks0 }%
\immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
- \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout
+ \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout
}%
\fi
}
+% @xrefautosectiontitle on|off says whether @section(ing) names are used
+% automatically in xrefs, if the third arg is not explicitly specified.
+% This was provided as a "secret" @set xref-automatic-section-title
+% variable, now it's official.
+%
+\parseargdef\xrefautomaticsectiontitle{%
+ \def\temp{#1}%
+ \ifx\temp\onword
+ \expandafter\let\csname SETxref-automatic-section-title\endcsname
+ = \empty
+ \else\ifx\temp\offword
+ \expandafter\let\csname SETxref-automatic-section-title\endcsname
+ = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @xrefautomaticsectiontitle value `\temp',
+ must be on|off}%
+ \fi\fi
+}
+
+%
% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is
% the node name, #2 the name of the Info cross-reference, #3 the printed
% node name, #4 the name of the Info file, #5 the name of the printed
@@ -7289,26 +7946,41 @@ end
\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
\def\ref#1{\xrefX[#1,,,,,,,]}
+%
+\newbox\toprefbox
+\newbox\printedrefnamebox
+\newbox\infofilenamebox
+\newbox\printedmanualbox
+%
\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
\unsepspaces
- \def\printedmanual{\ignorespaces #5}%
+ %
+ % Get args without leading/trailing spaces.
\def\printedrefname{\ignorespaces #3}%
- \setbox1=\hbox{\printedmanual\unskip}%
- \setbox0=\hbox{\printedrefname\unskip}%
- \ifdim \wd0 = 0pt
+ \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}%
+ %
+ \def\infofilename{\ignorespaces #4}%
+ \setbox\infofilenamebox = \hbox{\infofilename\unskip}%
+ %
+ \def\printedmanual{\ignorespaces #5}%
+ \setbox\printedmanualbox = \hbox{\printedmanual\unskip}%
+ %
+ % If the printed reference name (arg #3) was not explicitly given in
+ % the @xref, figure out what we want to use.
+ \ifdim \wd\printedrefnamebox = 0pt
% No printed node name was explicitly given.
- \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
- % Use the node name inside the square brackets.
+ \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax
+ % Not auto section-title: use node name inside the square brackets.
\def\printedrefname{\ignorespaces #1}%
\else
- % Use the actual chapter/section title appear inside
- % the square brackets. Use the real section title if we have it.
- \ifdim \wd1 > 0pt
- % It is in another manual, so we don't have it.
+ % Auto section-title: use chapter/section title inside
+ % the square brackets if we have it.
+ \ifdim \wd\printedmanualbox > 0pt
+ % It is in another manual, so we don't have it; use node name.
\def\printedrefname{\ignorespaces #1}%
\else
\ifhavexrefs
- % We know the real title if we have the xref values.
+ % We (should) know the real title if we have the xref values.
\def\printedrefname{\refx{#1-title}{}}%
\else
% Otherwise just copy the Info node name.
@@ -7322,13 +7994,20 @@ end
\ifpdf
{\indexnofonts
\turnoffactive
+ \makevalueexpandable
% This expands tokens, so do it after making catcode changes, so _
- % etc. don't get their TeX definitions.
+ % etc. don't get their TeX definitions. This ignores all spaces in
+ % #4, including (wrongly) those in the middle of the filename.
\getfilename{#4}%
%
- % See comments at \activebackslashdouble.
- {\activebackslashdouble \xdef\pdfxrefdest{#1}%
- \backslashparens\pdfxrefdest}%
+ % This (wrongly) does not take account of leading or trailing
+ % spaces in #1, which should be ignored.
+ \edef\pdfxrefdest{#1}%
+ \ifx\pdfxrefdest\empty
+ \def\pdfxrefdest{Top}% no empty targets
+ \else
+ \txiescapepdf\pdfxrefdest % escape PDF special chars
+ \fi
%
\leavevmode
\startlink attr{/Border [0 0 0]}%
@@ -7355,29 +8034,42 @@ end
\iffloat\Xthisreftitle
% If the user specified the print name (third arg) to the ref,
% print it instead of our usual "Figure 1.2".
- \ifdim\wd0 = 0pt
+ \ifdim\wd\printedrefnamebox = 0pt
\refx{#1-snt}{}%
\else
\printedrefname
\fi
%
- % if the user also gave the printed manual name (fifth arg), append
+ % If the user also gave the printed manual name (fifth arg), append
% "in MANUALNAME".
- \ifdim \wd1 > 0pt
+ \ifdim \wd\printedmanualbox > 0pt
\space \putwordin{} \cite{\printedmanual}%
\fi
\else
% node/anchor (non-float) references.
+ %
+ % If we use \unhbox to print the node names, TeX does not insert
+ % empty discretionaries after hyphens, which means that it will not
+ % find a line break at a hyphen in a node names. Since some manuals
+ % are best written with fairly long node names, containing hyphens,
+ % this is a loss. Therefore, we give the text of the node name
+ % again, so it is as if TeX is seeing it for the first time.
+ %
+ \ifdim \wd\printedmanualbox > 0pt
+ % Cross-manual reference with a printed manual name.
+ %
+ \crossmanualxref{\cite{\printedmanual\unskip}}%
+ %
+ \else\ifdim \wd\infofilenamebox > 0pt
+ % Cross-manual reference with only an info filename (arg 4), no
+ % printed manual name (arg 5). This is essentially the same as
+ % the case above; we output the filename, since we have nothing else.
+ %
+ \crossmanualxref{\code{\infofilename\unskip}}%
%
- % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
- % insert empty discretionaries after hyphens, which means that it will
- % not find a line break at a hyphen in a node names. Since some manuals
- % are best written with fairly long node names, containing hyphens, this
- % is a loss. Therefore, we give the text of the node name again, so it
- % is as if TeX is seeing it for the first time.
- \ifdim \wd1 > 0pt
- \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
\else
+ % Reference within this manual.
+ %
% _ (for example) has to be the character _ for the purposes of the
% control sequence corresponding to the node, but it has to expand
% into the usual \leavevmode...\vrule stuff for purposes of
@@ -7389,7 +8081,7 @@ end
\setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
\ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
}%
- % output the `[mynode]' via a macro so it can be overridden.
+ % output the `[mynode]' via the macro below so it can be overridden.
\xrefprintnodename\printedrefname
%
% But we always want a comma and a space:
@@ -7397,11 +8089,37 @@ end
%
% output the `page 3'.
\turnoffactive \putwordpage\tie\refx{#1-pg}{}%
- \fi
+ \fi\fi
\fi
\endlink
\endgroup}
+% Output a cross-manual xref to #1. Used just above (twice).
+%
+% Only include the text "Section ``foo'' in" if the foo is neither
+% missing or Top. Thus, @xref{,,,foo,The Foo Manual} outputs simply
+% "see The Foo Manual", the idea being to refer to the whole manual.
+%
+% But, this being TeX, we can't easily compare our node name against the
+% string "Top" while ignoring the possible spaces before and after in
+% the input. By adding the arbitrary 7sp below, we make it much less
+% likely that a real node name would have the same width as "Top" (e.g.,
+% in a monospaced font). Hopefully it will never happen in practice.
+%
+% For the same basic reason, we retypeset the "Top" at every
+% reference, since the current font is indeterminate.
+%
+\def\crossmanualxref#1{%
+ \setbox\toprefbox = \hbox{Top\kern7sp}%
+ \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}%
+ \ifdim \wd2 > 7sp % nonempty?
+ \ifdim \wd2 = \wd\toprefbox \else % same as Top?
+ \putwordSection{} ``\printedrefname'' \putwordin{}\space
+ \fi
+ \fi
+ #1%
+}
+
% This macro is called from \xrefX for the `[nodename]' part of xref
% output. It's a separate macro only so it can be changed more easily,
% since square brackets don't work well in some documents. Particularly
@@ -7452,7 +8170,8 @@ end
\angleleft un\-de\-fined\angleright
\iflinks
\ifhavexrefs
- \message{\linenumber Undefined cross reference `#1'.}%
+ {\toks0 = {#1}% avoid expansion of possibly-complex value
+ \message{\linenumber Undefined cross reference `\the\toks0'.}}%
\else
\ifwarnedxrefs\else
\global\warnedxrefstrue
@@ -7616,7 +8335,7 @@ end
% space to prevent strange expansion errors.)
\def\supereject{\par\penalty -20000\footnoteno =0 }
-% @footnotestyle is meaningful for info output only.
+% @footnotestyle is meaningful for Info output only.
\let\footnotestyle=\comment
{\catcode `\@=11
@@ -7679,6 +8398,8 @@ end
% expands into a box, it must come within the paragraph, lest it
% provide a place where TeX can split the footnote.
\footstrut
+ %
+ % Invoke rest of plain TeX footnote routine.
\futurelet\next\fo@t
}
}%end \catcode `\@=11
@@ -7766,7 +8487,7 @@ end
it from ftp://tug.org/tex/epsf.tex.}
%
\def\image#1{%
- \ifx\epsfbox\undefined
+ \ifx\epsfbox\thisisundefined
\ifwarnednoepsf \else
\errhelp = \noepsfhelp
\errmessage{epsf.tex not found, images will be ignored}%
@@ -7790,6 +8511,13 @@ end
% If the image is by itself, center it.
\ifvmode
\imagevmodetrue
+ \else \ifx\centersub\centerV
+ % for @center @image, we need a vbox so we can have our vertical space
+ \imagevmodetrue
+ \vbox\bgroup % vbox has better behavior than vtop herev
+ \fi\fi
+ %
+ \ifimagevmode
\nobreak\medskip
% Usually we'll have text after the image which will insert
% \parskip glue, so insert it here too to equalize the space
@@ -7799,9 +8527,13 @@ end
\fi
%
% Leave vertical mode so that indentation from an enclosing
- % environment such as @quotation is respected. On the other hand, if
- % it's at the top level, we don't want the normal paragraph indentation.
- \noindent
+ % environment such as @quotation is respected.
+ % However, if we're at the top level, we don't want the
+ % normal paragraph indentation.
+ % On the other hand, if we are in the case of @center @image, we don't
+ % want to start a paragraph, which will create a hsize-width box and
+ % eradicate the centering.
+ \ifx\centersub\centerV\else \noindent \fi
%
% Output the image.
\ifpdf
@@ -7813,7 +8545,10 @@ end
\epsfbox{#1.eps}%
\fi
%
- \ifimagevmode \medskip \fi % space after the standalone image
+ \ifimagevmode
+ \medskip % space after a standalone image
+ \fi
+ \ifx\centersub\centerV \egroup \fi
\endgroup}
@@ -8231,7 +8966,7 @@ directory should work if nowhere else does.}
%
% Latin1 (ISO-8859-1) character definitions.
\def\latonechardefs{%
- \gdef^^a0{~}
+ \gdef^^a0{\tie}
\gdef^^a1{\exclamdown}
\gdef^^a2{\missingcharmsg{CENT SIGN}}
\gdef^^a3{{\pounds}}
@@ -8261,7 +8996,7 @@ directory should work if nowhere else does.}
\gdef^^b9{$^1$}
\gdef^^ba{\ordm}
%
- \gdef^^bb{\guilletright}
+ \gdef^^bb{\guillemetright}
\gdef^^bc{$1\over4$}
\gdef^^bd{$1\over2$}
\gdef^^be{$3\over4$}
@@ -8353,7 +9088,7 @@ directory should work if nowhere else does.}
% Latin2 (ISO-8859-2) character definitions.
\def\lattwochardefs{%
- \gdef^^a0{~}
+ \gdef^^a0{\tie}
\gdef^^a1{\ogonek{A}}
\gdef^^a2{\u{}}
\gdef^^a3{\L}
@@ -8434,8 +9169,8 @@ directory should work if nowhere else does.}
\gdef^^ea{\ogonek{e}}
\gdef^^eb{\"e}
\gdef^^ec{\v e}
- \gdef^^ed{\'\i}
- \gdef^^ee{\^\i}
+ \gdef^^ed{\'{\dotless{i}}}
+ \gdef^^ee{\^{\dotless{i}}}
\gdef^^ef{\v d}
%
\gdef^^f0{\dh}
@@ -8526,7 +9261,7 @@ directory should work if nowhere else does.}
\gdef\DeclareUnicodeCharacter#1#2{%
\countUTFz = "#1\relax
- \wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
+ %\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
\begingroup
\parseXMLCharref
\def\UTFviiiTwoOctets##1##2{%
@@ -9202,28 +9937,21 @@ directory should work if nowhere else does.}
\message{and turning on texinfo input format.}
+\def^^L{\par} % remove \outer, so ^L can appear in an @comment
+
% DEL is a comment character, in case @c does not suffice.
\catcode`\^^? = 14
% Define macros to output various characters with catcode for normal text.
-\catcode`\"=\other
-\catcode`\~=\other
-\catcode`\^=\other
-\catcode`\_=\other
-\catcode`\|=\other
-\catcode`\<=\other
-\catcode`\>=\other
-\catcode`\+=\other
-\catcode`\$=\other
-\def\normaldoublequote{"}
-\def\normaltilde{~}
-\def\normalcaret{^}
-\def\normalunderscore{_}
-\def\normalverticalbar{|}
-\def\normalless{<}
-\def\normalgreater{>}
-\def\normalplus{+}
-\def\normaldollar{$}%$ font-lock fix
+\catcode`\"=\other \def\normaldoublequote{"}
+\catcode`\$=\other \def\normaldollar{$}%$ font-lock fix
+\catcode`\+=\other \def\normalplus{+}
+\catcode`\<=\other \def\normalless{<}
+\catcode`\>=\other \def\normalgreater{>}
+\catcode`\^=\other \def\normalcaret{^}
+\catcode`\_=\other \def\normalunderscore{_}
+\catcode`\|=\other \def\normalverticalbar{|}
+\catcode`\~=\other \def\normaltilde{~}
% This macro is used to make a character print one way in \tt
% (where it can probably be output as-is), and another way in other fonts,
@@ -9250,11 +9978,9 @@ directory should work if nowhere else does.}
\catcode`\"=\active
\def\activedoublequote{{\tt\char34}}
\let"=\activedoublequote
-\catcode`\~=\active
-\def~{{\tt\char126}}
+\catcode`\~=\active \def\activetilde{{\tt\char126}} \let~ = \activetilde
\chardef\hat=`\^
-\catcode`\^=\active
-\def^{{\tt \hat}}
+\catcode`\^=\active \def\activehat{{\tt \hat}} \let^ = \activehat
\catcode`\_=\active
\def_{\ifusingtt\normalunderscore\_}
@@ -9264,16 +9990,26 @@ directory should work if nowhere else does.}
\catcode`\|=\active
\def|{{\tt\char124}}
+
\chardef \less=`\<
-\catcode`\<=\active
-\def<{{\tt \less}}
+\catcode`\<=\active \def\activeless{{\tt \less}}\let< = \activeless
\chardef \gtr=`\>
-\catcode`\>=\active
-\def>{{\tt \gtr}}
-\catcode`\+=\active
-\def+{{\tt \char 43}}
-\catcode`\$=\active
-\def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
+\catcode`\>=\active \def\activegtr{{\tt \gtr}}\let> = \activegtr
+\catcode`\+=\active \def+{{\tt \char 43}}
+\catcode`\$=\active \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
+
+% used for headline/footline in the output routine, in case the page
+% breaks in the middle of an @tex block.
+\def\texinfochars{%
+ \let< = \activeless
+ \let> = \activegtr
+ \let~ = \activetilde
+ \let^ = \activehat
+ \markupsetuplqdefault \markupsetuprqdefault
+ \let\b = \strong
+ \let\i = \smartitalic
+ % in principle, all other definitions in \tex have to be undone too.
+}
% If a .fmt file is being used, characters that might appear in a file
% name cannot be active until we have parsed the command line.
@@ -9301,34 +10037,48 @@ directory should work if nowhere else does.}
% In texinfo, backslash is an active character; it prints the backslash
% in fixed width font.
-\catcode`\\=\active
-@def@normalbackslash{{@tt@backslashcurfont}}
+\catcode`\\=\active % @ for escape char from now on.
+
+% The story here is that in math mode, the \char of \backslashcurfont
+% ends up printing the roman \ from the math symbol font (because \char
+% in math mode uses the \mathcode, and plain.tex sets
+% \mathcode`\\="026E). It seems better for @backslashchar{} to always
+% print a typewriter backslash, hence we use an explicit \mathchar,
+% which is the decimal equivalent of "715c (class 7, e.g., use \fam;
+% ignored family value; char position "5C). We can't use " for the
+% usual hex value because it has already been made active.
+@def@normalbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}}
+@let@backslashchar = @normalbackslash % @backslashchar{} is for user documents.
+
% On startup, @fixbackslash assigns:
% @let \ = @normalbackslash
-
% \rawbackslash defines an active \ to do \backslashcurfont.
% \otherbackslash defines an active \ to be a literal `\' character with
-% catcode other.
+% catcode other. We switch back and forth between these.
@gdef@rawbackslash{@let\=@backslashcurfont}
@gdef@otherbackslash{@let\=@realbackslash}
% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
-% the literal character `\'.
-%
-@def@normalturnoffactive{%
- @let\=@normalbackslash
- @let"=@normaldoublequote
- @let~=@normaltilde
- @let^=@normalcaret
- @let_=@normalunderscore
- @let|=@normalverticalbar
- @let<=@normalless
- @let>=@normalgreater
- @let+=@normalplus
- @let$=@normaldollar %$ font-lock fix
- @markupsetuplqdefault
- @markupsetuprqdefault
- @unsepspaces
+% the literal character `\'. Also revert - to its normal character, in
+% case the active - from code has slipped in.
+%
+{@catcode`- = @active
+ @gdef@normalturnoffactive{%
+ @let-=@normaldash
+ @let"=@normaldoublequote
+ @let$=@normaldollar %$ font-lock fix
+ @let+=@normalplus
+ @let<=@normalless
+ @let>=@normalgreater
+ @let\=@normalbackslash
+ @let^=@normalcaret
+ @let_=@normalunderscore
+ @let|=@normalverticalbar
+ @let~=@normaltilde
+ @markupsetuplqdefault
+ @markupsetuprqdefault
+ @unsepspaces
+ }
}
% Make _ and + \other characters, temporarily.
@@ -9357,10 +10107,19 @@ directory should work if nowhere else does.}
% Say @foo, not \foo, in error messages.
@escapechar = `@@
+% These (along with & and #) are made active for url-breaking, so need
+% active definitions as the normal characters.
+@def@normaldot{.}
+@def@normalquest{?}
+@def@normalslash{/}
+
% These look ok in all fonts, so just make them not special.
-@catcode`@& = @other
-@catcode`@# = @other
-@catcode`@% = @other
+% @hashchar{} gets its own user-level command, because of #line.
+@catcode`@& = @other @def@normalamp{&}
+@catcode`@# = @other @def@normalhash{#}
+@catcode`@% = @other @def@normalpercent{%}
+
+@let @hashchar = @normalhash
@c Finally, make ` and ' active, so that txicodequoteundirected and
@c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we
diff --git a/config/uintmax_t.m4 b/config/uintmax_t.m4
deleted file mode 100644
index b5f28d4..0000000
--- a/config/uintmax_t.m4
+++ /dev/null
@@ -1,32 +0,0 @@
-# uintmax_t.m4 serial 7 (gettext-0.12)
-dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-AC_PREREQ(2.13)
-
-# Define uintmax_t to 'unsigned long' or 'unsigned long long'
-# if it is not already defined in <stdint.h> or <inttypes.h>.
-
-AC_DEFUN([jm_AC_TYPE_UINTMAX_T],
-[
- AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
- AC_REQUIRE([jm_AC_HEADER_STDINT_H])
- if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then
- AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
- test $ac_cv_type_unsigned_long_long = yes \
- && ac_type='unsigned long long' \
- || ac_type='unsigned long'
- AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
- [Define to unsigned long or unsigned long long
- if <stdint.h> and <inttypes.h> don't define.])
- else
- AC_DEFINE(HAVE_UINTMAX_T, 1,
- [Define if you have the 'uintmax_t' type in <stdint.h> or <inttypes.h>.])
- fi
-])
diff --git a/config/ulonglong.m4 b/config/ulonglong.m4
deleted file mode 100644
index 1da8b80..0000000
--- a/config/ulonglong.m4
+++ /dev/null
@@ -1,25 +0,0 @@
-# ulonglong.m4 serial 3
-dnl Copyright (C) 1999-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-# Define HAVE_UNSIGNED_LONG_LONG if 'unsigned long long' works.
-
-AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG],
-[
- AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
- [AC_TRY_LINK([unsigned long long ull = 1ULL; int i = 63;],
- [unsigned long long ullmax = (unsigned long long) -1;
- return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
- ac_cv_type_unsigned_long_long=yes,
- ac_cv_type_unsigned_long_long=no)])
- if test $ac_cv_type_unsigned_long_long = yes; then
- AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
- [Define if you have the 'unsigned long long' type.])
- fi
-])
diff --git a/config/wchar_t.m4 b/config/wchar_t.m4
deleted file mode 100644
index d8fd1ec..0000000
--- a/config/wchar_t.m4
+++ /dev/null
@@ -1,22 +0,0 @@
-# wchar_t.m4 serial 1 (gettext-0.12)
-dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-dnl Test whether <stddef.h> has the 'wchar_t' type.
-dnl Prerequisite: AC_PROG_CC
-
-AC_DEFUN([gt_TYPE_WCHAR_T],
-[
- AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t,
- [AC_TRY_COMPILE([#include <stddef.h>
- wchar_t foo = (wchar_t)'\0';], ,
- gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)])
- if test $gt_cv_c_wchar_t = yes; then
- AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.])
- fi
-])
diff --git a/config/wint_t.m4 b/config/wint_t.m4
deleted file mode 100644
index 3d8d215..0000000
--- a/config/wint_t.m4
+++ /dev/null
@@ -1,22 +0,0 @@
-# wint_t.m4 serial 1 (gettext-0.12)
-dnl Copyright (C) 2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-dnl Test whether <wchar.h> has the 'wint_t' type.
-dnl Prerequisite: AC_PROG_CC
-
-AC_DEFUN([gt_TYPE_WINT_T],
-[
- AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t,
- [AC_TRY_COMPILE([#include <wchar.h>
- wint_t foo = (wchar_t)'\0';], ,
- gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)])
- if test $gt_cv_c_wint_t = yes; then
- AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.])
- fi
-])
diff --git a/config/xsize.m4 b/config/xsize.m4
deleted file mode 100644
index 9b7cf9b..0000000
--- a/config/xsize.m4
+++ /dev/null
@@ -1,14 +0,0 @@
-# xsize.m4 serial 2
-dnl Copyright (C) 2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-AC_DEFUN([gl_XSIZE],
-[
- dnl Prerequisites of lib/xsize.h.
- AC_REQUIRE([gl_SIZE_MAX])
- AC_CHECK_HEADERS(stdint.h)
-])
diff --git a/configh.dos b/configh.dos
index ee840f4..03bf8db 100644
--- a/configh.dos
+++ b/configh.dos
@@ -1,7 +1,6 @@
/* configh.dos -- hand-massaged config.h file for MS-DOS builds -*-C-*-
-Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1994-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -25,10 +24,10 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
#if __DJGPP__ > 2 || __DJGPP_MINOR__ > 1
-/* Define to 1 if `sys_siglist' is declared by <signal.h> or <unistd.h>. */
+/* Define to 1 if 'sys_siglist' is declared by <signal.h> or <unistd.h>. */
# define SYS_SIGLIST_DECLARED 1
-/* Define to 1 if the C library defines the variable `_sys_siglist'. */
+/* Define to 1 if the C library defines the variable '_sys_siglist'. */
# define HAVE_DECL_SYS_SIGLIST 1
#else
@@ -41,13 +40,13 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Use high resolution file timestamps if nonzero. */
#define FILE_TIMESTAMP_HI_RES 0
-/* Define to 1 if you have `alloca', as a function or macro. */
+/* Define to 1 if you have 'alloca', as a function or macro. */
#define HAVE_ALLOCA 1
/* Define to 1 if you have the fdopen function. */
#define HAVE_FDOPEN 1
-/* Define to 1 if you have the `getgroups' function. */
+/* Define to 1 if you have the 'getgroups' function. */
#define HAVE_GETGROUPS 1
/* Define to 1 if you have the <memory.h> header file. */
@@ -56,18 +55,18 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have the mkstemp function. */
#define HAVE_MKSTEMP 1
-/* Define to 1 if you have the `mktemp' function. */
+/* Define to 1 if you have the 'mktemp' function. */
#define HAVE_MKTEMP 1
-/* Define to 1 if you have the `setlinebuf' function. */
+/* Define to 1 if you have the 'setlinebuf' function. */
#define HAVE_SETLINEBUF 1
-/* Define to 1 if you have the `setvbuf' function. */
+/* Define to 1 if you have the 'setvbuf' function. */
#define HAVE_SETVBUF 1
#define SCCS_GET "get"
-/* Define to `unsigned long' or `unsigned long long'
+/* Define to 'unsigned long' or 'unsigned long long'
if <inttypes.h> doesn't define. */
#define uintmax_t unsigned long long
@@ -77,19 +76,12 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Define to 1 if you have the select function. */
#define HAVE_SELECT 1
-/* Define to 1 if your compiler conforms to the ANSI C standard. */
-#define HAVE_ANSI_COMPILER 1
-
-/* Define to 1 if you have the <stdarg.h> header file. */
-#define HAVE_STDARG_H 1
-
-/* Define to 1 if you have the vprintf library function. */
-#undef HAVE_VPRINTF
-#define HAVE_VPRINTF 1
-
/* Define to 1 if you have the stricmp function. */
#define HAVE_STRICMP 1
+/* Define to 1 if you have the 'strncasecmp' function. */
+#define HAVE_STRNCASECMP 1
+
/* Name of the package */
#define PACKAGE "make"
@@ -100,19 +92,19 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
#define PACKAGE_NAME "GNU make"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GNU make 3.82"
+#define PACKAGE_STRING "GNU make 4.0"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "make"
/* Define to the version of this package. */
-#define PACKAGE_VERSION "3.82"
+#define PACKAGE_VERSION "4.0"
-/* Define to 1 if the C compiler supports function prototypes. */
-#define PROTOTYPES 1
+/* Output sync sypport */
+#define NO_OUTPUT_SYNC
/* Version number of package */
-#define VERSION "3.82"
+#define VERSION "4.0"
/* Build host information. */
#define MAKE_HOST "i386-pc-msdosdjgpp"
diff --git a/configure b/configure
index 130f4f8..c9229f0 100755
--- a/configure
+++ b/configure
@@ -1,14 +1,11 @@
#! /bin/sh
-# From configure.in Id: configure.in,v 1.156 2010/07/28 05:39:50 psmith Exp .
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.65 for GNU make 3.82.
+# Generated by GNU Autoconf 2.69 for GNU make 4.0.
#
# Report bugs to <bug-make@gnu.org>.
#
#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
@@ -92,6 +89,7 @@ fi
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -136,6 +134,31 @@ export LANGUAGE
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
@@ -169,7 +192,8 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
else
exitcode=1; echo positional parameters were not saved.
fi
-test x\$exitcode = x0 || exit 1"
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
@@ -214,14 +238,25 @@ IFS=$as_save_IFS
if test "x$CONFIG_SHELL" != x; then :
- # We cannot yet assume a decent shell, so we have to provide a
- # neutralization value for shells without unset; and this also
- # works around shells that cannot unset nonexistent variables.
- BASH_ENV=/dev/null
- ENV=/dev/null
- (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
fi
if test x$as_have_required = xno; then :
@@ -320,10 +355,18 @@ $as_echo X"$as_dir" |
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -360,19 +403,19 @@ else
fi # as_fn_arith
-# as_fn_error ERROR [LINENO LOG_FD]
-# ---------------------------------
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with status $?, using 1 if that was 0.
+# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
- as_status=$?; test $as_status -eq 0 && as_status=1
- if test "$3"; then
- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- $as_echo "$as_me: error: $1" >&2
+ $as_echo "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
@@ -445,6 +488,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
@@ -479,16 +526,16 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -500,28 +547,8 @@ else
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -534,7 +561,7 @@ test -n "$DJDIR" || exec 7<&0 </dev/null
exec 6>&1
# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
@@ -553,8 +580,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='GNU make'
PACKAGE_TARNAME='make'
-PACKAGE_VERSION='3.82'
-PACKAGE_STRING='GNU make 3.82'
+PACKAGE_VERSION='4.0'
+PACKAGE_STRING='GNU make 4.0'
PACKAGE_BUGREPORT='bug-make@gnu.org'
PACKAGE_URL='http://www.gnu.org/software/make/'
@@ -595,6 +622,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
+gt_needs=
ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
@@ -605,6 +633,7 @@ USE_LOCAL_GLOB_FALSE
USE_LOCAL_GLOB_TRUE
GLOBLIB
GLOBINC
+AM_LDFLAGS
USE_CUSTOMS_FALSE
USE_CUSTOMS_TRUE
REMOTE
@@ -612,6 +641,13 @@ GETLOADAVG_LIBS
KMEM_GROUP
NEED_SETGID
LIBOBJS
+HAVE_GUILE_FALSE
+HAVE_GUILE_TRUE
+GUILE_LIBS
+GUILE_CFLAGS
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
+PKG_CONFIG
ALLOCA
POSUB
LTLIBINTL
@@ -619,12 +655,17 @@ LIBINTL
INTLLIBS
LTLIBICONV
LIBICONV
+INTL_MACOSX_LIBS
+XGETTEXT_EXTRA_OPTIONS
MSGMERGE
+XGETTEXT_015
XGETTEXT
+GMSGFMT_015
+MSGFMT_015
GMSGFMT
MSGFMT
+GETTEXT_MACRO_VERSION
USE_NLS
-MKINSTALLDIRS
EGREP
GREP
host_os
@@ -642,6 +683,7 @@ RANLIB
am__fastdepCC_FALSE
am__fastdepCC_TRUE
CCDEPMODE
+am__nodep
AMDEPBACKSLASH
AMDEP_FALSE
AMDEP_TRUE
@@ -655,6 +697,10 @@ CPPFLAGS
LDFLAGS
CFLAGS
CC
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
am__untar
am__tar
AMTAR
@@ -719,6 +765,7 @@ SHELL'
ac_subst_files='MAINT_MAKEFILE'
ac_user_opts='
enable_option_checking
+enable_silent_rules
enable_dependency_tracking
enable_nls
with_gnu_ld
@@ -726,9 +773,11 @@ enable_rpath
with_libiconv_prefix
with_libintl_prefix
enable_largefile
+with_guile
with_customs
enable_case_insensitive_file_system
enable_job_server
+enable_load
with_dmalloc
'
ac_precious_vars='build_alias
@@ -739,7 +788,12 @@ CFLAGS
LDFLAGS
LIBS
CPPFLAGS
-CPP'
+CPP
+PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR
+GUILE_CFLAGS
+GUILE_LIBS'
# Initialize some variables set by options.
@@ -802,8 +856,9 @@ do
fi
case $ac_option in
- *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *) ac_optarg=yes ;;
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
esac
# Accept the important Cygnus configure options, so we can diagnose typos.
@@ -848,7 +903,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid feature name: $ac_useropt"
+ as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -874,7 +929,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid feature name: $ac_useropt"
+ as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1078,7 +1133,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid package name: $ac_useropt"
+ as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1094,7 +1149,7 @@ do
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error "invalid package name: $ac_useropt"
+ as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
@@ -1124,8 +1179,8 @@ do
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries=$ac_optarg ;;
- -*) as_fn_error "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information."
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
;;
*=*)
@@ -1133,7 +1188,7 @@ Try \`$0 --help' for more information."
# Reject names that are not valid shell variable names.
case $ac_envvar in #(
'' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
esac
eval $ac_envvar=\$ac_optarg
export $ac_envvar ;;
@@ -1143,7 +1198,7 @@ Try \`$0 --help' for more information."
$as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
$as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
esac
@@ -1151,13 +1206,13 @@ done
if test -n "$ac_prev"; then
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error "missing argument to $ac_option"
+ as_fn_error $? "missing argument to $ac_option"
fi
if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
- fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
*) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
@@ -1180,7 +1235,7 @@ do
[\\/$]* | ?:[\\/]* ) continue;;
NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
esac
- as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
done
# There might be people who depend on the old broken behavior: `$host'
@@ -1194,8 +1249,6 @@ target=$target_alias
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
- $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used." >&2
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
@@ -1210,9 +1263,9 @@ test "$silent" = yes && exec 6>/dev/null
ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error "working directory cannot be determined"
+ as_fn_error $? "working directory cannot be determined"
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error "pwd does not report name of working directory"
+ as_fn_error $? "pwd does not report name of working directory"
# Find the source files, if location was not specified.
@@ -1251,11 +1304,11 @@ else
fi
if test ! -r "$srcdir/$ac_unique_file"; then
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
fi
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1281,7 +1334,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures GNU make 3.82 to adapt to many kinds of systems.
+\`configure' configures GNU make 4.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1295,7 +1348,7 @@ Configuration:
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
+ -q, --quiet, --silent do not print \`checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for \`--cache-file=config.cache'
-n, --no-create do not create output files
@@ -1351,7 +1404,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of GNU make 3.82:";;
+ short | recursive ) echo "Configuration of GNU make 4.0:";;
esac
cat <<\_ACEOF
@@ -1359,6 +1412,8 @@ Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-silent-rules less verbose build output (undo: `make V=1')
+ --disable-silent-rules verbose build output (undo: `make V=0')
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--disable-nls do not use Native Language Support
@@ -1367,6 +1422,7 @@ Optional Features:
--enable-case-insensitive-file-system
assume file systems are case insensitive
--disable-job-server disallow recursive make communication during -jN
+ --disable-load disable support for the 'load' operation
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -1376,9 +1432,9 @@ Optional Packages:
--without-libiconv-prefix don't search for libiconv in includedir and libdir
--with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib
--without-libintl-prefix don't search for libintl in includedir and libdir
- --with-customs=DIR enable remote jobs via Customs--see README.customs
- --with-dmalloc use dmalloc, as in
- http://www.dmalloc.com/dmalloc.tar.gz
+ --with-guile Support GNU Guile for embedded scripting
+ --with-customs=DIR enable remote jobs via Customs--see README.customs
+ --with-dmalloc use dmalloc, as in http://www.dmalloc.com
Some influential environment variables:
CC C compiler command
@@ -1389,6 +1445,14 @@ Some influential environment variables:
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CPP C preprocessor
+ PKG_CONFIG path to pkg-config utility
+ PKG_CONFIG_PATH
+ directories to add to pkg-config's search path
+ PKG_CONFIG_LIBDIR
+ path overriding pkg-config's built-in search path
+ GUILE_CFLAGS
+ C compiler flags for GUILE, overriding pkg-config
+ GUILE_LIBS linker flags for GUILE, overriding pkg-config
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
@@ -1458,10 +1522,10 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-GNU make configure 3.82
-generated by GNU Autoconf 2.65
+GNU make configure 4.0
+generated by GNU Autoconf 2.69
-Copyright (C) 2009 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
@@ -1505,7 +1569,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_compile
@@ -1531,7 +1595,7 @@ $as_echo "$ac_try_echo"; } >&5
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } >/dev/null && {
+ test $ac_status = 0; } > conftest.i && {
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
test ! -s conftest.err
}; then :
@@ -1542,7 +1606,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_cpp
@@ -1555,10 +1619,10 @@ fi
ac_fn_c_check_header_mongrel ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ if eval \${$3+:} false; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
fi
eval ac_res=\$$3
@@ -1594,7 +1658,7 @@ if ac_fn_c_try_cpp "$LINENO"; then :
else
ac_header_preproc=no
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
$as_echo "$ac_header_preproc" >&6; }
@@ -1617,17 +1681,15 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( cat <<\_ASBOX
-## ------------------------------- ##
+( $as_echo "## ------------------------------- ##
## Report this to bug-make@gnu.org ##
-## ------------------------------- ##
-_ASBOX
+## ------------------------------- ##"
) | sed "s/^/$as_me: WARNING: /" >&2
;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
eval "$3=\$ac_header_compiler"
@@ -1636,7 +1698,7 @@ eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
fi
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_mongrel
@@ -1677,7 +1739,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=$ac_status
fi
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_run
@@ -1691,7 +1753,7 @@ ac_fn_c_check_header_compile ()
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1709,7 +1771,7 @@ fi
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_compile
@@ -1740,7 +1802,7 @@ $as_echo "$ac_try_echo"; } >&5
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
+ test -x conftest$ac_exeext
}; then :
ac_retval=0
else
@@ -1754,7 +1816,7 @@ fi
# interfere with the next link command; also delete a directory that is
# left behind by Apple's compiler. We do this before executing the actions.
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_link
@@ -1768,7 +1830,7 @@ ac_fn_c_check_type ()
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
eval "$3=no"
@@ -1809,7 +1871,7 @@ fi
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_type
@@ -1821,7 +1883,7 @@ ac_fn_c_check_func ()
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1876,19 +1938,22 @@ fi
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_func
-# ac_fn_c_check_decl LINENO SYMBOL VAR
-# ------------------------------------
-# Tests whether SYMBOL is declared, setting cache variable VAR accordingly.
+# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
+# ---------------------------------------------
+# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
+# accordingly.
ac_fn_c_check_decl ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5
-$as_echo_n "checking whether $2 is declared... " >&6; }
-if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ as_decl_name=`echo $2|sed 's/ *(.*//'`
+ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
+if eval \${$3+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1897,8 +1962,12 @@ $4
int
main ()
{
-#ifndef $2
- (void) $2;
+#ifndef $as_decl_name
+#ifdef __cplusplus
+ (void) $as_decl_use;
+#else
+ (void) $as_decl_name;
+#endif
#endif
;
@@ -1915,7 +1984,7 @@ fi
eval ac_res=\$$3
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_decl
@@ -1928,7 +1997,7 @@ ac_fn_c_check_member ()
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
$as_echo_n "checking for $2.$3... " >&6; }
-if { as_var=$4; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$4+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1972,15 +2041,15 @@ fi
eval ac_res=\$$4
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_member
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by GNU make $as_me 3.82, which was
-generated by GNU Autoconf 2.65. Invocation command line was
+It was created by GNU make $as_me 4.0, which was
+generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2090,11 +2159,9 @@ trap 'exit_status=$?
{
echo
- cat <<\_ASBOX
-## ---------------- ##
+ $as_echo "## ---------------- ##
## Cache variables. ##
-## ---------------- ##
-_ASBOX
+## ---------------- ##"
echo
# The following way of writing the cache mishandles newlines in values,
(
@@ -2128,11 +2195,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
)
echo
- cat <<\_ASBOX
-## ----------------- ##
+ $as_echo "## ----------------- ##
## Output variables. ##
-## ----------------- ##
-_ASBOX
+## ----------------- ##"
echo
for ac_var in $ac_subst_vars
do
@@ -2145,11 +2210,9 @@ _ASBOX
echo
if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-## ------------------- ##
+ $as_echo "## ------------------- ##
## File substitutions. ##
-## ------------------- ##
-_ASBOX
+## ------------------- ##"
echo
for ac_var in $ac_subst_files
do
@@ -2163,11 +2226,9 @@ _ASBOX
fi
if test -s confdefs.h; then
- cat <<\_ASBOX
-## ----------- ##
+ $as_echo "## ----------- ##
## confdefs.h. ##
-## ----------- ##
-_ASBOX
+## ----------- ##"
echo
cat confdefs.h
echo
@@ -2222,7 +2283,12 @@ _ACEOF
ac_site_file1=NONE
ac_site_file2=NONE
if test -n "$CONFIG_SITE"; then
- ac_site_file1=$CONFIG_SITE
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
elif test "x$prefix" != xNONE; then
ac_site_file1=$prefix/share/config.site
ac_site_file2=$prefix/etc/config.site
@@ -2237,7 +2303,11 @@ do
{ $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
$as_echo "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
fi
done
@@ -2258,6 +2328,7 @@ $as_echo "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
+gt_needs="$gt_needs "
# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
@@ -2313,7 +2384,7 @@ if $ac_cache_corrupted; then
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
@@ -2329,20 +2400,25 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
# Autoconf setup
ac_aux_dir=
for ac_dir in config "$srcdir"/config; do
- for ac_t in install-sh install.sh shtool; do
- if test -f "$ac_dir/$ac_t"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/$ac_t -c"
- break 2
- fi
- done
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
done
if test -z "$ac_aux_dir"; then
- as_fn_error "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$LINENO" 5
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$LINENO" 5
fi
# These three variables are undocumented and unsupported,
@@ -2378,7 +2454,7 @@ am__api_version='1.11'
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
$as_echo_n "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then :
+if ${ac_cv_path_install+:} false; then :
$as_echo_n "(cached) " >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -2398,7 +2474,7 @@ case $as_dir/ in #((
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
if test $ac_prog = install &&
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
@@ -2465,11 +2541,11 @@ am_lf='
'
case `pwd` in
*[\\\"\#\$\&\'\`$am_lf]*)
- as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
+ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
esac
case $srcdir in
*[\\\"\#\$\&\'\`$am_lf\ \ ]*)
- as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+ as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
esac
# Do `set' in a subshell so we don't clobber the current shell's
@@ -2491,7 +2567,7 @@ if (
# if, for instance, CONFIG_SHELL is bash and it inherits a
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
- as_fn_error "ls -t appears to fail. Make sure there is not a broken
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
alias in your environment" "$LINENO" 5
fi
@@ -2501,7 +2577,7 @@ then
# Ok.
:
else
- as_fn_error "newly created file is older than distributed files!
+ as_fn_error $? "newly created file is older than distributed files!
Check your system clock" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -2555,7 +2631,7 @@ if test "$cross_compiling" != no; then
set dummy ${ac_tool_prefix}strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then :
+if ${ac_cv_prog_STRIP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$STRIP"; then
@@ -2567,7 +2643,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2595,7 +2671,7 @@ if test -z "$ac_cv_prog_STRIP"; then
set dummy strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_STRIP"; then
@@ -2607,7 +2683,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2648,7 +2724,7 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
if test -z "$MKDIR_P"; then
- if test "${ac_cv_path_mkdir+set}" = set; then :
+ if ${ac_cv_path_mkdir+:} false; then :
$as_echo_n "(cached) " >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -2658,7 +2734,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_prog in mkdir gmkdir; do
for ac_exec_ext in '' $ac_executable_extensions; do
- { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
'mkdir (GNU coreutils) '* | \
'mkdir (coreutils) '* | \
@@ -2699,7 +2775,7 @@ do
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then :
+if ${ac_cv_prog_AWK+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$AWK"; then
@@ -2711,7 +2787,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_AWK="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2739,7 +2815,7 @@ done
$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
$as_echo_n "(cached) " >&6
else
cat >conftest.make <<\_ACEOF
@@ -2747,7 +2823,7 @@ SHELL = /bin/sh
all:
@echo '@@@%%%=$(MAKE)=@@@%%%'
_ACEOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
case `${MAKE-make} -f conftest.make 2>/dev/null` in
*@@@%%%=?*=@@@%%%*)
eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -2775,13 +2851,52 @@ else
fi
rmdir .tst 2>/dev/null
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in
+yes) AM_DEFAULT_VERBOSITY=0;;
+no) AM_DEFAULT_VERBOSITY=1;;
+*) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
if test "`cd $srcdir && pwd`" != "`pwd`"; then
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
# is not polluted with repeated "-I."
am__isrc=' -I$(srcdir)'
# test to see if srcdir already configured
if test -f $srcdir/config.status; then
- as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
fi
fi
@@ -2797,7 +2912,7 @@ fi
# Define the identity of the package.
PACKAGE='make'
- VERSION='3.82'
+ VERSION='4.0'
cat >>confdefs.h <<_ACEOF
@@ -2827,11 +2942,11 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
-# Always define AMTAR for backward compatibility.
-
-AMTAR=${AMTAR-"${am_missing_run}tar"}
+# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
@@ -2849,7 +2964,7 @@ if test -n "$ac_tool_prefix"; then
set dummy ${ac_tool_prefix}gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -2861,7 +2976,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2889,7 +3004,7 @@ if test -z "$ac_cv_prog_CC"; then
set dummy gcc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
@@ -2901,7 +3016,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="gcc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2942,7 +3057,7 @@ if test -z "$CC"; then
set dummy ${ac_tool_prefix}cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -2954,7 +3069,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="${ac_tool_prefix}cc"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -2982,7 +3097,7 @@ if test -z "$CC"; then
set dummy cc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -2995,7 +3110,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
@@ -3041,7 +3156,7 @@ if test -z "$CC"; then
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$CC"; then
@@ -3053,7 +3168,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3085,7 +3200,7 @@ do
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_CC"; then
@@ -3097,7 +3212,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3139,8 +3254,8 @@ fi
test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "no acceptable C compiler found in \$PATH
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -3254,9 +3369,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ as_fn_set_status 77
-as_fn_error "C compiler cannot create executables
-See \`config.log' for more details." "$LINENO" 5; }; }
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
@@ -3298,8 +3412,8 @@ done
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest conftest$ac_cv_exeext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -3356,9 +3470,9 @@ $as_echo "$ac_try_echo"; } >&5
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot run C compiled programs.
+as_fn_error $? "cannot run C compiled programs.
If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5; }
fi
fi
fi
@@ -3369,7 +3483,7 @@ rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
ac_clean_files=$ac_clean_files_save
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
$as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then :
+if ${ac_cv_objext+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3409,8 +3523,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
@@ -3420,7 +3534,7 @@ OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+if ${ac_cv_c_compiler_gnu+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3457,7 +3571,7 @@ ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
+if ${ac_cv_prog_cc_g+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_save_c_werror_flag=$ac_c_werror_flag
@@ -3535,7 +3649,7 @@ else
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
+if ${ac_cv_prog_cc_c89+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_prog_cc_c89=no
@@ -3544,8 +3658,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdarg.h>
#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+struct stat;
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
struct buf { int x; };
FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -3681,6 +3794,7 @@ fi
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
+ am__nodep='_no'
fi
if test "x$enable_dependency_tracking" != xno; then
AMDEP_TRUE=
@@ -3696,7 +3810,7 @@ depcc="$CC" am_compiler_list=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
$as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -3705,6 +3819,7 @@ else
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
+ rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
@@ -3764,7 +3879,7 @@ else
break
fi
;;
- msvisualcpp | msvcmsys)
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
@@ -3825,7 +3940,7 @@ if test -n "$ac_tool_prefix"; then
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then :
+if ${ac_cv_prog_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$RANLIB"; then
@@ -3837,7 +3952,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3865,7 +3980,7 @@ if test -z "$ac_cv_prog_RANLIB"; then
set dummy ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$ac_ct_RANLIB"; then
@@ -3877,7 +3992,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -3924,7 +4039,7 @@ if test -n "$CPP" && test -d "$CPP"; then
CPP=
fi
if test -z "$CPP"; then
- if test "${ac_cv_prog_CPP+set}" = set; then :
+ if ${ac_cv_prog_CPP+:} false; then :
$as_echo_n "(cached) " >&6
else
# Double quotes because CPP needs to be expanded
@@ -3954,7 +4069,7 @@ else
# Broken: fails on valid input.
continue
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
@@ -3970,11 +4085,11 @@ else
ac_preproc_ok=:
break
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
break
fi
@@ -4013,7 +4128,7 @@ else
# Broken: fails on valid input.
continue
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
@@ -4029,18 +4144,18 @@ else
ac_preproc_ok=:
break
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." "$LINENO" 5; }
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
fi
ac_ext=c
@@ -4053,7 +4168,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
set dummy ar; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then :
+if ${ac_cv_prog_AR+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$AR"; then
@@ -4065,7 +4180,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_AR="ar"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4092,7 +4207,7 @@ fi
set dummy perl; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_PERL+set}" = set; then :
+if ${ac_cv_prog_PERL+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$PERL"; then
@@ -4104,7 +4219,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_PERL="perl"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4130,27 +4245,27 @@ fi
# Specialized system macros
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
$as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then :
+if ${ac_cv_build+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
test "x$ac_build_alias" = x &&
- as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
$as_echo "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
-*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
@@ -4168,14 +4283,14 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
$as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then :
+if ${ac_cv_host+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
fi
fi
@@ -4183,7 +4298,7 @@ fi
$as_echo "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
-*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
@@ -4203,7 +4318,7 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then :
+if ${ac_cv_path_GREP+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -z "$GREP"; then
@@ -4217,7 +4332,7 @@ do
for ac_prog in grep ggrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+ as_fn_executable_p "$ac_path_GREP" || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
@@ -4252,7 +4367,7 @@ esac
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_GREP"; then
- as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_GREP=$GREP
@@ -4266,7 +4381,7 @@ $as_echo "$ac_cv_path_GREP" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
$as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then :
+if ${ac_cv_path_EGREP+:} false; then :
$as_echo_n "(cached) " >&6
else
if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -4283,7 +4398,7 @@ do
for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+ as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
@@ -4318,7 +4433,7 @@ esac
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP"; then
- as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP=$EGREP
@@ -4333,7 +4448,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
$as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then :
+if ${ac_cv_header_stdc+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4450,8 +4565,7 @@ do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -4463,7 +4577,7 @@ done
ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
-if test "x$ac_cv_header_minix_config_h" = x""yes; then :
+if test "x$ac_cv_header_minix_config_h" = xyes; then :
MINIX=yes
else
MINIX=
@@ -4485,14 +4599,14 @@ $as_echo "#define _MINIX 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if test "${ac_cv_safe_to_define___extensions__+set}" = set; then :
+if ${ac_cv_safe_to_define___extensions__+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-# define __EXTENSIONS__ 1
- $ac_includes_default
+# define __EXTENSIONS__ 1
+ $ac_includes_default
int
main ()
{
@@ -4523,14 +4637,12 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strerror in -lcposix" >&5
-$as_echo_n "checking for strerror in -lcposix... " >&6; }
-if test "${ac_cv_lib_cposix_strerror+set}" = set; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5
+$as_echo_n "checking for library containing strerror... " >&6; }
+if ${ac_cv_search_strerror+:} false; then :
$as_echo_n "(cached) " >&6
else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcposix $LIBS"
+ ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -4549,22 +4661,37 @@ return strerror ();
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_cposix_strerror=yes
-else
- ac_cv_lib_cposix_strerror=no
+for ac_lib in '' cposix; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_strerror=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cposix_strerror" >&5
-$as_echo "$ac_cv_lib_cposix_strerror" >&6; }
-if test "x$ac_cv_lib_cposix_strerror" = x""yes; then :
- LIBS="$LIBS -lcposix"
+ conftest$ac_exeext
+ if ${ac_cv_search_strerror+:} false; then :
+ break
fi
+done
+if ${ac_cv_search_strerror+:} false; then :
+else
+ ac_cv_search_strerror=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5
+$as_echo "$ac_cv_search_strerror" >&6; }
+ac_res=$ac_cv_search_strerror
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+fi
@@ -4572,19 +4699,6 @@ fi
- MKINSTALLDIRS=
- if test -n "$ac_aux_dir"; then
- case "$ac_aux_dir" in
- /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
- *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
- esac
- fi
- if test -z "$MKINSTALLDIRS"; then
- MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
- fi
-
-
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
$as_echo_n "checking whether NLS is requested... " >&6; }
# Check whether --enable-nls was given.
@@ -4600,6 +4714,9 @@ $as_echo "$USE_NLS" >&6; }
+ GETTEXT_MACRO_VERSION=0.18
+
+
# Prepare PATH_SEPARATOR.
@@ -4634,7 +4751,7 @@ rm -f conf$$.file
set dummy msgfmt; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGFMT+set}" = set; then :
+if ${ac_cv_path_MSGFMT+:} false; then :
$as_echo_n "(cached) " >&6
else
case "$MSGFMT" in
@@ -4648,7 +4765,8 @@ else
test -z "$ac_dir" && ac_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
- if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
+ echo "$as_me: trying $ac_dir/$ac_word..." >&5
+ if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 &&
(if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext"
break 2
@@ -4674,7 +4792,7 @@ fi
set dummy gmsgfmt; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GMSGFMT+set}" = set; then :
+if ${ac_cv_path_GMSGFMT+:} false; then :
$as_echo_n "(cached) " >&6
else
case $GMSGFMT in
@@ -4688,7 +4806,7 @@ do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
@@ -4712,6 +4830,17 @@ fi
+ case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
+ *) MSGFMT_015=$MSGFMT ;;
+ esac
+
+ case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
+ *) GMSGFMT_015=$GMSGFMT ;;
+ esac
+
+
# Prepare PATH_SEPARATOR.
# The user is always right.
@@ -4745,7 +4874,7 @@ rm -f conf$$.file
set dummy xgettext; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_XGETTEXT+set}" = set; then :
+if ${ac_cv_path_XGETTEXT+:} false; then :
$as_echo_n "(cached) " >&6
else
case "$XGETTEXT" in
@@ -4759,7 +4888,8 @@ else
test -z "$ac_dir" && ac_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
- if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
+ echo "$as_me: trying $ac_dir/$ac_word..." >&5
+ if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 &&
(if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext"
break 2
@@ -4783,6 +4913,12 @@ fi
rm -f messages.po
+ case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
+ *) XGETTEXT_015=$XGETTEXT ;;
+ esac
+
+
# Prepare PATH_SEPARATOR.
# The user is always right.
@@ -4816,7 +4952,7 @@ rm -f conf$$.file
set dummy msgmerge; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGMERGE+set}" = set; then :
+if ${ac_cv_path_MSGMERGE+:} false; then :
$as_echo_n "(cached) " >&6
else
case "$MSGMERGE" in
@@ -4830,7 +4966,8 @@ else
test -z "$ac_dir" && ac_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
- if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&5
+ if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then
ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext"
break 2
fi
@@ -4852,31 +4989,13 @@ $as_echo "no" >&6; }
fi
- if test "$GMSGFMT" != ":"; then
- if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
- (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- : ;
- else
- GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5
-$as_echo "found $GMSGFMT program is not GNU msgfmt; ignore it" >&6; }
- GMSGFMT=":"
- fi
- fi
+ test -n "$localedir" || localedir='${datadir}/locale'
+
+
+ test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
- if test "$XGETTEXT" != ":"; then
- if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
- (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- : ;
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5
-$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; }
- XGETTEXT=":"
- fi
- rm -f messages.po
- fi
- ac_config_commands="$ac_config_commands default-1"
+ ac_config_commands="$ac_config_commands po-directories"
@@ -4935,7 +5054,7 @@ $as_echo_n "checking for ld used by GCC... " >&6; }
# Canonicalize the path of ld
ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
done
test -z "$LD" && LD="$ac_prog"
;;
@@ -4955,7 +5074,7 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
$as_echo_n "checking for non-GNU ld... " >&6; }
fi
-if test "${acl_cv_path_LD+set}" = set; then :
+if ${acl_cv_path_LD+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -z "$LD"; then
@@ -4969,9 +5088,9 @@ else
# Break only if it was the GNU/non-GNU ld that we prefer.
case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
*GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break ;;
+ test "$with_gnu_ld" != no && break ;;
*)
- test "$with_gnu_ld" != yes && break ;;
+ test "$with_gnu_ld" != yes && break ;;
esac
fi
done
@@ -4989,10 +5108,10 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${acl_cv_prog_gnu_ld+set}" = set; then :
+if ${acl_cv_prog_gnu_ld+:} false; then :
$as_echo_n "(cached) " >&6
else
# I'd rather use --version here, but apparently some GNU ld's only accept -v.
@@ -5009,9 +5128,10 @@ with_gnu_ld=$acl_cv_prog_gnu_ld
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
$as_echo_n "checking for shared library run path origin... " >&6; }
-if test "${acl_cv_rpath+set}" = set; then :
+if ${acl_cv_rpath+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -5025,12 +5145,14 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5
$as_echo "$acl_cv_rpath" >&6; }
wl="$acl_cv_wl"
- libext="$acl_cv_libext"
- shlibext="$acl_cv_shlibext"
- hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
- hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
- hardcode_direct="$acl_cv_hardcode_direct"
- hardcode_minus_L="$acl_cv_hardcode_minus_L"
+ acl_libext="$acl_cv_libext"
+ acl_shlibext="$acl_cv_shlibext"
+ acl_libname_spec="$acl_cv_libname_spec"
+ acl_library_names_spec="$acl_cv_library_names_spec"
+ acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+ acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+ acl_hardcode_direct="$acl_cv_hardcode_direct"
+ acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
# Check whether --enable-rpath was given.
if test "${enable_rpath+set}" = set; then :
enableval=$enable_rpath; :
@@ -5041,6 +5163,74 @@ fi
+ acl_libdirstem=lib
+ acl_libdirstem2=
+ case "$host_os" in
+ solaris*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
+$as_echo_n "checking for 64-bit host... " >&6; }
+if ${gl_cv_solaris_64bit+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef _LP64
+sixtyfour bits
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "sixtyfour bits" >/dev/null 2>&1; then :
+ gl_cv_solaris_64bit=yes
+else
+ gl_cv_solaris_64bit=no
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5
+$as_echo "$gl_cv_solaris_64bit" >&6; }
+ if test $gl_cv_solaris_64bit = yes; then
+ acl_libdirstem=lib/64
+ case "$host_cpu" in
+ sparc*) acl_libdirstem2=lib/sparcv9 ;;
+ i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
+ esac
+ fi
+ ;;
+ *)
+ searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+ if test -n "$searchpath"; then
+ acl_save_IFS="${IFS= }"; IFS=":"
+ for searchdir in $searchpath; do
+ if test -d "$searchdir"; then
+ case "$searchdir" in
+ */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
+ */../ | */.. )
+ # Better ignore directories of this form. They are misleading.
+ ;;
+ *) searchdir=`cd "$searchdir" && pwd`
+ case "$searchdir" in
+ */lib64 ) acl_libdirstem=lib64 ;;
+ esac ;;
+ esac
+ fi
+ done
+ IFS="$acl_save_IFS"
+ fi
+ ;;
+ esac
+ test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+
+
+
+
+
+
+
+
@@ -5080,7 +5270,11 @@ if test "${with_libiconv_prefix+set}" = set; then :
else
additional_includedir="$withval/include"
- additional_libdir="$withval/lib"
+ additional_libdir="$withval/$acl_libdirstem"
+ if test "$acl_libdirstem2" != "$acl_libdirstem" \
+ && ! test -d "$withval/$acl_libdirstem"; then
+ additional_libdir="$withval/$acl_libdirstem2"
+ fi
fi
fi
@@ -5089,6 +5283,8 @@ fi
LIBICONV=
LTLIBICONV=
INCICONV=
+ LIBICONV_PREFIX=
+ HAVE_LIBICONV=
rpathdirs=
ltrpathdirs=
names_already_handled=
@@ -5122,22 +5318,52 @@ fi
found_la=
found_so=
found_a=
+ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
+ if test -n "$acl_shlibext"; then
+ shrext=".$acl_shlibext" # typically: shrext=.so
+ else
+ shrext=
+ fi
if test $use_additional = yes; then
- if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
- found_dir="$additional_libdir"
- found_so="$additional_libdir/lib$name.$shlibext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- else
- if test -f "$additional_libdir/lib$name.$libext"; then
- found_dir="$additional_libdir"
- found_a="$additional_libdir/lib$name.$libext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
+ dir="$additional_libdir"
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
fi
fi
fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
fi
if test "X$found_dir" = "X"; then
for x in $LDFLAGS $LTLIBICONV; do
@@ -5153,21 +5379,44 @@ fi
case "$x" in
-L*)
dir=`echo "X$x" | sed -e 's/^X-L//'`
- if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
- found_dir="$dir"
- found_so="$dir/lib$name.$shlibext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- else
- if test -f "$dir/lib$name.$libext"; then
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
found_dir="$dir"
- found_a="$dir/lib$name.$libext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
fi
fi
fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
;;
esac
if test "X$found_dir" != "X"; then
@@ -5178,7 +5427,9 @@ fi
if test "X$found_dir" != "X"; then
LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
if test "X$found_so" != "X"; then
- if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+ if test "$enable_rpath" = no \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
else
haveit=
@@ -5191,10 +5442,10 @@ fi
if test -z "$haveit"; then
ltrpathdirs="$ltrpathdirs $found_dir"
fi
- if test "$hardcode_direct" = yes; then
+ if test "$acl_hardcode_direct" = yes; then
LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
else
- if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
haveit=
for x in $rpathdirs; do
@@ -5226,7 +5477,7 @@ fi
if test -z "$haveit"; then
LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
fi
- if test "$hardcode_minus_L" != no; then
+ if test "$acl_hardcode_minus_L" != no; then
LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
else
LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
@@ -5243,8 +5494,18 @@ fi
fi
additional_includedir=
case "$found_dir" in
- */lib | */lib/)
- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+ */$acl_libdirstem | */$acl_libdirstem/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+ if test "$name" = 'iconv'; then
+ LIBICONV_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ */$acl_libdirstem2 | */$acl_libdirstem2/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+ if test "$name" = 'iconv'; then
+ LIBICONV_PREFIX="$basedir"
+ fi
additional_includedir="$basedir/include"
;;
esac
@@ -5254,7 +5515,7 @@ fi
if test "X$additional_includedir" = "X/usr/local/include"; then
if test -n "$GCC"; then
case $host_os in
- linux*) haveit=yes;;
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
esac
fi
fi
@@ -5293,12 +5554,14 @@ fi
case "$dep" in
-L*)
additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
- if test "X$additional_libdir" != "X/usr/lib"; then
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
+ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
haveit=
- if test "X$additional_libdir" = "X/usr/local/lib"; then
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
+ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
if test -n "$GCC"; then
case $host_os in
- linux*) haveit=yes;;
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
esac
fi
fi
@@ -5395,21 +5658,21 @@ fi
done
done
if test "X$rpathdirs" != "X"; then
- if test -n "$hardcode_libdir_separator"; then
+ if test -n "$acl_hardcode_libdir_separator"; then
alldirs=
for found_dir in $rpathdirs; do
- alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
done
acl_save_libdir="$libdir"
libdir="$alldirs"
- eval flag=\"$hardcode_libdir_flag_spec\"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
libdir="$acl_save_libdir"
LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
else
for found_dir in $rpathdirs; do
acl_save_libdir="$libdir"
libdir="$found_dir"
- eval flag=\"$hardcode_libdir_flag_spec\"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
libdir="$acl_save_libdir"
LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
done
@@ -5438,17 +5701,93 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
-$as_echo_n "checking whether NLS is requested... " >&6; }
- # Check whether --enable-nls was given.
-if test "${enable_nls+set}" = set; then :
- enableval=$enable_nls; USE_NLS=$enableval
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
+$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
+if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
+ $as_echo_n "(cached) " >&6
else
- USE_NLS=yes
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <CoreFoundation/CFPreferences.h>
+int
+main ()
+{
+CFPreferencesCopyAppValue(NULL, NULL)
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gt_cv_func_CFPreferencesCopyAppValue=yes
+else
+ gt_cv_func_CFPreferencesCopyAppValue=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$gt_save_LIBS"
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
+$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+
+$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5
+$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
+if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <CoreFoundation/CFLocale.h>
+int
+main ()
+{
+CFLocaleCopyCurrent();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gt_cv_func_CFLocaleCopyCurrent=yes
+else
+ gt_cv_func_CFLocaleCopyCurrent=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$gt_save_LIBS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
+$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; }
+ if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+
+$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h
+
+ fi
+ INTL_MACOSX_LIBS=
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+ INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+ fi
+
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
-$as_echo "$USE_NLS" >&6; }
@@ -5457,45 +5796,67 @@ $as_echo "$USE_NLS" >&6; }
LTLIBINTL=
POSUB=
+ case " $gt_needs " in
+ *" need-formatstring-macros "*) gt_api_version=3 ;;
+ *" need-ngettext "*) gt_api_version=2 ;;
+ *) gt_api_version=1 ;;
+ esac
+ gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
+ gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
+
if test "$USE_NLS" = "yes"; then
gt_use_preinstalled_gnugettext=no
-
-
-
+ if test $gt_api_version -ge 3; then
+ gt_revision_test_code='
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+'
+ else
+ gt_revision_test_code=
+ fi
+ if test $gt_api_version -ge 2; then
+ gt_expression_test_code=' + * ngettext ("", "", 0)'
+ else
+ gt_expression_test_code=
+ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
$as_echo_n "checking for GNU gettext in libc... " >&6; }
-if test "${gt_cv_func_gnugettext1_libc+set}" = set; then :
+if eval \${$gt_func_gnugettext_libc+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <libintl.h>
+$gt_revision_test_code
extern int _nl_msg_cat_cntr;
extern int *_nl_domain_bindings;
int
main ()
{
bindtextdomain ("", "");
-return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
- gt_cv_func_gnugettext1_libc=yes
+ eval "$gt_func_gnugettext_libc=yes"
else
- gt_cv_func_gnugettext1_libc=no
+ eval "$gt_func_gnugettext_libc=no"
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext1_libc" >&5
-$as_echo "$gt_cv_func_gnugettext1_libc" >&6; }
+eval ac_res=\$$gt_func_gnugettext_libc
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
- if test "$gt_cv_func_gnugettext1_libc" != "yes"; then
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
@@ -5528,7 +5889,7 @@ $as_echo "$gt_cv_func_gnugettext1_libc" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
$as_echo_n "checking for iconv... " >&6; }
-if test "${am_cv_func_iconv+set}" = set; then :
+if ${am_cv_func_iconv+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -5583,6 +5944,123 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
$as_echo "$am_cv_func_iconv" >&6; }
if test "$am_cv_func_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
+$as_echo_n "checking for working iconv... " >&6; }
+if ${am_cv_func_iconv_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ am_save_LIBS="$LIBS"
+ if test $am_cv_lib_iconv = yes; then
+ LIBS="$LIBS $LIBICONV"
+ fi
+ if test "$cross_compiling" = yes; then :
+ case "$host_os" in
+ aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+ *) am_cv_func_iconv_works="guessing yes" ;;
+ esac
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <iconv.h>
+#include <string.h>
+int main ()
+{
+ /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+ returns. */
+ {
+ iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+ if (cd_utf8_to_88591 != (iconv_t)(-1))
+ {
+ static const char input[] = "\342\202\254"; /* EURO SIGN */
+ char buf[10];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_utf8_to_88591,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res == 0)
+ return 1;
+ }
+ }
+ /* Test against Solaris 10 bug: Failures are not distinguishable from
+ successful returns. */
+ {
+ iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
+ if (cd_ascii_to_88591 != (iconv_t)(-1))
+ {
+ static const char input[] = "\263";
+ char buf[10];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_ascii_to_88591,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res == 0)
+ return 1;
+ }
+ }
+#if 0 /* This bug could be worked around by the caller. */
+ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char buf[50];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if ((int)res > 0)
+ return 1;
+ }
+ }
+#endif
+ /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+ provided. */
+ if (/* Try standardized names. */
+ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+ /* Try IRIX, OSF/1 names. */
+ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+ /* Try AIX names. */
+ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+ /* Try HP-UX names. */
+ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+ return 1;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ am_cv_func_iconv_works=yes
+else
+ am_cv_func_iconv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ LIBS="$am_save_LIBS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5
+$as_echo "$am_cv_func_iconv_works" >&6; }
+ case "$am_cv_func_iconv_works" in
+ *no) am_func_iconv=no am_cv_lib_iconv=no ;;
+ *) am_func_iconv=yes ;;
+ esac
+ else
+ am_func_iconv=no am_cv_lib_iconv=no
+ fi
+ if test "$am_func_iconv" = yes; then
$as_echo "#define HAVE_ICONV 1" >>confdefs.h
@@ -5603,6 +6081,11 @@ $as_echo "$LIBICONV" >&6; }
+
+
+
+
+
use_additional=yes
acl_save_prefix="$prefix"
@@ -5638,7 +6121,11 @@ if test "${with_libintl_prefix+set}" = set; then :
else
additional_includedir="$withval/include"
- additional_libdir="$withval/lib"
+ additional_libdir="$withval/$acl_libdirstem"
+ if test "$acl_libdirstem2" != "$acl_libdirstem" \
+ && ! test -d "$withval/$acl_libdirstem"; then
+ additional_libdir="$withval/$acl_libdirstem2"
+ fi
fi
fi
@@ -5647,6 +6134,8 @@ fi
LIBINTL=
LTLIBINTL=
INCINTL=
+ LIBINTL_PREFIX=
+ HAVE_LIBINTL=
rpathdirs=
ltrpathdirs=
names_already_handled=
@@ -5680,22 +6169,52 @@ fi
found_la=
found_so=
found_a=
+ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
+ if test -n "$acl_shlibext"; then
+ shrext=".$acl_shlibext" # typically: shrext=.so
+ else
+ shrext=
+ fi
if test $use_additional = yes; then
- if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
- found_dir="$additional_libdir"
- found_so="$additional_libdir/lib$name.$shlibext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- else
- if test -f "$additional_libdir/lib$name.$libext"; then
- found_dir="$additional_libdir"
- found_a="$additional_libdir/lib$name.$libext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
+ dir="$additional_libdir"
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
fi
fi
fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
fi
if test "X$found_dir" = "X"; then
for x in $LDFLAGS $LTLIBINTL; do
@@ -5711,21 +6230,44 @@ fi
case "$x" in
-L*)
dir=`echo "X$x" | sed -e 's/^X-L//'`
- if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
- found_dir="$dir"
- found_so="$dir/lib$name.$shlibext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- else
- if test -f "$dir/lib$name.$libext"; then
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
found_dir="$dir"
- found_a="$dir/lib$name.$libext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
fi
fi
fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
;;
esac
if test "X$found_dir" != "X"; then
@@ -5736,7 +6278,9 @@ fi
if test "X$found_dir" != "X"; then
LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name"
if test "X$found_so" != "X"; then
- if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+ if test "$enable_rpath" = no \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
else
haveit=
@@ -5749,10 +6293,10 @@ fi
if test -z "$haveit"; then
ltrpathdirs="$ltrpathdirs $found_dir"
fi
- if test "$hardcode_direct" = yes; then
+ if test "$acl_hardcode_direct" = yes; then
LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
else
- if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
haveit=
for x in $rpathdirs; do
@@ -5784,7 +6328,7 @@ fi
if test -z "$haveit"; then
LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir"
fi
- if test "$hardcode_minus_L" != no; then
+ if test "$acl_hardcode_minus_L" != no; then
LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
else
LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
@@ -5801,8 +6345,18 @@ fi
fi
additional_includedir=
case "$found_dir" in
- */lib | */lib/)
- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+ */$acl_libdirstem | */$acl_libdirstem/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+ if test "$name" = 'intl'; then
+ LIBINTL_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ */$acl_libdirstem2 | */$acl_libdirstem2/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+ if test "$name" = 'intl'; then
+ LIBINTL_PREFIX="$basedir"
+ fi
additional_includedir="$basedir/include"
;;
esac
@@ -5812,7 +6366,7 @@ fi
if test "X$additional_includedir" = "X/usr/local/include"; then
if test -n "$GCC"; then
case $host_os in
- linux*) haveit=yes;;
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
esac
fi
fi
@@ -5851,12 +6405,14 @@ fi
case "$dep" in
-L*)
additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
- if test "X$additional_libdir" != "X/usr/lib"; then
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
+ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
haveit=
- if test "X$additional_libdir" = "X/usr/local/lib"; then
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
+ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
if test -n "$GCC"; then
case $host_os in
- linux*) haveit=yes;;
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
esac
fi
fi
@@ -5953,21 +6509,21 @@ fi
done
done
if test "X$rpathdirs" != "X"; then
- if test -n "$hardcode_libdir_separator"; then
+ if test -n "$acl_hardcode_libdir_separator"; then
alldirs=
for found_dir in $rpathdirs; do
- alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
done
acl_save_libdir="$libdir"
libdir="$alldirs"
- eval flag=\"$hardcode_libdir_flag_spec\"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
libdir="$acl_save_libdir"
LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
else
for found_dir in $rpathdirs; do
acl_save_libdir="$libdir"
libdir="$found_dir"
- eval flag=\"$hardcode_libdir_flag_spec\"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
libdir="$acl_save_libdir"
LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
done
@@ -5979,9 +6535,14 @@ fi
done
fi
+
+
+
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
$as_echo_n "checking for GNU gettext in libintl... " >&6; }
-if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then :
+if eval \${$gt_func_gnugettext_libintl+:} false; then :
$as_echo_n "(cached) " >&6
else
gt_save_CPPFLAGS="$CPPFLAGS"
@@ -5991,44 +6552,46 @@ else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <libintl.h>
+$gt_revision_test_code
extern int _nl_msg_cat_cntr;
extern
#ifdef __cplusplus
"C"
#endif
-const char *_nl_expand_alias ();
+const char *_nl_expand_alias (const char *);
int
main ()
{
bindtextdomain ("", "");
-return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0)
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
- gt_cv_func_gnugettext1_libintl=yes
+ eval "$gt_func_gnugettext_libintl=yes"
else
- gt_cv_func_gnugettext1_libintl=no
+ eval "$gt_func_gnugettext_libintl=no"
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
- if test "$gt_cv_func_gnugettext1_libintl" != yes && test -n "$LIBICONV"; then
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
LIBS="$LIBS $LIBICONV"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <libintl.h>
+$gt_revision_test_code
extern int _nl_msg_cat_cntr;
extern
#ifdef __cplusplus
"C"
#endif
-const char *_nl_expand_alias ();
+const char *_nl_expand_alias (const char *);
int
main ()
{
bindtextdomain ("", "");
-return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0)
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
;
return 0;
}
@@ -6036,7 +6599,7 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"; then :
LIBINTL="$LIBINTL $LIBICONV"
LTLIBINTL="$LTLIBINTL $LTLIBICONV"
- gt_cv_func_gnugettext1_libintl=yes
+ eval "$gt_func_gnugettext_libintl=yes"
fi
rm -f core conftest.err conftest.$ac_objext \
@@ -6045,12 +6608,13 @@ rm -f core conftest.err conftest.$ac_objext \
CPPFLAGS="$gt_save_CPPFLAGS"
LIBS="$gt_save_LIBS"
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext1_libintl" >&5
-$as_echo "$gt_cv_func_gnugettext1_libintl" >&6; }
+eval ac_res=\$$gt_func_gnugettext_libintl
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
fi
- if test "$gt_cv_func_gnugettext1_libc" = "yes" \
- || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
+ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
&& test "$PACKAGE" != gettext-runtime \
&& test "$PACKAGE" != gettext-tools; }; then
gt_use_preinstalled_gnugettext=yes
@@ -6062,6 +6626,14 @@ $as_echo "$gt_cv_func_gnugettext1_libintl" >&6; }
+ if test -n "$INTL_MACOSX_LIBS"; then
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+ LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+ fi
+ fi
+
if test "$gt_use_preinstalled_gnugettext" = "yes" \
|| test "$nls_cv_use_gnu_gettext" = "yes"; then
@@ -6080,7 +6652,7 @@ $as_echo "$USE_NLS" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5
$as_echo_n "checking where the gettext function comes from... " >&6; }
if test "$gt_use_preinstalled_gnugettext" = "yes"; then
- if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
gt_source="external libintl"
else
gt_source="libc"
@@ -6095,7 +6667,7 @@ $as_echo "$gt_source" >&6; }
if test "$USE_NLS" = "yes"; then
if test "$gt_use_preinstalled_gnugettext" = "yes"; then
- if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5
$as_echo_n "checking how to link with libintl... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5
@@ -6158,7 +6730,7 @@ if test "$enable_largefile" != no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
-if test "${ac_cv_sys_largefile_CC+set}" = set; then :
+if ${ac_cv_sys_largefile_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_sys_largefile_CC=no
@@ -6209,7 +6781,7 @@ $as_echo "$ac_cv_sys_largefile_CC" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-if test "${ac_cv_sys_file_offset_bits+set}" = set; then :
+if ${ac_cv_sys_file_offset_bits+:} false; then :
$as_echo_n "(cached) " >&6
else
while :; do
@@ -6278,7 +6850,7 @@ rm -rf conftest*
if test $ac_cv_sys_file_offset_bits = unknown; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
-if test "${ac_cv_sys_large_files+set}" = set; then :
+if ${ac_cv_sys_large_files+:} false; then :
$as_echo_n "(cached) " >&6
else
while :; do
@@ -6345,13 +6917,15 @@ _ACEOF
esac
rm -rf conftest*
fi
+
+
fi
# Checks for libraries.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing getpwnam" >&5
$as_echo_n "checking for library containing getpwnam... " >&6; }
-if test "${ac_cv_search_getpwnam+set}" = set; then :
+if ${ac_cv_search_getpwnam+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
@@ -6385,11 +6959,11 @@ for ac_lib in '' sun; do
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
- if test "${ac_cv_search_getpwnam+set}" = set; then :
+ if ${ac_cv_search_getpwnam+:} false; then :
break
fi
done
-if test "${ac_cv_search_getpwnam+set}" = set; then :
+if ${ac_cv_search_getpwnam+:} false; then :
else
ac_cv_search_getpwnam=no
@@ -6409,7 +6983,7 @@ fi
# Checks for header files.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
$as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then :
+if ${ac_cv_header_stdc+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6524,7 +7098,7 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${$as_ac_Header+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6551,8 +7125,7 @@ fi
eval ac_res=\$$as_ac_Header
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
_ACEOF
@@ -6565,7 +7138,7 @@ done
if test $ac_header_dirent = dirent.h; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
$as_echo_n "checking for library containing opendir... " >&6; }
-if test "${ac_cv_search_opendir+set}" = set; then :
+if ${ac_cv_search_opendir+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
@@ -6599,11 +7172,11 @@ for ac_lib in '' dir; do
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
- if test "${ac_cv_search_opendir+set}" = set; then :
+ if ${ac_cv_search_opendir+:} false; then :
break
fi
done
-if test "${ac_cv_search_opendir+set}" = set; then :
+if ${ac_cv_search_opendir+:} false; then :
else
ac_cv_search_opendir=no
@@ -6622,7 +7195,7 @@ fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
$as_echo_n "checking for library containing opendir... " >&6; }
-if test "${ac_cv_search_opendir+set}" = set; then :
+if ${ac_cv_search_opendir+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
@@ -6656,11 +7229,11 @@ for ac_lib in '' x; do
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
- if test "${ac_cv_search_opendir+set}" = set; then :
+ if ${ac_cv_search_opendir+:} false; then :
break
fi
done
-if test "${ac_cv_search_opendir+set}" = set; then :
+if ${ac_cv_search_opendir+:} false; then :
else
ac_cv_search_opendir=no
@@ -6680,7 +7253,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5
$as_echo_n "checking whether stat file-mode macros are broken... " >&6; }
-if test "${ac_cv_header_stat_broken+set}" = set; then :
+if ${ac_cv_header_stat_broken+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6722,7 +7295,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
-if test "${ac_cv_header_time+set}" = set; then :
+if ${ac_cv_header_time+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6756,12 +7329,11 @@ $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
fi
for ac_header in stdlib.h locale.h unistd.h limits.h fcntl.h string.h \
- memory.h sys/param.h sys/resource.h sys/time.h sys/timeb.h
+ memory.h sys/param.h sys/resource.h sys/time.h sys/timeb.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
@@ -6771,30 +7343,6 @@ fi
done
-# Set a flag if we have an ANSI C compiler
-if test "$ac_cv_prog_cc_stdc" != no; then
-
-$as_echo "#define HAVE_ANSI_COMPILER 1" >>confdefs.h
-
-fi
-
-
-# Determine what kind of variadic function calls we support
-for ac_header in stdarg.h varargs.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-eval as_val=\$$as_ac_Header
- if test "x$as_val" = x""yes; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
- break
-fi
-
-done
-
-
if test "x$CC" != xcc; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
@@ -6804,7 +7352,7 @@ $as_echo_n "checking whether cc understands -c and -o together... " >&6; }
fi
set dummy $CC; ac_cc=`$as_echo "$2" |
sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then :
+if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6923,7 +7471,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
-if test "${ac_cv_c_const+set}" = set; then :
+if ${ac_cv_c_const+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6932,11 +7480,11 @@ else
int
main ()
{
-/* FIXME: Include the comments suggested by Paul. */
+
#ifndef __cplusplus
- /* Ultrix mips cc rejects this. */
+ /* Ultrix mips cc rejects this sort of thing. */
typedef int charset[2];
- const charset cs;
+ const charset cs = { 0, 0 };
/* SunOS 4.1.1 cc rejects this. */
char const *const *pcpcc;
char **ppc;
@@ -6953,8 +7501,9 @@ main ()
++pcpcc;
ppc = (char**) pcpcc;
pcpcc = (char const *const *) ppc;
- { /* SCO 3.2v4 cc rejects this. */
- char *t;
+ { /* SCO 3.2v4 cc rejects this sort of thing. */
+ char tx;
+ char *t = &tx;
char const *s = 0 ? (char *) 0 : (char const *) 0;
*t++ = 0;
@@ -6970,10 +7519,10 @@ main ()
iptr p = 0;
++p;
}
- { /* AIX XL C 1.02.0.0 rejects this saying
+ { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
- struct s { int j; const int *ap[3]; };
- struct s *b; b->j = 5;
+ struct s { int j; const int *ap[3]; } bx;
+ struct s *b = &bx; b->j = 5;
}
{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
const int foo = 10;
@@ -7003,7 +7552,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
$as_echo_n "checking return type of signal handlers... " >&6; }
-if test "${ac_cv_type_signal+set}" = set; then :
+if ${ac_cv_type_signal+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -7036,7 +7585,7 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
$as_echo_n "checking for uid_t in sys/types.h... " >&6; }
-if test "${ac_cv_type_uid_t+set}" = set; then :
+if ${ac_cv_type_uid_t+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -7065,7 +7614,7 @@ $as_echo "#define gid_t int" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
-if test "x$ac_cv_type_pid_t" = x""yes; then :
+if test "x$ac_cv_type_pid_t" = xyes; then :
else
@@ -7079,13 +7628,12 @@ fi
# Find some definition for uintmax_t
ac_fn_c_check_type "$LINENO" "uintmax_t" "ac_cv_type_uintmax_t" "$ac_includes_default"
-if test "x$ac_cv_type_uintmax_t" = x""yes; then :
+if test "x$ac_cv_type_uintmax_t" = xyes; then :
else
-
- uintmax_t="unsigned long"
+ uintmax_t="unsigned long"
ac_fn_c_check_type "$LINENO" "unsigned long long" "ac_cv_type_unsigned_long_long" "$ac_includes_default"
-if test "x$ac_cv_type_unsigned_long_long" = x""yes; then :
+if test "x$ac_cv_type_unsigned_long_long" = xyes; then :
uintmax_t="unsigned long long"
fi
@@ -7094,24 +7642,27 @@ cat >>confdefs.h <<_ACEOF
#define uintmax_t $uintmax_t
_ACEOF
+
fi
# Find out whether our struct stat returns nanosecond resolution timestamps.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for nanoseconds field of struct stat.st_mtim" >&5
-$as_echo_n "checking for nanoseconds field of struct stat.st_mtim... " >&6; }
-if test "${ac_cv_struct_st_mtim_nsec+set}" = set; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for nanoseconds field of struct stat" >&5
+$as_echo_n "checking for nanoseconds field of struct stat... " >&6; }
+if ${ac_cv_struct_st_mtim_nsec+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_save_CPPFLAGS="$CPPFLAGS"
ac_cv_struct_st_mtim_nsec=no
- # tv_nsec -- the usual case
- # _tv_nsec -- Solaris 2.6, if
+ # st_mtim.tv_nsec -- the usual case
+ # st_mtim._tv_nsec -- Solaris 2.6, if
# (defined _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED == 1
# && !defined __EXTENSIONS__)
- # st__tim.tv_nsec -- UnixWare 2.1.2
- for ac_val in tv_nsec _tv_nsec st__tim.tv_nsec; do
+ # st_mtim.st__tim.tv_nsec -- UnixWare 2.1.2
+ # st_mtime_n -- AIX 5.2 and above
+ # st_mtimespec.tv_nsec -- Darwin (Mac OSX)
+ for ac_val in st_mtim.tv_nsec st_mtim._tv_nsec st_mtim.st__tim.tv_nsec st_mtime_n st_mtimespec.tv_nsec; do
CPPFLAGS="$ac_save_CPPFLAGS -DST_MTIM_NSEC=$ac_val"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -7121,7 +7672,7 @@ else
int
main ()
{
-struct stat s; s.st_mtim.ST_MTIM_NSEC;
+struct stat s; s.ST_MTIM_NSEC;
;
return 0;
}
@@ -7148,18 +7699,17 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use high resolution file timestamps" >&5
$as_echo_n "checking whether to use high resolution file timestamps... " >&6; }
-if test "${make_cv_file_timestamp_hi_res+set}" = set; then :
+if ${make_cv_file_timestamp_hi_res+:} false; then :
$as_echo_n "(cached) " >&6
else
-
- make_cv_file_timestamp_hi_res=no
- if test "$ac_cv_struct_st_mtim_nsec" != no; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ make_cv_file_timestamp_hi_res=no
+ if test "$ac_cv_struct_st_mtim_nsec" != no; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-# if HAVE_INTTYPES_H
-# include <inttypes.h>
-# endif
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
int
main ()
{
@@ -7172,12 +7722,12 @@ if ac_fn_c_try_compile "$LINENO"; then :
make_cv_file_timestamp_hi_res=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
-fi
+fi
+fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $make_cv_file_timestamp_hi_res" >&5
$as_echo "$make_cv_file_timestamp_hi_res" >&6; }
-if test "$make_cv_file_timestamp_hi_res" = yes; then
+if test "$make_cv_file_timestamp_hi_res" = yes; then :
val=1
else
val=0
@@ -7188,12 +7738,12 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
-if test "$make_cv_file_timestamp_hi_res" = yes; then
- # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
+if test "$make_cv_file_timestamp_hi_res" = yes; then :
+ # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
# Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
$as_echo_n "checking for library containing clock_gettime... " >&6; }
-if test "${ac_cv_search_clock_gettime+set}" = set; then :
+if ${ac_cv_search_clock_gettime+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
@@ -7227,11 +7777,11 @@ for ac_lib in '' rt posix4; do
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
- if test "${ac_cv_search_clock_gettime+set}" = set; then :
+ if ${ac_cv_search_clock_gettime+:} false; then :
break
fi
done
-if test "${ac_cv_search_clock_gettime+set}" = set; then :
+if ${ac_cv_search_clock_gettime+:} false; then :
else
ac_cv_search_clock_gettime=no
@@ -7247,28 +7797,37 @@ if test "$ac_res" != no; then :
fi
- if test "$ac_cv_search_clock_gettime" != no; then
+ if test "$ac_cv_search_clock_gettime" != no; then :
$as_echo "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
- fi
+
+fi
+
fi
# Check for DOS-style pathnames.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system uses MSDOS-style paths" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system uses MSDOS-style paths" >&5
$as_echo_n "checking whether system uses MSDOS-style paths... " >&6; }
-if test "${ac_cv_dos_paths+set}" = set; then :
+if ${ac_cv_dos_paths+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __EMX__ && !defined __MSYS__ && !defined __CYGWIN__
neither MSDOS nor Windows nor OS2
#endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_dos_paths=yes
@@ -7276,18 +7835,17 @@ else
ac_cv_dos_paths=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_dos_paths" >&5
$as_echo "$ac_cv_dos_paths" >&6; }
- if test x"$ac_cv_dos_paths" = xyes; then
+ if test x"$ac_cv_dos_paths" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_DOS_PATHS 1
_ACEOF
- fi
+fi
# See if we have a standard version of gettimeofday(). Since actual
@@ -7295,7 +7853,7 @@ _ACEOF
# one.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for standard gettimeofday" >&5
$as_echo_n "checking for standard gettimeofday... " >&6; }
-if test "${ac_cv_func_gettimeofday+set}" = set; then :
+if ${ac_cv_func_gettimeofday+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_func_gettimeofday=no
@@ -7306,11 +7864,11 @@ else
/* end confdefs.h. */
#include <sys/time.h>
int main ()
- {
- struct timeval t; t.tv_sec = -1; t.tv_usec = -1;
- exit (gettimeofday (&t, 0) != 0
- || t.tv_sec < 0 || t.tv_usec < 0);
- }
+ {
+ struct timeval t; t.tv_sec = -1; t.tv_usec = -1;
+ exit (gettimeofday (&t, 0) != 0
+ || t.tv_sec < 0 || t.tv_usec < 0);
+ }
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
ac_cv_func_gettimeofday=yes
@@ -7324,22 +7882,22 @@ fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_gettimeofday" >&5
$as_echo "$ac_cv_func_gettimeofday" >&6; }
-if test "$ac_cv_func_gettimeofday" = yes; then
+if test "$ac_cv_func_gettimeofday" = yes; then :
$as_echo "#define HAVE_GETTIMEOFDAY 1" >>confdefs.h
+
fi
for ac_func in strdup strndup mkstemp mktemp fdopen fileno \
- dup2 getcwd realpath sigsetmask sigaction \
+ dup dup2 getcwd realpath sigsetmask sigaction \
getgroups seteuid setegid setlinebuf setreuid setregid \
getrlimit setrlimit setvbuf pipe strerror strsignal \
- lstat readlink atexit
+ lstat readlink atexit
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -7351,9 +7909,10 @@ done
# We need to check declarations, not just existence, because on Tru64 this
# function is not declared without special flags, which themselves cause
# other problems. We'll just use our own.
-ac_fn_c_check_decl "$LINENO" "bsd_signal" "ac_cv_have_decl_bsd_signal" "#include <signal.h>
+ac_fn_c_check_decl "$LINENO" "bsd_signal" "ac_cv_have_decl_bsd_signal" "#define _GNU_SOURCE 1
+#include <signal.h>
"
-if test "x$ac_cv_have_decl_bsd_signal" = x""yes; then :
+if test "x$ac_cv_have_decl_bsd_signal" = xyes; then :
ac_have_decl=1
else
ac_have_decl=0
@@ -7364,7 +7923,7 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
-if test "${ac_cv_func_setvbuf_reversed+set}" = set; then :
+if ${ac_cv_func_setvbuf_reversed+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_func_setvbuf_reversed=no
@@ -7379,8 +7938,7 @@ for ac_func in strcasecmp strncasecmp strcmpi strncmpi stricmp strnicmp
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -7392,7 +7950,7 @@ done
# strcoll() is used by the GNU glob library
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strcoll" >&5
$as_echo_n "checking for working strcoll... " >&6; }
-if test "${ac_cv_func_strcoll_works+set}" = set; then :
+if ${ac_cv_func_strcoll_works+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "$cross_compiling" = yes; then :
@@ -7430,11 +7988,22 @@ $as_echo "#define HAVE_STRCOLL 1" >>confdefs.h
fi
+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+if test "x$ac_cv_type_size_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define size_t unsigned int
+_ACEOF
+
+fi
+
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
$as_echo_n "checking for working alloca.h... " >&6; }
-if test "${ac_cv_working_alloca_h+set}" = set; then :
+if ${ac_cv_working_alloca_h+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -7467,7 +8036,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
$as_echo_n "checking for alloca... " >&6; }
-if test "${ac_cv_func_alloca_works+set}" = set; then :
+if ${ac_cv_func_alloca_works+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -7486,7 +8055,7 @@ else
#pragma alloca
# else
# ifndef alloca /* predefined by HP cc +Olibcalls */
-char *alloca ();
+void *alloca (size_t);
# endif
# endif
# endif
@@ -7530,7 +8099,7 @@ $as_echo "#define C_ALLOCA 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5
$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
-if test "${ac_cv_os_cray+set}" = set; then :
+if ${ac_cv_os_cray+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -7557,8 +8126,7 @@ if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define CRAY_STACKSEG_END $ac_func
@@ -7572,7 +8140,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
$as_echo_n "checking stack direction for C alloca... " >&6; }
-if test "${ac_cv_c_stack_direction+set}" = set; then :
+if ${ac_cv_c_stack_direction+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "$cross_compiling" = yes; then :
@@ -7582,23 +8150,20 @@ else
/* end confdefs.h. */
$ac_includes_default
int
-find_stack_direction ()
+find_stack_direction (int *addr, int depth)
{
- static char *addr = 0;
- auto char dummy;
- if (addr == 0)
- {
- addr = &dummy;
- return find_stack_direction ();
- }
- else
- return (&dummy > addr) ? 1 : -1;
+ int dir, dummy = 0;
+ if (! addr)
+ addr = &dummy;
+ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+ dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+ return dir + dummy;
}
int
-main ()
+main (int argc, char **argv)
{
- return find_stack_direction () < 0;
+ return find_stack_direction (0, argc + !argv + 20) < 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
@@ -7620,293 +8185,421 @@ _ACEOF
fi
-for ac_header in vfork.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default"
-if test "x$ac_cv_header_vfork_h" = x""yes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_VFORK_H 1
-_ACEOF
-
-fi
-
-done
-
-for ac_func in fork vfork
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
- if test "x$as_val" = x""yes; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-if test "x$ac_cv_func_fork" = xyes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5
-$as_echo_n "checking for working fork... " >&6; }
-if test "${ac_cv_func_fork_works+set}" = set; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether closedir returns void" >&5
+$as_echo_n "checking whether closedir returns void... " >&6; }
+if ${ac_cv_func_closedir_void+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "$cross_compiling" = yes; then :
- ac_cv_func_fork_works=cross
+ ac_cv_func_closedir_void=yes
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
+#include <$ac_header_dirent>
+#ifndef __cplusplus
+int closedir ();
+#endif
+
int
main ()
{
-
- /* By Ruediger Kuhlmann. */
- return fork () < 0;
-
+return closedir (opendir (".")) != 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_func_fork_works=yes
+ ac_cv_func_closedir_void=no
else
- ac_cv_func_fork_works=no
+ ac_cv_func_closedir_void=yes
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5
-$as_echo "$ac_cv_func_fork_works" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_closedir_void" >&5
+$as_echo "$ac_cv_func_closedir_void" >&6; }
+if test $ac_cv_func_closedir_void = yes; then
+
+$as_echo "#define CLOSEDIR_VOID 1" >>confdefs.h
-else
- ac_cv_func_fork_works=$ac_cv_func_fork
fi
-if test "x$ac_cv_func_fork_works" = xcross; then
- case $host in
- *-*-amigaos* | *-*-msdosdjgpp*)
- # Override, as these systems have only a dummy fork() stub
- ac_cv_func_fork_works=no
- ;;
- *)
- ac_cv_func_fork_works=yes
- ;;
- esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5
-$as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;}
-fi
-ac_cv_func_vfork_works=$ac_cv_func_vfork
-if test "x$ac_cv_func_vfork" = xyes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5
-$as_echo_n "checking for working vfork... " >&6; }
-if test "${ac_cv_func_vfork_works+set}" = set; then :
+
+
+# See if the user wants to add (or not) GNU Guile support
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then :
- ac_cv_func_vfork_works=cross
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Thanks to Paul Eggert for this test. */
-$ac_includes_default
-#include <sys/wait.h>
-#ifdef HAVE_VFORK_H
-# include <vfork.h>
-#endif
-/* On some sparc systems, changes by the child to local and incoming
- argument registers are propagated back to the parent. The compiler
- is told about this with #include <vfork.h>, but some compilers
- (e.g. gcc -O) don't grok <vfork.h>. Test for this by using a
- static variable whose address is put into a register that is
- clobbered by the vfork. */
-static void
-#ifdef __cplusplus
-sparc_address_test (int arg)
-# else
-sparc_address_test (arg) int arg;
-#endif
-{
- static pid_t child;
- if (!child) {
- child = vfork ();
- if (child < 0) {
- perror ("vfork");
- _exit(2);
- }
- if (!child) {
- arg = getpid();
- write(-1, "", 0);
- _exit (arg);
- }
- }
-}
-
-int
-main ()
-{
- pid_t parent = getpid ();
- pid_t child;
-
- sparc_address_test (0);
-
- child = vfork ();
-
- if (child == 0) {
- /* Here is another test for sparc vfork register problems. This
- test uses lots of local variables, at least as many local
- variables as main has allocated so far including compiler
- temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris
- 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should
- reuse the register of parent for one of the local variables,
- since it will think that parent can't possibly be used any more
- in this routine. Assigning to the local variable will thus
- munge parent in the parent process. */
- pid_t
- p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(),
- p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid();
- /* Convince the compiler that p..p7 are live; otherwise, it might
- use the same hardware register for all 8 local variables. */
- if (p != p1 || p != p2 || p != p3 || p != p4
- || p != p5 || p != p6 || p != p7)
- _exit(1);
-
- /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
- from child file descriptors. If the child closes a descriptor
- before it execs or exits, this munges the parent's descriptor
- as well. Test for this by closing stdout in the child. */
- _exit(close(fileno(stdout)) != 0);
- } else {
- int status;
- struct stat st;
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
- while (wait(&status) != child)
- ;
- return (
- /* Was there some problem with vforking? */
- child < 0
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
- /* Did the child fail? (This shouldn't happen.) */
- || status
- /* Did the vfork/compiler bug occur? */
- || parent != getpid()
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
- /* Did the file descriptor bug occur? */
- || fstat(fileno(stdout), &st) != 0
- );
- }
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_func_vfork_works=yes
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
else
- ac_cv_func_vfork_works=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5
-$as_echo "$ac_cv_func_vfork_works" >&6; }
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ PKG_CONFIG=""
+ fi
+fi
-fi;
-if test "x$ac_cv_func_fork_works" = xcross; then
- ac_cv_func_vfork_works=$ac_cv_func_vfork
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5
-$as_echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;}
+# Check whether --with-guile was given.
+if test "${with_guile+set}" = set; then :
+ withval=$with_guile;
fi
-if test "x$ac_cv_func_vfork_works" = xyes; then
-$as_echo "#define HAVE_WORKING_VFORK 1" >>confdefs.h
+# For some strange reason, at least on Ubuntu, each version of Guile
+# comes with it's own PC file so we have to specify them as individual
+# packages. Ugh.
+if test "x$with_guile" != xno; then :
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GUILE" >&5
+$as_echo_n "checking for GUILE... " >&6; }
+
+if test -n "$GUILE_CFLAGS"; then
+ pkg_cv_GUILE_CFLAGS="$GUILE_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"guile-2.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "guile-2.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_GUILE_CFLAGS=`$PKG_CONFIG --cflags "guile-2.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$GUILE_LIBS"; then
+ pkg_cv_GUILE_LIBS="$GUILE_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"guile-2.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "guile-2.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_GUILE_LIBS=`$PKG_CONFIG --libs "guile-2.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
-$as_echo "#define vfork fork" >>confdefs.h
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
fi
-if test "x$ac_cv_func_fork_works" = xyes; then
+ if test $_pkg_short_errors_supported = yes; then
+ GUILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "guile-2.0" 2>&1`
+ else
+ GUILE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "guile-2.0" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$GUILE_PKG_ERRORS" >&5
+
-$as_echo "#define HAVE_WORKING_FORK 1" >>confdefs.h
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GUILE" >&5
+$as_echo_n "checking for GUILE... " >&6; }
+if test -n "$GUILE_CFLAGS"; then
+ pkg_cv_GUILE_CFLAGS="$GUILE_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"guile-1.8\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "guile-1.8") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_GUILE_CFLAGS=`$PKG_CONFIG --cflags "guile-1.8" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$GUILE_LIBS"; then
+ pkg_cv_GUILE_LIBS="$GUILE_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"guile-1.8\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "guile-1.8") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_GUILE_LIBS=`$PKG_CONFIG --libs "guile-1.8" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
fi
-for ac_func in vprintf
-do :
- ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf"
-if test "x$ac_cv_func_vprintf" = x""yes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_VPRINTF 1
-_ACEOF
-ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt"
-if test "x$ac_cv_func__doprnt" = x""yes; then :
-$as_echo "#define HAVE_DOPRNT 1" >>confdefs.h
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
fi
+ if test $_pkg_short_errors_supported = yes; then
+ GUILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "guile-1.8" 2>&1`
+ else
+ GUILE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "guile-1.8" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$GUILE_PKG_ERRORS" >&5
+ have_guile=no
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ have_guile=no
+else
+ GUILE_CFLAGS=$pkg_cv_GUILE_CFLAGS
+ GUILE_LIBS=$pkg_cv_GUILE_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_guile=yes
fi
-done
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GUILE" >&5
+$as_echo_n "checking for GUILE... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether closedir returns void" >&5
-$as_echo_n "checking whether closedir returns void... " >&6; }
-if test "${ac_cv_func_closedir_void+set}" = set; then :
- $as_echo_n "(cached) " >&6
+if test -n "$GUILE_CFLAGS"; then
+ pkg_cv_GUILE_CFLAGS="$GUILE_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"guile-1.8\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "guile-1.8") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_GUILE_CFLAGS=`$PKG_CONFIG --cflags "guile-1.8" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
- if test "$cross_compiling" = yes; then :
- ac_cv_func_closedir_void=yes
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$GUILE_LIBS"; then
+ pkg_cv_GUILE_LIBS="$GUILE_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"guile-1.8\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "guile-1.8") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_GUILE_LIBS=`$PKG_CONFIG --libs "guile-1.8" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header_dirent>
-#ifndef __cplusplus
-int closedir ();
-#endif
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
-int
-main ()
-{
-return closedir (opendir (".")) != 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_func_closedir_void=no
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
else
- ac_cv_func_closedir_void=yes
+ _pkg_short_errors_supported=no
fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
+ if test $_pkg_short_errors_supported = yes; then
+ GUILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "guile-1.8" 2>&1`
+ else
+ GUILE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "guile-1.8" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$GUILE_PKG_ERRORS" >&5
+
+ have_guile=no
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ have_guile=no
+else
+ GUILE_CFLAGS=$pkg_cv_GUILE_CFLAGS
+ GUILE_LIBS=$pkg_cv_GUILE_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_guile=yes
+fi
+else
+ GUILE_CFLAGS=$pkg_cv_GUILE_CFLAGS
+ GUILE_LIBS=$pkg_cv_GUILE_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_guile=yes
fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_closedir_void" >&5
-$as_echo "$ac_cv_func_closedir_void" >&6; }
-if test $ac_cv_func_closedir_void = yes; then
-$as_echo "#define CLOSEDIR_VOID 1" >>confdefs.h
+if test "$have_guile" = yes; then :
+
+$as_echo "#define HAVE_GUILE 1" >>confdefs.h
fi
+ if test "$have_guile" = yes; then
+ HAVE_GUILE_TRUE=
+ HAVE_GUILE_FALSE='#'
+else
+ HAVE_GUILE_TRUE='#'
+ HAVE_GUILE_FALSE=
+fi
+
ac_have_func=no # yes means we've found a way to get the load average.
# Make sure getloadavg.c is where it belongs, at configure-time.
test -f "$srcdir/$ac_config_libobj_dir/getloadavg.c" ||
- as_fn_error "$srcdir/$ac_config_libobj_dir/getloadavg.c is missing" "$LINENO" 5
+ as_fn_error $? "$srcdir/$ac_config_libobj_dir/getloadavg.c is missing" "$LINENO" 5
ac_save_LIBS=$LIBS
# Check for getloadavg, but be sure not to touch the cache variable.
(ac_fn_c_check_func "$LINENO" "getloadavg" "ac_cv_func_getloadavg"
-if test "x$ac_cv_func_getloadavg" = x""yes; then :
+if test "x$ac_cv_func_getloadavg" = xyes; then :
exit 0
else
exit 1
@@ -7917,7 +8610,7 @@ fi
for ac_func in pstat_getdynamic
do :
ac_fn_c_check_func "$LINENO" "pstat_getdynamic" "ac_cv_func_pstat_getdynamic"
-if test "x$ac_cv_func_pstat_getdynamic" = x""yes; then :
+if test "x$ac_cv_func_pstat_getdynamic" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_PSTAT_GETDYNAMIC 1
_ACEOF
@@ -7929,7 +8622,7 @@ done
# Solaris has libkstat which does not require root.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for kstat_open in -lkstat" >&5
$as_echo_n "checking for kstat_open in -lkstat... " >&6; }
-if test "${ac_cv_lib_kstat_kstat_open+set}" = set; then :
+if ${ac_cv_lib_kstat_kstat_open+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -7963,7 +8656,7 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_kstat_kstat_open" >&5
$as_echo "$ac_cv_lib_kstat_kstat_open" >&6; }
-if test "x$ac_cv_lib_kstat_kstat_open" = x""yes; then :
+if test "x$ac_cv_lib_kstat_kstat_open" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBKSTAT 1
_ACEOF
@@ -7981,7 +8674,7 @@ test $ac_cv_lib_kstat_kstat_open = yes && ac_have_func=yes
if test $ac_have_func = no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for elf_begin in -lelf" >&5
$as_echo_n "checking for elf_begin in -lelf... " >&6; }
-if test "${ac_cv_lib_elf_elf_begin+set}" = set; then :
+if ${ac_cv_lib_elf_elf_begin+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -8015,7 +8708,7 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_elf_elf_begin" >&5
$as_echo "$ac_cv_lib_elf_elf_begin" >&6; }
-if test "x$ac_cv_lib_elf_elf_begin" = x""yes; then :
+if test "x$ac_cv_lib_elf_elf_begin" = xyes; then :
LIBS="-lelf $LIBS"
fi
@@ -8023,7 +8716,7 @@ fi
if test $ac_have_func = no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for kvm_open in -lkvm" >&5
$as_echo_n "checking for kvm_open in -lkvm... " >&6; }
-if test "${ac_cv_lib_kvm_kvm_open+set}" = set; then :
+if ${ac_cv_lib_kvm_kvm_open+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -8057,14 +8750,14 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_kvm_kvm_open" >&5
$as_echo "$ac_cv_lib_kvm_kvm_open" >&6; }
-if test "x$ac_cv_lib_kvm_kvm_open" = x""yes; then :
+if test "x$ac_cv_lib_kvm_kvm_open" = xyes; then :
LIBS="-lkvm $LIBS"
fi
# Check for the 4.4BSD definition of getloadavg.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getloadavg in -lutil" >&5
$as_echo_n "checking for getloadavg in -lutil... " >&6; }
-if test "${ac_cv_lib_util_getloadavg+set}" = set; then :
+if ${ac_cv_lib_util_getloadavg+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -8098,7 +8791,7 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_getloadavg" >&5
$as_echo "$ac_cv_lib_util_getloadavg" >&6; }
-if test "x$ac_cv_lib_util_getloadavg" = x""yes; then :
+if test "x$ac_cv_lib_util_getloadavg" = xyes; then :
LIBS="-lutil $LIBS" ac_have_func=yes ac_cv_func_getloadavg_setgid=yes
fi
@@ -8111,7 +8804,7 @@ if test $ac_have_func = no; then
LIBS="-L/usr/local/lib $LIBS"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getloadavg in -lgetloadavg" >&5
$as_echo_n "checking for getloadavg in -lgetloadavg... " >&6; }
-if test "${ac_cv_lib_getloadavg_getloadavg+set}" = set; then :
+if ${ac_cv_lib_getloadavg_getloadavg+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -8145,7 +8838,7 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_getloadavg_getloadavg" >&5
$as_echo "$ac_cv_lib_getloadavg_getloadavg" >&6; }
-if test "x$ac_cv_lib_getloadavg_getloadavg" = x""yes; then :
+if test "x$ac_cv_lib_getloadavg_getloadavg" = xyes; then :
LIBS="-lgetloadavg $LIBS"
else
LIBS=$ac_getloadavg_LIBS
@@ -8158,7 +8851,7 @@ fi
for ac_func in getloadavg
do :
ac_fn_c_check_func "$LINENO" "getloadavg" "ac_cv_func_getloadavg"
-if test "x$ac_cv_func_getloadavg" = x""yes; then :
+if test "x$ac_cv_func_getloadavg" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_GETLOADAVG 1
_ACEOF
@@ -8176,14 +8869,14 @@ $as_echo "#define C_GETLOADAVG 1" >>confdefs.h
# Figure out what our getloadavg.c needs.
ac_have_func=no
ac_fn_c_check_header_mongrel "$LINENO" "sys/dg_sys_info.h" "ac_cv_header_sys_dg_sys_info_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_dg_sys_info_h" = x""yes; then :
+if test "x$ac_cv_header_sys_dg_sys_info_h" = xyes; then :
ac_have_func=yes
$as_echo "#define DGUX 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dg_sys_info in -ldgc" >&5
$as_echo_n "checking for dg_sys_info in -ldgc... " >&6; }
-if test "${ac_cv_lib_dgc_dg_sys_info+set}" = set; then :
+if ${ac_cv_lib_dgc_dg_sys_info+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -8217,7 +8910,7 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dgc_dg_sys_info" >&5
$as_echo "$ac_cv_lib_dgc_dg_sys_info" >&6; }
-if test "x$ac_cv_lib_dgc_dg_sys_info" = x""yes; then :
+if test "x$ac_cv_lib_dgc_dg_sys_info" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBDGC 1
_ACEOF
@@ -8231,7 +8924,7 @@ fi
ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default"
-if test "x$ac_cv_header_locale_h" = x""yes; then :
+if test "x$ac_cv_header_locale_h" = xyes; then :
fi
@@ -8239,7 +8932,7 @@ fi
for ac_func in setlocale
do :
ac_fn_c_check_func "$LINENO" "setlocale" "ac_cv_func_setlocale"
-if test "x$ac_cv_func_setlocale" = x""yes; then :
+if test "x$ac_cv_func_setlocale" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_SETLOCALE 1
_ACEOF
@@ -8251,7 +8944,8 @@ done
# We cannot check for <dwarf.h>, because Solaris 2 does not use dwarf (it
# uses stabs), but it is still SVR4. We cannot check for <elf.h> because
# Irix 4.0.5F has the header but not the library.
-if test $ac_have_func = no && test "$ac_cv_lib_elf_elf_begin" = yes; then
+if test $ac_have_func = no && test "$ac_cv_lib_elf_elf_begin" = yes \
+ && test "$ac_cv_lib_kvm_kvm_open" = yes; then
ac_have_func=yes
$as_echo "#define SVR4 1" >>confdefs.h
@@ -8260,7 +8954,7 @@ fi
if test $ac_have_func = no; then
ac_fn_c_check_header_mongrel "$LINENO" "inq_stats/cpustats.h" "ac_cv_header_inq_stats_cpustats_h" "$ac_includes_default"
-if test "x$ac_cv_header_inq_stats_cpustats_h" = x""yes; then :
+if test "x$ac_cv_header_inq_stats_cpustats_h" = xyes; then :
ac_have_func=yes
$as_echo "#define UMAX 1" >>confdefs.h
@@ -8275,7 +8969,7 @@ fi
if test $ac_have_func = no; then
ac_fn_c_check_header_mongrel "$LINENO" "sys/cpustats.h" "ac_cv_header_sys_cpustats_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_cpustats_h" = x""yes; then :
+if test "x$ac_cv_header_sys_cpustats_h" = xyes; then :
ac_have_func=yes; $as_echo "#define UMAX 1" >>confdefs.h
fi
@@ -8287,7 +8981,7 @@ if test $ac_have_func = no; then
for ac_header in mach/mach.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "mach/mach.h" "ac_cv_header_mach_mach_h" "$ac_includes_default"
-if test "x$ac_cv_header_mach_mach_h" = x""yes; then :
+if test "x$ac_cv_header_mach_mach_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_MACH_MACH_H 1
_ACEOF
@@ -8301,13 +8995,13 @@ fi
for ac_header in nlist.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "nlist.h" "ac_cv_header_nlist_h" "$ac_includes_default"
-if test "x$ac_cv_header_nlist_h" = x""yes; then :
+if test "x$ac_cv_header_nlist_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_NLIST_H 1
_ACEOF
ac_fn_c_check_member "$LINENO" "struct nlist" "n_un.n_name" "ac_cv_member_struct_nlist_n_un_n_name" "#include <nlist.h>
"
-if test "x$ac_cv_member_struct_nlist_n_un_n_name" = x""yes; then :
+if test "x$ac_cv_member_struct_nlist_n_un_n_name" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_NLIST_N_UN_N_NAME 1
@@ -8330,7 +9024,7 @@ done
# Some definitions of getloadavg require that the program be installed setgid.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getloadavg requires setgid" >&5
$as_echo_n "checking whether getloadavg requires setgid... " >&6; }
-if test "${ac_cv_func_getloadavg_setgid+set}" = set; then :
+if ${ac_cv_func_getloadavg_setgid+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8363,7 +9057,7 @@ fi
if test $ac_cv_func_getloadavg_setgid = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking group of /dev/kmem" >&5
$as_echo_n "checking group of /dev/kmem... " >&6; }
-if test "${ac_cv_group_kmem+set}" = set; then :
+if ${ac_cv_group_kmem+:} false; then :
$as_echo_n "(cached) " >&6
else
# On Solaris, /dev/kmem is a symlink. Get info on the real file.
@@ -8392,8 +9086,8 @@ LIBS=$ac_save_LIBS
# AC_FUNC_GETLOADAVG is documented to set the NLIST_STRUCT value, but it
# doesn't. So, we will.
-if test "$ac_cv_header_nlist_h" = yes; then
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+if test "$ac_cv_header_nlist_h" = yes; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <nlist.h>
int
@@ -8412,11 +9106,13 @@ else
make_cv_nlist_struct=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- if test "$make_cv_nlist_struct" = yes; then
+ if test "$make_cv_nlist_struct" = yes; then :
$as_echo "#define NLIST_STRUCT 1" >>confdefs.h
- fi
+
+fi
+
fi
ac_fn_c_check_decl "$LINENO" "sys_siglist" "ac_cv_have_decl_sys_siglist" "$ac_includes_default
@@ -8427,7 +9123,7 @@ ac_fn_c_check_decl "$LINENO" "sys_siglist" "ac_cv_have_decl_sys_siglist" "$ac_in
#endif
"
-if test "x$ac_cv_have_decl_sys_siglist" = x""yes; then :
+if test "x$ac_cv_have_decl_sys_siglist" = xyes; then :
ac_have_decl=1
else
ac_have_decl=0
@@ -8444,7 +9140,7 @@ ac_fn_c_check_decl "$LINENO" "_sys_siglist" "ac_cv_have_decl__sys_siglist" "$ac_
#endif
"
-if test "x$ac_cv_have_decl__sys_siglist" = x""yes; then :
+if test "x$ac_cv_have_decl__sys_siglist" = xyes; then :
ac_have_decl=1
else
ac_have_decl=0
@@ -8461,7 +9157,7 @@ ac_fn_c_check_decl "$LINENO" "__sys_siglist" "ac_cv_have_decl___sys_siglist" "$a
#endif
"
-if test "x$ac_cv_have_decl___sys_siglist" = x""yes; then :
+if test "x$ac_cv_have_decl___sys_siglist" = xyes; then :
ac_have_decl=1
else
ac_have_decl=0
@@ -8478,7 +9174,7 @@ for ac_header in sys/wait.h
do :
ac_fn_c_check_header_compile "$LINENO" "sys/wait.h" "ac_cv_header_sys_wait_h" "#include <sys/types.h>
"
-if test "x$ac_cv_header_sys_wait_h" = x""yes; then :
+if test "x$ac_cv_header_sys_wait_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_SYS_WAIT_H 1
_ACEOF
@@ -8491,8 +9187,7 @@ for ac_func in waitpid wait3
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
- if test "x$as_val" = x""yes; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
@@ -8502,10 +9197,10 @@ done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for union wait" >&5
$as_echo_n "checking for union wait... " >&6; }
-if test "${make_cv_union_wait+set}" = set; then :
+if ${make_cv_union_wait+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/wait.h>
@@ -8539,45 +9234,49 @@ else
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
-fi
-if test "$make_cv_union_wait" = yes; then
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $make_cv_union_wait" >&5
+$as_echo "$make_cv_union_wait" >&6; }
+if test "$make_cv_union_wait" = yes; then :
$as_echo "#define HAVE_UNION_WAIT 1" >>confdefs.h
+
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $make_cv_union_wait" >&5
-$as_echo "$make_cv_union_wait" >&6; }
# If we're building on Windows/DOS/OS/2, add some support for DOS drive specs.
-if test "$PATH_SEPARATOR" = ';'; then
+if test "$PATH_SEPARATOR" = ';'; then :
$as_echo "#define HAVE_DOS_PATHS 1" >>confdefs.h
-fi
+fi
# See if the user wants to use pmake's "customs" distributed build capability
-
REMOTE=stub
use_customs=false
# Check whether --with-customs was given.
if test "${with_customs+set}" = set; then :
- withval=$with_customs; case $withval in
- n|no) : ;;
- *) make_cppflags="$CPPFLAGS"
- case $withval in
- y|ye|yes) : ;;
- *) CPPFLAGS="$CPPFLAGS -I$with_customs/include/customs"
- make_ldflags="$LDFLAGS -L$with_customs/lib" ;;
- esac
+ withval=$with_customs; case $withval in #(
+ n|no) :
+ : ;; #(
+ *) :
+ make_cppflags="$CPPFLAGS"
+ case $withval in #(
+ y|ye|yes) :
+ : ;; #(
+ *) :
+ CPPFLAGS="$CPPFLAGS -I$with_customs/include/customs"
+ make_ldflags="$LDFLAGS -L$with_customs/lib" ;;
+esac
cf_test_netlibs=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for network libraries" >&5
$as_echo_n "checking for network libraries... " >&6; }
-if test "${cf_cv_netlibs+set}" = set; then :
+if ${cf_cv_netlibs+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -8588,7 +9287,7 @@ cf_test_netlibs=yes
for ac_func in gethostname
do :
ac_fn_c_check_func "$LINENO" "gethostname" "ac_cv_func_gethostname"
-if test "x$ac_cv_func_gethostname" = x""yes; then :
+if test "x$ac_cv_func_gethostname" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_GETHOSTNAME 1
_ACEOF
@@ -8598,7 +9297,7 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostname in -lnsl" >&5
$as_echo_n "checking for gethostname in -lnsl... " >&6; }
-if test "${ac_cv_lib_nsl_gethostname+set}" = set; then :
+if ${ac_cv_lib_nsl_gethostname+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -8632,7 +9331,7 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostname" >&5
$as_echo "$ac_cv_lib_nsl_gethostname" >&6; }
-if test "x$ac_cv_lib_nsl_gethostname" = x""yes; then :
+if test "x$ac_cv_lib_nsl_gethostname" = xyes; then :
cf_tr_func=`echo gethostname | tr '[a-z]' '[A-Z]'`
@@ -8652,7 +9351,7 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostname in -lsocket" >&5
$as_echo_n "checking for gethostname in -lsocket... " >&6; }
-if test "${ac_cv_lib_socket_gethostname+set}" = set; then :
+if ${ac_cv_lib_socket_gethostname+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -8686,7 +9385,7 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_gethostname" >&5
$as_echo "$ac_cv_lib_socket_gethostname" >&6; }
-if test "x$ac_cv_lib_socket_gethostname" = x""yes; then :
+if test "x$ac_cv_lib_socket_gethostname" = xyes; then :
cf_tr_func=`echo gethostname | tr '[a-z]' '[A-Z]'`
@@ -8717,7 +9416,7 @@ done
# I don't know the entrypoints - 97/7/22 TD
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -linet" >&5
$as_echo_n "checking for main in -linet... " >&6; }
-if test "${ac_cv_lib_inet_main+set}" = set; then :
+if ${ac_cv_lib_inet_main+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -8745,7 +9444,7 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_inet_main" >&5
$as_echo "$ac_cv_lib_inet_main" >&6; }
-if test "x$ac_cv_lib_inet_main" = x""yes; then :
+if test "x$ac_cv_lib_inet_main" = xyes; then :
cf_cv_netlibs="-linet $cf_cv_netlibs"
fi
@@ -8754,7 +9453,7 @@ if test "$ac_cv_func_lsocket" != no ; then
for ac_func in socket
do :
ac_fn_c_check_func "$LINENO" "socket" "ac_cv_func_socket"
-if test "x$ac_cv_func_socket" = x""yes; then :
+if test "x$ac_cv_func_socket" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_SOCKET 1
_ACEOF
@@ -8764,7 +9463,7 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5
$as_echo_n "checking for socket in -lsocket... " >&6; }
-if test "${ac_cv_lib_socket_socket+set}" = set; then :
+if ${ac_cv_lib_socket_socket+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -8798,7 +9497,7 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5
$as_echo "$ac_cv_lib_socket_socket" >&6; }
-if test "x$ac_cv_lib_socket_socket" = x""yes; then :
+if test "x$ac_cv_lib_socket_socket" = xyes; then :
cf_tr_func=`echo socket | tr '[a-z]' '[A-Z]'`
@@ -8818,7 +9517,7 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lbsd" >&5
$as_echo_n "checking for socket in -lbsd... " >&6; }
-if test "${ac_cv_lib_bsd_socket+set}" = set; then :
+if ${ac_cv_lib_bsd_socket+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -8852,7 +9551,7 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_socket" >&5
$as_echo "$ac_cv_lib_bsd_socket" >&6; }
-if test "x$ac_cv_lib_bsd_socket" = x""yes; then :
+if test "x$ac_cv_lib_bsd_socket" = xyes; then :
cf_tr_func=`echo socket | tr '[a-z]' '[A-Z]'`
@@ -8883,7 +9582,7 @@ fi
for ac_func in gethostbyname
do :
ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
-if test "x$ac_cv_func_gethostbyname" = x""yes; then :
+if test "x$ac_cv_func_gethostbyname" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_GETHOSTBYNAME 1
_ACEOF
@@ -8893,7 +9592,7 @@ else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
-if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then :
+if ${ac_cv_lib_nsl_gethostbyname+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
@@ -8927,7 +9626,7 @@ LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
-if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then :
+if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then :
cf_tr_func=`echo gethostbyname | tr '[a-z]' '[A-Z]'`
@@ -8956,21 +9655,23 @@ fi
LIBS="$LIBS $cf_cv_netlibs"
test $cf_test_netlibs = no && echo "$cf_cv_netlibs" >&6
- ac_fn_c_check_header_mongrel "$LINENO" "customs.h" "ac_cv_header_customs_h" "$ac_includes_default"
-if test "x$ac_cv_header_customs_h" = x""yes; then :
+ ac_fn_c_check_header_mongrel "$LINENO" "customs.h" "ac_cv_header_customs_h" "$ac_includes_default"
+if test "x$ac_cv_header_customs_h" = xyes; then :
use_customs=true
- REMOTE=cstms
- LIBS="$LIBS -lcustoms" LDFLAGS="$make_ldflags"
+ REMOTE=cstms
+ LIBS="$LIBS -lcustoms" LDFLAGS="$make_ldflags"
else
with_customs=no
- CPPFLAGS="$make_cppflags" make_badcust=yes
+ CPPFLAGS="$make_cppflags" make_badcust=yes
fi
- ;;
- esac
+ ;;
+esac
+
fi
+
# Tell automake about this, so it can include the right .c files.
if test "$use_customs" = true; then
USE_CUSTOMS_TRUE=
@@ -8983,18 +9684,16 @@ fi
# See if the user asked to handle case insensitive file systems.
-
# Check whether --enable-case-insensitive-file-system was given.
if test "${enable_case_insensitive_file_system+set}" = set; then :
- enableval=$enable_case_insensitive_file_system; case $enableval in
- yes) $as_echo "#define HAVE_CASE_INSENSITIVE_FS 1" >>confdefs.h
- ;;
- esac
+ enableval=$enable_case_insensitive_file_system; if test "$enableval" = yes; then :
+ $as_echo "#define HAVE_CASE_INSENSITIVE_FS 1" >>confdefs.h
+
+fi
fi
# See if we can handle the job server feature, and if the user wants it.
-
# Check whether --enable-job-server was given.
if test "${enable_job_server+set}" = set; then :
enableval=$enable_job_server; make_cv_job_server="$enableval" user_job_server="$enableval"
@@ -9003,14 +9702,15 @@ else
fi
-has_wait_nohang=yes
-case "$ac_cv_func_waitpid/$ac_cv_func_wait3" in
- no/no) has_wait_nohang=no ;;
-esac
+if test "$ac_cv_func_waitpid" = no && test "$ac_cv_func_wait3" = no; then :
+ has_wait_nohang=no
+else
+ has_wait_nohang=yes
+fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SA_RESTART" >&5
$as_echo_n "checking for SA_RESTART... " >&6; }
-if test "${make_cv_sa_restart+set}" = set; then :
+if ${make_cv_sa_restart+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -9035,47 +9735,236 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $make_cv_sa_restart" >&5
$as_echo "$make_cv_sa_restart" >&6; }
-if test "$make_cv_sa_restart" != no; then
+if test "$make_cv_sa_restart" != no; then :
$as_echo "#define HAVE_SA_RESTART 1" >>confdefs.h
+
fi
-# enable make_cv_sa_restart for OS/2 so that the jobserver will be enabled,
-# but do it after HAVE_SA_RESTART has been defined.
-case "$host_os" in
- os2*) make_cv_sa_restart=yes ;;
+# Only allow jobserver on systems that support it
+case /$ac_cv_func_pipe/$ac_cv_func_sigaction/$make_cv_sa_restart/$has_wait_nohang/ in #(
+ */no/*) :
+ make_cv_job_server=no ;; #(
+ *) :
+ ;;
esac
-case "$ac_cv_func_pipe/$ac_cv_func_sigaction/$make_cv_sa_restart/$has_wait_nohang/$make_cv_job_server" in
- yes/yes/yes/yes/yes)
+# Also supported on OS2 and MinGW
+case $host_os in #(
+ os2*|mingw*) :
+ make_cv_job_server=yes ;; #(
+ *) :
+ ;;
+esac
+
+# If we support it and the user didn't disable it, build with jobserver
+case /$make_cv_job_server/$user_job_server/ in #(
+ */no/*) :
+ : no jobserver ;; #(
+ *) :
$as_echo "#define MAKE_JOBSERVER 1" >>confdefs.h
-;;
+
+ ;;
+esac
+
+# If dl*() functions are supported we can enable the load operation
+ac_fn_c_check_decl "$LINENO" "dlopen" "ac_cv_have_decl_dlopen" "#include <dlfcn.h>
+"
+if test "x$ac_cv_have_decl_dlopen" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_DLOPEN $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "dlsym" "ac_cv_have_decl_dlsym" "#include <dlfcn.h>
+"
+if test "x$ac_cv_have_decl_dlsym" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_DLSYM $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "dlerror" "ac_cv_have_decl_dlerror" "#include <dlfcn.h>
+"
+if test "x$ac_cv_have_decl_dlerror" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_DLERROR $ac_have_decl
+_ACEOF
+
+
+# Check whether --enable-load was given.
+if test "${enable_load+set}" = set; then :
+ enableval=$enable_load; make_cv_load="$enableval" user_load="$enableval"
+else
+ make_cv_load="yes"
+fi
+
+
+case /$ac_cv_func_dlopen/$ac_cv_func_dlsym/$ac_cv_func_dlerror/ in #(
+ */no/*) :
+ make_cv_load=no ;; #(
+ *) :
+ ;;
esac
+case /$make_cv_load/$user_load/ in #(
+ */no/*) :
+ make_cv_load=no ;; #(
+ *) :
+
+$as_echo "#define MAKE_LOAD 1" >>confdefs.h
+
+ ;;
+esac
+
+# We might need -ldl
+if test "$make_cv_load" = yes; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
+$as_echo_n "checking for library containing dlopen... " >&6; }
+if ${ac_cv_search_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' dl; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_dlopen=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_dlopen+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_dlopen+:} false; then :
+
+else
+ ac_cv_search_dlopen=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
+$as_echo "$ac_cv_search_dlopen" >&6; }
+ac_res=$ac_cv_search_dlopen
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+else
+ make_cv_load=
+fi
+
+
+fi
+
+# If we want load support, we might need to link with export-dynamic.
+# See if we can figure it out. Unfortunately this is very difficult.
+# For example passing -rdynamic to the SunPRO linker gives a warning
+# but succeeds and creates a shared object, not an executable!
+if test "$make_cv_load" = yes; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking If the linker accepts -Wl,--export-dynamic" >&5
+$as_echo_n "checking If the linker accepts -Wl,--export-dynamic... " >&6; }
+ old_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int main(){}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ AM_LDFLAGS=-Wl,--export-dynamic
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking If the linker accepts -rdynamic" >&5
+$as_echo_n "checking If the linker accepts -rdynamic... " >&6; }
+ LDFLAGS="$old_LDFLAGS -rdynamic"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int main(){}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ AM_LDFLAGS=-rdynamic
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$old_LDFLAGS"
+
+fi
+
# if we have both lstat() and readlink() then we can support symlink
# timechecks.
-case "$ac_cv_func_lstat/$ac_cv_func_readlink" in
- yes/yes)
+if test "$ac_cv_func_lstat" = yes && test "$ac_cv_func_readlink" = yes; then :
$as_echo "#define MAKE_SYMLINKS 1" >>confdefs.h
-;;
-esac
+
+
+fi
# Find the SCCS commands, so we can include them in our default rules.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for location of SCCS get command" >&5
$as_echo_n "checking for location of SCCS get command... " >&6; }
-if test "${make_cv_path_sccs_get+set}" = set; then :
+if ${make_cv_path_sccs_get+:} false; then :
$as_echo_n "(cached) " >&6
else
-if test -f /usr/sccs/get; then
+ if test -f /usr/sccs/get; then :
make_cv_path_sccs_get=/usr/sccs/get
else
make_cv_path_sccs_get=get
fi
+
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $make_cv_path_sccs_get" >&5
$as_echo "$make_cv_path_sccs_get" >&6; }
@@ -9086,29 +9975,31 @@ _ACEOF
ac_clean_files="$ac_clean_files s.conftest conftoast" # Remove these later.
-if ( /usr/sccs/admin -n s.conftest || admin -n s.conftest ) >/dev/null 2>&1 &&
- test -f s.conftest; then
- # We successfully created an SCCS file.
+if (/usr/sccs/admin -n s.conftest || admin -n s.conftest) >/dev/null 2>&1 &&
+ test -f s.conftest; then :
+ # We successfully created an SCCS file.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if SCCS get command understands -G" >&5
$as_echo_n "checking if SCCS get command understands -G... " >&6; }
-if test "${make_cv_sys_get_minus_G+set}" = set; then :
+if ${make_cv_sys_get_minus_G+:} false; then :
$as_echo_n "(cached) " >&6
else
+ if $make_cv_path_sccs_get -Gconftoast s.conftest >/dev/null 2>&1 &&
+ test -f conftoast; then :
+ make_cv_sys_get_minus_G=yes
+else
+ make_cv_sys_get_minus_G=no
+fi
- if $make_cv_path_sccs_get -Gconftoast s.conftest >/dev/null 2>&1 &&
- test -f conftoast; then
- make_cv_sys_get_minus_G=yes
- else
- make_cv_sys_get_minus_G=no
- fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $make_cv_sys_get_minus_G" >&5
$as_echo "$make_cv_sys_get_minus_G" >&6; }
- case "$make_cv_sys_get_minus_G" in
- yes)
+ if test "$make_cv_sys_get_minus_G" = yes; then :
+
$as_echo "#define SCCS_GET_MINUS_G 1" >>confdefs.h
-;;
- esac
+
+
+fi
+
fi
rm -f s.conftest conftoast
@@ -9116,11 +10007,10 @@ rm -f s.conftest conftoast
# local version.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if system libc has GNU glob" >&5
$as_echo_n "checking if system libc has GNU glob... " >&6; }
-if test "${make_cv_sys_gnu_glob+set}" = set; then :
+if ${make_cv_sys_gnu_glob+:} false; then :
$as_echo_n "(cached) " >&6
else
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <features.h>
@@ -9134,25 +10024,22 @@ else
gnu glob
# endif
#endif
-
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "gnu glob" >/dev/null 2>&1; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-make_cv_sys_gnu_glob=yes
+ make_cv_sys_gnu_glob=yes
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no; using local copy" >&5
-$as_echo "no; using local copy" >&6; }
-make_cv_sys_gnu_glob=no
+ make_cv_sys_gnu_glob=no
fi
rm -f conftest*
fi
-
-if test "$make_cv_sys_gnu_glob" = no; then
- GLOBINC='-I$(srcdir)/glob'
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $make_cv_sys_gnu_glob" >&5
+$as_echo "$make_cv_sys_gnu_glob" >&6; }
+if test "$make_cv_sys_gnu_glob" = no; then :
+ GLOBINC='-I$(srcdir)/glob'
GLOBLIB=glob/libglob.a
+
fi
@@ -9187,8 +10074,8 @@ else
fi
-case "$host" in
- *-*-mingw32)
+case $host in #(
+ *-*-mingw32) :
if true; then
WINDOWSENV_TRUE=
WINDOWSENV_FALSE='#'
@@ -9204,7 +10091,9 @@ $as_echo "#define WINDOWS32 1" >>confdefs.h
$as_echo "#define HAVE_DOS_PATHS 1" >>confdefs.h
- ;;
+ ;; #(
+ *) :
+ ;;
esac
@@ -9216,8 +10105,9 @@ _ACEOF
# Include the Maintainer's Makefile section, if it's here.
MAINT_MAKEFILE=/dev/null
-if test -r "$srcdir/maintMakefile"; then
- MAINT_MAKEFILE="$srcdir/maintMakefile"
+if test -r "$srcdir/maintMakefile"; then :
+ MAINT_MAKEFILE="$srcdir/maintMakefile"
+
fi
@@ -9252,45 +10142,61 @@ SET_MAKE=
# Sanity check and inform the user of what we found
-case "$make_badcust" in
- yes) echo
- echo "WARNING: --with-customs specified but no customs.h could be found;"
- echo " disabling Customs support."
- echo ;;
-esac
+if test "x$make_badcust" = xyes; then :
-case "$with_customs" in
- ""|n|no|y|ye|yes) ;;
- *) if test -f "$with_customs/lib/libcustoms.a"; then
- :
- else
- echo
- echo "WARNING: '$with_customs/lib' does not appear to contain the"
- echo " Customs library. You must build and install Customs"
- echo " before compiling GNU make."
- echo
- fi ;;
-esac
+echo
+echo "WARNING: --with-customs specified but no customs.h could be found;"
+echo " disabling Customs support."
+echo
-case "$has_wait_nohang" in
- no) echo
- echo "WARNING: Your system has neither waitpid() nor wait3()."
- echo " Without one of these, signal handling is unreliable."
- echo " You should be aware that running GNU make with -j"
- echo " could result in erratic behavior."
- echo ;;
-esac
+fi
-case "$make_cv_job_server/$user_job_server" in
- no/yes) echo
- echo "WARNING: Make job server requires a POSIX-ish system that"
- echo " supports the pipe(), sigaction(), and either"
- echo " waitpid() or wait3() functions. Your system doesn't"
- echo " appear to provide one or more of those."
- echo " Disabling job server support."
- echo ;;
+case $with_customs in #(
+ ""|n|no|y|ye|yes) :
+ : ;; #(
+ *) :
+ if test -f "$with_customs/lib/libcustoms.a"; then :
+ :
+else
+ echo
+ echo "WARNING: '$with_customs/lib' does not appear to contain the"
+ echo " Customs library. You must build and install Customs"
+ echo " before compiling GNU make."
+ echo
+
+fi ;;
esac
+if test "x$has_wait_nohang" = xno; then :
+ echo
+ echo "WARNING: Your system has neither waitpid() nor wait3()."
+ echo " Without one of these, signal handling is unreliable."
+ echo " You should be aware that running GNU make with -j"
+ echo " could result in erratic behavior."
+ echo
+
+fi
+
+if test "x$make_cv_job_server" = xno && test "x$user_job_server" = xyes; then :
+ echo
+ echo "WARNING: Make job server requires a POSIX-ish system that"
+ echo " supports the pipe(), sigaction(), and either"
+ echo " waitpid() or wait3() functions. Your system doesn't"
+ echo " appear to provide one or more of those."
+ echo " Disabling job server support."
+ echo
+
+fi
+
+if test "x$make_cv_load" = xno && test "x$user_load" = xyes; then :
+ echo
+ echo "WARNING: 'load' support requires a POSIX-ish system that"
+ echo " supports the dlopen(), dlsym(), and dlerror() functions."
+ echo " Your system doesn't appear to provide one or more of these."
+ echo " Disabling 'load' support."
+ echo
+
+fi
# Specify what files are to be created.
ac_config_files="$ac_config_files Makefile glob/Makefile po/Makefile.in config/Makefile doc/Makefile w32/Makefile"
@@ -9362,10 +10268,21 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
- test "x$cache_file" != "x/dev/null" &&
+ if test "x$cache_file" != "x/dev/null"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
- cat confcache >$cache_file
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
@@ -9381,6 +10298,7 @@ DEFS=-DHAVE_CONFIG_H
ac_libobjs=
ac_ltlibobjs=
+U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -9404,31 +10322,35 @@ else
fi
if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
- as_fn_error "conditional \"AMDEP\" was never defined.
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
- as_fn_error "conditional \"am__fastdepCC\" was never defined.
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAVE_GUILE_TRUE}" && test -z "${HAVE_GUILE_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_GUILE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${USE_CUSTOMS_TRUE}" && test -z "${USE_CUSTOMS_FALSE}"; then
- as_fn_error "conditional \"USE_CUSTOMS\" was never defined.
+ as_fn_error $? "conditional \"USE_CUSTOMS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${USE_LOCAL_GLOB_TRUE}" && test -z "${USE_LOCAL_GLOB_FALSE}"; then
- as_fn_error "conditional \"USE_LOCAL_GLOB\" was never defined.
+ as_fn_error $? "conditional \"USE_LOCAL_GLOB\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${WINDOWSENV_TRUE}" && test -z "${WINDOWSENV_FALSE}"; then
- as_fn_error "conditional \"WINDOWSENV\" was never defined.
+ as_fn_error $? "conditional \"WINDOWSENV\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${WINDOWSENV_TRUE}" && test -z "${WINDOWSENV_FALSE}"; then
- as_fn_error "conditional \"WINDOWSENV\" was never defined.
+ as_fn_error $? "conditional \"WINDOWSENV\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-: ${CONFIG_STATUS=./config.status}
+: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
@@ -9529,6 +10451,7 @@ fi
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -9574,19 +10497,19 @@ export LANGUAGE
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-# as_fn_error ERROR [LINENO LOG_FD]
-# ---------------------------------
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with status $?, using 1 if that was 0.
+# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
- as_status=$?; test $as_status -eq 0 && as_status=1
- if test "$3"; then
- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- $as_echo "$as_me: error: $1" >&2
+ $as_echo "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
@@ -9724,16 +10647,16 @@ if (echo >conf$$.file) 2>/dev/null; then
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -p'.
+ # In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
else
- as_ln_s='cp -p'
+ as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
@@ -9782,7 +10705,7 @@ $as_echo X"$as_dir" |
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
@@ -9793,28 +10716,16 @@ else
as_mkdir_p=false
fi
-if test -x / >/dev/null 2>&1; then
- as_test_x='test -x'
-else
- if ls -dL / >/dev/null 2>&1; then
- as_ls_L_option=L
- else
- as_ls_L_option=
- fi
- as_test_x='
- eval sh -c '\''
- if test -d "$1"; then
- test -d "$1/.";
- else
- case $1 in #(
- -*)set "./$1";;
- esac;
- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
- ???[sx]*):;;*)false;;esac;fi
- '\'' sh
- '
-fi
-as_executable_p=$as_test_x
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -9835,8 +10746,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by GNU make $as_me 3.82, which was
-generated by GNU Autoconf 2.65. Invocation command line was
+This file was extended by GNU make $as_me 4.0, which was
+generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -9903,11 +10814,11 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-GNU make config.status 3.82
-configured by $0, generated by GNU Autoconf 2.65,
+GNU make config.status 4.0
+configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2009 Free Software Foundation, Inc.
+Copyright (C) 2012 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
@@ -9925,11 +10836,16 @@ ac_need_defaults=:
while test $# != 0
do
case $1 in
- --*=*)
+ --*=?*)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
ac_shift=:
;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
*)
ac_option=$1
ac_optarg=$2
@@ -9951,6 +10867,7 @@ do
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
ac_need_defaults=false;;
@@ -9963,7 +10880,7 @@ do
ac_need_defaults=false;;
--he | --h)
# Conflict between --help and --header
- as_fn_error "ambiguous option: \`$1'
+ as_fn_error $? "ambiguous option: \`$1'
Try \`$0 --help' for more information.";;
--help | --hel | -h )
$as_echo "$ac_cs_usage"; exit ;;
@@ -9972,7 +10889,7 @@ Try \`$0 --help' for more information.";;
ac_cs_silent=: ;;
# This is an error.
- -*) as_fn_error "unrecognized option: \`$1'
+ -*) as_fn_error $? "unrecognized option: \`$1'
Try \`$0 --help' for more information." ;;
*) as_fn_append ac_config_targets " $1"
@@ -9992,7 +10909,7 @@ fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
- set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
@@ -10019,7 +10936,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
# Capture the value of obsolete ALL_LINGUAS because we need it to compute
# POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
- # from automake.
+ # from automake < 1.5.
eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
# Capture the value of LINGUAS because we need it to compute CATALOGS.
LINGUAS="${LINGUAS-%UNSET%}"
@@ -10035,7 +10952,7 @@ do
case $ac_config_target in
"config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
+ "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"glob/Makefile") CONFIG_FILES="$CONFIG_FILES glob/Makefile" ;;
"po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
@@ -10043,7 +10960,7 @@ do
"doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
"w32/Makefile") CONFIG_FILES="$CONFIG_FILES w32/Makefile" ;;
- *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
done
@@ -10066,9 +10983,10 @@ fi
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
- tmp=
+ tmp= ac_tmp=
trap 'exit_status=$?
- { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
' 0
trap 'as_fn_exit 1' 1 2 13 15
}
@@ -10076,12 +10994,13 @@ $debug ||
{
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
+ test -d "$tmp"
} ||
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
-} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
@@ -10115,24 +11034,24 @@ if test "x$ac_cr" = x; then
fi
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\r'
+ ac_cs_awk_cr='\\r'
else
ac_cs_awk_cr=$ac_cr
fi
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
_ACEOF
# Create commands to substitute file output variables.
{
echo "cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1" &&
- echo 'cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&' &&
+ echo 'cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&' &&
echo "$ac_subst_files" | sed 's/.*/F["&"]="$&"/' &&
echo "_ACAWK" &&
echo "_ACEOF"
} >conf$$files.sh &&
. ./conf$$files.sh ||
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
rm -f conf$$files.sh
{
@@ -10140,18 +11059,18 @@ rm -f conf$$files.sh
echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
echo "_ACEOF"
} >conf$$subs.sh ||
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
. ./conf$$subs.sh ||
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
if test $ac_delim_n = $ac_delim_num; then
break
elif $ac_last_try; then
- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
@@ -10159,7 +11078,7 @@ done
rm -f conf$$subs.sh
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
@@ -10207,7 +11126,7 @@ t delim
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
for (key in S) S_is_set[key] = 1
FS = ""
\$ac_cs_awk_pipe_init
@@ -10245,21 +11164,29 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
- || as_fn_error "could not setup config files machinery" "$LINENO" 5
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[ ]*\):*/\1/
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
s/^[^=]*=[ ]*$//
}'
fi
@@ -10271,7 +11198,7 @@ fi # test -n "$CONFIG_FILES"
# No need to generate them if there are no CONFIG_HEADERS.
# This happens for instance with `./config.status Makefile'.
if test -n "$CONFIG_HEADERS"; then
-cat >"$tmp/defines.awk" <<\_ACAWK ||
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
BEGIN {
_ACEOF
@@ -10283,11 +11210,11 @@ _ACEOF
# handling of long lines.
ac_delim='%!_!# '
for ac_last_try in false false :; do
- ac_t=`sed -n "/$ac_delim/p" confdefs.h`
- if test -z "$ac_t"; then
+ ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_tt"; then
break
elif $ac_last_try; then
- as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
@@ -10372,7 +11299,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- as_fn_error "could not setup config headers machinery" "$LINENO" 5
+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
fi # test -n "$CONFIG_HEADERS"
@@ -10385,7 +11312,7 @@ do
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
- :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
@@ -10404,7 +11331,7 @@ do
for ac_f
do
case $ac_f in
- -) ac_f="$tmp/stdin";;
+ -) ac_f="$ac_tmp/stdin";;
*) # Look for the file first in the build tree, then in the source tree
# (if the path is not absolute). The absolute path cannot be DOS-style,
# because $ac_f cannot contain `:'.
@@ -10413,7 +11340,7 @@ do
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
- as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
@@ -10439,8 +11366,8 @@ $as_echo "$as_me: creating $ac_file" >&6;}
esac
case $ac_tag in
- *:-:* | *:-) cat >"$tmp/stdin" \
- || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
@@ -10578,26 +11505,27 @@ $ac_datarootdir_hack
"
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" |
if $ac_cs_awk_getline; then
- $AWK -f "$tmp/subs.awk"
+ $AWK -f "$ac_tmp/subs.awk"
else
- $AWK -f "$tmp/subs.awk" | $SHELL
-fi >$tmp/out \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
+ $AWK -f "$ac_tmp/subs.awk" | $SHELL
+fi \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&5
+which seems to be undefined. Please make sure it is defined" >&5
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined." >&2;}
+which seems to be undefined. Please make sure it is defined" >&2;}
- rm -f "$tmp/stdin"
+ rm -f "$ac_tmp/stdin"
case $ac_file in
- -) cat "$tmp/out" && rm -f "$tmp/out";;
- *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
esac \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
;;
:H)
#
@@ -10606,21 +11534,21 @@ which seems to be undefined. Please make sure it is defined." >&2;}
if test x"$ac_file" != x-; then
{
$as_echo "/* $configure_input */" \
- && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
- } >"$tmp/config.h" \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+ } >"$ac_tmp/config.h" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
$as_echo "$as_me: $ac_file is unchanged" >&6;}
else
rm -f "$ac_file"
- mv "$tmp/config.h" "$ac_file" \
- || as_fn_error "could not create $ac_file" "$LINENO" 5
+ mv "$ac_tmp/config.h" "$ac_file" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
fi
else
$as_echo "/* $configure_input */" \
- && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
- || as_fn_error "could not create -" "$LINENO" 5
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error $? "could not create -" "$LINENO" 5
fi
# Compute "$ac_file"'s index in $config_headers.
_am_arg="$ac_file"
@@ -10760,7 +11688,7 @@ $as_echo X"$file" |
done
}
;;
- "default-1":C)
+ "po-directories":C)
for ac_file in $CONFIG_FILES; do
# Support "outfile[:infile[:infile...]]"
case "$ac_file" in
@@ -10780,6 +11708,9 @@ $as_echo X"$file" |
/*) top_srcdir="$ac_given_srcdir" ;;
*) top_srcdir="$ac_dots$ac_given_srcdir" ;;
esac
+ # Treat a directory as a PO directory if and only if it has a
+ # POTFILES.in file. This allows packages to have multiple PO
+ # directories under different names or in different locations.
if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
rm -f "$ac_dir/POTFILES"
test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
@@ -10793,12 +11724,13 @@ $as_echo X"$file" |
if test -n "$OBSOLETE_ALL_LINGUAS"; then
test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
fi
- ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
- # Hide the ALL_LINGUAS assigment from automake.
+ ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
else
# The set of available languages was given in configure.in.
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
fi
# Compute POFILES
@@ -10879,7 +11811,7 @@ _ACEOF
ac_clean_files=$ac_clean_files_save
test $ac_write_fail = 0 ||
- as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
# configure is writing to config.log, and then calls config.status.
@@ -10900,7 +11832,7 @@ if test "$no_create" != yes; then
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit $?
+ $ac_cs_success || as_fn_exit 1
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
@@ -10910,8 +11842,9 @@ fi
# We only generate the build.sh if we have a build.sh.in; we won't have
# one before we've created a distribution.
-if test -f "$srcdir/build.sh.in"; then
- ./config.status --file build.sh
+if test -f "$srcdir/build.sh.in"; then :
+ ./config.status --file build.sh
chmod +x build.sh
+
fi
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..d73dd8c
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,519 @@
+# Process this file with autoconf to produce a configure script.
+#
+# Copyright (C) 1993-2013 Free Software Foundation, Inc.
+# This file is part of GNU Make.
+#
+# GNU Make is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 3 of the License, or (at your option) any later
+# version.
+#
+# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program. If not, see <http://www.gnu.org/licenses/>.
+
+AC_INIT([GNU make],[4.0],[bug-make@gnu.org])
+
+AC_PREREQ([2.62])
+
+# Autoconf setup
+AC_CONFIG_AUX_DIR([config])
+AC_CONFIG_SRCDIR([vpath.c])
+AC_CONFIG_HEADERS([config.h])
+
+# Automake setup
+AM_INIT_AUTOMAKE([1.11.1 silent-rules])
+
+# Checks for programs.
+AC_PROG_CC
+AC_PROG_INSTALL
+AC_PROG_RANLIB
+AC_PROG_CPP
+AC_CHECK_PROG([AR], [ar], [ar], [ar])
+# Perl is needed for the test suite (only)
+AC_CHECK_PROG([PERL], [perl], [perl], [perl])
+
+# Specialized system macros
+AC_CANONICAL_HOST
+AC_AIX
+AC_ISC_POSIX
+AC_MINIX
+
+# Enable gettext, in "external" mode.
+
+AM_GNU_GETTEXT_VERSION([0.18.1])
+AM_GNU_GETTEXT([external])
+
+# This test must come as early as possible after the compiler configuration
+# tests, because the choice of the file model can (in principle) affect
+# whether functions and headers are available, whether they work, etc.
+AC_SYS_LARGEFILE
+
+# Checks for libraries.
+AC_SEARCH_LIBS([getpwnam], [sun])
+
+# Checks for header files.
+AC_HEADER_STDC
+AC_HEADER_DIRENT
+AC_HEADER_STAT
+AC_HEADER_TIME
+AC_CHECK_HEADERS([stdlib.h locale.h unistd.h limits.h fcntl.h string.h \
+ memory.h sys/param.h sys/resource.h sys/time.h sys/timeb.h])
+
+AM_PROG_CC_C_O
+AC_C_CONST
+AC_TYPE_SIGNAL
+AC_TYPE_UID_T
+AC_TYPE_PID_T
+
+# Find some definition for uintmax_t
+
+AC_CHECK_TYPE([uintmax_t],[],
+[ uintmax_t="unsigned long"
+ AC_CHECK_TYPE([unsigned long long],[uintmax_t="unsigned long long"])
+ AC_DEFINE_UNQUOTED([uintmax_t], [$uintmax_t],
+ [Define uintmax_t if not defined in <stdint.h> or <inttypes.h>.])
+])
+
+# Find out whether our struct stat returns nanosecond resolution timestamps.
+
+AC_STRUCT_ST_MTIM_NSEC
+AC_CACHE_CHECK([whether to use high resolution file timestamps],
+ [make_cv_file_timestamp_hi_res],
+[ make_cv_file_timestamp_hi_res=no
+ AS_IF([test "$ac_cv_struct_st_mtim_nsec" != no],
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif]],
+ [[char a[0x7fffffff < (uintmax_t)-1 >> 30 ? 1 : -1];]])],
+ [make_cv_file_timestamp_hi_res=yes])
+ ])])
+AS_IF([test "$make_cv_file_timestamp_hi_res" = yes], [val=1], [val=0])
+AC_DEFINE_UNQUOTED([FILE_TIMESTAMP_HI_RES], [$val],
+ [Use high resolution file timestamps if nonzero.])
+
+AS_IF([test "$make_cv_file_timestamp_hi_res" = yes],
+[ # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
+ # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
+ AC_SEARCH_LIBS([clock_gettime], [rt posix4])
+ AS_IF([test "$ac_cv_search_clock_gettime" != no],
+ [ AC_DEFINE([HAVE_CLOCK_GETTIME], [1],
+ [Define to 1 if you have the clock_gettime function.])
+ ])
+])
+
+# Check for DOS-style pathnames.
+pds_AC_DOS_PATHS
+
+# See if we have a standard version of gettimeofday(). Since actual
+# implementations can differ, just make sure we have the most common
+# one.
+AC_CACHE_CHECK([for standard gettimeofday], [ac_cv_func_gettimeofday],
+ [ac_cv_func_gettimeofday=no
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <sys/time.h>
+ int main ()
+ {
+ struct timeval t; t.tv_sec = -1; t.tv_usec = -1;
+ exit (gettimeofday (&t, 0) != 0
+ || t.tv_sec < 0 || t.tv_usec < 0);
+ }]])],
+ [ac_cv_func_gettimeofday=yes],
+ [ac_cv_func_gettimeofday=no],
+ [ac_cv_func_gettimeofday="no (cross-compiling)"])])
+AS_IF([test "$ac_cv_func_gettimeofday" = yes],
+[ AC_DEFINE([HAVE_GETTIMEOFDAY], [1],
+ [Define to 1 if you have a standard gettimeofday function])
+])
+
+AC_CHECK_FUNCS([strdup strndup mkstemp mktemp fdopen fileno \
+ dup dup2 getcwd realpath sigsetmask sigaction \
+ getgroups seteuid setegid setlinebuf setreuid setregid \
+ getrlimit setrlimit setvbuf pipe strerror strsignal \
+ lstat readlink atexit])
+
+# We need to check declarations, not just existence, because on Tru64 this
+# function is not declared without special flags, which themselves cause
+# other problems. We'll just use our own.
+AC_CHECK_DECLS([bsd_signal], [], [], [[#define _GNU_SOURCE 1
+#include <signal.h>]])
+
+AC_FUNC_SETVBUF_REVERSED
+
+# Rumor has it that strcasecmp lives in -lresolv on some odd systems.
+# It doesn't hurt much to use our own if we can't find it so I don't
+# make the effort here.
+AC_CHECK_FUNCS([strcasecmp strncasecmp strcmpi strncmpi stricmp strnicmp])
+
+# strcoll() is used by the GNU glob library
+AC_FUNC_STRCOLL
+
+AC_FUNC_ALLOCA
+AC_FUNC_CLOSEDIR_VOID
+
+# See if the user wants to add (or not) GNU Guile support
+PKG_PROG_PKG_CONFIG
+AC_ARG_WITH([guile], [AS_HELP_STRING([--with-guile],
+ [Support GNU Guile for embedded scripting])])
+
+# For some strange reason, at least on Ubuntu, each version of Guile
+# comes with it's own PC file so we have to specify them as individual
+# packages. Ugh.
+AS_IF([test "x$with_guile" != xno],
+[ PKG_CHECK_MODULES([GUILE], [guile-2.0], [have_guile=yes],
+ [PKG_CHECK_MODULES([GUILE], [guile-1.8], [have_guile=yes],
+ [have_guile=no])])
+])
+
+AS_IF([test "$have_guile" = yes],
+ [AC_DEFINE([HAVE_GUILE], [1], [Embed GNU Guile support])])
+
+AM_CONDITIONAL([HAVE_GUILE], [test "$have_guile" = yes])
+
+AC_FUNC_GETLOADAVG
+
+# AC_FUNC_GETLOADAVG is documented to set the NLIST_STRUCT value, but it
+# doesn't. So, we will.
+
+AS_IF([test "$ac_cv_header_nlist_h" = yes],
+[ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <nlist.h>]],
+ [[struct nlist nl;
+ nl.n_name = "string";
+ return 0;]])],
+ [make_cv_nlist_struct=yes],
+ [make_cv_nlist_struct=no])
+ AS_IF([test "$make_cv_nlist_struct" = yes],
+ [ AC_DEFINE([NLIST_STRUCT], [1],
+ [Define to 1 if struct nlist.n_name is a pointer rather than an array.])
+ ])
+])
+
+AC_CHECK_DECLS([sys_siglist, _sys_siglist, __sys_siglist], , ,
+ [AC_INCLUDES_DEFAULT
+#include <signal.h>
+/* NetBSD declares sys_siglist in unistd.h. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+])
+
+
+# Check out the wait reality.
+AC_CHECK_HEADERS([sys/wait.h],[],[],[[#include <sys/types.h>]])
+AC_CHECK_FUNCS([waitpid wait3])
+AC_CACHE_CHECK([for union wait], [make_cv_union_wait],
+[ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#include <sys/wait.h>]],
+ [[union wait status; int pid; pid = wait (&status);
+#ifdef WEXITSTATUS
+/* Some POSIXoid systems have both the new-style macros and the old
+ union wait type, and they do not work together. If union wait
+ conflicts with WEXITSTATUS et al, we don't want to use it at all. */
+ if (WEXITSTATUS (status) != 0) pid = -1;
+#ifdef WTERMSIG
+ /* If we have WEXITSTATUS and WTERMSIG, just use them on ints. */
+ -- blow chunks here --
+#endif
+#endif
+#ifdef HAVE_WAITPID
+ /* Make sure union wait works with waitpid. */
+ pid = waitpid (-1, &status, 0);
+#endif
+ ]])],
+ [make_cv_union_wait=yes],
+ [make_cv_union_wait=no])
+])
+AS_IF([test "$make_cv_union_wait" = yes],
+[ AC_DEFINE([HAVE_UNION_WAIT], [1],
+ [Define to 1 if you have the 'union wait' type in <sys/wait.h>.])
+])
+
+
+# If we're building on Windows/DOS/OS/2, add some support for DOS drive specs.
+AS_IF([test "$PATH_SEPARATOR" = ';'],
+[ AC_DEFINE([HAVE_DOS_PATHS], [1],
+ [Define to 1 if your system requires backslashes or drive specs in pathnames.])
+])
+
+# See if the user wants to use pmake's "customs" distributed build capability
+AC_SUBST([REMOTE]) REMOTE=stub
+use_customs=false
+AC_ARG_WITH([customs],
+[ AC_HELP_STRING([--with-customs=DIR],
+ [enable remote jobs via Customs--see README.customs])],
+[ AS_CASE([$withval], [n|no], [:],
+ [make_cppflags="$CPPFLAGS"
+ AS_CASE([$withval],
+ [y|ye|yes], [:],
+ [CPPFLAGS="$CPPFLAGS -I$with_customs/include/customs"
+ make_ldflags="$LDFLAGS -L$with_customs/lib"])
+ CF_NETLIBS
+ AC_CHECK_HEADER([customs.h],
+ [use_customs=true
+ REMOTE=cstms
+ LIBS="$LIBS -lcustoms" LDFLAGS="$make_ldflags"],
+ [with_customs=no
+ CPPFLAGS="$make_cppflags" make_badcust=yes])
+ ])
+])
+
+# Tell automake about this, so it can include the right .c files.
+AM_CONDITIONAL([USE_CUSTOMS], [test "$use_customs" = true])
+
+# See if the user asked to handle case insensitive file systems.
+AH_TEMPLATE([HAVE_CASE_INSENSITIVE_FS], [Use case insensitive file names])
+AC_ARG_ENABLE([case-insensitive-file-system],
+ AC_HELP_STRING([--enable-case-insensitive-file-system],
+ [assume file systems are case insensitive]),
+ [AS_IF([test "$enableval" = yes], [AC_DEFINE([HAVE_CASE_INSENSITIVE_FS])])])
+
+# See if we can handle the job server feature, and if the user wants it.
+AC_ARG_ENABLE([job-server],
+ AC_HELP_STRING([--disable-job-server],
+ [disallow recursive make communication during -jN]),
+ [make_cv_job_server="$enableval" user_job_server="$enableval"],
+ [make_cv_job_server="yes"])
+
+AS_IF([test "$ac_cv_func_waitpid" = no && test "$ac_cv_func_wait3" = no],
+ [has_wait_nohang=no],
+ [has_wait_nohang=yes])
+
+AC_CACHE_CHECK([for SA_RESTART], [make_cv_sa_restart], [
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <signal.h>]],
+ [[return SA_RESTART;]])],
+ [make_cv_sa_restart=yes],
+ [make_cv_sa_restart=no])])
+
+AS_IF([test "$make_cv_sa_restart" != no],
+[ AC_DEFINE([HAVE_SA_RESTART], [1],
+ [Define to 1 if <signal.h> defines the SA_RESTART constant.])
+])
+
+# Only allow jobserver on systems that support it
+AS_CASE([/$ac_cv_func_pipe/$ac_cv_func_sigaction/$make_cv_sa_restart/$has_wait_nohang/],
+ [*/no/*], [make_cv_job_server=no])
+
+# Also supported on OS2 and MinGW
+AS_CASE([$host_os], [os2*|mingw*], [make_cv_job_server=yes])
+
+# If we support it and the user didn't disable it, build with jobserver
+AS_CASE([/$make_cv_job_server/$user_job_server/],
+ [*/no/*], [: no jobserver],
+ [AC_DEFINE(MAKE_JOBSERVER, 1,
+ [Define to 1 to enable job server support in GNU make.])
+ ])
+
+# If dl*() functions are supported we can enable the load operation
+AC_CHECK_DECLS([dlopen, dlsym, dlerror], [], [],
+ [[#include <dlfcn.h>]])
+
+AC_ARG_ENABLE([load],
+ AC_HELP_STRING([--disable-load],
+ [disable support for the 'load' operation]),
+ [make_cv_load="$enableval" user_load="$enableval"],
+ [make_cv_load="yes"])
+
+AS_CASE([/$ac_cv_func_dlopen/$ac_cv_func_dlsym/$ac_cv_func_dlerror/],
+ [*/no/*], [make_cv_load=no])
+
+AS_CASE([/$make_cv_load/$user_load/],
+ [*/no/*], [make_cv_load=no],
+ [AC_DEFINE(MAKE_LOAD, 1,
+ [Define to 1 to enable 'load' support in GNU make.])
+ ])
+
+# We might need -ldl
+AS_IF([test "$make_cv_load" = yes], [
+ AC_SEARCH_LIBS([dlopen], [dl], [], [make_cv_load=])
+ ])
+
+# If we want load support, we might need to link with export-dynamic.
+# See if we can figure it out. Unfortunately this is very difficult.
+# For example passing -rdynamic to the SunPRO linker gives a warning
+# but succeeds and creates a shared object, not an executable!
+AS_IF([test "$make_cv_load" = yes], [
+ AC_MSG_CHECKING([If the linker accepts -Wl,--export-dynamic])
+ old_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+ AC_LINK_IFELSE([AC_LANG_SOURCE([int main(){}])],
+ [AC_MSG_RESULT([yes])
+ AC_SUBST([AM_LDFLAGS], [-Wl,--export-dynamic])],
+ [AC_MSG_RESULT([no])
+ AC_MSG_CHECKING([If the linker accepts -rdynamic])
+ LDFLAGS="$old_LDFLAGS -rdynamic"
+ AC_LINK_IFELSE([AC_LANG_SOURCE([int main(){}])],
+ [AC_MSG_RESULT([yes])
+ AC_SUBST([AM_LDFLAGS], [-rdynamic])],
+ [AC_MSG_RESULT([no])])
+ ])
+ LDFLAGS="$old_LDFLAGS"
+])
+
+# if we have both lstat() and readlink() then we can support symlink
+# timechecks.
+AS_IF([test "$ac_cv_func_lstat" = yes && test "$ac_cv_func_readlink" = yes],
+ [ AC_DEFINE([MAKE_SYMLINKS], [1],
+ [Define to 1 to enable symbolic link timestamp checking.])
+])
+
+# Find the SCCS commands, so we can include them in our default rules.
+
+AC_CACHE_CHECK([for location of SCCS get command], [make_cv_path_sccs_get], [
+ AS_IF([test -f /usr/sccs/get],
+ [make_cv_path_sccs_get=/usr/sccs/get],
+ [make_cv_path_sccs_get=get])
+])
+AC_DEFINE_UNQUOTED([SCCS_GET], ["$make_cv_path_sccs_get"],
+ [Define to the name of the SCCS 'get' command.])
+
+ac_clean_files="$ac_clean_files s.conftest conftoast" # Remove these later.
+AS_IF([(/usr/sccs/admin -n s.conftest || admin -n s.conftest) >/dev/null 2>&1 &&
+ test -f s.conftest],
+[ # We successfully created an SCCS file.
+ AC_CACHE_CHECK([if SCCS get command understands -G], [make_cv_sys_get_minus_G],
+ [AS_IF([$make_cv_path_sccs_get -Gconftoast s.conftest >/dev/null 2>&1 &&
+ test -f conftoast],
+ [make_cv_sys_get_minus_G=yes],
+ [make_cv_sys_get_minus_G=no])
+ ])
+ AS_IF([test "$make_cv_sys_get_minus_G" = yes],
+ [AC_DEFINE([SCCS_GET_MINUS_G], [1],
+ [Define to 1 if the SCCS 'get' command understands the '-G<file>' option.])
+ ])
+])
+rm -f s.conftest conftoast
+
+# Check the system to see if it provides GNU glob. If not, use our
+# local version.
+AC_CACHE_CHECK([if system libc has GNU glob], [make_cv_sys_gnu_glob],
+[ AC_EGREP_CPP([gnu glob],[
+#include <features.h>
+#include <glob.h>
+#include <fnmatch.h>
+
+#define GLOB_INTERFACE_VERSION 1
+#if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1
+# include <gnu-versions.h>
+# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION
+ gnu glob
+# endif
+#endif],
+ [make_cv_sys_gnu_glob=yes],
+ [make_cv_sys_gnu_glob=no])])
+AS_IF([test "$make_cv_sys_gnu_glob" = no],
+[ GLOBINC='-I$(srcdir)/glob'
+ GLOBLIB=glob/libglob.a
+])
+AC_SUBST([GLOBINC])
+AC_SUBST([GLOBLIB])
+
+# Tell automake about this, so it can build the right .c files.
+AM_CONDITIONAL([USE_LOCAL_GLOB], [test "$make_cv_sys_gnu_glob" = no])
+
+# Let the makefile know what our build host is
+
+AC_DEFINE_UNQUOTED([MAKE_HOST],["$host"],[Build host information.])
+MAKE_HOST="$host"
+AC_SUBST([MAKE_HOST])
+
+w32_target_env=no
+AM_CONDITIONAL([WINDOWSENV], [false])
+
+AS_CASE([$host],
+ [*-*-mingw32],
+ [AM_CONDITIONAL([WINDOWSENV], [true])
+ w32_target_env=yes
+ AC_DEFINE([WINDOWS32], [1], [Use platform specific coding])
+ AC_DEFINE([HAVE_DOS_PATHS], [1], [Use platform specific coding])
+ ])
+
+AC_DEFINE_UNQUOTED([PATH_SEPARATOR_CHAR],['$PATH_SEPARATOR'],
+ [Define to the character that separates directories in PATH.])
+
+# Include the Maintainer's Makefile section, if it's here.
+
+MAINT_MAKEFILE=/dev/null
+AS_IF([test -r "$srcdir/maintMakefile"],
+[ MAINT_MAKEFILE="$srcdir/maintMakefile"
+])
+AC_SUBST_FILE([MAINT_MAKEFILE])
+
+# Allow building with dmalloc
+AM_WITH_DMALLOC
+
+# Forcibly disable SET_MAKE. If it's set it breaks things like the test
+# scripts, etc.
+SET_MAKE=
+
+# Sanity check and inform the user of what we found
+
+AS_IF([test "x$make_badcust" = xyes], [
+echo
+echo "WARNING: --with-customs specified but no customs.h could be found;"
+echo " disabling Customs support."
+echo
+])
+
+AS_CASE([$with_customs],
+[""|n|no|y|ye|yes], [:],
+[AS_IF([test -f "$with_customs/lib/libcustoms.a"], [:],
+[ echo
+ echo "WARNING: '$with_customs/lib' does not appear to contain the"
+ echo " Customs library. You must build and install Customs"
+ echo " before compiling GNU make."
+ echo
+])])
+
+AS_IF([test "x$has_wait_nohang" = xno],
+[ echo
+ echo "WARNING: Your system has neither waitpid() nor wait3()."
+ echo " Without one of these, signal handling is unreliable."
+ echo " You should be aware that running GNU make with -j"
+ echo " could result in erratic behavior."
+ echo
+])
+
+AS_IF([test "x$make_cv_job_server" = xno && test "x$user_job_server" = xyes],
+[ echo
+ echo "WARNING: Make job server requires a POSIX-ish system that"
+ echo " supports the pipe(), sigaction(), and either"
+ echo " waitpid() or wait3() functions. Your system doesn't"
+ echo " appear to provide one or more of those."
+ echo " Disabling job server support."
+ echo
+])
+
+AS_IF([test "x$make_cv_load" = xno && test "x$user_load" = xyes],
+[ echo
+ echo "WARNING: 'load' support requires a POSIX-ish system that"
+ echo " supports the dlopen(), dlsym(), and dlerror() functions."
+ echo " Your system doesn't appear to provide one or more of these."
+ echo " Disabling 'load' support."
+ echo
+])
+
+# Specify what files are to be created.
+AC_CONFIG_FILES([Makefile glob/Makefile po/Makefile.in config/Makefile \
+ doc/Makefile w32/Makefile])
+
+# OK, do it!
+
+AC_OUTPUT
+
+# We only generate the build.sh if we have a build.sh.in; we won't have
+# one before we've created a distribution.
+AS_IF([test -f "$srcdir/build.sh.in"],
+[ ./config.status --file build.sh
+ chmod +x build.sh
+])
+
+dnl Local Variables:
+dnl comment-start: "dnl "
+dnl comment-end: ""
+dnl comment-start-skip: "\\bdnl\\b\\s *"
+dnl compile-command: "make configure config.h.in"
+dnl End:
diff --git a/configure.bat b/configure.bat
index c7b4591..aba3a3b 100644
--- a/configure.bat
+++ b/configure.bat
@@ -1,6 +1,5 @@
@echo off
-rem Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-rem 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+rem Copyright (C) 1994-2013 Free Software Foundation, Inc.
rem This file is part of GNU Make.
rem
rem GNU Make is free software; you can redistribute it and/or modify it under
diff --git a/configure.in b/configure.in
deleted file mode 100644
index 0b03617..0000000
--- a/configure.in
+++ /dev/null
@@ -1,478 +0,0 @@
-# Process this file with autoconf to produce a configure script.
-#
-# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
-# This file is part of GNU Make.
-#
-# GNU Make is free software; you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 3 of the License, or (at your option) any later
-# version.
-#
-# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-# details.
-#
-# You should have received a copy of the GNU General Public License along with
-# this program. If not, see <http://www.gnu.org/licenses/>.
-
-AC_INIT([GNU make],[3.82],[bug-make@gnu.org])
-
-AC_PREREQ(2.59)
-AC_REVISION([[$Id: configure.in,v 1.156 2010/07/28 05:39:50 psmith Exp $]])
-
-# Autoconf setup
-AC_CONFIG_AUX_DIR(config)
-AC_CONFIG_SRCDIR(vpath.c)
-AC_CONFIG_HEADERS(config.h)
-
-# Automake setup
-AM_INIT_AUTOMAKE([1.9])
-
-# Checks for programs.
-AC_PROG_CC
-AC_PROG_INSTALL
-AC_PROG_RANLIB
-AC_PROG_CPP
-AC_CHECK_PROG(AR, ar, ar, ar)
-# Perl is needed for the test suite (only)
-AC_CHECK_PROG(PERL, perl, perl, perl)
-
-# Specialized system macros
-AC_CANONICAL_HOST
-AC_AIX
-AC_ISC_POSIX
-AC_MINIX
-
-# Enable gettext, in "external" mode.
-
-AM_GNU_GETTEXT_VERSION(0.14.1)
-AM_GNU_GETTEXT([external])
-
-# This test must come as early as possible after the compiler configuration
-# tests, because the choice of the file model can (in principle) affect
-# whether functions and headers are available, whether they work, etc.
-AC_SYS_LARGEFILE
-
-# Checks for libraries.
-AC_SEARCH_LIBS(getpwnam, [sun])
-
-# Checks for header files.
-AC_HEADER_STDC
-AC_HEADER_DIRENT
-AC_HEADER_STAT
-AC_HEADER_TIME
-AC_CHECK_HEADERS(stdlib.h locale.h unistd.h limits.h fcntl.h string.h \
- memory.h sys/param.h sys/resource.h sys/time.h sys/timeb.h)
-
-# Set a flag if we have an ANSI C compiler
-if test "$ac_cv_prog_cc_stdc" != no; then
- AC_DEFINE(HAVE_ANSI_COMPILER, 1,
- [Define to 1 if your compiler conforms to the ANSI C standard.])
-fi
-
-
-# Determine what kind of variadic function calls we support
-AC_CHECK_HEADERS(stdarg.h varargs.h, break)
-
-AM_PROG_CC_C_O
-AC_C_CONST
-AC_TYPE_SIGNAL
-AC_TYPE_UID_T
-AC_TYPE_PID_T
-
-# Find some definition for uintmax_t
-
-AC_CHECK_TYPE(uintmax_t,,[
- uintmax_t="unsigned long"
- AC_CHECK_TYPE(unsigned long long,[uintmax_t="unsigned long long"])
- AC_DEFINE_UNQUOTED(uintmax_t,$uintmax_t,
- [Define uintmax_t if not defined in <stdint.h> or <inttypes.h>.])])
-
-# Find out whether our struct stat returns nanosecond resolution timestamps.
-
-AC_STRUCT_ST_MTIM_NSEC
-AC_MSG_CHECKING([whether to use high resolution file timestamps])
-AC_CACHE_VAL(make_cv_file_timestamp_hi_res, [
- make_cv_file_timestamp_hi_res=no
- if test "$ac_cv_struct_st_mtim_nsec" != no; then
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-# if HAVE_INTTYPES_H
-# include <inttypes.h>
-# endif]],
- [[char a[0x7fffffff < (uintmax_t)-1 >> 30 ? 1 : -1];]])],
- [make_cv_file_timestamp_hi_res=yes],
- [])
- fi])
-AC_MSG_RESULT($make_cv_file_timestamp_hi_res)
-if test "$make_cv_file_timestamp_hi_res" = yes; then
- val=1
-else
- val=0
-fi
-AC_DEFINE_UNQUOTED(FILE_TIMESTAMP_HI_RES, $val,
- [Use high resolution file timestamps if nonzero.])
-
-if test "$make_cv_file_timestamp_hi_res" = yes; then
- # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
- # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
- AC_SEARCH_LIBS(clock_gettime, [rt posix4])
- if test "$ac_cv_search_clock_gettime" != no; then
- AC_DEFINE(HAVE_CLOCK_GETTIME, 1,
- [Define to 1 if you have the clock_gettime function.])
- fi
-fi
-
-# Check for DOS-style pathnames.
-pds_AC_DOS_PATHS
-
-# See if we have a standard version of gettimeofday(). Since actual
-# implementations can differ, just make sure we have the most common
-# one.
-AC_CACHE_CHECK([for standard gettimeofday], ac_cv_func_gettimeofday,
- [ac_cv_func_gettimeofday=no
- AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <sys/time.h>
- int main ()
- {
- struct timeval t; t.tv_sec = -1; t.tv_usec = -1;
- exit (gettimeofday (&t, 0) != 0
- || t.tv_sec < 0 || t.tv_usec < 0);
- }]])],
- [ac_cv_func_gettimeofday=yes],
- [ac_cv_func_gettimeofday=no],
- [ac_cv_func_gettimeofday="no (cross-compiling)"])])
-if test "$ac_cv_func_gettimeofday" = yes; then
- AC_DEFINE(HAVE_GETTIMEOFDAY, 1,
- [Define to 1 if you have a standard gettimeofday function])
-fi
-
-AC_CHECK_FUNCS( strdup strndup mkstemp mktemp fdopen fileno \
- dup2 getcwd realpath sigsetmask sigaction \
- getgroups seteuid setegid setlinebuf setreuid setregid \
- getrlimit setrlimit setvbuf pipe strerror strsignal \
- lstat readlink atexit)
-
-# We need to check declarations, not just existence, because on Tru64 this
-# function is not declared without special flags, which themselves cause
-# other problems. We'll just use our own.
-AC_CHECK_DECLS([bsd_signal], [], [], [[#include <signal.h>]])
-
-AC_FUNC_SETVBUF_REVERSED
-
-# Rumor has it that strcasecmp lives in -lresolv on some odd systems.
-# It doesn't hurt much to use our own if we can't find it so I don't
-# make the effort here.
-AC_CHECK_FUNCS(strcasecmp strncasecmp strcmpi strncmpi stricmp strnicmp)
-
-# strcoll() is used by the GNU glob library
-AC_FUNC_STRCOLL
-
-AC_FUNC_ALLOCA
-AC_FUNC_FORK([])
-AC_FUNC_VPRINTF
-AC_FUNC_CLOSEDIR_VOID
-
-AC_FUNC_GETLOADAVG
-
-# AC_FUNC_GETLOADAVG is documented to set the NLIST_STRUCT value, but it
-# doesn't. So, we will.
-
-if test "$ac_cv_header_nlist_h" = yes; then
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <nlist.h>]],
- [[struct nlist nl;
- nl.n_name = "string";
- return 0;]])],
- [make_cv_nlist_struct=yes],
- [make_cv_nlist_struct=no])
- if test "$make_cv_nlist_struct" = yes; then
- AC_DEFINE(NLIST_STRUCT, 1,
- [Define to 1 if struct nlist.n_name is a pointer rather than an array.])
- fi
-fi
-
-AC_CHECK_DECLS([sys_siglist, _sys_siglist, __sys_siglist], , ,
- [AC_INCLUDES_DEFAULT
-#include <signal.h>
-/* NetBSD declares sys_siglist in unistd.h. */
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-])
-
-
-# Check out the wait reality.
-AC_CHECK_HEADERS(sys/wait.h,,,[[#include <sys/types.h>]])
-AC_CHECK_FUNCS(waitpid wait3)
-AC_MSG_CHECKING(for union wait)
-AC_CACHE_VAL(make_cv_union_wait, [dnl
- AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
-#include <sys/wait.h>]],
- [[union wait status; int pid; pid = wait (&status);
-#ifdef WEXITSTATUS
-/* Some POSIXoid systems have both the new-style macros and the old
- union wait type, and they do not work together. If union wait
- conflicts with WEXITSTATUS et al, we don't want to use it at all. */
- if (WEXITSTATUS (status) != 0) pid = -1;
-#ifdef WTERMSIG
- /* If we have WEXITSTATUS and WTERMSIG, just use them on ints. */
- -- blow chunks here --
-#endif
-#endif
-#ifdef HAVE_WAITPID
- /* Make sure union wait works with waitpid. */
- pid = waitpid (-1, &status, 0);
-#endif
- ]])],
- [make_cv_union_wait=yes],
- [make_cv_union_wait=no])])
-if test "$make_cv_union_wait" = yes; then
- AC_DEFINE(HAVE_UNION_WAIT, 1,
- [Define to 1 if you have the \`union wait' type in <sys/wait.h>.])
-fi
-AC_MSG_RESULT($make_cv_union_wait)
-
-
-# If we're building on Windows/DOS/OS/2, add some support for DOS drive specs.
-if test "$PATH_SEPARATOR" = ';'; then
- AC_DEFINE(HAVE_DOS_PATHS, 1,
- [Define to 1 if your system requires backslashes or drive specs in pathnames.])
-fi
-
-
-# See if the user wants to use pmake's "customs" distributed build capability
-
-AC_SUBST(REMOTE) REMOTE=stub
-use_customs=false
-AC_ARG_WITH(customs,
- AC_HELP_STRING([--with-customs=DIR],
- [enable remote jobs via Customs--see README.customs]),
- [case $withval in
- n|no) : ;;
- *) make_cppflags="$CPPFLAGS"
- case $withval in
- y|ye|yes) : ;;
- *) CPPFLAGS="$CPPFLAGS -I$with_customs/include/customs"
- make_ldflags="$LDFLAGS -L$with_customs/lib" ;;
- esac
- CF_NETLIBS
- AC_CHECK_HEADER(customs.h,
- [use_customs=true
- REMOTE=cstms
- LIBS="$LIBS -lcustoms" LDFLAGS="$make_ldflags"],
- [with_customs=no
- CPPFLAGS="$make_cppflags" make_badcust=yes])
- ;;
- esac])
-# Tell automake about this, so it can include the right .c files.
-AM_CONDITIONAL(USE_CUSTOMS, test "$use_customs" = true)
-
-# See if the user asked to handle case insensitive file systems.
-
-AH_TEMPLATE(HAVE_CASE_INSENSITIVE_FS, [Use case insensitive file names])
-AC_ARG_ENABLE(case-insensitive-file-system,
- AC_HELP_STRING([--enable-case-insensitive-file-system],
- [assume file systems are case insensitive]),
- [case $enableval in
- yes) AC_DEFINE(HAVE_CASE_INSENSITIVE_FS) ;;
- esac])
-
-# See if we can handle the job server feature, and if the user wants it.
-
-AC_ARG_ENABLE(job-server,
- AC_HELP_STRING([--disable-job-server],
- [disallow recursive make communication during -jN]),
- [make_cv_job_server="$enableval" user_job_server="$enableval"],
- [make_cv_job_server="yes"])
-
-has_wait_nohang=yes
-case "$ac_cv_func_waitpid/$ac_cv_func_wait3" in
- no/no) has_wait_nohang=no ;;
-esac
-
-AC_CACHE_CHECK(for SA_RESTART, make_cv_sa_restart, [
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <signal.h>]],
- [[return SA_RESTART;]])],
- [make_cv_sa_restart=yes],
- [make_cv_sa_restart=no])])
-
-if test "$make_cv_sa_restart" != no; then
- AC_DEFINE(HAVE_SA_RESTART, 1,
- [Define to 1 if <signal.h> defines the SA_RESTART constant.])
-fi
-
-# enable make_cv_sa_restart for OS/2 so that the jobserver will be enabled,
-# but do it after HAVE_SA_RESTART has been defined.
-case "$host_os" in
- os2*) make_cv_sa_restart=yes ;;
-esac
-
-case "$ac_cv_func_pipe/$ac_cv_func_sigaction/$make_cv_sa_restart/$has_wait_nohang/$make_cv_job_server" in
- yes/yes/yes/yes/yes)
- AC_DEFINE(MAKE_JOBSERVER, 1,
- [Define to 1 to enable job server support in GNU make.]);;
-esac
-
-# if we have both lstat() and readlink() then we can support symlink
-# timechecks.
-case "$ac_cv_func_lstat/$ac_cv_func_readlink" in
- yes/yes)
- AC_DEFINE(MAKE_SYMLINKS, 1,
- [Define to 1 to enable symbolic link timestamp checking.]);;
-esac
-
-# Find the SCCS commands, so we can include them in our default rules.
-
-AC_CACHE_CHECK(for location of SCCS get command, make_cv_path_sccs_get, [
-if test -f /usr/sccs/get; then
- make_cv_path_sccs_get=/usr/sccs/get
-else
- make_cv_path_sccs_get=get
-fi])
-AC_DEFINE_UNQUOTED(SCCS_GET, ["$make_cv_path_sccs_get"],
- [Define to the name of the SCCS 'get' command.])
-
-ac_clean_files="$ac_clean_files s.conftest conftoast" # Remove these later.
-if ( /usr/sccs/admin -n s.conftest || admin -n s.conftest ) >/dev/null 2>&1 &&
- test -f s.conftest; then
- # We successfully created an SCCS file.
- AC_CACHE_CHECK(if SCCS get command understands -G, make_cv_sys_get_minus_G, [
- if $make_cv_path_sccs_get -Gconftoast s.conftest >/dev/null 2>&1 &&
- test -f conftoast; then
- make_cv_sys_get_minus_G=yes
- else
- make_cv_sys_get_minus_G=no
- fi])
- case "$make_cv_sys_get_minus_G" in
- yes) AC_DEFINE(SCCS_GET_MINUS_G, 1,
- [Define to 1 if the SCCS 'get' command understands the '-G<file>' option.]);;
- esac
-fi
-rm -f s.conftest conftoast
-
-# Check the system to see if it provides GNU glob. If not, use our
-# local version.
-AC_MSG_CHECKING(if system libc has GNU glob)
-AC_CACHE_VAL(make_cv_sys_gnu_glob, [
- AC_EGREP_CPP(gnu glob,[
-#include <features.h>
-#include <glob.h>
-#include <fnmatch.h>
-
-#define GLOB_INTERFACE_VERSION 1
-#if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1
-# include <gnu-versions.h>
-# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION
- gnu glob
-# endif
-#endif
- ], [AC_MSG_RESULT(yes)
-make_cv_sys_gnu_glob=yes], [AC_MSG_RESULT([no; using local copy])
-make_cv_sys_gnu_glob=no])])
-if test "$make_cv_sys_gnu_glob" = no; then
- GLOBINC='-I$(srcdir)/glob'
- GLOBLIB=glob/libglob.a
-fi
-AC_SUBST(GLOBINC)
-AC_SUBST(GLOBLIB)
-
-# Tell automake about this, so it can build the right .c files.
-AM_CONDITIONAL(USE_LOCAL_GLOB, test "$make_cv_sys_gnu_glob" = no)
-
-# Let the makefile know what our build host is
-
-AC_DEFINE_UNQUOTED(MAKE_HOST,"$host",[Build host information.])
-MAKE_HOST="$host"
-AC_SUBST(MAKE_HOST)
-
-w32_target_env=no
-AM_CONDITIONAL([WINDOWSENV], false)
-
-case "$host" in
- *-*-mingw32)
- AM_CONDITIONAL(WINDOWSENV, true)
- w32_target_env=yes
- AC_DEFINE([WINDOWS32], [1], [Use platform specific coding])
- AC_DEFINE([HAVE_DOS_PATHS], [1], [Use platform specific coding])
- ;;
-esac
-
-AC_DEFINE_UNQUOTED(PATH_SEPARATOR_CHAR,'$PATH_SEPARATOR',[Define to the character that separates directories in PATH.])
-
-# Include the Maintainer's Makefile section, if it's here.
-
-MAINT_MAKEFILE=/dev/null
-if test -r "$srcdir/maintMakefile"; then
- MAINT_MAKEFILE="$srcdir/maintMakefile"
-fi
-AC_SUBST_FILE(MAINT_MAKEFILE)
-
-# Allow building with dmalloc
-AM_WITH_DMALLOC
-
-# Forcibly disable SET_MAKE. If it's set it breaks things like the test
-# scripts, etc.
-SET_MAKE=
-
-# Sanity check and inform the user of what we found
-
-case "$make_badcust" in
- yes) echo
- echo "WARNING: --with-customs specified but no customs.h could be found;"
- echo " disabling Customs support."
- echo ;;
-esac
-
-case "$with_customs" in
- ""|n|no|y|ye|yes) ;;
- *) if test -f "$with_customs/lib/libcustoms.a"; then
- :
- else
- echo
- echo "WARNING: '$with_customs/lib' does not appear to contain the"
- echo " Customs library. You must build and install Customs"
- echo " before compiling GNU make."
- echo
- fi ;;
-esac
-
-case "$has_wait_nohang" in
- no) echo
- echo "WARNING: Your system has neither waitpid() nor wait3()."
- echo " Without one of these, signal handling is unreliable."
- echo " You should be aware that running GNU make with -j"
- echo " could result in erratic behavior."
- echo ;;
-esac
-
-case "$make_cv_job_server/$user_job_server" in
- no/yes) echo
- echo "WARNING: Make job server requires a POSIX-ish system that"
- echo " supports the pipe(), sigaction(), and either"
- echo " waitpid() or wait3() functions. Your system doesn't"
- echo " appear to provide one or more of those."
- echo " Disabling job server support."
- echo ;;
-esac
-
-
-# Specify what files are to be created.
-AC_CONFIG_FILES(Makefile glob/Makefile po/Makefile.in config/Makefile doc/Makefile w32/Makefile)
-
-# OK, do it!
-
-AC_OUTPUT
-
-# We only generate the build.sh if we have a build.sh.in; we won't have
-# one before we've created a distribution.
-if test -f "$srcdir/build.sh.in"; then
- ./config.status --file build.sh
- chmod +x build.sh
-fi
-
-dnl Local Variables:
-dnl comment-start: "dnl "
-dnl comment-end: ""
-dnl comment-start-skip: "\\bdnl\\b\\s *"
-dnl compile-command: "make configure config.h.in"
-dnl End:
diff --git a/debug.h b/debug.h
index 3d20c87..9f630d6 100644
--- a/debug.h
+++ b/debug.h
@@ -1,6 +1,5 @@
/* Debugging macros and interface.
-Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1999-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/default.c b/default.c
index 4d6d984..47b7dd3 100644
--- a/default.c
+++ b/default.c
@@ -1,7 +1,5 @@
/* Data base of default implicit rules for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,7 +14,10 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
+
+#include <assert.h>
+
#include "filedef.h"
#include "variable.h"
#include "rule.h"
@@ -32,8 +33,8 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* This is the default list of suffixes for suffix rules.
- `.s' must come last, so that a `.o' file will be made from
- a `.c' or `.p' or ... file rather than from a .s file. */
+ '.s' must come last, so that a '.o' file will be made from
+ a '.c' or '.p' or ... file rather than from a .s file. */
static char default_suffixes[]
#ifdef VMS
@@ -53,23 +54,23 @@ static char default_suffixes[]
static struct pspec default_pattern_rules[] =
{
{ "(%)", "%",
- "$(AR) $(ARFLAGS) $@ $<" },
+ "$(AR) $(ARFLAGS) $@ $<" },
/* The X.out rules are only in BSD's default set because
- BSD Make has no null-suffix rules, so `foo.out' and
- `foo' are the same thing. */
+ BSD Make has no null-suffix rules, so 'foo.out' and
+ 'foo' are the same thing. */
#ifdef VMS
{ "%.exe", "%",
"copy $< $@" },
#else
{ "%.out", "%",
- "@rm -f $@ \n cp $< $@" },
+ "@rm -f $@ \n cp $< $@" },
#endif
/* Syntax is "ctangle foo.w foo.ch foo.c". */
{ "%.c", "%.w %.ch",
- "$(CTANGLE) $^ $@" },
+ "$(CTANGLE) $^ $@" },
{ "%.tex", "%.w %.ch",
- "$(CWEAVE) $^ $@" },
+ "$(CWEAVE) $^ $@" },
{ 0, 0, 0 }
};
@@ -88,21 +89,21 @@ static struct pspec default_terminal_rules[] =
"if f$$search($@) .nes. \"\" then +$(CHECKOUT,v)" },
/* SCCS. */
- /* ain't no SCCS on vms */
+ /* ain't no SCCS on vms */
#else
/* RCS. */
{ "%", "%,v",
- "$(CHECKOUT,v)" },
+ "$(CHECKOUT,v)" },
{ "%", "RCS/%,v",
- "$(CHECKOUT,v)" },
+ "$(CHECKOUT,v)" },
{ "%", "RCS/%",
- "$(CHECKOUT,v)" },
+ "$(CHECKOUT,v)" },
/* SCCS. */
{ "%", "s.%",
- "$(GET) $(GFLAGS) $(SCCS_OUTPUT_OPTION) $<" },
+ "$(GET) $(GFLAGS) $(SCCS_OUTPUT_OPTION) $<" },
{ "%", "SCCS/s.%",
- "$(GET) $(GFLAGS) $(SCCS_OUTPUT_OPTION) $<" },
+ "$(GET) $(GFLAGS) $(SCCS_OUTPUT_OPTION) $<" },
#endif /* !VMS */
{ 0, 0, 0 }
};
@@ -293,13 +294,13 @@ static char *default_suffix_rules[] =
"$(TEXI2DVI) $(TEXI2DVI_FLAGS) $<",
".w.c",
- "$(CTANGLE) $< - $@", /* The `-' says there is no `.ch' file. */
+ "$(CTANGLE) $< - $@", /* The '-' says there is no '.ch' file. */
".web.p",
"$(TANGLE) $<",
".w.tex",
- "$(CWEAVE) $< - $@", /* The `-' says there is no `.ch' file. */
+ "$(CWEAVE) $< - $@", /* The '-' says there is no '.ch' file. */
".web.tex",
"$(WEAVE) $<",
@@ -401,7 +402,7 @@ static const char *default_variables[] =
#ifdef GCC_IS_NATIVE
"CC", "gcc",
# ifdef __MSDOS__
- "CXX", "gpp", /* g++ is an invalid name on MSDOS */
+ "CXX", "gpp", /* g++ is an invalid name on MSDOS */
# else
"CXX", "gcc",
# endif /* __MSDOS__ */
@@ -419,17 +420,17 @@ static const char *default_variables[] =
"COFLAGS", "",
"CPP", "$(CC) -E",
-#ifdef CRAY
+#ifdef CRAY
"CF77PPFLAGS", "-P",
"CF77PP", "/lib/cpp",
"CFT", "cft77",
"CF", "cf77",
"FC", "$(CF)",
-#else /* Not CRAY. */
-#ifdef _IBMR2
+#else /* Not CRAY. */
+#ifdef _IBMR2
"FC", "xlf",
#else
-#ifdef __convex__
+#ifdef __convex__
"FC", "fc",
#else
"FC", "f77",
@@ -439,7 +440,7 @@ static const char *default_variables[] =
However, there is no way to make implicit rules use them and FC. */
"F77", "$(FC)",
"F77FLAGS", "$(FFLAGS)",
-#endif /* Cray. */
+#endif /* Cray. */
"GET", SCCS_GET,
"LD", "ld",
#ifdef GCC_IS_NATIVE
@@ -449,20 +450,20 @@ static const char *default_variables[] =
#endif
"LINT", "lint",
"M2C", "m2c",
-#ifdef pyr
+#ifdef pyr
"PC", "pascal",
#else
-#ifdef CRAY
+#ifdef CRAY
"PC", "PASCAL",
"SEGLDR", "segldr",
#else
"PC", "pc",
-#endif /* CRAY. */
-#endif /* pyr. */
+#endif /* CRAY. */
+#endif /* pyr. */
#ifdef GCC_IS_NATIVE
"YACC", "bison -y",
#else
- "YACC", "yacc", /* Or "bison -y" */
+ "YACC", "yacc", /* Or "bison -y" */
#endif
"MAKEINFO", "makeinfo",
"TEX", "tex",
@@ -508,25 +509,27 @@ static const char *default_variables[] =
"PREPROCESS.r", "$(FC) $(FFLAGS) $(RFLAGS) $(TARGET_ARCH) -F",
"LINT.c", "$(LINT) $(LINTFLAGS) $(CPPFLAGS) $(TARGET_ARCH)",
-#ifndef NO_MINUS_C_MINUS_O
+#ifndef NO_MINUS_C_MINUS_O
"OUTPUT_OPTION", "-o $@",
#endif
-#ifdef SCCS_GET_MINUS_G
+#ifdef SCCS_GET_MINUS_G
"SCCS_OUTPUT_OPTION", "-G$@",
#endif
-#ifdef _AMIGA
+#if defined(_AMIGA)
".LIBPATTERNS", "%.lib",
-#else
-#ifdef __MSDOS__
+#elif defined(__MSDOS__)
".LIBPATTERNS", "lib%.a $(DJDIR)/lib/lib%.a",
+#elif defined(__APPLE__)
+ ".LIBPATTERNS", "lib%.dylib lib%.a",
#else
".LIBPATTERNS", "lib%.so lib%.a",
#endif
-#endif
#endif /* !VMS */
+ /* Make this assignment to avoid undefined variable warnings. */
+ "GNUMAKEFLAGS", "",
0, 0
};
@@ -536,15 +539,19 @@ void
set_default_suffixes (void)
{
suffix_file = enter_file (strcache_add (".SUFFIXES"));
+ suffix_file->builtin = 1;
if (no_builtin_rules_flag)
define_variable_cname ("SUFFIXES", "", o_default, 0);
else
{
+ struct dep *d;
char *p = default_suffixes;
- suffix_file->deps = enter_prereqs(PARSE_FILE_SEQ (&p, struct dep, '\0',
- NULL, 0),
- NULL);
+ suffix_file->deps = enter_prereqs (PARSE_SIMPLE_SEQ (&p, struct dep),
+ NULL);
+ for (d = suffix_file->deps; d; d = d->next)
+ d->file->builtin = 1;
+
define_variable_cname ("SUFFIXES", default_suffixes, o_default, 0);
}
}
@@ -565,14 +572,14 @@ install_default_suffix_rules (void)
for (s = default_suffix_rules; *s != 0; s += 2)
{
struct file *f = enter_file (strcache_add (s[0]));
- /* Don't clobber cmds given in a makefile if there were any. */
- if (f->cmds == 0)
- {
- f->cmds = xmalloc (sizeof (struct commands));
- f->cmds->fileinfo.filenm = 0;
- f->cmds->commands = s[1];
- f->cmds->command_lines = 0;
- }
+ /* This function should run before any makefile is parsed. */
+ assert (f->cmds == 0);
+ f->cmds = xmalloc (sizeof (struct commands));
+ f->cmds->fileinfo.filenm = 0;
+ f->cmds->commands = s[1];
+ f->cmds->command_lines = 0;
+ f->cmds->recipe_prefix = RECIPEPREFIX_DEFAULT;
+ f->builtin = 1;
}
}
@@ -605,3 +612,12 @@ define_default_variables (void)
for (s = default_variables; *s != 0; s += 2)
define_variable (s[0], strlen (s[0]), s[1], o_default, 1);
}
+
+void
+undefine_default_variables (void)
+{
+ const char **s;
+
+ for (s = default_variables; *s != 0; s += 2)
+ undefine_variable_global (s[0], strlen (s[0]), o_default);
+}
diff --git a/dep.h b/dep.h
index c27423b..13cefdc 100644
--- a/dep.h
+++ b/dep.h
@@ -1,7 +1,5 @@
/* Definitions of dependency data structures for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,19 +14,19 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-/* Flag bits for the second argument to `read_makefile'.
- These flags are saved in the `changed' field of each
- `struct dep' in the chain returned by `read_all_makefiles'. */
+/* Flag bits for the second argument to 'read_makefile'.
+ These flags are saved in the 'changed' field of each
+ 'struct dep' in the chain returned by 'read_all_makefiles'. */
-#define RM_NO_DEFAULT_GOAL (1 << 0) /* Do not set default goal. */
-#define RM_INCLUDED (1 << 1) /* Search makefile search path. */
-#define RM_DONTCARE (1 << 2) /* No error if it doesn't exist. */
-#define RM_NO_TILDE (1 << 3) /* Don't expand ~ in file name. */
-#define RM_NOFLAG 0
+#define RM_NO_DEFAULT_GOAL (1 << 0) /* Do not set default goal. */
+#define RM_INCLUDED (1 << 1) /* Search makefile search path. */
+#define RM_DONTCARE (1 << 2) /* No error if it doesn't exist. */
+#define RM_NO_TILDE (1 << 3) /* Don't expand ~ in file name. */
+#define RM_NOFLAG 0
/* Structure representing one dependency of a file.
- Each struct file's `deps' points to a chain of these,
- chained through the `next'. `stem' is the stem for this
+ Each struct file's 'deps' points to a chain of these,
+ chained through the 'next'. 'stem' is the stem for this
dep line of static pattern rule or NULL.
Note that the first two words of this match a struct nameseq. */
@@ -55,22 +53,23 @@ struct nameseq
const char *name;
};
-
-#define PARSEFS_NONE (0x0000)
-#define PARSEFS_NOSTRIP (0x0001)
-#define PARSEFS_NOAR (0x0002)
-#define PARSEFS_NOGLOB (0x0004)
-#define PARSEFS_EXISTS (0x0008)
-#define PARSEFS_NOCACHE (0x0010)
+#define PARSEFS_NONE 0x0000
+#define PARSEFS_NOSTRIP 0x0001
+#define PARSEFS_NOAR 0x0002
+#define PARSEFS_NOGLOB 0x0004
+#define PARSEFS_EXISTS 0x0008
+#define PARSEFS_NOCACHE 0x0010
#define PARSE_FILE_SEQ(_s,_t,_c,_p,_f) \
(_t *)parse_file_seq ((_s),sizeof (_t),(_c),(_p),(_f))
+#define PARSE_SIMPLE_SEQ(_s,_t) \
+ (_t *)parse_file_seq ((_s),sizeof (_t),MAP_NUL,NULL,PARSEFS_NONE)
#ifdef VMS
void *parse_file_seq ();
#else
void *parse_file_seq (char **stringp, unsigned int size,
- int stopchar, const char *prefix, int flags);
+ int stopmap, const char *prefix, int flags);
#endif
char *tilde_expand (const char *name);
@@ -89,5 +88,5 @@ struct dep *copy_dep_chain (const struct dep *d);
void free_dep_chain (struct dep *d);
void free_ns_chain (struct nameseq *n);
struct dep *read_all_makefiles (const char **makefiles);
-void eval_buffer (char *buffer);
-int update_goal_chain (struct dep *goals);
+void eval_buffer (char *buffer, const gmk_floc *floc);
+enum update_status update_goal_chain (struct dep *goals);
diff --git a/dir.c b/dir.c
index 5529019..d046bd9 100644
--- a/dir.c
+++ b/dir.c
@@ -1,7 +1,5 @@
/* Directory hashing for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,10 +14,12 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
#include "hash.h"
+#include "filedef.h"
+#include "dep.h"
-#ifdef HAVE_DIRENT_H
+#ifdef HAVE_DIRENT_H
# include <dirent.h>
# define NAMLEN(dirent) strlen((dirent)->d_name)
# ifdef VMS
@@ -86,21 +86,21 @@ dosify (const char *filename)
df = dos_filename;
/* First, transform the name part. */
- for (i = 0; *filename != '\0' && i < 8 && *filename != '.'; ++i)
+ for (i = 0; i < 8 && ! STOP_SET (*filename, MAP_DOT|MAP_NUL); ++i)
*df++ = tolower ((unsigned char)*filename++);
/* Now skip to the next dot. */
- while (*filename != '\0' && *filename != '.')
+ while (! STOP_SET (*filename, MAP_DOT|MAP_NUL))
++filename;
if (*filename != '\0')
{
*df++ = *filename++;
- for (i = 0; *filename != '\0' && i < 3 && *filename != '.'; ++i)
- *df++ = tolower ((unsigned char)*filename++);
+ for (i = 0; i < 3 && ! STOP_SET (*filename, MAP_DOT|MAP_NUL); ++i)
+ *df++ = tolower ((unsigned char)*filename++);
}
/* Look for more dots. */
- while (*filename != '\0' && *filename != '.')
+ while (! STOP_SET (*filename, MAP_DOT|MAP_NUL))
++filename;
if (*filename == '.')
return filename;
@@ -146,11 +146,11 @@ static int
vms_hash (const char *name)
{
int h = 0;
- int g;
while (*name)
{
unsigned char uc = *name;
+ int g;
#ifdef HAVE_CASE_INSENSITIVE_FS
h = (h << 4) + (isupper (uc) ? tolower (uc) : uc);
#else
@@ -159,10 +159,10 @@ vms_hash (const char *name)
name++;
g = h & 0xf0000000;
if (g)
- {
- h = h ^ (g >> 24);
- h = h ^ g;
- }
+ {
+ h = h ^ (g >> 24);
+ h = h ^ g;
+ }
}
return h;
}
@@ -179,7 +179,7 @@ vmsstat_dir (const char *name, struct stat *st)
if (dir == 0)
return -1;
closedir (dir);
- s = strchr (name, ':'); /* find device */
+ s = strchr (name, ':'); /* find device */
if (s)
{
/* to keep the compiler happy we said "const char *name", now we cheat */
@@ -204,13 +204,13 @@ vmsstat_dir (const char *name, struct stat *st)
/* Hash table of directories. */
-#ifndef DIRECTORY_BUCKETS
+#ifndef DIRECTORY_BUCKETS
#define DIRECTORY_BUCKETS 199
#endif
struct directory_contents
{
- dev_t dev; /* Device and inode numbers of this dir. */
+ dev_t dev; /* Device and inode numbers of this dir. */
#ifdef WINDOWS32
/* Inode means nothing on WINDOWS32. Even file key information is
* unreliable because it is random per file open and undefined for remote
@@ -231,8 +231,8 @@ struct directory_contents
ino_t ino;
# endif
#endif /* WINDOWS32 */
- struct hash_table dirfiles; /* Files in this directory. */
- DIR *dirstream; /* Stream reading this directory. */
+ struct hash_table dirfiles; /* Files in this directory. */
+ DIR *dirstream; /* Stream reading this directory. */
};
static unsigned long
@@ -248,9 +248,9 @@ directory_contents_hash_1 (const void *key_0)
#else
# ifdef VMS
hash = (((unsigned int) key->dev << 4)
- ^ ((unsigned int) key->ino[0]
- + (unsigned int) key->ino[1]
- + (unsigned int) key->ino[2]));
+ ^ ((unsigned int) key->ino[0]
+ + (unsigned int) key->ino[1]
+ + (unsigned int) key->ino[2]));
# else
hash = ((unsigned int) key->dev << 4) ^ (unsigned int) key->ino;
# endif
@@ -271,9 +271,9 @@ directory_contents_hash_2 (const void *key_0)
#else
# ifdef VMS
hash = (((unsigned int) key->dev << 4)
- ^ ~((unsigned int) key->ino[0]
- + (unsigned int) key->ino[1]
- + (unsigned int) key->ino[2]));
+ ^ ~((unsigned int) key->ino[0]
+ + (unsigned int) key->ino[1]
+ + (unsigned int) key->ino[2]));
# else
hash = ((unsigned int) key->dev << 4) ^ (unsigned int) ~key->ino;
# endif
@@ -333,11 +333,11 @@ static struct hash_table directory_contents;
struct directory
{
- const char *name; /* Name of the directory. */
+ const char *name; /* Name of the directory. */
/* The directory's contents. This data may be shared by several
entries in the hash table, which refer to the same directory
- (identified uniquely by `dev' and `ino') under different names. */
+ (identified uniquely by 'dev' and 'ino') under different names. */
struct directory_contents *contents;
};
@@ -357,7 +357,7 @@ static int
directory_hash_cmp (const void *x, const void *y)
{
return_ISTRING_COMPARE (((const struct directory *) x)->name,
- ((const struct directory *) y)->name);
+ ((const struct directory *) y)->name);
}
/* Table of directories hashed by name. */
@@ -374,9 +374,9 @@ static unsigned int open_directories = 0;
struct dirfile
{
- const char *name; /* Name of the file. */
+ const char *name; /* Name of the file. */
short length;
- short impossible; /* This file is impossible. */
+ short impossible; /* This file is impossible. */
};
static unsigned long
@@ -402,7 +402,7 @@ dirfile_hash_cmp (const void *xv, const void *yv)
return_ISTRING_COMPARE (x->name, y->name);
}
-#ifndef DIRFILE_BUCKETS
+#ifndef DIRFILE_BUCKETS
#define DIRFILE_BUCKETS 107
#endif
@@ -410,24 +410,15 @@ static int dir_contents_file_exists_p (struct directory_contents *dir,
const char *filename);
static struct directory *find_directory (const char *name);
-/* Find the directory named NAME and return its `struct directory'. */
+/* Find the directory named NAME and return its 'struct directory'. */
static struct directory *
find_directory (const char *name)
{
- const char *p;
struct directory *dir;
struct directory **dir_slot;
struct directory dir_key;
- int r;
-#ifdef WINDOWS32
- char* w32_path;
- char fs_label[BUFSIZ];
- char fs_type[BUFSIZ];
- unsigned long fs_serno;
- unsigned long fs_flags;
- unsigned long fs_len;
-#endif
+
#ifdef VMS
if ((*name == '.') && (*(name+1) == 0))
name = "[]";
@@ -441,20 +432,20 @@ find_directory (const char *name)
if (HASH_VACANT (dir))
{
- struct stat st;
-
/* The directory was not found. Create a new entry for it. */
+ const char *p = name + strlen (name);
+ struct stat st;
+ int r;
- p = name + strlen (name);
dir = xmalloc (sizeof (struct directory));
#if defined(HAVE_CASE_INSENSITIVE_FS) && defined(VMS)
- dir->name = strcache_add_len (downcase(name), p - name);
+ dir->name = strcache_add_len (downcase (name), p - name);
#else
dir->name = strcache_add_len (name, p - name);
#endif
hash_insert_at (&directories, dir, dir_slot);
/* The directory is not in the name hash table.
- Find its device and inode numbers, and look it up by them. */
+ Find its device and inode numbers, and look it up by them. */
#ifdef VMS
r = vmsstat_dir (name, &st);
@@ -481,96 +472,101 @@ find_directory (const char *name)
if (r < 0)
{
- /* Couldn't stat the directory. Mark this by
- setting the `contents' member to a nil pointer. */
- dir->contents = 0;
- }
+ /* Couldn't stat the directory. Mark this by
+ setting the 'contents' member to a nil pointer. */
+ dir->contents = 0;
+ }
else
- {
- /* Search the contents hash table; device and inode are the key. */
+ {
+ /* Search the contents hash table; device and inode are the key. */
- struct directory_contents *dc;
- struct directory_contents **dc_slot;
- struct directory_contents dc_key;
+#ifdef WINDOWS32
+ char *w32_path;
+#endif
+ struct directory_contents *dc;
+ struct directory_contents **dc_slot;
+ struct directory_contents dc_key;
- dc_key.dev = st.st_dev;
+ dc_key.dev = st.st_dev;
#ifdef WINDOWS32
- dc_key.path_key = w32_path = w32ify (name, 1);
- dc_key.ctime = st.st_ctime;
+ dc_key.path_key = w32_path = w32ify (name, 1);
+ dc_key.ctime = st.st_ctime;
#else
# ifdef VMS
- dc_key.ino[0] = st.st_ino[0];
- dc_key.ino[1] = st.st_ino[1];
- dc_key.ino[2] = st.st_ino[2];
+ dc_key.ino[0] = st.st_ino[0];
+ dc_key.ino[1] = st.st_ino[1];
+ dc_key.ino[2] = st.st_ino[2];
# else
- dc_key.ino = st.st_ino;
+ dc_key.ino = st.st_ino;
# endif
#endif
- dc_slot = (struct directory_contents **) hash_find_slot (&directory_contents, &dc_key);
- dc = *dc_slot;
+ dc_slot = (struct directory_contents **) hash_find_slot (&directory_contents, &dc_key);
+ dc = *dc_slot;
- if (HASH_VACANT (dc))
- {
- /* Nope; this really is a directory we haven't seen before. */
-
- dc = (struct directory_contents *)
- xmalloc (sizeof (struct directory_contents));
+ if (HASH_VACANT (dc))
+ {
+ /* Nope; this really is a directory we haven't seen before. */
+#ifdef WINDOWS32
+ char fs_label[BUFSIZ];
+ char fs_type[BUFSIZ];
+ unsigned long fs_serno;
+ unsigned long fs_flags;
+ unsigned long fs_len;
+#endif
+ dc = (struct directory_contents *)
+ xmalloc (sizeof (struct directory_contents));
- /* Enter it in the contents hash table. */
- dc->dev = st.st_dev;
+ /* Enter it in the contents hash table. */
+ dc->dev = st.st_dev;
#ifdef WINDOWS32
dc->path_key = xstrdup (w32_path);
- dc->ctime = st.st_ctime;
+ dc->ctime = st.st_ctime;
dc->mtime = st.st_mtime;
- /*
- * NTFS is the only WINDOWS32 filesystem that bumps mtime
- * on a directory when files are added/deleted from
- * a directory.
- */
+ /* NTFS is the only WINDOWS32 filesystem that bumps mtime on a
+ directory when files are added/deleted from a directory. */
w32_path[3] = '\0';
- if (GetVolumeInformation(w32_path,
- fs_label, sizeof (fs_label),
- &fs_serno, &fs_len,
- &fs_flags, fs_type, sizeof (fs_type)) == FALSE)
+ if (GetVolumeInformation (w32_path, fs_label, sizeof (fs_label),
+ &fs_serno, &fs_len, &fs_flags, fs_type,
+ sizeof (fs_type)) == FALSE)
dc->fs_flags = FS_UNKNOWN;
- else if (!strcmp(fs_type, "FAT"))
+ else if (!strcmp (fs_type, "FAT"))
dc->fs_flags = FS_FAT;
- else if (!strcmp(fs_type, "NTFS"))
+ else if (!strcmp (fs_type, "NTFS"))
dc->fs_flags = FS_NTFS;
else
dc->fs_flags = FS_UNKNOWN;
#else
# ifdef VMS
- dc->ino[0] = st.st_ino[0];
- dc->ino[1] = st.st_ino[1];
- dc->ino[2] = st.st_ino[2];
+ dc->ino[0] = st.st_ino[0];
+ dc->ino[1] = st.st_ino[1];
+ dc->ino[2] = st.st_ino[2];
# else
- dc->ino = st.st_ino;
+ dc->ino = st.st_ino;
# endif
#endif /* WINDOWS32 */
- hash_insert_at (&directory_contents, dc, dc_slot);
- ENULLLOOP (dc->dirstream, opendir (name));
- if (dc->dirstream == 0)
+ hash_insert_at (&directory_contents, dc, dc_slot);
+ ENULLLOOP (dc->dirstream, opendir (name));
+ if (dc->dirstream == 0)
/* Couldn't open the directory. Mark this by setting the
- `files' member to a nil pointer. */
+ 'files' member to a nil pointer. */
dc->dirfiles.ht_vec = 0;
- else
- {
- hash_init (&dc->dirfiles, DIRFILE_BUCKETS,
- dirfile_hash_1, dirfile_hash_2, dirfile_hash_cmp);
- /* Keep track of how many directories are open. */
- ++open_directories;
- if (open_directories == MAX_OPEN_DIRECTORIES)
- /* We have too many directories open already.
- Read the entire directory and then close it. */
- dir_contents_file_exists_p (dc, 0);
- }
- }
-
- /* Point the name-hashed entry for DIR at its contents data. */
- dir->contents = dc;
- }
+ else
+ {
+ hash_init (&dc->dirfiles, DIRFILE_BUCKETS,
+ dirfile_hash_1, dirfile_hash_2, dirfile_hash_cmp);
+ /* Keep track of how many directories are open. */
+ ++open_directories;
+ if (open_directories == MAX_OPEN_DIRECTORIES)
+ /* We have too many directories open already.
+ Read the entire directory and then close it. */
+ dir_contents_file_exists_p (dc, 0);
+ }
+ }
+
+ /* Point the name-hashed entry for DIR at its contents data. */
+ dir->contents = dc;
+ }
}
return dir;
@@ -583,7 +579,6 @@ static int
dir_contents_file_exists_p (struct directory_contents *dir,
const char *filename)
{
- unsigned int hash;
struct dirfile *df;
struct dirent *d;
#ifdef WINDOWS32
@@ -612,16 +607,15 @@ dir_contents_file_exists_p (struct directory_contents *dir,
filename = vmsify (filename,0);
#endif
- hash = 0;
if (filename != 0)
{
struct dirfile dirfile_key;
if (*filename == '\0')
- {
- /* Checking if the directory exists. */
- return 1;
- }
+ {
+ /* Checking if the directory exists. */
+ return 1;
+ }
dirfile_key.name = filename;
dirfile_key.length = strlen (filename);
df = hash_find_item (&dir->dirfiles, &dirfile_key);
@@ -641,32 +635,32 @@ dir_contents_file_exists_p (struct directory_contents *dir,
* on directories (ugh!).
*/
if (dir->path_key)
- {
+ {
if ((dir->fs_flags & FS_FAT) != 0)
- {
- dir->mtime = time ((time_t *) 0);
- rehash = 1;
- }
- else if (stat (dir->path_key, &st) == 0 && st.st_mtime > dir->mtime)
- {
- /* reset date stamp to show most recent re-process. */
- dir->mtime = st.st_mtime;
- rehash = 1;
- }
+ {
+ dir->mtime = time ((time_t *) 0);
+ rehash = 1;
+ }
+ else if (stat (dir->path_key, &st) == 0 && st.st_mtime > dir->mtime)
+ {
+ /* reset date stamp to show most recent re-process. */
+ dir->mtime = st.st_mtime;
+ rehash = 1;
+ }
/* If it has been already read in, all done. */
- if (!rehash)
- return 0;
+ if (!rehash)
+ return 0;
/* make sure directory can still be opened; if not return. */
dir->dirstream = opendir (dir->path_key);
if (!dir->dirstream)
return 0;
- }
+ }
else
#endif
- /* The directory has been all read in. */
- return 0;
+ /* The directory has been all read in. */
+ return 0;
}
while (1)
@@ -693,7 +687,7 @@ dir_contents_file_exists_p (struct directory_contents *dir,
}
#endif
if (!REAL_DIR_ENTRY (d))
- continue;
+ continue;
len = NAMLEN (d);
dirfile_key.name = d->d_name;
@@ -706,17 +700,17 @@ dir_contents_file_exists_p (struct directory_contents *dir,
*/
if (! rehash || HASH_VACANT (*dirfile_slot))
#endif
- {
- df = xmalloc (sizeof (struct dirfile));
+ {
+ df = xmalloc (sizeof (struct dirfile));
#if defined(HAVE_CASE_INSENSITIVE_FS) && defined(VMS)
- df->name = strcache_add_len (downcase(d->d_name), len);
+ df->name = strcache_add_len (downcase (d->d_name), len);
#else
- df->name = strcache_add_len (d->d_name, len);
+ df->name = strcache_add_len (d->d_name, len);
#endif
- df->length = len;
- df->impossible = 0;
- hash_insert_at (&dir->dirfiles, df, dirfile_slot);
- }
+ df->length = len;
+ df->impossible = 0;
+ hash_insert_at (&dir->dirfiles, df, dirfile_slot);
+ }
/* Check if the name matches the one we're searching for. */
if (filename != 0 && patheq (d->d_name, filename))
return 1;
@@ -741,7 +735,7 @@ int
dir_file_exists_p (const char *dirname, const char *filename)
{
return dir_contents_file_exists_p (find_directory (dirname)->contents,
- filename);
+ filename);
}
/* Return 1 if the file named NAME exists. */
@@ -753,7 +747,7 @@ file_exists_p (const char *name)
const char *dirname;
const char *slash;
-#ifndef NO_ARCHIVES
+#ifndef NO_ARCHIVES
if (ar_name (name))
return ar_member_date (name) != (time_t) -1;
#endif
@@ -769,7 +763,7 @@ file_exists_p (const char *name)
#ifdef HAVE_DOS_PATHS
/* Forward and backslashes might be mixed. We need the rightmost one. */
{
- const char *bslash = strrchr(name, '\\');
+ const char *bslash = strrchr (name, '\\');
if (!dirend || bslash > dirend)
dirend = bslash;
/* The case of "d:file". */
@@ -794,8 +788,8 @@ file_exists_p (const char *name)
#ifdef HAVE_DOS_PATHS
/* d:/ and d: are *very* different... */
if (dirend < name + 3 && name[1] == ':' &&
- (*dirend == '/' || *dirend == '\\' || *dirend == ':'))
- dirend++;
+ (*dirend == '/' || *dirend == '\\' || *dirend == ':'))
+ dirend++;
#endif
p = alloca (dirend - name + 1);
memcpy (p, name, dirend - name);
@@ -805,7 +799,7 @@ file_exists_p (const char *name)
return dir_file_exists_p (dirname, slash + 1);
}
-/* Mark FILENAME as `impossible' for `file_impossible_p'.
+/* Mark FILENAME as 'impossible' for 'file_impossible_p'.
This means an attempt has been made to search for FILENAME
as an intermediate file, and it has failed. */
@@ -829,7 +823,7 @@ file_impossible (const char *filename)
# ifdef HAVE_DOS_PATHS
/* Forward and backslashes might be mixed. We need the rightmost one. */
{
- const char *bslash = strrchr(p, '\\');
+ const char *bslash = strrchr (p, '\\');
if (!dirend || bslash > dirend)
dirend = bslash;
/* The case of "d:file". */
@@ -849,21 +843,21 @@ file_impossible (const char *filename)
const char *dirname;
const char *slash = dirend;
if (dirend == p)
- dirname = "/";
+ dirname = "/";
else
- {
+ {
char *cp;
#ifdef HAVE_DOS_PATHS
- /* d:/ and d: are *very* different... */
- if (dirend < p + 3 && p[1] == ':' &&
- (*dirend == '/' || *dirend == '\\' || *dirend == ':'))
- dirend++;
+ /* d:/ and d: are *very* different... */
+ if (dirend < p + 3 && p[1] == ':' &&
+ (*dirend == '/' || *dirend == '\\' || *dirend == ':'))
+ dirend++;
#endif
- cp = alloca (dirend - p + 1);
- memcpy (cp, p, dirend - p);
- cp[dirend - p] = '\0';
+ cp = alloca (dirend - p + 1);
+ memcpy (cp, p, dirend - p);
+ cp[dirend - p] = '\0';
dirname = cp;
- }
+ }
dir = find_directory (dirname);
filename = p = slash + 1;
}
@@ -876,7 +870,7 @@ file_impossible (const char *filename)
if (dir->contents->dirfiles.ht_vec == 0)
{
hash_init (&dir->contents->dirfiles, DIRFILE_BUCKETS,
- dirfile_hash_1, dirfile_hash_2, dirfile_hash_cmp);
+ dirfile_hash_1, dirfile_hash_2, dirfile_hash_cmp);
}
/* Make a new entry and put it in the table. */
@@ -884,7 +878,7 @@ file_impossible (const char *filename)
new = xmalloc (sizeof (struct dirfile));
new->length = strlen (filename);
#if defined(HAVE_CASE_INSENSITIVE_FS) && defined(VMS)
- new->name = strcache_add_len (downcase(filename), new->length);
+ new->name = strcache_add_len (downcase (filename), new->length);
#else
new->name = strcache_add_len (filename, new->length);
#endif
@@ -898,7 +892,6 @@ int
file_impossible_p (const char *filename)
{
const char *dirend;
- const char *p = filename;
struct directory_contents *dir;
struct dirfile *dirfile;
struct dirfile dirfile_key;
@@ -912,7 +905,7 @@ file_impossible_p (const char *filename)
#ifdef HAVE_DOS_PATHS
/* Forward and backslashes might be mixed. We need the rightmost one. */
{
- const char *bslash = strrchr(filename, '\\');
+ const char *bslash = strrchr (filename, '\\');
if (!dirend || bslash > dirend)
dirend = bslash;
/* The case of "d:file". */
@@ -932,23 +925,23 @@ file_impossible_p (const char *filename)
const char *dirname;
const char *slash = dirend;
if (dirend == filename)
- dirname = "/";
+ dirname = "/";
else
- {
+ {
char *cp;
#ifdef HAVE_DOS_PATHS
- /* d:/ and d: are *very* different... */
- if (dirend < filename + 3 && filename[1] == ':' &&
- (*dirend == '/' || *dirend == '\\' || *dirend == ':'))
- dirend++;
+ /* d:/ and d: are *very* different... */
+ if (dirend < filename + 3 && filename[1] == ':' &&
+ (*dirend == '/' || *dirend == '\\' || *dirend == ':'))
+ dirend++;
#endif
- cp = alloca (dirend - filename + 1);
- memcpy (cp, p, dirend - p);
- cp[dirend - p] = '\0';
+ cp = alloca (dirend - filename + 1);
+ memcpy (cp, filename, dirend - filename);
+ cp[dirend - filename] = '\0';
dirname = cp;
- }
+ }
dir = find_directory (dirname)->contents;
- p = filename = slash + 1;
+ filename = slash + 1;
}
if (dir == 0 || dir->dirfiles.ht_vec == 0)
@@ -956,13 +949,13 @@ file_impossible_p (const char *filename)
return 0;
#ifdef __MSDOS__
- filename = dosify (p);
+ filename = dosify (filename);
#endif
#ifdef HAVE_CASE_INSENSITIVE_FS
- filename = downcase (p);
+ filename = downcase (filename);
#endif
#ifdef VMS
- filename = vmsify (p, 1);
+ filename = vmsify (filename, 1);
#endif
dirfile_key.name = filename;
@@ -1003,80 +996,80 @@ print_dir_data_base (void)
{
struct directory *dir = *dir_slot;
if (! HASH_VACANT (dir))
- {
- if (dir->contents == 0)
- printf (_("# %s: could not be stat'd.\n"), dir->name);
- else if (dir->contents->dirfiles.ht_vec == 0)
- {
+ {
+ if (dir->contents == 0)
+ printf (_("# %s: could not be stat'd.\n"), dir->name);
+ else if (dir->contents->dirfiles.ht_vec == 0)
+ {
#ifdef WINDOWS32
- printf (_("# %s (key %s, mtime %d): could not be opened.\n"),
- dir->name, dir->contents->path_key,dir->contents->mtime);
+ printf (_("# %s (key %s, mtime %d): could not be opened.\n"),
+ dir->name, dir->contents->path_key,dir->contents->mtime);
#else /* WINDOWS32 */
#ifdef VMS
- printf (_("# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"),
- dir->name, dir->contents->dev,
- dir->contents->ino[0], dir->contents->ino[1],
- dir->contents->ino[2]);
+ printf (_("# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"),
+ dir->name, dir->contents->dev,
+ dir->contents->ino[0], dir->contents->ino[1],
+ dir->contents->ino[2]);
#else
- printf (_("# %s (device %ld, inode %ld): could not be opened.\n"),
- dir->name, (long int) dir->contents->dev,
- (long int) dir->contents->ino);
+ printf (_("# %s (device %ld, inode %ld): could not be opened.\n"),
+ dir->name, (long int) dir->contents->dev,
+ (long int) dir->contents->ino);
#endif
#endif /* WINDOWS32 */
- }
- else
- {
- unsigned int f = 0;
- unsigned int im = 0;
- struct dirfile **files_slot;
- struct dirfile **files_end;
-
- files_slot = (struct dirfile **) dir->contents->dirfiles.ht_vec;
- files_end = files_slot + dir->contents->dirfiles.ht_size;
- for ( ; files_slot < files_end; files_slot++)
- {
- struct dirfile *df = *files_slot;
- if (! HASH_VACANT (df))
- {
- if (df->impossible)
- ++im;
- else
- ++f;
- }
- }
+ }
+ else
+ {
+ unsigned int f = 0;
+ unsigned int im = 0;
+ struct dirfile **files_slot;
+ struct dirfile **files_end;
+
+ files_slot = (struct dirfile **) dir->contents->dirfiles.ht_vec;
+ files_end = files_slot + dir->contents->dirfiles.ht_size;
+ for ( ; files_slot < files_end; files_slot++)
+ {
+ struct dirfile *df = *files_slot;
+ if (! HASH_VACANT (df))
+ {
+ if (df->impossible)
+ ++im;
+ else
+ ++f;
+ }
+ }
#ifdef WINDOWS32
- printf (_("# %s (key %s, mtime %d): "),
- dir->name, dir->contents->path_key, dir->contents->mtime);
+ printf (_("# %s (key %s, mtime %d): "),
+ dir->name, dir->contents->path_key, dir->contents->mtime);
#else /* WINDOWS32 */
#ifdef VMS
- printf (_("# %s (device %d, inode [%d,%d,%d]): "),
- dir->name, dir->contents->dev,
- dir->contents->ino[0], dir->contents->ino[1],
- dir->contents->ino[2]);
+ printf (_("# %s (device %d, inode [%d,%d,%d]): "),
+ dir->name, dir->contents->dev,
+ dir->contents->ino[0], dir->contents->ino[1],
+ dir->contents->ino[2]);
#else
- printf (_("# %s (device %ld, inode %ld): "),
- dir->name,
- (long)dir->contents->dev, (long)dir->contents->ino);
+ printf (_("# %s (device %ld, inode %ld): "),
+ dir->name,
+ (long)dir->contents->dev, (long)dir->contents->ino);
#endif
#endif /* WINDOWS32 */
- if (f == 0)
- fputs (_("No"), stdout);
- else
- printf ("%u", f);
- fputs (_(" files, "), stdout);
- if (im == 0)
- fputs (_("no"), stdout);
- else
- printf ("%u", im);
- fputs (_(" impossibilities"), stdout);
- if (dir->contents->dirstream == 0)
- puts (".");
- else
- puts (_(" so far."));
- files += f;
- impossible += im;
- }
- }
+ if (f == 0)
+ fputs (_("No"), stdout);
+ else
+ printf ("%u", f);
+ fputs (_(" files, "), stdout);
+ if (im == 0)
+ fputs (_("no"), stdout);
+ else
+ printf ("%u", im);
+ fputs (_(" impossibilities"), stdout);
+ if (dir->contents->dirstream == 0)
+ puts (".");
+ else
+ puts (_(" so far."));
+ files += f;
+ impossible += im;
+ }
+ }
}
fputs ("\n# ", stdout);
@@ -1145,35 +1138,35 @@ read_dirstream (__ptr_t stream)
{
struct dirfile *df = *ds->dirfile_slot++;
if (! HASH_VACANT (df) && !df->impossible)
- {
- /* The glob interface wants a `struct dirent', so mock one up. */
- struct dirent *d;
- unsigned int len = df->length + 1;
+ {
+ /* The glob interface wants a 'struct dirent', so mock one up. */
+ struct dirent *d;
+ unsigned int len = df->length + 1;
unsigned int sz = sizeof (*d) - sizeof (d->d_name) + len;
- if (sz > bufsz)
- {
- bufsz *= 2;
- if (sz > bufsz)
- bufsz = sz;
- buf = xrealloc (buf, bufsz);
- }
- d = (struct dirent *) buf;
+ if (sz > bufsz)
+ {
+ bufsz *= 2;
+ if (sz > bufsz)
+ bufsz = sz;
+ buf = xrealloc (buf, bufsz);
+ }
+ d = (struct dirent *) buf;
#ifdef __MINGW32__
# if __MINGW32_MAJOR_VERSION < 3 || (__MINGW32_MAJOR_VERSION == 3 && \
- __MINGW32_MINOR_VERSION == 0)
- d->d_name = xmalloc(len);
+ __MINGW32_MINOR_VERSION == 0)
+ d->d_name = xmalloc (len);
# endif
#endif
- FAKE_DIR_ENTRY (d);
+ FAKE_DIR_ENTRY (d);
#ifdef _DIRENT_HAVE_D_NAMLEN
- d->d_namlen = len - 1;
+ d->d_namlen = len - 1;
#endif
#ifdef _DIRENT_HAVE_D_TYPE
- d->d_type = DT_UNKNOWN;
+ d->d_type = DT_UNKNOWN;
#endif
- memcpy (d->d_name, df->name, len);
- return d;
- }
+ memcpy (d->d_name, df->name, len);
+ return d;
+ }
}
return 0;
@@ -1183,14 +1176,17 @@ static void
ansi_free (void *p)
{
if (p)
- free(p);
+ free (p);
}
/* On 64 bit ReliantUNIX (5.44 and above) in LFS mode, stat() is actually a
* macro for stat64(). If stat is a macro, make a local wrapper function to
* invoke it.
+ *
+ * On MS-Windows, stat() "succeeds" for foo/bar/. where foo/bar is a
+ * regular file; fix that here.
*/
-#ifndef stat
+#if !defined(stat) && !defined(WINDOWS32)
# ifndef VMS
int stat (const char *path, struct stat *sbuf);
# endif
@@ -1200,6 +1196,23 @@ static int
local_stat (const char *path, struct stat *buf)
{
int e;
+#ifdef WINDOWS32
+ size_t plen = strlen (path);
+
+ /* Make sure the parent of "." exists and is a directory, not a
+ file. This is because 'stat' on Windows normalizes the argument
+ foo/. => foo without checking first that foo is a directory. */
+ if (plen > 1 && path[plen - 1] == '.'
+ && (path[plen - 2] == '/' || path[plen - 2] == '\\'))
+ {
+ char parent[MAXPATHLEN];
+
+ strncpy (parent, path, plen - 2);
+ parent[plen - 2] = '\0';
+ if (stat (parent, buf) < 0 || !_S_ISDIR (buf->st_mode))
+ return -1;
+ }
+#endif
EINTRLOOP (e, stat (path, buf));
return e;
@@ -1221,8 +1234,8 @@ void
hash_init_directories (void)
{
hash_init (&directories, DIRECTORY_BUCKETS,
- directory_hash_1, directory_hash_2, directory_hash_cmp);
+ directory_hash_1, directory_hash_2, directory_hash_cmp);
hash_init (&directory_contents, DIRECTORY_BUCKETS,
- directory_contents_hash_1, directory_contents_hash_2,
+ directory_contents_hash_1, directory_contents_hash_2,
directory_contents_hash_cmp);
}
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 67eec3a..ed519a1 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,6 +1,5 @@
# -*-Makefile-*-, or close enough
-# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-# 2010 Free Software Foundation, Inc.
+# Copyright (C) 2000-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
diff --git a/doc/Makefile.in b/doc/Makefile.in
index a1089bc..c7a018f 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,8 +16,7 @@
@SET_MAKE@
# -*-Makefile-*-, or close enough
-# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-# 2010 Free Software Foundation, Inc.
+# Copyright (C) 2000-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
@@ -33,6 +32,23 @@
# You should have received a copy of the GNU General Public License along with
# this program. If not, see <http://www.gnu.org/licenses/>.
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -58,18 +74,24 @@ DIST_COMMON = $(make_TEXINFOS) $(srcdir)/Makefile.am \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/config/dospaths.m4 \
$(top_srcdir)/config/gettext.m4 $(top_srcdir)/config/iconv.m4 \
- $(top_srcdir)/config/isc-posix.m4 \
+ $(top_srcdir)/config/intlmacosx.m4 \
$(top_srcdir)/config/lib-ld.m4 \
$(top_srcdir)/config/lib-link.m4 \
$(top_srcdir)/config/lib-prefix.m4 $(top_srcdir)/config/nls.m4 \
$(top_srcdir)/config/po.m4 $(top_srcdir)/config/progtest.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
SOURCES =
DIST_SOURCES =
INFO_DEPS = $(srcdir)/make.info
@@ -85,6 +107,11 @@ TEXI2PDF = $(TEXI2DVI) --pdf --batch
MAKEINFOHTML = $(MAKEINFO) --html
AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
DVIPS = dvips
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
am__installdirs = "$(DESTDIR)$(infodir)"
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
@@ -107,10 +134,18 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AM_LDFLAGS = @AM_LDFLAGS@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -130,16 +165,21 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
GLOBINC = @GLOBINC@
GLOBLIB = @GLOBLIB@
GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
GREP = @GREP@
+GUILE_CFLAGS = @GUILE_CFLAGS@
+GUILE_LIBS = @GUILE_LIBS@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
KMEM_GROUP = @KMEM_GROUP@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -152,8 +192,8 @@ LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MAKE_HOST = @MAKE_HOST@
MKDIR_P = @MKDIR_P@
-MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
MSGMERGE = @MSGMERGE@
NEED_SETGID = @NEED_SETGID@
OBJEXT = @OBJEXT@
@@ -166,6 +206,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
REMOTE = @REMOTE@
@@ -175,6 +218,8 @@ STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -357,9 +402,7 @@ uninstall-html-am:
uninstall-info-am:
@$(PRE_UNINSTALL)
- @if test -d '$(DESTDIR)$(infodir)' && \
- (install-info --version && \
- install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+ @if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
relfile=`echo "$$file" | sed 's|^.*/||'`; \
@@ -486,10 +529,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
@@ -526,8 +574,11 @@ install-dvi: install-dvi-am
install-dvi-am: $(DVIS)
@$(NORMAL_INSTALL)
- test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)"
@list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -542,18 +593,22 @@ install-html: install-html-am
install-html-am: $(HTMLS)
@$(NORMAL_INSTALL)
- test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"
@list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \
$(am__strip_dir) \
- if test -d "$$d$$p"; then \
+ d2=$$d$$p; \
+ if test -d "$$d2"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \
$(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
- echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \
+ echo " $(INSTALL_DATA) '$$d2'/* '$(DESTDIR)$(htmldir)/$$f'"; \
+ $(INSTALL_DATA) "$$d2"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \
else \
- list2="$$list2 $$d$$p"; \
+ list2="$$list2 $$d2"; \
fi; \
done; \
test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \
@@ -565,9 +620,12 @@ install-info: install-info-am
install-info-am: $(INFO_DEPS)
@$(NORMAL_INSTALL)
- test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \
+ fi; \
for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
@@ -585,8 +643,7 @@ install-info-am: $(INFO_DEPS)
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done
@$(POST_INSTALL)
- @if (install-info --version && \
- install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+ @if $(am__can_run_installinfo); then \
list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
for file in $$list; do \
relfile=`echo "$$file" | sed 's|^.*/||'`; \
@@ -600,8 +657,11 @@ install-pdf: install-pdf-am
install-pdf-am: $(PDFS)
@$(NORMAL_INSTALL)
- test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)"
@list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -613,8 +673,11 @@ install-ps: install-ps-am
install-ps-am: $(PSS)
@$(NORMAL_INSTALL)
- test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)"
@list='$(PSS)'; test -n "$(psdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
diff --git a/doc/fdl.texi b/doc/fdl.texi
index fc19ddd..cb71f05 100644
--- a/doc/fdl.texi
+++ b/doc/fdl.texi
@@ -481,7 +481,7 @@ license notices just after the title page:
@end smallexample
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
-replace the ``with@dots{}Texts.'' line with this:
+replace the ``with@dots{}Texts.''@: line with this:
@smallexample
@group
@@ -503,4 +503,3 @@ to permit their use in free software.
@c Local Variables:
@c ispell-local-pdict: "ispell-dict"
@c End:
-
diff --git a/doc/make-stds.texi b/doc/make-stds.texi
index 7cc9537..db01628 100644
--- a/doc/make-stds.texi
+++ b/doc/make-stds.texi
@@ -8,7 +8,7 @@
@cindex standards for makefiles
@c Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001,
-@c 2004, 2005, 2006, 2007, 2008, 2010 Free Software Foundation, Inc.
+@c 2004, 2005, 2006, 2007, 2008, 2010, 2013 Free Software Foundation, Inc.
@c
@c Permission is granted to copy, distribute and/or modify this document
@c under the terms of the GNU Free Documentation License, Version 1.3
@@ -518,6 +518,19 @@ in @file{$(datadir)} or @file{$(sysconfdir)}. @file{$(localstatedir)}
should normally be @file{/usr/local/var}, but write it as
@file{$(prefix)/var}.
(If you are using Autoconf, write it as @samp{@@localstatedir@@}.)
+
+@item runstatedir
+The directory for installing data files which the programs modify
+while they run, that pertain to one specific machine, and which need
+not persist longer than the execution of the program---which is
+generally long-lived, for example, until the next reboot. PID files
+for system daemons are a typical use. In addition, this directory
+should not be cleaned except perhaps at reboot, while the general
+@file{/tmp} (@code{TMPDIR}) may be cleaned arbitrarily. This should
+normally be @file{/var/run}, but write it as
+@file{$(localstatedir)/run}. Having it as a separate variable allows
+the use of @file{/run} if desired, for example. (If you are using
+Autoconf 2.70 or later, write it as @samp{@@runstatedir@@}.)
@end table
These variables specify the directory for installing certain specific
@@ -602,7 +615,7 @@ should be written as @file{$(datarootdir)/emacs/site-lisp}.
If you are using Autoconf, write the default as @samp{@@lispdir@@}.
In order to make @samp{@@lispdir@@} work, you need the following lines
-in your @file{configure.in} file:
+in your @file{configure.ac} file:
@example
lispdir='$@{datarootdir@}/emacs/site-lisp'
@@ -715,8 +728,9 @@ documentation format) files should be made only when explicitly asked
for.
By default, the Make rules should compile and link with @samp{-g}, so
-that executable programs have debugging symbols. Users who don't mind
-being helpless can strip the executables later if they wish.
+that executable programs have debugging symbols. Otherwise, you are
+essentially helpless in the face of a crash, and it is often far from
+easy to reproduce with a fresh build.
@item install
Compile the program and copy the executables, libraries, and so on to
@@ -724,8 +738,11 @@ the file names where they should reside for actual use. If there is a
simple test to verify that a program is properly installed, this target
should run that test.
-Do not strip executables when installing them. Devil-may-care users can
-use the @code{install-strip} target to do that.
+Do not strip executables when installing them. This helps eventual
+debugging that may be needed later, and nowadays disk space is cheap
+and dynamic loaders typically ensure debug sections are not loaded during
+normal execution. Users that need stripped binaries may invoke the
+@code{install-strip} target to do that.
If possible, write the @code{install} target rule so that it does not
modify anything in the directory where the program was built, provided
@@ -837,10 +854,7 @@ the program has no bugs. However, it can be reasonable to install a
stripped executable for actual execution while saving the unstripped
executable elsewhere in case there is a bug.
-@comment The gratuitous blank line here is to make the table look better
-@comment in the printed Make manual. Please leave it in.
@item clean
-
Delete all files in the current directory that are normally created by
building the program. Also delete files in other directories if they
are created by this makefile. However, don't delete the files that
@@ -943,11 +957,12 @@ foo.dvi: foo.texi chap1.texi chap2.texi
@end smallexample
@noindent
-You must define the variable @code{TEXI2DVI} in the Makefile. It should
-run the program @code{texi2dvi}, which is part of the Texinfo
-distribution.@footnote{@code{texi2dvi} uses @TeX{} to do the real work
-of formatting. @TeX{} is not distributed with Texinfo.} Alternatively,
-write just the dependencies, and allow GNU @code{make} to provide the command.
+You must define the variable @code{TEXI2DVI} in the Makefile. It
+should run the program @code{texi2dvi}, which is part of the Texinfo
+distribution. (@code{texi2dvi} uses @TeX{} to do the real work of
+formatting. @TeX{} is not distributed with Texinfo.) Alternatively,
+write only the dependencies, and allow GNU @code{make} to provide the
+command.
Here's another example, this one for generating HTML from Texinfo:
diff --git a/doc/make.info b/doc/make.info
index bd28f2b..c6ad6e6 100644
--- a/doc/make.info
+++ b/doc/make.info
@@ -4,16 +4,16 @@ This file documents the GNU `make' utility, which determines
automatically which pieces of a large program need to be recompiled,
and issues the commands to recompile them.
- This is Edition 0.71, last updated 19 July 2010, of `The GNU Make
-Manual', for GNU `make' version 3.82.
+ This is Edition 0.72, last updated 9 October 2013, of `The GNU Make
+Manual', for GNU `make' version 4.0.
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+2010, 2011, 2012, 2013 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
- Version 1.2 or any later version published by the Free Software
+ Version 1.3 or any later version published by the Free Software
Foundation; with no Invariant Sections, with the Front-Cover Texts
being "A GNU Manual," and with the Back-Cover Texts as in (a)
below. A copy of the license is included in the section entitled
@@ -30,158 +30,172 @@ END-INFO-DIR-ENTRY

Indirect:
-make.info-1: 1319
-make.info-2: 293656
+make.info-1: 1338
+make.info-2: 291887

Tag Table:
(Indirect)
-Node: Top1319
-Node: Overview14709
-Node: Preparing15719
-Node: Reading16690
-Node: Bugs17617
-Node: Introduction19446
-Node: Rule Introduction21037
-Node: Simple Makefile22970
-Node: How Make Works26666
-Node: Variables Simplify29321
-Node: make Deduces31527
-Node: Combine By Prerequisite33260
-Node: Cleanup34289
-Node: Makefiles35707
-Node: Makefile Contents36543
-Node: Makefile Names39649
-Node: Include41260
-Ref: Include-Footnote-145008
-Node: MAKEFILES Variable45142
-Node: Remaking Makefiles46683
-Node: Overriding Makefiles50907
-Node: Reading Makefiles52935
-Node: Secondary Expansion55947
-Node: Rules63388
-Node: Rule Example66060
-Node: Rule Syntax66914
-Node: Prerequisite Types69507
-Node: Wildcards72374
-Node: Wildcard Examples74092
-Node: Wildcard Pitfall75441
-Node: Wildcard Function77230
-Node: Directory Search79014
-Node: General Search80148
-Node: Selective Search81855
-Node: Search Algorithm84843
-Node: Recipes/Search87361
-Node: Implicit/Search88684
-Node: Libraries/Search89626
-Node: Phony Targets91596
-Node: Force Targets96665
-Node: Empty Targets97702
-Node: Special Targets99007
-Node: Multiple Targets106862
-Node: Multiple Rules108727
-Node: Static Pattern110945
-Node: Static Usage111597
-Node: Static versus Implicit115316
-Node: Double-Colon117057
-Node: Automatic Prerequisites118817
-Node: Recipes123095
-Node: Recipe Syntax124268
-Node: Splitting Lines126383
-Node: Variables in Recipes129483
-Node: Echoing130802
-Node: Execution132077
-Ref: Execution-Footnote-1133488
-Node: One Shell133633
-Node: Choosing the Shell136948
-Node: Parallel141094
-Node: Errors144815
-Node: Interrupts148483
-Node: Recursion150066
-Node: MAKE Variable152164
-Node: Variables/Recursion154411
-Node: Options/Recursion159861
-Node: -w Option165021
-Node: Canned Recipes166016
-Node: Empty Recipes169000
-Node: Using Variables170148
-Node: Reference173523
-Node: Flavors175081
-Node: Advanced180821
-Node: Substitution Refs181326
-Node: Computed Names182879
-Node: Values187425
-Node: Setting188342
-Node: Appending190378
-Node: Override Directive194304
-Node: Multi-Line195931
-Node: Undefine Directive198754
-Node: Environment199840
-Node: Target-specific202091
-Node: Pattern-specific205108
-Node: Suppressing Inheritance206954
-Node: Special Variables208408
-Node: Conditionals213121
-Node: Conditional Example213834
-Node: Conditional Syntax216397
-Node: Testing Flags222127
-Node: Functions223228
-Node: Syntax of Functions224659
-Node: Text Functions226858
-Node: File Name Functions235429
-Node: Conditional Functions240651
-Node: Foreach Function243025
-Node: Call Function246237
-Node: Value Function249122
-Node: Eval Function250559
-Node: Origin Function252835
-Node: Flavor Function256051
-Node: Shell Function257117
-Node: Make Control Functions258751
-Node: Running260413
-Node: Makefile Arguments262396
-Node: Goals263112
-Node: Instead of Execution267851
-Node: Avoiding Compilation271433
-Node: Overriding273407
-Node: Testing275710
-Node: Options Summary277594
-Node: Implicit Rules287992
-Node: Using Implicit290137
-Node: Catalogue of Rules293656
-Node: Implicit Variables303004
-Node: Chained Rules307761
-Node: Pattern Rules311772
-Node: Pattern Intro313307
-Node: Pattern Examples315895
-Node: Automatic Variables317701
-Node: Pattern Match325059
-Node: Match-Anything Rules328382
-Node: Canceling Rules332256
-Node: Last Resort332970
-Node: Suffix Rules334799
-Node: Implicit Rule Search338524
-Node: Archives342023
-Node: Archive Members342721
-Node: Archive Update344331
-Node: Archive Symbols346242
-Node: Archive Pitfalls347476
-Node: Archive Suffix Rules348198
-Node: Features349745
-Node: Missing358290
-Node: Makefile Conventions362017
-Node: Makefile Basics362996
-Node: Utilities in Makefiles366163
-Node: Command Variables368661
-Node: DESTDIR371900
-Node: Directory Variables374067
-Node: Standard Targets388682
-Ref: Standard Targets-Footnote-1402458
-Node: Install Command Categories402558
-Node: Quick Reference407084
-Node: Error Messages418767
-Node: Complex Makefile426463
-Node: GNU Free Documentation License434974
-Node: Concept Index460136
-Node: Name Index526637
+Node: Top1338
+Node: Overview16115
+Node: Preparing17130
+Node: Reading18101
+Node: Bugs19028
+Node: Introduction20857
+Node: Rule Introduction22454
+Node: Simple Makefile24387
+Node: How Make Works28129
+Node: Variables Simplify30784
+Node: make Deduces32990
+Node: Combine By Prerequisite34723
+Node: Cleanup35752
+Node: Makefiles37170
+Node: Makefile Contents38006
+Node: Splitting Lines41188
+Node: Makefile Names42949
+Node: Include44560
+Ref: Include-Footnote-148308
+Node: MAKEFILES Variable48442
+Node: Remaking Makefiles49983
+Node: Overriding Makefiles54208
+Node: Reading Makefiles56236
+Node: Secondary Expansion59690
+Node: Rules67152
+Node: Rule Example69825
+Node: Rule Syntax70679
+Node: Prerequisite Types73272
+Node: Wildcards76139
+Node: Wildcard Examples77858
+Node: Wildcard Pitfall79207
+Node: Wildcard Function80996
+Node: Directory Search82780
+Node: General Search83915
+Node: Selective Search85622
+Node: Search Algorithm88610
+Node: Recipes/Search91128
+Node: Implicit/Search92451
+Node: Libraries/Search93393
+Node: Phony Targets95364
+Node: Force Targets100440
+Node: Empty Targets101477
+Node: Special Targets102782
+Node: Multiple Targets110640
+Node: Multiple Rules112505
+Node: Static Pattern114723
+Node: Static Usage115375
+Node: Static versus Implicit119095
+Node: Double-Colon120836
+Node: Automatic Prerequisites122596
+Node: Recipes126861
+Node: Recipe Syntax128034
+Node: Splitting Recipe Lines130149
+Node: Variables in Recipes133302
+Node: Echoing134628
+Node: Execution135903
+Ref: Execution-Footnote-1137316
+Node: One Shell137461
+Node: Choosing the Shell140776
+Node: Parallel144922
+Node: Parallel Output147591
+Node: Parallel Input152020
+Node: Errors153141
+Node: Interrupts156809
+Node: Recursion158392
+Node: MAKE Variable160492
+Node: Variables/Recursion162739
+Node: Options/Recursion168185
+Node: -w Option174203
+Node: Canned Recipes175198
+Node: Empty Recipes178183
+Node: Using Variables179331
+Node: Reference182761
+Node: Flavors184319
+Node: Advanced190301
+Node: Substitution Refs190806
+Node: Computed Names192359
+Node: Values196906
+Node: Setting197823
+Node: Appending200730
+Node: Override Directive204674
+Node: Multi-Line206301
+Node: Undefine Directive209125
+Node: Environment210211
+Node: Target-specific212462
+Node: Pattern-specific215489
+Node: Suppressing Inheritance217335
+Node: Special Variables218788
+Node: Conditionals224226
+Node: Conditional Example224939
+Node: Conditional Syntax227502
+Node: Testing Flags233263
+Node: Functions234364
+Node: Syntax of Functions235924
+Node: Text Functions238258
+Node: File Name Functions246829
+Node: Conditional Functions252051
+Node: Foreach Function254425
+Node: File Function257638
+Node: Call Function259639
+Node: Value Function262524
+Node: Eval Function263961
+Node: Origin Function266237
+Node: Flavor Function269455
+Node: Make Control Functions270497
+Node: Shell Function272183
+Node: Guile Function273816
+Node: Running274566
+Node: Makefile Arguments276549
+Node: Goals277265
+Node: Instead of Execution282004
+Node: Avoiding Compilation285717
+Node: Overriding287691
+Node: Testing290003
+Node: Options Summary291887
+Node: Implicit Rules303579
+Node: Using Implicit305725
+Node: Catalogue of Rules309244
+Node: Implicit Variables318592
+Node: Chained Rules323705
+Node: Pattern Rules327716
+Node: Pattern Intro329250
+Node: Pattern Examples331838
+Node: Automatic Variables333645
+Node: Pattern Match341003
+Node: Match-Anything Rules344326
+Node: Canceling Rules348205
+Node: Last Resort348919
+Node: Suffix Rules350748
+Node: Implicit Rule Search354473
+Node: Archives357973
+Node: Archive Members358678
+Node: Archive Update360288
+Node: Archive Symbols362199
+Node: Archive Pitfalls363433
+Node: Archive Suffix Rules364155
+Node: Extending make365702
+Node: Guile Integration366839
+Node: Guile Types368065
+Node: Guile Interface370487
+Node: Guile Example371774
+Node: Loading Objects373965
+Node: load Directive375452
+Node: Remaking Loaded Objects378206
+Node: Loaded Object API378840
+Node: Loaded Object Example385601
+Node: Features387849
+Node: Missing397021
+Node: Makefile Conventions400749
+Node: Makefile Basics401728
+Node: Utilities in Makefiles404895
+Node: Command Variables407393
+Node: DESTDIR410632
+Node: Directory Variables412799
+Node: Standard Targets428164
+Node: Install Command Categories442269
+Node: Quick Reference446795
+Node: Error Messages459490
+Node: Complex Makefile467403
+Node: GNU Free Documentation License476021
+Node: Concept Index501183
+Node: Name Index571815

End Tag Table
diff --git a/doc/make.info-1 b/doc/make.info-1
index 509ce05..4025d3e 100644
--- a/doc/make.info-1
+++ b/doc/make.info-1
@@ -4,16 +4,16 @@ This file documents the GNU `make' utility, which determines
automatically which pieces of a large program need to be recompiled,
and issues the commands to recompile them.
- This is Edition 0.71, last updated 19 July 2010, of `The GNU Make
-Manual', for GNU `make' version 3.82.
+ This is Edition 0.72, last updated 9 October 2013, of `The GNU Make
+Manual', for GNU `make' version 4.0.
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+2010, 2011, 2012, 2013 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
- Version 1.2 or any later version published by the Free Software
+ Version 1.3 or any later version published by the Free Software
Foundation; with no Invariant Sections, with the Front-Cover Texts
being "A GNU Manual," and with the Back-Cover Texts as in (a)
below. A copy of the license is included in the section entitled
@@ -38,16 +38,16 @@ This file documents the GNU `make' utility, which determines
automatically which pieces of a large program need to be recompiled,
and issues the commands to recompile them.
- This is Edition 0.71, last updated 19 July 2010, of `The GNU Make
-Manual', for GNU `make' version 3.82.
+ This is Edition 0.72, last updated 9 October 2013, of `The GNU Make
+Manual', for GNU `make' version 4.0.
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+2010, 2011, 2012, 2013 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
- Version 1.2 or any later version published by the Free Software
+ Version 1.3 or any later version published by the Free Software
Foundation; with no Invariant Sections, with the Front-Cover Texts
being "A GNU Manual," and with the Back-Cover Texts as in (a)
below. A copy of the license is included in the section entitled
@@ -72,6 +72,7 @@ Manual', for GNU `make' version 3.82.
* Implicit Rules:: Use implicit rules to treat many files alike,
based on their file names.
* Archives:: How `make' can update library archives.
+* Extending make:: Using extensions to `make'.
* Features:: Features GNU `make' has over other `make's.
* Missing:: What GNU `make' lacks from other `make's.
* Makefile Conventions:: Conventions for writing makefiles for
@@ -81,27 +82,27 @@ Manual', for GNU `make' version 3.82.
* Complex Makefile:: A real example of a straightforward,
but nontrivial, makefile.
-* GNU Free Documentation License:: License for copying this manual
-* Concept Index:: Index of Concepts
-* Name Index:: Index of Functions, Variables, & Directives
+* GNU Free Documentation License:: License for copying this manual.
+* Concept Index:: Index of Concepts.
+* Name Index:: Index of Functions, Variables, & Directives.
--- The Detailed Node Listing ---
Overview of `make'
-* Preparing:: Preparing and running make
-* Reading:: On reading this text
-* Bugs:: Problems and bugs
+* Preparing:: Preparing and running `make'.
+* Reading:: On reading this text.
+* Bugs:: Problems and bugs.
An Introduction to Makefiles
* Rule Introduction:: What a rule looks like.
-* Simple Makefile:: A simple makefile
-* How Make Works:: How `make' processes this makefile
-* Variables Simplify:: Variables make makefiles simpler
-* make Deduces:: Letting `make' deduce the recipe
-* Combine By Prerequisite:: Another style of makefile
-* Cleanup:: Rules for cleaning the directory
+* Simple Makefile:: A simple makefile.
+* How Make Works:: How `make' processes this makefile.
+* Variables Simplify:: Variables make makefiles simpler.
+* make Deduces:: Letting `make' deduce the recipes.
+* Combine By Prerequisite:: Another style of makefile.
+* Cleanup:: Rules for cleaning the directory.
Writing Makefiles
@@ -115,6 +116,10 @@ Writing Makefiles
* Reading Makefiles:: How makefiles are parsed.
* Secondary Expansion:: How and when secondary expansion is performed.
+What Makefiles Contain
+
+* Splitting Lines:: Splitting long lines in makefiles
+
Writing Rules
* Rule Example:: An example explained.
@@ -141,7 +146,7 @@ Writing Rules
Using Wildcard Characters in File Names
-* Wildcard Examples:: Several examples
+* Wildcard Examples:: Several examples.
* Wildcard Pitfall:: Problems to avoid.
* Wildcard Function:: How to cause wildcard expansion where
it does not normally take place.
@@ -177,14 +182,20 @@ Writing Recipes in Rules
Recipe Syntax
-* Splitting Lines:: Breaking long recipe lines for readability.
+* Splitting Recipe Lines:: Breaking long recipe lines for readability.
* Variables in Recipes:: Using `make' variables in recipes.
Recipe Execution
+* One Shell:: One shell for all lines in a recipe.
* Choosing the Shell:: How `make' chooses the shell used
to run recipes.
+Parallel Execution
+
+* Parallel Output:: Handling output during parallel execution
+* Parallel Input:: Handling input during parallel execution
+
Recursive Use of `make'
* MAKE Variable:: The special effects of using `$(MAKE)'.
@@ -206,6 +217,8 @@ How to Use Variables
the user has set it with a command argument.
* Multi-Line:: An alternate way to set a variable
to a multi-line string.
+* Undefine Directive:: How to undefine a variable so that it appears
+ as if it was never set.
* Environment:: Variable values can come from the environment.
* Target-specific:: Variable values can be defined on a per-target
basis.
@@ -233,13 +246,15 @@ Functions for Transforming Text
* File Name Functions:: Functions for manipulating file names.
* Conditional Functions:: Functions that implement conditions.
* Foreach Function:: Repeat some text with controlled variation.
+* File Function:: Write text to a file.
* Call Function:: Expand a user-defined function.
* Value Function:: Return the un-expanded value of a variable.
* Eval Function:: Evaluate the arguments as makefile syntax.
* Origin Function:: Find where a variable got its value.
* Flavor Function:: Find out the flavor of a variable.
-* Shell Function:: Substitute the output of a shell command.
* Make Control Functions:: Functions that control how make runs.
+* Shell Function:: Substitute the output of a shell command.
+* Guile Function:: Use GNU Guile embedded scripting language.
How to Run `make'
@@ -260,7 +275,7 @@ How to Run `make'
Using Implicit Rules
* Using Implicit:: How to use an existing implicit rule
- to get the recipe for updating a file.
+ to get the recipes for updating a file.
* Catalogue of Rules:: A list of built-in implicit rules.
* Implicit Variables:: How to change what predefined rules do.
* Chained Rules:: How to use a chain of implicit rules.
@@ -295,6 +310,24 @@ Implicit Rule for Archive Member Targets
* Archive Symbols:: How to update archive symbol directories.
+Extending GNU `make'
+
+* Guile Integration:: Using Guile as an embedded scripting language.
+* Loading Objects:: Loading dynamic objects as extensions.
+
+GNU Guile Integration
+
+* Guile Types:: Converting Guile types to `make' strings.
+* Guile Interface:: Invoking `make' functions from Guile.
+* Guile Example:: Example using Guile in `make'.
+
+Loading Dynamic Objects
+
+* load Directive:: Loading dynamic objects as extensions.
+* Remaking Loaded Objects:: How loaded objects get remade.
+* Loaded Object API:: Programmatic interface for loaded objects.
+* Loaded Object Example:: Example of a loaded object
+

File: make.info, Node: Overview, Next: Introduction, Prev: Top, Up: Top
@@ -318,9 +351,9 @@ automatically from others whenever the others change.
* Menu:
-* Preparing:: Preparing and Running Make
-* Reading:: On Reading this Text
-* Bugs:: Problems and Bugs
+* Preparing:: Preparing and running `make'.
+* Reading:: On reading this text.
+* Bugs:: Problems and bugs.

File: make.info, Node: Preparing, Next: Reading, Prev: Overview, Up: Overview
@@ -438,12 +471,12 @@ together to produce the new executable editor.
* Menu:
* Rule Introduction:: What a rule looks like.
-* Simple Makefile:: A Simple Makefile
-* How Make Works:: How `make' Processes This Makefile
-* Variables Simplify:: Variables Make Makefiles Simpler
-* make Deduces:: Letting `make' Deduce the Recipes
-* Combine By Prerequisite:: Another Style of Makefile
-* Cleanup:: Rules for Cleaning the Directory
+* Simple Makefile:: A simple makefile.
+* How Make Works:: How `make' processes this makefile.
+* Variables Simplify:: Variables make makefiles simpler.
+* make Deduces:: Letting `make' deduce the recipes.
+* Combine By Prerequisite:: Another style of makefile.
+* Cleanup:: Rules for cleaning the directory.

File: make.info, Node: Rule Introduction, Next: Simple Makefile, Prev: Introduction, Up: Introduction
@@ -530,8 +563,9 @@ that change the editor buffer include `buffer.h'.
rm edit main.o kbd.o command.o display.o \
insert.o search.o files.o utils.o
-We split each long line into two lines using backslash-newline; this is
-like using one long line, but is easier to read.
+We split each long line into two lines using backslash/newline; this is
+like using one long line, but is easier to read. *Note Splitting Long
+Lines: Splitting Lines.
To use this makefile to create the executable file called `edit',
type:
@@ -892,6 +926,47 @@ variables, and directives are described at length in later chapters.
treated as `make' comments or as recipe text, depending on the
context in which the variable is evaluated.
+* Menu:
+
+* Splitting Lines:: Splitting long lines in makefiles
+
+
+File: make.info, Node: Splitting Lines, Prev: Makefile Contents, Up: Makefile Contents
+
+3.1.1 Splitting Long Lines
+--------------------------
+
+Makefiles use a "line-based" syntax in which the newline character is
+special and marks the end of a statement. GNU `make' has no limit on
+the length of a statement line, up to the amount of memory in your
+computer.
+
+ However, it is difficult to read lines which are too long to display
+without wrapping or scrolling. So, you can format your makefiles for
+readability by adding newlines into the middle of a statement: you do
+this by escaping the internal newlines with a backslash (`\')
+character. Where we need to make a distinction we will refer to
+"physical lines" as a single line ending with a newline (regardless of
+whether it is escaped) and a "logical line" being a complete statement
+including all escaped newlines up to the first non-escaped newline.
+
+ The way in which backslash/newline combinations are handled depends
+on whether the statement is a recipe line or a non-recipe line.
+Handling of backslash/newline in a recipe line is discussed later
+(*note Splitting Recipe Lines::).
+
+ Outside of recipe lines, backslash/newlines are converted into a
+single space character. Once that is done, all whitespace around the
+backslash/newline is condensed into a single space: this includes all
+whitespace preceding the backslash, all whitespace at the beginning of
+the line after the backslash/newline, and any consecutive
+backslash/newline combinations.
+
+ If the `.POSIX' special target is defined then backslash/newline
+handling is modified slightly to conform to POSIX.2: first, whitespace
+preceding a backslash is not removed and second, consecutive
+backslash/newlines are not condensed.
+

File: make.info, Node: Makefile Names, Next: Include, Prev: Makefile Contents, Up: Makefiles
@@ -1066,7 +1141,7 @@ to date.)
If you know that one or more of your makefiles cannot be remade and
you want to keep `make' from performing an implicit rule search on
them, perhaps for efficiency reasons, you can use any normal method of
-preventing implicit rule lookup to do so. For example, you can write
+preventing implicit rule look-up to do so. For example, you can write
an explicit rule with the makefile as the target, and an empty recipe
(*note Using Empty Recipes: Empty Recipes.).
@@ -1129,7 +1204,7 @@ File: make.info, Node: Overriding Makefiles, Next: Reading Makefiles, Prev: R
Sometimes it is useful to have a makefile that is mostly just like
another makefile. You can often use the `include' directive to include
one in the other, and add more targets or variable definitions.
-However, it is illegal for two makefiles to give different recipes for
+However, it is invalid for two makefiles to give different recipes for
the same target. But there is another way.
In the containing makefile (the one that wants to include the other),
@@ -1203,7 +1278,9 @@ Variable definitions are parsed as follows:
IMMEDIATE = DEFERRED
IMMEDIATE ?= DEFERRED
IMMEDIATE := IMMEDIATE
+ IMMEDIATE ::= IMMEDIATE
IMMEDIATE += DEFERRED or IMMEDIATE
+ IMMEDIATE != IMMEDIATE
define IMMEDIATE
DEFERRED
@@ -1221,13 +1298,26 @@ Variable definitions are parsed as follows:
IMMEDIATE
endef
+ define IMMEDIATE ::=
+ IMMEDIATE
+ endef
+
define IMMEDIATE +=
DEFERRED or IMMEDIATE
endef
+ define IMMEDIATE !=
+ IMMEDIATE
+ endef
+
For the append operator, `+=', the right-hand side is considered
-immediate if the variable was previously set as a simple variable
-(`:='), and deferred otherwise.
+immediate if the variable was previously set as a simple variable (`:='
+or `::='), and deferred otherwise.
+
+ For the shell assignment operator, `!=', the right-hand side is
+evaluated immediately and handed to the shell. The result is stored in
+the variable named on the left, and that variable becomes a simple
+variable (and will thus be re-evaluated on each reference).
Conditional Directives
----------------------
@@ -1291,8 +1381,8 @@ makefile:
(escaped) variable reference is simply unescaped, without being
recognized as a variable reference. Now during the secondary expansion
the first word is expanded again but since it contains no variable or
-function references it remains the static value `onefile', while the
-second word is now a normal reference to the variable TWOVAR, which is
+function references it remains the value `onefile', while the second
+word is now a normal reference to the variable TWOVAR, which is
expanded to the value `twofile'. The final result is that there are
two prerequisites, `onefile' and `twofile'.
@@ -1425,9 +1515,10 @@ example:
/tmp/foo.o:
%.o: $$(addsuffix /%.c,foo bar) foo.h
+ @echo $^
- The prerequisite list after the secondary expansion and directory
-prefix reconstruction will be `/tmp/foo/foo.c /tmp/var/bar/foo.c
+ The prerequisite list printed, after the secondary expansion and
+directory prefix reconstruction, will be `/tmp/foo/foo.c /tmp/bar/foo.c
foo.h'. If you are not interested in this reconstruction, you can use
`$$*' instead of `%' in the prerequisites list.
@@ -1465,7 +1556,7 @@ Specify the Goals: Goals.
* Wildcards:: Using wildcard characters such as `*'.
* Directory Search:: Searching other directories for source files.
* Phony Targets:: Using a target that is not a real file's name.
-* Force Targets:: You can use a target without recipes
+* Force Targets:: You can use a target without a recipe
or prerequisites to mark other targets
as phony.
* Empty Targets:: When only the date matters and the
@@ -1663,7 +1754,7 @@ specific file whose name consists of `foo', an asterisk, and `bar'.
* Menu:
-* Wildcard Examples:: Several examples
+* Wildcard Examples:: Several examples.
* Wildcard Pitfall:: Problems to avoid.
* Wildcard Function:: How to cause wildcard expansion where
it does not normally take place.
@@ -1819,7 +1910,7 @@ do not need to change the individual rules, just the search paths.
* Selective Search:: Specifying a search path
for a specified class of names.
* Search Algorithm:: When and how search paths are applied.
-* Recipes/Search:: How to write recipes that work together
+* Recipes/Search:: How to write recipes that work together
with search paths.
* Implicit/Search:: How search paths affect implicit rules.
* Libraries/Search:: Directory search for link libraries.
@@ -2096,7 +2187,7 @@ and `libNAME.a', this is customizable via the `.LIBPATTERNS' variable.
Each word in the value of this variable is a pattern string. When a
prerequisite like `-lNAME' is seen, `make' will replace the percent in
each pattern in the list with NAME and perform the above directory
-searches using each library filename.
+searches using each library file name.
The default value for `.LIBPATTERNS' is `lib%.so lib%.a', which
provides the default behavior described above.
@@ -2154,9 +2245,9 @@ target, then you write the rule, like this:
Another example of the usefulness of phony targets is in conjunction
with recursive invocations of `make' (for more information, see *note
Recursive Use of `make': Recursion.). In this case the makefile will
-often contain a variable which lists a number of subdirectories to be
+often contain a variable which lists a number of sub-directories to be
built. One way to handle this is with one rule whose recipe is a shell
-loop over the subdirectories, like this:
+loop over the sub-directories, like this:
SUBDIRS = foo bar baz
@@ -2166,7 +2257,7 @@ loop over the subdirectories, like this:
done
There are problems with this method, however. First, any error
-detected in a submake is ignored by this rule, so it will continue to
+detected in a sub-make is ignored by this rule, so it will continue to
build the rest of the directories even when one fails. This can be
overcome by adding shell commands to note the error and exit, but then
it will do so even if `make' is invoked with the `-k' option, which is
@@ -2174,9 +2265,9 @@ unfortunate. Second, and perhaps more importantly, you cannot take
advantage of `make''s ability to build targets in parallel (*note
Parallel Execution: Parallel.), since there is only one rule.
- By declaring the subdirectories as phony targets (you must do this as
-the subdirectory obviously always exists; otherwise it won't be built)
-you can remove these problems:
+ By declaring the sub-directories as phony targets (you must do this
+as the sub-directory obviously always exists; otherwise it won't be
+built) you can remove these problems:
SUBDIRS = foo bar baz
@@ -2189,8 +2280,8 @@ you can remove these problems:
foo: baz
- Here we've also declared that the `foo' subdirectory cannot be built
-until after the `baz' subdirectory is complete; this kind of
+ Here we've also declared that the `foo' sub-directory cannot be
+built until after the `baz' sub-directory is complete; this kind of
relationship declaration is particularly important when attempting
parallel builds.
@@ -2391,16 +2482,16 @@ Certain names have special meanings if they appear as targets.
lessen the chance of `make' incorrectly concluding that a file is
up to date. Unfortunately, some hosts do not provide a way to set
a high resolution file time stamp, so commands like `cp -p' that
- explicitly set a file's time stamp must discard its subsecond part.
- If a file is created by such a command, you should list it as a
- prerequisite of `.LOW_RESOLUTION_TIME' so that `make' does not
- mistakenly conclude that the file is out of date. For example:
+ explicitly set a file's time stamp must discard its sub-second
+ part. If a file is created by such a command, you should list it
+ as a prerequisite of `.LOW_RESOLUTION_TIME' so that `make' does
+ not mistakenly conclude that the file is out of date. For example:
.LOW_RESOLUTION_TIME: dst
dst: src
cp -p src dst
- Since `cp -p' discards the subsecond part of `src''s time stamp,
+ Since `cp -p' discards the sub-second part of `src''s time stamp,
`dst' is typically slightly older than `src' even when it is up to
date. The `.LOW_RESOLUTION_TIME' line causes `make' to consider
`dst' to be up to date if its time stamp is at the start of the
@@ -2644,7 +2735,7 @@ the target; see *note Automatic Variables::.
Each target specified must match the target pattern; a warning is
issued for each target that does not. If you have a list of files,
only some of which will match the pattern, you can use the `filter'
-function to remove nonmatching file names (*note Functions for String
+function to remove non-matching file names (*note Functions for String
Substitution and Analysis: Text Functions.):
files = foo.elc bar.o lose.o
@@ -2776,10 +2867,10 @@ generates the output:
Thus you no longer have to write all those rules yourself. The
compiler will do it for you.
- Note that such a prerequisite constitutes mentioning `main.o' in a
-makefile, so it can never be considered an intermediate file by implicit
-rule search. This means that `make' won't ever remove the file after
-using it; *note Chains of Implicit Rules: Chained Rules.
+ Note that such a rule constitutes mentioning `main.o' in a makefile,
+so it can never be considered an intermediate file by implicit rule
+search. This means that `make' won't ever remove the file after using
+it; *note Chains of Implicit Rules: Chained Rules.
With old `make' programs, it was traditional practice to use this
compiler feature to generate prerequisites on demand with a command like
@@ -2814,8 +2905,8 @@ command (or any other command) fails (exits with a nonzero status).
With the GNU C compiler, you may wish to use the `-MM' flag instead
of `-M'. This omits prerequisites on system header files. *Note
-Options Controlling the Preprocessor: (gcc.info)Preprocessor Options,
-for details.
+Options Controlling the Preprocessor: (gcc)Preprocessor Options, for
+details.
The purpose of the `sed' command is to translate (for example):
@@ -2923,11 +3014,11 @@ they are ignored.
* Menu:
-* Splitting Lines:: Breaking long recipe lines for readability.
+* Splitting Recipe Lines:: Breaking long recipe lines for readability.
* Variables in Recipes:: Using `make' variables in recipes.

-File: make.info, Node: Splitting Lines, Next: Variables in Recipes, Prev: Recipe Syntax, Up: Recipe Syntax
+File: make.info, Node: Splitting Recipe Lines, Next: Variables in Recipes, Prev: Recipe Syntax, Up: Recipe Syntax
5.1.1 Splitting Recipe Lines
----------------------------
@@ -2940,13 +3031,14 @@ of lines like this is considered a single recipe line, and one instance
of the shell will be invoked to run it.
However, in contrast to how they are treated in other places in a
-makefile, backslash-newline pairs are _not_ removed from the recipe.
-Both the backslash and the newline characters are preserved and passed
-to the shell. How the backslash-newline is interpreted depends on your
-shell. If the first character of the next line after the
-backslash-newline is the recipe prefix character (a tab by default;
-*note Special Variables::), then that character (and only that
-character) is removed. Whitespace is never added to the recipe.
+makefile (*note Splitting Long Lines: Splitting Lines.),
+backslash/newline pairs are _not_ removed from the recipe. Both the
+backslash and the newline characters are preserved and passed to the
+shell. How the backslash/newline is interpreted depends on your shell.
+If the first character of the next line after the backslash/newline is
+the recipe prefix character (a tab by default; *note Special
+Variables::), then that character (and only that character) is removed.
+Whitespace is never added to the recipe.
For example, the recipe for the all target in this makefile:
@@ -2993,13 +3085,13 @@ with single quotes (`'...''). This is the way the default shell
different shell in your makefiles it may treat them differently.
Sometimes you want to split a long line inside of single quotes, but
-you don't want the backslash-newline to appear in the quoted content.
+you don't want the backslash/newline to appear in the quoted content.
This is often the case when passing scripts to languages such as Perl,
where extraneous backslashes inside the script can change its meaning
or even be a syntax error. One simple way of handling this is to place
the quoted string, or even the entire command, into a `make' variable
then use the variable in the recipe. In this situation the newline
-quoting rules for makefiles will be used, and the backslash-newline
+quoting rules for makefiles will be used, and the backslash/newline
will be removed. If we rewrite our example above using this method:
HELLO = 'hello \
@@ -3016,7 +3108,7 @@ Target-specific Variable Values: Target-specific.) to obtain a tighter
correspondence between the variable and the recipe that uses it.

-File: make.info, Node: Variables in Recipes, Prev: Splitting Lines, Up: Recipe Syntax
+File: make.info, Node: Variables in Recipes, Prev: Splitting Recipe Lines, Up: Recipe Syntax
5.1.2 Using Variables in Recipes
--------------------------------
@@ -3091,10 +3183,10 @@ File: make.info, Node: Execution, Next: Parallel, Prev: Echoing, Up: Recipes
====================
When it is time to execute recipes to update a target, they are
-executed by invoking a new subshell for each line of the recipe, unless
-the `.ONESHELL' special target is in effect (*note Using One Shell: One
-Shell.) (In practice, `make' may take shortcuts that do not affect the
-results.)
+executed by invoking a new sub-shell for each line of the recipe,
+unless the `.ONESHELL' special target is in effect (*note Using One
+Shell: One Shell.) (In practice, `make' may take shortcuts that do not
+affect the results.)
*Please note:* this implies that setting shell variables and
invoking shell commands such as `cd' that set a context local to each
@@ -3114,7 +3206,7 @@ case it would certainly cause `../foo' to be truncated, at least).
* Menu:
-* One Shell:: One shell for all lines in a recipe
+* One Shell:: One shell for all lines in a recipe.
* Choosing the Shell:: How `make' chooses the shell used
to run recipes.
@@ -3319,32 +3411,9 @@ If there is nothing looking like an integer after the `-j' option,
there is no limit on the number of job slots. The default number of job
slots is one, which means serial execution (one thing at a time).
- One unpleasant consequence of running several recipes simultaneously
-is that output generated by the recipes appears whenever each recipe
-sends it, so messages from different recipes may be interspersed.
-
- Another problem is that two processes cannot both take input from the
-same device; so to make sure that only one recipe tries to take input
-from the terminal at once, `make' will invalidate the standard input
-streams of all but one running recipe. This means that attempting to
-read from standard input will usually be a fatal error (a `Broken pipe'
-signal) for most child processes if there are several.
-
- It is unpredictable which recipe will have a valid standard input
-stream (which will come from the terminal, or wherever you redirect the
-standard input of `make'). The first recipe run will always get it
-first, and the first recipe started after that one finishes will get it
-next, and so on.
-
- We will change how this aspect of `make' works if we find a better
-alternative. In the mean time, you should not rely on any recipe using
-standard input at all if you are using the parallel execution feature;
-but if you are not using this feature, then standard input works
-normally in all recipes.
-
- Finally, handling recursive `make' invocations raises issues. For
-more information on this, see *note Communicating Options to a
-Sub-`make': Options/Recursion.
+ Handling recursive `make' invocations raises issues for parallel
+execution. For more information on this, see *note Communicating
+Options to a Sub-`make': Options/Recursion.
If a recipe fails (is killed by a signal or exits with a nonzero
status), and errors are not ignored for that recipe (*note Errors in
@@ -3374,6 +3443,126 @@ average goes below that limit, or until all the other jobs finish.
By default, there is no load limit.
+* Menu:
+
+* Parallel Output:: Handling output during parallel execution
+* Parallel Input:: Handling input during parallel execution
+
+
+File: make.info, Node: Parallel Output, Next: Parallel Input, Prev: Parallel, Up: Parallel
+
+5.4.1 Output During Parallel Execution
+--------------------------------------
+
+When running several recipes in parallel the output from each recipe
+appears as soon as it is generated, with the result that messages from
+different recipes may be interspersed, sometimes even appearing on the
+same line. This can make reading the output very difficult.
+
+ To avoid this you can use the `--output-sync' (`-O') option. This
+option instructs `make' to save the output from the commands it invokes
+and print it all once the commands are completed. Additionally, if
+there are multiple recursive `make' invocations running in parallel,
+they will communicate so that only one of them is generating output at
+a time.
+
+ If working directory printing is enabled (*note The
+`--print-directory' Option: -w Option.), the enter/leave messages are
+printed around each output grouping. If you prefer not to see these
+messages add the `--no-print-directory' option to `MAKEFLAGS'.
+
+ There are four levels of granularity when synchronizing output,
+specified by giving an argument to the option (e.g., `-Oline' or
+`--output-sync=recurse').
+
+`none'
+ This is the default: all output is sent directly as it is
+ generated and no synchronization is performed.
+
+`line'
+ Output from each individual line of the recipe is grouped and
+ printed as soon as that line is complete. If a recipe consists of
+ multiple lines, they may be interspersed with lines from other
+ recipes.
+
+`target'
+ Output from the entire recipe for each target is grouped and
+ printed once the target is complete. This is the default if the
+ `--output-sync' or `-O' option is given with no argument.
+
+`recurse'
+ Output from each recursive invocation of `make' is grouped and
+ printed once the recursive invocation is complete.
+
+
+ Regardless of the mode chosen, the total build time will be the same.
+The only difference is in how the output appears.
+
+ The `target' and `recurse' modes both collect the output of the
+entire recipe of a target and display it uninterrupted when the recipe
+completes. The difference between them is in how recipes that contain
+recursive invocations of `make' are treated (*note Recursive Use of
+`make': Recursion.). For all recipes which have no recursive lines,
+the `target' and `recurse' modes behave identically.
+
+ If the `recurse' mode is chosen, recipes that contain recursive
+`make' invocations are treated the same as other targets: the output
+from the recipe, including the output from the recursive `make', is
+saved and printed after the entire recipe is complete. This ensures
+output from all the targets built by a given recursive `make' instance
+are grouped together, which may make the output easier to understand.
+However it also leads to long periods of time during the build where no
+output is seen, followed by large bursts of output. If you are not
+watching the build as it proceeds, but instead viewing a log of the
+build after the fact, this may be the best option for you.
+
+ If you are watching the output, the long gaps of quiet during the
+build can be frustrating. The `target' output synchronization mode
+detects when `make' is going to be invoked recursively, using the
+standard methods, and it will not synchronize the output of those
+lines. The recursive `make' will perform the synchronization for its
+targets and the output from each will be displayed immediately when it
+completes. Be aware that output from recursive lines of the recipe are
+not synchronized (for example if the recursive line prints a message
+before running `make', that message will not be synchronized).
+
+ The `line' mode can be useful for front-ends that are watching the
+output of `make' to track when recipes are started and completed.
+
+ Some programs invoked by `make' may behave differently if they
+determine they're writing output to a terminal versus a file (often
+described as "interactive" vs. "non-interactive" modes). For example,
+many programs that can display colorized output will not do so if they
+determine they are not writing to a terminal. If your makefile invokes
+a program like this then using the output synchronization options will
+cause the program to believe it's running in "non-interactive" mode
+even though the output will ultimately go to the terminal.
+
+
+File: make.info, Node: Parallel Input, Prev: Parallel Output, Up: Parallel
+
+5.4.2 Input During Parallel Execution
+-------------------------------------
+
+Two processes cannot both take input from the same device at the same
+time. To make sure that only one recipe tries to take input from the
+terminal at once, `make' will invalidate the standard input streams of
+all but one running recipe. If another recipe attempts to read from
+standard input it will usually incur a fatal error (a `Broken pipe'
+signal).
+
+ It is unpredictable which recipe will have a valid standard input
+stream (which will come from the terminal, or wherever you redirect the
+standard input of `make'). The first recipe run will always get it
+first, and the first recipe started after that one finishes will get it
+next, and so on.
+
+ We will change how this aspect of `make' works if we find a better
+alternative. In the mean time, you should not rely on any recipe using
+standard input at all if you are using the parallel execution feature;
+but if you are not using this feature, then standard input works
+normally in all recipes.
+

File: make.info, Node: Errors, Next: Interrupts, Prev: Parallel, Up: Recipes
@@ -3490,8 +3679,8 @@ File: make.info, Node: Recursion, Next: Canned Recipes, Prev: Interrupts, Up
Recursive use of `make' means using `make' as a command in a makefile.
This technique is useful when you want separate makefiles for various
subsystems that compose a larger system. For example, suppose you have
-a subdirectory `subdir' which has its own makefile, and you would like
-the containing directory's makefile to run `make' on the subdirectory.
+a sub-directory `subdir' which has its own makefile, and you would like
+the containing directory's makefile to run `make' on the sub-directory.
You can do it by writing this:
subsystem:
@@ -3581,9 +3770,9 @@ File: make.info, Node: Variables/Recursion, Next: Options/Recursion, Prev: MA
Variable values of the top-level `make' can be passed to the sub-`make'
through the environment by explicit request. These variables are
-defined in the sub-`make' as defaults, but do not override what is
-specified in the makefile used by the sub-`make' makefile unless you
-use the `-e' switch (*note Summary of Options: Options Summary.).
+defined in the sub-`make' as defaults, but they do not override
+variables defined in the makefile used by the sub-`make' unless you use
+the `-e' switch (*note Summary of Options: Options Summary.).
To pass down, or "export", a variable, `make' adds the variable and
its value to the environment for running each line of the recipe. The
@@ -3813,6 +4002,22 @@ For instance, the `-t', `-n', and `-q' options, if put in one of these
variables, could have disastrous consequences and would certainly have
at least surprising and probably annoying effects.
+ If you'd like to run other implementations of `make' in addition to
+GNU `make', and hence do not want to add GNU `make'-specific flags to
+the `MAKEFLAGS' variable, you can add them to the `GNUMAKEFLAGS'
+variable instead. This variable is parsed just before `MAKEFLAGS', in
+the same way as `MAKEFLAGS'. When `make' constructs `MAKEFLAGS' to
+pass to a recursive `make' it will include all flags, even those taken
+from `GNUMAKEFLAGS'. As a result, after parsing `GNUMAKEFLAGS' GNU
+`make' sets this variable to the empty string to avoid duplicating
+flags during recursion.
+
+ It's best to use `GNUMAKEFLAGS' only with flags which won't
+materially change the behavior of your makefiles. If your makefiles
+require GNU make anyway then simply use `MAKEFLAGS'. Flags such as
+`--no-print-directory' or `--output-sync' may be appropriate for
+`GNUMAKEFLAGS'.
+

File: make.info, Node: -w Option, Prev: Options/Recursion, Up: Recursion
@@ -3890,7 +4095,7 @@ Implicit Rules.).
In recipe execution, each line of a canned sequence is treated just
as if the line appeared on its own in the rule, preceded by a tab. In
-particular, `make' invokes a separate subshell for each line. You can
+particular, `make' invokes a separate sub-shell for each line. You can
use the special prefix characters that affect command lines (`@', `-',
and `+') on each line of a canned sequence. *Note Writing Recipes in
Rules: Recipes. For example, using this canned sequence:
@@ -3962,13 +4167,14 @@ definitions using `=', and the bodies of variable definitions using the
compilers, programs to run, directories to look in for source files,
directories to write output in, or anything else you can imagine.
- A variable name may be any sequence of characters not containing `:',
-`#', `=', or leading or trailing whitespace. However, variable names
-containing characters other than letters, numbers, and underscores
-should be avoided, as they may be given special meanings in the future,
-and with some shells they cannot be passed through the environment to a
-sub-`make' (*note Communicating Variables to a Sub-`make':
-Variables/Recursion.).
+ A variable name may be any sequence of characters not containing
+`:', `#', `=', or whitespace. However, variable names containing
+characters other than letters, numbers, and underscores should be
+considered carefully, as in some shells they cannot be passed through
+the environment to a sub-`make' (*note Communicating Variables to a
+Sub-`make': Variables/Recursion.). Variable names beginning with `.'
+and an uppercase letter may be given special meaning in future versions
+of `make'.
Variable names are case-sensitive. The names `foo', `FOO', and
`Foo' all refer to different variables.
@@ -4077,9 +4283,9 @@ called "recursive expansion".
will echo `Huh?': `$(foo)' expands to `$(bar)' which expands to
`$(ugh)' which finally expands to `Huh?'.
- This flavor of variable is the only sort supported by other versions
-of `make'. It has its advantages and its disadvantages. An advantage
-(most would say) is that:
+ This flavor of variable is the only sort supported by most other
+versions of `make'. It has its advantages and its disadvantages. An
+advantage (most would say) is that:
CFLAGS = $(include_dirs) -O
include_dirs = -Ifoo -Ibar
@@ -4103,14 +4309,18 @@ called, or even how many times.
To avoid all the problems and inconveniences of recursively expanded
variables, there is another flavor: simply expanded variables.
- "Simply expanded variables" are defined by lines using `:=' (*note
-Setting Variables: Setting.). The value of a simply expanded variable
-is scanned once and for all, expanding any references to other
-variables and functions, when the variable is defined. The actual
-value of the simply expanded variable is the result of expanding the
-text that you write. It does not contain any references to other
-variables; it contains their values _as of the time this variable was
-defined_. Therefore,
+ "Simply expanded variables" are defined by lines using `:=' or `::='
+(*note Setting Variables: Setting.). Both forms are equivalent in GNU
+`make'; however only the `::=' form is described by the POSIX standard
+(support for `::=' was added to the POSIX standard in 2012, so older
+versions of `make' won't accept this form either).
+
+ The value of a simply expanded variable is scanned once and for all,
+expanding any references to other variables and functions, when the
+variable is defined. The actual value of the simply expanded variable
+is the result of expanding the text that you write. It does not
+contain any references to other variables; it contains their values _as
+of the time this variable was defined_. Therefore,
x := foo
y := $(x) bar
@@ -4289,7 +4499,7 @@ Here the innermost `$(x)' expands to `y', so `$($(x))' expands to
`u'.
References to recursively-expanded variables within a variable name
-are reexpanded in the usual fashion. For example:
+are re-expanded in the usual fashion. For example:
x = $(y)
y = z
@@ -4424,8 +4634,8 @@ File: make.info, Node: Setting, Next: Appending, Prev: Values, Up: Using Var
=====================
To set a variable from the makefile, write a line starting with the
-variable name followed by `=' or `:='. Whatever follows the `=' or
-`:=' on the line becomes the value. For example,
+variable name followed by `=' `:=', or `::='. Whatever follows the
+`=', `:=', or `::=' on the line becomes the value. For example,
objects = main.o foo.o bar.o utils.o
@@ -4433,21 +4643,19 @@ defines a variable named `objects'. Whitespace around the variable
name and immediately after the `=' is ignored.
Variables defined with `=' are "recursively expanded" variables.
-Variables defined with `:=' are "simply expanded" variables; these
-definitions can contain variable references which will be expanded
-before the definition is made. *Note The Two Flavors of Variables:
-Flavors.
+Variables defined with `:=' or `::=' are "simply expanded" variables;
+these definitions can contain variable references which will be
+expanded before the definition is made. *Note The Two Flavors of
+Variables: Flavors.
The variable name may contain function and variable references, which
are expanded when the line is read to find the actual variable name to
use.
There is no limit on the length of the value of a variable except the
-amount of swapping space on the computer. When a variable definition is
-long, it is a good idea to break it into several lines by inserting
-backslash-newline at convenient places in the definition. This will not
-affect the functioning of `make', but it will make the makefile easier
-to read.
+amount of memory on the computer. You can split the value of a
+variable into multiple physical lines for readability (*note Splitting
+Long Lines: Splitting Lines.).
Most variable names are considered to have the empty string as a
value if you have never set them. Several variables have built-in
@@ -4470,6 +4678,27 @@ and
FOO = bar
endif
+ The shell assignment operator `!=' can be used to execute a program
+and set a variable to its output. This operator first evaluates the
+right-hand side, then passes that result to the shell for execution.
+If the result of the execution ends in a newline, that one newline is
+removed; all other newlines are replaced by spaces. The resulting
+string is then placed into the named recursively-expanded variable.
+For example:
+
+ hash != printf '\043'
+ file_list != find . -name '*.c'
+
+ If the result of the execution could produce a `$', and you don't
+intend what follows that to be interpreted as a make variable or
+function reference, then you must replace every `$' with `$$' as part
+of the execution. Alternatively, you can set a simply expanded
+variable to the result of running a program using the `shell' function
+call. *Note The `shell' Function: Shell Function. For example:
+
+ hash := $(shell printf '\043')
+ var := $(shell find . -name "*.c")
+

File: make.info, Node: Appending, Next: Override Directive, Prev: Setting, Up: Using Variables
@@ -4506,11 +4735,11 @@ flavors of variables.
When you add to a variable's value with `+=', `make' acts
essentially as if you had included the extra text in the initial
-definition of the variable. If you defined it first with `:=', making
-it a simply-expanded variable, `+=' adds to that simply-expanded
-definition, and expands the new text before appending it to the old
-value just as `:=' does (see *note Setting Variables: Setting, for a
-full explanation of `:='). In fact,
+definition of the variable. If you defined it first with `:=' or
+`::=', making it a simply-expanded variable, `+=' adds to that
+simply-expanded definition, and expands the new text before appending
+it to the old value just as `:=' does (see *note Setting Variables:
+Setting, for a full explanation of `:=' or `::='). In fact,
variable := value
variable += more
@@ -4669,8 +4898,8 @@ equivalent to this:
since two commands separated by semicolon behave much like two separate
shell commands. However, note that using two separate lines means
-`make' will invoke the shell twice, running an independent subshell for
-each line. *Note Recipe Execution: Execution.
+`make' will invoke the shell twice, running an independent sub-shell
+for each line. *Note Recipe Execution: Execution.
If you want variable definitions made with `define' to take
precedence over command-line variable definitions, you can use the
@@ -4787,13 +5016,13 @@ their normal behavior to this instance of the variable only.
each member of the target list individually.
The VARIABLE-ASSIGNMENT can be any valid form of assignment;
-recursive (`='), static (`:='), appending (`+='), or conditional
-(`?='). All variables that appear within the VARIABLE-ASSIGNMENT are
-evaluated within the context of the target: thus, any
-previously-defined target-specific variable values will be in effect.
-Note that this variable is actually distinct from any "global" value:
-the two variables do not have to have the same flavor (recursive vs.
-static).
+recursive (`='), simple (`:=' or `::='), appending (`+='), or
+conditional (`?='). All variables that appear within the
+VARIABLE-ASSIGNMENT are evaluated within the context of the target:
+thus, any previously-defined target-specific variable values will be in
+effect. Note that this variable is actually distinct from any "global"
+value: the two variables do not have to have the same flavor (recursive
+vs. simple).
Target-specific variables have the same priority as any other
makefile variable. Variables provided on the command line (and in the
@@ -4903,7 +5132,7 @@ by any target, and hence will not be visible in any recipe.
prog: a.o b.o
Due to the `private' modifier, `a.o' and `b.o' will not inherit the
-`EXTRA_CFLAGS' variable assignment from the `progs' target.
+`EXTRA_CFLAGS' variable assignment from the `prog' target.

File: make.info, Node: Special Variables, Prev: Suppressing Inheritance, Up: Using Variables
@@ -4976,7 +5205,7 @@ GNU `make' supports some variables that have special properties.
foo
Note that assigning more than one target name to `.DEFAULT_GOAL' is
- illegal and will result in an error.
+ invalid and will result in an error.
`MAKE_RESTARTS'
This variable is set only if this instance of `make' has restarted
@@ -5009,10 +5238,10 @@ GNU `make' supports some variables that have special properties.
`.FEATURES'
Expands to a list of special features supported by this version of
- `make'. Possible values include:
+ `make'. Possible values include, but are not limited to:
`archives'
- Supports `ar' (archive) files using special filename syntax.
+ Supports `ar' (archive) files using special file name syntax.
*Note Using `make' to Update Archive Files: Archives.
`check-symlink'
@@ -5027,18 +5256,38 @@ GNU `make' supports some variables that have special properties.
Supports "job server" enhanced parallel builds. *Note
Parallel Execution: Parallel.
- `second-expansion'
- Supports secondary expansion of prerequisite lists.
+ `oneshell'
+ Supports the `.ONESHELL' special target. *Note Using One
+ Shell: One Shell.
`order-only'
Supports order-only prerequisites. *Note Types of
Prerequisites: Prerequisite Types.
+ `second-expansion'
+ Supports secondary expansion of prerequisite lists.
+
+ `shortest-stem'
+ Uses the "shortest stem" method of choosing which pattern, of
+ multiple applicable options, will be used. *Note How
+ Patterns Match: Pattern Match.
+
`target-specific'
Supports target-specific and pattern-specific variable
assignments. *Note Target-specific Variable Values:
Target-specific.
+ `undefine'
+ Supports the `undefine' directive. *Note Undefine
+ Directive::.
+
+ `guile'
+ Has GNU Guile available as an embedded extension language.
+ *Note GNU Guile Integration: Guile Integration.
+
+ `load'
+ Supports dynamically loadable objects for creating custom
+ extensions. *Note Loading Dynamic Objects: Loading Objects.
`.INCLUDE_DIRS'
Expands to a list of directories that `make' searches for included
@@ -5165,12 +5414,12 @@ text is used instead.
or:
- CONDITIONAL-DIRECTIVE
+ CONDITIONAL-DIRECTIVE-ONE
TEXT-IF-ONE-IS-TRUE
- else CONDITIONAL-DIRECTIVE
- TEXT-IF-TRUE
+ else CONDITIONAL-DIRECTIVE-TWO
+ TEXT-IF-TWO-IS-TRUE
else
- TEXT-IF-FALSE
+ TEXT-IF-ONE-AND-TWO-ARE-FALSE
endif
There can be as many "`else' CONDITIONAL-DIRECTIVE" clauses as
@@ -5349,13 +5598,15 @@ the point of the call, just as a variable might be substituted.
* File Name Functions:: Functions for manipulating file names.
* Conditional Functions:: Functions that implement conditions.
* Foreach Function:: Repeat some text with controlled variation.
+* File Function:: Write text to a file.
* Call Function:: Expand a user-defined function.
* Value Function:: Return the un-expanded value of a variable.
* Eval Function:: Evaluate the arguments as makefile syntax.
* Origin Function:: Find where a variable got its value.
* Flavor Function:: Find out the flavor of a variable.
-* Shell Function:: Substitute the output of a shell command.
* Make Control Functions:: Functions that control how make runs.
+* Shell Function:: Substitute the output of a shell command.
+* Guile Function:: Use GNU Guile embedded scripting language.

File: make.info, Node: Syntax of Functions, Next: Text Functions, Prev: Functions, Up: Functions
@@ -5363,7 +5614,9 @@ File: make.info, Node: Syntax of Functions, Next: Text Functions, Prev: Funct
8.1 Function Call Syntax
========================
-A function call resembles a variable reference. It looks like this:
+A function call resembles a variable reference. It can appear anywhere
+a variable reference can appear, and it is expanded using the same
+rules as variable references. A function call looks like this:
$(FUNCTION ARGUMENTS)
@@ -5373,7 +5626,7 @@ or like this:
Here FUNCTION is a function name; one of a short list of names that
are part of `make'. You can also essentially create your own functions
-by using the `call' builtin function.
+by using the `call' built-in function.
The ARGUMENTS are the arguments of the function. They are separated
from the function name by one or more spaces or tabs, and if there is
@@ -5827,7 +6080,7 @@ expanded.

-File: make.info, Node: Foreach Function, Next: Call Function, Prev: Conditional Functions, Up: Functions
+File: make.info, Node: Foreach Function, Next: File Function, Prev: Conditional Functions, Up: Functions
8.5 The `foreach' Function
==========================
@@ -5878,9 +6131,9 @@ name, with an additional variable:
Here we use the variable `find_files' this way. We use plain `=' to
define a recursively-expanding variable, so that its value contains an
-actual function call to be reexpanded under the control of `foreach'; a
-simply-expanded variable would not do, since `wildcard' would be called
-only once at the time of defining `find_files'.
+actual function call to be re-expanded under the control of `foreach';
+a simply-expanded variable would not do, since `wildcard' would be
+called only once at the time of defining `find_files'.
The `foreach' function has no permanent effect on the variable VAR;
its value and flavor after the `foreach' function call are the same as
@@ -5895,16 +6148,66 @@ Flavors.
result in variable names because many strange things are valid variable
names, but are probably not what you intended. For example,
- files := $(foreach Esta escrito en espanol!,b c ch,$(find_files))
+ files := $(foreach Esta-escrito-en-espanol!,b c ch,$(find_files))
might be useful if the value of `find_files' references the variable
-whose name is `Esta escrito en espanol!' (es un nombre bastante largo,
+whose name is `Esta-escrito-en-espanol!' (es un nombre bastante largo,
no?), but it is more likely to be a mistake.

-File: make.info, Node: Call Function, Next: Value Function, Prev: Foreach Function, Up: Functions
+File: make.info, Node: File Function, Next: Call Function, Prev: Foreach Function, Up: Functions
+
+8.6 The `file' Function
+=======================
+
+The `file' function allows the makefile to write to a file. Two modes
+of writing are supported: overwrite, where the text is written to the
+beginning of the file and any existing content is lost, and append,
+where the text is written to the end of the file, preserving the
+existing content. In all cases the file is created if it does not
+exist.
+
+ The syntax of the `file' function is:
+
+ $(file OP FILENAME,TEXT)
+
+ The operator OP can be either `>' which indicates overwrite mode, or
+`>>' which indicates append mode. The FILENAME indicates the file to
+be written to. There may optionally be whitespace between the operator
+and the file name.
+
+ When the `file' function is expanded all its arguments are expanded
+first, then the file indicated by FILENAME will be opened in the mode
+described by OP. Finally TEXT will be written to the file. If TEXT
+does not already end in a newline, a final newline will be written.
+The result of evaluating the `file' function is always the empty string.
+
+ It is a fatal error if the file cannot be opened for writing, or if
+the write operation fails.
+
+ For example, the `file' function can be useful if your build system
+has a limited command line size and your recipe runs a command that can
+accept arguments from a file as well. Many commands use the convention
+that an argument prefixed with an `@' specifies a file containing more
+arguments. Then you might write your recipe in this way:
+
+ program: $(OBJECTS)
+ $(file >$@.in,$^)
+ $(CMD) $(CMDFLAGS) @$@.in
+ @rm $@.in
+
+ If the command required each argument to be on a separate line of the
+input file, you might write your recipe like this:
+
+ program: $(OBJECTS)
+ $(file >$@.in,) $(foreach O,$^,$(file >>$@.in,$O))
+ $(CMD) $(CMDFLAGS) @$@.in
+ @rm $@.in
+
+
+File: make.info, Node: Call Function, Next: Value Function, Prev: File Function, Up: Functions
-8.6 The `call' Function
+8.7 The `call' Function
=======================
The `call' function is unique in that it can be used to create new
@@ -5931,12 +6234,12 @@ that variable. Therefore you would not normally use a `$' or
parentheses when writing it. (You can, however, use a variable
reference in the name if you want the name not to be a constant.)
- If VARIABLE is the name of a builtin function, the builtin function
+ If VARIABLE is the name of a built-in function, the built-in function
is always invoked (even if a `make' variable by that name also exists).
The `call' function expands the PARAM arguments before assigning
them to temporary variables. This means that VARIABLE values
-containing references to builtin functions that have special expansion
+containing references to built-in functions that have special expansion
rules, like `foreach' or `if', may not work as you expect.
Some examples may make this clearer.
@@ -5981,7 +6284,7 @@ providing parameters to `call'.

File: make.info, Node: Value Function, Next: Eval Function, Prev: Call Function, Up: Functions
-8.7 The `value' Function
+8.8 The `value' Function
========================
The `value' function provides a way for you to use the value of a
@@ -5995,7 +6298,7 @@ the variable directly.
$(value VARIABLE)
- Note that VARIABLE is the _name_ of a variable; not a _reference_ to
+ Note that VARIABLE is the _name_ of a variable, not a _reference_ to
that variable. Therefore you would not normally use a `$' or
parentheses when writing it. (You can, however, use a variable
reference in the name if you want the name not to be a constant.)
@@ -6021,7 +6324,7 @@ avoided the expansion.

File: make.info, Node: Eval Function, Next: Origin Function, Prev: Value Function, Up: Functions
-8.8 The `eval' Function
+8.9 The `eval' Function
=======================
The `eval' function is very special: it allows you to define new
@@ -6081,8 +6384,8 @@ Now your individual makefiles are quite straightforward.

File: make.info, Node: Origin Function, Next: Flavor Function, Prev: Eval Function, Up: Functions
-8.9 The `origin' Function
-=========================
+8.10 The `origin' Function
+==========================
The `origin' function is unlike most other functions in that it does
not operate on the values of variables; it tells you something _about_
@@ -6092,7 +6395,7 @@ a variable. Specifically, it tells you where it came from.
$(origin VARIABLE)
- Note that VARIABLE is the _name_ of a variable to inquire about; not
+ Note that VARIABLE is the _name_ of a variable to inquire about, not
a _reference_ to that variable. Therefore you would not normally use a
`$' or parentheses when writing it. (You can, however, use a variable
reference in the name if you want the name not to be a constant.)
@@ -6165,21 +6468,21 @@ either `environment' or `environment override'. *Note Functions for
String Substitution and Analysis: Text Functions.

-File: make.info, Node: Flavor Function, Next: Shell Function, Prev: Origin Function, Up: Functions
+File: make.info, Node: Flavor Function, Next: Make Control Functions, Prev: Origin Function, Up: Functions
-8.10 The `flavor' Function
+8.11 The `flavor' Function
==========================
-The `flavor' function is unlike most other functions (and like `origin'
-function) in that it does not operate on the values of variables; it
-tells you something _about_ a variable. Specifically, it tells you the
-flavor of a variable (*note The Two Flavors of Variables: Flavors.).
+The `flavor' function, like the `origin' function, does not operate on
+the values of variables but rather it tells you something _about_ a
+variable. Specifically, it tells you the flavor of a variable (*note
+The Two Flavors of Variables: Flavors.).
The syntax of the `flavor' function is:
$(flavor VARIABLE)
- Note that VARIABLE is the _name_ of a variable to inquire about; not
+ Note that VARIABLE is the _name_ of a variable to inquire about, not
a _reference_ to that variable. Therefore you would not normally use a
`$' or parentheses when writing it. (You can, however, use a variable
reference in the name if you want the name not to be a constant.)
@@ -6198,45 +6501,7 @@ of the variable VARIABLE:

-File: make.info, Node: Shell Function, Next: Make Control Functions, Prev: Flavor Function, Up: Functions
-
-8.11 The `shell' Function
-=========================
-
-The `shell' function is unlike any other function other than the
-`wildcard' function (*note The Function `wildcard': Wildcard Function.)
-in that it communicates with the world outside of `make'.
-
- The `shell' function performs the same function that backquotes
-(``') perform in most shells: it does "command expansion". This means
-that it takes as an argument a shell command and evaluates to the
-output of the command. The only processing `make' does on the result
-is to convert each newline (or carriage-return / newline pair) to a
-single space. If there is a trailing (carriage-return and) newline it
-will simply be removed.
-
- The commands run by calls to the `shell' function are run when the
-function calls are expanded (*note How `make' Reads a Makefile: Reading
-Makefiles.). Because this function involves spawning a new shell, you
-should carefully consider the performance implications of using the
-`shell' function within recursively expanded variables vs. simply
-expanded variables (*note The Two Flavors of Variables: Flavors.).
-
- Here are some examples of the use of the `shell' function:
-
- contents := $(shell cat foo)
-
-sets `contents' to the contents of the file `foo', with a space (rather
-than a newline) separating each line.
-
- files := $(shell echo *.c)
-
-sets `files' to the expansion of `*.c'. Unless `make' is using a very
-strange shell, this has the same result as `$(wildcard *.c)' (as long
-as at least one `.c' file exists).
-
-
-File: make.info, Node: Make Control Functions, Prev: Shell Function, Up: Functions
+File: make.info, Node: Make Control Functions, Next: Shell Function, Prev: Flavor Function, Up: Functions
8.12 Functions That Control Make
================================
@@ -6284,6 +6549,62 @@ if some sort of environmental error is detected.
empty string.

+File: make.info, Node: Shell Function, Next: Guile Function, Prev: Make Control Functions, Up: Functions
+
+8.13 The `shell' Function
+=========================
+
+The `shell' function is unlike any other function other than the
+`wildcard' function (*note The Function `wildcard': Wildcard Function.)
+in that it communicates with the world outside of `make'.
+
+ The `shell' function performs the same function that backquotes
+(``') perform in most shells: it does "command expansion". This means
+that it takes as an argument a shell command and evaluates to the
+output of the command. The only processing `make' does on the result
+is to convert each newline (or carriage-return / newline pair) to a
+single space. If there is a trailing (carriage-return and) newline it
+will simply be removed.
+
+ The commands run by calls to the `shell' function are run when the
+function calls are expanded (*note How `make' Reads a Makefile: Reading
+Makefiles.). Because this function involves spawning a new shell, you
+should carefully consider the performance implications of using the
+`shell' function within recursively expanded variables vs. simply
+expanded variables (*note The Two Flavors of Variables: Flavors.).
+
+ Here are some examples of the use of the `shell' function:
+
+ contents := $(shell cat foo)
+
+sets `contents' to the contents of the file `foo', with a space (rather
+than a newline) separating each line.
+
+ files := $(shell echo *.c)
+
+sets `files' to the expansion of `*.c'. Unless `make' is using a very
+strange shell, this has the same result as `$(wildcard *.c)' (as long
+as at least one `.c' file exists).
+
+
+File: make.info, Node: Guile Function, Prev: Shell Function, Up: Functions
+
+8.14 The `guile' Function
+=========================
+
+If GNU `make' is built with support for GNU Guile as an embedded
+extension language then the `guile' function will be available. The
+`guile' function takes one argument which is first expanded by `make'
+in the normal fashion, then passed to the GNU Guile evaluator. The
+result of the evaluator is converted into a string and used as the
+expansion of the `guile' function in the makefile. See *note GNU Guile
+Integration: Guile Integration. for details on writing extensions to
+`make' in Guile.
+
+ You can determine whether GNU Guile support is available by checking
+the `.FEATURES' variable for the word GUILE.
+
+
File: make.info, Node: Running, Next: Implicit Rules, Prev: Functions, Up: Top
9 How to Run `make'
@@ -6479,22 +6800,25 @@ what you want. Certain options specify other activities for `make'.
`--just-print'
`--dry-run'
`--recon'
- "No-op". The activity is to print what recipe would be used to
- make the targets up to date, but not actually execute it. Some
- recipes are still executed, even with this flag (*note How the
- `MAKE' Variable Works: MAKE Variable.).
+ "No-op". Causes `make' to print the recipes that are needed to
+ make the targets up to date, but not actually execute them. Note
+ that some recipes are still executed, even with this flag (*note
+ How the `MAKE' Variable Works: MAKE Variable.). Also any recipes
+ needed to update included makefiles are still executed (*note How
+ Makefiles Are Remade: Remaking Makefiles.).
`-t'
`--touch'
- "Touch". The activity is to mark the targets as up to date without
- actually changing them. In other words, `make' pretends to compile
- the targets but does not really change their contents.
+ "Touch". Marks targets as up to date without actually changing
+ them. In other words, `make' pretends to update the targets but
+ does not really change their contents; instead only their modified
+ times are updated.
`-q'
`--question'
- "Question". The activity is to find out silently whether the
- targets are up to date already; but execute no recipe in either
- case. In other words, neither compilation nor output will occur.
+ "Question". Silently check whether the targets are up to date, but
+ do not execute recipes; the exit code shows whether any updates are
+ needed.
`-W FILE'
`--what-if=FILE'
@@ -6636,10 +6960,10 @@ the makefile works by changing the variables.
When you override a variable with a command line argument, you can
define either a recursively-expanded variable or a simply-expanded
variable. The examples shown above make a recursively-expanded
-variable; to make a simply-expanded variable, write `:=' instead of
-`='. But, unless you want to include a variable reference or function
-call in the _value_ that you specify, it makes no difference which kind
-of variable you create.
+variable; to make a simply-expanded variable, write `:=' or `::='
+instead of `='. But, unless you want to include a variable reference
+or function call in the _value_ that you specify, it makes no
+difference which kind of variable you create.
There is one way that the makefile can change a variable that you
have overridden. This is to use the `override' directive, which is a
@@ -6682,385 +7006,3 @@ program, perhaps to find several independent problems so that you can
correct them all before the next attempt to compile. This is why Emacs'
`M-x compile' command passes the `-k' flag by default.
-
-File: make.info, Node: Options Summary, Prev: Testing, Up: Running
-
-9.7 Summary of Options
-======================
-
-Here is a table of all the options `make' understands:
-
-`-b'
-`-m'
- These options are ignored for compatibility with other versions of
- `make'.
-
-`-B'
-`--always-make'
- Consider all targets out-of-date. GNU `make' proceeds to consider
- targets and their prerequisites using the normal algorithms;
- however, all targets so considered are always remade regardless of
- the status of their prerequisites. To avoid infinite recursion, if
- `MAKE_RESTARTS' (*note Other Special Variables: Special
- Variables.) is set to a number greater than 0 this option is
- disabled when considering whether to remake makefiles (*note How
- Makefiles Are Remade: Remaking Makefiles.).
-
-`-C DIR'
-`--directory=DIR'
- Change to directory DIR before reading the makefiles. If multiple
- `-C' options are specified, each is interpreted relative to the
- previous one: `-C / -C etc' is equivalent to `-C /etc'. This is
- typically used with recursive invocations of `make' (*note
- Recursive Use of `make': Recursion.).
-
-`-d'
- Print debugging information in addition to normal processing. The
- debugging information says which files are being considered for
- remaking, which file-times are being compared and with what
- results, which files actually need to be remade, which implicit
- rules are considered and which are applied--everything interesting
- about how `make' decides what to do. The `-d' option is
- equivalent to `--debug=a' (see below).
-
-`--debug[=OPTIONS]'
- Print debugging information in addition to normal processing.
- Various levels and types of output can be chosen. With no
- arguments, print the "basic" level of debugging. Possible
- arguments are below; only the first character is considered, and
- values must be comma- or space-separated.
-
- `a (all)'
- All types of debugging output are enabled. This is
- equivalent to using `-d'.
-
- `b (basic)'
- Basic debugging prints each target that was found to be
- out-of-date, and whether the build was successful or not.
-
- `v (verbose)'
- A level above `basic'; includes messages about which
- makefiles were parsed, prerequisites that did not need to be
- rebuilt, etc. This option also enables `basic' messages.
-
- `i (implicit)'
- Prints messages describing the implicit rule searches for
- each target. This option also enables `basic' messages.
-
- `j (jobs)'
- Prints messages giving details on the invocation of specific
- subcommands.
-
- `m (makefile)'
- By default, the above messages are not enabled while trying
- to remake the makefiles. This option enables messages while
- rebuilding makefiles, too. Note that the `all' option does
- enable this option. This option also enables `basic'
- messages.
-
-`-e'
-`--environment-overrides'
- Give variables taken from the environment precedence over
- variables from makefiles. *Note Variables from the Environment:
- Environment.
-
-`--eval=STRING'
- Evaluate STRING as makefile syntax. This is a command-line
- version of the `eval' function (*note Eval Function::). The
- evaluation is performed after the default rules and variables have
- been defined, but before any makefiles are read.
-
-`-f FILE'
-`--file=FILE'
-`--makefile=FILE'
- Read the file named FILE as a makefile. *Note Writing Makefiles:
- Makefiles.
-
-`-h'
-`--help'
- Remind you of the options that `make' understands and then exit.
-
-`-i'
-`--ignore-errors'
- Ignore all errors in recipes executed to remake files. *Note
- Errors in Recipes: Errors.
-
-`-I DIR'
-`--include-dir=DIR'
- Specifies a directory DIR to search for included makefiles. *Note
- Including Other Makefiles: Include. If several `-I' options are
- used to specify several directories, the directories are searched
- in the order specified.
-
-`-j [JOBS]'
-`--jobs[=JOBS]'
- Specifies the number of recipes (jobs) to run simultaneously.
- With no argument, `make' runs as many recipes simultaneously as
- possible. If there is more than one `-j' option, the last one is
- effective. *Note Parallel Execution: Parallel, for more
- information on how recipes are run. Note that this option is
- ignored on MS-DOS.
-
-`-k'
-`--keep-going'
- Continue as much as possible after an error. While the target that
- failed, and those that depend on it, cannot be remade, the other
- prerequisites of these targets can be processed all the same.
- *Note Testing the Compilation of a Program: Testing.
-
-`-l [LOAD]'
-`--load-average[=LOAD]'
-`--max-load[=LOAD]'
- Specifies that no new recipes should be started if there are other
- recipes running and the load average is at least LOAD (a
- floating-point number). With no argument, removes a previous load
- limit. *Note Parallel Execution: Parallel.
-
-`-L'
-`--check-symlink-times'
- On systems that support symbolic links, this option causes `make'
- to consider the timestamps on any symbolic links in addition to the
- timestamp on the file referenced by those links. When this option
- is provided, the most recent timestamp among the file and the
- symbolic links is taken as the modification time for this target
- file.
-
-`-n'
-`--just-print'
-`--dry-run'
-`--recon'
- Print the recipe that would be executed, but do not execute it
- (except in certain circumstances). *Note Instead of Executing
- Recipes: Instead of Execution.
-
-`-o FILE'
-`--old-file=FILE'
-`--assume-old=FILE'
- Do not remake the file FILE even if it is older than its
- prerequisites, and do not remake anything on account of changes in
- FILE. Essentially the file is treated as very old and its rules
- are ignored. *Note Avoiding Recompilation of Some Files: Avoiding
- Compilation.
-
-`-p'
-`--print-data-base'
- Print the data base (rules and variable values) that results from
- reading the makefiles; then execute as usual or as otherwise
- specified. This also prints the version information given by the
- `-v' switch (see below). To print the data base without trying to
- remake any files, use `make -qp'. To print the data base of
- predefined rules and variables, use `make -p -f /dev/null'. The
- data base output contains filename and linenumber information for
- recipe and variable definitions, so it can be a useful debugging
- tool in complex environments.
-
-`-q'
-`--question'
- "Question mode". Do not run any recipes, or print anything; just
- return an exit status that is zero if the specified targets are
- already up to date, one if any remaking is required, or two if an
- error is encountered. *Note Instead of Executing Recipes: Instead
- of Execution.
-
-`-r'
-`--no-builtin-rules'
- Eliminate use of the built-in implicit rules (*note Using Implicit
- Rules: Implicit Rules.). You can still define your own by writing
- pattern rules (*note Defining and Redefining Pattern Rules:
- Pattern Rules.). The `-r' option also clears out the default list
- of suffixes for suffix rules (*note Old-Fashioned Suffix Rules:
- Suffix Rules.). But you can still define your own suffixes with a
- rule for `.SUFFIXES', and then define your own suffix rules. Note
- that only _rules_ are affected by the `-r' option; default
- variables remain in effect (*note Variables Used by Implicit
- Rules: Implicit Variables.); see the `-R' option below.
-
-`-R'
-`--no-builtin-variables'
- Eliminate use of the built-in rule-specific variables (*note
- Variables Used by Implicit Rules: Implicit Variables.). You can
- still define your own, of course. The `-R' option also
- automatically enables the `-r' option (see above), since it
- doesn't make sense to have implicit rules without any definitions
- for the variables that they use.
-
-`-s'
-`--silent'
-`--quiet'
- Silent operation; do not print the recipes as they are executed.
- *Note Recipe Echoing: Echoing.
-
-`-S'
-`--no-keep-going'
-`--stop'
- Cancel the effect of the `-k' option. This is never necessary
- except in a recursive `make' where `-k' might be inherited from
- the top-level `make' via `MAKEFLAGS' (*note Recursive Use of
- `make': Recursion.) or if you set `-k' in `MAKEFLAGS' in your
- environment.
-
-`-t'
-`--touch'
- Touch files (mark them up to date without really changing them)
- instead of running their recipes. This is used to pretend that the
- recipes were done, in order to fool future invocations of `make'.
- *Note Instead of Executing Recipes: Instead of Execution.
-
-`-v'
-`--version'
- Print the version of the `make' program plus a copyright, a list
- of authors, and a notice that there is no warranty; then exit.
-
-`-w'
-`--print-directory'
- Print a message containing the working directory both before and
- after executing the makefile. This may be useful for tracking
- down errors from complicated nests of recursive `make' commands.
- *Note Recursive Use of `make': Recursion. (In practice, you
- rarely need to specify this option since `make' does it for you;
- see *note The `--print-directory' Option: -w Option.)
-
-`--no-print-directory'
- Disable printing of the working directory under `-w'. This option
- is useful when `-w' is turned on automatically, but you do not
- want to see the extra messages. *Note The `--print-directory'
- Option: -w Option.
-
-`-W FILE'
-`--what-if=FILE'
-`--new-file=FILE'
-`--assume-new=FILE'
- Pretend that the target FILE has just been modified. When used
- with the `-n' flag, this shows you what would happen if you were
- to modify that file. Without `-n', it is almost the same as
- running a `touch' command on the given file before running `make',
- except that the modification time is changed only in the
- imagination of `make'. *Note Instead of Executing Recipes:
- Instead of Execution.
-
-`--warn-undefined-variables'
- Issue a warning message whenever `make' sees a reference to an
- undefined variable. This can be helpful when you are trying to
- debug makefiles which use variables in complex ways.
-
-
-File: make.info, Node: Implicit Rules, Next: Archives, Prev: Running, Up: Top
-
-10 Using Implicit Rules
-***********************
-
-Certain standard ways of remaking target files are used very often. For
-example, one customary way to make an object file is from a C source
-file using the C compiler, `cc'.
-
- "Implicit rules" tell `make' how to use customary techniques so that
-you do not have to specify them in detail when you want to use them.
-For example, there is an implicit rule for C compilation. File names
-determine which implicit rules are run. For example, C compilation
-typically takes a `.c' file and makes a `.o' file. So `make' applies
-the implicit rule for C compilation when it sees this combination of
-file name endings.
-
- A chain of implicit rules can apply in sequence; for example, `make'
-will remake a `.o' file from a `.y' file by way of a `.c' file.
-
- The built-in implicit rules use several variables in their recipes so
-that, by changing the values of the variables, you can change the way
-the implicit rule works. For example, the variable `CFLAGS' controls
-the flags given to the C compiler by the implicit rule for C
-compilation.
-
- You can define your own implicit rules by writing "pattern rules".
-
- "Suffix rules" are a more limited way to define implicit rules.
-Pattern rules are more general and clearer, but suffix rules are
-retained for compatibility.
-
-* Menu:
-
-* Using Implicit:: How to use an existing implicit rule
- to get the recipes for updating a file.
-* Catalogue of Rules:: A list of built-in implicit rules.
-* Implicit Variables:: How to change what predefined rules do.
-* Chained Rules:: How to use a chain of implicit rules.
-* Pattern Rules:: How to define new implicit rules.
-* Last Resort:: How to define recipes for rules which
- cannot find any.
-* Suffix Rules:: The old-fashioned style of implicit rule.
-* Implicit Rule Search:: The precise algorithm for applying
- implicit rules.
-
-
-File: make.info, Node: Using Implicit, Next: Catalogue of Rules, Prev: Implicit Rules, Up: Implicit Rules
-
-10.1 Using Implicit Rules
-=========================
-
-To allow `make' to find a customary method for updating a target file,
-all you have to do is refrain from specifying recipes yourself. Either
-write a rule with no recipe, or don't write a rule at all. Then `make'
-will figure out which implicit rule to use based on which kind of
-source file exists or can be made.
-
- For example, suppose the makefile looks like this:
-
- foo : foo.o bar.o
- cc -o foo foo.o bar.o $(CFLAGS) $(LDFLAGS)
-
-Because you mention `foo.o' but do not give a rule for it, `make' will
-automatically look for an implicit rule that tells how to update it.
-This happens whether or not the file `foo.o' currently exists.
-
- If an implicit rule is found, it can supply both a recipe and one or
-more prerequisites (the source files). You would want to write a rule
-for `foo.o' with no recipe if you need to specify additional
-prerequisites, such as header files, that the implicit rule cannot
-supply.
-
- Each implicit rule has a target pattern and prerequisite patterns.
-There may be many implicit rules with the same target pattern. For
-example, numerous rules make `.o' files: one, from a `.c' file with the
-C compiler; another, from a `.p' file with the Pascal compiler; and so
-on. The rule that actually applies is the one whose prerequisites
-exist or can be made. So, if you have a file `foo.c', `make' will run
-the C compiler; otherwise, if you have a file `foo.p', `make' will run
-the Pascal compiler; and so on.
-
- Of course, when you write the makefile, you know which implicit rule
-you want `make' to use, and you know it will choose that one because you
-know which possible prerequisite files are supposed to exist. *Note
-Catalogue of Implicit Rules: Catalogue of Rules, for a catalogue of all
-the predefined implicit rules.
-
- Above, we said an implicit rule applies if the required
-prerequisites "exist or can be made". A file "can be made" if it is
-mentioned explicitly in the makefile as a target or a prerequisite, or
-if an implicit rule can be recursively found for how to make it. When
-an implicit prerequisite is the result of another implicit rule, we say
-that "chaining" is occurring. *Note Chains of Implicit Rules: Chained
-Rules.
-
- In general, `make' searches for an implicit rule for each target, and
-for each double-colon rule, that has no recipe. A file that is
-mentioned only as a prerequisite is considered a target whose rule
-specifies nothing, so implicit rule search happens for it. *Note
-Implicit Rule Search Algorithm: Implicit Rule Search, for the details
-of how the search is done.
-
- Note that explicit prerequisites do not influence implicit rule
-search. For example, consider this explicit rule:
-
- foo.o: foo.p
-
-The prerequisite on `foo.p' does not necessarily mean that `make' will
-remake `foo.o' according to the implicit rule to make an object file, a
-`.o' file, from a Pascal source file, a `.p' file. For example, if
-`foo.c' also exists, the implicit rule to make an object file from a C
-source file is used instead, because it appears before the Pascal rule
-in the list of predefined implicit rules (*note Catalogue of Implicit
-Rules: Catalogue of Rules.).
-
- If you do not want an implicit rule to be used for a target that has
-no recipe, you can give that target an empty recipe by writing a
-semicolon (*note Defining Empty Recipes: Empty Recipes.).
-
diff --git a/doc/make.info-2 b/doc/make.info-2
index cd95ff0..af881aa 100644
--- a/doc/make.info-2
+++ b/doc/make.info-2
@@ -4,16 +4,16 @@ This file documents the GNU `make' utility, which determines
automatically which pieces of a large program need to be recompiled,
and issues the commands to recompile them.
- This is Edition 0.71, last updated 19 July 2010, of `The GNU Make
-Manual', for GNU `make' version 3.82.
+ This is Edition 0.72, last updated 9 October 2013, of `The GNU Make
+Manual', for GNU `make' version 4.0.
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+2010, 2011, 2012, 2013 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
- Version 1.2 or any later version published by the Free Software
+ Version 1.3 or any later version published by the Free Software
Foundation; with no Invariant Sections, with the Front-Cover Texts
being "A GNU Manual," and with the Back-Cover Texts as in (a)
below. A copy of the license is included in the section entitled
@@ -29,6 +29,416 @@ START-INFO-DIR-ENTRY
END-INFO-DIR-ENTRY

+File: make.info, Node: Options Summary, Prev: Testing, Up: Running
+
+9.7 Summary of Options
+======================
+
+Here is a table of all the options `make' understands:
+
+`-b'
+`-m'
+ These options are ignored for compatibility with other versions of
+ `make'.
+
+`-B'
+`--always-make'
+ Consider all targets out-of-date. GNU `make' proceeds to consider
+ targets and their prerequisites using the normal algorithms;
+ however, all targets so considered are always remade regardless of
+ the status of their prerequisites. To avoid infinite recursion, if
+ `MAKE_RESTARTS' (*note Other Special Variables: Special
+ Variables.) is set to a number greater than 0 this option is
+ disabled when considering whether to remake makefiles (*note How
+ Makefiles Are Remade: Remaking Makefiles.).
+
+`-C DIR'
+`--directory=DIR'
+ Change to directory DIR before reading the makefiles. If multiple
+ `-C' options are specified, each is interpreted relative to the
+ previous one: `-C / -C etc' is equivalent to `-C /etc'. This is
+ typically used with recursive invocations of `make' (*note
+ Recursive Use of `make': Recursion.).
+
+`-d'
+ Print debugging information in addition to normal processing. The
+ debugging information says which files are being considered for
+ remaking, which file-times are being compared and with what
+ results, which files actually need to be remade, which implicit
+ rules are considered and which are applied--everything interesting
+ about how `make' decides what to do. The `-d' option is
+ equivalent to `--debug=a' (see below).
+
+`--debug[=OPTIONS]'
+ Print debugging information in addition to normal processing.
+ Various levels and types of output can be chosen. With no
+ arguments, print the "basic" level of debugging. Possible
+ arguments are below; only the first character is considered, and
+ values must be comma- or space-separated.
+
+ `a (all)'
+ All types of debugging output are enabled. This is
+ equivalent to using `-d'.
+
+ `b (basic)'
+ Basic debugging prints each target that was found to be
+ out-of-date, and whether the build was successful or not.
+
+ `v (verbose)'
+ A level above `basic'; includes messages about which
+ makefiles were parsed, prerequisites that did not need to be
+ rebuilt, etc. This option also enables `basic' messages.
+
+ `i (implicit)'
+ Prints messages describing the implicit rule searches for
+ each target. This option also enables `basic' messages.
+
+ `j (jobs)'
+ Prints messages giving details on the invocation of specific
+ sub-commands.
+
+ `m (makefile)'
+ By default, the above messages are not enabled while trying
+ to remake the makefiles. This option enables messages while
+ rebuilding makefiles, too. Note that the `all' option does
+ enable this option. This option also enables `basic'
+ messages.
+
+ `n (none)'
+ Disable all debugging currently enabled. If additional
+ debugging flags are encountered after this they will still
+ take effect.
+
+`-e'
+`--environment-overrides'
+ Give variables taken from the environment precedence over
+ variables from makefiles. *Note Variables from the Environment:
+ Environment.
+
+`--eval=STRING'
+ Evaluate STRING as makefile syntax. This is a command-line
+ version of the `eval' function (*note Eval Function::). The
+ evaluation is performed after the default rules and variables have
+ been defined, but before any makefiles are read.
+
+`-f FILE'
+`--file=FILE'
+`--makefile=FILE'
+ Read the file named FILE as a makefile. *Note Writing Makefiles:
+ Makefiles.
+
+`-h'
+`--help'
+ Remind you of the options that `make' understands and then exit.
+
+`-i'
+`--ignore-errors'
+ Ignore all errors in recipes executed to remake files. *Note
+ Errors in Recipes: Errors.
+
+`-I DIR'
+`--include-dir=DIR'
+ Specifies a directory DIR to search for included makefiles. *Note
+ Including Other Makefiles: Include. If several `-I' options are
+ used to specify several directories, the directories are searched
+ in the order specified.
+
+`-j [JOBS]'
+`--jobs[=JOBS]'
+ Specifies the number of recipes (jobs) to run simultaneously.
+ With no argument, `make' runs as many recipes simultaneously as
+ possible. If there is more than one `-j' option, the last one is
+ effective. *Note Parallel Execution: Parallel, for more
+ information on how recipes are run. Note that this option is
+ ignored on MS-DOS.
+
+`-k'
+`--keep-going'
+ Continue as much as possible after an error. While the target that
+ failed, and those that depend on it, cannot be remade, the other
+ prerequisites of these targets can be processed all the same.
+ *Note Testing the Compilation of a Program: Testing.
+
+`-l [LOAD]'
+`--load-average[=LOAD]'
+`--max-load[=LOAD]'
+ Specifies that no new recipes should be started if there are other
+ recipes running and the load average is at least LOAD (a
+ floating-point number). With no argument, removes a previous load
+ limit. *Note Parallel Execution: Parallel.
+
+`-L'
+`--check-symlink-times'
+ On systems that support symbolic links, this option causes `make'
+ to consider the timestamps on any symbolic links in addition to the
+ timestamp on the file referenced by those links. When this option
+ is provided, the most recent timestamp among the file and the
+ symbolic links is taken as the modification time for this target
+ file.
+
+`-n'
+`--just-print'
+`--dry-run'
+`--recon'
+ Print the recipe that would be executed, but do not execute it
+ (except in certain circumstances). *Note Instead of Executing
+ Recipes: Instead of Execution.
+
+`-o FILE'
+`--old-file=FILE'
+`--assume-old=FILE'
+ Do not remake the file FILE even if it is older than its
+ prerequisites, and do not remake anything on account of changes in
+ FILE. Essentially the file is treated as very old and its rules
+ are ignored. *Note Avoiding Recompilation of Some Files: Avoiding
+ Compilation.
+
+`-O[TYPE]'
+`--output-sync[=TYPE]'
+ Ensure that the complete output from each recipe is printed in one
+ uninterrupted sequence. This option is only useful when using the
+ `--jobs' option to run multiple recipes simultaneously (*note
+ Parallel Execution: Parallel.) Without this option output will be
+ displayed as it is generated by the recipes.
+
+ With no type or the type `target', output from the entire recipe
+ of each target is grouped together. With the type `line', output
+ from each line in the recipe is grouped together. With the type
+ `recurse', the output from an entire recursive make is grouped
+ together. With the type `none', no output synchronization is
+ performed. *Note Output During Parallel Execution: Parallel
+ Output.
+
+`-p'
+`--print-data-base'
+ Print the data base (rules and variable values) that results from
+ reading the makefiles; then execute as usual or as otherwise
+ specified. This also prints the version information given by the
+ `-v' switch (see below). To print the data base without trying to
+ remake any files, use `make -qp'. To print the data base of
+ predefined rules and variables, use `make -p -f /dev/null'. The
+ data base output contains file name and line number information for
+ recipe and variable definitions, so it can be a useful debugging
+ tool in complex environments.
+
+`-q'
+`--question'
+ "Question mode". Do not run any recipes, or print anything; just
+ return an exit status that is zero if the specified targets are
+ already up to date, one if any remaking is required, or two if an
+ error is encountered. *Note Instead of Executing Recipes: Instead
+ of Execution.
+
+`-r'
+`--no-builtin-rules'
+ Eliminate use of the built-in implicit rules (*note Using Implicit
+ Rules: Implicit Rules.). You can still define your own by writing
+ pattern rules (*note Defining and Redefining Pattern Rules:
+ Pattern Rules.). The `-r' option also clears out the default list
+ of suffixes for suffix rules (*note Old-Fashioned Suffix Rules:
+ Suffix Rules.). But you can still define your own suffixes with a
+ rule for `.SUFFIXES', and then define your own suffix rules. Note
+ that only _rules_ are affected by the `-r' option; default
+ variables remain in effect (*note Variables Used by Implicit
+ Rules: Implicit Variables.); see the `-R' option below.
+
+`-R'
+`--no-builtin-variables'
+ Eliminate use of the built-in rule-specific variables (*note
+ Variables Used by Implicit Rules: Implicit Variables.). You can
+ still define your own, of course. The `-R' option also
+ automatically enables the `-r' option (see above), since it
+ doesn't make sense to have implicit rules without any definitions
+ for the variables that they use.
+
+`-s'
+`--silent'
+`--quiet'
+ Silent operation; do not print the recipes as they are executed.
+ *Note Recipe Echoing: Echoing.
+
+`-S'
+`--no-keep-going'
+`--stop'
+ Cancel the effect of the `-k' option. This is never necessary
+ except in a recursive `make' where `-k' might be inherited from
+ the top-level `make' via `MAKEFLAGS' (*note Recursive Use of
+ `make': Recursion.) or if you set `-k' in `MAKEFLAGS' in your
+ environment.
+
+`-t'
+`--touch'
+ Touch files (mark them up to date without really changing them)
+ instead of running their recipes. This is used to pretend that the
+ recipes were done, in order to fool future invocations of `make'.
+ *Note Instead of Executing Recipes: Instead of Execution.
+
+`--trace'
+ Show tracing information for `make' execution. Prints the entire
+ recipe to be executed, even for recipes that are normally silent
+ (due to `.SILENT' or `@'). Also prints the makefile name and line
+ number where the recipe was defined, and information on why the
+ target is being rebuilt.
+
+`-v'
+`--version'
+ Print the version of the `make' program plus a copyright, a list
+ of authors, and a notice that there is no warranty; then exit.
+
+`-w'
+`--print-directory'
+ Print a message containing the working directory both before and
+ after executing the makefile. This may be useful for tracking
+ down errors from complicated nests of recursive `make' commands.
+ *Note Recursive Use of `make': Recursion. (In practice, you
+ rarely need to specify this option since `make' does it for you;
+ see *note The `--print-directory' Option: -w Option.)
+
+`--no-print-directory'
+ Disable printing of the working directory under `-w'. This option
+ is useful when `-w' is turned on automatically, but you do not
+ want to see the extra messages. *Note The `--print-directory'
+ Option: -w Option.
+
+`-W FILE'
+`--what-if=FILE'
+`--new-file=FILE'
+`--assume-new=FILE'
+ Pretend that the target FILE has just been modified. When used
+ with the `-n' flag, this shows you what would happen if you were
+ to modify that file. Without `-n', it is almost the same as
+ running a `touch' command on the given file before running `make',
+ except that the modification time is changed only in the
+ imagination of `make'. *Note Instead of Executing Recipes:
+ Instead of Execution.
+
+`--warn-undefined-variables'
+ Issue a warning message whenever `make' sees a reference to an
+ undefined variable. This can be helpful when you are trying to
+ debug makefiles which use variables in complex ways.
+
+
+File: make.info, Node: Implicit Rules, Next: Archives, Prev: Running, Up: Top
+
+10 Using Implicit Rules
+***********************
+
+Certain standard ways of remaking target files are used very often. For
+example, one customary way to make an object file is from a C source
+file using the C compiler, `cc'.
+
+ "Implicit rules" tell `make' how to use customary techniques so that
+you do not have to specify them in detail when you want to use them.
+For example, there is an implicit rule for C compilation. File names
+determine which implicit rules are run. For example, C compilation
+typically takes a `.c' file and makes a `.o' file. So `make' applies
+the implicit rule for C compilation when it sees this combination of
+file name endings.
+
+ A chain of implicit rules can apply in sequence; for example, `make'
+will remake a `.o' file from a `.y' file by way of a `.c' file.
+
+ The built-in implicit rules use several variables in their recipes so
+that, by changing the values of the variables, you can change the way
+the implicit rule works. For example, the variable `CFLAGS' controls
+the flags given to the C compiler by the implicit rule for C
+compilation.
+
+ You can define your own implicit rules by writing "pattern rules".
+
+ "Suffix rules" are a more limited way to define implicit rules.
+Pattern rules are more general and clearer, but suffix rules are
+retained for compatibility.
+
+* Menu:
+
+* Using Implicit:: How to use an existing implicit rule
+ to get the recipes for updating a file.
+* Catalogue of Rules:: A list of built-in implicit rules.
+* Implicit Variables:: How to change what predefined rules do.
+* Chained Rules:: How to use a chain of implicit rules.
+* Pattern Rules:: How to define new implicit rules.
+* Last Resort:: How to define a recipe for rules which
+ cannot find any.
+* Suffix Rules:: The old-fashioned style of implicit rule.
+* Implicit Rule Search:: The precise algorithm for applying
+ implicit rules.
+
+
+File: make.info, Node: Using Implicit, Next: Catalogue of Rules, Prev: Implicit Rules, Up: Implicit Rules
+
+10.1 Using Implicit Rules
+=========================
+
+To allow `make' to find a customary method for updating a target file,
+all you have to do is refrain from specifying recipes yourself. Either
+write a rule with no recipe, or don't write a rule at all. Then `make'
+will figure out which implicit rule to use based on which kind of
+source file exists or can be made.
+
+ For example, suppose the makefile looks like this:
+
+ foo : foo.o bar.o
+ cc -o foo foo.o bar.o $(CFLAGS) $(LDFLAGS)
+
+Because you mention `foo.o' but do not give a rule for it, `make' will
+automatically look for an implicit rule that tells how to update it.
+This happens whether or not the file `foo.o' currently exists.
+
+ If an implicit rule is found, it can supply both a recipe and one or
+more prerequisites (the source files). You would want to write a rule
+for `foo.o' with no recipe if you need to specify additional
+prerequisites, such as header files, that the implicit rule cannot
+supply.
+
+ Each implicit rule has a target pattern and prerequisite patterns.
+There may be many implicit rules with the same target pattern. For
+example, numerous rules make `.o' files: one, from a `.c' file with the
+C compiler; another, from a `.p' file with the Pascal compiler; and so
+on. The rule that actually applies is the one whose prerequisites
+exist or can be made. So, if you have a file `foo.c', `make' will run
+the C compiler; otherwise, if you have a file `foo.p', `make' will run
+the Pascal compiler; and so on.
+
+ Of course, when you write the makefile, you know which implicit rule
+you want `make' to use, and you know it will choose that one because you
+know which possible prerequisite files are supposed to exist. *Note
+Catalogue of Implicit Rules: Catalogue of Rules, for a catalogue of all
+the predefined implicit rules.
+
+ Above, we said an implicit rule applies if the required
+prerequisites "exist or can be made". A file "can be made" if it is
+mentioned explicitly in the makefile as a target or a prerequisite, or
+if an implicit rule can be recursively found for how to make it. When
+an implicit prerequisite is the result of another implicit rule, we say
+that "chaining" is occurring. *Note Chains of Implicit Rules: Chained
+Rules.
+
+ In general, `make' searches for an implicit rule for each target, and
+for each double-colon rule, that has no recipe. A file that is
+mentioned only as a prerequisite is considered a target whose rule
+specifies nothing, so implicit rule search happens for it. *Note
+Implicit Rule Search Algorithm: Implicit Rule Search, for the details
+of how the search is done.
+
+ Note that explicit prerequisites do not influence implicit rule
+search. For example, consider this explicit rule:
+
+ foo.o: foo.p
+
+The prerequisite on `foo.p' does not necessarily mean that `make' will
+remake `foo.o' according to the implicit rule to make an object file, a
+`.o' file, from a Pascal source file, a `.p' file. For example, if
+`foo.c' also exists, the implicit rule to make an object file from a C
+source file is used instead, because it appears before the Pascal rule
+in the list of predefined implicit rules (*note Catalogue of Implicit
+Rules: Catalogue of Rules.).
+
+ If you do not want an implicit rule to be used for a target that has
+no recipe, you can give that target an empty recipe by writing a
+semicolon (*note Defining Empty Recipes: Empty Recipes.).
+
+
File: make.info, Node: Catalogue of Rules, Next: Implicit Variables, Prev: Using Implicit, Up: Implicit Rules
10.2 Catalogue of Implicit Rules
@@ -278,7 +688,7 @@ To see the complete list of predefined variables for your instance of
GNU `make' you can run `make -p' in a directory with no makefiles.
Here is a table of some of the more common variables used as names of
-programs in built-in rules: makefiles.
+programs in built-in rules:
`AR'
Archive-maintaining program; default `ar'.
@@ -381,7 +791,14 @@ empty string, unless otherwise noted.
`LDFLAGS'
Extra flags to give to compilers when they are supposed to invoke
- the linker, `ld'.
+ the linker, `ld', such as `-L'. Libraries (`-lfoo') should be
+ added to the `LDLIBS' variable instead.
+
+`LDLIBS'
+ Library flags or names given to compilers when they are supposed to
+ invoke the linker, `ld'. `LOADLIBES' is a deprecated (but still
+ supported) alternative to `LDLIBS'. Non-library linker flags,
+ such as `-L', should go in the `LDFLAGS' variable.
`LFLAGS'
Extra flags to give to Lex.
@@ -503,7 +920,7 @@ for Transforming Text: Functions.
* Pattern Intro:: An introduction to pattern rules.
* Pattern Examples:: Examples of pattern rules.
* Automatic Variables:: How to use automatic variables in the
- recipes of implicit rules.
+ recipe of implicit rules.
* Pattern Match:: How patterns match.
* Match-Anything Rules:: Precautions you should take prior to
defining rules that can match any
@@ -588,7 +1005,7 @@ the target file and the source file in each case where the rule applies
$(CO) $(COFLAGS) $<
defines a rule that can make any file `X' whatsoever from a
-corresponding file `X,v' in the subdirectory `RCS'. Since the target
+corresponding file `X,v' in the sub-directory `RCS'. Since the target
is `%', this rule will apply to any file whatever, provided the
appropriate prerequisite file exists. The double colon makes the rule
"terminal", which means that its prerequisite may not be an intermediate
@@ -888,26 +1305,27 @@ remade from any other files; therefore, `make' can save time by not
looking for ways to remake them.
If you do not mark the match-anything rule as terminal, then it is
-nonterminal. A nonterminal match-anything rule cannot apply to a file
-name that indicates a specific type of data. A file name indicates a
-specific type of data if some non-match-anything implicit rule target
-matches it.
+non-terminal. A non-terminal match-anything rule cannot apply to a
+file name that indicates a specific type of data. A file name
+indicates a specific type of data if some non-match-anything implicit
+rule target matches it.
For example, the file name `foo.c' matches the target for the pattern
rule `%.c : %.y' (the rule to run Yacc). Regardless of whether this
rule is actually applicable (which happens only if there is a file
`foo.y'), the fact that its target matches is enough to prevent
-consideration of any nonterminal match-anything rules for the file
+consideration of any non-terminal match-anything rules for the file
`foo.c'. Thus, `make' will not even consider trying to make `foo.c' as
an executable file from `foo.c.o', `foo.c.c', `foo.c.p', etc.
- The motivation for this constraint is that nonterminal match-anything
-rules are used for making files containing specific types of data (such
-as executable files) and a file name with a recognized suffix indicates
-some other specific type of data (such as a C source file).
+ The motivation for this constraint is that non-terminal
+match-anything rules are used for making files containing specific
+types of data (such as executable files) and a file name with a
+recognized suffix indicates some other specific type of data (such as a
+C source file).
Special built-in dummy pattern rules are provided solely to recognize
-certain file names so that nonterminal match-anything rules will not be
+certain file names so that non-terminal match-anything rules will not be
considered. These dummy rules have no prerequisites and no recipes, and
they are ignored for all other purposes. For example, the built-in
implicit rule
@@ -1102,7 +1520,7 @@ rule.
against T; otherwise, against N.
3. If any rule in that list is _not_ a match-anything rule, then
- remove all nonterminal match-anything rules from the list.
+ remove all non-terminal match-anything rules from the list.
4. Remove from the list all rules with no recipe.
@@ -1155,12 +1573,12 @@ variables are set corresponding to the target and prerequisites. *Note
Automatic Variables::.

-File: make.info, Node: Archives, Next: Features, Prev: Implicit Rules, Up: Top
+File: make.info, Node: Archives, Next: Extending make, Prev: Implicit Rules, Up: Top
11 Using `make' to Update Archive Files
***************************************
-"Archive files" are files containing named subfiles called "members";
+"Archive files" are files containing named sub-files called "members";
they are maintained with the program `ar' and their main use is as
subroutine libraries for linking.
@@ -1351,9 +1769,586 @@ the normal way (*note Suffix Rules::). Thus a double-suffix rule
`.X.a' produces two pattern rules: `(%.o): %.X' and `%.a: %.X'.

-File: make.info, Node: Features, Next: Missing, Prev: Archives, Up: Top
+File: make.info, Node: Extending make, Next: Features, Prev: Archives, Up: Top
+
+12 Extending GNU `make'
+***********************
+
+GNU `make' provides many advanced capabilities, including many useful
+functions. However, it does not contain a complete programming
+language and so it has limitations. Sometimes these limitations can be
+overcome through use of the `shell' function to invoke a separate
+program, although this can be inefficient.
+
+ In cases where the built-in capabilities of GNU `make' are
+insufficient to your requirements there are two options for extending
+`make'. On systems where it's provided, you can utilize GNU Guile as
+an embedded scripting language (*note GNU Guile Integration: Guile
+Integration.). On systems which support dynamically loadable objects,
+you can write your own extension in any language (which can be compiled
+into such an object) and load it to provide extended capabilities
+(*note The `load' Directive: load Directive.).
+
+* Menu:
+
+* Guile Integration:: Using Guile as an embedded scripting language.
+* Loading Objects:: Loading dynamic objects as extensions.
+
+
+File: make.info, Node: Guile Integration, Next: Loading Objects, Prev: Extending make, Up: Extending make
+
+12.1 GNU Guile Integration
+==========================
+
+GNU `make' may be built with support for GNU Guile as an embedded
+extension language. Guile implements the Scheme language. A review of
+GNU Guile and the Scheme language and its features is beyond the scope
+of this manual: see the documentation for GNU Guile and Scheme.
+
+ You can determine if `make' contains support for Guile by examining
+the `.FEATURES' variable; it will contain the word GUILE if Guile
+support is available.
+
+ The Guile integration provides one new `make' function: `guile'.
+The `guile' function takes one argument which is first expanded by
+`make' in the normal fashion, then passed to the GNU Guile evaluator.
+The result of the evaluator is converted into a string and used as the
+expansion of the `guile' function in the makefile.
+
+ In addition, GNU `make' exposes Guile procedures for use in Guile
+scripts.
+
+* Menu:
+
+* Guile Types:: Converting Guile types to `make' strings.
+* Guile Interface:: Invoking `make' functions from Guile.
+* Guile Example:: Example using Guile in `make'.
+
+
+File: make.info, Node: Guile Types, Next: Guile Interface, Prev: Guile Integration, Up: Guile Integration
+
+12.1.1 Conversion of Guile Types
+--------------------------------
+
+There is only one "data type" in `make': a string. GNU Guile, on the
+other hand, provides a rich variety of different data types. An
+important aspect of the interface between `make' and GNU Guile is the
+conversion of Guile data types into `make' strings.
+
+ This conversion is relevant in two places: when a makefile invokes
+the `guile' function to evaluate a Guile expression, the result of that
+evaluation must be converted into a make string so it can be further
+evaluated by `make'. And secondly, when a Guile script invokes one of
+the procedures exported by `make' the argument provided to the
+procedure must be converted into a string.
+
+ The conversion of Guile types into `make' strings is as below:
+
+`#f'
+ False is converted into the empty string: in `make' conditionals
+ the empty string is considered false.
+
+`#t'
+ True is converted to the string `#t': in `make' conditionals any
+ non-empty string is considered true.
+
+`symbol'
+
+`number'
+ A symbol or number is converted into the string representation of
+ that symbol or number.
+
+`character'
+ A printable character is converted to the same character.
+
+`string'
+ A string containing only printable characters is converted to the
+ same string.
+
+`list'
+ A list is converted recursively according to the above rules. This
+ implies that any structured list will be flattened (that is, a
+ result of `'(a b (c d) e)' will be converted to the `make' string
+ `a b c d e').
+
+`other'
+ Any other Guile type results in an error. In future versions of
+ `make', other Guile types may be converted.
+
+
+ The translation of `#f' (to the empty string) and `#t' (to the
+non-empty string `#t') is designed to allow you to use Guile boolean
+results directly as `make' boolean conditions. For example:
+
+ $(if $(guile (access? "myfile" R_OK)),$(info myfile exists))
+
+ As a consequence of these conversion rules you must consider the
+result of your Guile script, as that result will be converted into a
+string and parsed by `make'. If there is no natural result for the
+script (that is, the script exists solely for its side-effects), you
+should add `#f' as the final expression in order to avoid syntax errors
+in your makefile.
+
+
+File: make.info, Node: Guile Interface, Next: Guile Example, Prev: Guile Types, Up: Guile Integration
+
+12.1.2 Interfaces from Guile to `make'
+--------------------------------------
+
+In addition to the `guile' function available in makefiles, `make'
+exposes some procedures for use in your Guile scripts. At startup
+`make' creates a new Guile module, `gnu make', and exports these
+procedures as public interfaces from that module:
+
+`gmk-expand'
+ This procedure takes a single argument which is converted into a
+ string. The string is expanded by `make' using normal `make'
+ expansion rules. The result of the expansion is converted into a
+ Guile string and provided as the result of the procedure.
+
+`gmk-eval'
+ This procedure takes a single argument which is converted into a
+ string. The string is evaluated by `make' as if it were a
+ makefile. This is the same capability available via the `eval'
+ function (*note Eval Function::). The result of the `gmk-eval'
+ procedure is always the empty string.
+
+ Note that `gmk-eval' is not quite the same as using `gmk-expand'
+ with the `eval' function: in the latter case the evaluated string
+ will be expanded _twice_; first by `gmk-expand', then again by the
+ `eval' function.
+
+
+
+File: make.info, Node: Guile Example, Prev: Guile Interface, Up: Guile Integration
+
+12.1.3 Example Using Guile in `make'
+------------------------------------
+
+Here is a very simple example using GNU Guile to manage writing to a
+file. These Guile procedures simply open a file, allow writing to the
+file (one string per line), and close the file. Note that because we
+cannot store complex values such as Guile ports in `make' variables,
+we'll keep the port as a global variable in the Guile interpreter.
+
+ You can create Guile functions easily using `define'/`endef' to
+create a Guile script, then use the `guile' function to internalize it:
+
+ define GUILEIO
+ ;; A simple Guile IO library for GNU make
+
+ (define MKPORT #f)
+
+ (define (mkopen name mode)
+ (set! MKPORT (open-file name mode))
+ #f)
+
+ (define (mkwrite s)
+ (display s MKPORT)
+ (newline MKPORT)
+ #f)
+
+ (define (mkclose)
+ (close-port MKPORT)
+ #f)
+
+ #f
+ endef
+
+ # Internalize the Guile IO functions
+ $(guile $(GUILEIO))
+
+ If you have a significant amount of Guile support code, you might
+consider keeping it in a different file (e.g., `guileio.scm') and then
+loading it in your makefile using the `guile' function:
+
+ $(guile (load "guileio.scm"))
+
+ An advantage to this method is that when editing `guileio.scm', your
+editor will understand that this file contains Scheme syntax rather
+than makefile syntax.
+
+ Now you can use these Guile functions to create files. Suppose you
+need to operate on a very large list, which cannot fit on the command
+line, but the utility you're using accepts the list as input as well:
+
+ prog: $(PREREQS)
+ @$(guile (mkopen "tmp.out" "w")) \
+ $(foreach X,$^,$(guile (mkwrite "$(X)"))) \
+ $(guile (mkclose))
+ $(LINK) < tmp.out
+
+ A more comprehensive suite of file manipulation procedures is
+possible of course. You could, for example, maintain multiple output
+files at the same time by choosing a symbol for each one and using it
+as the key to a hash table, where the value is a port, then returning
+the symbol to be stored in a `make' variable.
+
+
+File: make.info, Node: Loading Objects, Prev: Guile Integration, Up: Extending make
+
+12.2 Loading Dynamic Objects
+============================
+
+ Warning: The `load' directive and extension capability is
+ considered a "technology preview" in this release of GNU make. We
+ encourage you to experiment with this feature and we appreciate
+ any feedback on it. However we cannot guarantee to maintain
+ backward-compatibility in the next release. Consider using GNU
+ Guile instead for extending GNU make (*note The `guile' Function:
+ Guile Function.).
+
+Many operating systems provide a facility for dynamically loading
+compiled objects. If your system provides this facility, GNU `make'
+can make use of it to load dynamic objects at runtime, providing new
+capabilities which may then be invoked by your makefile.
+
+ The `load' directive is used to load a dynamic object. Once the
+object is loaded, a "setup" function will be invoked to allow the
+object to initialize itself and register new facilities with GNU
+`make'. A dynamic object might include new `make' functions, for
+example, and the "setup" function would register them with GNU `make''s
+function handling system.
+
+* Menu:
+
+* load Directive:: Loading dynamic objects as extensions.
+* Remaking Loaded Objects:: How loaded objects get remade.
+* Loaded Object API:: Programmatic interface for loaded objects.
+* Loaded Object Example:: Example of a loaded object
+
+
+File: make.info, Node: load Directive, Next: Remaking Loaded Objects, Prev: Loading Objects, Up: Loading Objects
-12 Features of GNU `make'
+12.2.1 The `load' Directive
+---------------------------
+
+Objects are loaded into GNU `make' by placing the `load' directive into
+your makefile. The syntax of the `load' directive is as follows:
+
+ load OBJECT-FILE ...
+
+ or:
+
+ load OBJECT-FILE(SYMBOL-NAME) ...
+
+ The file OBJECT-FILE is dynamically loaded by GNU `make'. If
+OBJECT-FILE does not include a directory path then it is first looked
+for in the current directory. If it is not found there, or a directory
+path is included, then system-specific paths will be searched. If the
+load fails for any reason, `make' will print a message and exit.
+
+ If the load succeeds `make' will invoke an initializing function.
+
+ If SYMBOL-NAME is provided, it will be used as the name of the
+initializing function.
+
+ If no SYMBOL-NAME is provided, the initializing function name is
+created by taking the base file name of OBJECT-FILE, up to the first
+character which is not a valid symbol name character (alphanumerics and
+underscores are valid symbol name characters). To this prefix will be
+appended the suffix `_gmk_setup'.
+
+ More than one object file may be loaded with a single `load'
+directive, and both forms of `load' arguments may be used in the same
+directive.
+
+ The initializing function will be provided the file name and line
+number of the invocation of the `load' operation. It should return a
+value of type `int', which must be `0' on failure and non-`0' on
+success. If the return value is `-1', then GNU make will _not_ attempt
+to rebuild the object file (*note How Loaded Objects Are Remade:
+Remaking Loaded Objects.).
+
+ For example:
+
+ load ../mk_funcs.so
+
+ will load the dynamic object `../mk_funcs.so'. After the object is
+loaded, `make' will invoke the function (assumed to be defined by the
+shared object) `mk_funcs_gmk_setup'.
+
+ On the other hand:
+
+ load ../mk_funcs.so(init_mk_func)
+
+ will load the dynamic object `../mk_funcs.so'. After the object is
+loaded, `make' will invoke the function `init_mk_func'.
+
+ Regardless of how many times an object file appears in a `load'
+directive, it will only be loaded (and its setup function will only be
+invoked) once.
+
+ After an object has been successfully loaded, its file name is
+appended to the `.LOADED' variable.
+
+ If you would prefer that failure to load a dynamic object not be
+reported as an error, you can use the `-load' directive instead of
+`load'. GNU `make' will not fail and no message will be generated if
+an object fails to load. The failed object is not added to the
+`.LOADED' variable, which can then be consulted to determine if the
+load was successful.
+
+
+File: make.info, Node: Remaking Loaded Objects, Next: Loaded Object API, Prev: load Directive, Up: Loading Objects
+
+12.2.2 How Loaded Objects Are Remade
+------------------------------------
+
+Loaded objects undergo the same re-make procedure as makefiles (*note
+How Makefiles Are Remade: Remaking Makefiles.). If any loaded object
+is recreated, then `make' will start from scratch and re-read all the
+makefiles, and reload the object files again. It is not necessary for
+the loaded object to do anything special to support this.
+
+ It's up to the makefile author to provide the rules needed for
+rebuilding the loaded object.
+
+
+File: make.info, Node: Loaded Object API, Next: Loaded Object Example, Prev: Remaking Loaded Objects, Up: Loading Objects
+
+12.2.3 Loaded Object Interface
+------------------------------
+
+ Warning: For this feature to be useful your extensions will need
+ to invoke various functions internal to GNU `make'. The
+ programming interfaces provided in this release should not be
+ considered stable: functions may be added, removed, or change
+ calling signatures or implementations in future versions of GNU
+ `make'.
+
+To be useful, loaded objects must be able to interact with GNU `make'.
+This interaction includes both interfaces the loaded object provides to
+makefiles and also interfaces `make' provides to the loaded object to
+manipulate `make''s operation.
+
+ The interface between loaded objects and `make' is defined by the
+`gnumake.h' C header file. All loaded objects written in C should
+include this header file. Any loaded object not written in C will need
+to implement the interface defined in this header file.
+
+ Typically, a loaded object will register one or more new GNU `make'
+functions using the `gmk_add_function' routine from within its setup
+function. The implementations of these `make' functions may make use
+of the `gmk_expand' and `gmk_eval' routines to perform their tasks,
+then optionally return a string as the result of the function expansion.
+
+Loaded Object Licensing
+.......................
+
+Every dynamic extension should define the global symbol
+`plugin_is_GPL_compatible' to assert that it has been licensed under a
+GPL-compatible license. If this symbol does not exist, `make' emits a
+fatal error and exits when it tries to load your extension.
+
+ The declared type of the symbol should be `int'. It does not need to
+be in any allocated section, though. The code merely asserts that the
+symbol exists in the global scope. Something like this is enough:
+
+ int plugin_is_GPL_compatible;
+
+Data Structures
+...............
+
+`gmk_floc'
+ This structure represents a filename/location pair. It is provided
+ when defining items, so GNU `make' can inform the user later where
+ the definition occurred if necessary.
+
+Registering Functions
+.....................
+
+There is currently one way for makefiles to invoke operations provided
+by the loaded object: through the `make' function call interface. A
+loaded object can register one or more new functions which may then be
+invoked from within the makefile in the same way as any other function.
+
+ Use `gmk_add_function' to create a new `make' function. Its
+arguments are as follows:
+
+`name'
+ The function name. This is what the makefile should use to invoke
+ the function. The name must be between 1 and 255 characters long
+ and it may only contain alphanumeric, period (`.'), dash (`-'), and
+ underscore (`_') characters. It may not begin with a period.
+
+`func_ptr'
+ A pointer to a function that `make' will invoke when it expands
+ the function in a makefile. This function must be defined by the
+ loaded object.
+
+`min_args'
+ The minimum number of arguments the function will accept. Must be
+ between 0 and 255. GNU `make' will check this and fail before
+ invoking `func_ptr' if the function was invoked with too few
+ arguments.
+
+`max_args'
+ The maximum number of arguments the function will accept. Must be
+ between 0 and 255. GNU `make' will check this and fail before
+ invoking `func_ptr' if the function was invoked with too few
+ arguments. If the value is 0, then any number of arguments is
+ accepted. If the value is greater than 0, then it must be greater
+ than or equal to `min_args'.
+
+`flags'
+ Flags that specify how this function will operate; the desired
+ flags should be OR'd together. If the `GMK_FUNC_NOEXPAND' flag is
+ given then the function arguments will not be expanded before the
+ function is called; otherwise they will be expanded first.
+
+Registered Function Interface
+.............................
+
+A function registered with `make' must match the `gmk_func_ptr' type.
+It will be invoked with three parameters: `name' (the name of the
+function), `argc' (the number of arguments to the function), and `argv'
+(an array of pointers to arguments to the function). The last pointer
+(that is, `argv[argc]') will be null (`0').
+
+ The return value of the function is the result of expanding the
+function. If the function expands to nothing the return value may be
+null. Otherwise, it must be a pointer to a string created with
+`gmk_alloc'. Once the function returns, `make' owns this string and
+will free it when appropriate; it cannot be accessed by the loaded
+object.
+
+GNU `make' Facilities
+.....................
+
+There are some facilities exported by GNU `make' for use by loaded
+objects. Typically these would be run from within the setup function
+and/or the functions registered via `gmk_add_function', to retrieve or
+modify the data `make' works with.
+
+`gmk_expand'
+ This function takes a string and expands it using `make' expansion
+ rules. The result of the expansion is returned in a
+ nil-terminated string buffer. The caller is responsible for
+ calling `gmk_free' with a pointer to the returned buffer when done.
+
+`gmk_eval'
+ This function takes a buffer and evaluates it as a segment of
+ makefile syntax. This function can be used to define new
+ variables, new rules, etc. It is equivalent to using the `eval'
+ `make' function.
+
+ Note that there is a difference between `gmk_eval' and calling
+`gmk_expand' with a string using the `eval' function: in the latter
+case the string will be expanded _twice_; once by `gmk_expand' and then
+again by the `eval' function. Using `gmk_eval' the buffer is only
+expanded once, at most (as it's read by the `make' parser).
+
+Memory Management
+.................
+
+Some systems allow for different memory management schemes. Thus you
+should never pass memory that you've allocated directly to any `make'
+function, nor should you attempt to directly free any memory returned
+to you by any `make' function. Instead, use the `gmk_alloc' and
+`gmk_free' functions.
+
+ In particular, the string returned to `make' by a function
+registered using `gmk_add_function' _must_ be allocated using
+`gmk_alloc', and the string returned from the `make' `gmk_expand'
+function _must_ be freed (when no longer needed) using `gmk_free'.
+
+`gmk_alloc'
+ Return a pointer to a newly-allocated buffer. This function will
+ always return a valid pointer; if not enough memory is available
+ `make' will exit.
+
+`gmk_free'
+ Free a buffer returned to you by `make'. Once the `gmk_free'
+ function returns the string will no longer be valid.
+
+
+File: make.info, Node: Loaded Object Example, Prev: Loaded Object API, Up: Loading Objects
+
+12.2.4 Example Loaded Object
+----------------------------
+
+Let's suppose we wanted to write a new GNU `make' function that would
+create a temporary file and return its name. We would like our
+function to take a prefix as an argument. First we can write the
+function in a file `mk_temp.c':
+
+ #include <stdlib.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <unistd.h>
+ #include <errno.h>
+
+ #include <gnumake.h>
+
+ int plugin_is_GPL_compatible;
+
+ char *
+ gen_tmpfile(const char *nm, int argc, char **argv)
+ {
+ int fd;
+
+ /* Compute the size of the filename and allocate space for it. */
+ int len = strlen (argv[0]) + 6 + 1;
+ char *buf = gmk_alloc (len);
+
+ strcpy (buf, argv[0]);
+ strcat (buf, "XXXXXX");
+
+ fd = mkstemp(buf);
+ if (fd >= 0)
+ {
+ /* Don't leak the file descriptor. */
+ close (fd);
+ return buf;
+ }
+
+ /* Failure. */
+ fprintf (stderr, "mkstemp(%s) failed: %s\n", buf, strerror (errno));
+ gmk_free (buf);
+ return NULL;
+ }
+
+ int
+ mk_temp_gmk_setup ()
+ {
+ /* Register the function with make name "mk-temp". */
+ gmk_add_function ("mk-temp", gen_tmpfile, 1, 1, 1);
+ return 1;
+ }
+
+ Next, we will write a makefile that can build this shared object,
+load it, and use it:
+
+ all:
+ @echo Temporary file: $(mk-temp tmpfile.)
+
+ load mk_temp.so
+
+ mk_temp.so: mk_temp.c
+ $(CC) -shared -fPIC -o $ $<
+
+ On MS-Windows, due to peculiarities of how shared objects are
+produced, the compiler needs to scan the "import library" produced when
+building `make', typically called `libgnumake-VERSION.dll.a', where
+VERSION is the version of the load object API. So the recipe to
+produce a shared object will look on Windows like this (assuming the
+API version is 1):
+
+ mk_temp.dll: mk_temp.c
+ $(CC) -shared -o $ $< -lgnumake-1
+
+ Now when you run `make' you'll see something like:
+
+ $ make
+ cc -shared -fPIC -o mk_temp.so mk_temp.c
+ Temporary filename: tmpfile.A7JEwd
+
+
+File: make.info, Node: Features, Next: Missing, Prev: Extending make, Up: Top
+
+13 Features of GNU `make'
*************************
Here is a summary of the features of GNU `make', for comparison with
@@ -1404,7 +2399,7 @@ listed here, nor the ones in *note Missing::.
Chained Rules.) allows one pattern rule for installing members in
an archive (*note Archive Update::) to be sufficient.
- * The arrangement of lines and backslash-newline combinations in
+ * The arrangement of lines and backslash/newline combinations in
recipes is retained when the recipes are printed, so they appear as
they do in the makefile, except for the stripping of initial
whitespace.
@@ -1440,6 +2435,10 @@ which others.
System V or BSD implementations. *Note Recipe Execution:
Execution.
+ * A number of different build tools that support parallelism also
+ support collecting output and displaying as a single block. *Note
+ Output During Parallel Execution: Parallel Output.
+
* Modified variable references using pattern substitution come from
SunOS 4. *Note Basics of Variable References: Reference. This
functionality was provided in GNU `make' by the `patsubst'
@@ -1465,6 +2464,15 @@ which others.
`-include' directive.) The same feature appears with the name
`sinclude' in SGI `make' and perhaps others.
+ * The `!=' shell assignment operator exists in many BSD of `make'
+ and is purposefully implemented here to behave identically to
+ those implementations.
+
+ * Various build management tools are implemented using scripting
+ languages such as Perl or Python and thus provide a natural
+ embedded scripting language, similar to GNU `make''s integration
+ of GNU Guile.
+
The remaining features are inventions new in GNU `make':
* Use the `-v' or `--version' option to print version and copyright
@@ -1546,13 +2554,13 @@ which others.
* Various new built-in implicit rules. *Note Catalogue of Implicit
Rules: Catalogue of Rules.
- * The built-in variable `MAKE_VERSION' gives the version number of
- `make'.
+ * Load dynamic objects which can modify the behavior of `make'.
+ *Note Loading Dynamic Objects: Loading Objects.

File: make.info, Node: Missing, Next: Makefile Conventions, Prev: Features, Up: Top
-13 Incompatibilities and Missing Features
+14 Incompatibilities and Missing Features
*****************************************
The `make' programs in various other systems support a few features
@@ -1565,7 +2573,7 @@ these features.
being an object file which defines the linker symbol ENTRY.
This feature was not put into GNU `make' because of the
- nonmodularity of putting knowledge into `make' of the internal
+ non-modularity of putting knowledge into `make' of the internal
format of archive file symbol tables. *Note Updating Archive
Symbol Directories: Archive Symbols.
@@ -1637,7 +2645,7 @@ these features.

File: make.info, Node: Makefile Conventions, Next: Quick Reference, Prev: Missing, Up: Top
-14 Makefile Conventions
+15 Makefile Conventions
***********************
This node describes conventions for writing the Makefiles for GNU
@@ -1659,7 +2667,7 @@ POSIX and *note Portable Make Programming: (autoconf)Portable Make.

File: make.info, Node: Makefile Basics, Next: Utilities in Makefiles, Up: Makefile Conventions
-14.1 General Conventions for Makefiles
+15.1 General Conventions for Makefiles
======================================
Every Makefile should contain this line:
@@ -1739,7 +2747,7 @@ their subtargets) work correctly with a parallel `make'.

File: make.info, Node: Utilities in Makefiles, Next: Command Variables, Prev: Makefile Basics, Up: Makefile Conventions
-14.2 Utilities in Makefiles
+15.2 Utilities in Makefiles
===========================
Write the Makefile commands (and any shell scripts, such as
@@ -1799,7 +2807,7 @@ exist.

File: make.info, Node: Command Variables, Next: DESTDIR, Prev: Utilities in Makefiles, Up: Makefile Conventions
-14.3 Variables for Specifying Commands
+15.3 Variables for Specifying Commands
======================================
Makefiles should provide variables for overriding certain commands,
@@ -1873,7 +2881,7 @@ command, with the final argument being a directory, as in:

File: make.info, Node: DESTDIR, Next: Directory Variables, Prev: Command Variables, Up: Makefile Conventions
-14.4 `DESTDIR': Support for Staged Installs
+15.4 `DESTDIR': Support for Staged Installs
===========================================
`DESTDIR' is a variable prepended to each installed target file, like
@@ -1922,7 +2930,7 @@ though it is not an absolute requirement.

File: make.info, Node: Directory Variables, Next: Standard Targets, Prev: DESTDIR, Up: Makefile Conventions
-14.5 Variables for Installation Directories
+15.5 Variables for Installation Directories
===========================================
Installation directories should always be named by variables, so it is
@@ -2073,6 +3081,19 @@ to put these various kinds of files in:
it as `$(prefix)/var'. (If you are using Autoconf, write it as
`@localstatedir@'.)
+`runstatedir'
+ The directory for installing data files which the programs modify
+ while they run, that pertain to one specific machine, and which
+ need not persist longer than the execution of the program--which is
+ generally long-lived, for example, until the next reboot. PID
+ files for system daemons are a typical use. In addition, this
+ directory should not be cleaned except perhaps at reboot, while
+ the general `/tmp' (`TMPDIR') may be cleaned arbitrarily. This
+ should normally be `/var/run', but write it as
+ `$(localstatedir)/run'. Having it as a separate variable allows
+ the use of `/run' if desired, for example. (If you are using
+ Autoconf 2.70 or later, write it as `@runstatedir@'.)
+
These variables specify the directory for installing certain specific
types of files, if your program has them. Every GNU package should
have Info files, so every program needs `infodir', but not all need
@@ -2154,7 +3175,7 @@ have Info files, so every program needs `infodir', but not all need
If you are using Autoconf, write the default as `@lispdir@'. In
order to make `@lispdir@' work, you need the following lines in
- your `configure.in' file:
+ your `configure.ac' file:
lispdir='${datarootdir}/emacs/site-lisp'
AC_SUBST(lispdir)
@@ -2248,7 +3269,7 @@ supports them.

File: make.info, Node: Standard Targets, Next: Install Command Categories, Prev: Directory Variables, Up: Makefile Conventions
-14.6 Standard Targets for Users
+15.6 Standard Targets for Users
===============================
All GNU programs should have the following targets in their Makefiles:
@@ -2261,8 +3282,9 @@ All GNU programs should have the following targets in their Makefiles:
asked for.
By default, the Make rules should compile and link with `-g', so
- that executable programs have debugging symbols. Users who don't
- mind being helpless can strip the executables later if they wish.
+ that executable programs have debugging symbols. Otherwise, you
+ are essentially helpless in the face of a crash, and it is often
+ far from easy to reproduce with a fresh build.
`install'
Compile the program and copy the executables, libraries, and so on
@@ -2270,8 +3292,11 @@ All GNU programs should have the following targets in their Makefiles:
there is a simple test to verify that a program is properly
installed, this target should run that test.
- Do not strip executables when installing them. Devil-may-care
- users can use the `install-strip' target to do that.
+ Do not strip executables when installing them. This helps eventual
+ debugging that may be needed later, and nowadays disk space is
+ cheap and dynamic loaders typically ensure debug sections are not
+ loaded during normal execution. Users that need stripped binaries
+ may invoke the `install-strip' target to do that.
If possible, write the `install' target rule so that it does not
modify anything in the directory where the program was built,
@@ -2475,10 +3500,12 @@ All GNU programs should have the following targets in their Makefiles:
foo.dvi: foo.texi chap1.texi chap2.texi
$(TEXI2DVI) $(srcdir)/foo.texi
- You must define the variable `TEXI2DVI' in the Makefile. It should
- run the program `texi2dvi', which is part of the Texinfo
- distribution.(1) Alternatively, write just the dependencies, and
- allow GNU `make' to provide the command.
+ You must define the variable `TEXI2DVI' in the Makefile. It
+ should run the program `texi2dvi', which is part of the Texinfo
+ distribution. (`texi2dvi' uses TeX to do the real work of
+ formatting. TeX is not distributed with Texinfo.) Alternatively,
+ write only the dependencies, and allow GNU `make' to provide the
+ command.
Here's another example, this one for generating HTML from Texinfo:
@@ -2553,15 +3580,10 @@ programs in which they are useful.
This rule should not modify the directories where compilation is
done. It should do nothing but create installation directories.
- ---------- Footnotes ----------
-
- (1) `texi2dvi' uses TeX to do the real work of formatting. TeX is
-not distributed with Texinfo.
-

File: make.info, Node: Install Command Categories, Prev: Standard Targets, Up: Makefile Conventions
-14.7 Install Command Categories
+15.7 Install Command Categories
===============================
When writing the `install' target, you must classify all the commands
@@ -2678,6 +3700,7 @@ Targets::, *note Catalogue of Implicit Rules: Catalogue of Rules, and
`define VARIABLE'
`define VARIABLE ='
`define VARIABLE :='
+`define VARIABLE ::='
`define VARIABLE +='
`define VARIABLE ?='
`endef'
@@ -2903,6 +3926,11 @@ Targets::, *note Catalogue of Implicit Rules: Catalogue of Rules, and
to the empty string.
*Note The `eval' Function: Eval Function.
+`$(file OP FILENAME,TEXT)'
+ Expand the arguments, then open the file FILENAME using mode OP
+ and write TEXT to that file.
+ *Note The `file' Function: File Function.
+
`$(value VAR)'
Evaluates to the contents of the variable VAR, with no expansion
performed on it.
@@ -2991,6 +4019,14 @@ Variables::, for full information.
recipes has special meaning. *Note How the `MAKE' Variable Works:
MAKE Variable.
+`MAKE_VERSION'
+ The built-in variable `MAKE_VERSION' expands to the version number
+ of the GNU `make' program.
+
+`MAKE_HOST'
+ The built-in variable `MAKE_HOST' expands to a string representing
+ the host that GNU `make' was built to run on.
+
`MAKELEVEL'
The number of levels of recursion (sub-`make's).
*Note Variables/Recursion::.
@@ -3005,6 +4041,16 @@ Variables::, for full information.
shell. Always allow recursive `make''s to obtain these values
through the environment from its parent.
+`GNUMAKEFLAGS'
+ Other flags parsed by `make'. You can set this in the environment
+ or a makefile to set `make' command-line flags. GNU `make' never
+ sets this variable itself. This variable is only needed if you'd
+ like to set GNU `make'-specific flags in a POSIX-compliant
+ makefile. This variable will be seen by GNU `make' and ignored by
+ other `make' implementations. It's not needed if you only use GNU
+ `make'; just use `MAKEFLAGS' directly. *Note Communicating
+ Options to a Sub-`make': Options/Recursion.
+
`MAKECMDGOALS'
The targets given to `make' on the command line. Setting this
variable has no effect on the operation of `make'.
@@ -3039,7 +4085,7 @@ that are fatal are prefixed with the string `***'.
Error messages are all either prefixed with the name of the program
(usually `make'), or, if the error is found in a makefile, the name of
-the file and linenumber containing the problem.
+the file and line number containing the problem.
In the table below, these common prefixes are left off.
@@ -3051,7 +4097,7 @@ the file and linenumber containing the problem.
exited in some other abnormal fashion (with a signal of some
type). *Note Errors in Recipes: Errors.
- If no `***' is attached to the message, then the subprocess failed
+ If no `***' is attached to the message, then the sub-process failed
but the rule in the makefile was prefixed with the `-' special
character, so `make' ignored the error.
@@ -3094,7 +4140,7 @@ the file and linenumber containing the problem.
If you want that file to be built, you will need to add a rule to
your makefile describing how that target can be built. Other
possible sources of this problem are typos in the makefile (if
- that filename is wrong) or a corrupted source tree (if that file
+ that file name is wrong) or a corrupted source tree (if that file
is not supposed to be built, but rather only a prerequisite).
`No targets specified and no makefile found. Stop.'
@@ -3127,8 +4173,8 @@ the file and linenumber containing the problem.
`Recursive variable `XXX' references itself (eventually). Stop.'
This means you've defined a normal (recursive) `make' variable XXX
that, when it's expanded, will refer to itself (XXX). This is not
- allowed; either use simply-expanded variables (`:=') or use the
- append operator (`+='). *Note How to Use Variables: Using
+ allowed; either use simply-expanded variables (`:=' or `::=') or
+ use the append operator (`+='). *Note How to Use Variables: Using
Variables.
`Unterminated variable reference. Stop.'
@@ -3151,7 +4197,10 @@ the file and linenumber containing the problem.
the third means the target doesn't contain a pattern character
(`%'); and the fourth means that all three parts of the static
pattern rule contain pattern characters (`%')-only the first two
- parts should. *Note Syntax of Static Pattern Rules: Static Usage.
+ parts should. If you see these errors and you aren't trying to
+ create a static pattern rule, check the value of any variables in
+ your target and prerequisite lists to be sure they do not contain
+ colons. *Note Syntax of Static Pattern Rules: Static Usage.
`warning: -jN forced in submake: disabling jobserver mode.'
This warning and the next are generated if `make' detects error
@@ -3185,7 +4234,8 @@ Appendix C Complex Makefile Example
***********************************
Here is the makefile for the GNU `tar' program. This is a moderately
-complex makefile.
+complex makefile. The first line uses a `#!' setting to allow the
+makefile to be executed directly.
Because it is the first target, the default goal is `all'. An
interesting feature of this makefile is that `testpad.h' is a source
@@ -3215,6 +4265,7 @@ does `make distclean' and also removes the Info files generated from
In addition, there are targets `shar' and `dist' that create
distribution kits.
+ #!/usr/bin/make -f
# Generated automatically from Makefile.in by configure.
# Un*x Makefile for GNU tar program.
# Copyright (C) 1991 Free Software Foundation, Inc.
@@ -3905,6 +4956,8 @@ Index of Concepts
* Menu:
+* !=: Setting. (line 6)
+* !=, expansion: Reading Makefiles. (line 33)
* # (comments), in makefile: Makefile Contents. (line 42)
* # (comments), in recipes: Recipe Syntax. (line 29)
* #include: Automatic Prerequisites.
@@ -3923,7 +4976,7 @@ Index of Concepts
* * (wildcard character): Wildcards. (line 6)
* +, and define: Canned Recipes. (line 49)
* +, and recipe execution: Instead of Execution.
- (line 60)
+ (line 63)
* +, and recipes: MAKE Variable. (line 18)
* +=: Appending. (line 6)
* +=, expansion: Reading Makefiles. (line 33)
@@ -3931,91 +4984,94 @@ Index of Concepts
* - (in recipes): Errors. (line 19)
* -, and define: Canned Recipes. (line 49)
* --always-make: Options Summary. (line 15)
-* --assume-new <1>: Options Summary. (line 248)
+* --assume-new <1>: Options Summary. (line 276)
* --assume-new: Instead of Execution.
- (line 35)
+ (line 38)
* --assume-new, and recursion: Options/Recursion. (line 22)
-* --assume-old <1>: Options Summary. (line 154)
+* --assume-old <1>: Options Summary. (line 159)
* --assume-old: Avoiding Compilation.
(line 6)
* --assume-old, and recursion: Options/Recursion. (line 22)
-* --check-symlink-times: Options Summary. (line 136)
+* --check-symlink-times: Options Summary. (line 141)
* --debug: Options Summary. (line 42)
* --directory <1>: Options Summary. (line 26)
* --directory: Recursion. (line 20)
* --directory, and --print-directory: -w Option. (line 20)
* --directory, and recursion: Options/Recursion. (line 22)
-* --dry-run <1>: Options Summary. (line 146)
+* --dry-run <1>: Options Summary. (line 151)
* --dry-run <2>: Instead of Execution.
(line 14)
* --dry-run: Echoing. (line 18)
-* --environment-overrides: Options Summary. (line 78)
-* --eval: Options Summary. (line 83)
-* --file <1>: Options Summary. (line 90)
+* --environment-overrides: Options Summary. (line 83)
+* --eval: Options Summary. (line 88)
+* --file <1>: Options Summary. (line 95)
* --file <2>: Makefile Arguments. (line 6)
* --file: Makefile Names. (line 23)
* --file, and recursion: Options/Recursion. (line 22)
-* --help: Options Summary. (line 96)
-* --ignore-errors <1>: Options Summary. (line 100)
+* --help: Options Summary. (line 101)
+* --ignore-errors <1>: Options Summary. (line 105)
* --ignore-errors: Errors. (line 30)
-* --include-dir <1>: Options Summary. (line 105)
+* --include-dir <1>: Options Summary. (line 110)
* --include-dir: Include. (line 53)
-* --jobs <1>: Options Summary. (line 112)
+* --jobs <1>: Options Summary. (line 117)
* --jobs: Parallel. (line 6)
* --jobs, and recursion: Options/Recursion. (line 25)
-* --just-print <1>: Options Summary. (line 145)
+* --just-print <1>: Options Summary. (line 150)
* --just-print <2>: Instead of Execution.
(line 14)
* --just-print: Echoing. (line 18)
-* --keep-going <1>: Options Summary. (line 121)
+* --keep-going <1>: Options Summary. (line 126)
* --keep-going <2>: Testing. (line 16)
* --keep-going: Errors. (line 47)
-* --load-average <1>: Options Summary. (line 128)
-* --load-average: Parallel. (line 58)
-* --makefile <1>: Options Summary. (line 91)
+* --load-average <1>: Options Summary. (line 133)
+* --load-average: Parallel. (line 35)
+* --makefile <1>: Options Summary. (line 96)
* --makefile <2>: Makefile Arguments. (line 6)
* --makefile: Makefile Names. (line 23)
-* --max-load <1>: Options Summary. (line 129)
-* --max-load: Parallel. (line 58)
-* --new-file <1>: Options Summary. (line 247)
+* --max-load <1>: Options Summary. (line 134)
+* --max-load: Parallel. (line 35)
+* --new-file <1>: Options Summary. (line 275)
* --new-file: Instead of Execution.
- (line 35)
+ (line 38)
* --new-file, and recursion: Options/Recursion. (line 22)
-* --no-builtin-rules: Options Summary. (line 182)
-* --no-builtin-variables: Options Summary. (line 195)
-* --no-keep-going: Options Summary. (line 210)
-* --no-print-directory <1>: Options Summary. (line 239)
+* --no-builtin-rules: Options Summary. (line 203)
+* --no-builtin-variables: Options Summary. (line 216)
+* --no-keep-going: Options Summary. (line 231)
+* --no-print-directory <1>: Options Summary. (line 267)
* --no-print-directory: -w Option. (line 20)
-* --old-file <1>: Options Summary. (line 153)
+* --old-file <1>: Options Summary. (line 158)
* --old-file: Avoiding Compilation.
(line 6)
* --old-file, and recursion: Options/Recursion. (line 22)
-* --print-data-base: Options Summary. (line 162)
-* --print-directory: Options Summary. (line 231)
+* --output-sync <1>: Options Summary. (line 167)
+* --output-sync: Parallel Output. (line 11)
+* --print-data-base: Options Summary. (line 183)
+* --print-directory: Options Summary. (line 259)
* --print-directory, and --directory: -w Option. (line 20)
* --print-directory, and recursion: -w Option. (line 20)
* --print-directory, disabling: -w Option. (line 20)
-* --question <1>: Options Summary. (line 174)
+* --question <1>: Options Summary. (line 195)
* --question: Instead of Execution.
- (line 27)
-* --quiet <1>: Options Summary. (line 205)
+ (line 30)
+* --quiet <1>: Options Summary. (line 226)
* --quiet: Echoing. (line 24)
-* --recon <1>: Options Summary. (line 147)
+* --recon <1>: Options Summary. (line 152)
* --recon <2>: Instead of Execution.
(line 14)
* --recon: Echoing. (line 18)
-* --silent <1>: Options Summary. (line 204)
+* --silent <1>: Options Summary. (line 225)
* --silent: Echoing. (line 24)
-* --stop: Options Summary. (line 211)
-* --touch <1>: Options Summary. (line 219)
+* --stop: Options Summary. (line 232)
+* --touch <1>: Options Summary. (line 240)
* --touch: Instead of Execution.
- (line 21)
+ (line 23)
* --touch, and recursion: MAKE Variable. (line 34)
-* --version: Options Summary. (line 226)
-* --warn-undefined-variables: Options Summary. (line 257)
-* --what-if <1>: Options Summary. (line 246)
+* --trace: Options Summary. (line 246)
+* --version: Options Summary. (line 254)
+* --warn-undefined-variables: Options Summary. (line 285)
+* --what-if <1>: Options Summary. (line 274)
* --what-if: Instead of Execution.
- (line 35)
+ (line 38)
* -B: Options Summary. (line 14)
* -b: Options Summary. (line 9)
* -C <1>: Options Summary. (line 25)
@@ -4023,60 +5079,62 @@ Index of Concepts
* -C, and -w: -w Option. (line 20)
* -C, and recursion: Options/Recursion. (line 22)
* -d: Options Summary. (line 33)
-* -e: Options Summary. (line 77)
+* -e: Options Summary. (line 82)
* -e (shell flag): Automatic Prerequisites.
(line 66)
-* -f <1>: Options Summary. (line 89)
+* -f <1>: Options Summary. (line 94)
* -f <2>: Makefile Arguments. (line 6)
* -f: Makefile Names. (line 23)
* -f, and recursion: Options/Recursion. (line 22)
-* -h: Options Summary. (line 95)
-* -I: Options Summary. (line 104)
-* -i <1>: Options Summary. (line 99)
+* -h: Options Summary. (line 100)
+* -I: Options Summary. (line 109)
+* -i <1>: Options Summary. (line 104)
* -i: Errors. (line 30)
* -I: Include. (line 53)
-* -j <1>: Options Summary. (line 111)
+* -j <1>: Options Summary. (line 116)
* -j: Parallel. (line 6)
* -j, and archive update: Archive Pitfalls. (line 6)
* -j, and recursion: Options/Recursion. (line 25)
-* -k <1>: Options Summary. (line 120)
+* -k <1>: Options Summary. (line 125)
* -k <2>: Testing. (line 16)
* -k: Errors. (line 47)
-* -L: Options Summary. (line 135)
-* -l: Options Summary. (line 127)
+* -L: Options Summary. (line 140)
+* -l: Options Summary. (line 132)
* -l (library search): Libraries/Search. (line 6)
-* -l (load average): Parallel. (line 58)
+* -l (load average): Parallel. (line 35)
* -m: Options Summary. (line 10)
* -M (to compiler): Automatic Prerequisites.
(line 18)
* -MM (to GNU compiler): Automatic Prerequisites.
(line 68)
-* -n <1>: Options Summary. (line 144)
+* -n <1>: Options Summary. (line 149)
* -n <2>: Instead of Execution.
(line 14)
* -n: Echoing. (line 18)
-* -o <1>: Options Summary. (line 152)
+* -O: Options Summary. (line 166)
+* -o <1>: Options Summary. (line 157)
* -o: Avoiding Compilation.
(line 6)
+* -O: Parallel Output. (line 11)
* -o, and recursion: Options/Recursion. (line 22)
-* -p: Options Summary. (line 161)
-* -q <1>: Options Summary. (line 173)
+* -p: Options Summary. (line 182)
+* -q <1>: Options Summary. (line 194)
* -q: Instead of Execution.
- (line 27)
-* -R: Options Summary. (line 194)
-* -r: Options Summary. (line 181)
-* -S: Options Summary. (line 209)
-* -s <1>: Options Summary. (line 203)
+ (line 30)
+* -R: Options Summary. (line 215)
+* -r: Options Summary. (line 202)
+* -S: Options Summary. (line 230)
+* -s <1>: Options Summary. (line 224)
* -s: Echoing. (line 24)
-* -t <1>: Options Summary. (line 218)
+* -t <1>: Options Summary. (line 239)
* -t: Instead of Execution.
- (line 21)
+ (line 23)
* -t, and recursion: MAKE Variable. (line 34)
-* -v: Options Summary. (line 225)
-* -W: Options Summary. (line 245)
-* -w: Options Summary. (line 230)
+* -v: Options Summary. (line 253)
+* -W: Options Summary. (line 273)
+* -w: Options Summary. (line 258)
* -W: Instead of Execution.
- (line 35)
+ (line 38)
* -w, and -C: -w Option. (line 20)
* -w, and recursion: -w Option. (line 20)
* -W, and recursion: Options/Recursion. (line 22)
@@ -4117,6 +5175,8 @@ Index of Concepts
* .web: Catalogue of Rules. (line 151)
* .y: Catalogue of Rules. (line 120)
* :: rules (double-colon): Double-Colon. (line 6)
+* ::= <1>: Setting. (line 6)
+* ::=: Flavors. (line 56)
* := <1>: Setting. (line 6)
* :=: Flavors. (line 56)
* = <1>: Setting. (line 6)
@@ -4124,13 +5184,14 @@ Index of Concepts
* =, expansion: Reading Makefiles. (line 33)
* ? (wildcard character): Wildcards. (line 6)
* ?= <1>: Setting. (line 6)
-* ?=: Flavors. (line 129)
+* ?=: Flavors. (line 133)
* ?=, expansion: Reading Makefiles. (line 33)
* @ (in recipes): Echoing. (line 6)
* @, and define: Canned Recipes. (line 49)
* [...] (wildcard characters): Wildcards. (line 6)
-* \ (backslash), for continuation lines: Simple Makefile. (line 40)
-* \ (backslash), in recipes: Splitting Lines. (line 6)
+* \ (backslash), for continuation lines: Simple Makefile. (line 41)
+* \ (backslash), in recipes: Splitting Recipe Lines.
+ (line 6)
* \ (backslash), to quote % <1>: Text Functions. (line 26)
* \ (backslash), to quote % <2>: Static Usage. (line 37)
* \ (backslash), to quote %: Selective Search. (line 38)
@@ -4158,17 +5219,19 @@ Index of Concepts
* automatic variables: Automatic Variables. (line 6)
* automatic variables in prerequisites: Automatic Variables. (line 17)
* backquotes: Shell Function. (line 6)
-* backslash (\), for continuation lines: Simple Makefile. (line 40)
-* backslash (\), in recipes: Splitting Lines. (line 6)
+* backslash (\), for continuation lines: Simple Makefile. (line 41)
+* backslash (\), in recipes: Splitting Recipe Lines.
+ (line 6)
* backslash (\), to quote % <1>: Text Functions. (line 26)
* backslash (\), to quote % <2>: Static Usage. (line 37)
* backslash (\), to quote %: Selective Search. (line 38)
+* backslash (\), to quote newlines: Splitting Lines. (line 6)
* backslashes in pathnames and wildcard expansion: Wildcard Pitfall.
(line 31)
* basename: File Name Functions. (line 57)
* binary packages: Install Command Categories.
(line 80)
-* broken pipe: Parallel. (line 31)
+* broken pipe: Parallel Input. (line 11)
* bugs, reporting: Bugs. (line 6)
* built-in special targets: Special Targets. (line 6)
* C++, rule to compile: Catalogue of Rules. (line 39)
@@ -4182,7 +5245,7 @@ Index of Concepts
* check (standard target): Goals. (line 114)
* clean (standard target): Goals. (line 75)
* clean target <1>: Cleanup. (line 11)
-* clean target: Simple Makefile. (line 84)
+* clean target: Simple Makefile. (line 85)
* cleaning up: Cleanup. (line 6)
* clobber (standard target): Goals. (line 86)
* co <1>: Implicit Variables. (line 66)
@@ -4202,18 +5265,19 @@ Index of Concepts
* computed variable name: Computed Names. (line 6)
* conditional expansion: Conditional Functions.
(line 6)
-* conditional variable assignment: Flavors. (line 129)
+* conditional variable assignment: Flavors. (line 133)
* conditionals: Conditionals. (line 6)
-* continuation lines: Simple Makefile. (line 40)
+* continuation lines: Simple Makefile. (line 41)
* controlling make: Make Control Functions.
(line 6)
* conventions for makefiles: Makefile Conventions.
(line 6)
+* convert guile types: Guile Types. (line 6)
* ctangle <1>: Implicit Variables. (line 103)
* ctangle: Catalogue of Rules. (line 151)
* cweave <1>: Implicit Variables. (line 97)
* cweave: Catalogue of Rules. (line 151)
-* data base of make rules: Options Summary. (line 162)
+* data base of make rules: Options Summary. (line 183)
* deducing recipes (implicit rules): make Deduces. (line 6)
* default directories for included makefiles: Include. (line 53)
* default goal <1>: Rules. (line 11)
@@ -4260,6 +5324,9 @@ Index of Concepts
* errors (in recipes): Errors. (line 6)
* errors with wildcards: Wildcard Pitfall. (line 6)
* evaluating makefile syntax: Eval Function. (line 6)
+* example of loaded objects: Loaded Object Example.
+ (line 6)
+* example using Guile: Guile Example. (line 6)
* execution, in parallel: Parallel. (line 6)
* execution, instead of: Instead of Execution.
(line 6)
@@ -4268,10 +5335,13 @@ Index of Concepts
* exit status of make: Running. (line 18)
* expansion, secondary: Secondary Expansion. (line 6)
* explicit rule, definition of: Makefile Contents. (line 10)
-* explicit rule, expansion: Reading Makefiles. (line 77)
+* explicit rule, expansion: Reading Makefiles. (line 92)
* explicit rules, secondary expansion of: Secondary Expansion.
(line 106)
* exporting variables: Variables/Recursion. (line 6)
+* extensions, Guile: Guile Integration. (line 6)
+* extensions, load directive: load Directive. (line 6)
+* extensions, loading: Loading Objects. (line 6)
* f77 <1>: Implicit Variables. (line 57)
* f77: Catalogue of Rules. (line 49)
* FDL, GNU Free Documentation License: GNU Free Documentation License.
@@ -4290,8 +5360,9 @@ Index of Concepts
* file name, directory part: File Name Functions. (line 17)
* file name, nondirectory part: File Name Functions. (line 27)
* file name, realpath of: File Name Functions. (line 114)
+* file, writing to: File Function. (line 6)
* files, assuming new: Instead of Execution.
- (line 35)
+ (line 38)
* files, assuming old: Avoiding Compilation.
(line 6)
* files, avoiding recompilation of: Avoiding Compilation.
@@ -4327,17 +5398,21 @@ Index of Concepts
* goal, default <1>: Rules. (line 11)
* goal, default: How Make Works. (line 11)
* goal, how to specify: Goals. (line 6)
+* Guile <1>: Guile Integration. (line 6)
+* Guile: Guile Function. (line 6)
+* Guile example: Guile Example. (line 6)
+* guile, conversion of types: Guile Types. (line 6)
* home directory: Wildcards. (line 11)
* IEEE Standard 1003.2: Overview. (line 13)
-* ifdef, expansion: Reading Makefiles. (line 67)
-* ifeq, expansion: Reading Makefiles. (line 67)
-* ifndef, expansion: Reading Makefiles. (line 67)
-* ifneq, expansion: Reading Makefiles. (line 67)
+* ifdef, expansion: Reading Makefiles. (line 82)
+* ifeq, expansion: Reading Makefiles. (line 82)
+* ifndef, expansion: Reading Makefiles. (line 82)
+* ifneq, expansion: Reading Makefiles. (line 82)
* implicit rule: Implicit Rules. (line 6)
* implicit rule, and directory search: Implicit/Search. (line 6)
* implicit rule, and VPATH: Implicit/Search. (line 6)
* implicit rule, definition of: Makefile Contents. (line 16)
-* implicit rule, expansion: Reading Makefiles. (line 77)
+* implicit rule, expansion: Reading Makefiles. (line 92)
* implicit rule, how to use: Using Implicit. (line 6)
* implicit rule, introduction to: make Deduces. (line 6)
* implicit rule, predefined: Catalogue of Rules. (line 6)
@@ -4353,16 +5428,18 @@ Index of Concepts
* Info, rule to format: Catalogue of Rules. (line 158)
* inheritance, suppressing: Suppressing Inheritance.
(line 6)
+* input during parallel execution: Parallel Input. (line 6)
* install (standard target): Goals. (line 92)
* installation directories, creating: Directory Variables. (line 20)
* installations, staged: DESTDIR. (line 6)
+* interface for loaded objects: Loaded Object API. (line 6)
* intermediate files: Chained Rules. (line 16)
* intermediate files, preserving: Chained Rules. (line 46)
* intermediate targets, explicit: Special Targets. (line 44)
* interrupt: Interrupts. (line 6)
* job slots: Parallel. (line 6)
* job slots, and recursion: Options/Recursion. (line 25)
-* jobs, limiting based on load: Parallel. (line 58)
+* jobs, limiting based on load: Parallel. (line 35)
* joining lists of words: File Name Functions. (line 90)
* killing (interruption): Interrupts. (line 6)
* last-resort default rules: Last Resort. (line 6)
@@ -4373,7 +5450,7 @@ Index of Concepts
* libraries for linking, directory search: Libraries/Search. (line 6)
* library archive, suffix rule for: Archive Suffix Rules.
(line 6)
-* limiting jobs based on load: Parallel. (line 58)
+* limiting jobs based on load: Parallel. (line 35)
* link libraries, and directory search: Libraries/Search. (line 6)
* link libraries, patterns matching: Libraries/Search. (line 6)
* linking, predefined rule for: Catalogue of Rules. (line 86)
@@ -4382,7 +5459,16 @@ Index of Concepts
* lint, rule to run: Catalogue of Rules. (line 146)
* list of all prerequisites: Automatic Variables. (line 61)
* list of changed prerequisites: Automatic Variables. (line 51)
-* load average: Parallel. (line 58)
+* load average: Parallel. (line 35)
+* load directive: load Directive. (line 6)
+* loaded object API: Loaded Object API. (line 6)
+* loaded object example: Loaded Object Example.
+ (line 6)
+* loaded object licensing: Loaded Object API. (line 32)
+* loaded objects: Loading Objects. (line 6)
+* loaded objects, remaking of: Remaking Loaded Objects.
+ (line 6)
+* long lines, splitting: Splitting Lines. (line 6)
* loops in variable expansion: Flavors. (line 44)
* lpr (shell command) <1>: Empty Targets. (line 25)
* lpr (shell command): Wildcard Examples. (line 21)
@@ -4391,6 +5477,9 @@ Index of Concepts
* macro: Using Variables. (line 10)
* make depend: Automatic Prerequisites.
(line 37)
+* make extensions: Extending make. (line 6)
+* make interface to guile: Guile Interface. (line 6)
+* make procedures in guile: Guile Interface. (line 6)
* makefile: Introduction. (line 7)
* makefile name: Makefile Names. (line 6)
* makefile name, how to specify: Makefile Names. (line 30)
@@ -4428,14 +5517,16 @@ Index of Concepts
* name of makefile: Makefile Names. (line 6)
* name of makefile, how to specify: Makefile Names. (line 30)
* nested variable reference: Computed Names. (line 6)
-* newline, quoting, in makefile: Simple Makefile. (line 40)
-* newline, quoting, in recipes: Splitting Lines. (line 6)
+* newline, quoting, in makefile: Simple Makefile. (line 41)
+* newline, quoting, in recipes: Splitting Recipe Lines.
+ (line 6)
* nondirectory part: File Name Functions. (line 27)
* normal prerequisites: Prerequisite Types. (line 6)
* OBJ: Variables Simplify. (line 20)
* obj: Variables Simplify. (line 20)
* OBJECTS: Variables Simplify. (line 20)
* objects: Variables Simplify. (line 14)
+* objects, loaded: Loading Objects. (line 6)
* OBJS: Variables Simplify. (line 20)
* objs: Variables Simplify. (line 20)
* old-fashioned suffix rules: Suffix Rules. (line 6)
@@ -4446,17 +5537,22 @@ Index of Concepts
* order of pattern rules: Pattern Match. (line 30)
* order-only prerequisites: Prerequisite Types. (line 6)
* origin of variable: Origin Function. (line 6)
+* output during parallel execution <1>: Options Summary. (line 167)
+* output during parallel execution: Parallel Output. (line 6)
* overriding makefiles: Overriding Makefiles.
(line 6)
* overriding variables with arguments: Overriding. (line 6)
* overriding with override: Override Directive. (line 6)
* parallel execution: Parallel. (line 6)
* parallel execution, and archive update: Archive Pitfalls. (line 6)
+* parallel execution, input during: Parallel Input. (line 6)
+* parallel execution, output during <1>: Options Summary. (line 167)
+* parallel execution, output during: Parallel Output. (line 6)
* parallel execution, overriding: Special Targets. (line 130)
* parts of makefile rule: Rule Introduction. (line 6)
* Pascal, rule to compile: Catalogue of Rules. (line 45)
* pattern rule: Pattern Intro. (line 6)
-* pattern rule, expansion: Reading Makefiles. (line 77)
+* pattern rule, expansion: Reading Makefiles. (line 92)
* pattern rules, order of: Pattern Match. (line 30)
* pattern rules, static (not implicit): Static Pattern. (line 6)
* pattern rules, static, syntax of: Static Usage. (line 6)
@@ -4465,24 +5561,25 @@ Index of Concepts
* pc: Catalogue of Rules. (line 45)
* phony targets: Phony Targets. (line 6)
* phony targets and recipe execution: Instead of Execution.
- (line 68)
+ (line 71)
* pitfalls of wildcards: Wildcard Pitfall. (line 6)
+* plugin_is_GPL_compatible: Loaded Object API. (line 32)
* portability: Features. (line 6)
+* POSIX <1>: Options/Recursion. (line 60)
* POSIX: Overview. (line 13)
* POSIX-conforming mode, setting: Special Targets. (line 143)
-* POSIX.2: Options/Recursion. (line 60)
* post-installation commands: Install Command Categories.
(line 6)
* pre-installation commands: Install Command Categories.
(line 6)
* precious targets: Special Targets. (line 29)
-* predefined rules and variables, printing: Options Summary. (line 162)
+* predefined rules and variables, printing: Options Summary. (line 183)
* prefix, adding: File Name Functions. (line 79)
* prerequisite: Rules. (line 6)
* prerequisite pattern, implicit: Pattern Intro. (line 22)
* prerequisite pattern, static (not implicit): Static Usage. (line 30)
* prerequisite types: Prerequisite Types. (line 6)
-* prerequisite, expansion: Reading Makefiles. (line 77)
+* prerequisite, expansion: Reading Makefiles. (line 92)
* prerequisites: Rule Syntax. (line 48)
* prerequisites, and automatic variables: Automatic Variables.
(line 17)
@@ -4512,19 +5609,20 @@ Index of Concepts
* problems with wildcards: Wildcard Pitfall. (line 6)
* processing a makefile: How Make Works. (line 6)
* question mode: Instead of Execution.
- (line 27)
+ (line 30)
* quoting %, in patsubst: Text Functions. (line 26)
* quoting %, in static pattern: Static Usage. (line 37)
* quoting %, in vpath: Selective Search. (line 38)
-* quoting newline, in makefile: Simple Makefile. (line 40)
-* quoting newline, in recipes: Splitting Lines. (line 6)
+* quoting newline, in makefile: Simple Makefile. (line 41)
+* quoting newline, in recipes: Splitting Recipe Lines.
+ (line 6)
* Ratfor, rule to compile: Catalogue of Rules. (line 49)
* RCS, rule to extract from: Catalogue of Rules. (line 164)
* reading makefiles: Reading Makefiles. (line 6)
* README: Makefile Names. (line 9)
* realclean (standard target): Goals. (line 85)
* realpath: File Name Functions. (line 114)
-* recipe: Simple Makefile. (line 73)
+* recipe: Simple Makefile. (line 74)
* recipe execution, single invocation: Special Targets. (line 137)
* recipe lines, single shell: One Shell. (line 6)
* recipe syntax: Recipe Syntax. (line 6)
@@ -4533,7 +5631,8 @@ Index of Concepts
* recipes: Rule Syntax. (line 26)
* recipes setting shell variables: Execution. (line 12)
* recipes, and directory search: Recipes/Search. (line 6)
-* recipes, backslash (\) in: Splitting Lines. (line 6)
+* recipes, backslash (\) in: Splitting Recipe Lines.
+ (line 6)
* recipes, canned: Canned Recipes. (line 6)
* recipes, comments in: Recipe Syntax. (line 29)
* recipes, echoing: Echoing. (line 6)
@@ -4544,8 +5643,10 @@ Index of Concepts
* recipes, instead of executing: Instead of Execution.
(line 6)
* recipes, introduction to: Rule Introduction. (line 8)
-* recipes, quoting newlines in: Splitting Lines. (line 6)
-* recipes, splitting: Splitting Lines. (line 6)
+* recipes, quoting newlines in: Splitting Recipe Lines.
+ (line 6)
+* recipes, splitting: Splitting Recipe Lines.
+ (line 6)
* recipes, using variables in: Variables in Recipes.
(line 6)
* recompilation: Introduction. (line 22)
@@ -4575,6 +5676,8 @@ Index of Concepts
* reference to variables <1>: Advanced. (line 6)
* reference to variables: Reference. (line 6)
* relinking: How Make Works. (line 46)
+* remaking loaded objects: Remaking Loaded Objects.
+ (line 6)
* remaking makefiles: Remaking Makefiles. (line 6)
* removal of target files <1>: Interrupts. (line 6)
* removal of target files: Errors. (line 64)
@@ -4586,7 +5689,7 @@ Index of Concepts
* rm (shell command) <1>: Errors. (line 27)
* rm (shell command) <2>: Phony Targets. (line 20)
* rm (shell command) <3>: Wildcard Examples. (line 12)
-* rm (shell command): Simple Makefile. (line 84)
+* rm (shell command): Simple Makefile. (line 85)
* rule prerequisites: Rule Syntax. (line 48)
* rule syntax: Rule Syntax. (line 6)
* rule targets: Rule Syntax. (line 18)
@@ -4657,14 +5760,16 @@ Index of Concepts
* simplifying with variables: Variables Simplify. (line 6)
* simply expanded variables: Flavors. (line 56)
* sorting words: Text Functions. (line 146)
-* spaces, in variable values: Flavors. (line 103)
+* spaces, in variable values: Flavors. (line 107)
* spaces, stripping: Text Functions. (line 80)
* special targets: Special Targets. (line 6)
* special variables: Special Variables. (line 6)
* specifying makefile name: Makefile Names. (line 30)
-* splitting recipes: Splitting Lines. (line 6)
+* splitting long lines: Splitting Lines. (line 6)
+* splitting recipes: Splitting Recipe Lines.
+ (line 6)
* staged installs: DESTDIR. (line 6)
-* standard input: Parallel. (line 31)
+* standard input: Parallel Input. (line 6)
* standards conformance: Overview. (line 13)
* standards for makefiles: Makefile Conventions.
(line 6)
@@ -4708,11 +5813,11 @@ Index of Concepts
* target pattern, static (not implicit): Static Usage. (line 17)
* target, deleting on error: Errors. (line 64)
* target, deleting on interrupt: Interrupts. (line 6)
-* target, expansion: Reading Makefiles. (line 77)
+* target, expansion: Reading Makefiles. (line 92)
* target, multiple in pattern rule: Pattern Intro. (line 53)
* target, multiple rules for one: Multiple Rules. (line 6)
* target, touching: Instead of Execution.
- (line 21)
+ (line 23)
* target-specific variables: Target-specific. (line 6)
* targets: Rule Syntax. (line 18)
* targets without a file: Phony Targets. (line 6)
@@ -4736,12 +5841,15 @@ Index of Concepts
* touch (shell command) <1>: Empty Targets. (line 25)
* touch (shell command): Wildcard Examples. (line 21)
* touching files: Instead of Execution.
- (line 21)
+ (line 23)
* traditional directory search (GPATH): Search Algorithm. (line 42)
* types of prerequisites: Prerequisite Types. (line 6)
-* undefined variables, warning message: Options Summary. (line 257)
+* types, conversion of: Guile Types. (line 6)
+* undefined variables, warning message: Options Summary. (line 285)
* undefining variable: Undefine Directive. (line 6)
* updating archive symbol directories: Archive Symbols. (line 6)
+* updating loaded objects: Remaking Loaded Objects.
+ (line 6)
* updating makefiles: Remaking Makefiles. (line 6)
* user defined functions: Call Function. (line 6)
* value: Using Variables. (line 6)
@@ -4758,7 +5866,7 @@ Index of Concepts
* variables, command line: Overriding. (line 6)
* variables, command line, and recursion: Options/Recursion. (line 17)
* variables, computed names: Computed Names. (line 6)
-* variables, conditional assignment: Flavors. (line 129)
+* variables, conditional assignment: Flavors. (line 133)
* variables, defining verbatim: Multi-Line. (line 6)
* variables, environment <1>: Environment. (line 6)
* variables, environment: Variables/Recursion. (line 6)
@@ -4778,12 +5886,12 @@ Index of Concepts
* variables, recursively expanded: Flavors. (line 6)
* variables, setting: Setting. (line 6)
* variables, simply expanded: Flavors. (line 56)
-* variables, spaces in values: Flavors. (line 103)
+* variables, spaces in values: Flavors. (line 107)
* variables, substituting suffix in: Substitution Refs. (line 6)
* variables, substitution reference: Substitution Refs. (line 6)
* variables, target-specific: Target-specific. (line 6)
* variables, unexpanded value: Value Function. (line 6)
-* variables, warning for undefined: Options Summary. (line 257)
+* variables, warning for undefined: Options Summary. (line 285)
* varying prerequisites: Static Pattern. (line 6)
* verbatim variable definition: Multi-Line. (line 6)
* vpath: Directory Search. (line 6)
@@ -4795,8 +5903,8 @@ Index of Concepts
* weave: Catalogue of Rules. (line 151)
* Web, rule to run: Catalogue of Rules. (line 151)
* what if: Instead of Execution.
- (line 35)
-* whitespace, in variable values: Flavors. (line 103)
+ (line 38)
+* whitespace, in variable values: Flavors. (line 107)
* whitespace, stripping: Text Functions. (line 80)
* wildcard: Wildcards. (line 6)
* wildcard pitfalls: Wildcard Pitfall. (line 6)
@@ -4818,6 +5926,7 @@ Index of Concepts
* words, selecting lists of: Text Functions. (line 168)
* writing recipes: Recipes. (line 6)
* writing rules: Rules. (line 6)
+* writing to a file: File Function. (line 6)
* yacc <1>: Implicit Variables. (line 77)
* yacc <2>: Catalogue of Rules. (line 120)
* yacc: Canned Recipes. (line 18)
@@ -4866,6 +5975,7 @@ Index of Functions, Variables, & Directives
* + (automatic variable): Automatic Variables. (line 63)
* +D (automatic variable): Automatic Variables. (line 147)
* +F (automatic variable): Automatic Variables. (line 148)
+* -load: load Directive. (line 65)
* .DEFAULT <1>: Last Resort. (line 23)
* .DEFAULT: Special Targets. (line 20)
* .DEFAULT, and empty recipes: Empty Recipes. (line 16)
@@ -4878,9 +5988,10 @@ Index of Functions, Variables, & Directives
* .IGNORE <1>: Errors. (line 30)
* .IGNORE: Special Targets. (line 69)
* .INCLUDE_DIRS (list of include directories): Special Variables.
- (line 135)
+ (line 155)
* .INTERMEDIATE: Special Targets. (line 43)
* .LIBPATTERNS: Libraries/Search. (line 6)
+* .LOADED: load Directive. (line 62)
* .LOW_RESOLUTION_TIME: Special Targets. (line 81)
* .NOTPARALLEL: Special Targets. (line 129)
* .ONESHELL <1>: One Shell. (line 6)
@@ -4954,6 +6065,7 @@ Index of Functions, Variables, & Directives
* export: Variables/Recursion. (line 40)
* FC: Implicit Variables. (line 56)
* FFLAGS: Implicit Variables. (line 133)
+* file: File Function. (line 6)
* filter: Text Functions. (line 114)
* filter-out: Text Functions. (line 132)
* findstring: Text Functions. (line 103)
@@ -4962,8 +6074,17 @@ Index of Functions, Variables, & Directives
* foreach: Foreach Function. (line 6)
* GET: Implicit Variables. (line 69)
* GFLAGS: Implicit Variables. (line 136)
+* gmk-eval: Guile Interface. (line 18)
+* gmk-expand: Guile Interface. (line 12)
+* gmk_add_function: Loaded Object API. (line 54)
+* gmk_alloc: Loaded Object API. (line 150)
+* gmk_eval: Loaded Object API. (line 124)
+* gmk_expand: Loaded Object API. (line 118)
+* gmk_free: Loaded Object API. (line 155)
+* gmk_func_ptr: Loaded Object API. (line 96)
* GNUmakefile: Makefile Names. (line 7)
* GPATH: Search Algorithm. (line 48)
+* guile: Guile Function. (line 6)
* if: Conditional Functions.
(line 6)
* ifdef: Conditional Syntax. (line 6)
@@ -4976,17 +6097,21 @@ Index of Functions, Variables, & Directives
* join: File Name Functions. (line 90)
* lastword: Text Functions. (line 197)
* LDFLAGS: Implicit Variables. (line 139)
+* LDLIBS: Implicit Variables. (line 144)
* LEX: Implicit Variables. (line 72)
-* LFLAGS: Implicit Variables. (line 143)
+* LFLAGS: Implicit Variables. (line 150)
* libexecdir: Directory Variables. (line 70)
* LINT: Implicit Variables. (line 80)
-* LINTFLAGS: Implicit Variables. (line 155)
+* LINTFLAGS: Implicit Variables. (line 162)
+* load: load Directive. (line 9)
+* LOADLIBES: Implicit Variables. (line 144)
* M2C: Implicit Variables. (line 60)
-* MAKE <1>: Flavors. (line 84)
+* MAKE <1>: Flavors. (line 88)
* MAKE: MAKE Variable. (line 6)
+* MAKE_HOST: Quick Reference. (line 341)
* MAKE_RESTARTS (number of times make has restarted): Special Variables.
(line 73)
-* MAKE_VERSION: Features. (line 197)
+* MAKE_VERSION: Quick Reference. (line 337)
* MAKECMDGOALS: Goals. (line 30)
* makefile: Makefile Names. (line 7)
* Makefile: Makefile Names. (line 7)
@@ -4996,7 +6121,7 @@ Index of Functions, Variables, & Directives
* MAKEFILES: MAKEFILES Variable. (line 6)
* MAKEFLAGS: Options/Recursion. (line 6)
* MAKEINFO: Implicit Variables. (line 83)
-* MAKELEVEL <1>: Flavors. (line 84)
+* MAKELEVEL <1>: Flavors. (line 88)
* MAKELEVEL: Variables/Recursion. (line 115)
* MAKEOVERRIDES: Options/Recursion. (line 49)
* MAKESHELL (MS-DOS alternative to SHELL): Choosing the Shell.
@@ -5011,12 +6136,12 @@ Index of Functions, Variables, & Directives
* patsubst <1>: Text Functions. (line 18)
* patsubst: Substitution Refs. (line 28)
* PC: Implicit Variables. (line 63)
-* PFLAGS: Implicit Variables. (line 149)
+* PFLAGS: Implicit Variables. (line 156)
* prefix: Directory Variables. (line 29)
* private: Suppressing Inheritance.
(line 6)
* realpath: File Name Functions. (line 114)
-* RFLAGS: Implicit Variables. (line 152)
+* RFLAGS: Implicit Variables. (line 159)
* RM: Implicit Variables. (line 106)
* sbindir: Directory Variables. (line 63)
* shell: Shell Function. (line 6)
@@ -5047,7 +6172,7 @@ Index of Functions, Variables, & Directives
* wordlist: Text Functions. (line 168)
* words: Text Functions. (line 180)
* YACC: Implicit Variables. (line 76)
-* YFLAGS: Implicit Variables. (line 146)
+* YFLAGS: Implicit Variables. (line 153)
* | (automatic variable): Automatic Variables. (line 69)
diff --git a/doc/make.texi b/doc/make.texi
index fc7e8a3..8fbdb61 100644
--- a/doc/make.texi
+++ b/doc/make.texi
@@ -3,8 +3,7 @@
@setfilename make.info
@include version.texi
-@set EDITION 0.71
-@set RCSID $Id: make.texi,v 1.66 2010/07/19 07:10:54 psmith Exp $
+@set EDITION 0.72
@settitle GNU @code{make}
@setchapternewpage odd
@@ -27,11 +26,11 @@ of @cite{The GNU Make Manual}, for GNU @code{make} version @value{VERSION}.
Copyright @copyright{} 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007,
-2008, 2009, 2010 Free Software Foundation, Inc.
+2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.2 or
+under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below. A copy of the
@@ -100,6 +99,7 @@ Cover art by Etienne Suvasa.
* Implicit Rules:: Use implicit rules to treat many files alike,
based on their file names.
* Archives:: How @code{make} can update library archives.
+* Extending make:: Using extensions to @code{make}.
* Features:: Features GNU @code{make} has over other @code{make}s.
* Missing:: What GNU @code{make} lacks from other @code{make}s.
* Makefile Conventions:: Conventions for writing makefiles for
@@ -109,28 +109,28 @@ Cover art by Etienne Suvasa.
* Complex Makefile:: A real example of a straightforward,
but nontrivial, makefile.
-* GNU Free Documentation License:: License for copying this manual
-* Concept Index:: Index of Concepts
-* Name Index:: Index of Functions, Variables, & Directives
+* GNU Free Documentation License:: License for copying this manual.
+* Concept Index:: Index of Concepts.
+* Name Index:: Index of Functions, Variables, & Directives.
@detailmenu
--- The Detailed Node Listing ---
Overview of @code{make}
-* Preparing:: Preparing and running make
-* Reading:: On reading this text
-* Bugs:: Problems and bugs
+* Preparing:: Preparing and running @code{make}.
+* Reading:: On reading this text.
+* Bugs:: Problems and bugs.
An Introduction to Makefiles
* Rule Introduction:: What a rule looks like.
-* Simple Makefile:: A simple makefile
-* How Make Works:: How @code{make} processes this makefile
-* Variables Simplify:: Variables make makefiles simpler
-* make Deduces:: Letting @code{make} deduce the recipe
-* Combine By Prerequisite:: Another style of makefile
-* Cleanup:: Rules for cleaning the directory
+* Simple Makefile:: A simple makefile.
+* How Make Works:: How @code{make} processes this makefile.
+* Variables Simplify:: Variables make makefiles simpler.
+* make Deduces:: Letting @code{make} deduce the recipes.
+* Combine By Prerequisite:: Another style of makefile.
+* Cleanup:: Rules for cleaning the directory.
Writing Makefiles
@@ -144,6 +144,10 @@ Writing Makefiles
* Reading Makefiles:: How makefiles are parsed.
* Secondary Expansion:: How and when secondary expansion is performed.
+What Makefiles Contain
+
+* Splitting Lines:: Splitting long lines in makefiles
+
Writing Rules
* Rule Example:: An example explained.
@@ -170,7 +174,7 @@ Writing Rules
Using Wildcard Characters in File Names
-* Wildcard Examples:: Several examples
+* Wildcard Examples:: Several examples.
* Wildcard Pitfall:: Problems to avoid.
* Wildcard Function:: How to cause wildcard expansion where
it does not normally take place.
@@ -206,14 +210,20 @@ Writing Recipes in Rules
Recipe Syntax
-* Splitting Lines:: Breaking long recipe lines for readability.
+* Splitting Recipe Lines:: Breaking long recipe lines for readability.
* Variables in Recipes:: Using @code{make} variables in recipes.
Recipe Execution
+* One Shell:: One shell for all lines in a recipe.
* Choosing the Shell:: How @code{make} chooses the shell used
to run recipes.
+Parallel Execution
+
+* Parallel Output:: Handling output during parallel execution
+* Parallel Input:: Handling input during parallel execution
+
Recursive Use of @code{make}
* MAKE Variable:: The special effects of using @samp{$(MAKE)}.
@@ -235,6 +245,8 @@ How to Use Variables
the user has set it with a command argument.
* Multi-Line:: An alternate way to set a variable
to a multi-line string.
+* Undefine Directive:: How to undefine a variable so that it appears
+ as if it was never set.
* Environment:: Variable values can come from the environment.
* Target-specific:: Variable values can be defined on a per-target
basis.
@@ -262,13 +274,15 @@ Functions for Transforming Text
* File Name Functions:: Functions for manipulating file names.
* Conditional Functions:: Functions that implement conditions.
* Foreach Function:: Repeat some text with controlled variation.
+* File Function:: Write text to a file.
* Call Function:: Expand a user-defined function.
* Value Function:: Return the un-expanded value of a variable.
* Eval Function:: Evaluate the arguments as makefile syntax.
* Origin Function:: Find where a variable got its value.
* Flavor Function:: Find out the flavor of a variable.
-* Shell Function:: Substitute the output of a shell command.
* Make Control Functions:: Functions that control how make runs.
+* Shell Function:: Substitute the output of a shell command.
+* Guile Function:: Use GNU Guile embedded scripting language.
How to Run @code{make}
@@ -289,7 +303,7 @@ How to Run @code{make}
Using Implicit Rules
* Using Implicit:: How to use an existing implicit rule
- to get the recipe for updating a file.
+ to get the recipes for updating a file.
* Catalogue of Rules:: A list of built-in implicit rules.
* Implicit Variables:: How to change what predefined rules do.
* Chained Rules:: How to use a chain of implicit rules.
@@ -324,6 +338,24 @@ Implicit Rule for Archive Member Targets
* Archive Symbols:: How to update archive symbol directories.
+Extending GNU @code{make}
+
+* Guile Integration:: Using Guile as an embedded scripting language.
+* Loading Objects:: Loading dynamic objects as extensions.
+
+GNU Guile Integration
+
+* Guile Types:: Converting Guile types to @code{make} strings.
+* Guile Interface:: Invoking @code{make} functions from Guile.
+* Guile Example:: Example using Guile in @code{make}.
+
+Loading Dynamic Objects
+
+* load Directive:: Loading dynamic objects as extensions.
+* Remaking Loaded Objects:: How loaded objects get remade.
+* Loaded Object API:: Programmatic interface for loaded objects.
+* Loaded Object Example:: Example of a loaded object
+
@end detailmenu
@end menu
@@ -350,9 +382,9 @@ use it to describe any task where some files must be updated automatically
from others whenever the others change.
@menu
-* Preparing:: Preparing and Running Make
-* Reading:: On Reading this Text
-* Bugs:: Problems and Bugs
+* Preparing:: Preparing and running @code{make}.
+* Reading:: On reading this text.
+* Bugs:: Problems and bugs.
@end menu
@node Preparing, Reading, Overview, Overview
@@ -486,12 +518,12 @@ together to produce the new executable editor.
@menu
* Rule Introduction:: What a rule looks like.
-* Simple Makefile:: A Simple Makefile
-* How Make Works:: How @code{make} Processes This Makefile
-* Variables Simplify:: Variables Make Makefiles Simpler
-* make Deduces:: Letting @code{make} Deduce the Recipes
-* Combine By Prerequisite:: Another Style of Makefile
-* Cleanup:: Rules for Cleaning the Directory
+* Simple Makefile:: A simple makefile.
+* How Make Works:: How @code{make} processes this makefile.
+* Variables Simplify:: Variables make makefiles simpler.
+* make Deduces:: Letting @code{make} deduce the recipes.
+* Combine By Prerequisite:: Another style of makefile.
+* Cleanup:: Rules for cleaning the directory.
@end menu
@node Rule Introduction, Simple Makefile, Introduction, Introduction
@@ -591,8 +623,9 @@ clean :
@end example
@noindent
-We split each long line into two lines using backslash-newline; this is
-like using one long line, but is easier to read.
+We split each long line into two lines using backslash/newline; this is
+like using one long line, but is easier to read. @xref{Splitting Lines,
+, Splitting Long Lines}.
@cindex continuation lines
@cindex @code{\} (backslash), for continuation lines
@cindex backslash (@code{\}), for continuation lines
@@ -1026,6 +1059,48 @@ as @code{make} comments or as recipe text, depending on the context in
which the variable is evaluated.
@end itemize
+@menu
+* Splitting Lines:: Splitting long lines in makefiles
+@end menu
+
+@node Splitting Lines, , Makefile Contents, Makefile Contents
+@subsection Splitting Long Lines
+@cindex splitting long lines
+@cindex long lines, splitting
+@cindex backslash (@code{\}), to quote newlines
+
+Makefiles use a ``line-based'' syntax in which the newline character
+is special and marks the end of a statement. GNU @code{make} has no
+limit on the length of a statement line, up to the amount of memory in
+your computer.
+
+However, it is difficult to read lines which are too long to display
+without wrapping or scrolling. So, you can format your makefiles for
+readability by adding newlines into the middle of a statement: you do
+this by escaping the internal newlines with a backslash (@code{\})
+character. Where we need to make a distinction we will refer to
+``physical lines'' as a single line ending with a newline (regardless
+of whether it is escaped) and a ``logical line'' being a complete
+statement including all escaped newlines up to the first non-escaped
+newline.
+
+The way in which backslash/newline combinations are handled depends on
+whether the statement is a recipe line or a non-recipe line. Handling
+of backslash/newline in a recipe line is discussed later
+(@pxref{Splitting Recipe Lines}).
+
+Outside of recipe lines, backslash/newlines are converted into a
+single space character. Once that is done, all whitespace around the
+backslash/newline is condensed into a single space: this includes all
+whitespace preceding the backslash, all whitespace at the beginning of
+the line after the backslash/newline, and any consecutive
+backslash/newline combinations.
+
+If the @code{.POSIX} special target is defined then backslash/newline
+handling is modified slightly to conform to POSIX.2: first, whitespace
+preceding a backslash is not removed and second, consecutive
+backslash/newlines are not condensed.
+
@node Makefile Names, Include, Makefile Contents, Makefiles
@section What Name to Give Your Makefile
@cindex makefile name
@@ -1219,7 +1294,6 @@ in the makefiles. @xref{Include, , Including Other Makefiles}.
@node Remaking Makefiles, Overriding Makefiles, MAKEFILES Variable, Makefiles
@section How Makefiles Are Remade
-
@cindex updating makefiles
@cindex remaking makefiles
@cindex makefile, remaking of
@@ -1241,7 +1315,7 @@ date.)@refill
If you know that one or more of your makefiles cannot be remade and
you want to keep @code{make} from performing an implicit rule search
on them, perhaps for efficiency reasons, you can use any normal method
-of preventing implicit rule lookup to do so. For example, you can
+of preventing implicit rule look-up to do so. For example, you can
write an explicit rule with the makefile as the target, and an empty
recipe (@pxref{Empty Recipes, ,Using Empty Recipes}).
@@ -1305,7 +1379,7 @@ specified by the existing contents of @file{mfile}.
Sometimes it is useful to have a makefile that is mostly just like
another makefile. You can often use the @samp{include} directive to
include one in the other, and add more targets or variable definitions.
-However, it is illegal for two makefiles to give different recipes for
+However, it is invalid for two makefiles to give different recipes for
the same target. But there is another way.
@cindex match-anything rule, used to override
@@ -1379,6 +1453,7 @@ chapters.
@cindex =, expansion
@cindex ?=, expansion
@cindex +=, expansion
+@cindex !=, expansion
@cindex define, expansion
Variable definitions are parsed as follows:
@@ -1387,7 +1462,9 @@ Variable definitions are parsed as follows:
@var{immediate} = @var{deferred}
@var{immediate} ?= @var{deferred}
@var{immediate} := @var{immediate}
+@var{immediate} ::= @var{immediate}
@var{immediate} += @var{deferred} or @var{immediate}
+@var{immediate} != @var{immediate}
define @var{immediate}
@var{deferred}
@@ -1405,14 +1482,27 @@ define @var{immediate} :=
@var{immediate}
endef
+define @var{immediate} ::=
+ @var{immediate}
+endef
+
define @var{immediate} +=
@var{deferred} or @var{immediate}
endef
+
+define @var{immediate} !=
+ @var{immediate}
+endef
@end example
For the append operator, @samp{+=}, the right-hand side is considered
immediate if the variable was previously set as a simple variable
-(@samp{:=}), and deferred otherwise.
+(@samp{:=} or @samp{::=}), and deferred otherwise.
+
+For the shell assignment operator, @samp{!=}, the right-hand side is
+evaluated immediately and handed to the shell. The result is stored in the
+variable named on the left, and that variable becomes a simple variable
+(and will thus be re-evaluated on each reference).
@subheading Conditional Directives
@cindex ifdef, expansion
@@ -1487,11 +1577,11 @@ first (unescaped) variable reference to @var{ONEVAR} is expanded,
while the second (escaped) variable reference is simply unescaped,
without being recognized as a variable reference. Now during the
secondary expansion the first word is expanded again but since it
-contains no variable or function references it remains the static
-value @file{onefile}, while the second word is now a normal reference
-to the variable @var{TWOVAR}, which is expanded to the value
-@file{twofile}. The final result is that there are two prerequisites,
-@file{onefile} and @file{twofile}.
+contains no variable or function references it remains the value
+@file{onefile}, while the second word is now a normal reference to the
+variable @var{TWOVAR}, which is expanded to the value @file{twofile}.
+The final result is that there are two prerequisites, @file{onefile}
+and @file{twofile}.
Obviously, this is not a very interesting case since the same result
could more easily have been achieved simply by having both variables
@@ -1633,7 +1723,7 @@ expands to @file{bar}, @code{$$^} expands to @file{bar boo},
Note that the directory prefix (D), as described in @ref{Implicit Rule
Search, ,Implicit Rule Search Algorithm}, is appended (after
expansion) to all the patterns in the prerequisites list. As an
-example:
+example:@refill
@example
.SECONDEXPANSION:
@@ -1641,12 +1731,14 @@ example:
/tmp/foo.o:
%.o: $$(addsuffix /%.c,foo bar) foo.h
+ @@echo $^
@end example
-The prerequisite list after the secondary expansion and directory
-prefix reconstruction will be @file{/tmp/foo/foo.c /tmp/var/bar/foo.c
-foo.h}. If you are not interested in this reconstruction, you can use
-@code{$$*} instead of @code{%} in the prerequisites list.
+The prerequisite list printed, after the secondary expansion and
+directory prefix reconstruction, will be @file{/tmp/foo/foo.c
+/tmp/bar/foo.c foo.h}. If you are not interested in this
+reconstruction, you can use @code{$$*} instead of @code{%} in the
+prerequisites list.
@node Rules, Recipes, Makefiles, Top
@chapter Writing Rules
@@ -1684,7 +1776,7 @@ the makefile (often with a target called @samp{all}).
* Wildcards:: Using wildcard characters such as `*'.
* Directory Search:: Searching other directories for source files.
* Phony Targets:: Using a target that is not a real file's name.
-* Force Targets:: You can use a target without recipes
+* Force Targets:: You can use a target without a recipe
or prerequisites to mark other targets
as phony.
* Empty Targets:: When only the date matters and the
@@ -1921,7 +2013,7 @@ specific file whose name consists of @samp{foo}, an asterisk, and
@samp{bar}.@refill
@menu
-* Wildcard Examples:: Several examples
+* Wildcard Examples:: Several examples.
* Wildcard Pitfall:: Problems to avoid.
* Wildcard Function:: How to cause wildcard expansion where
it does not normally take place.
@@ -2119,7 +2211,7 @@ just the search paths.
* Selective Search:: Specifying a search path
for a specified class of names.
* Search Algorithm:: When and how search paths are applied.
-* Recipes/Search:: How to write recipes that work together
+* Recipes/Search:: How to write recipes that work together
with search paths.
* Implicit/Search:: How search paths affect implicit rules.
* Libraries/Search:: Directory search for link libraries.
@@ -2455,7 +2547,7 @@ via the @code{.LIBPATTERNS} variable. Each word in the value of this
variable is a pattern string. When a prerequisite like
@samp{-l@var{name}} is seen, @code{make} will replace the percent in
each pattern in the list with @var{name} and perform the above directory
-searches using each library filename.
+searches using each library file name.
The default value for @code{.LIBPATTERNS} is @samp{lib%.so lib%.a},
which provides the default behavior described above.
@@ -2528,8 +2620,8 @@ Another example of the usefulness of phony targets is in conjunction
with recursive invocations of @code{make} (for more information, see
@ref{Recursion, ,Recursive Use of @code{make}}). In this case the
makefile will often contain a variable which lists a number of
-subdirectories to be built. One way to handle this is with one rule
-whose recipe is a shell loop over the subdirectories, like this:
+sub-directories to be built. One way to handle this is with one rule
+whose recipe is a shell loop over the sub-directories, like this:
@example
@group
@@ -2543,7 +2635,7 @@ subdirs:
@end example
There are problems with this method, however. First, any error
-detected in a submake is ignored by this rule, so it will continue
+detected in a sub-make is ignored by this rule, so it will continue
to build the rest of the directories even when one fails. This can be
overcome by adding shell commands to note the error and exit, but then
it will do so even if @code{make} is invoked with the @code{-k}
@@ -2552,8 +2644,8 @@ you cannot take advantage of @code{make}'s ability to build targets in
parallel (@pxref{Parallel, ,Parallel Execution}), since there is only
one rule.
-By declaring the subdirectories as phony targets (you must do this as
-the subdirectory obviously always exists; otherwise it won't be built)
+By declaring the sub-directories as phony targets (you must do this as
+the sub-directory obviously always exists; otherwise it won't be built)
you can remove these problems:
@example
@@ -2571,8 +2663,8 @@ foo: baz
@end group
@end example
-Here we've also declared that the @file{foo} subdirectory cannot be
-built until after the @file{baz} subdirectory is complete; this kind of
+Here we've also declared that the @file{foo} sub-directory cannot be
+built until after the @file{baz} sub-directory is complete; this kind of
relationship declaration is particularly important when attempting
parallel builds.
@@ -2816,7 +2908,7 @@ The high resolution file time stamps of many modern file systems
lessen the chance of @command{make} incorrectly concluding that a file
is up to date. Unfortunately, some hosts do not provide a way to set a
high resolution file time stamp, so commands like @samp{cp -p} that
-explicitly set a file's time stamp must discard its subsecond part.
+explicitly set a file's time stamp must discard its sub-second part.
If a file is created by such a command, you should list it as a
prerequisite of @code{.LOW_RESOLUTION_TIME} so that @command{make}
does not mistakenly conclude that the file is out of date. For
@@ -2830,7 +2922,7 @@ dst: src
@end group
@end example
-Since @samp{cp -p} discards the subsecond part of @file{src}'s time
+Since @samp{cp -p} discards the sub-second part of @file{src}'s time
stamp, @file{dst} is typically slightly older than @file{src} even when
it is up to date. The @code{.LOW_RESOLUTION_TIME} line causes
@command{make} to consider @file{dst} to be up to date if its time stamp
@@ -3132,7 +3224,7 @@ of the target; see @ref{Automatic Variables}.
Each target specified must match the target pattern; a warning is issued
for each target that does not. If you have a list of files, only some of
which will match the pattern, you can use the @code{filter} function to
-remove nonmatching file names (@pxref{Text Functions, ,Functions for String Substitution and Analysis}):
+remove non-matching file names (@pxref{Text Functions, ,Functions for String Substitution and Analysis}):
@example
files = foo.elc bar.o lose.o
@@ -3286,10 +3378,11 @@ main.o : main.c defs.h
Thus you no longer have to write all those rules yourself.
The compiler will do it for you.
-Note that such a prerequisite constitutes mentioning @file{main.o} in a
-makefile, so it can never be considered an intermediate file by implicit
-rule search. This means that @code{make} won't ever remove the file
-after using it; @pxref{Chained Rules, ,Chains of Implicit Rules}.
+Note that such a rule constitutes mentioning @file{main.o} in a
+makefile, so it can never be considered an intermediate file by
+implicit rule search. This means that @code{make} won't ever remove
+the file after using it; @pxref{Chained Rules, ,Chains of Implicit
+Rules}.
@cindex @code{make depend}
With old @code{make} programs, it was traditional practice to use this
@@ -3334,7 +3427,7 @@ nonzero status).
With the GNU C compiler, you may wish to use the @samp{-MM} flag instead
of @samp{-M}. This omits prerequisites on system header files.
@xref{Preprocessor Options, , Options Controlling the Preprocessor,
-gcc.info, Using GNU CC}, for details.
+gcc, Using GNU CC}, for details.
@cindex @code{sed} (shell command)
The purpose of the @code{sed} command is to translate (for example):
@@ -3463,11 +3556,11 @@ line, will be considered part of a recipe and be passed to the shell.
@end itemize
@menu
-* Splitting Lines:: Breaking long recipe lines for readability.
+* Splitting Recipe Lines:: Breaking long recipe lines for readability.
* Variables in Recipes:: Using @code{make} variables in recipes.
@end menu
-@node Splitting Lines, Variables in Recipes, Recipe Syntax, Recipe Syntax
+@node Splitting Recipe Lines, Variables in Recipes, Recipe Syntax, Recipe Syntax
@subsection Splitting Recipe Lines
@cindex recipes, splitting
@cindex splitting recipes
@@ -3486,13 +3579,14 @@ each newline. A sequence of lines like this is considered a single
recipe line, and one instance of the shell will be invoked to run it.
However, in contrast to how they are treated in other places in a
-makefile, backslash-newline pairs are @emph{not} removed from the
-recipe. Both the backslash and the newline characters are preserved
-and passed to the shell. How the backslash-newline is interpreted
-depends on your shell. If the first character of the next line after
-the backslash-newline is the recipe prefix character (a tab by
-default; @pxref{Special Variables}), then that character (and only
-that character) is removed. Whitespace is never added to the recipe.
+makefile (@pxref{Splitting Lines, , Splitting Long Lines}),
+backslash/newline pairs are @emph{not} removed from the recipe. Both
+the backslash and the newline characters are preserved and passed to
+the shell. How the backslash/newline is interpreted depends on your
+shell. If the first character of the next line after the
+backslash/newline is the recipe prefix character (a tab by default;
+@pxref{Special Variables}), then that character (and only that
+character) is removed. Whitespace is never added to the recipe.
For example, the recipe for the all target in this makefile:
@@ -3563,14 +3657,14 @@ you specify a different shell in your makefiles it may treat them
differently.
Sometimes you want to split a long line inside of single quotes, but
-you don't want the backslash-newline to appear in the quoted content.
+you don't want the backslash/newline to appear in the quoted content.
This is often the case when passing scripts to languages such as Perl,
where extraneous backslashes inside the script can change its meaning
or even be a syntax error. One simple way of handling this is to
place the quoted string, or even the entire command, into a
@code{make} variable then use the variable in the recipe. In this
situation the newline quoting rules for makefiles will be used, and
-the backslash-newline will be removed. If we rewrite our example
+the backslash/newline will be removed. If we rewrite our example
above using this method:
@example
@@ -3596,7 +3690,7 @@ If you like, you can also use target-specific variables
a tighter correspondence between the variable and the recipe that
uses it.
-@node Variables in Recipes, , Splitting Lines, Recipe Syntax
+@node Variables in Recipes, , Splitting Recipe Lines, Recipe Syntax
@subsection Using Variables in Recipes
@cindex variable references in recipes
@cindex recipes, using variables in
@@ -3699,7 +3793,7 @@ started with @samp{@@}. A rule in the makefile for the special target
@vindex @code{SHELL} @r{(recipe execution)}
When it is time to execute recipes to update a target, they are
-executed by invoking a new subshell for each line of the recipe,
+executed by invoking a new sub-shell for each line of the recipe,
unless the @code{.ONESHELL} special target is in effect
(@pxref{One Shell, ,Using One Shell}) (In practice, @code{make} may
take shortcuts that do not affect the results.)
@@ -3730,7 +3824,7 @@ problems (in this case it would certainly cause @file{../foo} to be
truncated, at least).
@menu
-* One Shell:: One shell for all lines in a recipe
+* One Shell:: One shell for all lines in a recipe.
* Choosing the Shell:: How @code{make} chooses the shell used
to run recipes.
@end menu
@@ -3969,44 +4063,16 @@ If there is nothing looking like an integer after the @samp{-j} option,
there is no limit on the number of job slots. The default number of job
slots is one, which means serial execution (one thing at a time).
-One unpleasant consequence of running several recipes simultaneously is
-that output generated by the recipes appears whenever each recipe
-sends it, so messages from different recipes may be interspersed.
-
-Another problem is that two processes cannot both take input from the
-same device; so to make sure that only one recipe tries to take input
-from the terminal at once, @code{make} will invalidate the standard
-input streams of all but one running recipe. This means that
-attempting to read from standard input will usually be a fatal error (a
-@samp{Broken pipe} signal) for most child processes if there are
-several.
-@cindex broken pipe
-@cindex standard input
-
-It is unpredictable which recipe will have a valid standard input stream
-(which will come from the terminal, or wherever you redirect the standard
-input of @code{make}). The first recipe run will always get it first, and
-the first recipe started after that one finishes will get it next, and so
-on.
-
-We will change how this aspect of @code{make} works if we find a better
-alternative. In the mean time, you should not rely on any recipe using
-standard input at all if you are using the parallel execution feature; but
-if you are not using this feature, then standard input works normally in
-all recipes.
-
-Finally, handling recursive @code{make} invocations raises issues. For
-more information on this, see
-@ref{Options/Recursion, ,Communicating Options to a Sub-@code{make}}.
+Handling recursive @code{make} invocations raises issues for parallel
+execution. For more information on this, see @ref{Options/Recursion,
+,Communicating Options to a Sub-@code{make}}.
If a recipe fails (is killed by a signal or exits with a nonzero
-status), and errors are not ignored for that recipe
-(@pxref{Errors, ,Errors in Recipes}),
-the remaining recipe lines to remake the same target will not be run.
-If a recipe fails and the @samp{-k} or @samp{--keep-going}
-option was not given
-(@pxref{Options Summary, ,Summary of Options}),
-@code{make} aborts execution. If make
+status), and errors are not ignored for that recipe (@pxref{Errors,
+,Errors in Recipes}), the remaining recipe lines to remake the same
+target will not be run. If a recipe fails and the @samp{-k} or
+@samp{--keep-going} option was not given (@pxref{Options Summary,
+,Summary of Options}), @code{make} aborts execution. If make
terminates for any reason (including a signal) with child processes
running, it waits for them to finish before actually exiting.@refill
@@ -4039,6 +4105,135 @@ average goes below that limit, or until all the other jobs finish.
By default, there is no load limit.
+@menu
+* Parallel Output:: Handling output during parallel execution
+* Parallel Input:: Handling input during parallel execution
+@end menu
+
+@node Parallel Output, Parallel Input, Parallel, Parallel
+@subsection Output During Parallel Execution
+@cindex output during parallel execution
+@cindex parallel execution, output during
+
+When running several recipes in parallel the output from each
+recipe appears as soon as it is generated, with the result that
+messages from different recipes may be interspersed, sometimes even
+appearing on the same line. This can make reading the output very
+difficult.
+
+@cindex @code{--output-sync}
+@cindex @code{-O}
+To avoid this you can use the @samp{--output-sync} (@samp{-O}) option.
+This option instructs @code{make} to save the output from the commands
+it invokes and print it all once the commands are completed.
+Additionally, if there are multiple recursive @code{make} invocations
+running in parallel, they will communicate so that only one of them is
+generating output at a time.
+
+If working directory printing is enabled (@pxref{-w Option, ,The
+@samp{--print-directory} Option}), the enter/leave messages are
+printed around each output grouping. If you prefer not to see these
+messages add the @samp{--no-print-directory} option to @code{MAKEFLAGS}.
+
+There are four levels of granularity when synchronizing output,
+specified by giving an argument to the option (e.g., @samp{-Oline} or
+@samp{--output-sync=recurse}).
+
+@table @code
+@item none
+This is the default: all output is sent directly as it is generated and
+no synchronization is performed.
+
+@item line
+Output from each individual line of the recipe is grouped and printed
+as soon as that line is complete. If a recipe consists of multiple
+lines, they may be interspersed with lines from other recipes.
+
+@item target
+Output from the entire recipe for each target is grouped and printed
+once the target is complete. This is the default if the
+@code{--output-sync} or @code{-O} option is given with no argument.
+
+@item recurse
+Output from each recursive invocation of @code{make} is grouped and
+printed once the recursive invocation is complete.
+
+@end table
+
+Regardless of the mode chosen, the total build time will be the same.
+The only difference is in how the output appears.
+
+The @samp{target} and @samp{recurse} modes both collect the output of
+the entire recipe of a target and display it uninterrupted when the
+recipe completes. The difference between them is in how recipes that
+contain recursive invocations of @code{make} are treated
+(@pxref{Recursion, ,Recursive Use of @code{make}}). For all recipes
+which have no recursive lines, the @samp{target} and @samp{recurse}
+modes behave identically.
+
+If the @samp{recurse} mode is chosen, recipes that contain recursive
+@code{make} invocations are treated the same as other targets: the
+output from the recipe, including the output from the recursive
+@code{make}, is saved and printed after the entire recipe is complete.
+This ensures output from all the targets built by a given recursive
+@code{make} instance are grouped together, which may make the output
+easier to understand. However it also leads to long periods of time
+during the build where no output is seen, followed by large bursts of
+output. If you are not watching the build as it proceeds, but instead
+viewing a log of the build after the fact, this may be the best option
+for you.
+
+If you are watching the output, the long gaps of quiet during the
+build can be frustrating. The @samp{target} output synchronization
+mode detects when @code{make} is going to be invoked recursively,
+using the standard methods, and it will not synchronize the output of
+those lines. The recursive @code{make} will perform the
+synchronization for its targets and the output from each will be
+displayed immediately when it completes. Be aware that output from
+recursive lines of the recipe are not synchronized (for example if
+the recursive line prints a message before running @code{make}, that
+message will not be synchronized).
+
+The @samp{line} mode can be useful for front-ends that are watching
+the output of @code{make} to track when recipes are started and
+completed.
+
+Some programs invoked by @code{make} may behave differently if they
+determine they're writing output to a terminal versus a file (often
+described as ``interactive'' vs. ``non-interactive'' modes). For
+example, many programs that can display colorized output will not do
+so if they determine they are not writing to a terminal. If your
+makefile invokes a program like this then using the output
+synchronization options will cause the program to believe it's running
+in ``non-interactive'' mode even though the output will ultimately go
+to the terminal.
+
+@node Parallel Input, , Parallel Output, Parallel
+@subsection Input During Parallel Execution
+@cindex input during parallel execution
+@cindex parallel execution, input during
+@cindex standard input
+
+Two processes cannot both take input from the same device at the same
+time. To make sure that only one recipe tries to take input from the
+terminal at once, @code{make} will invalidate the standard input
+streams of all but one running recipe. If another recipe attempts to
+read from standard input it will usually incur a fatal error (a
+@samp{Broken pipe} signal).
+@cindex broken pipe
+
+It is unpredictable which recipe will have a valid standard input stream
+(which will come from the terminal, or wherever you redirect the standard
+input of @code{make}). The first recipe run will always get it first, and
+the first recipe started after that one finishes will get it next, and so
+on.
+
+We will change how this aspect of @code{make} works if we find a better
+alternative. In the mean time, you should not rely on any recipe using
+standard input at all if you are using the parallel execution feature; but
+if you are not using this feature, then standard input works normally in
+all recipes.
+
@node Errors, Interrupts, Parallel, Recipes
@section Errors in Recipes
@cindex errors (in recipes)
@@ -4178,9 +4373,9 @@ times to prevent other sorts of trouble.
Recursive use of @code{make} means using @code{make} as a command in a
makefile. This technique is useful when you want separate makefiles for
various subsystems that compose a larger system. For example, suppose you
-have a subdirectory @file{subdir} which has its own makefile, and you would
+have a sub-directory @file{subdir} which has its own makefile, and you would
like the containing directory's makefile to run @code{make} on the
-subdirectory. You can do it by writing this:
+sub-directory. You can do it by writing this:
@example
subsystem:
@@ -4292,10 +4487,10 @@ recipes, is propagated to the subsystem.@refill
Variable values of the top-level @code{make} can be passed to the
sub-@code{make} through the environment by explicit request. These
-variables are defined in the sub-@code{make} as defaults, but do not
-override what is specified in the makefile used by the sub-@code{make}
-makefile unless you use the @samp{-e} switch (@pxref{Options Summary,
-,Summary of Options}).@refill
+variables are defined in the sub-@code{make} as defaults, but they do
+not override variables defined in the makefile used by
+the sub-@code{make} unless you use the @samp{-e} switch (@pxref{Options
+Summary, ,Summary of Options}).@refill
To pass down, or @dfn{export}, a variable, @code{make} adds the
variable and its value to the environment for running each line of the
@@ -4555,7 +4750,7 @@ fixed limit on the size of the environment, and putting so much
information into the value of @code{MAKEFLAGS} can exceed it. If you
see the error message @samp{Arg list too long}, this may be the problem.
@findex .POSIX
-@cindex POSIX.2
+@cindex POSIX
(For strict compliance with POSIX.2, changing @code{MAKEOVERRIDES} does
not affect @code{MAKEFLAGS} if the special target @samp{.POSIX} appears
in the makefile. You probably do not care about this.)
@@ -4608,6 +4803,23 @@ itself. For instance, the @samp{-t}, @samp{-n}, and @samp{-q} options, if
put in one of these variables, could have disastrous consequences and would
certainly have at least surprising and probably annoying effects.@refill
+If you'd like to run other implementations of @code{make} in addition
+to GNU @code{make}, and hence do not want to add GNU
+@code{make}-specific flags to the @code{MAKEFLAGS} variable, you can
+add them to the @code{GNUMAKEFLAGS} variable instead. This variable
+is parsed just before @code{MAKEFLAGS}, in the same way as
+@code{MAKEFLAGS}. When @code{make} constructs @code{MAKEFLAGS} to
+pass to a recursive @code{make} it will include all flags, even those
+taken from @code{GNUMAKEFLAGS}. As a result, after parsing
+@code{GNUMAKEFLAGS} GNU @code{make} sets this variable to the empty
+string to avoid duplicating flags during recursion.
+
+It's best to use @code{GNUMAKEFLAGS} only with flags which won't
+materially change the behavior of your makefiles. If your makefiles
+require GNU make anyway then simply use @code{MAKEFLAGS}. Flags such
+as @samp{--no-print-directory} or @samp{--output-sync} may be
+appropriate for @code{GNUMAKEFLAGS}.
+
@node -w Option, , Options/Recursion, Recursion
@subsection The @samp{--print-directory} Option
@cindex directories, printing them
@@ -4716,7 +4928,7 @@ commands based on the file names involved
@cindex +, and @code{define}
In recipe execution, each line of a canned sequence is treated just as
if the line appeared on its own in the rule, preceded by a tab. In
-particular, @code{make} invokes a separate subshell for each line. You
+particular, @code{make} invokes a separate sub-shell for each line. You
can use the special prefix characters that affect command lines
(@samp{@@}, @samp{-}, and @samp{+}) on each line of a canned sequence.
@xref{Recipes, ,Writing Recipes in Rules}.
@@ -4810,13 +5022,15 @@ Variables can represent lists of file names, options to pass to compilers,
programs to run, directories to look in for source files, directories to
write output in, or anything else you can imagine.
-A variable name may be any sequence of characters not containing @samp{:},
-@samp{#}, @samp{=}, or leading or trailing whitespace. However,
-variable names containing characters other than letters, numbers, and
-underscores should be avoided, as they may be given special meanings in the
-future, and with some shells they cannot be passed through the environment to a
-sub-@code{make}
-(@pxref{Variables/Recursion, ,Communicating Variables to a Sub-@code{make}}).
+A variable name may be any sequence of characters not containing
+@samp{:}, @samp{#}, @samp{=}, or whitespace. However, variable names
+containing characters other than letters, numbers, and underscores
+should be considered carefully, as in some shells they cannot be
+passed through the environment to a sub-@code{make}
+(@pxref{Variables/Recursion, ,Communicating Variables to a
+Sub-@code{make}}). Variable names beginning with @samp{.} and an
+uppercase letter may be given special meaning in future versions of
+@code{make}.
Variable names are case-sensitive. The names @samp{foo}, @samp{FOO},
and @samp{Foo} all refer to different variables.
@@ -4940,9 +5154,9 @@ all:;echo $(foo)
will echo @samp{Huh?}: @samp{$(foo)} expands to @samp{$(bar)} which
expands to @samp{$(ugh)} which finally expands to @samp{Huh?}.@refill
-This flavor of variable is the only sort supported by other versions of
-@code{make}. It has its advantages and its disadvantages. An advantage
-(most would say) is that:
+This flavor of variable is the only sort supported by most other
+versions of @code{make}. It has its advantages and its disadvantages.
+An advantage (most would say) is that:
@example
CFLAGS = $(include_dirs) -O
@@ -4978,8 +5192,14 @@ variables, there is another flavor: simply expanded variables.
@cindex simply expanded variables
@cindex variables, simply expanded
@cindex :=
+@cindex ::=
@dfn{Simply expanded variables} are defined by lines using @samp{:=}
-(@pxref{Setting, ,Setting Variables}).
+or @samp{::=} (@pxref{Setting, ,Setting Variables}). Both forms are
+equivalent in GNU @code{make}; however only the @samp{::=} form is
+described by the POSIX standard (support for @samp{::=} was added to
+the POSIX standard in 2012, so older versions of @code{make} won't
+accept this form either).
+
The value of a simply expanded variable is scanned
once and for all, expanding any references to other variables and
functions, when the variable is defined. The actual value of the simply
@@ -5219,7 +5439,7 @@ expands to @samp{$(y)} which in turn expands to @samp{z}; now we have
@samp{$(z)}, which becomes @samp{u}.
References to recursively-expanded variables within a variable name are
-reexpanded in the usual fashion. For example:
+re-expanded in the usual fashion. For example:
@example
x = $(y)
@@ -5398,11 +5618,14 @@ Several variables have constant initial values.
@cindex variables, setting
@cindex =
@cindex :=
+@cindex ::=
@cindex ?=
+@cindex !=
To set a variable from the makefile, write a line starting with the
-variable name followed by @samp{=} or @samp{:=}. Whatever follows the
-@samp{=} or @samp{:=} on the line becomes the value. For example,
+variable name followed by @samp{=} @samp{:=}, or @samp{::=}. Whatever
+follows the @samp{=}, @samp{:=}, or @samp{::=} on the line becomes the
+value. For example,
@example
objects = main.o foo.o bar.o utils.o
@@ -5412,20 +5635,19 @@ objects = main.o foo.o bar.o utils.o
defines a variable named @code{objects}. Whitespace around the variable
name and immediately after the @samp{=} is ignored.
-Variables defined with @samp{=} are @dfn{recursively expanded} variables.
-Variables defined with @samp{:=} are @dfn{simply expanded} variables; these
-definitions can contain variable references which will be expanded before
-the definition is made. @xref{Flavors, ,The Two Flavors of Variables}.
+Variables defined with @samp{=} are @dfn{recursively expanded}
+variables. Variables defined with @samp{:=} or @samp{::=} are
+@dfn{simply expanded} variables; these definitions can contain
+variable references which will be expanded before the definition is
+made. @xref{Flavors, ,The Two Flavors of Variables}.
The variable name may contain function and variable references, which
are expanded when the line is read to find the actual variable name to use.
There is no limit on the length of the value of a variable except the
-amount of swapping space on the computer. When a variable definition is
-long, it is a good idea to break it into several lines by inserting
-backslash-newline at convenient places in the definition. This will not
-affect the functioning of @code{make}, but it will make the makefile easier
-to read.
+amount of memory on the computer. You can split the value of a
+variable into multiple physical lines for readability
+(@pxref{Splitting Lines, ,Splitting Long Lines}).
Most variable names are considered to have the empty string as a value if
you have never set them. Several variables have built-in initial values
@@ -5453,6 +5675,33 @@ FOO = bar
endif
@end example
+The shell assignment operator @samp{!=} can be used to execute a
+program and set a variable to its output. This operator first
+evaluates the right-hand side, then passes that result to the shell
+for execution. If the result of the execution ends in a newline, that
+one newline is removed; all other newlines are replaced by spaces.
+The resulting string is then placed into the named
+recursively-expanded variable. For example:
+
+@example
+hash != printf '\043'
+file_list != find . -name '*.c'
+@end example
+
+If the result of the execution could produce a @code{$}, and you don't
+intend what follows that to be interpreted as a make variable or
+function reference, then you must replace every @code{$} with
+@code{$$} as part of the execution. Alternatively, you can set a
+simply expanded variable to the result of running a program using the
+@code{shell} function call. @xref{Shell Function, , The @code{shell}
+Function}. For example:
+
+@example
+hash := $(shell printf '\043')
+var := $(shell find . -name "*.c")
+@end example
+
+
@node Appending, Override Directive, Setting, Using Variables
@section Appending More Text to Variables
@cindex +=
@@ -5497,12 +5746,12 @@ explanation of the two flavors of variables.
When you add to a variable's value with @samp{+=}, @code{make} acts
essentially as if you had included the extra text in the initial
-definition of the variable. If you defined it first with @samp{:=},
-making it a simply-expanded variable, @samp{+=} adds to that
-simply-expanded definition, and expands the new text before appending it
-to the old value just as @samp{:=} does
-(see @ref{Setting, ,Setting Variables}, for a full explanation of @samp{:=}).
-In fact,
+definition of the variable. If you defined it first with @samp{:=} or
+@samp{::=}, making it a simply-expanded variable, @samp{+=} adds to
+that simply-expanded definition, and expands the new text before
+appending it to the old value just as @samp{:=} does (see
+@ref{Setting, ,Setting Variables}, for a full explanation of
+@samp{:=} or @samp{::=}). In fact,
@example
variable := value
@@ -5716,7 +5965,7 @@ two-lines = echo foo; echo $(bar)
@noindent
since two commands separated by semicolon behave much like two separate
shell commands. However, note that using two separate lines means
-@code{make} will invoke the shell twice, running an independent subshell
+@code{make} will invoke the shell twice, running an independent sub-shell
for each line. @xref{Execution, ,Recipe Execution}.
If you want variable definitions made with @code{define} to take
@@ -5842,13 +6091,13 @@ Multiple @var{target} values create a target-specific variable value for
each member of the target list individually.
The @var{variable-assignment} can be any valid form of assignment;
-recursive (@samp{=}), static (@samp{:=}), appending (@samp{+=}), or
-conditional (@samp{?=}). All variables that appear within the
-@var{variable-assignment} are evaluated within the context of the
-target: thus, any previously-defined target-specific variable values
-will be in effect. Note that this variable is actually distinct from
-any ``global'' value: the two variables do not have to have the same
-flavor (recursive vs.@: static).
+recursive (@samp{=}), simple (@samp{:=} or @samp{::=}), appending
+(@samp{+=}), or conditional (@samp{?=}). All variables that appear
+within the @var{variable-assignment} are evaluated within the context
+of the target: thus, any previously-defined target-specific variable
+values will be in effect. Note that this variable is actually
+distinct from any ``global'' value: the two variables do not have to
+have the same flavor (recursive vs.@: simple).
Target-specific variables have the same priority as any other makefile
variable. Variables provided on the command line (and in the
@@ -5973,7 +6222,7 @@ prog: a.o b.o
Due to the @code{private} modifier, @code{a.o} and @code{b.o} will not
inherit the @code{EXTRA_CFLAGS} variable assignment from the
-@code{progs} target.
+@code{prog} target.
@node Special Variables, , Suppressing Inheritance, Using Variables
@comment node-name, next, previous, up
@@ -6069,7 +6318,7 @@ foo
@end example
Note that assigning more than one target name to @code{.DEFAULT_GOAL} is
-illegal and will result in an error.
+invalid and will result in an error.
@vindex MAKE_RESTARTS @r{(number of times @code{make} has restarted)}
@item MAKE_RESTARTS
@@ -6120,12 +6369,12 @@ value.
@vindex .FEATURES @r{(list of supported features)}
@item .FEATURES
Expands to a list of special features supported by this version of
-@code{make}. Possible values include:
+@code{make}. Possible values include, but are not limited to:
@table @samp
@item archives
-Supports @code{ar} (archive) files using special filename syntax.
+Supports @code{ar} (archive) files using special file name syntax.
@xref{Archives, ,Using @code{make} to Update Archive Files}.
@item check-symlink
@@ -6140,17 +6389,36 @@ Syntax, ,Syntax of Conditionals}.
Supports ``job server'' enhanced parallel builds. @xref{Parallel,
,Parallel Execution}.
-@item second-expansion
-Supports secondary expansion of prerequisite lists.
+@item oneshell
+Supports the @code{.ONESHELL} special target. @xref{One Shell, ,Using
+One Shell}.
@item order-only
Supports order-only prerequisites. @xref{Prerequisite Types, ,Types
of Prerequisites}.
+@item second-expansion
+Supports secondary expansion of prerequisite lists.
+
+@item shortest-stem
+Uses the ``shortest stem'' method of choosing which pattern, of
+multiple applicable options, will be used. @xref{Pattern Match, ,How
+Patterns Match}.
+
@item target-specific
Supports target-specific and pattern-specific variable assignments.
@xref{Target-specific, ,Target-specific Variable Values}.
+@item undefine
+Supports the @code{undefine} directive. @xref{Undefine Directive}.
+
+@item guile
+Has GNU Guile available as an embedded extension language.
+@xref{Guile Integration, ,GNU Guile Integration}.
+
+@item load
+Supports dynamically loadable objects for creating custom extensions.
+@xref{Loading Objects, ,Loading Dynamic Objects}.
@end table
@vindex .INCLUDE_DIRS @r{(list of include directories)}
@@ -6291,12 +6559,12 @@ endif
or:
@example
-@var{conditional-directive}
+@var{conditional-directive-one}
@var{text-if-one-is-true}
-else @var{conditional-directive}
-@var{text-if-true}
+else @var{conditional-directive-two}
+@var{text-if-two-is-true}
else
-@var{text-if-false}
+@var{text-if-one-and-two-are-false}
endif
@end example
@@ -6492,13 +6760,15 @@ be substituted.
* File Name Functions:: Functions for manipulating file names.
* Conditional Functions:: Functions that implement conditions.
* Foreach Function:: Repeat some text with controlled variation.
+* File Function:: Write text to a file.
* Call Function:: Expand a user-defined function.
* Value Function:: Return the un-expanded value of a variable.
* Eval Function:: Evaluate the arguments as makefile syntax.
* Origin Function:: Find where a variable got its value.
* Flavor Function:: Find out the flavor of a variable.
-* Shell Function:: Substitute the output of a shell command.
* Make Control Functions:: Functions that control how make runs.
+* Shell Function:: Substitute the output of a shell command.
+* Guile Function:: Use GNU Guile embedded scripting language.
@end menu
@node Syntax of Functions, Text Functions, Functions, Functions
@@ -6508,7 +6778,9 @@ be substituted.
@cindex arguments of functions
@cindex functions, syntax of
-A function call resembles a variable reference. It looks like this:
+A function call resembles a variable reference. It can appear
+anywhere a variable reference can appear, and it is expanded using the
+same rules as variable references. A function call looks like this:
@example
$(@var{function} @var{arguments})
@@ -6523,7 +6795,7 @@ $@{@var{function} @var{arguments}@}
Here @var{function} is a function name; one of a short list of names
that are part of @code{make}. You can also essentially create your own
-functions by using the @code{call} builtin function.
+functions by using the @code{call} built-in function.
The @var{arguments} are the arguments of the function. They are
separated from the function name by one or more spaces or tabs, and if
@@ -7140,7 +7412,7 @@ the result of the expansion is the expansion of the last argument.
@end table
-@node Foreach Function, Call Function, Conditional Functions, Functions
+@node Foreach Function, File Function, Conditional Functions, Functions
@section The @code{foreach} Function
@findex foreach
@cindex words, iterating over
@@ -7202,7 +7474,7 @@ files := $(foreach dir,$(dirs),$(find_files))
@noindent
Here we use the variable @code{find_files} this way. We use plain @samp{=}
to define a recursively-expanding variable, so that its value contains an
-actual function call to be reexpanded under the control of @code{foreach};
+actual function call to be re-expanded under the control of @code{foreach};
a simply-expanded variable would not do, since @code{wildcard} would be
called only once at the time of defining @code{find_files}.
@@ -7220,15 +7492,77 @@ variable names because many strange things are valid variable names, but
are probably not what you intended. For example,
@smallexample
-files := $(foreach Esta escrito en espanol!,b c ch,$(find_files))
+files := $(foreach Esta-escrito-en-espanol!,b c ch,$(find_files))
@end smallexample
@noindent
might be useful if the value of @code{find_files} references the variable
-whose name is @samp{Esta escrito en espanol!} (es un nombre bastante largo,
+whose name is @samp{Esta-escrito-en-espanol!} (es un nombre bastante largo,
no?), but it is more likely to be a mistake.
-@node Call Function, Value Function, Foreach Function, Functions
+@node File Function, Call Function, Foreach Function, Functions
+@section The @code{file} Function
+@findex file
+@cindex writing to a file
+@cindex file, writing to
+
+The @code{file} function allows the makefile to write to a file. Two
+modes of writing are supported: overwrite, where the text is written
+to the beginning of the file and any existing content is lost, and
+append, where the text is written to the end of the file, preserving
+the existing content. In all cases the file is created if it does not
+exist.
+
+The syntax of the @code{file} function is:
+
+@example
+$(file @var{op} @var{filename},@var{text})
+@end example
+
+The operator @var{op} can be either @code{>} which indicates overwrite
+mode, or @code{>>} which indicates append mode. The @var{filename}
+indicates the file to be written to. There may optionally be
+whitespace between the operator and the file name.
+
+When the @code{file} function is expanded all its arguments are
+expanded first, then the file indicated by @var{filename} will be
+opened in the mode described by @var{op}. Finally @var{text} will be
+written to the file. If @var{text} does not already end in a newline,
+a final newline will be written. The result of evaluating the
+@code{file} function is always the empty string.
+
+It is a fatal error if the file cannot be opened for writing, or if
+the write operation fails.
+
+For example, the @code{file} function can be useful if your build
+system has a limited command line size and your recipe runs a command
+that can accept arguments from a file as well. Many commands use the
+convention that an argument prefixed with an @code{@@} specifies a
+file containing more arguments. Then you might write your recipe in
+this way:
+
+@example
+@group
+program: $(OBJECTS)
+ $(file >$@@.in,$^)
+ $(CMD) $(CMDFLAGS) @@$@@.in
+ @@rm $@@.in
+@end group
+@end example
+
+If the command required each argument to be on a separate line of the
+input file, you might write your recipe like this:
+
+@example
+@group
+program: $(OBJECTS)
+ $(file >$@@.in,) $(foreach O,$^,$(file >>$@@.in,$O))
+ $(CMD) $(CMDFLAGS) @@$@@.in
+ @@rm $@@.in
+@end group
+@end example
+
+@node Call Function, Value Function, File Function, Functions
@section The @code{call} Function
@findex call
@cindex functions, user defined
@@ -7262,13 +7596,13 @@ a @samp{$} or parentheses when writing it. (You can, however, use a
variable reference in the name if you want the name not to be a
constant.)
-If @var{variable} is the name of a builtin function, the builtin function
+If @var{variable} is the name of a built-in function, the built-in function
is always invoked (even if a @code{make} variable by that name also
exists).
The @code{call} function expands the @var{param} arguments before
assigning them to temporary variables. This means that @var{variable}
-values containing references to builtin functions that have special
+values containing references to built-in functions that have special
expansion rules, like @code{foreach} or @code{if}, may not work as you
expect.
@@ -7340,7 +7674,7 @@ The syntax of the @code{value} function is:
$(value @var{variable})
@end example
-Note that @var{variable} is the @emph{name} of a variable; not a
+Note that @var{variable} is the @emph{name} of a variable, not a
@emph{reference} to that variable. Therefore you would not normally
use a @samp{$} or parentheses when writing it. (You can, however, use
a variable reference in the name if you want the name not to be a
@@ -7451,7 +7785,7 @@ The syntax of the @code{origin} function is:
$(origin @var{variable})
@end example
-Note that @var{variable} is the @emph{name} of a variable to inquire about;
+Note that @var{variable} is the @emph{name} of a variable to inquire about,
not a @emph{reference} to that variable. Therefore you would not normally
use a @samp{$} or parentheses when writing it. (You can, however, use a
variable reference in the name if you want the name not to be a constant.)
@@ -7544,17 +7878,16 @@ Here the redefinition takes place if @samp{$(origin bletch)} returns either
@samp{environment} or @samp{environment override}.
@xref{Text Functions, , Functions for String Substitution and Analysis}.
-@node Flavor Function, Shell Function, Origin Function, Functions
+@node Flavor Function, Make Control Functions, Origin Function, Functions
@section The @code{flavor} Function
@findex flavor
@cindex variables, flavor of
@cindex flavor of variable
-The @code{flavor} function is unlike most other functions (and like
-@code{origin} function) in that it does not operate on the values of
-variables; it tells you something @emph{about} a variable.
-Specifically, it tells you the flavor of a variable (@pxref{Flavors,
-,The Two Flavors of Variables}).
+The @code{flavor} function, like the @code{origin} function, does not
+operate on the values of variables but rather it tells you something
+@emph{about} a variable. Specifically, it tells you the flavor of a
+variable (@pxref{Flavors, ,The Two Flavors of Variables}).
The syntax of the @code{flavor} function is:
@@ -7562,7 +7895,7 @@ The syntax of the @code{flavor} function is:
$(flavor @var{variable})
@end example
-Note that @var{variable} is the @emph{name} of a variable to inquire about;
+Note that @var{variable} is the @emph{name} of a variable to inquire about,
not a @emph{reference} to that variable. Therefore you would not normally
use a @samp{$} or parentheses when writing it. (You can, however, use a
variable reference in the name if you want the name not to be a constant.)
@@ -7585,56 +7918,7 @@ if @var{variable} is a simply expanded variable.
@end table
-
-@node Shell Function, Make Control Functions, Flavor Function, Functions
-@section The @code{shell} Function
-@findex shell
-@cindex command expansion
-@cindex backquotes
-@cindex shell command, function for
-
-The @code{shell} function is unlike any other function other than the
-@code{wildcard} function
-(@pxref{Wildcard Function, ,The Function @code{wildcard}}) in that it
-communicates with the world outside of @code{make}.
-
-The @code{shell} function performs the same function that backquotes
-(@samp{`}) perform in most shells: it does @dfn{command expansion}.
-This means that it takes as an argument a shell command and evaluates
-to the output of the command. The only processing @code{make} does on
-the result is to convert each newline (or carriage-return / newline
-pair) to a single space. If there is a trailing (carriage-return
-and) newline it will simply be removed.@refill
-
-The commands run by calls to the @code{shell} function are run when the
-function calls are expanded (@pxref{Reading Makefiles, , How
-@code{make} Reads a Makefile}). Because this function involves
-spawning a new shell, you should carefully consider the performance
-implications of using the @code{shell} function within recursively
-expanded variables vs.@: simply expanded variables (@pxref{Flavors, ,The
-Two Flavors of Variables}).
-
-Here are some examples of the use of the @code{shell} function:
-
-@example
-contents := $(shell cat foo)
-@end example
-
-@noindent
-sets @code{contents} to the contents of the file @file{foo}, with a space
-(rather than a newline) separating each line.
-
-@example
-files := $(shell echo *.c)
-@end example
-
-@noindent
-sets @code{files} to the expansion of @samp{*.c}. Unless @code{make} is
-using a very strange shell, this has the same result as
-@w{@samp{$(wildcard *.c)}} (as long as at least one @samp{.c} file
-exists).@refill
-
-@node Make Control Functions, , Shell Function, Functions
+@node Make Control Functions, Shell Function, Flavor Function, Functions
@section Functions That Control Make
@cindex functions, for controlling make
@cindex controlling make
@@ -7696,6 +7980,71 @@ to standard output. No makefile name or line number is added. The
result of the expansion of this function is the empty string.
@end table
+@node Shell Function, Guile Function, Make Control Functions, Functions
+@section The @code{shell} Function
+@findex shell
+@cindex command expansion
+@cindex backquotes
+@cindex shell command, function for
+
+The @code{shell} function is unlike any other function other than the
+@code{wildcard} function
+(@pxref{Wildcard Function, ,The Function @code{wildcard}}) in that it
+communicates with the world outside of @code{make}.
+
+The @code{shell} function performs the same function that backquotes
+(@samp{`}) perform in most shells: it does @dfn{command expansion}.
+This means that it takes as an argument a shell command and evaluates
+to the output of the command. The only processing @code{make} does on
+the result is to convert each newline (or carriage-return / newline
+pair) to a single space. If there is a trailing (carriage-return
+and) newline it will simply be removed.@refill
+
+The commands run by calls to the @code{shell} function are run when the
+function calls are expanded (@pxref{Reading Makefiles, , How
+@code{make} Reads a Makefile}). Because this function involves
+spawning a new shell, you should carefully consider the performance
+implications of using the @code{shell} function within recursively
+expanded variables vs.@: simply expanded variables (@pxref{Flavors, ,The
+Two Flavors of Variables}).
+
+Here are some examples of the use of the @code{shell} function:
+
+@example
+contents := $(shell cat foo)
+@end example
+
+@noindent
+sets @code{contents} to the contents of the file @file{foo}, with a space
+(rather than a newline) separating each line.
+
+@example
+files := $(shell echo *.c)
+@end example
+
+@noindent
+sets @code{files} to the expansion of @samp{*.c}. Unless @code{make} is
+using a very strange shell, this has the same result as
+@w{@samp{$(wildcard *.c)}} (as long as at least one @samp{.c} file
+exists).@refill
+
+@node Guile Function, , Shell Function, Functions
+@section The @code{guile} Function
+@findex guile
+@cindex Guile
+
+If GNU @code{make} is built with support for GNU Guile as an embedded
+extension language then the @code{guile} function will be available.
+The @code{guile} function takes one argument which is first expanded
+by @code{make} in the normal fashion, then passed to the GNU Guile
+evaluator. The result of the evaluator is converted into a string and
+used as the expansion of the @code{guile} function in the makefile.
+See @ref{Guile Integration, ,GNU Guile Integration} for details on
+writing extensions to @code{make} in Guile.
+
+You can determine whether GNU Guile support is available by checking
+the @code{.FEATURES} variable for the word @var{guile}.
+
@node Running, Implicit Rules, Functions, Top
@chapter How to Run @code{make}
@@ -7918,9 +8267,12 @@ what you want. Certain options specify other activities for @code{make}.
@cindex @code{--recon}
@cindex @code{-n}
-``No-op''. The activity is to print what recipe would be used to make
-the targets up to date, but not actually execute it. Some recipes are
-still executed, even with this flag (@pxref{MAKE Variable, ,How the @code{MAKE} Variable Works}).
+``No-op''. Causes @code{make} to print the recipes that are needed to
+make the targets up to date, but not actually execute them. Note that
+some recipes are still executed, even with this flag (@pxref{MAKE
+Variable, ,How the @code{MAKE} Variable Works}). Also any recipes
+needed to update included makefiles are still executed
+(@pxref{Remaking Makefiles, ,How Makefiles Are Remade}).
@item -t
@itemx --touch
@@ -7929,9 +8281,10 @@ still executed, even with this flag (@pxref{MAKE Variable, ,How the @code{MAKE}
@cindex target, touching
@cindex @code{-t}
-``Touch''. The activity is to mark the targets as up to date without
-actually changing them. In other words, @code{make} pretends to compile
-the targets but does not really change their contents.
+``Touch''. Marks targets as up to date without actually changing
+them. In other words, @code{make} pretends to update the targets but
+does not really change their contents; instead only their modified
+times are updated.
@item -q
@itemx --question
@@ -7939,9 +8292,9 @@ the targets but does not really change their contents.
@cindex @code{-q}
@cindex question mode
-``Question''. The activity is to find out silently whether the targets
-are up to date already; but execute no recipe in either case. In other
-words, neither compilation nor output will occur.
+``Question''. Silently check whether the targets are up to date, but
+do not execute recipes; the exit code shows whether any updates are
+needed.
@item -W @var{file}
@itemx --what-if=@var{file}
@@ -8115,10 +8468,10 @@ makefile works by changing the variables.
When you override a variable with a command line argument, you can
define either a recursively-expanded variable or a simply-expanded
variable. The examples shown above make a recursively-expanded
-variable; to make a simply-expanded variable, write @samp{:=} instead
-of @samp{=}. But, unless you want to include a variable reference or
-function call in the @emph{value} that you specify, it makes no
-difference which kind of variable you create.
+variable; to make a simply-expanded variable, write @samp{:=} or
+@samp{::=} instead of @samp{=}. But, unless you want to include a
+variable reference or function call in the @emph{value} that you
+specify, it makes no difference which kind of variable you create.
There is one way that the makefile can change a variable that you have
overridden. This is to use the @code{override} directive, which is a line
@@ -8242,13 +8595,17 @@ Prints messages describing the implicit rule searches for each target.
This option also enables @samp{basic} messages.
@item j (@i{jobs})
-Prints messages giving details on the invocation of specific subcommands.
+Prints messages giving details on the invocation of specific sub-commands.
@item m (@i{makefile})
By default, the above messages are not enabled while trying to remake
the makefiles. This option enables messages while rebuilding makefiles,
too. Note that the @samp{all} option does enable this option. This
option also enables @samp{basic} messages.
+
+@item n (@i{none})
+Disable all debugging currently enabled. If additional debugging
+flags are encountered after this they will still take effect.
@end table
@item -e
@@ -8367,6 +8724,25 @@ prerequisites, and do not remake anything on account of changes in
are ignored. @xref{Avoiding Compilation, ,Avoiding Recompilation of
Some Files}.@refill
+@item -O[@var{type}]
+@cindex @code{-O}
+@itemx --output-sync[=@var{type}]
+@cindex @code{--output-sync}
+@cindex output during parallel execution
+@cindex parallel execution, output during
+Ensure that the complete output from each recipe is printed in one
+uninterrupted sequence. This option is only useful when using the
+@code{--jobs} option to run multiple recipes simultaneously
+(@pxref{Parallel, ,Parallel Execution}) Without this option output
+will be displayed as it is generated by the recipes.@refill
+
+With no type or the type @samp{target}, output from the entire recipe
+of each target is grouped together. With the type @samp{line}, output
+from each line in the recipe is grouped together. With the type
+@samp{recurse}, the output from an entire recursive make is grouped
+together. With the type @samp{none}, no output synchronization is
+performed. @xref{Parallel Output, ,Output During Parallel Execution}.
+
@item -p
@cindex @code{-p}
@itemx --print-data-base
@@ -8379,7 +8755,7 @@ specified. This also prints the version information given by the
@samp{-v} switch (see below). To print the data base without trying
to remake any files, use @w{@samp{make -qp}}. To print the data base
of predefined rules and variables, use @w{@samp{make -p -f /dev/null}}.
-The data base output contains filename and linenumber information for
+The data base output contains file name and line number information for
recipe and variable definitions, so it can be a useful debugging tool
in complex environments.
@@ -8454,6 +8830,14 @@ instead of running their recipes. This is used to pretend that the
recipes were done, in order to fool future invocations of
@code{make}. @xref{Instead of Execution, ,Instead of Executing Recipes}.
+@item --trace
+@cindex @code{--trace}
+Show tracing information for @code{make} execution. Prints the entire
+recipe to be executed, even for recipes that are normally silent (due
+to @code{.SILENT} or @samp{@@}). Also prints the makefile name and
+line number where the recipe was defined, and information on why the
+target is being rebuilt.
+
@item -v
@cindex @code{-v}
@itemx --version
@@ -8472,7 +8856,7 @@ from complicated nests of recursive @code{make} commands.
rarely need to specify this option since @samp{make} does it for you;
see @ref{-w Option, ,The @samp{--print-directory} Option}.)
-@itemx --no-print-directory
+@item --no-print-directory
@cindex @code{--no-print-directory}
Disable printing of the working directory under @code{-w}.
This option is useful when @code{-w} is turned on automatically,
@@ -8554,7 +8938,7 @@ retained for compatibility.
* Implicit Variables:: How to change what predefined rules do.
* Chained Rules:: How to use a chain of implicit rules.
* Pattern Rules:: How to define new implicit rules.
-* Last Resort:: How to define recipes for rules which
+* Last Resort:: How to define a recipe for rules which
cannot find any.
* Suffix Rules:: The old-fashioned style of implicit rule.
* Implicit Rule Search:: The precise algorithm for applying
@@ -8986,7 +9370,6 @@ can run @samp{make -p} in a directory with no makefiles.
Here is a table of some of the more common variables used as names of
programs in built-in rules:
-makefiles.
@table @code
@item AR
@@ -9141,7 +9524,16 @@ Extra flags to give to the SCCS @code{get} program.
@item LDFLAGS
@vindex LDFLAGS
Extra flags to give to compilers when they are supposed to invoke the linker,
-@samp{ld}.
+@samp{ld}, such as @code{-L}. Libraries (@code{-lfoo}) should be
+added to the @code{LDLIBS} variable instead.
+
+@item LDLIBS
+@vindex LDLIBS
+@vindex LOADLIBES
+Library flags or names given to compilers when they are supposed to
+invoke the linker, @samp{ld}. @code{LOADLIBES} is a deprecated (but
+still supported) alternative to @code{LDLIBS}. Non-library linker
+flags, such as @code{-L}, should go in the @code{LDFLAGS} variable.
@item LFLAGS
@vindex LFLAGS
@@ -9274,7 +9666,7 @@ Variables}, and @ref{Functions, ,Functions for Transforming Text}.
* Pattern Intro:: An introduction to pattern rules.
* Pattern Examples:: Examples of pattern rules.
* Automatic Variables:: How to use automatic variables in the
- recipes of implicit rules.
+ recipe of implicit rules.
* Pattern Match:: How patterns match.
* Match-Anything Rules:: Precautions you should take prior to
defining rules that can match any
@@ -9374,7 +9766,7 @@ Here is a second built-in rule:
@noindent
defines a rule that can make any file @file{@var{x}} whatsoever from a
-corresponding file @file{@var{x},v} in the subdirectory @file{RCS}. Since
+corresponding file @file{@var{x},v} in the sub-directory @file{RCS}. Since
the target is @samp{%}, this rule will apply to any file whatever, provided
the appropriate prerequisite file exists. The double colon makes the rule
@dfn{terminal}, which means that its prerequisite may not be an intermediate
@@ -9747,7 +10139,7 @@ remade from any other files; therefore, @code{make} can save time by not
looking for ways to remake them.@refill
If you do not mark the match-anything rule as terminal, then it is
-nonterminal. A nonterminal match-anything rule cannot apply to a file name
+non-terminal. A non-terminal match-anything rule cannot apply to a file name
that indicates a specific type of data. A file name indicates a specific
type of data if some non-match-anything implicit rule target matches it.
@@ -9755,18 +10147,18 @@ For example, the file name @file{foo.c} matches the target for the pattern
rule @samp{%.c : %.y} (the rule to run Yacc). Regardless of whether this
rule is actually applicable (which happens only if there is a file
@file{foo.y}), the fact that its target matches is enough to prevent
-consideration of any nonterminal match-anything rules for the file
+consideration of any non-terminal match-anything rules for the file
@file{foo.c}. Thus, @code{make} will not even consider trying to make
@file{foo.c} as an executable file from @file{foo.c.o}, @file{foo.c.c},
@file{foo.c.p}, etc.@refill
-The motivation for this constraint is that nonterminal match-anything
+The motivation for this constraint is that non-terminal match-anything
rules are used for making files containing specific types of data (such as
executable files) and a file name with a recognized suffix indicates some
other specific type of data (such as a C source file).
Special built-in dummy pattern rules are provided solely to recognize
-certain file names so that nonterminal match-anything rules will not be
+certain file names so that non-terminal match-anything rules will not be
considered. These dummy rules have no prerequisites and no recipes, and
they are ignored for all other purposes. For example, the built-in
implicit rule
@@ -9986,7 +10378,7 @@ matched against @var{t}; otherwise, against @var{n}.
@item
If any rule in that list is @emph{not} a match-anything rule, then
-remove all nonterminal match-anything rules from the list.
+remove all non-terminal match-anything rules from the list.
@item
Remove from the list all rules with no recipe.
@@ -10055,11 +10447,11 @@ When the recipe of a pattern rule is executed for @var{t}, the
automatic variables are set corresponding to the target and
prerequisites. @xref{Automatic Variables}.
-@node Archives, Features, Implicit Rules, Top
+@node Archives, Extending make, Implicit Rules, Top
@chapter Using @code{make} to Update Archive Files
@cindex archive
-@dfn{Archive files} are files containing named subfiles called
+@dfn{Archive files} are files containing named sub-files called
@dfn{members}; they are maintained with the program @code{ar} and their
main use is as subroutine libraries for linking.
@@ -10282,7 +10674,648 @@ in the normal way (@pxref{Suffix Rules}). Thus a double-suffix rule
@w{@samp{.@var{x}.a}} produces two pattern rules: @samp{@w{(%.o):}
@w{%.@var{x}}} and @samp{@w{%.a}: @w{%.@var{x}}}.@refill
-@node Features, Missing, Archives, Top
+@node Extending make, Features, Archives, Top
+@chapter Extending GNU @code{make}
+@cindex make extensions
+
+GNU @code{make} provides many advanced capabilities, including many
+useful functions. However, it does not contain a complete programming
+language and so it has limitations. Sometimes these limitations can be
+overcome through use of the @code{shell} function to invoke a separate
+program, although this can be inefficient.
+
+In cases where the built-in capabilities of GNU @code{make} are
+insufficient to your requirements there are two options for extending
+@code{make}. On systems where it's provided, you can utilize GNU
+Guile as an embedded scripting language (@pxref{Guile Integration,,GNU
+Guile Integration}). On systems which support dynamically loadable
+objects, you can write your own extension in any language (which can
+be compiled into such an object) and load it to provide extended
+capabilities (@pxref{load Directive, ,The @code{load} Directive}).
+
+@menu
+* Guile Integration:: Using Guile as an embedded scripting language.
+* Loading Objects:: Loading dynamic objects as extensions.
+@end menu
+
+@node Guile Integration, Loading Objects, Extending make, Extending make
+@section GNU Guile Integration
+@cindex Guile
+@cindex extensions, Guile
+
+GNU @code{make} may be built with support for GNU Guile as an embedded
+extension language. Guile implements the Scheme language. A review
+of GNU Guile and the Scheme language and its features is beyond the
+scope of this manual: see the documentation for GNU Guile and Scheme.
+
+You can determine if @code{make} contains support for Guile by
+examining the @code{.FEATURES} variable; it will contain the word
+@var{guile} if Guile support is available.
+
+The Guile integration provides one new @code{make} function: @code{guile}.
+The @code{guile} function takes one argument which is first expanded
+by @code{make} in the normal fashion, then passed to the GNU Guile
+evaluator. The result of the evaluator is converted into a string and
+used as the expansion of the @code{guile} function in the makefile.
+
+In addition, GNU @code{make} exposes Guile procedures for use in Guile
+scripts.
+
+@menu
+* Guile Types:: Converting Guile types to @code{make} strings.
+* Guile Interface:: Invoking @code{make} functions from Guile.
+* Guile Example:: Example using Guile in @code{make}.
+@end menu
+
+@node Guile Types, Guile Interface, Guile Integration, Guile Integration
+@subsection Conversion of Guile Types
+@cindex convert guile types
+@cindex guile, conversion of types
+@cindex types, conversion of
+
+There is only one ``data type'' in @code{make}: a string. GNU Guile,
+on the other hand, provides a rich variety of different data types.
+An important aspect of the interface between @code{make} and GNU Guile
+is the conversion of Guile data types into @code{make} strings.
+
+This conversion is relevant in two places: when a makefile invokes the
+@code{guile} function to evaluate a Guile expression, the result of
+that evaluation must be converted into a make string so it can be
+further evaluated by @code{make}. And secondly, when a Guile script
+invokes one of the procedures exported by @code{make} the argument
+provided to the procedure must be converted into a string.
+
+The conversion of Guile types into @code{make} strings is as below:
+
+@table @code
+@item #f
+False is converted into the empty string: in @code{make} conditionals
+the empty string is considered false.
+
+@item #t
+True is converted to the string @samp{#t}: in @code{make} conditionals
+any non-empty string is considered true.
+
+@item symbol
+@item number
+A symbol or number is converted into the string representation of that
+symbol or number.
+
+@item character
+A printable character is converted to the same character.
+
+@item string
+A string containing only printable characters is converted to the same
+string.
+
+@item list
+A list is converted recursively according to the above rules. This
+implies that any structured list will be flattened (that is, a result
+of @samp{'(a b (c d) e)} will be converted to the @code{make} string
+@samp{a b c d e}).
+
+@item other
+Any other Guile type results in an error. In future versions of
+@code{make}, other Guile types may be converted.
+
+@end table
+
+The translation of @samp{#f} (to the empty string) and @samp{#t} (to
+the non-empty string @samp{#t}) is designed to allow you to use Guile
+boolean results directly as @code{make} boolean conditions. For
+example:
+
+@example
+$(if $(guile (access? "myfile" R_OK)),$(info myfile exists))
+@end example
+
+As a consequence of these conversion rules you must consider the
+result of your Guile script, as that result will be converted into a
+string and parsed by @code{make}. If there is no natural result for
+the script (that is, the script exists solely for its side-effects),
+you should add @samp{#f} as the final expression in order to avoid
+syntax errors in your makefile.
+
+@node Guile Interface, Guile Example, Guile Types, Guile Integration
+@subsection Interfaces from Guile to @code{make}
+@cindex make interface to guile
+@cindex make procedures in guile
+
+In addition to the @code{guile} function available in makefiles,
+@code{make} exposes some procedures for use in your Guile scripts. At
+startup @code{make} creates a new Guile module, @code{gnu make}, and
+exports these procedures as public interfaces from that module:
+
+@table @code
+@item gmk-expand
+@findex gmk-expand
+This procedure takes a single argument which is converted into a
+string. The string is expanded by @code{make} using normal
+@code{make} expansion rules. The result of the expansion is converted
+into a Guile string and provided as the result of the procedure.
+
+@item gmk-eval
+@findex gmk-eval
+This procedure takes a single argument which is converted into a
+string. The string is evaluated by @code{make} as if it were a
+makefile. This is the same capability available via the @code{eval}
+function (@pxref{Eval Function}). The result of the @code{gmk-eval}
+procedure is always the empty string.
+
+Note that @code{gmk-eval} is not quite the same as using
+@code{gmk-expand} with the @code{eval} function: in the latter case
+the evaluated string will be expanded @emph{twice}; first by
+@code{gmk-expand}, then again by the @code{eval} function.
+
+@end table
+
+@node Guile Example, , Guile Interface, Guile Integration
+@subsection Example Using Guile in @code{make}
+@cindex Guile example
+@cindex example using Guile
+
+Here is a very simple example using GNU Guile to manage writing to a
+file. These Guile procedures simply open a file, allow writing to the
+file (one string per line), and close the file. Note that because we
+cannot store complex values such as Guile ports in @code{make}
+variables, we'll keep the port as a global variable in the Guile
+interpreter.
+
+You can create Guile functions easily using @code{define}/@code{endef}
+to create a Guile script, then use the @code{guile} function to
+internalize it:
+
+@example
+@group
+define GUILEIO
+;; A simple Guile IO library for GNU make
+
+(define MKPORT #f)
+
+(define (mkopen name mode)
+ (set! MKPORT (open-file name mode))
+ #f)
+
+(define (mkwrite s)
+ (display s MKPORT)
+ (newline MKPORT)
+ #f)
+
+(define (mkclose)
+ (close-port MKPORT)
+ #f)
+
+#f
+endef
+
+# Internalize the Guile IO functions
+$(guile $(GUILEIO))
+@end group
+@end example
+
+If you have a significant amount of Guile support code, you might
+consider keeping it in a different file (e.g., @file{guileio.scm}) and
+then loading it in your makefile using the @code{guile} function:
+
+@example
+$(guile (load "guileio.scm"))
+@end example
+
+An advantage to this method is that when editing @file{guileio.scm},
+your editor will understand that this file contains Scheme syntax
+rather than makefile syntax.
+
+Now you can use these Guile functions to create files. Suppose you
+need to operate on a very large list, which cannot fit on the command
+line, but the utility you're using accepts the list as input as well:
+
+@example
+@group
+prog: $(PREREQS)
+ @@$(guile (mkopen "tmp.out" "w")) \
+ $(foreach X,$^,$(guile (mkwrite "$(X)"))) \
+ $(guile (mkclose))
+ $(LINK) < tmp.out
+@end group
+@end example
+
+A more comprehensive suite of file manipulation procedures is possible
+of course. You could, for example, maintain multiple output files at
+the same time by choosing a symbol for each one and using it as the
+key to a hash table, where the value is a port, then returning the
+symbol to be stored in a @code{make} variable.
+
+@node Loading Objects, , Guile Integration, Extending make
+@section Loading Dynamic Objects
+@cindex loaded objects
+@cindex objects, loaded
+@cindex extensions, loading
+
+@cartouche
+@quotation Warning
+The @code{load} directive and extension capability is considered a
+``technology preview'' in this release of GNU make. We encourage you
+to experiment with this feature and we appreciate any feedback on it.
+However we cannot guarantee to maintain backward-compatibility in the
+next release. Consider using GNU Guile instead for extending GNU make
+(@pxref{Guile Function, ,The @code{guile} Function}).
+@end quotation
+@end cartouche
+
+Many operating systems provide a facility for dynamically loading
+compiled objects. If your system provides this facility, GNU
+@code{make} can make use of it to load dynamic objects at runtime,
+providing new capabilities which may then be invoked by your makefile.
+
+The @code{load} directive is used to load a dynamic object. Once the
+object is loaded, a ``setup'' function will be invoked to allow the
+object to initialize itself and register new facilities with GNU
+@code{make}. A dynamic object might include new @code{make} functions,
+for example, and the ``setup'' function would register them with GNU
+@code{make}'s function handling system.
+
+@menu
+* load Directive:: Loading dynamic objects as extensions.
+* Remaking Loaded Objects:: How loaded objects get remade.
+* Loaded Object API:: Programmatic interface for loaded objects.
+* Loaded Object Example:: Example of a loaded object
+@end menu
+
+@node load Directive, Remaking Loaded Objects, Loading Objects, Loading Objects
+@subsection The @code{load} Directive
+@cindex load directive
+@cindex extensions, load directive
+
+Objects are loaded into GNU @code{make} by placing the @code{load}
+directive into your makefile. The syntax of the @code{load} directive
+is as follows:
+
+@findex load
+@example
+load @var{object-file} @dots{}
+@end example
+
+or:
+
+@example
+load @var{object-file}(@var{symbol-name}) @dots{}
+@end example
+
+The file @var{object-file} is dynamically loaded by GNU @code{make}.
+If @var{object-file} does not include a directory path then it is
+first looked for in the current directory. If it is not found there,
+or a directory path is included, then system-specific paths will be
+searched. If the load fails for any reason, @code{make} will print a
+message and exit.
+
+If the load succeeds @code{make} will invoke an initializing function.
+
+If @var{symbol-name} is provided, it will be used as the name of the
+initializing function.
+
+If no @var{symbol-name} is provided, the initializing function name is
+created by taking the base file name of @var{object-file}, up to the
+first character which is not a valid symbol name character
+(alphanumerics and underscores are valid symbol name characters). To
+this prefix will be appended the suffix @code{_gmk_setup}.
+
+More than one object file may be loaded with a single @code{load}
+directive, and both forms of @code{load} arguments may be used in the
+same directive.
+
+The initializing function will be provided the file name and line
+number of the invocation of the @code{load} operation. It should
+return a value of type @code{int}, which must be @code{0} on failure
+and non-@code{0} on success. If the return value is @code{-1}, then
+GNU make will @emph{not} attempt to rebuild the object file
+(@pxref{Remaking Loaded Objects, ,How Loaded Objects Are Remade}).
+
+For example:
+
+@example
+load ../mk_funcs.so
+@end example
+
+will load the dynamic object @file{../mk_funcs.so}. After the object
+is loaded, @code{make} will invoke the function (assumed to be defined
+by the shared object) @code{mk_funcs_gmk_setup}.
+
+On the other hand:
+
+@example
+load ../mk_funcs.so(init_mk_func)
+@end example
+
+will load the dynamic object @file{../mk_funcs.so}. After the object
+is loaded, @code{make} will invoke the function @code{init_mk_func}.
+
+Regardless of how many times an object file appears in a @code{load}
+directive, it will only be loaded (and its setup function will only
+be invoked) once.
+
+@vindex .LOADED
+After an object has been successfully loaded, its file name is
+appended to the @code{.LOADED} variable.
+
+@findex -load
+If you would prefer that failure to load a dynamic object not be
+reported as an error, you can use the @code{-load} directive instead
+of @code{load}. GNU @code{make} will not fail and no message will be
+generated if an object fails to load. The failed object is not added
+to the @code{.LOADED} variable, which can then be consulted to
+determine if the load was successful.
+
+@node Remaking Loaded Objects, Loaded Object API, load Directive, Loading Objects
+@subsection How Loaded Objects Are Remade
+@cindex updating loaded objects
+@cindex remaking loaded objects
+@cindex loaded objects, remaking of
+
+Loaded objects undergo the same re-make procedure as makefiles
+(@pxref{Remaking Makefiles, ,How Makefiles Are Remade}). If any
+loaded object is recreated, then @code{make} will start from scratch
+and re-read all the makefiles, and reload the object files again. It
+is not necessary for the loaded object to do anything special to
+support this.@refill
+
+It's up to the makefile author to provide the rules needed for
+rebuilding the loaded object.
+
+@node Loaded Object API, Loaded Object Example, Remaking Loaded Objects, Loading Objects
+@subsection Loaded Object Interface
+@cindex loaded object API
+@cindex interface for loaded objects
+
+@cartouche
+@quotation Warning
+For this feature to be useful your extensions will need to invoke
+various functions internal to GNU @code{make}. The programming
+interfaces provided in this release should not be considered stable:
+functions may be added, removed, or change calling signatures or
+implementations in future versions of GNU @code{make}.
+@end quotation
+@end cartouche
+
+To be useful, loaded objects must be able to interact with GNU
+@code{make}. This interaction includes both interfaces the loaded
+object provides to makefiles and also interfaces @code{make} provides
+to the loaded object to manipulate @code{make}'s operation.
+
+The interface between loaded objects and @code{make} is defined by the
+@file{gnumake.h} C header file. All loaded objects written in C
+should include this header file. Any loaded object not written in C
+will need to implement the interface defined in this header file.
+
+Typically, a loaded object will register one or more new GNU
+@code{make} functions using the @code{gmk_add_function} routine from
+within its setup function. The implementations of these @code{make}
+functions may make use of the @code{gmk_expand} and @code{gmk_eval}
+routines to perform their tasks, then optionally return a string as
+the result of the function expansion.
+
+@subsubheading Loaded Object Licensing
+@cindex loaded object licensing
+@cindex plugin_is_GPL_compatible
+
+Every dynamic extension should define the global symbol
+@code{plugin_is_GPL_compatible} to assert that it has been licensed
+under a GPL-compatible license. If this symbol does not exist,
+@code{make} emits a fatal error and exits when it tries to load your
+extension.
+
+The declared type of the symbol should be @code{int}. It does not need
+to be in any allocated section, though. The code merely asserts that
+the symbol exists in the global scope. Something like this is enough:
+
+@example
+int plugin_is_GPL_compatible;
+@end example
+
+@subsubheading Data Structures
+
+@table @code
+@item gmk_floc
+This structure represents a filename/location pair. It is provided
+when defining items, so GNU @code{make} can inform the user later
+where the definition occurred if necessary.
+@end table
+
+@subsubheading Registering Functions
+@findex gmk_add_function
+
+There is currently one way for makefiles to invoke operations provided
+by the loaded object: through the @code{make} function call
+interface. A loaded object can register one or more new functions
+which may then be invoked from within the makefile in the same way as
+any other function.
+
+Use @code{gmk_add_function} to create a new @code{make} function. Its
+arguments are as follows:
+
+@table @code
+@item name
+The function name. This is what the makefile should use to invoke the
+function. The name must be between 1 and 255 characters long and it
+may only contain alphanumeric, period (@samp{.}), dash (@samp{-}), and
+underscore (@samp{_}) characters. It may not begin with a period.
+
+@item func_ptr
+A pointer to a function that @code{make} will invoke when it expands
+the function in a makefile. This function must be defined by the
+loaded object.
+
+@item min_args
+The minimum number of arguments the function will accept. Must be
+between 0 and 255. GNU @code{make} will check this and fail before
+invoking @code{func_ptr} if the function was invoked with too few
+arguments.
+
+@item max_args
+The maximum number of arguments the function will accept. Must be
+between 0 and 255. GNU @code{make} will check this and fail before
+invoking @code{func_ptr} if the function was invoked with too few
+arguments. If the value is 0, then any number of arguments is
+accepted. If the value is greater than 0, then it must be greater
+than or equal to @code{min_args}.
+
+@item flags
+Flags that specify how this function will operate; the desired flags
+should be OR'd together. If the @code{GMK_FUNC_NOEXPAND} flag is
+given then the function arguments will not be expanded before the
+function is called; otherwise they will be expanded first.
+@end table
+
+@subsubheading Registered Function Interface
+@findex gmk_func_ptr
+
+A function registered with @code{make} must match the
+@code{gmk_func_ptr} type. It will be invoked with three parameters:
+@code{name} (the name of the function), @code{argc} (the number of
+arguments to the function), and @code{argv} (an array of pointers to
+arguments to the function). The last pointer (that is,
+@code{argv[argc]}) will be null (@code{0}).
+
+The return value of the function is the result of expanding the
+function. If the function expands to nothing the return value may be
+null. Otherwise, it must be a pointer to a string created with
+@code{gmk_alloc}. Once the function returns, @code{make} owns this
+string and will free it when appropriate; it cannot be accessed by the
+loaded object.
+
+@subsubheading GNU @code{make} Facilities
+
+There are some facilities exported by GNU @code{make} for use by
+loaded objects. Typically these would be run from within the
+setup function and/or the functions registered via
+@code{gmk_add_function}, to retrieve or modify the data @code{make}
+works with.
+
+@table @code
+@item gmk_expand
+@findex gmk_expand
+This function takes a string and expands it using @code{make}
+expansion rules. The result of the expansion is returned in a
+nil-terminated string buffer. The caller is responsible for calling
+@code{gmk_free} with a pointer to the returned buffer when done.
+
+@item gmk_eval
+@findex gmk_eval
+This function takes a buffer and evaluates it as a segment of makefile
+syntax. This function can be used to define new variables, new rules,
+etc. It is equivalent to using the @code{eval} @code{make} function.
+@end table
+
+Note that there is a difference between @code{gmk_eval} and calling
+@code{gmk_expand} with a string using the @code{eval} function: in
+the latter case the string will be expanded @emph{twice}; once by
+@code{gmk_expand} and then again by the @code{eval} function. Using
+@code{gmk_eval} the buffer is only expanded once, at most (as it's
+read by the @code{make} parser).
+
+@subsubheading Memory Management
+
+Some systems allow for different memory management schemes. Thus you
+should never pass memory that you've allocated directly to any
+@code{make} function, nor should you attempt to directly free any
+memory returned to you by any @code{make} function. Instead, use the
+@code{gmk_alloc} and @code{gmk_free} functions.
+
+In particular, the string returned to @code{make} by a function
+registered using @code{gmk_add_function} @emph{must} be allocated
+using @code{gmk_alloc}, and the string returned from the @code{make}
+@code{gmk_expand} function @emph{must} be freed (when no longer
+needed) using @code{gmk_free}.
+
+@table @code
+@item gmk_alloc
+@findex gmk_alloc
+Return a pointer to a newly-allocated buffer. This function will
+always return a valid pointer; if not enough memory is available
+@code{make} will exit.
+
+@item gmk_free
+@findex gmk_free
+Free a buffer returned to you by @code{make}. Once the
+@code{gmk_free} function returns the string will no longer be valid.
+@end table
+
+@node Loaded Object Example, , Loaded Object API, Loading Objects
+@subsection Example Loaded Object
+@cindex loaded object example
+@cindex example of loaded objects
+
+Let's suppose we wanted to write a new GNU @code{make} function that
+would create a temporary file and return its name. We would like our
+function to take a prefix as an argument. First we can write the
+function in a file @file{mk_temp.c}:
+
+@example
+@group
+#include <stdlib.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include <gnumake.h>
+
+int plugin_is_GPL_compatible;
+
+char *
+gen_tmpfile(const char *nm, int argc, char **argv)
+@{
+ int fd;
+
+ /* Compute the size of the filename and allocate space for it. */
+ int len = strlen (argv[0]) + 6 + 1;
+ char *buf = gmk_alloc (len);
+
+ strcpy (buf, argv[0]);
+ strcat (buf, "XXXXXX");
+
+ fd = mkstemp(buf);
+ if (fd >= 0)
+ @{
+ /* Don't leak the file descriptor. */
+ close (fd);
+ return buf;
+ @}
+
+ /* Failure. */
+ fprintf (stderr, "mkstemp(%s) failed: %s\n", buf, strerror (errno));
+ gmk_free (buf);
+ return NULL;
+@}
+
+int
+mk_temp_gmk_setup ()
+@{
+ /* Register the function with make name "mk-temp". */
+ gmk_add_function ("mk-temp", gen_tmpfile, 1, 1, 1);
+ return 1;
+@}
+@end group
+@end example
+
+Next, we will write a makefile that can build this shared object, load
+it, and use it:
+
+@example
+@group
+all:
+ @@echo Temporary file: $(mk-temp tmpfile.)
+
+load mk_temp.so
+
+mk_temp.so: mk_temp.c
+ $(CC) -shared -fPIC -o $@ $<
+@end group
+@end example
+
+On MS-Windows, due to peculiarities of how shared objects are
+produced, the compiler needs to scan the @dfn{import library} produced
+when building @code{make}, typically called
+@file{libgnumake-@var{version}.dll.a}, where @var{version} is the
+version of the load object API. So the recipe to produce a shared
+object will look on Windows like this (assuming the API version is 1):
+
+@example
+@group
+mk_temp.dll: mk_temp.c
+ $(CC) -shared -o $@ $< -lgnumake-1
+@end group
+@end example
+
+Now when you run @code{make} you'll see something like:
+
+@example
+$ make
+cc -shared -fPIC -o mk_temp.so mk_temp.c
+Temporary filename: tmpfile.A7JEwd
+@end example
+
+@node Features, Missing, Extending make, Top
@chapter Features of GNU @code{make}
@cindex features of GNU @code{make}
@cindex portability
@@ -10349,7 +11382,7 @@ Implicit Rules}) allows one pattern rule for installing members in an
archive (@pxref{Archive Update}) to be sufficient.
@item
-The arrangement of lines and backslash-newline combinations in
+The arrangement of lines and backslash/newline combinations in
recipes is retained when the recipes are printed, so they appear as
they do in the makefile, except for the stripping of initial
whitespace.
@@ -10392,6 +11425,11 @@ many incarnations of @code{make} and similar programs, though not in the
System V or BSD implementations. @xref{Execution, ,Recipe Execution}.
@item
+A number of different build tools that support parallelism also
+support collecting output and displaying as a single block.
+@xref{Parallel Output, ,Output During Parallel Execution}.
+
+@item
Modified variable references using pattern substitution come from
SunOS 4. @xref{Reference, ,Basics of Variable References}.
This functionality was provided in GNU @code{make} by the
@@ -10420,6 +11458,17 @@ nonexistent file comes from SunOS 4 @code{make}. (But note that SunOS 4
@code{make} does not allow multiple makefiles to be specified in one
@code{-include} directive.) The same feature appears with the name
@code{sinclude} in SGI @code{make} and perhaps others.
+
+@item
+The @code{!=} shell assignment operator exists in many BSD of
+@code{make} and is purposefully implemented here to behave identically
+to those implementations.
+
+@item
+Various build management tools are implemented using scripting
+languages such as Perl or Python and thus provide a natural embedded
+scripting language, similar to GNU @code{make}'s integration of GNU
+Guile.
@end itemize
The remaining features are inventions new in GNU @code{make}:
@@ -10526,9 +11575,8 @@ Various new built-in implicit rules.
@xref{Catalogue of Rules, ,Catalogue of Implicit Rules}.
@item
-The built-in variable @samp{MAKE_VERSION} gives the version number of
-@code{make}.
-@vindex MAKE_VERSION
+Load dynamic objects which can modify the behavior of @code{make}.
+@xref{Loading Objects, ,Loading Dynamic Objects}.
@end itemize
@node Missing, Makefile Conventions, Features, Top
@@ -10549,7 +11597,7 @@ of archive file @var{file}. The member is chosen, not by name, but by
being an object file which defines the linker symbol @var{entry}.@refill
This feature was not put into GNU @code{make} because of the
-nonmodularity of putting knowledge into @code{make} of the internal
+non-modularity of putting knowledge into @code{make} of the internal
format of archive file symbol tables.
@xref{Archive Symbols, ,Updating Archive Symbol Directories}.
@@ -10657,6 +11705,7 @@ Here is a summary of the directives GNU @code{make} recognizes:
@item define @var{variable}
@itemx define @var{variable} =
@itemx define @var{variable} :=
+@itemx define @var{variable} ::=
@itemx define @var{variable} +=
@itemx define @var{variable} ?=
@itemx endef
@@ -10871,6 +11920,11 @@ Evaluate @var{text} then read the results as makefile commands.
Expands to the empty string.@*
@xref{Eval Function, ,The @code{eval} Function}.
+@item $(file @var{op} @var{filename},@var{text})
+Expand the arguments, then open the file @var{filename} using mode
+@var{op} and write @var{text} to that file.@*
+@xref{File Function, ,The @code{file} Function}.
+
@item $(value @var{var})
Evaluates to the contents of the variable @var{var}, with no expansion
performed on it.@*
@@ -10970,6 +12024,18 @@ The name with which @code{make} was invoked. Using this variable in
recipes has special meaning. @xref{MAKE Variable, ,How the
@code{MAKE} Variable Works}.
+@item MAKE_VERSION
+
+The built-in variable @samp{MAKE_VERSION} expands to the version
+number of the GNU @code{make} program.
+@vindex MAKE_VERSION
+
+@item MAKE_HOST
+
+The built-in variable @samp{MAKE_HOST} expands to a string
+representing the host that GNU @code{make} was built to run on.
+@vindex MAKE_HOST
+
@item MAKELEVEL
The number of levels of recursion (sub-@code{make}s).@*
@@ -10986,6 +12052,17 @@ recipe line: its contents may not be quoted correctly for use in the
shell. Always allow recursive @code{make}'s to obtain these values
through the environment from its parent.
+@item GNUMAKEFLAGS
+
+Other flags parsed by @code{make}. You can set this in the environment or
+a makefile to set @code{make} command-line flags. GNU @code{make}
+never sets this variable itself. This variable is only needed if
+you'd like to set GNU @code{make}-specific flags in a POSIX-compliant
+makefile. This variable will be seen by GNU @code{make} and ignored
+by other @code{make} implementations. It's not needed if you only use
+GNU @code{make}; just use @code{MAKEFLAGS} directly.
+@xref{Options/Recursion, ,Communicating Options to a Sub-@code{make}}.
+
@item MAKECMDGOALS
The targets given to @code{make} on the command line. Setting this
@@ -11024,7 +12101,7 @@ option. Errors that are fatal are prefixed with the string
Error messages are all either prefixed with the name of the program
(usually @samp{make}), or, if the error is found in a makefile, the name
-of the file and linenumber containing the problem.
+of the file and line number containing the problem.
In the table below, these common prefixes are left off.
@@ -11038,7 +12115,7 @@ non-0 error code (@samp{Error @var{NN}}), which @code{make} interprets
as failure, or it exited in some other abnormal fashion (with a
signal of some type). @xref{Errors, ,Errors in Recipes}.
-If no @code{***} is attached to the message, then the subprocess failed
+If no @code{***} is attached to the message, then the sub-process failed
but the rule in the makefile was prefixed with the @code{-} special
character, so @code{make} ignored the error.
@@ -11078,7 +12155,7 @@ either explicit or implicit (including in the default rules database).
If you want that file to be built, you will need to add a rule to your
makefile describing how that target can be built. Other possible
-sources of this problem are typos in the makefile (if that filename is
+sources of this problem are typos in the makefile (if that file name is
wrong) or a corrupted source tree (if that file is not supposed to be
built, but rather only a prerequisite).
@@ -11112,9 +12189,9 @@ prerequisites, etc., one of them depended on @var{xxx} again.
@item Recursive variable `@var{xxx}' references itself (eventually). Stop.
This means you've defined a normal (recursive) @code{make} variable
@var{xxx} that, when it's expanded, will refer to itself (@var{xxx}).
-This is not allowed; either use simply-expanded variables (@code{:=}) or
-use the append operator (@code{+=}). @xref{Using Variables, ,How to Use
-Variables}.
+This is not allowed; either use simply-expanded variables (@samp{:=}
+or @samp{::=}) or use the append operator (@samp{+=}). @xref{Using
+Variables, ,How to Use Variables}.
@item Unterminated variable reference. Stop.
This means you forgot to provide the proper closing parenthesis
@@ -11129,12 +12206,15 @@ of its arguments. @xref{Functions, ,Functions for Transforming Text}.
@itemx multiple target patterns. Stop.
@itemx target pattern contains no `%'. Stop.
@itemx mixed implicit and static pattern rules. Stop.
-These are generated for malformed static pattern rules. The first means
-there's no pattern in the target section of the rule; the second means
-there are multiple patterns in the target section; the third means
-the target doesn't contain a pattern character (@code{%}); and the
-fourth means that all three parts of the static pattern rule contain
-pattern characters (@code{%})--only the first two parts should.
+These are generated for malformed static pattern rules. The first
+means there's no pattern in the target section of the rule; the second
+means there are multiple patterns in the target section; the third
+means the target doesn't contain a pattern character (@code{%}); and
+the fourth means that all three parts of the static pattern rule
+contain pattern characters (@code{%})--only the first two parts
+should. If you see these errors and you aren't trying to create a
+static pattern rule, check the value of any variables in your target
+and prerequisite lists to be sure they do not contain colons.
@xref{Static Usage, ,Syntax of Static Pattern Rules}.
@item warning: -jN forced in submake: disabling jobserver mode.
@@ -11167,7 +12247,8 @@ sequential manner.
@appendix Complex Makefile Example
Here is the makefile for the GNU @code{tar} program. This is a
-moderately complex makefile.
+moderately complex makefile. The first line uses a @code{#!} setting
+to allow the makefile to be executed directly.
Because it is the first target, the default goal is @samp{all}. An
interesting feature of this makefile is that @file{testpad.h} is a
@@ -11203,6 +12284,7 @@ distribution kits.
@example
@group
+#!/usr/bin/make -f
# Generated automatically from Makefile.in by configure.
# Un*x Makefile for GNU tar program.
# Copyright (C) 1991 Free Software Foundation, Inc.
diff --git a/doc/stamp-vti b/doc/stamp-vti
index aac448b..047ad02 100644
--- a/doc/stamp-vti
+++ b/doc/stamp-vti
@@ -1,4 +1,4 @@
-@set UPDATED 19 July 2010
-@set UPDATED-MONTH July 2010
-@set EDITION 3.82
-@set VERSION 3.82
+@set UPDATED 9 October 2013
+@set UPDATED-MONTH October 2013
+@set EDITION 4.0
+@set VERSION 4.0
diff --git a/doc/version.texi b/doc/version.texi
index aac448b..047ad02 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,4 +1,4 @@
-@set UPDATED 19 July 2010
-@set UPDATED-MONTH July 2010
-@set EDITION 3.82
-@set VERSION 3.82
+@set UPDATED 9 October 2013
+@set UPDATED-MONTH October 2013
+@set EDITION 4.0
+@set VERSION 4.0
diff --git a/dosbuild.bat b/dosbuild.bat
index c911e18..4091463 100644
--- a/dosbuild.bat
+++ b/dosbuild.bat
@@ -1,6 +1,5 @@
@echo off
-rem Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-rem 2008, 2009, 2010 Free Software Foundation, Inc.
+rem Copyright (C) 1998-2013 Free Software Foundation, Inc.
rem This file is part of GNU Make.
rem
rem GNU Make is free software; you can redistribute it and/or modify it under
@@ -21,6 +20,7 @@ echo Building Make for MSDOS
rem Echo ON so they will see what is going on.
@echo on
gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g commands.c -o commands.o
+gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g output.c -o output.o
gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g job.c -o job.o
gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g dir.c -o dir.o
gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g file.c -o file.o
@@ -52,9 +52,11 @@ ar rv libglob.a glob.o fnmatch.o
@echo off
cd ..
echo commands.o > respf.$$$
-for %%f in (job dir file misc main read remake rule implicit default variable) do echo %%f.o >> respf.$$$
+for %%f in (job output dir file misc main read remake rule implicit default variable) do echo %%f.o >> respf.$$$
for %%f in (expand function vpath hash strcache version ar arscan signame remote-stub getopt getopt1) do echo %%f.o >> respf.$$$
echo glob/libglob.a >> respf.$$$
+rem gcc -c -I. -I./glob -DHAVE_CONFIG_H -O2 -g guile.c -o guile.o
+rem echo guile.o >> respf.$$$
@echo Linking...
@echo on
gcc -o make.new @respf.$$$
diff --git a/expand.c b/expand.c
index 2315b06..ba04e48 100644
--- a/expand.c
+++ b/expand.c
@@ -1,7 +1,5 @@
/* Variable expansion functions for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,7 +14,7 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
#include <assert.h>
@@ -28,7 +26,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Initially, any errors reported when expanding strings will be reported
against the file where the error appears. */
-const struct floc **expanding_var = &reading_file;
+const gmk_floc **expanding_var = &reading_file;
/* The next two describe the variable output buffer.
This buffer is used to hold the variable-expansion of a line of the
@@ -63,8 +61,8 @@ variable_buffer_output (char *ptr, const char *string, unsigned int length)
{
unsigned int offset = ptr - variable_buffer;
variable_buffer_length = (newlen + 100 > 2 * variable_buffer_length
- ? newlen + 100
- : 2 * variable_buffer_length);
+ ? newlen + 100
+ : 2 * variable_buffer_length);
variable_buffer = xrealloc (variable_buffer, variable_buffer_length);
ptr = variable_buffer + offset;
}
@@ -98,8 +96,8 @@ char *
recursively_expand_for_file (struct variable *v, struct file *file)
{
char *value;
- const struct floc *this_var;
- const struct floc **saved_varp;
+ const gmk_floc *this_var;
+ const gmk_floc **saved_varp;
struct variable_set_list *save = 0;
int set_reading = 0;
@@ -124,7 +122,7 @@ recursively_expand_for_file (struct variable *v, struct file *file)
if (!v->exp_count)
/* Expanding V causes infinite recursion. Lose. */
fatal (*expanding_var,
- _("Recursive variable `%s' references itself (eventually)"),
+ _("Recursive variable '%s' references itself (eventually)"),
v->name);
--v->exp_count;
}
@@ -187,7 +185,7 @@ reference_variable (char *o, const char *name, unsigned int length)
LENGTH bytes of STRING are actually scanned. If LENGTH is -1, scan until
a null byte is found.
- Write the results to LINE, which must point into `variable_buffer'. If
+ Write the results to LINE, which must point into 'variable_buffer'. If
LINE is NULL, start at the beginning of the buffer.
Return a pointer to LINE, or to the beginning of the buffer if LINE is
NULL.
@@ -197,12 +195,12 @@ variable_expand_string (char *line, const char *string, long length)
{
struct variable *v;
const char *p, *p1;
- char *abuf = NULL;
+ char *save;
char *o;
unsigned int line_offset;
if (!line)
- line = initialize_variable_output();
+ line = initialize_variable_output ();
o = line;
line_offset = line - variable_buffer;
@@ -212,133 +210,126 @@ variable_expand_string (char *line, const char *string, long length)
return (variable_buffer);
}
- /* If we want a subset of the string, allocate a temporary buffer for it.
- Most of the functions we use here don't work with length limits. */
- if (length > 0 && string[length] != '\0')
- {
- abuf = xmalloc(length+1);
- memcpy(abuf, string, length);
- abuf[length] = '\0';
- string = abuf;
- }
- p = string;
+ /* We need a copy of STRING: due to eval, it's possible that it will get
+ freed as we process it (it might be the value of a variable that's reset
+ for example). Also having a nil-terminated string is handy. */
+ save = length < 0 ? xstrdup (string) : xstrndup (string, length);
+ p = save;
while (1)
{
/* Copy all following uninteresting chars all at once to the
variable output buffer, and skip them. Uninteresting chars end
- at the next $ or the end of the input. */
+ at the next $ or the end of the input. */
p1 = strchr (p, '$');
o = variable_buffer_output (o, p, p1 != 0 ? (unsigned int)(p1 - p) : strlen (p) + 1);
if (p1 == 0)
- break;
+ break;
p = p1 + 1;
/* Dispatch on the char that follows the $. */
switch (*p)
- {
- case '$':
- /* $$ seen means output one $ to the variable output buffer. */
- o = variable_buffer_output (o, p, 1);
- break;
-
- case '(':
- case '{':
- /* $(...) or ${...} is the general case of substitution. */
- {
- char openparen = *p;
- char closeparen = (openparen == '(') ? ')' : '}';
+ {
+ case '$':
+ /* $$ seen means output one $ to the variable output buffer. */
+ o = variable_buffer_output (o, p, 1);
+ break;
+
+ case '(':
+ case '{':
+ /* $(...) or ${...} is the general case of substitution. */
+ {
+ char openparen = *p;
+ char closeparen = (openparen == '(') ? ')' : '}';
const char *begp;
- const char *beg = p + 1;
- char *op;
+ const char *beg = p + 1;
+ char *op;
char *abeg = NULL;
- const char *end, *colon;
-
- op = o;
- begp = p;
- if (handle_function (&op, &begp))
- {
- o = op;
- p = begp;
- break;
- }
-
- /* Is there a variable reference inside the parens or braces?
- If so, expand it before expanding the entire reference. */
-
- end = strchr (beg, closeparen);
- if (end == 0)
+ const char *end, *colon;
+
+ op = o;
+ begp = p;
+ if (handle_function (&op, &begp))
+ {
+ o = op;
+ p = begp;
+ break;
+ }
+
+ /* Is there a variable reference inside the parens or braces?
+ If so, expand it before expanding the entire reference. */
+
+ end = strchr (beg, closeparen);
+ if (end == 0)
/* Unterminated variable reference. */
fatal (*expanding_var, _("unterminated variable reference"));
- p1 = lindex (beg, end, '$');
- if (p1 != 0)
- {
- /* BEG now points past the opening paren or brace.
- Count parens or braces until it is matched. */
- int count = 0;
- for (p = beg; *p != '\0'; ++p)
- {
- if (*p == openparen)
- ++count;
- else if (*p == closeparen && --count < 0)
- break;
- }
- /* If COUNT is >= 0, there were unmatched opening parens
- or braces, so we go to the simple case of a variable name
- such as `$($(a)'. */
- if (count < 0)
- {
- abeg = expand_argument (beg, p); /* Expand the name. */
- beg = abeg;
- end = strchr (beg, '\0');
- }
- }
- else
- /* Advance P to the end of this reference. After we are
+ p1 = lindex (beg, end, '$');
+ if (p1 != 0)
+ {
+ /* BEG now points past the opening paren or brace.
+ Count parens or braces until it is matched. */
+ int count = 0;
+ for (p = beg; *p != '\0'; ++p)
+ {
+ if (*p == openparen)
+ ++count;
+ else if (*p == closeparen && --count < 0)
+ break;
+ }
+ /* If COUNT is >= 0, there were unmatched opening parens
+ or braces, so we go to the simple case of a variable name
+ such as '$($(a)'. */
+ if (count < 0)
+ {
+ abeg = expand_argument (beg, p); /* Expand the name. */
+ beg = abeg;
+ end = strchr (beg, '\0');
+ }
+ }
+ else
+ /* Advance P to the end of this reference. After we are
finished expanding this one, P will be incremented to
continue the scan. */
- p = end;
-
- /* This is not a reference to a built-in function and
- any variable references inside are now expanded.
- Is the resultant text a substitution reference? */
-
- colon = lindex (beg, end, ':');
- if (colon)
- {
- /* This looks like a substitution reference: $(FOO:A=B). */
- const char *subst_beg, *subst_end, *replace_beg, *replace_end;
-
- subst_beg = colon + 1;
- subst_end = lindex (subst_beg, end, '=');
- if (subst_end == 0)
- /* There is no = in sight. Punt on the substitution
- reference and treat this as a variable name containing
- a colon, in the code below. */
- colon = 0;
- else
- {
- replace_beg = subst_end + 1;
- replace_end = end;
-
- /* Extract the variable name before the colon
- and look up that variable. */
- v = lookup_variable (beg, colon - beg);
- if (v == 0)
- warn_undefined (beg, colon - beg);
+ p = end;
+
+ /* This is not a reference to a built-in function and
+ any variable references inside are now expanded.
+ Is the resultant text a substitution reference? */
+
+ colon = lindex (beg, end, ':');
+ if (colon)
+ {
+ /* This looks like a substitution reference: $(FOO:A=B). */
+ const char *subst_beg = colon + 1;
+ const char *subst_end = lindex (subst_beg, end, '=');
+ if (subst_end == 0)
+ /* There is no = in sight. Punt on the substitution
+ reference and treat this as a variable name containing
+ a colon, in the code below. */
+ colon = 0;
+ else
+ {
+ const char *replace_beg = subst_end + 1;
+ const char *replace_end = end;
+
+ /* Extract the variable name before the colon
+ and look up that variable. */
+ v = lookup_variable (beg, colon - beg);
+ if (v == 0)
+ warn_undefined (beg, colon - beg);
/* If the variable is not empty, perform the
substitution. */
- if (v != 0 && *v->value != '\0')
- {
- char *pattern, *replace, *ppercent, *rpercent;
- char *value = (v->recursive
+ if (v != 0 && *v->value != '\0')
+ {
+ char *pattern, *replace, *ppercent, *rpercent;
+ char *value = (v->recursive
? recursively_expand (v)
- : v->value);
+ : v->value);
/* Copy the pattern and the replacement. Add in an
extra % at the beginning to use in case there
@@ -356,15 +347,15 @@ variable_expand_string (char *line, const char *string, long length)
/* Look for %. Set the percent pointers properly
based on whether we find one or not. */
- ppercent = find_percent (pattern);
- if (ppercent)
+ ppercent = find_percent (pattern);
+ if (ppercent)
{
++ppercent;
rpercent = find_percent (replace);
if (rpercent)
++rpercent;
}
- else
+ else
{
ppercent = pattern;
rpercent = replace;
@@ -375,64 +366,63 @@ variable_expand_string (char *line, const char *string, long length)
o = patsubst_expand_pat (o, value, pattern, replace,
ppercent, rpercent);
- if (v->recursive)
- free (value);
- }
- }
- }
+ if (v->recursive)
+ free (value);
+ }
+ }
+ }
- if (colon == 0)
- /* This is an ordinary variable reference.
- Look up the value of the variable. */
- o = reference_variable (o, beg, end - beg);
+ if (colon == 0)
+ /* This is an ordinary variable reference.
+ Look up the value of the variable. */
+ o = reference_variable (o, beg, end - beg);
- if (abeg)
- free (abeg);
- }
- break;
+ if (abeg)
+ free (abeg);
+ }
+ break;
- case '\0':
- break;
+ case '\0':
+ break;
- default:
- if (isblank ((unsigned char)p[-1]))
- break;
+ default:
+ if (isblank ((unsigned char)p[-1]))
+ break;
- /* A $ followed by a random char is a variable reference:
- $a is equivalent to $(a). */
+ /* A $ followed by a random char is a variable reference:
+ $a is equivalent to $(a). */
o = reference_variable (o, p, 1);
- break;
- }
+ break;
+ }
if (*p == '\0')
- break;
+ break;
++p;
}
- if (abuf)
- free (abuf);
+ free (save);
variable_buffer_output (o, "", 1);
return (variable_buffer + line_offset);
}
/* Scan LINE for variable references and expansion-function calls.
- Build in `variable_buffer' the result of expanding the references and calls.
+ Build in 'variable_buffer' the result of expanding the references and calls.
Return the address of the resulting string, which is null-terminated
and is valid only until the next time this function is called. */
char *
variable_expand (const char *line)
{
- return variable_expand_string(NULL, line, (long)-1);
+ return variable_expand_string (NULL, line, (long)-1);
}
/* Expand an argument for an expansion function.
The text starting at STR and ending at END is variable-expanded
into a null-terminated string that is returned as the value.
- This is done without clobbering `variable_buffer' or the current
+ This is done without clobbering 'variable_buffer' or the current
variable-expansion that is in progress. */
char *
@@ -442,7 +432,7 @@ expand_argument (const char *str, const char *end)
char *r;
if (str == end)
- return xstrdup("");
+ return xstrdup ("");
if (!end || *end == '\0')
return allocated_variable_expand (str);
@@ -471,7 +461,7 @@ variable_expand_for_file (const char *line, struct file *file)
{
char *result;
struct variable_set_list *savev;
- const struct floc *savef;
+ const gmk_floc *savef;
if (file == 0)
return variable_expand (line);
@@ -499,10 +489,12 @@ variable_expand_for_file (const char *line, struct file *file)
static char *
variable_append (const char *name, unsigned int length,
- const struct variable_set_list *set)
+ const struct variable_set_list *set, int local)
{
const struct variable *v;
char *buf = 0;
+ /* If this set is local and the next is not a parent, then next is local. */
+ int nextlocal = local && set->next_is_parent == 0;
/* If there's nothing left to check, return the empty buffer. */
if (!set)
@@ -511,14 +503,14 @@ variable_append (const char *name, unsigned int length,
/* Try to find the variable in this variable set. */
v = lookup_variable_in_set (name, length, set->set);
- /* If there isn't one, look to see if there's one in a set above us. */
- if (!v)
- return variable_append (name, length, set->next);
+ /* If there isn't one, or this one is private, try the set above us. */
+ if (!v || (!local && v->private_var))
+ return variable_append (name, length, set->next, nextlocal);
/* If this variable type is append, first get any upper values.
If not, initialize the buffer. */
if (v->append)
- buf = variable_append (name, length, set->next);
+ buf = variable_append (name, length, set->next, nextlocal);
else
buf = initialize_variable_output ();
@@ -548,7 +540,8 @@ allocated_variable_append (const struct variable *v)
variable_buffer = 0;
- val = variable_append (v->name, strlen (v->name), current_variable_set_list);
+ val = variable_append (v->name, strlen (v->name),
+ current_variable_set_list, 1);
variable_buffer_output (val, "", 1);
val = variable_buffer;
diff --git a/file.c b/file.c
index 0a4edb2..b209d88 100644
--- a/file.c
+++ b/file.c
@@ -1,7 +1,5 @@
/* Target file management for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,12 +14,12 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
#include <assert.h>
-#include "dep.h"
#include "filedef.h"
+#include "dep.h"
#include "job.h"
#include "commands.h"
#include "variable.h"
@@ -56,11 +54,11 @@ static int
file_hash_cmp (const void *x, const void *y)
{
return_ISTRING_COMPARE (((struct file const *) x)->hname,
- ((struct file const *) y)->hname);
+ ((struct file const *) y)->hname);
}
-#ifndef FILE_BUCKETS
-#define FILE_BUCKETS 1007
+#ifndef FILE_BUCKETS
+#define FILE_BUCKETS 1007
#endif
static struct hash_table files;
@@ -105,20 +103,20 @@ lookup_file (const char *name)
#endif
while (name[0] == '.'
#ifdef HAVE_DOS_PATHS
- && (name[1] == '/' || name[1] == '\\')
+ && (name[1] == '/' || name[1] == '\\')
#else
- && name[1] == '/'
+ && name[1] == '/'
#endif
- && name[2] != '\0')
+ && name[2] != '\0')
{
name += 2;
while (*name == '/'
#ifdef HAVE_DOS_PATHS
- || *name == '\\'
+ || *name == '\\'
#endif
- )
- /* Skip following slashes: ".//foo" is "foo", not "/foo". */
- ++name;
+ )
+ /* Skip following slashes: ".//foo" is "foo", not "/foo". */
+ ++name;
}
if (*name == '\0')
@@ -155,7 +153,7 @@ enter_file (const char *name)
struct file file_key;
assert (*name != '\0');
- assert (strcache_iscached (name));
+ assert (! verify_flag || strcache_iscached (name));
#if defined(VMS) && !defined(WANT_CASE_SENSITIVE_TARGETS)
if (*name != '.')
@@ -179,11 +177,14 @@ enter_file (const char *name)
file_slot = (struct file **) hash_find_slot (&files, &file_key);
f = *file_slot;
if (! HASH_VACANT (f) && !f->double_colon)
- return f;
+ {
+ f->builtin = 0;
+ return f;
+ }
new = xcalloc (sizeof (struct file));
new->name = new->hname = name;
- new->update_status = -1;
+ new->update_status = us_none;
if (HASH_VACANT (f))
{
@@ -202,7 +203,7 @@ enter_file (const char *name)
}
/* Rehash FILE to NAME. This is not as simple as resetting
- the `hname' member, since it must be put in a new hash bucket,
+ the 'hname' member, since it must be put in a new hash bucket,
and possibly merged with an existing file called NAME. */
void
@@ -215,6 +216,7 @@ rehash_file (struct file *from_file, const char *to_hname)
struct file *f;
/* If it's already that name, we're done. */
+ from_file->builtin = 0;
file_key.hname = to_hname;
if (! file_hash_cmp (from_file, &file_key))
return;
@@ -264,18 +266,18 @@ rehash_file (struct file *from_file, const char *to_hname)
but give a message to let the user know what's going on. */
if (to_file->cmds->fileinfo.filenm != 0)
error (&from_file->cmds->fileinfo,
- _("Recipe was specified for file `%s' at %s:%lu,"),
+ _("Recipe was specified for file '%s' at %s:%lu,"),
from_file->name, to_file->cmds->fileinfo.filenm,
to_file->cmds->fileinfo.lineno);
else
error (&from_file->cmds->fileinfo,
- _("Recipe for file `%s' was found by implicit rule search,"),
+ _("Recipe for file '%s' was found by implicit rule search,"),
from_file->name);
error (&from_file->cmds->fileinfo,
- _("but `%s' is now considered the same file as `%s'."),
+ _("but '%s' is now considered the same file as '%s'."),
from_file->name, to_hname);
error (&from_file->cmds->fileinfo,
- _("Recipe for `%s' will be ignored in favor of the one for `%s'."),
+ _("Recipe for '%s' will be ignored in favor of the one for '%s'."),
to_hname, from_file->name);
}
}
@@ -295,12 +297,12 @@ rehash_file (struct file *from_file, const char *to_hname)
merge_variable_set_lists (&to_file->variables, from_file->variables);
if (to_file->double_colon && from_file->is_target && !from_file->double_colon)
- fatal (NILF, _("can't rename single-colon `%s' to double-colon `%s'"),
+ fatal (NILF, _("can't rename single-colon '%s' to double-colon '%s'"),
from_file->name, to_hname);
if (!to_file->double_colon && from_file->double_colon)
{
if (to_file->is_target)
- fatal (NILF, _("can't rename double-colon `%s' to single-colon `%s'"),
+ fatal (NILF, _("can't rename double-colon '%s' to single-colon '%s'"),
from_file->name, to_hname);
else
to_file->double_colon = from_file->double_colon;
@@ -320,14 +322,16 @@ rehash_file (struct file *from_file, const char *to_hname)
MERGE (is_target);
MERGE (cmd_target);
MERGE (phony);
+ MERGE (loaded);
MERGE (ignore_vpath);
#undef MERGE
+ to_file->builtin = 0;
from_file->renamed = to_file;
}
/* Rename FILE to NAME. This is not as simple as resetting
- the `name' member, since it must be put in a new hash bucket,
+ the 'name' member, since it must be put in a new hash bucket,
and possibly merged with an existing file called NAME. */
void
@@ -365,52 +369,52 @@ remove_intermediates (int sig)
for ( ; file_slot < file_end; file_slot++)
if (! HASH_VACANT (*file_slot))
{
- struct file *f = *file_slot;
+ struct file *f = *file_slot;
/* Is this file eligible for automatic deletion?
Yes, IFF: it's marked intermediate, it's not secondary, it wasn't
given on the command line, and it's either a -include makefile or
it's not precious. */
- if (f->intermediate && (f->dontcare || !f->precious)
- && !f->secondary && !f->cmd_target)
- {
- int status;
- if (f->update_status == -1)
- /* If nothing would have created this file yet,
- don't print an "rm" command for it. */
- continue;
- if (just_print_flag)
- status = 0;
- else
- {
- status = unlink (f->name);
- if (status < 0 && errno == ENOENT)
- continue;
- }
- if (!f->dontcare)
- {
- if (sig)
- error (NILF, _("*** Deleting intermediate file `%s'"), f->name);
- else
- {
- if (! doneany)
- DB (DB_BASIC, (_("Removing intermediate files...\n")));
- if (!silent_flag)
- {
- if (! doneany)
- {
- fputs ("rm ", stdout);
- doneany = 1;
- }
- else
- putchar (' ');
- fputs (f->name, stdout);
- fflush (stdout);
- }
- }
- if (status < 0)
- perror_with_name ("unlink: ", f->name);
- }
- }
+ if (f->intermediate && (f->dontcare || !f->precious)
+ && !f->secondary && !f->cmd_target)
+ {
+ int status;
+ if (f->update_status == us_none)
+ /* If nothing would have created this file yet,
+ don't print an "rm" command for it. */
+ continue;
+ if (just_print_flag)
+ status = 0;
+ else
+ {
+ status = unlink (f->name);
+ if (status < 0 && errno == ENOENT)
+ continue;
+ }
+ if (!f->dontcare)
+ {
+ if (sig)
+ error (NILF, _("*** Deleting intermediate file '%s'"), f->name);
+ else
+ {
+ if (! doneany)
+ DB (DB_BASIC, (_("Removing intermediate files...\n")));
+ if (!silent_flag)
+ {
+ if (! doneany)
+ {
+ fputs ("rm ", stdout);
+ doneany = 1;
+ }
+ else
+ putchar (' ');
+ fputs (f->name, stdout);
+ fflush (stdout);
+ }
+ }
+ if (status < 0)
+ perror_with_name ("unlink: ", f->name);
+ }
+ }
}
if (doneany && !sig)
@@ -426,7 +430,8 @@ remove_intermediates (int sig)
struct dep *
split_prereqs (char *p)
{
- struct dep *new = PARSE_FILE_SEQ (&p, struct dep, '|', NULL, 0);
+ struct dep *new = PARSE_FILE_SEQ (&p, struct dep, MAP_PIPE, NULL,
+ PARSEFS_NONE);
if (*p)
{
@@ -435,7 +440,7 @@ split_prereqs (char *p)
struct dep *ood;
++p;
- ood = PARSE_FILE_SEQ (&p, struct dep, '\0', NULL, 0);
+ ood = PARSE_SIMPLE_SEQ (&p, struct dep);
if (! new)
new = ood;
@@ -575,12 +580,11 @@ expand_deps (struct file *f)
"$*" so they'll expand properly. */
if (d->staticpattern)
{
- char *o;
- d->name = o = variable_expand ("");
+ char *o = variable_expand ("");
o = subst_expand (o, name, "%", "$*", 1, 2, 0);
*o = '\0';
free (name);
- d->name = name = xstrdup (d->name);
+ d->name = name = xstrdup (variable_buffer);
d->staticpattern = 0;
}
@@ -637,8 +641,8 @@ reset_updating (const void *item)
f->updating = 0;
}
-/* For each dependency of each file, make the `struct dep' point
- at the appropriate `struct file' (which may have to be created).
+/* For each dependency of each file, make the 'struct dep' point
+ at the appropriate 'struct file' (which may have to be created).
Also mark the files depended on by .PRECIOUS, .PHONY, .SILENT,
and various other special targets. */
@@ -693,23 +697,23 @@ snap_deps (void)
for (f = lookup_file (".PRECIOUS"); f != 0; f = f->prev)
for (d = f->deps; d != 0; d = d->next)
for (f2 = d->file; f2 != 0; f2 = f2->prev)
- f2->precious = 1;
+ f2->precious = 1;
for (f = lookup_file (".LOW_RESOLUTION_TIME"); f != 0; f = f->prev)
for (d = f->deps; d != 0; d = d->next)
for (f2 = d->file; f2 != 0; f2 = f2->prev)
- f2->low_resolution_time = 1;
+ f2->low_resolution_time = 1;
for (f = lookup_file (".PHONY"); f != 0; f = f->prev)
for (d = f->deps; d != 0; d = d->next)
for (f2 = d->file; f2 != 0; f2 = f2->prev)
- {
- /* Mark this file as phony nonexistent target. */
- f2->phony = 1;
+ {
+ /* Mark this file as phony nonexistent target. */
+ f2->phony = 1;
f2->is_target = 1;
- f2->last_mtime = NONEXISTENT_MTIME;
- f2->mtime_before_update = NONEXISTENT_MTIME;
- }
+ f2->last_mtime = NONEXISTENT_MTIME;
+ f2->mtime_before_update = NONEXISTENT_MTIME;
+ }
for (f = lookup_file (".INTERMEDIATE"); f != 0; f = f->prev)
/* Mark .INTERMEDIATE deps as intermediate files. */
@@ -741,22 +745,22 @@ snap_deps (void)
if (f != 0 && f->is_target)
{
if (f->deps == 0)
- ignore_errors_flag = 1;
+ ignore_errors_flag = 1;
else
- for (d = f->deps; d != 0; d = d->next)
- for (f2 = d->file; f2 != 0; f2 = f2->prev)
- f2->command_flags |= COMMANDS_NOERROR;
+ for (d = f->deps; d != 0; d = d->next)
+ for (f2 = d->file; f2 != 0; f2 = f2->prev)
+ f2->command_flags |= COMMANDS_NOERROR;
}
f = lookup_file (".SILENT");
if (f != 0 && f->is_target)
{
if (f->deps == 0)
- silent_flag = 1;
+ silent_flag = 1;
else
- for (d = f->deps; d != 0; d = d->next)
- for (f2 = d->file; f2 != 0; f2 = f2->prev)
- f2->command_flags |= COMMANDS_SILENT;
+ for (d = f->deps; d != 0; d = d->next)
+ for (f2 = d->file; f2 != 0; f2 = f2->prev)
+ f2->command_flags |= COMMANDS_SILENT;
}
f = lookup_file (".NOTPARALLEL");
@@ -772,7 +776,7 @@ snap_deps (void)
#endif
}
-/* Set the `command_state' member of FILE and all its `also_make's. */
+/* Set the 'command_state' member of FILE and all its 'also_make's. */
void
set_command_state (struct file *file, enum cmd_state state)
@@ -788,20 +792,21 @@ set_command_state (struct file *file, enum cmd_state state)
/* Convert an external file timestamp to internal form. */
FILE_TIMESTAMP
-file_timestamp_cons (const char *fname, time_t s, int ns)
+file_timestamp_cons (const char *fname, time_t stamp, long int ns)
{
int offset = ORDINARY_MTIME_MIN + (FILE_TIMESTAMP_HI_RES ? ns : 0);
+ FILE_TIMESTAMP s = stamp;
FILE_TIMESTAMP product = (FILE_TIMESTAMP) s << FILE_TIMESTAMP_LO_BITS;
FILE_TIMESTAMP ts = product + offset;
if (! (s <= FILE_TIMESTAMP_S (ORDINARY_MTIME_MAX)
- && product <= ts && ts <= ORDINARY_MTIME_MAX))
+ && product <= ts && ts <= ORDINARY_MTIME_MAX))
{
char buf[FILE_TIMESTAMP_PRINT_LEN_BOUND + 1];
ts = s <= OLD_MTIME ? ORDINARY_MTIME_MIN : ORDINARY_MTIME_MAX;
file_timestamp_sprintf (buf, ts);
error (NILF, _("%s: Timestamp out of range; substituting %s"),
- fname ? fname : _("Current time"), buf);
+ fname ? fname : _("Current time"), buf);
}
return ts;
@@ -825,10 +830,10 @@ file_timestamp_now (int *resolution)
struct timespec timespec;
if (clock_gettime (CLOCK_REALTIME, &timespec) == 0)
{
- r = 1;
- s = timespec.tv_sec;
- ns = timespec.tv_nsec;
- goto got_time;
+ r = 1;
+ s = timespec.tv_sec;
+ ns = timespec.tv_nsec;
+ goto got_time;
}
}
# endif
@@ -837,10 +842,10 @@ file_timestamp_now (int *resolution)
struct timeval timeval;
if (gettimeofday (&timeval, 0) == 0)
{
- r = 1000;
- s = timeval.tv_sec;
- ns = timeval.tv_usec * 1000;
- goto got_time;
+ r = 1000;
+ s = timeval.tv_sec;
+ ns = timeval.tv_usec * 1000;
+ goto got_time;
}
}
# endif
@@ -867,8 +872,8 @@ file_timestamp_sprintf (char *p, FILE_TIMESTAMP ts)
if (tm)
sprintf (p, "%04d-%02d-%02d %02d:%02d:%02d",
- tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
- tm->tm_hour, tm->tm_min, tm->tm_sec);
+ tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
+ tm->tm_hour, tm->tm_min, tm->tm_sec);
else if (t < 0)
sprintf (p, "%ld", (long) t);
else
@@ -919,7 +924,27 @@ print_file (const void *item)
{
const struct file *f = item;
+ /* If we're not using builtin targets, don't show them.
+
+ Ideally we'd be able to delete them altogether but currently there's no
+ facility to ever delete a file once it's been added. */
+ if (no_builtin_rules_flag && f->builtin)
+ return;
+
putchar ('\n');
+
+ if (f->cmds && f->cmds->recipe_prefix != cmd_prefix)
+ {
+ fputs (".RECIPEPREFIX = ", stdout);
+ cmd_prefix = f->cmds->recipe_prefix;
+ if (cmd_prefix != RECIPEPREFIX_DEFAULT)
+ putchar (cmd_prefix);
+ putchar ('\n');
+ }
+
+ if (f->variables != 0)
+ print_target_variables (f);
+
if (!f->is_target)
puts (_("# Not a target:"));
printf ("%s:%s", f->name, f->double_colon ? ":" : "");
@@ -933,11 +958,13 @@ print_file (const void *item)
puts (_("# Command line target."));
if (f->dontcare)
puts (_("# A default, MAKEFILES, or -include/sinclude makefile."));
+ if (f->builtin)
+ puts (_("# Builtin rule"));
puts (f->tried_implicit
? _("# Implicit rule search has been done.")
: _("# Implicit rule search has not been done."));
if (f->stem != 0)
- printf (_("# Implicit/static pattern stem: `%s'\n"), f->stem);
+ printf (_("# Implicit/static pattern stem: '%s'\n"), f->stem);
if (f->intermediate)
puts (_("# File is an intermediate prerequisite."));
if (f->also_make != 0)
@@ -945,7 +972,7 @@ print_file (const void *item)
const struct dep *d;
fputs (_("# Also makes:"), stdout);
for (d = f->also_make; d != 0; d = d->next)
- printf (" %s", dep_name (d));
+ printf (" %s", dep_name (d));
putchar ('\n');
}
if (f->last_mtime == UNKNOWN_MTIME)
@@ -973,28 +1000,23 @@ print_file (const void *item)
case cs_not_started:
case cs_finished:
switch (f->update_status)
- {
- case -1:
- break;
- case 0:
- puts (_("# Successfully updated."));
- break;
- case 1:
- assert (question_flag);
- puts (_("# Needs to be updated (-q is set)."));
- break;
- case 2:
- puts (_("# Failed to be updated."));
- break;
- default:
- puts (_("# Invalid value in `update_status' member!"));
- fflush (stdout);
- fflush (stderr);
- abort ();
- }
+ {
+ case us_none:
+ break;
+ case us_success:
+ puts (_("# Successfully updated."));
+ break;
+ case us_question:
+ assert (question_flag);
+ puts (_("# Needs to be updated (-q is set)."));
+ break;
+ case us_failed:
+ puts (_("# Failed to be updated."));
+ break;
+ }
break;
default:
- puts (_("# Invalid value in `command_state' member!"));
+ puts (_("# Invalid value in 'command_state' member!"));
fflush (stdout);
fflush (stderr);
abort ();
@@ -1026,7 +1048,7 @@ print_file_data_base (void)
#define VERIFY_CACHED(_p,_n) \
do{\
if (_p->_n && _p->_n[0] && !strcache_iscached (_p->_n)) \
- error (NULL, "%s: Field '%s' not cached: %s\n", _p->name, # _n, _p->_n); \
+ error (NULL, _("%s: Field '%s' not cached: %s"), _p->name, # _n, _p->_n); \
}while(0)
static void
diff --git a/filedef.h b/filedef.h
index 0a621b9..f458551 100644
--- a/filedef.h
+++ b/filedef.h
@@ -1,7 +1,5 @@
/* Definition of target file data structures for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -19,7 +17,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Structure that represents the info on one file
that the makefile says how to make.
- All of these are chained together through `next'. */
+ All of these are chained together through 'next'. */
#include "hash.h"
@@ -28,22 +26,18 @@ struct file
const char *name;
const char *hname; /* Hashed filename */
const char *vpath; /* VPATH/vpath pathname */
- struct dep *deps; /* all dependencies, including duplicates */
- struct commands *cmds; /* Commands to execute for this target. */
- int command_flags; /* Flags OR'd in for cmds; see commands.h. */
- const char *stem; /* Implicit stem, if an implicit
+ struct dep *deps; /* all dependencies, including duplicates */
+ struct commands *cmds; /* Commands to execute for this target. */
+ const char *stem; /* Implicit stem, if an implicit
rule has been used */
- struct dep *also_make; /* Targets that are made by making this. */
- FILE_TIMESTAMP last_mtime; /* File's modtime, if already known. */
- FILE_TIMESTAMP mtime_before_update; /* File's modtime before any updating
- has been performed. */
- struct file *prev; /* Previous entry for same file name;
- used when there are multiple double-colon
- entries for the same file. */
+ struct dep *also_make; /* Targets that are made by making this. */
+ struct file *prev; /* Previous entry for same file name;
+ used when there are multiple double-colon
+ entries for the same file. */
struct file *last; /* Last entry for the same file name. */
/* File that this file was renamed to. After any time that a
- file could be renamed, call `check_renamed' (below). */
+ file could be renamed, call 'check_renamed' (below). */
struct file *renamed;
/* List of variable sets used for this file. */
@@ -61,34 +55,44 @@ struct file
the same file. Otherwise this is null. */
struct file *double_colon;
- short int update_status; /* Status of the last attempt to update,
- or -1 if none has been made. */
-
- enum cmd_state /* State of the commands. */
- { /* Note: It is important that cs_not_started be zero. */
- cs_not_started, /* Not yet started. */
- cs_deps_running, /* Dep commands running. */
- cs_running, /* Commands running. */
- cs_finished /* Commands finished. */
+ FILE_TIMESTAMP last_mtime; /* File's modtime, if already known. */
+ FILE_TIMESTAMP mtime_before_update; /* File's modtime before any updating
+ has been performed. */
+ int command_flags; /* Flags OR'd in for cmds; see commands.h. */
+ enum update_status /* Status of the last attempt to update. */
+ {
+ us_success = 0, /* Successfully updated. Must be 0! */
+ us_none, /* No attempt to update has been made. */
+ us_question, /* Needs to be updated (-q is is set). */
+ us_failed /* Update failed. */
+ } update_status ENUM_BITFIELD (2);
+ enum cmd_state /* State of the commands. */
+ {
+ cs_not_started = 0, /* Not yet started. Must be 0! */
+ cs_deps_running, /* Dep commands running. */
+ cs_running, /* Commands running. */
+ cs_finished /* Commands finished. */
} command_state ENUM_BITFIELD (2);
- unsigned int precious:1; /* Non-0 means don't delete file on quit */
- unsigned int low_resolution_time:1; /* Nonzero if this file's time stamp
- has only one-second resolution. */
+ unsigned int builtin:1; /* True if the file is a builtin rule. */
+ unsigned int precious:1; /* Non-0 means don't delete file on quit */
+ unsigned int loaded:1; /* True if the file is a loaded object. */
+ unsigned int low_resolution_time:1; /* Nonzero if this file's time stamp
+ has only one-second resolution. */
unsigned int tried_implicit:1; /* Nonzero if have searched
- for implicit rule for making
- this file; don't search again. */
- unsigned int updating:1; /* Nonzero while updating deps of this file */
- unsigned int updated:1; /* Nonzero if this file has been remade. */
- unsigned int is_target:1; /* Nonzero if file is described as target. */
- unsigned int cmd_target:1; /* Nonzero if file was given on cmd line. */
- unsigned int phony:1; /* Nonzero if this is a phony file
- i.e., a prerequisite of .PHONY. */
+ for implicit rule for making
+ this file; don't search again. */
+ unsigned int updating:1; /* Nonzero while updating deps of this file */
+ unsigned int updated:1; /* Nonzero if this file has been remade. */
+ unsigned int is_target:1; /* Nonzero if file is described as target. */
+ unsigned int cmd_target:1; /* Nonzero if file was given on cmd line. */
+ unsigned int phony:1; /* Nonzero if this is a phony file
+ i.e., a prerequisite of .PHONY. */
unsigned int intermediate:1;/* Nonzero if this is an intermediate file. */
unsigned int secondary:1; /* Nonzero means remove_intermediates should
not delete it. */
- unsigned int dontcare:1; /* Nonzero if no complaint is to be made if
- this target cannot be remade. */
+ unsigned int dontcare:1; /* Nonzero if no complaint is to be made if
+ this target cannot be remade. */
unsigned int ignore_vpath:1;/* Nonzero if we threw out VPATH name. */
unsigned int pat_searched:1;/* Nonzero if we already searched for
pattern-specific variables. */
@@ -119,7 +123,7 @@ void print_file_data_base (void);
#if FILE_TIMESTAMP_HI_RES
# define FILE_TIMESTAMP_STAT_MODTIME(fname, st) \
- file_timestamp_cons (fname, (st).st_mtime, (st).st_mtim.ST_MTIM_NSEC)
+ file_timestamp_cons (fname, (st).st_mtime, (st).ST_MTIM_NSEC)
#else
# define FILE_TIMESTAMP_STAT_MODTIME(fname, st) \
file_timestamp_cons (fname, (st).st_mtime, 0)
@@ -134,9 +138,9 @@ void print_file_data_base (void);
#define FILE_TIMESTAMP_LO_BITS (FILE_TIMESTAMP_HI_RES ? 30 : 0)
#define FILE_TIMESTAMP_S(ts) (((ts) - ORDINARY_MTIME_MIN) \
- >> FILE_TIMESTAMP_LO_BITS)
+ >> FILE_TIMESTAMP_LO_BITS)
#define FILE_TIMESTAMP_NS(ts) ((int) (((ts) - ORDINARY_MTIME_MIN) \
- & ((1 << FILE_TIMESTAMP_LO_BITS) - 1)))
+ & ((1 << FILE_TIMESTAMP_LO_BITS) - 1)))
/* Upper bound on length of string "YYYY-MM-DD HH:MM:SS.NNNNNNNNN"
representing a file timestamp. The upper bound is not necessarily 19,
@@ -156,7 +160,7 @@ void print_file_data_base (void);
* 302 / 1000) \
+ 1 + 1 + 4 + 25)
-FILE_TIMESTAMP file_timestamp_cons (char const *, time_t, int);
+FILE_TIMESTAMP file_timestamp_cons (char const *, time_t, long int);
FILE_TIMESTAMP file_timestamp_now (int *);
void file_timestamp_sprintf (char *p, FILE_TIMESTAMP ts);
@@ -187,13 +191,13 @@ FILE_TIMESTAMP f_mtime (struct file *file, int search);
/* The smallest and largest ordinary timestamps. */
#define ORDINARY_MTIME_MIN (OLD_MTIME + 1)
#define ORDINARY_MTIME_MAX ((FILE_TIMESTAMP_S (NEW_MTIME) \
- << FILE_TIMESTAMP_LO_BITS) \
- + ORDINARY_MTIME_MIN + FILE_TIMESTAMPS_PER_S - 1)
+ << FILE_TIMESTAMP_LO_BITS) \
+ + ORDINARY_MTIME_MIN + FILE_TIMESTAMPS_PER_S - 1)
-/* Modtime value to use for `infinitely new'. We used to get the current time
- from the system and use that whenever we wanted `new'. But that causes
+/* Modtime value to use for 'infinitely new'. We used to get the current time
+ from the system and use that whenever we wanted 'new'. But that causes
trouble when the machine running make and the machine holding a file have
- different ideas about what time it is; and can also lose for `force'
+ different ideas about what time it is; and can also lose for 'force'
targets, which need to be considered newer than anything that depends on
them, even if said dependents' modtimes are in the future. */
#define NEW_MTIME INTEGER_TYPE_MAXIMUM (FILE_TIMESTAMP)
diff --git a/function.c b/function.c
index e2f6c8c..ecce627 100644
--- a/function.c
+++ b/function.c
@@ -1,7 +1,5 @@
/* Builtin function expansion for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,7 +14,7 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
#include "filedef.h"
#include "variable.h"
#include "dep.h"
@@ -31,12 +29,16 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
struct function_table_entry
{
+ union {
+ char *(*func_ptr) (char *output, char **argv, const char *fname);
+ gmk_func_ptr alloc_func_ptr;
+ } fptr;
const char *name;
unsigned char len;
unsigned char minimum_args;
unsigned char maximum_args;
- char expand_args;
- char *(*func_ptr) (char *output, char **argv, const char *fname);
+ unsigned char expand_args:1;
+ unsigned char alloc_fn:1;
};
static unsigned long
@@ -85,42 +87,42 @@ subst_expand (char *o, const char *text, const char *subst, const char *replace,
/* The first occurrence of "" in any string is its end. */
o = variable_buffer_output (o, t, strlen (t));
if (rlen > 0)
- o = variable_buffer_output (o, replace, rlen);
+ o = variable_buffer_output (o, replace, rlen);
return o;
}
do
{
if (by_word && slen == 0)
- /* When matching by words, the empty string should match
- the end of each word, rather than the end of the whole text. */
- p = end_of_token (next_token (t));
+ /* When matching by words, the empty string should match
+ the end of each word, rather than the end of the whole text. */
+ p = end_of_token (next_token (t));
else
- {
- p = strstr (t, subst);
- if (p == 0)
- {
- /* No more matches. Output everything left on the end. */
- o = variable_buffer_output (o, t, strlen (t));
- return o;
- }
- }
+ {
+ p = strstr (t, subst);
+ if (p == 0)
+ {
+ /* No more matches. Output everything left on the end. */
+ o = variable_buffer_output (o, t, strlen (t));
+ return o;
+ }
+ }
/* Output everything before this occurrence of the string to replace. */
if (p > t)
- o = variable_buffer_output (o, t, p - t);
+ o = variable_buffer_output (o, t, p - t);
/* If we're substituting only by fully matched words,
- or only at the ends of words, check that this case qualifies. */
+ or only at the ends of words, check that this case qualifies. */
if (by_word
&& ((p > text && !isblank ((unsigned char)p[-1]))
- || (p[slen] != '\0' && !isblank ((unsigned char)p[slen]))))
- /* Struck out. Output the rest of the string that is
- no longer to be replaced. */
- o = variable_buffer_output (o, subst, slen);
+ || ! STOP_SET (p[slen], MAP_BLANK|MAP_NUL)))
+ /* Struck out. Output the rest of the string that is
+ no longer to be replaced. */
+ o = variable_buffer_output (o, subst, slen);
else if (rlen > 0)
- /* Output the replacement string. */
- o = variable_buffer_output (o, replace, rlen);
+ /* Output the replacement string. */
+ o = variable_buffer_output (o, replace, rlen);
/* Advance T past the string to be replaced. */
t = p + slen;
@@ -167,7 +169,7 @@ patsubst_expand_pat (char *o, const char *text,
if (!pattern_percent)
/* With no % in the pattern, this is just a simple substitution. */
return subst_expand (o, text, pattern, replace,
- strlen (pattern), strlen (replace), 1);
+ strlen (pattern), strlen (replace), 1);
/* Record the length of PATTERN before and after the %
so we don't have to compute it more than once. */
@@ -180,53 +182,53 @@ patsubst_expand_pat (char *o, const char *text,
/* Is it big enough to match? */
if (len < pattern_prepercent_len + pattern_postpercent_len)
- fail = 1;
+ fail = 1;
/* Does the prefix match? */
if (!fail && pattern_prepercent_len > 0
- && (*t != *pattern
- || t[pattern_prepercent_len - 1] != pattern_percent[-2]
- || !strneq (t + 1, pattern + 1, pattern_prepercent_len - 1)))
- fail = 1;
+ && (*t != *pattern
+ || t[pattern_prepercent_len - 1] != pattern_percent[-2]
+ || !strneq (t + 1, pattern + 1, pattern_prepercent_len - 1)))
+ fail = 1;
/* Does the suffix match? */
if (!fail && pattern_postpercent_len > 0
- && (t[len - 1] != pattern_percent[pattern_postpercent_len - 1]
- || t[len - pattern_postpercent_len] != *pattern_percent
- || !strneq (&t[len - pattern_postpercent_len],
- pattern_percent, pattern_postpercent_len - 1)))
- fail = 1;
+ && (t[len - 1] != pattern_percent[pattern_postpercent_len - 1]
+ || t[len - pattern_postpercent_len] != *pattern_percent
+ || !strneq (&t[len - pattern_postpercent_len],
+ pattern_percent, pattern_postpercent_len - 1)))
+ fail = 1;
if (fail)
- /* It didn't match. Output the string. */
- o = variable_buffer_output (o, t, len);
+ /* It didn't match. Output the string. */
+ o = variable_buffer_output (o, t, len);
else
- {
- /* It matched. Output the replacement. */
-
- /* Output the part of the replacement before the %. */
- o = variable_buffer_output (o, replace, replace_prepercent_len);
-
- if (replace_percent != 0)
- {
- /* Output the part of the matched string that
- matched the % in the pattern. */
- o = variable_buffer_output (o, t + pattern_prepercent_len,
- len - (pattern_prepercent_len
- + pattern_postpercent_len));
- /* Output the part of the replacement after the %. */
- o = variable_buffer_output (o, replace_percent,
- replace_postpercent_len);
- }
- }
+ {
+ /* It matched. Output the replacement. */
+
+ /* Output the part of the replacement before the %. */
+ o = variable_buffer_output (o, replace, replace_prepercent_len);
+
+ if (replace_percent != 0)
+ {
+ /* Output the part of the matched string that
+ matched the % in the pattern. */
+ o = variable_buffer_output (o, t + pattern_prepercent_len,
+ len - (pattern_prepercent_len
+ + pattern_postpercent_len));
+ /* Output the part of the replacement after the %. */
+ o = variable_buffer_output (o, replace_percent,
+ replace_postpercent_len);
+ }
+ }
/* Output a space, but not if the replacement is "". */
if (fail || replace_prepercent_len > 0
- || (replace_percent != 0 && len + replace_postpercent_len > 0))
- {
- o = variable_buffer_output (o, " ", 1);
- doneany = 1;
- }
+ || (replace_percent != 0 && len + replace_postpercent_len > 0))
+ {
+ o = variable_buffer_output (o, " ", 1);
+ doneany = 1;
+ }
}
if (doneany)
/* Kill the last space. */
@@ -267,19 +269,19 @@ patsubst_expand (char *o, const char *text, char *pattern, char *replace)
static const struct function_table_entry *
lookup_function (const char *s)
{
+ struct function_table_entry function_table_entry_key;
const char *e = s;
- while (*e && ( (*e >= 'a' && *e <= 'z') || *e == '-'))
+ while (STOP_SET (*e, MAP_USERFUNC))
e++;
- if (*e == '\0' || isblank ((unsigned char) *e))
- {
- struct function_table_entry function_table_entry_key;
- function_table_entry_key.name = s;
- function_table_entry_key.len = e - s;
- return hash_find_item (&function_table, &function_table_entry_key);
- }
- return 0;
+ if (e == s || !STOP_SET(*e, MAP_NUL|MAP_SPACE))
+ return NULL;
+
+ function_table_entry_key.name = s;
+ function_table_entry_key.len = e - s;
+
+ return hash_find_item (&function_table, &function_table_entry_key);
}
@@ -297,7 +299,7 @@ pattern_matches (const char *pattern, const char *percent, const char *str)
memcpy (new_chars, pattern, len);
percent = find_percent (new_chars);
if (percent == 0)
- return streq (new_chars, str);
+ return streq (new_chars, str);
pattern = new_chars;
}
@@ -331,9 +333,9 @@ find_next_argument (char startparen, char endparen,
else if (*ptr == endparen)
{
- --count;
- if (count < 0)
- return NULL;
+ --count;
+ if (count < 0)
+ return NULL;
}
else if (*ptr == ',' && !count)
@@ -355,8 +357,8 @@ string_glob (char *line)
struct nameseq *chain;
unsigned int idx;
- chain = PARSE_FILE_SEQ (&line, struct nameseq, '\0', NULL,
- /* We do not want parse_file_seq to strip `./'s.
+ chain = PARSE_FILE_SEQ (&line, struct nameseq, MAP_NUL, NULL,
+ /* We do not want parse_file_seq to strip './'s.
That would break examples like:
$(patsubst ./%.c,obj/%.o,$(wildcard ./?*.c)). */
PARSEFS_NOSTRIP|PARSEFS_NOCACHE|PARSEFS_EXISTS);
@@ -428,17 +430,17 @@ func_join (char *o, char **argv, const char *funcname UNUSED)
tp = find_next_token (&list1_iterator, &len1);
if (tp != 0)
- o = variable_buffer_output (o, tp, len1);
+ o = variable_buffer_output (o, tp, len1);
pp = find_next_token (&list2_iterator, &len2);
if (pp != 0)
- o = variable_buffer_output (o, pp, len2);
+ o = variable_buffer_output (o, pp, len2);
if (tp != 0 || pp != 0)
- {
- o = variable_buffer_output (o, " ", 1);
- doneany = 1;
- }
+ {
+ o = variable_buffer_output (o, " ", 1);
+ doneany = 1;
+ }
}
while (tp != 0 || pp != 0);
if (doneany)
@@ -461,29 +463,29 @@ func_origin (char *o, char **argv, const char *funcname UNUSED)
{
default:
case o_invalid:
- abort ();
- break;
+ abort ();
+ break;
case o_default:
- o = variable_buffer_output (o, "default", 7);
- break;
+ o = variable_buffer_output (o, "default", 7);
+ break;
case o_env:
- o = variable_buffer_output (o, "environment", 11);
- break;
+ o = variable_buffer_output (o, "environment", 11);
+ break;
case o_file:
- o = variable_buffer_output (o, "file", 4);
- break;
+ o = variable_buffer_output (o, "file", 4);
+ break;
case o_env_override:
- o = variable_buffer_output (o, "environment override", 20);
- break;
+ o = variable_buffer_output (o, "environment override", 20);
+ break;
case o_command:
- o = variable_buffer_output (o, "command line", 12);
- break;
+ o = variable_buffer_output (o, "command line", 12);
+ break;
case o_override:
- o = variable_buffer_output (o, "override", 8);
- break;
+ o = variable_buffer_output (o, "override", 8);
+ break;
case o_automatic:
- o = variable_buffer_output (o, "automatic", 9);
- break;
+ o = variable_buffer_output (o, "automatic", 9);
+ break;
}
return o;
@@ -505,16 +507,6 @@ func_flavor (char *o, char **argv, const char *funcname UNUSED)
return o;
}
-#ifdef VMS
-# define IS_PATHSEP(c) ((c) == ']')
-#else
-# ifdef HAVE_DOS_PATHS
-# define IS_PATHSEP(c) ((c) == '/' || (c) == '\\')
-# else
-# define IS_PATHSEP(c) ((c) == '/')
-# endif
-#endif
-
static char *
func_notdir_suffix (char *o, char **argv, const char *funcname)
@@ -525,44 +517,40 @@ func_notdir_suffix (char *o, char **argv, const char *funcname)
int doneany =0;
unsigned int len=0;
- int is_suffix = streq (funcname, "suffix");
+ int is_suffix = funcname[0] == 's';
int is_notdir = !is_suffix;
+ int stop = MAP_PATHSEP | (is_suffix ? MAP_DOT : 0);
while ((p2 = find_next_token (&list_iterator, &len)) != 0)
{
- const char *p = p2 + len;
+ const char *p = p2 + len - 1;
-
- while (p >= p2 && (!is_suffix || *p != '.'))
- {
- if (IS_PATHSEP (*p))
- break;
- --p;
- }
+ while (p >= p2 && ! STOP_SET (*p, stop))
+ --p;
if (p >= p2)
- {
- if (is_notdir)
- ++p;
- else if (*p != '.')
- continue;
- o = variable_buffer_output (o, p, len - (p - p2));
- }
+ {
+ if (is_notdir)
+ ++p;
+ else if (*p != '.')
+ continue;
+ o = variable_buffer_output (o, p, len - (p - p2));
+ }
#ifdef HAVE_DOS_PATHS
/* Handle the case of "d:foo/bar". */
- else if (streq (funcname, "notdir") && p2[0] && p2[1] == ':')
- {
- p = p2 + 2;
- o = variable_buffer_output (o, p, len - (p - p2));
- }
+ else if (is_notdir && p2[0] && p2[1] == ':')
+ {
+ p = p2 + 2;
+ o = variable_buffer_output (o, p, len - (p - p2));
+ }
#endif
else if (is_notdir)
- o = variable_buffer_output (o, p2, len);
+ o = variable_buffer_output (o, p2, len);
if (is_notdir || p >= p2)
- {
- o = variable_buffer_output (o, " ", 1);
- doneany = 1;
- }
+ {
+ o = variable_buffer_output (o, " ", 1);
+ doneany = 1;
+ }
}
if (doneany)
@@ -579,21 +567,17 @@ func_basename_dir (char *o, char **argv, const char *funcname)
/* Expand the argument. */
const char *p3 = argv[0];
const char *p2;
- int doneany=0;
- unsigned int len=0;
-
- int is_basename= streq (funcname, "basename");
- int is_dir= !is_basename;
+ int doneany = 0;
+ unsigned int len = 0;
+ int is_basename = funcname[0] == 'b';
+ int is_dir = !is_basename;
+ int stop = MAP_PATHSEP | (is_basename ? MAP_DOT : 0) | MAP_NUL;
while ((p2 = find_next_token (&p3, &len)) != 0)
{
- const char *p = p2 + len;
- while (p >= p2 && (!is_basename || *p != '.'))
- {
- if (IS_PATHSEP (*p))
- break;
- --p;
- }
+ const char *p = p2 + len - 1;
+ while (p >= p2 && ! STOP_SET (*p, stop))
+ --p;
if (p >= p2 && (is_dir))
o = variable_buffer_output (o, p2, ++p - p2);
@@ -634,7 +618,7 @@ func_addsuffix_addprefix (char *o, char **argv, const char *funcname)
{
int fixlen = strlen (argv[0]);
const char *list_iterator = argv[1];
- int is_addprefix = streq (funcname, "addprefix");
+ int is_addprefix = funcname[3] == 'p';
int is_addsuffix = !is_addprefix;
int doneany = 0;
@@ -644,10 +628,10 @@ func_addsuffix_addprefix (char *o, char **argv, const char *funcname)
while ((p = find_next_token (&list_iterator, &len)) != 0)
{
if (is_addprefix)
- o = variable_buffer_output (o, argv[0], fixlen);
+ o = variable_buffer_output (o, argv[0], fixlen);
o = variable_buffer_output (o, p, len);
if (is_addsuffix)
- o = variable_buffer_output (o, argv[0], fixlen);
+ o = variable_buffer_output (o, argv[0], fixlen);
o = variable_buffer_output (o, " ", 1);
doneany = 1;
}
@@ -663,7 +647,7 @@ static char *
func_subst (char *o, char **argv, const char *funcname UNUSED)
{
o = subst_expand (o, argv[2], argv[0], argv[1], strlen (argv[0]),
- strlen (argv[1]), 0);
+ strlen (argv[1]), 0);
return o;
}
@@ -706,7 +690,7 @@ func_words (char *o, char **argv, const char *funcname UNUSED)
const char *word_iterator = argv[0];
char buf[20];
- while (find_next_token (&word_iterator, (unsigned int *) 0) != 0)
+ while (find_next_token (&word_iterator, NULL) != 0)
++i;
sprintf (buf, "%d", i);
@@ -738,7 +722,7 @@ check_numeric (const char *s, const char *msg)
strip_whitespace (&s, &end);
for (; s <= end; ++s)
- if (!ISDIGIT (*s)) /* ISDIGIT only evals its arg once: see make.h. */
+ if (!ISDIGIT (*s)) /* ISDIGIT only evals its arg once: see makeint.h. */
break;
if (s <= end || end - beg < 0)
@@ -755,12 +739,12 @@ func_word (char *o, char **argv, const char *funcname UNUSED)
int i;
/* Check the first argument. */
- check_numeric (argv[0], _("non-numeric first argument to `word' function"));
+ check_numeric (argv[0], _("non-numeric first argument to 'word' function"));
i = atoi (argv[0]);
if (i == 0)
fatal (*expanding_var,
- _("first argument to `word' function must be greater than 0"));
+ _("first argument to 'word' function must be greater than 0"));
end_p = argv[1];
while ((p = find_next_token (&end_p, 0)) != 0)
@@ -780,14 +764,14 @@ func_wordlist (char *o, char **argv, const char *funcname UNUSED)
/* Check the arguments. */
check_numeric (argv[0],
- _("non-numeric first argument to `wordlist' function"));
+ _("non-numeric first argument to 'wordlist' function"));
check_numeric (argv[1],
- _("non-numeric second argument to `wordlist' function"));
+ _("non-numeric second argument to 'wordlist' function"));
start = atoi (argv[0]);
if (start < 1)
fatal (*expanding_var,
- "invalid first argument to `wordlist' function: `%d'", start);
+ "invalid first argument to 'wordlist' function: '%d'", start);
count = atoi (argv[1]) - start + 1;
@@ -896,7 +880,7 @@ a_word_hash_cmp (const void *x, const void *y)
if (result)
return result;
return_STRING_COMPARE (((struct a_word const *) x)->str,
- ((struct a_word const *) y)->str);
+ ((struct a_word const *) y)->str);
}
struct a_pattern
@@ -905,7 +889,6 @@ struct a_pattern
char *str;
char *percent;
int length;
- int save_c;
};
static char *
@@ -919,7 +902,7 @@ func_filter_filterout (char *o, char **argv, const char *funcname)
struct a_pattern *pp;
struct hash_table a_word_table;
- int is_filter = streq (funcname, "filter");
+ int is_filter = funcname[CSTRLEN ("filter")] == '\0';
const char *pat_iterator = argv[0];
const char *word_iterator = argv[1];
int literals = 0;
@@ -928,7 +911,9 @@ func_filter_filterout (char *o, char **argv, const char *funcname)
char *p;
unsigned int len;
- /* Chop ARGV[0] up into patterns to match against the words. */
+ /* Chop ARGV[0] up into patterns to match against the words.
+ We don't need to preserve it because our caller frees all the
+ argument memory anyway. */
pattail = &pathead;
while ((p = find_next_token (&pat_iterator, &len)) != 0)
@@ -939,15 +924,16 @@ func_filter_filterout (char *o, char **argv, const char *funcname)
pattail = &pat->next;
if (*pat_iterator != '\0')
- ++pat_iterator;
+ ++pat_iterator;
pat->str = p;
- pat->length = len;
- pat->save_c = p[len];
p[len] = '\0';
pat->percent = find_percent (p);
if (pat->percent == 0)
- literals++;
+ literals++;
+
+ /* find_percent() might shorten the string so LEN is wrong. */
+ pat->length = strlen (pat->str);
}
*pattail = 0;
@@ -962,7 +948,7 @@ func_filter_filterout (char *o, char **argv, const char *funcname)
wordtail = &word->next;
if (*word_iterator != '\0')
- ++word_iterator;
+ ++word_iterator;
p[len] = '\0';
word->str = p;
@@ -980,11 +966,11 @@ func_filter_filterout (char *o, char **argv, const char *funcname)
hash_init (&a_word_table, words, a_word_hash_1, a_word_hash_2,
a_word_hash_cmp);
for (wp = wordhead; wp != 0; wp = wp->next)
- {
- struct a_word *owp = hash_insert (&a_word_table, wp);
- if (owp)
- wp->chain = owp;
- }
+ {
+ struct a_word *owp = hash_insert (&a_word_table, wp);
+ if (owp)
+ wp->chain = owp;
+ }
}
if (words)
@@ -993,45 +979,42 @@ func_filter_filterout (char *o, char **argv, const char *funcname)
/* Run each pattern through the words, killing words. */
for (pp = pathead; pp != 0; pp = pp->next)
- {
- if (pp->percent)
- for (wp = wordhead; wp != 0; wp = wp->next)
- wp->matched |= pattern_matches (pp->str, pp->percent, wp->str);
- else if (hashing)
- {
- struct a_word a_word_key;
- a_word_key.str = pp->str;
- a_word_key.length = pp->length;
- wp = hash_find_item (&a_word_table, &a_word_key);
- while (wp)
- {
- wp->matched |= 1;
- wp = wp->chain;
- }
- }
- else
- for (wp = wordhead; wp != 0; wp = wp->next)
- wp->matched |= (wp->length == pp->length
- && strneq (pp->str, wp->str, wp->length));
- }
+ {
+ if (pp->percent)
+ for (wp = wordhead; wp != 0; wp = wp->next)
+ wp->matched |= pattern_matches (pp->str, pp->percent, wp->str);
+ else if (hashing)
+ {
+ struct a_word a_word_key;
+ a_word_key.str = pp->str;
+ a_word_key.length = pp->length;
+ wp = hash_find_item (&a_word_table, &a_word_key);
+ while (wp)
+ {
+ wp->matched |= 1;
+ wp = wp->chain;
+ }
+ }
+ else
+ for (wp = wordhead; wp != 0; wp = wp->next)
+ wp->matched |= (wp->length == pp->length
+ && strneq (pp->str, wp->str, wp->length));
+ }
/* Output the words that matched (or didn't, for filter-out). */
for (wp = wordhead; wp != 0; wp = wp->next)
- if (is_filter ? wp->matched : !wp->matched)
- {
- o = variable_buffer_output (o, wp->str, strlen (wp->str));
- o = variable_buffer_output (o, " ", 1);
- doneany = 1;
- }
+ if (is_filter ? wp->matched : !wp->matched)
+ {
+ o = variable_buffer_output (o, wp->str, strlen (wp->str));
+ o = variable_buffer_output (o, " ", 1);
+ doneany = 1;
+ }
if (doneany)
- /* Kill the last space. */
- --o;
+ /* Kill the last space. */
+ --o;
}
- for (pp = pathead; pp != 0; pp = pp->next)
- pp->str[pp->length] = pp->save_c;
-
if (hashing)
hash_free (&a_word_table, 0);
@@ -1051,12 +1034,12 @@ func_strip (char *o, char **argv, const char *funcname UNUSED)
const char *word_start;
while (isspace ((unsigned char)*p))
- ++p;
+ ++p;
word_start = p;
for (i=0; *p != '\0' && !isspace ((unsigned char)*p); ++p, ++i)
- {}
+ {}
if (!i)
- break;
+ break;
o = variable_buffer_output (o, word_start, i);
o = variable_buffer_output (o, " ", 1);
doneany = 1;
@@ -1096,7 +1079,8 @@ func_error (char *o, char **argv, const char *funcname)
}
strcpy (p, *argvp);
- switch (*funcname) {
+ switch (*funcname)
+ {
case 'e':
fatal (reading_file, "%s", msg);
@@ -1105,13 +1089,13 @@ func_error (char *o, char **argv, const char *funcname)
break;
case 'i':
- printf ("%s\n", msg);
- fflush(stdout);
+ outputs (0, msg);
+ outputs (0, "\n");
break;
default:
fatal (*expanding_var, "Internal error: func_error: '%s'", funcname);
- }
+ }
/* The warning function expands to the empty string. */
return o;
@@ -1129,25 +1113,17 @@ func_sort (char *o, char **argv, const char *funcname UNUSED)
int wordi;
char *p;
unsigned int len;
- int i;
/* Find the maximum number of words we'll have. */
t = argv[0];
- wordi = 1;
- while (*t != '\0')
+ wordi = 0;
+ while ((p = find_next_token (&t, NULL)) != 0)
{
- char c = *(t++);
-
- if (! isspace ((unsigned char)c))
- continue;
-
+ ++t;
++wordi;
-
- while (isspace ((unsigned char)*t))
- ++t;
}
- words = xmalloc (wordi * sizeof (char *));
+ words = xmalloc ((wordi == 0 ? 1 : wordi) * sizeof (char *));
/* Now assign pointers to each string in the array. */
t = argv[0];
@@ -1161,6 +1137,8 @@ func_sort (char *o, char **argv, const char *funcname UNUSED)
if (wordi)
{
+ int i;
+
/* Now sort the list of words. */
qsort (words, wordi, sizeof (char *), alpha_compare);
@@ -1304,12 +1282,12 @@ static char *
func_and (char *o, char **argv, const char *funcname UNUSED)
{
char *expansion;
- int result;
while (1)
{
const char *begp = *argv;
const char *endp = begp + strlen (*argv) - 1;
+ int result;
/* An empty condition is always false. */
strip_whitespace (&begp, &endp);
@@ -1371,7 +1349,7 @@ func_eval (char *o, char **argv, const char *funcname UNUSED)
install_variable_buffer (&buf, &len);
- eval_buffer (argv[0]);
+ eval_buffer (argv[0], NULL);
restore_variable_buffer (buf, len);
@@ -1387,35 +1365,39 @@ func_value (char *o, char **argv, const char *funcname UNUSED)
/* Copy its value into the output buffer without expanding it. */
if (v)
- o = variable_buffer_output (o, v->value, strlen(v->value));
+ o = variable_buffer_output (o, v->value, strlen (v->value));
return o;
}
/*
- \r is replaced on UNIX as well. Is this desirable?
+ \r is replaced on UNIX as well. Is this desirable?
*/
static void
-fold_newlines (char *buffer, unsigned int *length)
+fold_newlines (char *buffer, unsigned int *length, int trim_newlines)
{
char *dst = buffer;
char *src = buffer;
- char *last_nonnl = buffer -1;
+ char *last_nonnl = buffer - 1;
src[*length] = 0;
for (; *src != '\0'; ++src)
{
if (src[0] == '\r' && src[1] == '\n')
- continue;
+ continue;
if (*src == '\n')
- {
- *dst++ = ' ';
- }
+ {
+ *dst++ = ' ';
+ }
else
- {
- last_nonnl = dst;
- *dst++ = *src;
- }
+ {
+ last_nonnl = dst;
+ *dst++ = *src;
+ }
}
+
+ if (!trim_newlines && (last_nonnl < (dst - 2)))
+ last_nonnl = dst - 2;
+
*(++last_nonnl) = '\0';
*length = last_nonnl - buffer;
}
@@ -1433,85 +1415,128 @@ int shell_function_pid = 0, shell_function_completed;
#include "sub_proc.h"
-void
+int
windows32_openpipe (int *pipedes, pid_t *pid_p, char **command_argv, char **envp)
{
SECURITY_ATTRIBUTES saAttr;
- HANDLE hIn;
- HANDLE hErr;
+ HANDLE hIn = INVALID_HANDLE_VALUE;
+ HANDLE hErr = INVALID_HANDLE_VALUE;
HANDLE hChildOutRd;
HANDLE hChildOutWr;
- HANDLE hProcess;
+ HANDLE hProcess, tmpIn, tmpErr;
+ DWORD e;
+ /* Set status for return. */
+ pipedes[0] = pipedes[1] = -1;
+ *pid_p = (pid_t)-1;
saAttr.nLength = sizeof (SECURITY_ATTRIBUTES);
saAttr.bInheritHandle = TRUE;
saAttr.lpSecurityDescriptor = NULL;
- if (DuplicateHandle (GetCurrentProcess(),
- GetStdHandle(STD_INPUT_HANDLE),
- GetCurrentProcess(),
- &hIn,
- 0,
- TRUE,
- DUPLICATE_SAME_ACCESS) == FALSE) {
- fatal (NILF, _("windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"),
- GetLastError());
-
- }
- if (DuplicateHandle(GetCurrentProcess(),
- GetStdHandle(STD_ERROR_HANDLE),
- GetCurrentProcess(),
- &hErr,
- 0,
- TRUE,
- DUPLICATE_SAME_ACCESS) == FALSE) {
- fatal (NILF, _("windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"),
- GetLastError());
- }
-
- if (!CreatePipe(&hChildOutRd, &hChildOutWr, &saAttr, 0))
- fatal (NILF, _("CreatePipe() failed (e=%ld)\n"), GetLastError());
-
- hProcess = process_init_fd(hIn, hChildOutWr, hErr);
+ /* Standard handles returned by GetStdHandle can be NULL or
+ INVALID_HANDLE_VALUE if the parent process closed them. If that
+ happens, we open the null device and pass its handle to
+ process_begin below as the corresponding handle to inherit. */
+ tmpIn = GetStdHandle (STD_INPUT_HANDLE);
+ if (DuplicateHandle (GetCurrentProcess (), tmpIn,
+ GetCurrentProcess (), &hIn,
+ 0, TRUE, DUPLICATE_SAME_ACCESS) == FALSE)
+ {
+ e = GetLastError ();
+ if (e == ERROR_INVALID_HANDLE)
+ {
+ tmpIn = CreateFile ("NUL", GENERIC_READ,
+ FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
+ OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+ if (tmpIn != INVALID_HANDLE_VALUE
+ && DuplicateHandle (GetCurrentProcess (), tmpIn,
+ GetCurrentProcess (), &hIn,
+ 0, TRUE, DUPLICATE_SAME_ACCESS) == FALSE)
+ CloseHandle (tmpIn);
+ }
+ if (hIn == INVALID_HANDLE_VALUE)
+ {
+ error (NILF, _("windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"), e);
+ return -1;
+ }
+ }
+ tmpErr = GetStdHandle (STD_ERROR_HANDLE);
+ if (DuplicateHandle (GetCurrentProcess (), tmpErr,
+ GetCurrentProcess (), &hErr,
+ 0, TRUE, DUPLICATE_SAME_ACCESS) == FALSE)
+ {
+ e = GetLastError ();
+ if (e == ERROR_INVALID_HANDLE)
+ {
+ tmpErr = CreateFile ("NUL", GENERIC_WRITE,
+ FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
+ OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+ if (tmpErr != INVALID_HANDLE_VALUE
+ && DuplicateHandle (GetCurrentProcess (), tmpErr,
+ GetCurrentProcess (), &hErr,
+ 0, TRUE, DUPLICATE_SAME_ACCESS) == FALSE)
+ CloseHandle (tmpErr);
+ }
+ if (hErr == INVALID_HANDLE_VALUE)
+ {
+ error (NILF, _("windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"), e);
+ return -1;
+ }
+ }
+
+ if (! CreatePipe (&hChildOutRd, &hChildOutWr, &saAttr, 0))
+ {
+ error (NILF, _("CreatePipe() failed (e=%ld)\n"), GetLastError());
+ return -1;
+ }
+
+ hProcess = process_init_fd (hIn, hChildOutWr, hErr);
if (!hProcess)
- fatal (NILF, _("windows32_openpipe(): process_init_fd() failed\n"));
+ {
+ error (NILF, _("windows32_openpipe(): process_init_fd() failed\n"));
+ return -1;
+ }
/* make sure that CreateProcess() has Path it needs */
- sync_Path_environment();
- /* `sync_Path_environment' may realloc `environ', so take note of
+ sync_Path_environment ();
+ /* 'sync_Path_environment' may realloc 'environ', so take note of
the new value. */
envp = environ;
- if (!process_begin(hProcess, command_argv, envp, command_argv[0], NULL)) {
- /* register process for wait */
- process_register(hProcess);
+ if (! process_begin (hProcess, command_argv, envp, command_argv[0], NULL))
+ {
+ /* register process for wait */
+ process_register (hProcess);
- /* set the pid for returning to caller */
- *pid_p = (pid_t) hProcess;
+ /* set the pid for returning to caller */
+ *pid_p = (pid_t) hProcess;
- /* set up to read data from child */
- pipedes[0] = _open_osfhandle((intptr_t) hChildOutRd, O_RDONLY);
+ /* set up to read data from child */
+ pipedes[0] = _open_osfhandle ((intptr_t) hChildOutRd, O_RDONLY);
- /* this will be closed almost right away */
- pipedes[1] = _open_osfhandle((intptr_t) hChildOutWr, O_APPEND);
- } else {
- /* reap/cleanup the failed process */
- process_cleanup(hProcess);
+ /* this will be closed almost right away */
+ pipedes[1] = _open_osfhandle ((intptr_t) hChildOutWr, O_APPEND);
+ return 0;
+ }
+ else
+ {
+ /* reap/cleanup the failed process */
+ process_cleanup (hProcess);
- /* close handles which were duplicated, they weren't used */
- CloseHandle(hIn);
- CloseHandle(hErr);
+ /* close handles which were duplicated, they weren't used */
+ if (hIn != INVALID_HANDLE_VALUE)
+ CloseHandle (hIn);
+ if (hErr != INVALID_HANDLE_VALUE)
+ CloseHandle (hErr);
- /* close pipe handles, they won't be used */
- CloseHandle(hChildOutRd);
- CloseHandle(hChildOutWr);
+ /* close pipe handles, they won't be used */
+ CloseHandle (hChildOutRd);
+ CloseHandle (hChildOutWr);
- /* set status for return */
- pipedes[0] = pipedes[1] = -1;
- *pid_p = (pid_t)-1;
- }
+ return -1;
+ }
}
#endif
@@ -1521,7 +1546,7 @@ FILE *
msdos_openpipe (int* pipedes, int *pidp, char *text)
{
FILE *fpipe=0;
- /* MSDOS can't fork, but it has `popen'. */
+ /* MSDOS can't fork, but it has 'popen'. */
struct variable *sh = lookup_variable ("SHELL", 5);
int e;
extern int dos_command_running, dos_status;
@@ -1536,7 +1561,7 @@ msdos_openpipe (int* pipedes, int *pidp, char *text)
{
char buf[PATH_MAX + 7];
/* This makes sure $SHELL value is used by $(shell), even
- though the target environment is not passed to it. */
+ though the target environment is not passed to it. */
sprintf (buf, "SHELL=%s", sh->value);
putenv (buf);
}
@@ -1555,9 +1580,9 @@ msdos_openpipe (int* pipedes, int *pidp, char *text)
pipedes[0] = -1;
*pidp = -1;
if (dos_status)
- errno = EINTR;
+ errno = EINTR;
else if (errno == 0)
- errno = ENOMEM;
+ errno = ENOMEM;
shell_function_completed = -1;
}
else
@@ -1578,15 +1603,24 @@ msdos_openpipe (int* pipedes, int *pidp, char *text)
#ifdef VMS
/* VMS can't do $(shell ...) */
+
+char *
+func_shell_base (char *o, char **argv, int trim_newlines)
+{
+ fprintf (stderr, "This platform does not support shell\n");
+ die (EXIT_FAILURE);
+ return NULL;
+}
+
#define func_shell 0
#else
#ifndef _AMIGA
-static char *
-func_shell (char *o, char **argv, const char *funcname UNUSED)
+char *
+func_shell_base (char *o, char **argv, int trim_newlines)
{
char *batch_filename = NULL;
-
+ int errfd;
#ifdef __MSDOS__
FILE *fpipe;
#endif
@@ -1597,23 +1631,36 @@ func_shell (char *o, char **argv, const char *funcname UNUSED)
pid_t pid;
#ifndef __MSDOS__
+#ifdef WINDOWS32
+ /* Reset just_print_flag. This is needed on Windows when batch files
+ are used to run the commands, because we normally refrain from
+ creating batch files under -n. */
+ int j_p_f = just_print_flag;
+ just_print_flag = 0;
+#endif
+
/* Construct the argument list. */
command_argv = construct_command_argv (argv[0], NULL, NULL, 0,
&batch_filename);
if (command_argv == 0)
- return o;
+ {
+#ifdef WINDOWS32
+ just_print_flag = j_p_f;
+#endif
+ return o;
+ }
#endif
- /* Using a target environment for `shell' loses in cases like:
- export var = $(shell echo foobie)
- because target_environment hits a loop trying to expand $(var)
- to put it in the environment. This is even more confusing when
- var was not explicitly exported, but just appeared in the
- calling environment.
+ /* Using a target environment for 'shell' loses in cases like:
+ export var = $(shell echo foobie)
+ bad := $(var)
+ because target_environment hits a loop trying to expand $(var) to put it
+ in the environment. This is even more confusing when 'var' was not
+ explicitly exported, but just appeared in the calling environment.
See Savannah bug #10593.
- envp = target_environment (NILF);
+ envp = target_environment (NULL);
*/
envp = environ;
@@ -1628,6 +1675,12 @@ func_shell (char *o, char **argv, const char *funcname UNUSED)
else
error_prefix = "";
+ /* Set up the output in case the shell writes something. */
+ output_start ();
+
+ errfd = (output_context && output_context->err >= 0
+ ? output_context->err : FD_STDERR);
+
#if defined(__MSDOS__)
fpipe = msdos_openpipe (pipedes, &pid, argv[0]);
if (pipedes[0] < 0)
@@ -1637,11 +1690,14 @@ func_shell (char *o, char **argv, const char *funcname UNUSED)
}
#elif defined(WINDOWS32)
windows32_openpipe (pipedes, &pid, command_argv, envp);
+ /* Restore the value of just_print_flag. */
+ just_print_flag = j_p_f;
+
if (pipedes[0] < 0)
{
- /* open of the pipe failed, mark as failed execution */
+ /* Open of the pipe failed, mark as failed execution. */
shell_function_completed = -1;
-
+ perror_with_name (error_prefix, "pipe");
return o;
}
else
@@ -1657,15 +1713,22 @@ func_shell (char *o, char **argv, const char *funcname UNUSED)
CLOSE_ON_EXEC(pipedes[1]);
CLOSE_ON_EXEC(pipedes[0]);
/* Never use fork()/exec() here! Use spawn() instead in exec_command() */
- pid = child_execute_job (0, pipedes[1], command_argv, envp);
+ pid = child_execute_job (FD_STDIN, pipedes[1], errfd, command_argv, envp);
if (pid < 0)
perror_with_name (error_prefix, "spawn");
# else /* ! __EMX__ */
- pid = vfork ();
+ pid = fork ();
if (pid < 0)
perror_with_name (error_prefix, "fork");
else if (pid == 0)
- child_execute_job (0, pipedes[1], command_argv, envp);
+ {
+# ifdef SET_STACK_SIZE
+ /* Reset limits, if necessary. */
+ if (stack_limit.rlim_cur)
+ setrlimit (RLIMIT_STACK, &stack_limit);
+# endif
+ child_execute_job (FD_STDIN, pipedes[1], errfd, command_argv, envp);
+ }
else
# endif
#endif
@@ -1685,10 +1748,10 @@ func_shell (char *o, char **argv, const char *funcname UNUSED)
free (command_argv);
/* Close the write side of the pipe. We test for -1, since
- pipedes[1] is -1 on MS-Windows, and some versions of MS
- libraries barf when `close' is called with -1. */
+ pipedes[1] is -1 on MS-Windows, and some versions of MS
+ libraries barf when 'close' is called with -1. */
if (pipedes[1] >= 0)
- close (pipedes[1]);
+ close (pipedes[1]);
#endif
/* Set up and read from the pipe. */
@@ -1698,23 +1761,23 @@ func_shell (char *o, char **argv, const char *funcname UNUSED)
/* Read from the pipe until it gets EOF. */
for (i = 0; ; i += cc)
- {
- if (i == maxlen)
- {
- maxlen += 512;
- buffer = xrealloc (buffer, maxlen + 1);
- }
-
- EINTRLOOP (cc, read (pipedes[0], &buffer[i], maxlen - i));
- if (cc <= 0)
- break;
- }
+ {
+ if (i == maxlen)
+ {
+ maxlen += 512;
+ buffer = xrealloc (buffer, maxlen + 1);
+ }
+
+ EINTRLOOP (cc, read (pipedes[0], &buffer[i], maxlen - i));
+ if (cc <= 0)
+ break;
+ }
buffer[i] = '\0';
/* Close the read side of the pipe. */
#ifdef __MSDOS__
if (fpipe)
- (void) pclose (fpipe);
+ (void) pclose (fpipe);
#else
(void) close (pipedes[0]);
#endif
@@ -1722,34 +1785,35 @@ func_shell (char *o, char **argv, const char *funcname UNUSED)
/* Loop until child_handler or reap_children() sets
shell_function_completed to the status of our child shell. */
while (shell_function_completed == 0)
- reap_children (1, 0);
+ reap_children (1, 0);
- if (batch_filename) {
- DB (DB_VERBOSE, (_("Cleaning up temporary batch file %s\n"),
- batch_filename));
- remove (batch_filename);
- free (batch_filename);
- }
+ if (batch_filename)
+ {
+ DB (DB_VERBOSE, (_("Cleaning up temporary batch file %s\n"),
+ batch_filename));
+ remove (batch_filename);
+ free (batch_filename);
+ }
shell_function_pid = 0;
/* The child_handler function will set shell_function_completed
- to 1 when the child dies normally, or to -1 if it
- dies with status 127, which is most likely an exec fail. */
+ to 1 when the child dies normally, or to -1 if it
+ dies with status 127, which is most likely an exec fail. */
if (shell_function_completed == -1)
- {
- /* This likely means that the execvp failed, so we should just
- write the error message in the pipe from the child. */
- fputs (buffer, stderr);
- fflush (stderr);
- }
+ {
+ /* This likely means that the execvp failed, so we should just
+ write the error message in the pipe from the child. */
+ fputs (buffer, stderr);
+ fflush (stderr);
+ }
else
- {
- /* The child finished normally. Replace all newlines in its output
- with spaces, and put that in the variable output buffer. */
- fold_newlines (buffer, &i);
- o = variable_buffer_output (o, buffer, i);
- }
+ {
+ /* The child finished normally. Replace all newlines in its output
+ with spaces, and put that in the variable output buffer. */
+ fold_newlines (buffer, &i, trim_newlines);
+ o = variable_buffer_output (o, buffer, i);
+ }
free (buffer);
}
@@ -1757,12 +1821,12 @@ func_shell (char *o, char **argv, const char *funcname UNUSED)
return o;
}
-#else /* _AMIGA */
+#else /* _AMIGA */
/* Do the Amiga version of func_shell. */
-static char *
-func_shell (char *o, char **argv, const char *funcname)
+char *
+func_shell_base (char *o, char **argv, int trim_newlines)
{
/* Amiga can't fork nor spawn, but I can start a program with
redirection of my choice. However, this means that we
@@ -1792,7 +1856,7 @@ func_shell (char *o, char **argv, const char *funcname)
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
+ Ideally we would use output_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");
@@ -1827,33 +1891,39 @@ func_shell (char *o, char **argv, const char *funcname)
do
{
if (i == maxlen)
- {
- maxlen += 512;
- buffer = xrealloc (buffer, maxlen + 1);
- }
+ {
+ maxlen += 512;
+ buffer = xrealloc (buffer, maxlen + 1);
+ }
cc = Read (child_stdout, &buffer[i], maxlen - i);
if (cc > 0)
- i += cc;
+ i += cc;
} while (cc > 0);
Close (child_stdout);
- fold_newlines (buffer, &i);
+ fold_newlines (buffer, &i, trim_newlines);
o = variable_buffer_output (o, buffer, i);
free (buffer);
return o;
}
#endif /* _AMIGA */
+
+char *
+func_shell (char *o, char **argv, const char *funcname UNUSED)
+{
+ return func_shell_base (o, argv, 1);
+}
#endif /* !VMS */
#ifdef EXPERIMENTAL
/*
- equality. Return is string-boolean, ie, the empty string is false.
+ equality. Return is string-boolean, i.e., the empty string is false.
*/
static char *
-func_eq (char *o, char **argv, char *funcname)
+func_eq (char *o, char **argv, char *funcname UNUSED)
{
int result = ! strcmp (argv[0], argv[1]);
o = variable_buffer_output (o, result ? "1" : "", result);
@@ -1865,7 +1935,7 @@ func_eq (char *o, char **argv, char *funcname)
string-boolean not operator.
*/
static char *
-func_not (char *o, char **argv, char *funcname)
+func_not (char *o, char **argv, char *funcname UNUSED)
{
const char *s = argv[0];
int result = 0;
@@ -1879,15 +1949,19 @@ func_not (char *o, char **argv, char *funcname)
#ifdef HAVE_DOS_PATHS
-#define IS_ABSOLUTE(n) (n[0] && n[1] == ':')
-#define ROOT_LEN 3
+# ifdef __CYGWIN__
+# define IS_ABSOLUTE(n) ((n[0] && n[1] == ':') || STOP_SET (n[0], MAP_PATHSEP))
+# else
+# define IS_ABSOLUTE(n) (n[0] && n[1] == ':')
+# endif
+# define ROOT_LEN 3
#else
#define IS_ABSOLUTE(n) (n[0] == '/')
#define ROOT_LEN 1
#endif
-/* Return the absolute name of file NAME which does not contain any `.',
- `..' components nor any repeated path separators ('/'). */
+/* Return the absolute name of file NAME which does not contain any '.',
+ '..' components nor any repeated path separators ('/'). */
static char *
abspath (const char *name, char *apath)
@@ -1905,50 +1979,54 @@ abspath (const char *name, char *apath)
{
/* It is unlikely we would make it until here but just to make sure. */
if (!starting_directory)
- return NULL;
+ return NULL;
strcpy (apath, starting_directory);
#ifdef HAVE_DOS_PATHS
- if (IS_PATHSEP(name[0]))
- {
- if (IS_PATHSEP(name[1]))
- {
- /* A UNC. Don't prepend a drive letter. */
- apath[0] = name[0];
- apath[1] = name[1];
- root_len = 2;
- }
- /* We have /foo, an absolute file name except for the drive
- letter. Assume the missing drive letter is the current
- drive, which we can get if we remove from starting_directory
- everything past the root directory. */
- apath[root_len] = '\0';
- }
+ if (STOP_SET (name[0], MAP_PATHSEP))
+ {
+ if (STOP_SET (name[1], MAP_PATHSEP))
+ {
+ /* A UNC. Don't prepend a drive letter. */
+ apath[0] = name[0];
+ apath[1] = name[1];
+ root_len = 2;
+ }
+ /* We have /foo, an absolute file name except for the drive
+ letter. Assume the missing drive letter is the current
+ drive, which we can get if we remove from starting_directory
+ everything past the root directory. */
+ apath[root_len] = '\0';
+ }
#endif
dest = strchr (apath, '\0');
}
else
{
+#if defined(__CYGWIN__) && defined(HAVE_DOS_PATHS)
+ if (STOP_SET (name[0], MAP_PATHSEP))
+ root_len = 1;
+#endif
strncpy (apath, name, root_len);
apath[root_len] = '\0';
dest = apath + root_len;
/* Get past the root, since we already copied it. */
name += root_len;
#ifdef HAVE_DOS_PATHS
- if (!IS_PATHSEP(apath[2]))
- {
- /* Convert d:foo into d:./foo and increase root_len. */
- apath[2] = '.';
- apath[3] = '/';
- dest++;
- root_len++;
- /* strncpy above copied one character too many. */
- name--;
- }
+ if (! STOP_SET (apath[root_len - 1], MAP_PATHSEP))
+ {
+ /* Convert d:foo into d:./foo and increase root_len. */
+ apath[2] = '.';
+ apath[3] = '/';
+ dest++;
+ root_len++;
+ /* strncpy above copied one character too many. */
+ name--;
+ }
else
- apath[2] = '/'; /* make sure it's a forward slash */
+ apath[root_len - 1] = '/'; /* make sure it's a forward slash */
#endif
}
@@ -1957,41 +2035,42 @@ abspath (const char *name, char *apath)
unsigned long len;
/* Skip sequence of multiple path-separators. */
- while (IS_PATHSEP(*start))
- ++start;
+ while (STOP_SET (*start, MAP_PATHSEP))
+ ++start;
/* Find end of path component. */
- for (end = start; *end != '\0' && !IS_PATHSEP(*end); ++end)
+ for (end = start; ! STOP_SET (*end, MAP_PATHSEP|MAP_NUL); ++end)
;
len = end - start;
if (len == 0)
- break;
+ break;
else if (len == 1 && start[0] == '.')
- /* nothing */;
+ /* nothing */;
else if (len == 2 && start[0] == '.' && start[1] == '.')
- {
- /* Back up to previous component, ignore if at root already. */
- if (dest > apath + root_len)
- for (--dest; !IS_PATHSEP(dest[-1]); --dest);
- }
+ {
+ /* Back up to previous component, ignore if at root already. */
+ if (dest > apath + root_len)
+ for (--dest; ! STOP_SET (dest[-1], MAP_PATHSEP); --dest)
+ ;
+ }
else
- {
- if (!IS_PATHSEP(dest[-1]))
+ {
+ if (! STOP_SET (dest[-1], MAP_PATHSEP))
*dest++ = '/';
- if (dest + len >= apath_limit)
+ if (dest + len >= apath_limit)
return NULL;
- dest = memcpy (dest, start, len);
+ dest = memcpy (dest, start, len);
dest += len;
- *dest = '\0';
- }
+ *dest = '\0';
+ }
}
/* Unless it is root strip trailing separator. */
- if (dest > apath + root_len && IS_PATHSEP(dest[-1]))
+ if (dest > apath + root_len && STOP_SET (dest[-1], MAP_PATHSEP))
--dest;
*dest = '\0';
@@ -2008,30 +2087,35 @@ func_realpath (char *o, char **argv, const char *funcname UNUSED)
const char *path = 0;
int doneany = 0;
unsigned int len = 0;
-#ifndef HAVE_REALPATH
- struct stat st;
-#endif
- PATH_VAR (in);
- PATH_VAR (out);
while ((path = find_next_token (&p, &len)) != 0)
{
if (len < GET_PATH_MAX)
{
+ char *rp;
+ struct stat st;
+ PATH_VAR (in);
+ PATH_VAR (out);
+
strncpy (in, path, len);
in[len] = '\0';
- if (
#ifdef HAVE_REALPATH
- realpath (in, out)
+ ENULLLOOP (rp, realpath (in, out));
#else
- abspath (in, out) && stat (out, &st) == 0
+ rp = abspath (in, out);
#endif
- )
+
+ if (rp)
{
- o = variable_buffer_output (o, out, strlen (out));
- o = variable_buffer_output (o, " ", 1);
- doneany = 1;
+ int r;
+ EINTRLOOP (r, stat (out, &st));
+ if (r == 0)
+ {
+ o = variable_buffer_output (o, out, strlen (out));
+ o = variable_buffer_output (o, " ", 1);
+ doneany = 1;
+ }
}
}
}
@@ -2044,6 +2128,45 @@ func_realpath (char *o, char **argv, const char *funcname UNUSED)
}
static char *
+func_file (char *o, char **argv, const char *funcname UNUSED)
+{
+ char *fn = argv[0];
+
+ if (fn[0] == '>')
+ {
+ FILE *fp;
+ const char *mode = "w";
+
+ /* We are writing a file. */
+ ++fn;
+ if (fn[0] == '>')
+ {
+ mode = "a";
+ ++fn;
+ }
+ fn = next_token (fn);
+
+ fp = fopen (fn, mode);
+ if (fp == NULL)
+ fatal (reading_file, _("open: %s: %s"), fn, strerror (errno));
+ else
+ {
+ int l = strlen (argv[1]);
+ int nl = (l == 0 || argv[1][l-1] != '\n');
+
+ if (fputs (argv[1], fp) == EOF || (nl && fputc ('\n', fp) == EOF))
+ fatal (reading_file, _("write: %s: %s"), fn, strerror (errno));
+
+ fclose (fp);
+ }
+ }
+ else
+ fatal (reading_file, _("Invalid file operation: %s"), fn);
+
+ return o;
+}
+
+static char *
func_abspath (char *o, char **argv, const char *funcname UNUSED)
{
/* Expand the argument. */
@@ -2051,13 +2174,14 @@ func_abspath (char *o, char **argv, const char *funcname UNUSED)
const char *path = 0;
int doneany = 0;
unsigned int len = 0;
- PATH_VAR (in);
- PATH_VAR (out);
while ((path = find_next_token (&p, &len)) != 0)
{
if (len < GET_PATH_MAX)
{
+ PATH_VAR (in);
+ PATH_VAR (out);
+
strncpy (in, path, len);
in[len] = '\0';
@@ -2091,48 +2215,51 @@ func_abspath (char *o, char **argv, const char *funcname UNUSED)
static char *func_call (char *o, char **argv, const char *funcname);
+#define FT_ENTRY(_name, _min, _max, _exp, _func) \
+ { { (_func) }, STRING_SIZE_TUPLE(_name), (_min), (_max), (_exp), 0 }
static struct function_table_entry function_table_init[] =
{
- /* Name/size */ /* MIN MAX EXP? Function */
- { STRING_SIZE_TUPLE("abspath"), 0, 1, 1, func_abspath},
- { STRING_SIZE_TUPLE("addprefix"), 2, 2, 1, func_addsuffix_addprefix},
- { STRING_SIZE_TUPLE("addsuffix"), 2, 2, 1, func_addsuffix_addprefix},
- { STRING_SIZE_TUPLE("basename"), 0, 1, 1, func_basename_dir},
- { STRING_SIZE_TUPLE("dir"), 0, 1, 1, func_basename_dir},
- { STRING_SIZE_TUPLE("notdir"), 0, 1, 1, func_notdir_suffix},
- { STRING_SIZE_TUPLE("subst"), 3, 3, 1, func_subst},
- { STRING_SIZE_TUPLE("suffix"), 0, 1, 1, func_notdir_suffix},
- { STRING_SIZE_TUPLE("filter"), 2, 2, 1, func_filter_filterout},
- { STRING_SIZE_TUPLE("filter-out"), 2, 2, 1, func_filter_filterout},
- { STRING_SIZE_TUPLE("findstring"), 2, 2, 1, func_findstring},
- { STRING_SIZE_TUPLE("firstword"), 0, 1, 1, func_firstword},
- { STRING_SIZE_TUPLE("flavor"), 0, 1, 1, func_flavor},
- { STRING_SIZE_TUPLE("join"), 2, 2, 1, func_join},
- { STRING_SIZE_TUPLE("lastword"), 0, 1, 1, func_lastword},
- { STRING_SIZE_TUPLE("patsubst"), 3, 3, 1, func_patsubst},
- { STRING_SIZE_TUPLE("realpath"), 0, 1, 1, func_realpath},
- { STRING_SIZE_TUPLE("shell"), 0, 1, 1, func_shell},
- { STRING_SIZE_TUPLE("sort"), 0, 1, 1, func_sort},
- { STRING_SIZE_TUPLE("strip"), 0, 1, 1, func_strip},
- { STRING_SIZE_TUPLE("wildcard"), 0, 1, 1, func_wildcard},
- { STRING_SIZE_TUPLE("word"), 2, 2, 1, func_word},
- { STRING_SIZE_TUPLE("wordlist"), 3, 3, 1, func_wordlist},
- { STRING_SIZE_TUPLE("words"), 0, 1, 1, func_words},
- { STRING_SIZE_TUPLE("origin"), 0, 1, 1, func_origin},
- { STRING_SIZE_TUPLE("foreach"), 3, 3, 0, func_foreach},
- { STRING_SIZE_TUPLE("call"), 1, 0, 1, func_call},
- { STRING_SIZE_TUPLE("info"), 0, 1, 1, func_error},
- { STRING_SIZE_TUPLE("error"), 0, 1, 1, func_error},
- { STRING_SIZE_TUPLE("warning"), 0, 1, 1, func_error},
- { STRING_SIZE_TUPLE("if"), 2, 3, 0, func_if},
- { STRING_SIZE_TUPLE("or"), 1, 0, 0, func_or},
- { STRING_SIZE_TUPLE("and"), 1, 0, 0, func_and},
- { STRING_SIZE_TUPLE("value"), 0, 1, 1, func_value},
- { STRING_SIZE_TUPLE("eval"), 0, 1, 1, func_eval},
+ /* Name MIN MAX EXP? Function */
+ FT_ENTRY ("abspath", 0, 1, 1, func_abspath),
+ FT_ENTRY ("addprefix", 2, 2, 1, func_addsuffix_addprefix),
+ FT_ENTRY ("addsuffix", 2, 2, 1, func_addsuffix_addprefix),
+ FT_ENTRY ("basename", 0, 1, 1, func_basename_dir),
+ FT_ENTRY ("dir", 0, 1, 1, func_basename_dir),
+ FT_ENTRY ("notdir", 0, 1, 1, func_notdir_suffix),
+ FT_ENTRY ("subst", 3, 3, 1, func_subst),
+ FT_ENTRY ("suffix", 0, 1, 1, func_notdir_suffix),
+ FT_ENTRY ("filter", 2, 2, 1, func_filter_filterout),
+ FT_ENTRY ("filter-out", 2, 2, 1, func_filter_filterout),
+ FT_ENTRY ("findstring", 2, 2, 1, func_findstring),
+ FT_ENTRY ("firstword", 0, 1, 1, func_firstword),
+ FT_ENTRY ("flavor", 0, 1, 1, func_flavor),
+ FT_ENTRY ("join", 2, 2, 1, func_join),
+ FT_ENTRY ("lastword", 0, 1, 1, func_lastword),
+ FT_ENTRY ("patsubst", 3, 3, 1, func_patsubst),
+ FT_ENTRY ("realpath", 0, 1, 1, func_realpath),
+ FT_ENTRY ("shell", 0, 1, 1, func_shell),
+ FT_ENTRY ("sort", 0, 1, 1, func_sort),
+ FT_ENTRY ("strip", 0, 1, 1, func_strip),
+ FT_ENTRY ("wildcard", 0, 1, 1, func_wildcard),
+ FT_ENTRY ("word", 2, 2, 1, func_word),
+ FT_ENTRY ("wordlist", 3, 3, 1, func_wordlist),
+ FT_ENTRY ("words", 0, 1, 1, func_words),
+ FT_ENTRY ("origin", 0, 1, 1, func_origin),
+ FT_ENTRY ("foreach", 3, 3, 0, func_foreach),
+ FT_ENTRY ("call", 1, 0, 1, func_call),
+ FT_ENTRY ("info", 0, 1, 1, func_error),
+ FT_ENTRY ("error", 0, 1, 1, func_error),
+ FT_ENTRY ("warning", 0, 1, 1, func_error),
+ FT_ENTRY ("if", 2, 3, 0, func_if),
+ FT_ENTRY ("or", 1, 0, 0, func_or),
+ FT_ENTRY ("and", 1, 0, 0, func_and),
+ FT_ENTRY ("value", 0, 1, 1, func_value),
+ FT_ENTRY ("eval", 0, 1, 1, func_eval),
+ FT_ENTRY ("file", 1, 2, 1, func_file),
#ifdef EXPERIMENTAL
- { STRING_SIZE_TUPLE("eq"), 2, 2, 1, func_eq},
- { STRING_SIZE_TUPLE("not"), 0, 1, 1, func_not},
+ FT_ENTRY ("eq", 2, 2, 1, func_eq),
+ FT_ENTRY ("not", 0, 1, 1, func_not),
#endif
};
@@ -2145,23 +2272,38 @@ static char *
expand_builtin_function (char *o, int argc, char **argv,
const struct function_table_entry *entry_p)
{
+ char *p;
+
if (argc < (int)entry_p->minimum_args)
fatal (*expanding_var,
- _("insufficient number of arguments (%d) to function `%s'"),
+ _("insufficient number of arguments (%d) to function '%s'"),
argc, entry_p->name);
- /* I suppose technically some function could do something with no
- arguments, but so far none do, so just test it for all functions here
+ /* I suppose technically some function could do something with no arguments,
+ but so far no internal ones do, so just test it for all functions here
rather than in each one. We can change it later if necessary. */
- if (!argc)
+ if (!argc && !entry_p->alloc_fn)
return o;
- if (!entry_p->func_ptr)
+ if (!entry_p->fptr.func_ptr)
fatal (*expanding_var,
- _("unimplemented on this platform: function `%s'"), entry_p->name);
+ _("unimplemented on this platform: function '%s'"), entry_p->name);
- return entry_p->func_ptr (o, argv, entry_p->name);
+ if (!entry_p->alloc_fn)
+ return entry_p->fptr.func_ptr (o, argv, entry_p->name);
+
+ /* This function allocates memory and returns it to us.
+ Write it to the variable buffer, then free it. */
+
+ p = entry_p->fptr.alloc_func_ptr (entry_p->name, argc, argv);
+ if (p)
+ {
+ o = variable_buffer_output (o, p, strlen (p));
+ free (p);
+ }
+
+ return o;
}
/* Check for a function invocation in *STRINGP. *STRINGP points at the
@@ -2209,8 +2351,8 @@ handle_function (char **op, const char **stringp)
if (count >= 0)
fatal (*expanding_var,
- _("unterminated call to function `%s': missing `%c'"),
- entry_p->name, closeparen);
+ _("unterminated call to function '%s': missing '%c'"),
+ entry_p->name, closeparen);
*stringp = end;
@@ -2276,7 +2418,7 @@ handle_function (char **op, const char **stringp)
if (entry_p->expand_args)
for (argvp=argv; *argvp != 0; ++argvp)
free (*argvp);
- if (abeg)
+ else if (abeg)
free (abeg);
return 1;
@@ -2303,7 +2445,7 @@ func_call (char *o, char **argv, const char *funcname UNUSED)
/* 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. */
fname = argv[0];
- while (*fname != '\0' && isspace ((unsigned char)*fname))
+ while (isspace ((unsigned char)*fname))
++fname;
cp = fname + strlen (fname) - 1;
@@ -2388,11 +2530,49 @@ func_call (char *o, char **argv, const char *funcname UNUSED)
}
void
+define_new_function (const gmk_floc *flocp, const char *name,
+ unsigned int min, unsigned int max, unsigned int flags,
+ gmk_func_ptr func)
+{
+ const char *e = name;
+ struct function_table_entry *ent;
+ size_t len;
+
+ while (STOP_SET (*e, MAP_USERFUNC))
+ e++;
+ len = e - name;
+
+ if (len == 0)
+ fatal (flocp, _("Empty function name\n"));
+ if (*name == '.' || *e != '\0')
+ fatal (flocp, _("Invalid function name: %s\n"), name);
+ if (len > 255)
+ fatal (flocp, _("Function name too long: %s\n"), name);
+ if (min > 255)
+ fatal (flocp, _("Invalid minimum argument count (%d) for function %s\n"),
+ min, name);
+ if (max > 255 || (max && max < min))
+ fatal (flocp, _("Invalid maximum argument count (%d) for function %s\n"),
+ max, name);
+
+ ent = xmalloc (sizeof (struct function_table_entry));
+ ent->name = name;
+ ent->len = len;
+ ent->minimum_args = min;
+ ent->maximum_args = max;
+ ent->expand_args = ANY_SET(flags, GMK_FUNC_NOEXPAND) ? 0 : 1;
+ ent->alloc_fn = 1;
+ ent->fptr.alloc_func_ptr = func;
+
+ hash_insert (&function_table, ent);
+}
+
+void
hash_init_function_table (void)
{
hash_init (&function_table, FUNCTION_TABLE_ENTRIES * 2,
- function_table_entry_hash_1, function_table_entry_hash_2,
- function_table_entry_hash_cmp);
+ function_table_entry_hash_1, function_table_entry_hash_2,
+ function_table_entry_hash_cmp);
hash_load (&function_table, function_table_init,
- FUNCTION_TABLE_ENTRIES, sizeof (struct function_table_entry));
+ FUNCTION_TABLE_ENTRIES, sizeof (struct function_table_entry));
}
diff --git a/getloadavg.c b/getloadavg.c
index f9d7964..0f5d400 100644
--- a/getloadavg.c
+++ b/getloadavg.c
@@ -1,7 +1,5 @@
/* Get the system load averages.
-Copyright (C) 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1985-2013 Free Software Foundation, Inc.
GNU Make is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
@@ -86,9 +84,9 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* Exclude all the code except the test program at the end
- if the system has its own `getloadavg' function.
+ if the system has its own 'getloadavg' function.
- The declaration of `errno' is needed by the test program
+ The declaration of 'errno' is needed by the test program
as well as the function itself, so it comes first. */
#include <errno.h>
@@ -745,7 +743,7 @@ getloadavg (double loadavg[], int nelem)
# define LDAV_DONE
/* This call can return -1 for an error, but with good args
it's not supposed to fail. The first argument is for no
- apparent reason of type `long int *'. */
+ apparent reason of type 'long int *'. */
dg_sys_info ((long int *) &load_info,
DG_SYS_INFO_LOAD_INFO_TYPE,
DG_SYS_INFO_LOAD_VERSION_0);
@@ -987,7 +985,7 @@ getloadavg (double loadavg[], int nelem)
#endif /* ! HAVE_GETLOADAVG */
#ifdef TEST
-#include "make.h"
+#include "makeint.h"
int
main (int argc, char **argv)
diff --git a/getopt.c b/getopt.c
index e992da5..5a40b6c 100644
--- a/getopt.c
+++ b/getopt.c
@@ -3,9 +3,7 @@ NOTE: getopt is now part of the C library, so if you don't know what
"Keep this file name-space clean" means, talk to drepper@gnu.org
before changing it!
-Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
-1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1987-2013 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@gnu.org.
@@ -83,7 +81,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
#define _(msgid) gettext (msgid)
-/* This version of `getopt' appears to the caller like standard Unix `getopt'
+/* This version of `getopt' appears to the caller like standard Unix 'getopt'
but it behaves differently for the user, since it allows the user
to intersperse the options with the other arguments.
@@ -658,7 +656,7 @@ _getopt_internal (int argc, char *const *argv, const char *optstring,
if (ambig && !exact)
{
if (opterr)
- fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
+ fprintf (stderr, _("%s: option '%s' is ambiguous\n"),
argv[0], argv[optind]);
nextchar += strlen (nextchar);
optind++;
@@ -682,12 +680,12 @@ _getopt_internal (int argc, char *const *argv, const char *optstring,
if (argv[optind - 1][1] == '-')
/* --option */
fprintf (stderr,
- _("%s: option `--%s' doesn't allow an argument\n"),
+ _("%s: option '--%s' doesn't allow an argument\n"),
argv[0], pfound->name);
else
/* +option or -option */
fprintf (stderr,
- _("%s: option `%c%s' doesn't allow an argument\n"),
+ _("%s: option '%c%s' doesn't allow an argument\n"),
argv[0], argv[optind - 1][0], pfound->name);
nextchar += strlen (nextchar);
@@ -704,7 +702,7 @@ _getopt_internal (int argc, char *const *argv, const char *optstring,
{
if (opterr)
fprintf (stderr,
- _("%s: option `%s' requires an argument\n"),
+ _("%s: option '%s' requires an argument\n"),
argv[0], argv[optind - 1]);
nextchar += strlen (nextchar);
optopt = pfound->val;
@@ -733,11 +731,11 @@ _getopt_internal (int argc, char *const *argv, const char *optstring,
{
if (argv[optind][1] == '-')
/* --option */
- fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
+ fprintf (stderr, _("%s: unrecognized option '--%s'\n"),
argv[0], nextchar);
else
/* +option or -option */
- fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
+ fprintf (stderr, _("%s: unrecognized option '%c%s'\n"),
argv[0], argv[optind][0], nextchar);
}
nextchar = (char *) "";
@@ -843,7 +841,7 @@ _getopt_internal (int argc, char *const *argv, const char *optstring,
if (ambig && !exact)
{
if (opterr)
- fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
+ fprintf (stderr, _("%s: option '-W %s' is ambiguous\n"),
argv[0], argv[optind]);
nextchar += strlen (nextchar);
optind++;
@@ -862,7 +860,7 @@ _getopt_internal (int argc, char *const *argv, const char *optstring,
{
if (opterr)
fprintf (stderr, _("\
-%s: option `-W %s' doesn't allow an argument\n"),
+%s: option '-W %s' doesn't allow an argument\n"),
argv[0], pfound->name);
nextchar += strlen (nextchar);
@@ -877,7 +875,7 @@ _getopt_internal (int argc, char *const *argv, const char *optstring,
{
if (opterr)
fprintf (stderr,
- _("%s: option `%s' requires an argument\n"),
+ _("%s: option '%s' requires an argument\n"),
argv[0], argv[optind - 1]);
nextchar += strlen (nextchar);
return optstring[0] == ':' ? ':' : '?';
@@ -1003,7 +1001,7 @@ main (int argc, char **argv)
break;
case 'c':
- printf ("option c with value `%s'\n", optarg);
+ printf ("option c with value '%s'\n", optarg);
break;
case '?':
diff --git a/getopt.h b/getopt.h
index dff9998..cb8865e 100644
--- a/getopt.h
+++ b/getopt.h
@@ -1,7 +1,5 @@
/* Declarations for getopt.
-Copyright (C) 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-Software Foundation, Inc.
+Copyright (C) 1989-2013 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@gnu.org.
diff --git a/getopt1.c b/getopt1.c
index 429ad4a..51bea51 100644
--- a/getopt1.c
+++ b/getopt1.c
@@ -1,7 +1,5 @@
/* getopt_long and getopt_long_only entry points for GNU getopt.
-Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1987-1994, 1996-2013 Free Software Foundation, Inc.
NOTE: The canonical source of this file is maintained with the GNU C Library.
Bugs can be reported to bug-glibc@gnu.org.
@@ -149,11 +147,11 @@ main (int argc, char **argv)
break;
case 'c':
- printf ("option c with value `%s'\n", optarg);
+ printf ("option c with value '%s'\n", optarg);
break;
case 'd':
- printf ("option d with value `%s'\n", optarg);
+ printf ("option d with value '%s'\n", optarg);
break;
case '?':
diff --git a/gettext.h b/gettext.h
index e8b8b3a..f1156b9 100644
--- a/gettext.h
+++ b/gettext.h
@@ -1,6 +1,5 @@
/* Convenience header for conditional use of GNU <libintl.h>.
-Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005,
-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1995-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/glob/Makefile.in b/glob/Makefile.in
index 44be58d..3f79418 100644
--- a/glob/Makefile.in
+++ b/glob/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,6 +34,23 @@
# this program. If not, see <http://www.gnu.org/licenses/>.
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -58,20 +75,26 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in COPYING.LIB \
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/config/dospaths.m4 \
$(top_srcdir)/config/gettext.m4 $(top_srcdir)/config/iconv.m4 \
- $(top_srcdir)/config/isc-posix.m4 \
+ $(top_srcdir)/config/intlmacosx.m4 \
$(top_srcdir)/config/lib-ld.m4 \
$(top_srcdir)/config/lib-link.m4 \
$(top_srcdir)/config/lib-prefix.m4 $(top_srcdir)/config/nls.m4 \
$(top_srcdir)/config/po.m4 $(top_srcdir)/config/progtest.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
LIBRARIES = $(noinst_LIBRARIES)
ARFLAGS = cru
+AM_V_AR = $(am__v_AR_@AM_V@)
+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+am__v_AR_0 = @echo " AR " $@;
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
libglob_a_AR = $(AR) $(ARFLAGS)
libglob_a_LIBADD =
am_libglob_a_OBJECTS = glob.$(OBJEXT) fnmatch.$(OBJEXT)
@@ -82,16 +105,32 @@ am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(libglob_a_SOURCES)
DIST_SOURCES = $(libglob_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AM_LDFLAGS = @AM_LDFLAGS@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -111,16 +150,21 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
GLOBINC = @GLOBINC@
GLOBLIB = @GLOBLIB@
GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
GREP = @GREP@
+GUILE_CFLAGS = @GUILE_CFLAGS@
+GUILE_LIBS = @GUILE_LIBS@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
KMEM_GROUP = @KMEM_GROUP@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -133,8 +177,8 @@ LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MAKE_HOST = @MAKE_HOST@
MKDIR_P = @MKDIR_P@
-MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
MSGMERGE = @MSGMERGE@
NEED_SETGID = @NEED_SETGID@
OBJEXT = @OBJEXT@
@@ -147,6 +191,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
REMOTE = @REMOTE@
@@ -156,6 +203,8 @@ STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -251,10 +300,10 @@ $(am__aclocal_m4_deps):
clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libglob.a: $(libglob_a_OBJECTS) $(libglob_a_DEPENDENCIES)
- -rm -f libglob.a
- $(libglob_a_AR) libglob.a $(libglob_a_OBJECTS) $(libglob_a_LIBADD)
- $(RANLIB) libglob.a
+libglob.a: $(libglob_a_OBJECTS) $(libglob_a_DEPENDENCIES) $(EXTRA_libglob_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f libglob.a
+ $(AM_V_AR)$(libglob_a_AR) libglob.a $(libglob_a_OBJECTS) $(libglob_a_LIBADD)
+ $(AM_V_at)$(RANLIB) libglob.a
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -266,18 +315,18 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glob.Po@am__quote@
.c.o:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
.c.obj:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -375,10 +424,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
diff --git a/glob/glob.h b/glob/glob.h
index a613aff..0992de3 100644
--- a/glob/glob.h
+++ b/glob/glob.h
@@ -56,7 +56,7 @@ typedef __SIZE_TYPE__ __size_t;
# else
/* This is a guess. */
/*hb
- * Conflicts with DECCs aready defined type __size_t.
+ * Conflicts with DECCs already defined type __size_t.
* Defining an own type with a name beginning with '__' is no good.
* Anyway if DECC is used and __SIZE_T is defined then __size_t is
* already defined (and I hope it's exactly the one we need here).
diff --git a/gmk-default.h b/gmk-default.h
new file mode 100644
index 0000000..9fa09a6
--- /dev/null
+++ b/gmk-default.h
@@ -0,0 +1,28 @@
+static const char *const GUILE_module_defn = " \
+(define (to-string-maybe x) \
+ (cond \
+ ((or (not x) \
+ (unspecified? x) \
+ (variable? x) \
+ (null? x) \
+ (and (string? x) (string-null? x))) \
+ #f) \
+ ((eq? x #t) \"#t\") \
+ ((or (symbol? x) (number? x)) \
+ (object->string x)) \
+ ((char? x) \
+ (string x)) \
+ ((and (string? x) (string-every char-set:printing x)) \
+ x) \
+ (else (error \"Unknown object:\" x)))) \
+(define (obj-to-str x) \
+ (let ((acc '())) \
+ (define (walk x) \
+ (cond ((pair? x) (walk (car x)) (walk (cdr x))) \
+ ((to-string-maybe x) => (lambda (s) (set! acc (cons s acc)))))) \
+ (walk x) \
+ (string-join (reverse! acc)))) \
+(define (gmk-var v) \
+ (gmk-expand (format #f \"$(~a)\" (obj-to-str v)))) \
+(export gmk-expand gmk-eval gmk-var) \
+";
diff --git a/gmk-default.scm b/gmk-default.scm
new file mode 100644
index 0000000..89db652
--- /dev/null
+++ b/gmk-default.scm
@@ -0,0 +1,53 @@
+;; Contents of the (gnu make) Guile module
+;; Copyright (C) 2011-2013 Free Software Foundation, Inc.
+;; This file is part of GNU Make.
+;;
+;; GNU Make is free software; you can redistribute it and/or modify it under
+;; the terms of the GNU General Public License as published by the Free
+;; Software Foundation; either version 3 of the License, or (at your option)
+;; any later version.
+;;
+;; GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
+;; WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+;; FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+;; details.
+;;
+;; You should have received a copy of the GNU General Public License along
+;; with this program. If not, see <http://www.gnu.org/licenses/>.
+
+(define (to-string-maybe x)
+ (cond
+ ;; In GNU make, "false" is the empty string
+ ((or (not x)
+ (unspecified? x)
+ (variable? x)
+ (null? x)
+ (and (string? x) (string-null? x)))
+ #f)
+ ;; We want something not false... not sure about this
+ ((eq? x #t) "#t")
+ ;; Basics
+ ((or (symbol? x) (number? x))
+ (object->string x))
+ ((char? x)
+ (string x))
+ ;; Printable string (no special characters)
+ ((and (string? x) (string-every char-set:printing x))
+ x)
+ ;; No idea: fail
+ (else (error "Unknown object:" x))))
+
+(define (obj-to-str x)
+ (let ((acc '()))
+ (define (walk x)
+ (cond ((pair? x) (walk (car x)) (walk (cdr x)))
+ ((to-string-maybe x) => (lambda (s) (set! acc (cons s acc))))))
+ (walk x)
+ (string-join (reverse! acc))))
+
+;; Return the value of the GNU make variable V
+(define (gmk-var v)
+ (gmk-expand (format #f "$(~a)" (obj-to-str v))))
+
+;; Export the public interfaces
+(export gmk-expand gmk-eval gmk-var)
diff --git a/gnumake.h b/gnumake.h
new file mode 100644
index 0000000..94d725e
--- /dev/null
+++ b/gnumake.h
@@ -0,0 +1,79 @@
+/* External interfaces usable by dynamic objects loaded into GNU Make.
+ --THIS API IS A "TECHNOLOGY PREVIEW" ONLY. IT IS NOT A STABLE INTERFACE--
+
+Copyright (C) 2013 Free Software Foundation, Inc.
+This file is part of GNU Make.
+
+GNU Make is free software; you can redistribute it and/or modify it under the
+terms of the GNU General Public License as published by the Free Software
+Foundation; either version 3 of the License, or (at your option) any later
+version.
+
+GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with
+this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef _GNUMAKE_H_
+#define _GNUMAKE_H_
+
+/* Specify the location of elements read from makefiles. */
+typedef struct
+ {
+ const char *filenm;
+ unsigned long lineno;
+ } gmk_floc;
+
+typedef char *(*gmk_func_ptr)(const char *nm, unsigned int argc, char **argv);
+
+#ifdef _WIN32
+# ifdef GMK_BUILDING_MAKE
+# define GMK_EXPORT __declspec(dllexport)
+# else
+# define GMK_EXPORT __declspec(dllimport)
+# endif
+#else
+# define GMK_EXPORT
+#endif
+
+/* Free memory returned by the gmk_expand() function. */
+GMK_EXPORT void gmk_free (char *str);
+
+/* Allocate memory in GNU make's context. */
+GMK_EXPORT char *gmk_alloc (unsigned int len);
+
+/* Run $(eval ...) on the provided string BUFFER. */
+GMK_EXPORT void gmk_eval (const char *buffer, const gmk_floc *floc);
+
+/* Run GNU make expansion on the provided string STR.
+ Returns an allocated buffer that the caller must free with gmk_free(). */
+GMK_EXPORT char *gmk_expand (const char *str);
+
+/* Register a new GNU make function NAME (maximum of 255 chars long).
+ When the function is expanded in the makefile, FUNC will be invoked with
+ the appropriate arguments.
+
+ The return value of FUNC must be either NULL, in which case it expands to
+ the empty string, or a pointer to the result of the expansion in a string
+ created by gmk_alloc(). GNU make will free the memory when it's done.
+
+ MIN_ARGS is the minimum number of arguments the function requires.
+ MAX_ARGS is the maximum number of arguments (or 0 if there's no maximum).
+ MIN_ARGS and MAX_ARGS may not exceed 255.
+
+ The FLAGS value may be GMK_FUNC_DEFAULT, or one or more of the following
+ flags OR'd together:
+
+ GMK_FUNC_NOEXPAND: the arguments to the function will be not be expanded
+ before FUNC is called.
+*/
+GMK_EXPORT void gmk_add_function (const char *name, gmk_func_ptr func,
+ unsigned int min_args, unsigned int max_args,
+ unsigned int flags);
+
+#define GMK_FUNC_DEFAULT 0x00
+#define GMK_FUNC_NOEXPAND 0x01
+
+#endif /* _GNUMAKE_H_ */
diff --git a/guile.c b/guile.c
new file mode 100644
index 0000000..499585c
--- /dev/null
+++ b/guile.c
@@ -0,0 +1,146 @@
+/* GNU Guile interface for GNU Make.
+Copyright (C) 2011-2013 Free Software Foundation, Inc.
+This file is part of GNU Make.
+
+GNU Make is free software; you can redistribute it and/or modify it under the
+terms of the GNU General Public License as published by the Free Software
+Foundation; either version 3 of the License, or (at your option) any later
+version.
+
+GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with
+this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "makeint.h"
+#include "gnumake.h"
+
+#include "debug.h"
+#include "filedef.h"
+#include "dep.h"
+#include "variable.h"
+
+#include <libguile.h>
+
+/* Pre-2.0 versions of Guile don't have a typedef for gsubr function types. */
+#if SCM_MAJOR_VERSION < 2
+# define GSUBR_TYPE SCM (*) ()
+/* Guile 1.x doesn't really support i18n. */
+# define EVAL_STRING(_s) scm_c_eval_string (_s)
+#else
+# define GSUBR_TYPE scm_t_subr
+# define EVAL_STRING(_s) scm_eval_string (scm_from_utf8_string (_s))
+#endif
+
+static SCM make_mod = SCM_EOL;
+static SCM obj_to_str = SCM_EOL;
+
+/* Convert an SCM object into a string. */
+static char *
+cvt_scm_to_str (SCM obj)
+{
+ return scm_to_locale_string (scm_call_1 (obj_to_str, obj));
+}
+
+/* Perform the GNU make expansion function. */
+static SCM
+guile_expand_wrapper (SCM obj)
+{
+ char *str = cvt_scm_to_str (obj);
+ SCM ret;
+ char *res;
+
+ DB (DB_BASIC, (_("guile: Expanding '%s'\n"), str));
+ res = gmk_expand (str);
+ ret = scm_from_locale_string (res);
+
+ free (str);
+ free (res);
+
+ return ret;
+}
+
+/* Perform the GNU make eval function. */
+static SCM
+guile_eval_wrapper (SCM obj)
+{
+ char *str = cvt_scm_to_str (obj);
+
+ DB (DB_BASIC, (_("guile: Evaluating '%s'\n"), str));
+ gmk_eval (str, 0);
+
+ return SCM_BOOL_F;
+}
+
+/* Invoked by scm_c_define_module(), in the context of the GNU make module. */
+static void
+guile_define_module (void *data UNUSED)
+{
+/* Ingest the predefined Guile module for GNU make. */
+#include "gmk-default.h"
+
+ /* Register a subr for GNU make's eval capability. */
+ scm_c_define_gsubr ("gmk-expand", 1, 0, 0, (GSUBR_TYPE) guile_expand_wrapper);
+
+ /* Register a subr for GNU make's eval capability. */
+ scm_c_define_gsubr ("gmk-eval", 1, 0, 0, (GSUBR_TYPE) guile_eval_wrapper);
+
+ /* Define the rest of the module. */
+ scm_c_eval_string (GUILE_module_defn);
+}
+
+/* Initialize the GNU make Guile module. */
+static void *
+guile_init (void *arg UNUSED)
+{
+ /* Define the module. */
+ make_mod = scm_c_define_module ("gnu make", guile_define_module, NULL);
+
+ /* Get a reference to the object-to-string translator, for later. */
+ obj_to_str = scm_variable_ref (scm_c_module_lookup (make_mod, "obj-to-str"));
+
+ /* Import the GNU make module exports into the generic space. */
+ scm_c_eval_string ("(use-modules (gnu make))");
+
+ return NULL;
+}
+
+static void *
+internal_guile_eval (void *arg)
+{
+ return cvt_scm_to_str (EVAL_STRING (arg));
+}
+
+/* This is the function registered with make */
+static char *
+func_guile (const char *funcname UNUSED, unsigned int argc UNUSED, char **argv)
+{
+ static int init = 0;
+
+ if (! init)
+ {
+ /* Initialize the Guile interpreter. */
+ scm_with_guile (guile_init, NULL);
+ init = 1;
+ }
+
+ if (argv[0] && argv[0][0] != '\0')
+ return scm_with_guile (internal_guile_eval, argv[0]);
+
+ return NULL;
+}
+
+/* ----- Public interface ----- */
+
+/* We could send the flocp to define_new_function(), but since guile is
+ "kind of" built-in, that didn't seem so useful. */
+int
+guile_gmake_setup (const gmk_floc *flocp UNUSED)
+{
+ /* Create a make function "guile". */
+ gmk_add_function ("guile", func_guile, 0, 1, GMK_FUNC_DEFAULT);
+
+ return 1;
+}
diff --git a/hash.c b/hash.c
index b91447c..ca2d02d 100644
--- a/hash.c
+++ b/hash.c
@@ -14,10 +14,10 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
#include "hash.h"
-#define CALLOC(t, n) ((t *) calloc (sizeof (t), (n)))
+#define CALLOC(t, n) ((t *) xcalloc (sizeof (t) * (n)))
#define MALLOC(t, n) ((t *) xmalloc (sizeof (t) * (n)))
#define REALLOC(o, t, n) ((t *) xrealloc ((o), sizeof (t) * (n)))
#define CLONE(o, t, n) ((t *) memcpy (MALLOC (t, (n)), (o), sizeof (t) * (n)))
@@ -26,7 +26,7 @@ static void hash_rehash __P((struct hash_table* ht));
static unsigned long round_up_2 __P((unsigned long rough));
/* Implement double hashing with open addressing. The table size is
- always a power of two. The secondary (`increment') hash function
+ always a power of two. The secondary ('increment') hash function
is forced to return an odd-value, in order to be relatively prime
to the table size. This guarantees that the increment can
potentially hit every slot in the table during collision
@@ -61,7 +61,7 @@ hash_init (struct hash_table *ht, unsigned long size,
ht->ht_compare = hash_cmp;
}
-/* Load an array of items into `ht'. */
+/* Load an array of items into 'ht'. */
void
hash_load (struct hash_table *ht, void *item_table,
@@ -75,9 +75,9 @@ hash_load (struct hash_table *ht, void *item_table,
}
}
-/* Returns the address of the table slot matching `key'. If `key' is
+/* Returns the address of the table slot matching 'key'. If 'key' is
not found, return the address of an empty slot suitable for
- inserting `key'. The caller is responsible for incrementing
+ inserting 'key'. The caller is responsible for incrementing
ht_fill on insertion. */
void **
diff --git a/hash.h b/hash.h
index 2c78e63..960cbd7 100644
--- a/hash.h
+++ b/hash.h
@@ -28,9 +28,9 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
#else /* Not C++ or ANSI C. */
# undef __P
# define __P(protos) ()
-/* We can get away without defining `const' here only because in this file
- it is used only inside the prototype for `fnmatch', which is elided in
- non-ANSI C where `const' is problematical. */
+/* We can get away without defining 'const' here only because in this file
+ it is used only inside the prototype for 'fnmatch', which is elided in
+ non-ANSI C where 'const' is problematical. */
#endif /* C++ or ANSI C. */
typedef unsigned long (*hash_func_t) __P((void const *key));
@@ -41,6 +41,9 @@ typedef void (*hash_map_arg_func_t) __P((void const *item, void *arg));
struct hash_table
{
void **ht_vec;
+ hash_func_t ht_hash_1; /* primary hash function */
+ hash_func_t ht_hash_2; /* secondary hash function */
+ hash_cmp_func_t ht_compare; /* comparison function */
unsigned long ht_size; /* total number of slots (power of 2) */
unsigned long ht_capacity; /* usable slots, limited by loading-factor */
unsigned long ht_fill; /* items in table */
@@ -48,9 +51,6 @@ struct hash_table
unsigned long ht_collisions; /* # of failed calls to comparison function */
unsigned long ht_lookups; /* # of queries */
unsigned int ht_rehashes; /* # of times we've expanded table */
- hash_func_t ht_hash_1; /* primary hash function */
- hash_func_t ht_hash_2; /* secondary hash function */
- hash_cmp_func_t ht_compare; /* comparison function */
};
typedef int (*qsort_cmp_t) __P((void const *, void const *));
diff --git a/implicit.c b/implicit.c
index 5f98108..5fedec0 100644
--- a/implicit.c
+++ b/implicit.c
@@ -1,7 +1,5 @@
/* Implicit rule searching for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,7 +14,7 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
#include "filedef.h"
#include "rule.h"
#include "dep.h"
@@ -37,7 +35,7 @@ static int pattern_search (struct file *file, int archive,
int
try_implicit_rule (struct file *file, unsigned int depth)
{
- DBF (DB_IMPLICIT, _("Looking for an implicit rule for `%s'.\n"));
+ DBF (DB_IMPLICIT, _("Looking for an implicit rule for '%s'.\n"));
/* The order of these searches was previously reversed. My logic now is
that since the non-archive search uses more information in the target
@@ -53,7 +51,7 @@ try_implicit_rule (struct file *file, unsigned int depth)
if (ar_name (file->name))
{
DBF (DB_IMPLICIT,
- _("Looking for archive-member implicit rule for `%s'.\n"));
+ _("Looking for archive-member implicit rule for '%s'.\n"));
if (pattern_search (file, 1, depth, 0))
return 1;
}
@@ -219,13 +217,10 @@ pattern_search (struct file *file, int archive,
struct file *int_file = 0;
/* List of dependencies found recursively. */
- struct patdeps *deplist
- = xmalloc (max_pattern_deps * sizeof (struct patdeps));
+ unsigned int max_deps = max_pattern_deps;
+ struct patdeps *deplist = xmalloc (max_deps * sizeof (struct patdeps));
struct patdeps *pat = deplist;
- /* All the prerequisites actually found for a rule, after expansion. */
- struct dep *deps;
-
/* Names of possible dependencies are constructed in this buffer. */
char *depname = alloca (namelen + max_pattern_dep_length);
@@ -251,11 +246,9 @@ pattern_search (struct file *file, int archive,
int file_vars_initialized = 0;
/* Nonzero if we have matched a pattern-rule target
- that is not just `%'. */
+ that is not just '%'. */
int specific_rule_matched = 0;
- struct dep dep_simple;
-
unsigned int ri; /* uninit checks OK */
struct rule *rule;
@@ -402,10 +395,10 @@ pattern_search (struct file *file, int archive,
target in MATCHES. If several targets of the same rule match,
that rule will be in TRYRULES more than once. */
tryrules[nrules].rule = rule;
- tryrules[nrules].matches = ti;
+ tryrules[nrules].matches = ti;
tryrules[nrules].stemlen = stemlen + (check_lastslash ? pathlen : 0);
tryrules[nrules].order = nrules;
- tryrules[nrules].checked_lastslash = check_lastslash;
+ tryrules[nrules].checked_lastslash = check_lastslash;
++nrules;
}
}
@@ -488,7 +481,14 @@ pattern_search (struct file *file, int archive,
dir = pathdir;
}
- DBS (DB_IMPLICIT, (_("Trying pattern rule with stem `%.*s'.\n"),
+ if (stemlen > GET_PATH_MAX)
+ {
+ DBS (DB_IMPLICIT, (_("Stem too long: '%.*s'.\n"),
+ (int) stemlen, stem));
+ continue;
+ }
+
+ DBS (DB_IMPLICIT, (_("Trying pattern rule with stem '%.*s'.\n"),
(int) stemlen, stem));
strncpy (stem_str, stem, stemlen);
@@ -530,11 +530,9 @@ pattern_search (struct file *file, int archive,
/* If we don't need a second expansion, just replace the %. */
if (! dep->need_2nd_expansion)
{
- dep_simple = *dep;
- dep_simple.next = 0;
p = strchr (nptr, '%');
if (p == 0)
- dep_simple.name = nptr;
+ strcpy (depname, nptr);
else
{
char *o = depname;
@@ -548,13 +546,19 @@ pattern_search (struct file *file, int archive,
memcpy (o, stem_str, stemlen);
o += stemlen;
strcpy (o, p + 1);
- dep_simple.name = strcache_add (depname);
}
- dl = &dep_simple;
+
+ /* Parse the expanded string. It might have wildcards. */
+ p = depname;
+ dl = PARSE_SIMPLE_SEQ (&p, struct dep);
+ for (d = dl; d != NULL; d = d->next)
+ {
+ ++deps_found;
+ d->ignore_mtime = dep->ignore_mtime;
+ }
/* We've used up this dep, so next time get a new one. */
nptr = 0;
- ++deps_found;
}
/* We have to perform second expansion on this prereq. In an
@@ -570,6 +574,7 @@ pattern_search (struct file *file, int archive,
{
int add_dir = 0;
unsigned int len;
+ struct dep **dptr;
nptr = get_next_word (nptr, &len);
if (nptr == 0)
@@ -612,6 +617,9 @@ pattern_search (struct file *file, int archive,
add_dir = 1;
}
+ /* Set up for the next word. */
+ nptr += len;
+
/* Initialize and set file variables if we haven't already
done so. */
if (!file_vars_initialized)
@@ -630,32 +638,47 @@ pattern_search (struct file *file, int archive,
/* Perform the 2nd expansion. */
p = variable_expand_for_file (depname, file);
+ dptr = &dl;
- /* Parse the expanded string. */
- dl = PARSE_FILE_SEQ (&p, struct dep, order_only ? '\0' : '|',
- add_dir ? dir : NULL, 0);
-
- for (d = dl; d != NULL; d = d->next)
+ /* Parse the results into a deps list. */
+ do
{
- ++deps_found;
- if (order_only)
- d->ignore_mtime = 1;
- }
+ /* Parse the expanded string. */
+ struct dep *dp = PARSE_FILE_SEQ (&p, struct dep,
+ order_only ? MAP_NUL : MAP_PIPE,
+ add_dir ? dir : NULL, PARSEFS_NONE);
+ *dptr = dp;
- /* Set up for the next word. */
- nptr += len;
+ for (d = dp; d != NULL; d = d->next)
+ {
+ ++deps_found;
+ if (order_only)
+ d->ignore_mtime = 1;
+ dptr = &d->next;
+ }
+
+ /* If we stopped due to an order-only token, note it. */
+ if (*p == '|')
+ {
+ order_only = 1;
+ ++p;
+ }
+ }
+ while (*p != '\0');
}
/* If there are more than max_pattern_deps prerequisites (due to
2nd expansion), reset it and realloc the arrays. */
- if (deps_found > max_pattern_deps)
+ if (deps_found > max_deps)
{
unsigned int l = pat - deplist;
+ /* This might have changed due to recursion. */
+ max_pattern_deps = MAX(max_pattern_deps, deps_found);
+ max_deps = max_pattern_deps;
deplist = xrealloc (deplist,
- deps_found * sizeof (struct patdeps));
+ max_deps * sizeof (struct patdeps));
pat = deplist + l;
- max_pattern_deps = deps_found;
}
/* Go through the nameseq and handle each as a prereq name. */
@@ -671,8 +694,8 @@ pattern_search (struct file *file, int archive,
second pass either since we know that will fail. */
DBS (DB_IMPLICIT,
(is_rule
- ? _("Rejecting impossible rule prerequisite `%s'.\n")
- : _("Rejecting impossible implicit prerequisite `%s'.\n"),
+ ? _("Rejecting impossible rule prerequisite '%s'.\n")
+ : _("Rejecting impossible implicit prerequisite '%s'.\n"),
d->name));
tryrules[ri].rule = 0;
@@ -685,8 +708,8 @@ pattern_search (struct file *file, int archive,
DBS (DB_IMPLICIT,
(is_rule
- ? _("Trying rule prerequisite `%s'.\n")
- : _("Trying implicit prerequisite `%s'.\n"), d->name));
+ ? _("Trying rule prerequisite '%s'.\n")
+ : _("Trying implicit prerequisite '%s'.\n"), d->name));
/* If this prereq is also explicitly mentioned for FILE,
skip all tests below since it must be built no matter
@@ -725,7 +748,7 @@ pattern_search (struct file *file, int archive,
if (vname)
{
DBS (DB_IMPLICIT,
- (_("Found prerequisite `%s' as VPATH `%s'\n"),
+ (_("Found prerequisite '%s' as VPATH '%s'\n"),
d->name, vname));
(pat++)->name = d->name;
continue;
@@ -739,7 +762,7 @@ pattern_search (struct file *file, int archive,
if (intermed_ok)
{
DBS (DB_IMPLICIT,
- (_("Looking for a rule with intermediate file `%s'.\n"),
+ (_("Looking for a rule with intermediate file '%s'.\n"),
d->name));
if (int_file == 0)
@@ -755,8 +778,8 @@ pattern_search (struct file *file, int archive,
pat->pattern = int_file->name;
int_file->name = d->name;
pat->file = int_file;
- (pat++)->name = d->name;
int_file = 0;
+ (pat++)->name = d->name;
continue;
}
@@ -777,8 +800,7 @@ pattern_search (struct file *file, int archive,
}
/* Free the ns chain. */
- if (dl != &dep_simple)
- free_dep_chain (dl);
+ free_dep_chain (dl);
if (failed)
break;
@@ -788,17 +810,14 @@ pattern_search (struct file *file, int archive,
file->stem = 0;
- /* This rule is no longer `in use' for recursive searches. */
+ /* This rule is no longer 'in use' for recursive searches. */
rule->in_use = 0;
if (! failed)
/* This pattern rule does apply. Stop looking for one. */
break;
- /* This pattern rule does not apply. If some of its dependencies
- succeeded, free the data structure describing them. */
- /* free_idep_chain (deps); */
- deps = 0;
+ /* This pattern rule does not apply. Keep looking. */
}
/* If we found an applicable rule without intermediate files, don't try
@@ -890,8 +909,8 @@ pattern_search (struct file *file, int archive,
/* If the file actually existed (was not an intermediate file), and
the rule that found it was a terminal one, then we want to mark
the found file so that it will not have implicit rule search done
- for it. If we are not entering a `struct file' for it now, we
- indicate this with the `changed' flag. */
+ for it. If we are not entering a 'struct file' for it now, we
+ indicate this with the 'changed' flag. */
if (dep->file == 0)
dep->changed = 1;
else
@@ -935,7 +954,7 @@ pattern_search (struct file *file, int archive,
}
/* If this rule builds other targets, too, put the others into FILE's
- `also_make' member. */
+ 'also_make' member. */
if (rule->num > 1)
for (ri = 0; ri < rule->num; ++ri)
diff --git a/job.c b/job.c
index aacfb84..febfac0 100644
--- a/job.c
+++ b/job.c
@@ -1,7 +1,5 @@
/* Job execution and handling for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,7 +14,7 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
#include <assert.h>
@@ -108,6 +106,7 @@ static void vmsWaitForChildren (int *);
# include "sub_proc.h"
# include "w32err.h"
# include "pathstuff.h"
+# define WAIT_NOHANG 1
#endif /* WINDOWS32 */
#ifdef __EMX__
@@ -119,13 +118,13 @@ static void vmsWaitForChildren (int *);
#endif
#ifdef HAVE_WAITPID
-# define WAIT_NOHANG(status) waitpid (-1, (status), WNOHANG)
-#else /* Don't have waitpid. */
+# define WAIT_NOHANG(status) waitpid (-1, (status), WNOHANG)
+#else /* Don't have waitpid. */
# ifdef HAVE_WAIT3
# ifndef wait3
extern int wait3 ();
# endif
-# define WAIT_NOHANG(status) wait3 ((status), WNOHANG, (struct rusage *) 0)
+# define WAIT_NOHANG(status) wait3 ((status), WNOHANG, (struct rusage *) 0)
# endif /* Have wait3. */
#endif /* Have waitpid. */
@@ -133,7 +132,7 @@ extern int wait3 ();
int wait ();
#endif
-#ifndef HAVE_UNION_WAIT
+#ifndef HAVE_UNION_WAIT
# define WAIT_T int
@@ -153,7 +152,7 @@ int wait ();
# define WIFEXITED(x) (WTERMSIG (x) == 0)
# endif
-#else /* Have `union wait'. */
+#else /* Have 'union wait'. */
# define WAIT_T union wait
# ifndef WTERMSIG
@@ -172,7 +171,7 @@ int wait ();
# define WIFEXITED(x) (WTERMSIG(x) == 0)
# endif
-#endif /* Don't have `union wait'. */
+#endif /* Don't have 'union wait'. */
#if !defined(HAVE_UNISTD_H) && !defined(WINDOWS32)
int dup2 ();
@@ -224,7 +223,7 @@ struct child *children = 0;
unsigned int job_slots_used = 0;
-/* Nonzero if the `good' standard input is in use. */
+/* Nonzero if the 'good' standard input is in use. */
static int good_stdin_used = 0;
@@ -244,14 +243,15 @@ unsigned long job_counter = 0;
unsigned int jobserver_tokens = 0;
+
#ifdef WINDOWS32
/*
- * The macro which references this function is defined in make.h.
+ * The macro which references this function is defined in makeint.h.
*/
int
-w32_kill(pid_t pid, int sig)
+w32_kill (pid_t pid, int sig)
{
- return ((process_kill((HANDLE)pid, sig) == TRUE) ? 0 : -1);
+ return ((process_kill ((HANDLE)pid, sig) == TRUE) ? 0 : -1);
}
/* This function creates a temporary file name with an extension specified
@@ -264,9 +264,18 @@ create_batch_file (char const *base, int unixy, int *fd)
const char *const ext = unixy ? "sh" : "bat";
const char *error_string = NULL;
char temp_path[MAXPATHLEN]; /* need to know its length */
- unsigned path_size = GetTempPath(sizeof temp_path, temp_path);
+ unsigned path_size = GetTempPath (sizeof temp_path, temp_path);
int path_is_dot = 0;
- unsigned uniq = 1;
+ /* The following variable is static so we won't try to reuse a name
+ that was generated a little while ago, because that file might
+ not be on disk yet, since we use FILE_ATTRIBUTE_TEMPORARY below,
+ which tells the OS it doesn't need to flush the cache to disk.
+ If the file is not yet on disk, we might think the name is
+ available, while it really isn't. This happens in parallel
+ builds, where Make doesn't wait for one job to finish before it
+ launches the next one. */
+ static unsigned uniq = 0;
+ static int second_loop = 0;
const unsigned sizemax = strlen (base) + strlen (ext) + 10;
if (path_size == 0)
@@ -275,9 +284,19 @@ create_batch_file (char const *base, int unixy, int *fd)
path_is_dot = 1;
}
+ ++uniq;
+ if (uniq >= 0x10000 && !second_loop)
+ {
+ /* If we already had 64K batch files in this
+ process, make a second loop through the numbers,
+ looking for free slots, i.e. files that were
+ deleted in the meantime. */
+ second_loop = 1;
+ uniq = 1;
+ }
while (path_size > 0 &&
path_size + sizemax < sizeof temp_path &&
- uniq < 0x10000)
+ !(uniq >= 0x10000 && second_loop))
{
unsigned size = sprintf (temp_path + path_size,
"%s%s-%x.%s",
@@ -294,10 +313,17 @@ create_batch_file (char const *base, int unixy, int *fd)
if (h == INVALID_HANDLE_VALUE)
{
- const DWORD er = GetLastError();
+ const DWORD er = GetLastError ();
if (er == ERROR_FILE_EXISTS || er == ERROR_ALREADY_EXISTS)
- ++uniq;
+ {
+ ++uniq;
+ if (uniq == 0x10000 && !second_loop)
+ {
+ second_loop = 1;
+ uniq = 1;
+ }
+ }
/* the temporary path is not guaranteed to exist */
else if (path_is_dot == 0)
@@ -373,11 +399,12 @@ _is_unixy_shell (const char *path)
if (*name == '/' || *name == '\\') name++;
i = 0;
- while (known_os2shells[i] != NULL) {
- if (strcasecmp (name, known_os2shells[i]) == 0)
- return 0; /* not a unix shell */
- i++;
- }
+ while (known_os2shells[i] != NULL)
+ {
+ if (strcasecmp (name, known_os2shells[i]) == 0)
+ return 0; /* not a unix shell */
+ i++;
+ }
/* in doubt assume a unix like shell */
return 1;
@@ -388,8 +415,8 @@ _is_unixy_shell (const char *path)
int
is_bourne_compatible_shell (const char *path)
{
- /* list of known unix (Bourne-like) shells */
- const char *unix_shells[] = {
+ /* List of known POSIX (or POSIX-ish) shells. */
+ static const char *unix_shells[] = {
"sh",
"bash",
"ksh",
@@ -399,7 +426,7 @@ is_bourne_compatible_shell (const char *path)
"dash",
NULL
};
- unsigned i, len;
+ const char **s;
/* find the rightmost '/' or '\\' */
const char *name = strrchr (path, '/');
@@ -412,20 +439,21 @@ is_bourne_compatible_shell (const char *path)
else if (!name) /* name and p must be 0 */
name = path;
- if (*name == '/' || *name == '\\') name++;
+ if (*name == '/' || *name == '\\')
+ ++name;
/* this should be able to deal with extensions on Windows-like systems */
- for (i = 0; unix_shells[i] != NULL; i++) {
- len = strlen(unix_shells[i]);
+ for (s = unix_shells; *s != NULL; ++s)
+ {
#if defined(WINDOWS32) || defined(__MSDOS__)
- if ((strncasecmp (name, unix_shells[i], len) == 0) &&
- (strlen(name) >= len && (name[len] == '\0' || name[len] == '.')))
+ unsigned int len = strlen (*s);
+ if ((strlen (name) >= len && STOP_SET (name[len], MAP_DOT|MAP_NUL))
+ && strncasecmp (name, *s, len) == 0)
#else
- if ((strncmp (name, unix_shells[i], len) == 0) &&
- (strlen(name) >= len && name[len] == '\0'))
+ if (strcmp (name, *s) == 0)
#endif
- return 1; /* a known unix-style shell */
- }
+ return 1; /* a known unix-style shell */
+ }
/* if not on the list, assume it's not a Bourne-like shell */
return 0;
@@ -437,28 +465,60 @@ is_bourne_compatible_shell (const char *path)
Append "(ignored)" if IGNORED is nonzero. */
static void
-child_error (const char *target_name,
+child_error (struct child *child,
int exit_code, int exit_sig, int coredump, int ignored)
{
+ const char *pre = "*** ";
+ const char *post = "";
+ const char *dump = "";
+ const struct file *f = child->file;
+ const gmk_floc *flocp = &f->cmds->fileinfo;
+ const char *nm;
+
if (ignored && silent_flag)
return;
+ if (exit_sig && coredump)
+ dump = _(" (core dumped)");
+
+ if (ignored)
+ {
+ pre = "";
+ post = _(" (ignored)");
+ }
+
+ if (! flocp->filenm)
+ nm = _("<builtin>");
+ else
+ {
+ char *a = alloca (strlen (flocp->filenm) + 1 + 11 + 1);
+ sprintf (a, "%s:%lu", flocp->filenm, flocp->lineno);
+ nm = a;
+ }
+
+ OUTPUT_SET (&child->output);
+
+ message (0, _("%s: recipe for target '%s' failed"), nm, f->name);
+
#ifdef VMS
- if (!(exit_code & 1))
- error (NILF,
- (ignored ? _("*** [%s] Error 0x%x (ignored)")
- : _("*** [%s] Error 0x%x")),
- target_name, exit_code);
+ if ((exit_code & 1) != 0)
+ {
+ OUTPUT_UNSET ();
+ return;
+ }
+
+ error (NILF, _("%s[%s] Error 0x%x%s"), pre, f->name, exit_code, post);
#else
if (exit_sig == 0)
- error (NILF, ignored ? _("[%s] Error %d (ignored)") :
- _("*** [%s] Error %d"),
- target_name, exit_code);
+ error (NILF, _("%s[%s] Error %d%s"), pre, f->name, exit_code, post);
else
- error (NILF, "*** [%s] %s%s",
- target_name, strsignal (exit_sig),
- coredump ? _(" (core dumped)") : "");
+ {
+ const char *s = strsignal (exit_sig);
+ error (NILF, _("%s[%s] %s%s%s"), pre, f->name, s, dump, post);
+ }
#endif /* VMS */
+
+ OUTPUT_UNSET ();
}
@@ -498,7 +558,7 @@ child_handler (int sig UNUSED)
extern int shell_function_pid, shell_function_completed;
/* Reap all dead children, storing the returned status and the new command
- state (`cs_finished') in the `file' member of the `struct child' for the
+ state ('cs_finished') in the 'file' member of the 'struct child' for the
dead child, and removing the child from the chain. In addition, if BLOCK
nonzero, we block in this function until we've reaped at least one
complete child, waiting for it to die if necessary. If ERR is nonzero,
@@ -509,9 +569,9 @@ reap_children (int block, int err)
{
#ifndef WINDOWS32
WAIT_T status;
+#endif
/* Initially, assume we have some. */
int reap_more = 1;
-#endif
#ifdef WAIT_NOHANG
# define REAP_MORE reap_more
@@ -533,115 +593,115 @@ reap_children (int block, int err)
int remote = 0;
pid_t pid;
int exit_code, exit_sig, coredump;
- register struct child *lastc, *c;
+ struct child *lastc, *c;
int child_failed;
int any_remote, any_local;
int dontcare;
if (err && block)
- {
+ {
static int printed = 0;
- /* We might block for a while, so let the user know why.
+ /* We might block for a while, so let the user know why.
Only print this message once no matter how many jobs are left. */
- fflush (stdout);
+ fflush (stdout);
if (!printed)
error (NILF, _("*** Waiting for unfinished jobs...."));
printed = 1;
- }
+ }
/* We have one less dead child to reap. As noted in
- child_handler() above, this count is completely unimportant for
- all modern, POSIX-y systems that support wait3() or waitpid().
- The rest of this comment below applies only to early, broken
- pre-POSIX systems. We keep the count only because... it's there...
-
- The test and decrement are not atomic; if it is compiled into:
- register = dead_children - 1;
- dead_children = register;
- a SIGCHLD could come between the two instructions.
- child_handler increments dead_children.
- The second instruction here would lose that increment. But the
- only effect of dead_children being wrong is that we might wait
- longer than necessary to reap a child, and lose some parallelism;
- and we might print the "Waiting for unfinished jobs" message above
- when not necessary. */
+ child_handler() above, this count is completely unimportant for
+ all modern, POSIX-y systems that support wait3() or waitpid().
+ The rest of this comment below applies only to early, broken
+ pre-POSIX systems. We keep the count only because... it's there...
+
+ The test and decrement are not atomic; if it is compiled into:
+ register = dead_children - 1;
+ dead_children = register;
+ a SIGCHLD could come between the two instructions.
+ child_handler increments dead_children.
+ The second instruction here would lose that increment. But the
+ only effect of dead_children being wrong is that we might wait
+ longer than necessary to reap a child, and lose some parallelism;
+ and we might print the "Waiting for unfinished jobs" message above
+ when not necessary. */
if (dead_children > 0)
- --dead_children;
+ --dead_children;
any_remote = 0;
any_local = shell_function_pid != 0;
for (c = children; c != 0; c = c->next)
- {
- any_remote |= c->remote;
- any_local |= ! c->remote;
- DB (DB_JOBS, (_("Live child %p (%s) PID %s %s\n"),
+ {
+ any_remote |= c->remote;
+ any_local |= ! c->remote;
+ DB (DB_JOBS, (_("Live child %p (%s) PID %s %s\n"),
c, c->file->name, pid2str (c->pid),
c->remote ? _(" (remote)") : ""));
#ifdef VMS
- break;
+ break;
#endif
- }
+ }
/* First, check for remote children. */
if (any_remote)
- pid = remote_status (&exit_code, &exit_sig, &coredump, 0);
+ pid = remote_status (&exit_code, &exit_sig, &coredump, 0);
else
- pid = 0;
+ pid = 0;
if (pid > 0)
- /* We got a remote child. */
- remote = 1;
+ /* We got a remote child. */
+ remote = 1;
else if (pid < 0)
- {
+ {
/* A remote status command failed miserably. Punt. */
- remote_status_lose:
- pfatal_with_name ("remote_status");
- }
+ remote_status_lose:
+ pfatal_with_name ("remote_status");
+ }
else
- {
- /* No remote children. Check for local children. */
+ {
+ /* No remote children. Check for local children. */
#if !defined(__MSDOS__) && !defined(_AMIGA) && !defined(WINDOWS32)
- if (any_local)
- {
+ if (any_local)
+ {
#ifdef VMS
- vmsWaitForChildren (&status);
- pid = c->pid;
+ vmsWaitForChildren (&status);
+ pid = c->pid;
#else
#ifdef WAIT_NOHANG
- if (!block)
- pid = WAIT_NOHANG (&status);
- else
+ if (!block)
+ pid = WAIT_NOHANG (&status);
+ else
#endif
- EINTRLOOP(pid, wait (&status));
+ EINTRLOOP(pid, wait (&status));
#endif /* !VMS */
- }
- else
- pid = 0;
+ }
+ else
+ pid = 0;
- if (pid < 0)
- {
+ if (pid < 0)
+ {
/* The wait*() failed miserably. Punt. */
- pfatal_with_name ("wait");
- }
- else if (pid > 0)
- {
- /* We got a child exit; chop the status word up. */
- exit_code = WEXITSTATUS (status);
- exit_sig = WIFSIGNALED (status) ? WTERMSIG (status) : 0;
- coredump = WCOREDUMP (status);
+ pfatal_with_name ("wait");
+ }
+ else if (pid > 0)
+ {
+ /* We got a child exit; chop the status word up. */
+ exit_code = WEXITSTATUS (status);
+ exit_sig = WIFSIGNALED (status) ? WTERMSIG (status) : 0;
+ coredump = WCOREDUMP (status);
/* If we have started jobs in this second, remove one. */
if (job_counter)
--job_counter;
- }
- else
- {
- /* No local children are dead. */
+ }
+ else
+ {
+ /* No local children are dead. */
reap_more = 0;
- if (!block || !any_remote)
+ if (!block || !any_remote)
break;
/* Now try a blocking wait for a remote child. */
@@ -654,32 +714,32 @@ reap_children (int block, int err)
/* We got a remote child. */
remote = 1;
- }
+ }
#endif /* !__MSDOS__, !Amiga, !WINDOWS32. */
#ifdef __MSDOS__
- /* Life is very different on MSDOS. */
- pid = dos_pid - 1;
- status = dos_status;
- exit_code = WEXITSTATUS (status);
- if (exit_code == 0xff)
- exit_code = -1;
- exit_sig = WIFSIGNALED (status) ? WTERMSIG (status) : 0;
- coredump = 0;
+ /* Life is very different on MSDOS. */
+ pid = dos_pid - 1;
+ status = dos_status;
+ exit_code = WEXITSTATUS (status);
+ if (exit_code == 0xff)
+ exit_code = -1;
+ exit_sig = WIFSIGNALED (status) ? WTERMSIG (status) : 0;
+ coredump = 0;
#endif /* __MSDOS__ */
#ifdef _AMIGA
- /* Same on Amiga */
- pid = amiga_pid - 1;
- status = amiga_status;
- exit_code = amiga_status;
- exit_sig = 0;
- coredump = 0;
+ /* Same on Amiga */
+ pid = amiga_pid - 1;
+ status = amiga_status;
+ exit_code = amiga_status;
+ exit_sig = 0;
+ coredump = 0;
#endif /* _AMIGA */
#ifdef WINDOWS32
{
HANDLE hPID;
- int werr;
HANDLE hcTID, hcPID;
+ DWORD dwWaitStatus = 0;
exit_code = 0;
exit_sig = 0;
coredump = 0;
@@ -696,58 +756,69 @@ reap_children (int block, int err)
DWORD e = GetLastError ();
fprintf (stderr,
"Determine main thread ID (Error %ld: %s)\n",
- e, map_windows32_error_to_string(e));
+ e, map_windows32_error_to_string (e));
}
else
DB (DB_VERBOSE, ("Main thread handle = %p\n", main_thread));
}
/* wait for anything to finish */
- hPID = process_wait_for_any();
+ hPID = process_wait_for_any (block, &dwWaitStatus);
if (hPID)
{
-
/* was an error found on this process? */
- werr = process_last_err(hPID);
+ int werr = process_last_err (hPID);
/* get exit data */
- exit_code = process_exit_code(hPID);
+ exit_code = process_exit_code (hPID);
if (werr)
- fprintf(stderr, "make (e=%d): %s",
- exit_code, map_windows32_error_to_string(exit_code));
+ fprintf (stderr, "make (e=%d): %s", exit_code,
+ map_windows32_error_to_string (exit_code));
/* signal */
- exit_sig = process_signal(hPID);
+ exit_sig = process_signal (hPID);
/* cleanup process */
- process_cleanup(hPID);
+ process_cleanup (hPID);
coredump = 0;
}
+ else if (dwWaitStatus == WAIT_FAILED)
+ {
+ /* The WaitForMultipleObjects() failed miserably. Punt. */
+ pfatal_with_name ("WaitForMultipleObjects");
+ }
+ else if (dwWaitStatus == WAIT_TIMEOUT)
+ {
+ /* No child processes are finished. Give up waiting. */
+ reap_more = 0;
+ break;
+ }
+
pid = (pid_t) hPID;
}
#endif /* WINDOWS32 */
- }
+ }
- /* Check if this is the child of the `shell' function. */
+ /* Check if this is the child of the 'shell' function. */
if (!remote && pid == shell_function_pid)
- {
- /* It is. Leave an indicator for the `shell' function. */
- if (exit_sig == 0 && exit_code == 127)
- shell_function_completed = -1;
- else
- shell_function_completed = 1;
- break;
- }
+ {
+ /* It is. Leave an indicator for the 'shell' function. */
+ if (exit_sig == 0 && exit_code == 127)
+ shell_function_completed = -1;
+ else
+ shell_function_completed = 1;
+ break;
+ }
child_failed = exit_sig != 0 || exit_code != 0;
/* Search for a child matching the deceased one. */
lastc = 0;
for (c = children; c != 0; lastc = c, c = c->next)
- if (c->remote == remote && c->pid == pid)
- break;
+ if (c->pid == pid && c->remote == remote)
+ break;
if (c == 0)
/* An unknown child died.
@@ -759,17 +830,23 @@ reap_children (int block, int err)
: _("Reaping winning child %p PID %s %s\n"),
c, pid2str (c->pid), c->remote ? _(" (remote)") : ""));
- if (c->sh_batch_file) {
- DB (DB_JOBS, (_("Cleaning up temp batch file %s\n"),
- c->sh_batch_file));
+ if (c->sh_batch_file)
+ {
+ int rm_status;
- /* just try and remove, don't care if this fails */
- remove (c->sh_batch_file);
+ DB (DB_JOBS, (_("Cleaning up temp batch file %s\n"),
+ c->sh_batch_file));
- /* all done with memory */
- free (c->sh_batch_file);
- c->sh_batch_file = NULL;
- }
+ errno = 0;
+ rm_status = remove (c->sh_batch_file);
+ if (rm_status)
+ DB (DB_JOBS, (_("Cleaning up temp batch file %s failed (%d)\n"),
+ c->sh_batch_file, errno));
+
+ /* all done with memory */
+ free (c->sh_batch_file);
+ c->sh_batch_file = NULL;
+ }
/* If this child had the good stdin, say it is now free. */
if (c->good_stdin)
@@ -784,9 +861,9 @@ reap_children (int block, int err)
static int delete_on_error = -1;
if (!dontcare)
- child_error (c->file->name, exit_code, exit_sig, coredump, 0);
+ child_error (c, exit_code, exit_sig, coredump, 0);
- c->file->update_status = 2;
+ c->file->update_status = us_failed;
if (delete_on_error == -1)
{
struct file *f = lookup_file (".DELETE_ON_ERROR");
@@ -800,8 +877,7 @@ reap_children (int block, int err)
if (child_failed)
{
/* The commands failed, but we don't care. */
- child_error (c->file->name,
- exit_code, exit_sig, coredump, 1);
+ child_error (c, exit_code, exit_sig, coredump, 1);
child_failed = 0;
}
@@ -814,10 +890,16 @@ reap_children (int block, int err)
Since there are more commands that wanted to be run,
the target was not completely remade. So we treat
this as if a command had failed. */
- c->file->update_status = 2;
+ c->file->update_status = us_failed;
}
else
{
+#ifndef NO_OUTPUT_SYNC
+ /* If we're sync'ing per line, write the previous line's
+ output before starting the next one. */
+ if (output_sync == OUTPUT_SYNC_LINE)
+ output_dump (&c->output);
+#endif
/* Check again whether to start remotely.
Whether or not we want to changes over time.
Also, start_remote_job may need state set up
@@ -835,7 +917,7 @@ reap_children (int block, int err)
continue;
}
- if (c->file->update_status != 0)
+ if (c->file->update_status != us_success)
/* We failed to start the commands. */
delete_child_targets (c);
}
@@ -843,12 +925,18 @@ reap_children (int block, int err)
/* There are no more commands. We got through them all
without an unignored error. Now the target has been
successfully updated. */
- c->file->update_status = 0;
+ c->file->update_status = us_success;
}
- /* When we get here, all the commands for C->file are finished
- (or aborted) and C->file->update_status contains 0 or 2. But
- C->file->command_state is still cs_running if all the commands
+ /* When we get here, all the commands for c->file are finished. */
+
+#ifndef NO_OUTPUT_SYNC
+ /* Synchronize any remaining parallel output. */
+ output_dump (&c->output);
+#endif
+
+ /* At this point c->file->update_status is success or failed. But
+ c->file->command_state is still cs_running if all the commands
ran; notice_finish_file looks for cs_running to tell it that
it's interesting to check the file's modtime again now. */
@@ -901,6 +989,8 @@ reap_children (int block, int err)
static void
free_child (struct child *child)
{
+ output_close (&child->output);
+
if (!jobserver_tokens)
fatal (NILF, "INTERNAL: Freeing child %p (%s) but no tokens left!\n",
child, child->file->name);
@@ -908,6 +998,19 @@ free_child (struct child *child)
/* If we're using the jobserver and this child is not the only outstanding
job, put a token back into the pipe for it. */
+#ifdef WINDOWS32
+ if (has_jobserver_semaphore () && jobserver_tokens > 1)
+ {
+ if (! release_jobserver_semaphore ())
+ {
+ DWORD err = GetLastError ();
+ fatal (NILF, _("release jobserver semaphore: (Error %ld: %s)"),
+ err, map_windows32_error_to_string (err));
+ }
+
+ DB (DB_JOBS, (_("Released token for child %p (%s).\n"), child, child->file->name));
+ }
+#else
if (job_fds[1] >= 0 && jobserver_tokens > 1)
{
char token = '+';
@@ -917,11 +1020,12 @@ free_child (struct child *child)
EINTRLOOP (r, write (job_fds[1], &token, 1));
if (r != 1)
- pfatal_with_name (_("write jobserver"));
+ pfatal_with_name (_("write jobserver"));
DB (DB_JOBS, (_("Released token for child %p (%s).\n"),
child, child->file->name));
}
+#endif
--jobserver_tokens;
@@ -932,7 +1036,7 @@ free_child (struct child *child)
{
register unsigned int i;
for (i = 0; i < child->file->cmds->ncommand_lines; ++i)
- free (child->command_lines[i]);
+ free (child->command_lines[i]);
free (child->command_lines);
}
@@ -940,7 +1044,7 @@ free_child (struct child *child)
{
register char **ep = child->environment;
while (*ep != 0)
- free (*ep++);
+ free (*ep++);
free (child->environment);
}
@@ -973,7 +1077,7 @@ unblock_sigs (void)
}
#endif
-#ifdef MAKE_JOBSERVER
+#if defined(MAKE_JOBSERVER) && !defined(WINDOWS32)
RETSIGTYPE
job_noop (int sig UNUSED)
{
@@ -1018,7 +1122,7 @@ set_child_handler_action_flags (int set_handler, int set_alarm)
CHILD is updated to reflect the commands and ID of the child process.
NOTE: On return fatal signals are blocked! The caller is responsible
- for calling `unblock_sigs', once the new child is safely on the chain so
+ for calling 'unblock_sigs', once the new child is safely on the chain so
it can be cleaned up in the event of a fatal signal. */
static void
@@ -1027,9 +1131,8 @@ start_job_command (struct child *child)
#if !defined(_AMIGA) && !defined(WINDOWS32)
static int bad_stdin = -1;
#endif
+ int flags;
char *p;
- /* Must be volatile to silence bogus GCC warning about longjmp/vfork. */
- volatile int flags;
#ifdef VMS
char *argv;
#else
@@ -1043,7 +1146,7 @@ start_job_command (struct child *child)
/* Combine the flags parsed for the line itself with
the flags specified globally for this target. */
flags = (child->file->command_flags
- | child->file->cmds->lines_flags[child->command_line - 1]);
+ | child->file->cmds->lines_flags[child->command_line - 1]);
p = child->command_ptr;
child->noerror = ((flags & COMMANDS_NOERROR) != 0);
@@ -1051,13 +1154,13 @@ start_job_command (struct child *child)
while (*p != '\0')
{
if (*p == '@')
- flags |= COMMANDS_SILENT;
+ flags |= COMMANDS_SILENT;
else if (*p == '+')
- flags |= COMMANDS_RECURSE;
+ flags |= COMMANDS_RECURSE;
else if (*p == '-')
- child->noerror = 1;
+ child->noerror = 1;
else if (!isblank ((unsigned char)*p))
- break;
+ break;
++p;
}
@@ -1070,29 +1173,44 @@ start_job_command (struct child *child)
child->file->cmds->lines_flags[child->command_line - 1]
|= flags & COMMANDS_RECURSE;
- /* Figure out an argument list from this command line. */
+ /* POSIX requires that a recipe prefix after a backslash-newline should
+ be ignored. Remove it now so the output is correct. */
+ {
+ char prefix = child->file->cmds->recipe_prefix;
+ char *p1, *p2;
+ p1 = p2 = p;
+ while (*p1 != '\0')
+ {
+ *(p2++) = *p1;
+ if (p1[0] == '\n' && p1[1] == prefix)
+ ++p1;
+ ++p1;
+ }
+ *p2 = *p1;
+ }
+ /* Figure out an argument list from this command line. */
{
char *end = 0;
#ifdef VMS
argv = p;
#else
argv = construct_command_argv (p, &end, child->file,
- child->file->cmds->lines_flags[child->command_line - 1],
- &child->sh_batch_file);
+ child->file->cmds->lines_flags[child->command_line - 1],
+ &child->sh_batch_file);
#endif
if (end == NULL)
child->command_ptr = NULL;
else
{
- *end++ = '\0';
- child->command_ptr = end;
+ *end++ = '\0';
+ child->command_ptr = end;
}
}
- /* If -q was given, say that updating `failed' if there was any text on the
- command line, or `succeeded' otherwise. The exit status of 1 tells the
- user that -q is saying `something to do'; the exit status for a random
+ /* If -q was given, say that updating 'failed' if there was any text on the
+ command line, or 'succeeded' otherwise. The exit status of 1 tells the
+ user that -q is saying 'something to do'; the exit status for a random
error is 2. */
if (argv != 0 && question_flag && !(flags & COMMANDS_RECURSE))
{
@@ -1100,7 +1218,7 @@ start_job_command (struct child *child)
free (argv[0]);
free (argv);
#endif
- child->file->update_status = 1;
+ child->file->update_status = us_question;
notice_finished_file (child->file);
return;
}
@@ -1108,7 +1226,7 @@ start_job_command (struct child *child)
if (touch_flag && !(flags & COMMANDS_RECURSE))
{
/* Go on to the next command. It might be the recursive one.
- We construct ARGV only to find the end of the command line. */
+ We construct ARGV only to find the end of the command line. */
#ifndef VMS
if (argv)
{
@@ -1127,24 +1245,39 @@ start_job_command (struct child *child)
#endif
/* This line has no commands. Go to the next. */
if (job_next_command (child))
- start_job_command (child);
+ start_job_command (child);
else
- {
- /* No more commands. Make sure we're "running"; we might not be if
+ {
+ /* No more commands. Make sure we're "running"; we might not be if
(e.g.) all commands were skipped due to -n. */
set_command_state (child->file, cs_running);
- child->file->update_status = 0;
- notice_finished_file (child->file);
- }
+ child->file->update_status = us_success;
+ notice_finished_file (child->file);
+ }
+
+ OUTPUT_UNSET();
return;
}
- /* Print out the command. If silent, we call `message' with null so it
- can log the working directory before the command's own error messages
- appear. */
+ /* Are we going to synchronize this command's output? Do so if either we're
+ in SYNC_RECURSE mode or this command is not recursive. We'll also check
+ output_sync separately below in case it changes due to error. */
+ child->output.syncout = output_sync && (output_sync == OUTPUT_SYNC_RECURSE
+ || !(flags & COMMANDS_RECURSE));
- message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag))
- ? "%s" : (char *) 0, p);
+ OUTPUT_SET (&child->output);
+
+#ifndef NO_OUTPUT_SYNC
+ if (! child->output.syncout)
+ /* We don't want to sync this command: to avoid misordered
+ output ensure any already-synced content is written. */
+ output_dump (&child->output);
+#endif
+
+ /* Print the command if appropriate. */
+ if (just_print_flag || trace_flag
+ || (!(flags & COMMANDS_SILENT) && !silent_flag))
+ message (0, "%s", p);
/* Tell update_goal_chain that a command has been started on behalf of
this target. It is important that this happens here and not in
@@ -1164,15 +1297,15 @@ start_job_command (struct child *child)
#if !defined(VMS) && !defined(_AMIGA)
if (
#if defined __MSDOS__ || defined (__EMX__)
- unixy_shell /* the test is complicated and we already did it */
+ unixy_shell /* the test is complicated and we already did it */
#else
- (argv[0] && is_bourne_compatible_shell(argv[0]))
+ (argv[0] && is_bourne_compatible_shell (argv[0]))
#endif
&& (argv[1] && argv[1][0] == '-'
- &&
- ((argv[1][1] == 'c' && argv[1][2] == '\0')
- ||
- (argv[1][1] == 'e' && argv[1][2] == 'c' && argv[1][3] == '\0')))
+ &&
+ ((argv[1][1] == 'c' && argv[1][2] == '\0')
+ ||
+ (argv[1][1] == 'e' && argv[1][2] == 'c' && argv[1][3] == '\0')))
&& (argv[2] && argv[2][0] == ':' && argv[2][1] == '\0')
&& argv[3] == NULL)
{
@@ -1193,6 +1326,9 @@ start_job_command (struct child *child)
goto next_command;
}
+ /* We're sure we're going to invoke a command: set up the output. */
+ output_start ();
+
/* Flush the output streams so they won't have things written twice. */
fflush (stdout);
@@ -1206,26 +1342,26 @@ start_job_command (struct child *child)
if (bad_stdin == -1)
{
/* Make a file descriptor that is the read end of a broken pipe.
- This will be used for some children's standard inputs. */
+ This will be used for some children's standard inputs. */
int pd[2];
if (pipe (pd) == 0)
- {
- /* Close the write side. */
- (void) close (pd[1]);
- /* Save the read side. */
- bad_stdin = pd[0];
-
- /* Set the descriptor to close on exec, so it does not litter any
- child's descriptor table. When it is dup2'd onto descriptor 0,
- that descriptor will not close on exec. */
- CLOSE_ON_EXEC (bad_stdin);
- }
+ {
+ /* Close the write side. */
+ (void) close (pd[1]);
+ /* Save the read side. */
+ bad_stdin = pd[0];
+
+ /* Set the descriptor to close on exec, so it does not litter any
+ child's descriptor table. When it is dup2'd onto descriptor 0,
+ that descriptor will not close on exec. */
+ CLOSE_ON_EXEC (bad_stdin);
+ }
}
#endif /* !WINDOWS32 && !_AMIGA && !__MSDOS__ */
- /* Decide whether to give this child the `good' standard input
- (one that points to the terminal or whatever), or the `bad' one
+ /* Decide whether to give this child the 'good' standard input
+ (one that points to the terminal or whatever), or the 'bad' one
that points to the read side of a broken pipe. */
child->good_stdin = !good_stdin_used;
@@ -1250,21 +1386,21 @@ start_job_command (struct child *child)
{
int is_remote, id, used_stdin;
if (start_remote_job (argv, child->environment,
- child->good_stdin ? 0 : bad_stdin,
- &is_remote, &id, &used_stdin))
+ child->good_stdin ? 0 : bad_stdin,
+ &is_remote, &id, &used_stdin))
/* Don't give up; remote execution may fail for various reasons. If
so, simply run the job locally. */
- goto run_local;
+ goto run_local;
else
- {
- if (child->good_stdin && !used_stdin)
- {
- child->good_stdin = 0;
- good_stdin_used = 0;
- }
- child->remote = is_remote;
- child->pid = id;
- }
+ {
+ if (child->good_stdin && !used_stdin)
+ {
+ child->good_stdin = 0;
+ good_stdin_used = 0;
+ }
+ child->remote = is_remote;
+ child->pid = id;
+ }
}
else
#endif /* !VMS */
@@ -1279,11 +1415,12 @@ start_job_command (struct child *child)
child->remote = 0;
#ifdef VMS
- if (!child_execute_job (argv, child)) {
- /* Fork failed! */
- perror_with_name ("vfork", "");
- goto error;
- }
+ if (!child_execute_job (argv, child))
+ {
+ /* Fork failed! */
+ perror_with_name ("fork", "");
+ goto error;
+ }
#else
@@ -1293,41 +1430,45 @@ start_job_command (struct child *child)
/* If we aren't running a recursive command and we have a jobserver
pipe, close it before exec'ing. */
if (!(flags & COMMANDS_RECURSE) && job_fds[0] >= 0)
- {
- CLOSE_ON_EXEC (job_fds[0]);
- CLOSE_ON_EXEC (job_fds[1]);
- }
+ {
+ CLOSE_ON_EXEC (job_fds[0]);
+ CLOSE_ON_EXEC (job_fds[1]);
+ }
if (job_rfd >= 0)
- CLOSE_ON_EXEC (job_rfd);
+ CLOSE_ON_EXEC (job_rfd);
/* Never use fork()/exec() here! Use spawn() instead in exec_command() */
- child->pid = child_execute_job (child->good_stdin ? 0 : bad_stdin, 1,
+ child->pid = child_execute_job (child->good_stdin ? FD_STDIN : bad_stdin,
+ FD_STDOUT, FD_STDERR,
argv, child->environment);
if (child->pid < 0)
- {
- /* spawn failed! */
- unblock_sigs ();
- perror_with_name ("spawn", "");
- goto error;
- }
+ {
+ /* spawn failed! */
+ unblock_sigs ();
+ perror_with_name ("spawn", "");
+ goto error;
+ }
/* undo CLOSE_ON_EXEC() after the child process has been started */
if (!(flags & COMMANDS_RECURSE) && job_fds[0] >= 0)
- {
- fcntl (job_fds[0], F_SETFD, 0);
- fcntl (job_fds[1], F_SETFD, 0);
- }
+ {
+ fcntl (job_fds[0], F_SETFD, 0);
+ fcntl (job_fds[1], F_SETFD, 0);
+ }
if (job_rfd >= 0)
- fcntl (job_rfd, F_SETFD, 0);
+ fcntl (job_rfd, F_SETFD, 0);
#else /* !__EMX__ */
- child->pid = vfork ();
- environ = parent_environ; /* Restore value child may have clobbered. */
+ child->pid = fork ();
+ environ = parent_environ; /* Restore value child may have clobbered. */
if (child->pid == 0)
- {
- /* We are the child side. */
- unblock_sigs ();
+ {
+ int outfd = FD_STDOUT;
+ int errfd = FD_STDERR;
+
+ /* We are the child side. */
+ unblock_sigs ();
/* If we aren't running a recursive command and we have a jobserver
pipe, close it before exec'ing. */
@@ -1345,21 +1486,30 @@ start_job_command (struct child *child)
setrlimit (RLIMIT_STACK, &stack_limit);
#endif
- child_execute_job (child->good_stdin ? 0 : bad_stdin, 1,
- argv, child->environment);
- }
+ /* Divert child output if output_sync in use. */
+ if (child->output.syncout)
+ {
+ if (child->output.out >= 0)
+ outfd = child->output.out;
+ if (child->output.err >= 0)
+ errfd = child->output.err;
+ }
+
+ child_execute_job (child->good_stdin ? FD_STDIN : bad_stdin,
+ outfd, errfd, argv, child->environment);
+ }
else if (child->pid < 0)
- {
- /* Fork failed! */
- unblock_sigs ();
- perror_with_name ("vfork", "");
- goto error;
- }
+ {
+ /* Fork failed! */
+ unblock_sigs ();
+ perror_with_name ("fork", "");
+ goto error;
+ }
# endif /* !__EMX__ */
#endif /* !VMS */
}
-#else /* __MSDOS__ or Amiga or WINDOWS32 */
+#else /* __MSDOS__ or Amiga or WINDOWS32 */
#ifdef __MSDOS__
{
int proc_return;
@@ -1367,37 +1517,37 @@ start_job_command (struct child *child)
block_sigs ();
dos_status = 0;
- /* We call `system' to do the job of the SHELL, since stock DOS
- shell is too dumb. Our `system' knows how to handle long
+ /* We call 'system' to do the job of the SHELL, since stock DOS
+ shell is too dumb. Our 'system' knows how to handle long
command lines even if pipes/redirection is needed; it will only
call COMMAND.COM when its internal commands are used. */
if (execute_by_shell)
{
- char *cmdline = argv[0];
- /* We don't have a way to pass environment to `system',
- so we need to save and restore ours, sigh... */
- char **parent_environ = environ;
-
- environ = child->environment;
-
- /* If we have a *real* shell, tell `system' to call
- it to do everything for us. */
- if (unixy_shell)
- {
- /* A *real* shell on MSDOS may not support long
- command lines the DJGPP way, so we must use `system'. */
- cmdline = argv[2]; /* get past "shell -c" */
- }
-
- dos_command_running = 1;
- proc_return = system (cmdline);
- environ = parent_environ;
- execute_by_shell = 0; /* for the next time */
+ char *cmdline = argv[0];
+ /* We don't have a way to pass environment to 'system',
+ so we need to save and restore ours, sigh... */
+ char **parent_environ = environ;
+
+ environ = child->environment;
+
+ /* If we have a *real* shell, tell 'system' to call
+ it to do everything for us. */
+ if (unixy_shell)
+ {
+ /* A *real* shell on MSDOS may not support long
+ command lines the DJGPP way, so we must use 'system'. */
+ cmdline = argv[2]; /* get past "shell -c" */
+ }
+
+ dos_command_running = 1;
+ proc_return = system (cmdline);
+ environ = parent_environ;
+ execute_by_shell = 0; /* for the next time */
}
else
{
- dos_command_running = 1;
- proc_return = spawnvpe (P_WAIT, argv[0], argv, child->environment);
+ dos_command_running = 1;
+ proc_return = spawnvpe (P_WAIT, argv[0], argv, child->environment);
}
/* Need to unblock signals before turning off
@@ -1426,7 +1576,7 @@ start_job_command (struct child *child)
amiga_batch_file = 0;
DeleteFile (amiga_bname); /* Ignore errors. */
}
-#endif /* Amiga */
+#endif /* Amiga */
#ifdef WINDOWS32
{
HANDLE hPID;
@@ -1440,26 +1590,35 @@ start_job_command (struct child *child)
*arg0 = '\\';
/* make sure CreateProcess() has Path it needs */
- sync_Path_environment();
-
- hPID = process_easy(argv, child->environment);
+ sync_Path_environment ();
+
+#ifndef NO_OUTPUT_SYNC
+ /* Divert child output if output_sync in use. Don't capture
+ recursive make output unless we are synchronizing "make" mode. */
+ if (child->output.syncout)
+ hPID = process_easy (argv, child->environment,
+ child->output.out, child->output.err);
+ else
+#endif
+ hPID = process_easy (argv, child->environment, -1, -1);
if (hPID != INVALID_HANDLE_VALUE)
child->pid = (pid_t) hPID;
- else {
- int i;
- unblock_sigs();
- fprintf(stderr,
- _("process_easy() failed to launch process (e=%ld)\n"),
- process_last_err(hPID));
- for (i = 0; argv[i]; i++)
- fprintf(stderr, "%s ", argv[i]);
- fprintf(stderr, _("\nCounted %d args in failed launch\n"), i);
- goto error;
- }
+ else
+ {
+ int i;
+ unblock_sigs ();
+ fprintf (stderr,
+ _("process_easy() failed to launch process (e=%ld)\n"),
+ process_last_err (hPID));
+ for (i = 0; argv[i]; i++)
+ fprintf (stderr, "%s ", argv[i]);
+ fprintf (stderr, _("\nCounted %d args in failed launch\n"), i);
+ goto error;
+ }
}
#endif /* WINDOWS32 */
-#endif /* __MSDOS__ or Amiga or WINDOWS32 */
+#endif /* __MSDOS__ or Amiga or WINDOWS32 */
/* Bump the number of jobs started in this second. */
++job_counter;
@@ -1475,17 +1634,18 @@ start_job_command (struct child *child)
free (argv);
#endif
+ OUTPUT_UNSET();
return;
error:
- child->file->update_status = 2;
+ child->file->update_status = us_failed;
notice_finished_file (child->file);
- return;
+ OUTPUT_UNSET();
}
/* Try to start a child running.
Returns nonzero if the child was started (and maybe finished), or zero if
- the load was too high and the child was put on the `waiting_jobs' chain. */
+ the load was too high and the child was put on the 'waiting_jobs' chain. */
static int
start_waiting_job (struct child *c)
@@ -1503,9 +1663,9 @@ start_waiting_job (struct child *c)
if (!c->remote
&& ((job_slots_used > 0 && load_too_high ())
#ifdef WINDOWS32
- || (process_used_slots () >= MAXIMUM_WAIT_OBJECTS)
+ || (process_used_slots () >= MAXIMUM_WAIT_OBJECTS)
#endif
- ))
+ ))
{
/* Put this child on the chain of children waiting for the load average
to go down. */
@@ -1533,7 +1693,7 @@ start_waiting_job (struct child *c)
case cs_not_started:
/* All the command lines turned out to be empty. */
- f->update_status = 0;
+ f->update_status = us_success;
/* FALLTHROUGH */
case cs_finished:
@@ -1549,7 +1709,7 @@ start_waiting_job (struct child *c)
return 1;
}
-/* Create a `struct child' for FILE and start its commands running. */
+/* Create a 'struct child' for FILE and start its commands running. */
void
new_job (struct file *file)
@@ -1569,119 +1729,127 @@ new_job (struct file *file)
/* Chop the commands up into lines if they aren't already. */
chop_commands (cmds);
+ /* Start the command sequence, record it in a new
+ 'struct child', and add that to the chain. */
+
+ c = xcalloc (sizeof (struct child));
+ output_init (&c->output);
+
+ c->file = file;
+ c->sh_batch_file = NULL;
+
+ /* Cache dontcare flag because file->dontcare can be changed once we
+ return. Check dontcare inheritance mechanism for details. */
+ c->dontcare = file->dontcare;
+
+ /* Start saving output in case the expansion uses $(info ...) etc. */
+ OUTPUT_SET (&c->output);
+
/* Expand the command lines and store the results in LINES. */
lines = xmalloc (cmds->ncommand_lines * sizeof (char *));
for (i = 0; i < cmds->ncommand_lines; ++i)
{
/* Collapse backslash-newline combinations that are inside variable
- or function references. These are left alone by the parser so
- that they will appear in the echoing of commands (where they look
- nice); and collapsed by construct_command_argv when it tokenizes.
- But letting them survive inside function invocations loses because
- we don't want the functions to see them as part of the text. */
+ or function references. These are left alone by the parser so
+ that they will appear in the echoing of commands (where they look
+ nice); and collapsed by construct_command_argv when it tokenizes.
+ But letting them survive inside function invocations loses because
+ we don't want the functions to see them as part of the text. */
char *in, *out, *ref;
/* IN points to where in the line we are scanning.
- OUT points to where in the line we are writing.
- When we collapse a backslash-newline combination,
- IN gets ahead of OUT. */
+ OUT points to where in the line we are writing.
+ When we collapse a backslash-newline combination,
+ IN gets ahead of OUT. */
in = out = cmds->command_lines[i];
while ((ref = strchr (in, '$')) != 0)
- {
- ++ref; /* Move past the $. */
-
- if (out != in)
- /* Copy the text between the end of the last chunk
- we processed (where IN points) and the new chunk
- we are about to process (where REF points). */
- memmove (out, in, ref - in);
-
- /* Move both pointers past the boring stuff. */
- out += ref - in;
- in = ref;
-
- if (*ref == '(' || *ref == '{')
- {
- char openparen = *ref;
- char closeparen = openparen == '(' ? ')' : '}';
- int count;
- char *p;
-
- *out++ = *in++; /* Copy OPENPAREN. */
- /* IN now points past the opening paren or brace.
- Count parens or braces until it is matched. */
- count = 0;
- while (*in != '\0')
- {
- if (*in == closeparen && --count < 0)
- break;
- else if (*in == '\\' && in[1] == '\n')
- {
- /* We have found a backslash-newline inside a
- variable or function reference. Eat it and
- any following whitespace. */
-
- int quoted = 0;
- for (p = in - 1; p > ref && *p == '\\'; --p)
- quoted = !quoted;
-
- if (quoted)
- /* There were two or more backslashes, so this is
- not really a continuation line. We don't collapse
- the quoting backslashes here as is done in
- collapse_continuations, because the line will
- be collapsed again after expansion. */
- *out++ = *in++;
- else
- {
- /* Skip the backslash, newline and
- any following whitespace. */
- in = next_token (in + 2);
-
- /* Discard any preceding whitespace that has
- already been written to the output. */
- while (out > ref
- && isblank ((unsigned char)out[-1]))
- --out;
-
- /* Replace it all with a single space. */
- *out++ = ' ';
- }
- }
- else
- {
- if (*in == openparen)
- ++count;
-
- *out++ = *in++;
- }
- }
- }
- }
+ {
+ ++ref; /* Move past the $. */
+
+ if (out != in)
+ /* Copy the text between the end of the last chunk
+ we processed (where IN points) and the new chunk
+ we are about to process (where REF points). */
+ memmove (out, in, ref - in);
+
+ /* Move both pointers past the boring stuff. */
+ out += ref - in;
+ in = ref;
+
+ if (*ref == '(' || *ref == '{')
+ {
+ char openparen = *ref;
+ char closeparen = openparen == '(' ? ')' : '}';
+ char *outref;
+ int count;
+ char *p;
+
+ *out++ = *in++; /* Copy OPENPAREN. */
+ outref = out;
+ /* IN now points past the opening paren or brace.
+ Count parens or braces until it is matched. */
+ count = 0;
+ while (*in != '\0')
+ {
+ if (*in == closeparen && --count < 0)
+ break;
+ else if (*in == '\\' && in[1] == '\n')
+ {
+ /* We have found a backslash-newline inside a
+ variable or function reference. Eat it and
+ any following whitespace. */
+
+ int quoted = 0;
+ for (p = in - 1; p > ref && *p == '\\'; --p)
+ quoted = !quoted;
+
+ if (quoted)
+ /* There were two or more backslashes, so this is
+ not really a continuation line. We don't collapse
+ the quoting backslashes here as is done in
+ collapse_continuations, because the line will
+ be collapsed again after expansion. */
+ *out++ = *in++;
+ else
+ {
+ /* Skip the backslash, newline and
+ any following whitespace. */
+ in = next_token (in + 2);
+
+ /* Discard any preceding whitespace that has
+ already been written to the output. */
+ while (out > outref
+ && isblank ((unsigned char)out[-1]))
+ --out;
+
+ /* Replace it all with a single space. */
+ *out++ = ' ';
+ }
+ }
+ else
+ {
+ if (*in == openparen)
+ ++count;
+
+ *out++ = *in++;
+ }
+ }
+ }
+ }
/* There are no more references in this line to worry about.
- Copy the remaining uninteresting text to the output. */
+ Copy the remaining uninteresting text to the output. */
if (out != in)
- memmove (out, in, strlen (in) + 1);
+ memmove (out, in, strlen (in) + 1);
/* Finally, expand the line. */
lines[i] = allocated_variable_expand_for_file (cmds->command_lines[i],
- file);
+ file);
}
- /* Start the command sequence, record it in a new
- `struct child', and add that to the chain. */
-
- c = xcalloc (sizeof (struct child));
- c->file = file;
c->command_lines = lines;
- c->sh_batch_file = NULL;
-
- /* Cache dontcare flag because file->dontcare can be changed once we
- return. Check dontcare inheritance mechanism for details. */
- c->dontcare = file->dontcare;
/* Fetch the first command line to be run. */
job_next_command (c);
@@ -1706,12 +1874,18 @@ new_job (struct file *file)
just once). Also more thought needs to go into the entire algorithm;
this is where the old parallel job code waits, so... */
+#ifdef WINDOWS32
+ else if (has_jobserver_semaphore ())
+#else
else if (job_fds[0] >= 0)
+#endif
while (1)
{
+ int got_token;
+#ifndef WINDOWS32
char token;
- int got_token;
- int saved_errno;
+ int saved_errno;
+#endif
DB (DB_JOBS, ("Need a job token; we %shave children\n",
children ? "" : "don't "));
@@ -1720,6 +1894,7 @@ new_job (struct file *file)
if (!jobserver_tokens)
break;
+#ifndef WINDOWS32
/* Read a token. As long as there's no token available we'll block.
We enable interruptible system calls before the read(2) so that if
we get a SIGCHLD while we're waiting, we'll return with EINTR and
@@ -1748,12 +1923,13 @@ new_job (struct file *file)
DB (DB_JOBS, ("Duplicate the job FD\n"));
job_rfd = dup (job_fds[0]);
}
+#endif
/* Reap anything that's currently waiting. */
reap_children (0, 0);
/* Kick off any jobs we have waiting for an opportunity that
- can run now (ie waiting for load). */
+ can run now (i.e., waiting for load). */
start_waiting_jobs ();
/* If our "free" slot has become available, use it; we don't need an
@@ -1766,51 +1942,83 @@ new_job (struct file *file)
if (!children)
fatal (NILF, "INTERNAL: no children as we go to sleep on read\n");
+#ifdef WINDOWS32
+ /* On Windows we simply wait for the jobserver semaphore to become
+ * signalled or one of our child processes to terminate.
+ */
+ got_token = wait_for_semaphore_or_child_process ();
+ if (got_token < 0)
+ {
+ DWORD err = GetLastError ();
+ fatal (NILF, _("semaphore or child process wait: (Error %ld: %s)"),
+ err, map_windows32_error_to_string (err));
+ }
+#else
/* Set interruptible system calls, and read() for a job token. */
- set_child_handler_action_flags (1, waiting_jobs != NULL);
- got_token = read (job_rfd, &token, 1);
- saved_errno = errno;
- set_child_handler_action_flags (0, waiting_jobs != NULL);
+ set_child_handler_action_flags (1, waiting_jobs != NULL);
+ got_token = read (job_rfd, &token, 1);
+ saved_errno = errno;
+ set_child_handler_action_flags (0, waiting_jobs != NULL);
+#endif
/* If we got one, we're done here. */
- if (got_token == 1)
+ if (got_token == 1)
{
DB (DB_JOBS, (_("Obtained token for child %p (%s).\n"),
c, c->file->name));
break;
}
+#ifndef WINDOWS32
/* If the error _wasn't_ expected (EINTR or EBADF), punt. Otherwise,
go back and reap_children(), and try again. */
- errno = saved_errno;
+ errno = saved_errno;
if (errno != EINTR && errno != EBADF)
pfatal_with_name (_("read jobs pipe"));
if (errno == EBADF)
DB (DB_JOBS, ("Read returned EBADF.\n"));
+#endif
}
#endif
++jobserver_tokens;
- /* The job is now primed. Start it running.
- (This will notice if there is in fact no recipe.) */
- if (cmds->fileinfo.filenm)
- DB (DB_BASIC, (_("Invoking recipe from %s:%lu to update target `%s'.\n"),
- cmds->fileinfo.filenm, cmds->fileinfo.lineno,
- c->file->name));
- else
- DB (DB_BASIC, (_("Invoking builtin recipe to update target `%s'.\n"),
- c->file->name));
+ /* Trace the build.
+ Use message here so that changes to working directories are logged. */
+ if (trace_flag)
+ {
+ char *newer = allocated_variable_expand_for_file ("$?", c->file);
+ const char *nm;
+
+ if (! cmds->fileinfo.filenm)
+ nm = _("<builtin>");
+ else
+ {
+ char *n = alloca (strlen (cmds->fileinfo.filenm) + 1 + 11 + 1);
+ sprintf (n, "%s:%lu", cmds->fileinfo.filenm, cmds->fileinfo.lineno);
+ nm = n;
+ }
+
+ if (newer[0] == '\0')
+ message (0, _("%s: target '%s' does not exist"), nm, c->file->name);
+ else
+ message (0, _("%s: update target '%s' due to: %s"), nm,
+ c->file->name, newer);
+ free (newer);
+ }
+ /* The job is now primed. Start it running.
+ (This will notice if there is in fact no recipe.) */
start_waiting_job (c);
if (job_slots == 1 || not_parallel)
/* Since there is only one job slot, make things run linearly.
- Wait for the child to die, setting the state to `cs_finished'. */
+ Wait for the child to die, setting the state to 'cs_finished'. */
while (file->command_state == cs_running)
reap_children (1, 0);
+ OUTPUT_UNSET ();
return;
}
@@ -1824,14 +2032,14 @@ job_next_command (struct child *child)
{
/* There are no more lines in the expansion of this line. */
if (child->command_line == child->file->cmds->ncommand_lines)
- {
- /* There are no more lines to be expanded. */
- child->command_ptr = 0;
- return 0;
- }
+ {
+ /* There are no more lines to be expanded. */
+ child->command_ptr = 0;
+ return 0;
+ }
else
- /* Get the next line to run. */
- child->command_ptr = child->command_lines[child->command_line++];
+ /* Get the next line to run. */
+ child->command_ptr = child->command_lines[child->command_line++];
}
return 1;
}
@@ -1903,14 +2111,14 @@ load_too_high (void)
static int lossage = -1;
/* Complain only once for the same error. */
if (lossage == -1 || errno != lossage)
- {
- if (errno == 0)
- /* An errno value of zero means getloadavg is just unsupported. */
- error (NILF,
+ {
+ if (errno == 0)
+ /* An errno value of zero means getloadavg is just unsupported. */
+ error (NILF,
_("cannot enforce load limits on this operating system"));
- else
- perror_with_name (_("cannot enforce load limit: "), "getloadavg");
- }
+ else
+ perror_with_name (_("cannot enforce load limit: "), "getloadavg");
+ }
lossage = errno;
load = 0;
}
@@ -1960,7 +2168,7 @@ start_waiting_jobs (void)
waiting_jobs = job->next;
/* Try to start that job. We break out of the loop as soon
- as start_waiting_job puts one back on the waiting list. */
+ as start_waiting_job puts one back on the waiting list. */
}
while (start_waiting_job (job) && waiting_jobs != 0);
@@ -1972,59 +2180,82 @@ start_waiting_jobs (void)
/* EMX: Start a child process. This function returns the new pid. */
# if defined __EMX__
int
-child_execute_job (int stdin_fd, int stdout_fd, char **argv, char **envp)
+child_execute_job (int stdin_fd, int stdout_fd, int stderr_fd,
+ char **argv, char **envp)
{
int pid;
- /* stdin_fd == 0 means: nothing to do for stdin;
- stdout_fd == 1 means: nothing to do for stdout */
- int save_stdin = (stdin_fd != 0) ? dup (0) : 0;
- int save_stdout = (stdout_fd != 1) ? dup (1): 1;
-
- /* < 0 only if dup() failed */
- if (save_stdin < 0)
- fatal (NILF, _("no more file handles: could not duplicate stdin\n"));
- if (save_stdout < 0)
- fatal (NILF, _("no more file handles: could not duplicate stdout\n"));
-
- /* Close unnecessary file handles for the child. */
- if (save_stdin != 0)
- CLOSE_ON_EXEC (save_stdin);
- if (save_stdout != 1)
- CLOSE_ON_EXEC (save_stdout);
-
- /* Connect the pipes to the child process. */
- if (stdin_fd != 0)
- (void) dup2 (stdin_fd, 0);
- if (stdout_fd != 1)
- (void) dup2 (stdout_fd, 1);
-
- /* stdin_fd and stdout_fd must be closed on exit because we are
- still in the parent process */
- if (stdin_fd != 0)
- CLOSE_ON_EXEC (stdin_fd);
- if (stdout_fd != 1)
- CLOSE_ON_EXEC (stdout_fd);
+ int save_stdin = -1;
+ int save_stdout = -1;
+ int save_stderr = -1;
+
+ /* For each FD which needs to be redirected first make a dup of the standard
+ FD to save and mark it close on exec so our child won't see it. Then
+ dup2() the standard FD to the redirect FD, and also mark the redirect FD
+ as close on exec. */
+ if (stdin_fd != FD_STDIN)
+ {
+ save_stdin = dup (FD_STDIN);
+ if (save_stdin < 0)
+ fatal (NILF, _("no more file handles: could not duplicate stdin\n"));
+ CLOSE_ON_EXEC (save_stdin);
+
+ dup2 (stdin_fd, FD_STDIN);
+ CLOSE_ON_EXEC (stdin_fd);
+ }
+
+ if (stdout_fd != FD_STDOUT)
+ {
+ save_stdout = dup (FD_STDOUT);
+ if (save_stdout < 0)
+ fatal (NILF, _("no more file handles: could not duplicate stdout\n"));
+ CLOSE_ON_EXEC (save_stdout);
+
+ dup2 (stdout_fd, FD_STDOUT);
+ CLOSE_ON_EXEC (stdout_fd);
+ }
+
+ if (stderr_fd != FD_STDERR)
+ {
+ if (stderr_fd != stdout_fd)
+ {
+ save_stderr = dup (FD_STDERR);
+ if (save_stderr < 0)
+ fatal (NILF, _("no more file handles: could not duplicate stderr\n"));
+ CLOSE_ON_EXEC (save_stderr);
+ }
+
+ dup2 (stderr_fd, FD_STDERR);
+ CLOSE_ON_EXEC (stderr_fd);
+ }
/* Run the command. */
pid = exec_command (argv, envp);
- /* Restore stdout/stdin of the parent and close temporary FDs. */
- if (stdin_fd != 0)
+ /* Restore stdout/stdin/stderr of the parent and close temporary FDs. */
+ if (save_stdin >= 0)
{
- if (dup2 (save_stdin, 0) != 0)
+ if (dup2 (save_stdin, FD_STDIN) != FD_STDIN)
fatal (NILF, _("Could not restore stdin\n"));
else
close (save_stdin);
}
- if (stdout_fd != 1)
+ if (save_stdout >= 0)
{
- if (dup2 (save_stdout, 1) != 1)
+ if (dup2 (save_stdout, FD_STDOUT) != FD_STDOUT)
fatal (NILF, _("Could not restore stdout\n"));
else
close (save_stdout);
}
+ if (save_stderr >= 0)
+ {
+ if (dup2 (save_stderr, FD_STDERR) != FD_STDERR)
+ fatal (NILF, _("Could not restore stderr\n"));
+ else
+ close (save_stderr);
+ }
+
return pid;
}
@@ -2032,19 +2263,28 @@ child_execute_job (int stdin_fd, int stdout_fd, char **argv, char **envp)
/* UNIX:
Replace the current process with one executing the command in ARGV.
- STDIN_FD and STDOUT_FD are used as the process's stdin and stdout; ENVP is
- the environment of the new program. This function does not return. */
+ STDIN_FD/STDOUT_FD/STDERR_FD are used as the process's stdin/stdout/stderr;
+ ENVP is the environment of the new program. This function does not return. */
void
-child_execute_job (int stdin_fd, int stdout_fd, char **argv, char **envp)
+child_execute_job (int stdin_fd, int stdout_fd, int stderr_fd,
+ char **argv, char **envp)
{
- if (stdin_fd != 0)
- (void) dup2 (stdin_fd, 0);
- if (stdout_fd != 1)
- (void) dup2 (stdout_fd, 1);
- if (stdin_fd != 0)
- (void) close (stdin_fd);
- if (stdout_fd != 1)
- (void) close (stdout_fd);
+ /* For any redirected FD, dup2() it to the standard FD then close it. */
+ if (stdin_fd != FD_STDIN)
+ {
+ dup2 (stdin_fd, FD_STDIN);
+ close (stdin_fd);
+ }
+
+ if (stdout_fd != FD_STDOUT)
+ dup2 (stdout_fd, FD_STDOUT);
+ if (stderr_fd != FD_STDERR)
+ dup2 (stderr_fd, FD_STDERR);
+
+ if (stdout_fd != FD_STDOUT)
+ close (stdout_fd);
+ if (stderr_fd != FD_STDERR && stderr_fd != stdout_fd)
+ close (stderr_fd);
/* Run the command. */
exec_command (argv, envp);
@@ -2077,61 +2317,59 @@ exec_command (char **argv, char **envp)
#ifdef WINDOWS32
HANDLE hPID;
HANDLE hWaitPID;
- int err = 0;
int exit_code = EXIT_FAILURE;
/* make sure CreateProcess() has Path it needs */
- sync_Path_environment();
+ sync_Path_environment ();
/* launch command */
- hPID = process_easy(argv, envp);
+ hPID = process_easy (argv, envp, -1, -1);
/* make sure launch ok */
if (hPID == INVALID_HANDLE_VALUE)
{
int i;
- fprintf(stderr,
- _("process_easy() failed to launch process (e=%ld)\n"),
- process_last_err(hPID));
+ fprintf (stderr, _("process_easy() failed to launch process (e=%ld)\n"),
+ process_last_err (hPID));
for (i = 0; argv[i]; i++)
- fprintf(stderr, "%s ", argv[i]);
- fprintf(stderr, _("\nCounted %d args in failed launch\n"), i);
- exit(EXIT_FAILURE);
+ fprintf (stderr, "%s ", argv[i]);
+ fprintf (stderr, _("\nCounted %d args in failed launch\n"), i);
+ exit (EXIT_FAILURE);
}
/* wait and reap last child */
- hWaitPID = process_wait_for_any();
+ hWaitPID = process_wait_for_any (1, 0);
while (hWaitPID)
{
/* was an error found on this process? */
- err = process_last_err(hWaitPID);
+ int err = process_last_err (hWaitPID);
/* get exit data */
- exit_code = process_exit_code(hWaitPID);
+ exit_code = process_exit_code (hWaitPID);
if (err)
- fprintf(stderr, "make (e=%d, rc=%d): %s",
- err, exit_code, map_windows32_error_to_string(err));
+ fprintf (stderr, "make (e=%d, rc=%d): %s",
+ err, exit_code, map_windows32_error_to_string (err));
/* cleanup process */
- process_cleanup(hWaitPID);
+ process_cleanup (hWaitPID);
/* expect to find only last pid, warn about other pids reaped */
if (hWaitPID == hPID)
break;
else
- {
- char *pidstr = xstrdup (pid2str ((pid_t)hWaitPID));
-
- fprintf(stderr,
- _("make reaped child pid %s, still waiting for pid %s\n"),
- pidstr, pid2str ((pid_t)hPID));
- free (pidstr);
- }
+ {
+ char *pidstr = xstrdup (pid2str ((pid_t)hWaitPID));
+
+ fprintf (stderr,
+ _("make reaped child pid %s, still waiting for pid %s\n"),
+ pidstr, pid2str ((pid_t)hPID));
+ free (pidstr);
+ }
}
/* return child's exit code as our exit code */
- exit(exit_code);
+ exit (exit_code);
#else /* !WINDOWS32 */
@@ -2143,10 +2381,8 @@ exec_command (char **argv, char **envp)
child_access ();
# ifdef __EMX__
-
/* Run the program. */
pid = spawnvpe (P_NOWAIT, argv[0], argv, envp);
-
if (pid >= 0)
return pid;
@@ -2155,7 +2391,6 @@ exec_command (char **argv, char **envp)
errno = ENOEXEC;
# else
-
/* Run the program. */
environ = envp;
execvp (argv[0], argv);
@@ -2169,37 +2404,37 @@ exec_command (char **argv, char **envp)
break;
case ENOEXEC:
{
- /* The file is not executable. Try it as a shell script. */
- extern char *getenv ();
- char *shell;
- char **new_argv;
- int argc;
+ /* The file is not executable. Try it as a shell script. */
+ extern char *getenv ();
+ char *shell;
+ char **new_argv;
+ int argc;
int i=1;
# ifdef __EMX__
/* Do not use $SHELL from the environment */
- struct variable *p = lookup_variable ("SHELL", 5);
- if (p)
- shell = p->value;
+ struct variable *p = lookup_variable ("SHELL", 5);
+ if (p)
+ shell = p->value;
else
shell = 0;
# else
- shell = getenv ("SHELL");
+ shell = getenv ("SHELL");
# endif
- if (shell == 0)
- shell = default_shell;
+ if (shell == 0)
+ shell = default_shell;
- argc = 1;
- while (argv[argc] != 0)
- ++argc;
+ argc = 1;
+ while (argv[argc] != 0)
+ ++argc;
# ifdef __EMX__
if (!unixy_shell)
++argc;
# endif
- new_argv = alloca ((1 + argc + 1) * sizeof (char *));
- new_argv[0] = shell;
+ new_argv = alloca ((1 + argc + 1) * sizeof (char *));
+ new_argv[0] = shell;
# ifdef __EMX__
if (!unixy_shell)
@@ -2211,24 +2446,24 @@ exec_command (char **argv, char **envp)
# endif
new_argv[i] = argv[0];
- while (argc > 0)
- {
- new_argv[i + argc] = argv[argc];
- --argc;
- }
+ while (argc > 0)
+ {
+ new_argv[i + argc] = argv[argc];
+ --argc;
+ }
# ifdef __EMX__
- pid = spawnvpe (P_NOWAIT, shell, new_argv, envp);
- if (pid >= 0)
+ pid = spawnvpe (P_NOWAIT, shell, new_argv, envp);
+ if (pid >= 0)
break;
# else
- execvp (shell, new_argv);
+ execvp (shell, new_argv);
# endif
- if (errno == ENOENT)
- error (NILF, _("%s: Shell program not found"), shell);
- else
- perror_with_name ("execvp: ", shell);
- break;
+ if (errno == ENOENT)
+ error (NILF, _("%s: Shell program not found"), shell);
+ else
+ perror_with_name ("execvp: ", shell);
+ break;
}
# ifdef __EMX__
@@ -2267,7 +2502,7 @@ void clean_tmp (void)
#ifndef VMS
/* Figure out the argument list necessary to run LINE as a command. Try to
avoid using a shell. This routine handles only ' quoting, and " quoting
- when no backslash, $ or ` characters are seen in the quotes. Starting
+ when no backslash, $ or ' characters are seen in the quotes. Starting
quotes may be escaped with a backslash. If any of the characters in
sh_chars[] is seen, or any of the builtin commands listed in sh_cmds[]
is the first word of a line, the shell is used.
@@ -2286,26 +2521,26 @@ void clean_tmp (void)
static char **
construct_command_argv_internal (char *line, char **restp, char *shell,
char *shellflags, char *ifs, int flags,
- char **batch_filename_ptr)
+ char **batch_filename UNUSED)
{
#ifdef __MSDOS__
/* MSDOS supports both the stock DOS shell and ports of Unixy shells.
- We call `system' for anything that requires ``slow'' processing,
+ We call 'system' for anything that requires ''slow'' processing,
because DOS shells are too dumb. When $SHELL points to a real
- (unix-style) shell, `system' just calls it to do everything. When
- $SHELL points to a DOS shell, `system' does most of the work
+ (unix-style) shell, 'system' just calls it to do everything. When
+ $SHELL points to a DOS shell, 'system' does most of the work
internally, calling the shell only for its internal commands.
However, it looks on the $PATH first, so you can e.g. have an
- external command named `mkdir'.
+ external command named 'mkdir'.
- Since we call `system', certain characters and commands below are
+ Since we call 'system', certain characters and commands below are
actually not specific to COMMAND.COM, but to the DJGPP implementation
- of `system'. In particular:
+ of 'system'. In particular:
The shell wildcard characters are in DOS_CHARS because they will
- not be expanded if we call the child via `spawnXX'.
+ not be expanded if we call the child via 'spawnXX'.
- The `;' is in DOS_CHARS, because our `system' knows how to run
+ The ';' is in DOS_CHARS, because our 'system' knows how to run
multiple commands on a single line.
DOS_CHARS also include characters special to 4DOS/NDOS, so we
@@ -2313,19 +2548,19 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
commands and special characters. */
static char sh_chars_dos[] = "*?[];|<>%^&()";
static char *sh_cmds_dos[] = { "break", "call", "cd", "chcp", "chdir", "cls",
- "copy", "ctty", "date", "del", "dir", "echo",
- "erase", "exit", "for", "goto", "if", "md",
- "mkdir", "path", "pause", "prompt", "rd",
- "rmdir", "rem", "ren", "rename", "set",
- "shift", "time", "type", "ver", "verify",
- "vol", ":", 0 };
+ "copy", "ctty", "date", "del", "dir", "echo",
+ "erase", "exit", "for", "goto", "if", "md",
+ "mkdir", "path", "pause", "prompt", "rd",
+ "rmdir", "rem", "ren", "rename", "set",
+ "shift", "time", "type", "ver", "verify",
+ "vol", ":", 0 };
static char sh_chars_sh[] = "#;\"*?[]&|<>(){}$`^";
static char *sh_cmds_sh[] = { "cd", "echo", "eval", "exec", "exit", "login",
- "logout", "set", "umask", "wait", "while",
- "for", "case", "if", ":", ".", "break",
- "continue", "export", "read", "readonly",
- "shift", "times", "trap", "switch", "unset",
+ "logout", "set", "umask", "wait", "while",
+ "for", "case", "if", ":", ".", "break",
+ "continue", "export", "read", "readonly",
+ "shift", "times", "trap", "switch", "unset",
"ulimit", 0 };
char *sh_chars;
@@ -2333,28 +2568,28 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
#elif defined (__EMX__)
static char sh_chars_dos[] = "*?[];|<>%^&()";
static char *sh_cmds_dos[] = { "break", "call", "cd", "chcp", "chdir", "cls",
- "copy", "ctty", "date", "del", "dir", "echo",
- "erase", "exit", "for", "goto", "if", "md",
- "mkdir", "path", "pause", "prompt", "rd",
- "rmdir", "rem", "ren", "rename", "set",
- "shift", "time", "type", "ver", "verify",
- "vol", ":", 0 };
+ "copy", "ctty", "date", "del", "dir", "echo",
+ "erase", "exit", "for", "goto", "if", "md",
+ "mkdir", "path", "pause", "prompt", "rd",
+ "rmdir", "rem", "ren", "rename", "set",
+ "shift", "time", "type", "ver", "verify",
+ "vol", ":", 0 };
static char sh_chars_os2[] = "*?[];|<>%^()\"'&";
static char *sh_cmds_os2[] = { "call", "cd", "chcp", "chdir", "cls", "copy",
- "date", "del", "detach", "dir", "echo",
- "endlocal", "erase", "exit", "for", "goto", "if",
- "keys", "md", "mkdir", "move", "path", "pause",
- "prompt", "rd", "rem", "ren", "rename", "rmdir",
- "set", "setlocal", "shift", "start", "time",
+ "date", "del", "detach", "dir", "echo",
+ "endlocal", "erase", "exit", "for", "goto", "if",
+ "keys", "md", "mkdir", "move", "path", "pause",
+ "prompt", "rd", "rem", "ren", "rename", "rmdir",
+ "set", "setlocal", "shift", "start", "time",
"type", "ver", "verify", "vol", ":", 0 };
static char sh_chars_sh[] = "#;\"*?[]&|<>(){}$`^~'";
static char *sh_cmds_sh[] = { "echo", "cd", "eval", "exec", "exit", "login",
- "logout", "set", "umask", "wait", "while",
- "for", "case", "if", ":", ".", "break",
- "continue", "export", "read", "readonly",
- "shift", "times", "trap", "switch", "unset",
+ "logout", "set", "umask", "wait", "while",
+ "for", "case", "if", ":", ".", "break",
+ "continue", "export", "read", "readonly",
+ "shift", "times", "trap", "switch", "unset",
0 };
char *sh_chars;
char **sh_cmds;
@@ -2362,27 +2597,34 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
#elif defined (_AMIGA)
static char sh_chars[] = "#;\"|<>()?*$`";
static char *sh_cmds[] = { "cd", "eval", "if", "delete", "echo", "copy",
- "rename", "set", "setenv", "date", "makedir",
- "skip", "else", "endif", "path", "prompt",
- "unset", "unsetenv", "version",
- 0 };
+ "rename", "set", "setenv", "date", "makedir",
+ "skip", "else", "endif", "path", "prompt",
+ "unset", "unsetenv", "version",
+ 0 };
#elif defined (WINDOWS32)
- static char sh_chars_dos[] = "\"|&<>";
+ /* We used to have a double quote (") in sh_chars_dos[] below, but
+ that caused any command line with quoted file names be run
+ through a temporary batch file, which introduces command-line
+ limit of 4K charcaters imposed by cmd.exe. Since CreateProcess
+ can handle quoted file names just fine, removing the quote lifts
+ the limit from a very frequent use case, because using quoted
+ file names is commonplace on MS-Windows. */
+ static char sh_chars_dos[] = "|&<>";
static char *sh_cmds_dos[] = { "assoc", "break", "call", "cd", "chcp",
- "chdir", "cls", "color", "copy", "ctty",
- "date", "del", "dir", "echo", "echo.",
- "endlocal", "erase", "exit", "for", "ftype",
- "goto", "if", "if", "md", "mkdir", "path",
- "pause", "prompt", "rd", "rem", "ren",
- "rename", "rmdir", "set", "setlocal",
- "shift", "time", "title", "type", "ver",
- "verify", "vol", ":", 0 };
+ "chdir", "cls", "color", "copy", "ctty",
+ "date", "del", "dir", "echo", "echo.",
+ "endlocal", "erase", "exit", "for", "ftype",
+ "goto", "if", "if", "md", "mkdir", "move",
+ "path", "pause", "prompt", "rd", "rem", "ren",
+ "rename", "rmdir", "set", "setlocal",
+ "shift", "time", "title", "type", "ver",
+ "verify", "vol", ":", 0 };
static char sh_chars_sh[] = "#;\"*?[]&|<>(){}$`^";
static char *sh_cmds_sh[] = { "cd", "eval", "exec", "exit", "login",
- "logout", "set", "umask", "wait", "while", "for",
- "case", "if", ":", ".", "break", "continue",
- "export", "read", "readonly", "shift", "times",
- "trap", "switch", "test",
+ "logout", "set", "umask", "wait", "while", "for",
+ "case", "if", ":", ".", "break", "continue",
+ "export", "read", "readonly", "shift", "times",
+ "trap", "switch", "test",
#ifdef BATCH_MODE_ONLY_SHELL
"echo",
#endif
@@ -2404,7 +2646,7 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
WINDOWS32) are compiled with HAVE_DOS_PATHS defined, which uses
sh_chars_sh[] directly (see below). */
static char *sh_chars_sh = sh_chars;
-# endif /* HAVE_DOS_PATHS */
+# endif /* HAVE_DOS_PATHS */
#endif
int i;
char *p;
@@ -2416,13 +2658,16 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
#ifdef WINDOWS32
int slow_flag = 0;
- if (!unixy_shell) {
- sh_cmds = sh_cmds_dos;
- sh_chars = sh_chars_dos;
- } else {
- sh_cmds = sh_cmds_sh;
- sh_chars = sh_chars_sh;
- }
+ if (!unixy_shell)
+ {
+ sh_cmds = sh_cmds_dos;
+ sh_chars = sh_chars_dos;
+ }
+ else
+ {
+ sh_cmds = sh_cmds_sh;
+ sh_chars = sh_chars_sh;
+ }
#endif /* WINDOWS32 */
if (restp != NULL)
@@ -2434,6 +2679,9 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
if (*line == '\0')
return 0;
+ if (shellflags == 0)
+ shellflags = posix_pedantic ? "-ec" : "-c";
+
/* See if it is safe to parse commands internally. */
if (shell == 0)
shell = default_shell;
@@ -2458,7 +2706,7 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
{
extern int _is_unixy_shell (const char *_path);
- DB (DB_BASIC, (_("$SHELL changed (was `%s', now `%s')\n"),
+ DB (DB_BASIC, (_("$SHELL changed (was '%s', now '%s')\n"),
default_shell, shell));
unixy_shell = _is_unixy_shell (shell);
/* we must allocate a copy of shell: construct_command_argv() will free
@@ -2491,7 +2739,7 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
if (ifs != 0)
for (ap = ifs; *ap != '\0'; ++ap)
if (*ap != ' ' && *ap != '\t' && *ap != '\n')
- goto slow;
+ goto slow;
if (shellflags != 0)
if (shellflags[0] != '-'
@@ -2516,28 +2764,27 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
assert (ap <= end);
if (instring)
- {
- /* Inside a string, just copy any char except a closing quote
- or a backslash-newline combination. */
- if (*p == instring)
- {
- instring = 0;
- if (ap == new_argv[0] || *(ap-1) == '\0')
- last_argument_was_empty = 1;
- }
- else if (*p == '\\' && p[1] == '\n')
+ {
+ /* Inside a string, just copy any char except a closing quote
+ or a backslash-newline combination. */
+ if (*p == instring)
+ {
+ instring = 0;
+ if (ap == new_argv[0] || *(ap-1) == '\0')
+ last_argument_was_empty = 1;
+ }
+ else if (*p == '\\' && p[1] == '\n')
{
/* Backslash-newline is handled differently depending on what
kind of string we're in: inside single-quoted strings you
- keep them; in double-quoted strings they disappear.
- For DOS/Windows/OS2, if we don't have a POSIX shell,
- we keep the pre-POSIX behavior of removing the
- backslash-newline. */
+ keep them; in double-quoted strings they disappear. For
+ DOS/Windows/OS2, if we don't have a POSIX shell, we keep the
+ pre-POSIX behavior of removing the backslash-newline. */
if (instring == '"'
#if defined (__MSDOS__) || defined (__EMX__) || defined (WINDOWS32)
- || !unixy_shell
+ || !unixy_shell
#endif
- )
+ )
++p;
else
{
@@ -2545,61 +2792,74 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
*(ap++) = *p;
}
}
- else if (*p == '\n' && restp != NULL)
- {
- /* End of the command line. */
- *restp = p;
- goto end_of_line;
- }
- /* Backslash, $, and ` are special inside double quotes.
- If we see any of those, punt.
- But on MSDOS, if we use COMMAND.COM, double and single
- quotes have the same effect. */
- else if (instring == '"' && strchr ("\\$`", *p) != 0 && unixy_shell)
- goto slow;
- else
- *ap++ = *p;
- }
+ else if (*p == '\n' && restp != NULL)
+ {
+ /* End of the command line. */
+ *restp = p;
+ goto end_of_line;
+ }
+ /* Backslash, $, and ` are special inside double quotes.
+ If we see any of those, punt.
+ But on MSDOS, if we use COMMAND.COM, double and single
+ quotes have the same effect. */
+ else if (instring == '"' && strchr ("\\$`", *p) != 0 && unixy_shell)
+ goto slow;
+#ifdef WINDOWS32
+ else if (instring == '"' && strncmp (p, "\\\"", 2) == 0)
+ *ap++ = *++p;
+#endif
+ else
+ *ap++ = *p;
+ }
else if (strchr (sh_chars, *p) != 0)
- /* Not inside a string, but it's a special char. */
- goto slow;
+ /* Not inside a string, but it's a special char. */
+ goto slow;
else if (one_shell && *p == '\n')
- /* In .ONESHELL mode \n is a separator like ; or && */
- goto slow;
+ /* In .ONESHELL mode \n is a separator like ; or && */
+ goto slow;
#ifdef __MSDOS__
else if (*p == '.' && p[1] == '.' && p[2] == '.' && p[3] != '.')
- /* `...' is a wildcard in DJGPP. */
- goto slow;
+ /* '...' is a wildcard in DJGPP. */
+ goto slow;
#endif
else
- /* Not a special char. */
- switch (*p)
- {
- case '=':
- /* Equals is a special character in leading words before the
- first word with no equals sign in it. This is not the case
- with sh -k, but we never get here when using nonstandard
- shell flags. */
- if (! seen_nonequals && unixy_shell)
- goto slow;
- word_has_equals = 1;
- *ap++ = '=';
- break;
-
- case '\\':
- /* Backslash-newline has special case handling, ref POSIX.
+ /* Not a special char. */
+ switch (*p)
+ {
+ case '=':
+ /* Equals is a special character in leading words before the
+ first word with no equals sign in it. This is not the case
+ with sh -k, but we never get here when using nonstandard
+ shell flags. */
+ if (! seen_nonequals && unixy_shell)
+ goto slow;
+ word_has_equals = 1;
+ *ap++ = '=';
+ break;
+
+ case '\\':
+ /* Backslash-newline has special case handling, ref POSIX.
We're in the fastpath, so emulate what the shell would do. */
- if (p[1] == '\n')
- {
- /* Throw out the backslash and newline. */
+ if (p[1] == '\n')
+ {
+ /* Throw out the backslash and newline. */
++p;
/* If there's nothing in this argument yet, skip any
whitespace before the start of the next word. */
if (ap == new_argv[i])
p = next_token (p + 1) - 1;
- }
- else if (p[1] != '\0')
+ }
+#ifdef WINDOWS32
+ /* Backslash before whitespace is not special if our shell
+ is not Unixy. */
+ else if (isspace (p[1]) && !unixy_shell)
+ {
+ *ap++ = *p;
+ break;
+ }
+#endif
+ else if (p[1] != '\0')
{
#ifdef HAVE_DOS_PATHS
/* Only remove backslashes before characters special to Unixy
@@ -2629,69 +2889,69 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
/* Copy and skip the following char. */
*ap++ = *++p;
}
- break;
-
- case '\'':
- case '"':
- instring = *p;
- break;
-
- case '\n':
- if (restp != NULL)
- {
- /* End of the command line. */
- *restp = p;
- goto end_of_line;
- }
- else
- /* Newlines are not special. */
- *ap++ = '\n';
- break;
-
- case ' ':
- case '\t':
- /* We have the end of an argument.
- Terminate the text of the argument. */
- *ap++ = '\0';
- new_argv[++i] = ap;
- last_argument_was_empty = 0;
-
- /* Update SEEN_NONEQUALS, which tells us if every word
- heretofore has contained an `='. */
- seen_nonequals |= ! word_has_equals;
- if (word_has_equals && ! seen_nonequals)
- /* An `=' in a word before the first
- word without one is magical. */
- goto slow;
- word_has_equals = 0; /* Prepare for the next word. */
-
- /* If this argument is the command name,
- see if it is a built-in shell command.
- If so, have the shell handle it. */
- if (i == 1)
- {
- register int j;
- for (j = 0; sh_cmds[j] != 0; ++j)
+ break;
+
+ case '\'':
+ case '"':
+ instring = *p;
+ break;
+
+ case '\n':
+ if (restp != NULL)
+ {
+ /* End of the command line. */
+ *restp = p;
+ goto end_of_line;
+ }
+ else
+ /* Newlines are not special. */
+ *ap++ = '\n';
+ break;
+
+ case ' ':
+ case '\t':
+ /* We have the end of an argument.
+ Terminate the text of the argument. */
+ *ap++ = '\0';
+ new_argv[++i] = ap;
+ last_argument_was_empty = 0;
+
+ /* Update SEEN_NONEQUALS, which tells us if every word
+ heretofore has contained an '='. */
+ seen_nonequals |= ! word_has_equals;
+ if (word_has_equals && ! seen_nonequals)
+ /* An '=' in a word before the first
+ word without one is magical. */
+ goto slow;
+ word_has_equals = 0; /* Prepare for the next word. */
+
+ /* If this argument is the command name,
+ see if it is a built-in shell command.
+ If so, have the shell handle it. */
+ if (i == 1)
+ {
+ register int j;
+ for (j = 0; sh_cmds[j] != 0; ++j)
{
if (streq (sh_cmds[j], new_argv[0]))
goto slow;
-# ifdef __EMX__
+#if defined(__EMX__) || defined(WINDOWS32)
/* Non-Unix shells are case insensitive. */
if (!unixy_shell
&& strcasecmp (sh_cmds[j], new_argv[0]) == 0)
goto slow;
-# endif
+#endif
}
- }
+ }
- /* Ignore multiple whitespace chars. */
- p = next_token (p) - 1;
- break;
+ /* Ignore multiple whitespace chars. */
+ p = next_token (p) - 1;
+ break;
- default:
- *ap++ = *p;
- break;
- }
+ default:
+ *ap++ = *p;
+ break;
+ }
}
end_of_line:
@@ -2710,8 +2970,8 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
{
register int j;
for (j = 0; sh_cmds[j] != 0; ++j)
- if (streq (sh_cmds[j], new_argv[0]))
- goto slow;
+ if (streq (sh_cmds[j], new_argv[0]))
+ goto slow;
}
if (new_argv[0] == 0)
@@ -2735,7 +2995,7 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
}
#ifdef __MSDOS__
- execute_by_shell = 1; /* actually, call `system' if shell isn't unixy */
+ execute_by_shell = 1; /* actually, call 'system' if shell isn't unixy */
#endif
#ifdef _AMIGA
@@ -2750,14 +3010,14 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
for (dptr=buffer; *ptr; )
{
if (*ptr == '\\' && ptr[1] == '\n')
- ptr += 2;
+ ptr += 2;
else if (*ptr == '@') /* Kludge: multiline commands */
{
- ptr += 2;
- *dptr++ = '\n';
+ ptr += 2;
+ *dptr++ = '\n';
}
else
- *dptr++ = *ptr++;
+ *dptr++ = *ptr++;
}
*dptr = 0;
@@ -2765,7 +3025,7 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
new_argv[0] = buffer;
new_argv[1] = 0;
}
-#else /* Not Amiga */
+#else /* Not Amiga */
#ifdef WINDOWS32
/*
* Not eating this whitespace caused things like
@@ -2790,37 +3050,44 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
Then recurse, expanding this command line to get the final
argument list. */
+ char *new_line;
unsigned int shell_len = strlen (shell);
unsigned int line_len = strlen (line);
- unsigned int sflags_len = strlen (shellflags);
+ unsigned int sflags_len = shellflags ? strlen (shellflags) : 0;
+#ifdef WINDOWS32
char *command_ptr = NULL; /* used for batch_mode_shell mode */
- char *new_line;
+#endif
# ifdef __EMX__ /* is this necessary? */
- if (!unixy_shell)
+ if (!unixy_shell && shellflags)
shellflags[0] = '/'; /* "/c" */
# endif
/* In .ONESHELL mode we are allowed to throw the entire current
- recipe string at a single shell and trust that the user
- has configured the shell and shell flags, and formatted
- the string, appropriately. */
+ recipe string at a single shell and trust that the user
+ has configured the shell and shell flags, and formatted
+ the string, appropriately. */
if (one_shell)
{
- /* If the shell is Bourne compatible, we must remove and ignore
- interior special chars [@+-] because they're meaningless to
- the shell itself. If, however, we're in .ONESHELL mode and
- have changed SHELL to something non-standard, we should
- leave those alone because they could be part of the
- script. In this case we must also leave in place
- any leading [@+-] for the same reason. */
-
- /* Remove and ignore interior prefix chars [@+-] because they're
- meaningless given a single shell. */
+ /* If the shell is Bourne compatible, we must remove and ignore
+ interior special chars [@+-] because they're meaningless to
+ the shell itself. If, however, we're in .ONESHELL mode and
+ have changed SHELL to something non-standard, we should
+ leave those alone because they could be part of the
+ script. In this case we must also leave in place
+ any leading [@+-] for the same reason. */
+
+ /* Remove and ignore interior prefix chars [@+-] because they're
+ meaningless given a single shell. */
#if defined __MSDOS__ || defined (__EMX__)
- if (unixy_shell) /* the test is complicated and we already did it */
+ if (unixy_shell) /* the test is complicated and we already did it */
#else
- if (is_bourne_compatible_shell(shell))
+ if (is_bourne_compatible_shell (shell)
+#ifdef WINDOWS32
+ /* If we didn't find any sh.exe, don't behave is if we did! */
+ && !no_default_sh_exe
+#endif
+ )
#endif
{
const char *f = line;
@@ -2856,35 +3123,136 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
}
*t = '\0';
}
+#ifdef WINDOWS32
+ else /* non-Posix shell (cmd.exe etc.) */
+ {
+ const char *f = line;
+ char *t = line;
+ char *tstart = t;
+ int temp_fd;
+ FILE* batch = NULL;
+ int id = GetCurrentProcessId ();
+ PATH_VAR(fbuf);
+
+ /* Generate a file name for the temporary batch file. */
+ sprintf (fbuf, "make%d", id);
+ *batch_filename = create_batch_file (fbuf, 0, &temp_fd);
+ DB (DB_JOBS, (_("Creating temporary batch file %s\n"),
+ *batch_filename));
+
+ /* Create a FILE object for the batch file, and write to it the
+ commands to be executed. Put the batch file in TEXT mode. */
+ _setmode (temp_fd, _O_TEXT);
+ batch = _fdopen (temp_fd, "wt");
+ fputs ("@echo off\n", batch);
+ DB (DB_JOBS, (_("Batch file contents:\n\t@echo off\n")));
+
+ /* Copy the recipe, removing and ignoring interior prefix chars
+ [@+-]: they're meaningless in .ONESHELL mode. */
+ while (*f != '\0')
+ {
+ /* This is the start of a new recipe line.
+ Skip whitespace and prefix characters. */
+ while (isblank (*f) || *f == '-' || *f == '@' || *f == '+')
+ ++f;
+
+ /* Copy until we get to the next logical recipe line. */
+ while (*f != '\0')
+ {
+ /* Remove the escaped newlines in the command, and
+ the whitespace that follows them. Windows
+ shells cannot handle escaped newlines. */
+ if (*f == '\\' && f[1] == '\n')
+ {
+ f += 2;
+ while (isblank (*f))
+ ++f;
+ }
+ *(t++) = *(f++);
+ /* On an unescaped newline, we're done with this
+ line. */
+ if (f[-1] == '\n')
+ break;
+ }
+ /* Write another line into the batch file. */
+ if (t > tstart)
+ {
+ int c = *t;
+ *t = '\0';
+ fputs (tstart, batch);
+ DB (DB_JOBS, ("\t%s", tstart));
+ tstart = t;
+ *t = c;
+ }
+ }
+ DB (DB_JOBS, ("\n"));
+ fclose (batch);
+
+ /* Create an argv list for the shell command line that
+ will run the batch file. */
+ new_argv = xmalloc (2 * sizeof (char *));
+ new_argv[0] = xstrdup (*batch_filename);
+ new_argv[1] = NULL;
+ return new_argv;
+ }
+#endif /* WINDOWS32 */
+ /* Create an argv list for the shell command line. */
+ {
+ int n = 0;
- new_argv = xmalloc (4 * sizeof (char *));
- new_argv[0] = xstrdup(shell);
- new_argv[1] = xstrdup(shellflags);
- new_argv[2] = line;
- new_argv[3] = NULL;
- return new_argv;
+ new_argv = xmalloc ((4 + sflags_len/2) * sizeof (char *));
+ new_argv[n++] = xstrdup (shell);
+
+ /* Chop up the shellflags (if any) and assign them. */
+ if (! shellflags)
+ new_argv[n++] = xstrdup ("");
+ else
+ {
+ const char *s = shellflags;
+ char *t;
+ unsigned int len;
+ while ((t = find_next_token (&s, &len)) != 0)
+ new_argv[n++] = xstrndup (t, len);
+ }
+
+ /* Set the command to invoke. */
+ new_argv[n++] = line;
+ new_argv[n++] = NULL;
+ }
+ return new_argv;
}
- new_line = alloca (shell_len + 1 + sflags_len + 1
- + (line_len*2) + 1);
+ new_line = xmalloc ((shell_len*2) + 1 + sflags_len + 1
+ + (line_len*2) + 1);
ap = new_line;
- memcpy (ap, shell, shell_len);
- ap += shell_len;
+ /* Copy SHELL, escaping any characters special to the shell. If
+ we don't escape them, construct_command_argv_internal will
+ recursively call itself ad nauseam, or until stack overflow,
+ whichever happens first. */
+ for (p = shell; *p != '\0'; ++p)
+ {
+ if (strchr (sh_chars, *p) != 0)
+ *(ap++) = '\\';
+ *(ap++) = *p;
+ }
*(ap++) = ' ';
- memcpy (ap, shellflags, sflags_len);
+ if (shellflags)
+ memcpy (ap, shellflags, sflags_len);
ap += sflags_len;
*(ap++) = ' ';
+#ifdef WINDOWS32
command_ptr = ap;
+#endif
for (p = line; *p != '\0'; ++p)
{
- if (restp != NULL && *p == '\n')
- {
- *restp = p;
- break;
- }
- else if (*p == '\\' && p[1] == '\n')
- {
- /* POSIX says we keep the backslash-newline. If we don't have a
+ if (restp != NULL && *p == '\n')
+ {
+ *restp = p;
+ break;
+ }
+ else if (*p == '\\' && p[1] == '\n')
+ {
+ /* POSIX says we keep the backslash-newline. If we don't have a
POSIX shell on DOS/Windows/OS2, mimic the pre-POSIX behavior
and remove the backslash/newline. */
#if defined (__MSDOS__) || defined (__EMX__) || defined (WINDOWS32)
@@ -2892,97 +3260,108 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
#else
# define PRESERVE_BSNL 1
#endif
- if (PRESERVE_BSNL)
- {
- *(ap++) = '\\';
- /* Only non-batch execution needs another backslash,
- because it will be passed through a recursive
- invocation of this function. */
- if (!batch_mode_shell)
- *(ap++) = '\\';
- *(ap++) = '\n';
- }
- ++p;
- continue;
- }
+ if (PRESERVE_BSNL)
+ {
+ *(ap++) = '\\';
+ /* Only non-batch execution needs another backslash,
+ because it will be passed through a recursive
+ invocation of this function. */
+ if (!batch_mode_shell)
+ *(ap++) = '\\';
+ *(ap++) = '\n';
+ }
+ ++p;
+ continue;
+ }
/* DOS shells don't know about backslash-escaping. */
- if (unixy_shell && !batch_mode_shell &&
+ if (unixy_shell && !batch_mode_shell &&
(*p == '\\' || *p == '\'' || *p == '"'
|| isspace ((unsigned char)*p)
|| strchr (sh_chars, *p) != 0))
- *ap++ = '\\';
+ *ap++ = '\\';
#ifdef __MSDOS__
else if (unixy_shell && strneq (p, "...", 3))
{
- /* The case of `...' wildcard again. */
+ /* The case of '...' wildcard again. */
strcpy (ap, "\\.\\.\\");
ap += 5;
p += 2;
}
#endif
- *ap++ = *p;
+ *ap++ = *p;
}
if (ap == new_line + shell_len + sflags_len + 2)
- /* Line was empty. */
- return 0;
+ {
+ /* Line was empty. */
+ free (new_line);
+ return 0;
+ }
*ap = '\0';
#ifdef WINDOWS32
/* Some shells do not work well when invoked as 'sh -c xxx' to run a
command line (e.g. Cygnus GNUWIN32 sh.exe on WIN32 systems). In these
cases, run commands via a script file. */
- if (just_print_flag && !(flags & COMMANDS_RECURSE)) {
- /* Need to allocate new_argv, although it's unused, because
- start_job_command will want to free it and its 0'th element. */
- new_argv = xmalloc(2 * sizeof (char *));
- new_argv[0] = xstrdup ("");
- new_argv[1] = NULL;
- } else if ((no_default_sh_exe || batch_mode_shell) && batch_filename_ptr) {
- int temp_fd;
- FILE* batch = NULL;
- int id = GetCurrentProcessId();
- PATH_VAR(fbuf);
-
- /* create a file name */
- sprintf(fbuf, "make%d", id);
- *batch_filename_ptr = create_batch_file (fbuf, unixy_shell, &temp_fd);
-
- DB (DB_JOBS, (_("Creating temporary batch file %s\n"),
- *batch_filename_ptr));
-
- /* Create a FILE object for the batch file, and write to it the
- commands to be executed. Put the batch file in TEXT mode. */
- _setmode (temp_fd, _O_TEXT);
- batch = _fdopen (temp_fd, "wt");
- if (!unixy_shell)
- fputs ("@echo off\n", batch);
- fputs (command_ptr, batch);
- fputc ('\n', batch);
- fclose (batch);
- DB (DB_JOBS, (_("Batch file contents:%s\n\t%s\n"),
- !unixy_shell ? "\n\t@echo off" : "", command_ptr));
-
- /* create argv */
- new_argv = xmalloc(3 * sizeof (char *));
- if (unixy_shell) {
- new_argv[0] = xstrdup (shell);
- new_argv[1] = *batch_filename_ptr; /* only argv[0] gets freed later */
- } else {
- new_argv[0] = xstrdup (*batch_filename_ptr);
+ if (just_print_flag && !(flags & COMMANDS_RECURSE))
+ {
+ /* Need to allocate new_argv, although it's unused, because
+ start_job_command will want to free it and its 0'th element. */
+ new_argv = xmalloc (2 * sizeof (char *));
+ new_argv[0] = xstrdup ("");
new_argv[1] = NULL;
}
- new_argv[2] = NULL;
- } else
+ else if ((no_default_sh_exe || batch_mode_shell) && batch_filename)
+ {
+ int temp_fd;
+ FILE* batch = NULL;
+ int id = GetCurrentProcessId ();
+ PATH_VAR (fbuf);
+
+ /* create a file name */
+ sprintf (fbuf, "make%d", id);
+ *batch_filename = create_batch_file (fbuf, unixy_shell, &temp_fd);
+
+ DB (DB_JOBS, (_("Creating temporary batch file %s\n"),
+ *batch_filename));
+
+ /* Create a FILE object for the batch file, and write to it the
+ commands to be executed. Put the batch file in TEXT mode. */
+ _setmode (temp_fd, _O_TEXT);
+ batch = _fdopen (temp_fd, "wt");
+ if (!unixy_shell)
+ fputs ("@echo off\n", batch);
+ fputs (command_ptr, batch);
+ fputc ('\n', batch);
+ fclose (batch);
+ DB (DB_JOBS, (_("Batch file contents:%s\n\t%s\n"),
+ !unixy_shell ? "\n\t@echo off" : "", command_ptr));
+
+ /* create argv */
+ new_argv = xmalloc (3 * sizeof (char *));
+ if (unixy_shell)
+ {
+ new_argv[0] = xstrdup (shell);
+ new_argv[1] = *batch_filename; /* only argv[0] gets freed later */
+ }
+ else
+ {
+ new_argv[0] = xstrdup (*batch_filename);
+ new_argv[1] = NULL;
+ }
+ new_argv[2] = NULL;
+ }
+ else
#endif /* WINDOWS32 */
if (unixy_shell)
- new_argv = construct_command_argv_internal (new_line, 0, 0, 0, 0, flags, 0);
+ new_argv = construct_command_argv_internal (new_line, 0, 0, 0, 0,
+ flags, 0);
#ifdef __EMX__
else if (!unixy_shell)
{
- /* new_line is local, must not be freed therefore
+ /* new_line is local, must not be freed therefore
We use line here instead of new_line because we run the shell
manually. */
size_t line_len = strlen (line);
@@ -3065,8 +3444,10 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
fatal (NILF, _("%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"),
__FILE__, __LINE__);
#endif
+
+ free (new_line);
}
-#endif /* ! AMIGA */
+#endif /* ! AMIGA */
return new_argv;
}
@@ -3074,7 +3455,7 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
/* Figure out the argument list necessary to run LINE as a command. Try to
avoid using a shell. This routine handles only ' quoting, and " quoting
- when no backslash, $ or ` characters are seen in the quotes. Starting
+ when no backslash, $ or ' characters are seen in the quotes. Starting
quotes may be escaped with a backslash. If any of the characters in
sh_chars[] is seen, or any of the builtin commands listed in sh_cmds[]
is the first word of a line, the shell is used.
@@ -3087,7 +3468,7 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
char **
construct_command_argv (char *line, char **restp, struct file *file,
- int cmd_flags, char **batch_filename_ptr)
+ int cmd_flags, char **batch_filename)
{
char *shell, *ifs, *shellflags;
char **argv;
@@ -3101,13 +3482,13 @@ construct_command_argv (char *line, char **restp, struct file *file,
for (;;)
{
while ((*cptr != 0)
- && (isspace ((unsigned char)*cptr)))
- cptr++;
+ && (isspace ((unsigned char)*cptr)))
+ cptr++;
if (*cptr == 0)
- break;
+ break;
while ((*cptr != 0)
- && (!isspace((unsigned char)*cptr)))
- cptr++;
+ && (!isspace ((unsigned char)*cptr)))
+ cptr++;
argc++;
}
@@ -3120,17 +3501,17 @@ construct_command_argv (char *line, char **restp, struct file *file,
for (;;)
{
while ((*cptr != 0)
- && (isspace ((unsigned char)*cptr)))
- cptr++;
+ && (isspace ((unsigned char)*cptr)))
+ cptr++;
if (*cptr == 0)
- break;
+ break;
DB (DB_JOBS, ("argv[%d] = [%s]\n", argc, cptr));
argv[argc++] = cptr;
while ((*cptr != 0)
- && (!isspace((unsigned char)*cptr)))
- cptr++;
+ && (!isspace ((unsigned char)*cptr)))
+ cptr++;
if (*cptr != 0)
- *cptr++ = 0;
+ *cptr++ = 0;
}
#else
{
@@ -3144,10 +3525,11 @@ construct_command_argv (char *line, char **restp, struct file *file,
* Convert to forward slashes so that construct_command_argv_internal()
* is not confused.
*/
- if (shell) {
- char *p = w32ify (shell, 0);
- strcpy (shell, p);
- }
+ if (shell)
+ {
+ char *p = w32ify (shell, 0);
+ strcpy (shell, p);
+ }
#endif
#ifdef __EMX__
{
@@ -3155,12 +3537,12 @@ construct_command_argv (char *line, char **restp, struct file *file,
static const char *last_shell = "";
static int init = 0;
if (init == 0)
- {
- unixroot = getenv ("UNIXROOT");
- /* unixroot must be NULL or not empty */
- if (unixroot && unixroot[0] == '\0') unixroot = NULL;
- init = 1;
- }
+ {
+ unixroot = getenv ("UNIXROOT");
+ /* unixroot must be NULL or not empty */
+ if (unixroot && unixroot[0] == '\0') unixroot = NULL;
+ init = 1;
+ }
/* if we have an unixroot drive and if shell is not default_shell
(which means it's either cmd.exe or the test has already been
@@ -3168,29 +3550,29 @@ construct_command_argv (char *line, char **restp, struct file *file,
try whether it exists e.g.: if "/bin/sh" does not exist use
"$UNIXROOT/bin/sh" instead. */
if (unixroot && shell && strcmp (shell, last_shell) != 0
- && (shell[0] == '/' || shell[0] == '\\'))
- {
- /* trying a new shell, check whether it exists */
- size_t size = strlen (shell);
- char *buf = xmalloc (size + 7);
- memcpy (buf, shell, size);
- memcpy (buf + size, ".exe", 5); /* including the trailing '\0' */
+ && (shell[0] == '/' || shell[0] == '\\'))
+ {
+ /* trying a new shell, check whether it exists */
+ size_t size = strlen (shell);
+ char *buf = xmalloc (size + 7);
+ memcpy (buf, shell, size);
+ memcpy (buf + size, ".exe", 5); /* including the trailing '\0' */
if (access (shell, F_OK) != 0 && access (buf, F_OK) != 0)
- {
- /* try the same for the unixroot drive */
- memmove (buf + 2, buf, size + 5);
- buf[0] = unixroot[0];
- buf[1] = unixroot[1];
- if (access (buf, F_OK) == 0)
- /* we have found a shell! */
- /* free(shell); */
- shell = buf;
- else
- free (buf);
- }
- else
+ {
+ /* try the same for the unixroot drive */
+ memmove (buf + 2, buf, size + 5);
+ buf[0] = unixroot[0];
+ buf[1] = unixroot[1];
+ if (access (buf, F_OK) == 0)
+ /* we have found a shell! */
+ /* free(shell); */
+ shell = buf;
+ else
+ free (buf);
+ }
+ else
free (buf);
- }
+ }
}
#endif /* __EMX__ */
@@ -3201,7 +3583,7 @@ construct_command_argv (char *line, char **restp, struct file *file,
}
argv = construct_command_argv_internal (line, restp, shell, shellflags, ifs,
- cmd_flags, batch_filename_ptr);
+ cmd_flags, batch_filename);
free (shell);
free (shellflags);
diff --git a/job.h b/job.h
index d346b5e..8a20177 100644
--- a/job.h
+++ b/job.h
@@ -1,7 +1,5 @@
/* Definitions for managing subprocesses in GNU Make.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-Foundation, Inc.
+Copyright (C) 1992-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,8 +14,7 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef SEEN_JOB_H
-#define SEEN_JOB_H
+#include "output.h"
#ifdef HAVE_FCNTL_H
# include <fcntl.h>
@@ -28,7 +25,11 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* How to set close-on-exec for a file descriptor. */
#if !defined F_SETFD
-# define CLOSE_ON_EXEC(_d)
+# ifdef WINDOWS32
+# define CLOSE_ON_EXEC(_d) process_noinherit(_d)
+# else
+# define CLOSE_ON_EXEC(_d)
+# endif
#else
# ifndef FD_CLOEXEC
# define FD_CLOEXEC 1
@@ -36,34 +37,78 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
# define CLOSE_ON_EXEC(_d) (void) fcntl ((_d), F_SETFD, FD_CLOEXEC)
#endif
+#ifdef NO_OUTPUT_SYNC
+# define RECORD_SYNC_MUTEX(m) \
+ error (NILF, \
+ _("-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."));
+#else
+# ifdef WINDOWS32
+/* For emulations in w32/compat/posixfcn.c. */
+# define F_GETFD 1
+# define F_SETLKW 2
+/* Implementation note: None of the values of l_type below can be zero
+ -- they are compared with a static instance of the struct, so zero
+ means unknown/invalid, see w32/compat/posixfcn.c. */
+# define F_WRLCK 1
+# define F_UNLCK 2
+
+struct flock
+ {
+ short l_type;
+ short l_whence;
+ off_t l_start;
+ off_t l_len;
+ pid_t l_pid;
+ };
+
+/* This type is actually a HANDLE, but we want to avoid including
+ windows.h as much as possible. */
+typedef intptr_t sync_handle_t;
+
+/* Public functions emulated/provided in posixfcn.c. */
+int fcntl (intptr_t fd, int cmd, ...);
+intptr_t create_mutex (void);
+int same_stream (FILE *f1, FILE *f2);
+
+# define RECORD_SYNC_MUTEX(m) record_sync_mutex(m)
+void record_sync_mutex (const char *str);
+void prepare_mutex_handle_string (intptr_t hdl);
+# else /* !WINDOWS32 */
+
+typedef int sync_handle_t; /* file descriptor */
+
+# define RECORD_SYNC_MUTEX(m) (void)(m)
+
+# endif
+#endif /* !NO_OUTPUT_SYNC */
+
/* Structure describing a running or dead child process. */
struct child
{
- struct child *next; /* Link in the chain. */
-
- struct file *file; /* File being remade. */
+ struct child *next; /* Link in the chain. */
- char **environment; /* Environment for commands. */
+ struct file *file; /* File being remade. */
- char **command_lines; /* Array of variable-expanded cmd lines. */
- unsigned int command_line; /* Index into above. */
- char *command_ptr; /* Ptr into command_lines[command_line]. */
+ char **environment; /* Environment for commands. */
+ char *sh_batch_file; /* Script file for shell commands */
+ char **command_lines; /* Array of variable-expanded cmd lines. */
+ char *command_ptr; /* Ptr into command_lines[command_line]. */
- pid_t pid; /* Child process's ID number. */
#ifdef VMS
- int efn; /* Completion event flag number */
- int cstatus; /* Completion status */
char *comname; /* Temporary command file name */
+ int efn; /* Completion event flag number */
+ int cstatus; /* Completion status */
#endif
- char *sh_batch_file; /* Script file for shell commands */
- unsigned int remote:1; /* Nonzero if executing remotely. */
- unsigned int noerror:1; /* Nonzero if commands contained a `-'. */
-
- unsigned int good_stdin:1; /* Nonzero if this child has a good stdin. */
- unsigned int deleted:1; /* Nonzero if targets have been deleted. */
- unsigned int dontcare:1; /* Saved dontcare flag. */
+ unsigned int command_line; /* Index into command_lines. */
+ struct output output; /* Output for this child. */
+ pid_t pid; /* Child process's ID number. */
+ unsigned int remote:1; /* Nonzero if executing remotely. */
+ unsigned int noerror:1; /* Nonzero if commands contained a '-'. */
+ unsigned int good_stdin:1; /* Nonzero if this child has a good stdin. */
+ unsigned int deleted:1; /* Nonzero if targets have been deleted. */
+ unsigned int dontcare:1; /* Saved dontcare flag. */
};
extern struct child *children;
@@ -77,17 +122,24 @@ char **construct_command_argv (char *line, char **restp, struct file *file,
int cmd_flags, char** batch_file);
#ifdef VMS
int child_execute_job (char *argv, struct child *child);
-#elif defined(__EMX__)
-int child_execute_job (int stdin_fd, int stdout_fd, char **argv, char **envp);
#else
-void child_execute_job (int stdin_fd, int stdout_fd, char **argv, char **envp);
+# define FD_STDIN (fileno (stdin))
+# define FD_STDOUT (fileno (stdout))
+# define FD_STDERR (fileno (stderr))
+# if defined(__EMX__)
+int child_execute_job (int stdin_fd, int stdout_fd, int stderr_fd,
+ char **argv, char **envp);
+# else
+void child_execute_job (int stdin_fd, int stdout_fd, int stderr_fd,
+ char **argv, char **envp) __attribute__ ((noreturn));
+# endif
#endif
#ifdef _AMIGA
-void exec_command (char **argv);
+void exec_command (char **argv) __attribute__ ((noreturn));
#elif defined(__EMX__)
int exec_command (char **argv, char **envp);
#else
-void exec_command (char **argv, char **envp);
+void exec_command (char **argv, char **envp) __attribute__ ((noreturn));
#endif
extern unsigned int job_slots_used;
@@ -96,14 +148,12 @@ void block_sigs (void);
#ifdef POSIX
void unblock_sigs (void);
#else
-#ifdef HAVE_SIGSETMASK
+#ifdef HAVE_SIGSETMASK
extern int fatal_signal_mask;
-#define unblock_sigs() sigsetmask (0)
+#define unblock_sigs() sigsetmask (0)
#else
-#define unblock_sigs()
+#define unblock_sigs()
#endif
#endif
extern unsigned int jobserver_tokens;
-
-#endif /* SEEN_JOB_H */
diff --git a/load.c b/load.c
new file mode 100644
index 0000000..a2cbc25
--- /dev/null
+++ b/load.c
@@ -0,0 +1,240 @@
+/* Loading dynamic objects for GNU Make.
+Copyright (C) 2012-2013 Free Software Foundation, Inc.
+This file is part of GNU Make.
+
+GNU Make is free software; you can redistribute it and/or modify it under the
+terms of the GNU General Public License as published by the Free Software
+Foundation; either version 3 of the License, or (at your option) any later
+version.
+
+GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with
+this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "makeint.h"
+
+#if MAKE_LOAD
+
+#include <string.h>
+#include <ctype.h>
+#include <stdlib.h>
+#include <dlfcn.h>
+#include <errno.h>
+
+#define SYMBOL_EXTENSION "_gmk_setup"
+
+#include "debug.h"
+#include "filedef.h"
+#include "variable.h"
+
+struct load_list
+ {
+ struct load_list *next;
+ const char *name;
+ void *dlp;
+ };
+
+static struct load_list *loaded_syms = NULL;
+
+static load_func_t
+load_object (const gmk_floc *flocp, int noerror,
+ const char *ldname, const char *symname)
+{
+ static void *global_dl = NULL;
+ load_func_t symp;
+
+ if (! global_dl)
+ {
+ global_dl = dlopen (NULL, RTLD_NOW|RTLD_GLOBAL);
+ if (! global_dl)
+ fatal (flocp, _("Failed to open global symbol table: %s"), dlerror ());
+ }
+
+ symp = (load_func_t) dlsym (global_dl, symname);
+ if (! symp)
+ {
+ struct load_list *new;
+ void *dlp = NULL;
+
+ /* If the path has no "/", try the current directory first. */
+ if (! strchr (ldname, '/')
+#ifdef HAVE_DOS_PATHS
+ && ! strchr (ldname, '\\')
+#endif
+ )
+ dlp = dlopen (concat (2, "./", ldname), RTLD_LAZY|RTLD_GLOBAL);
+
+ /* If we haven't opened it yet, try the default search path. */
+ if (! dlp)
+ dlp = dlopen (ldname, RTLD_LAZY|RTLD_GLOBAL);
+
+ /* Still no? Then fail. */
+ if (! dlp)
+ {
+ if (noerror)
+ DB (DB_BASIC, ("%s", dlerror ()));
+ else
+ error (flocp, "%s", dlerror ());
+ return NULL;
+ }
+
+ /* Assert that the GPL license symbol is defined. */
+ symp = (load_func_t) dlsym (dlp, "plugin_is_GPL_compatible");
+ if (! symp)
+ fatal (flocp, _("Loaded object %s is not declared to be GPL compatible"),
+ ldname);
+
+ symp = (load_func_t) dlsym (dlp, symname);
+ if (! symp)
+ fatal (flocp, _("Failed to load symbol %s from %s: %s"),
+ symname, ldname, dlerror ());
+
+ /* Add this symbol to a trivial lookup table. This is not efficient but
+ it's highly unlikely we'll be loading lots of objects, and we only
+ need it to look them up on unload, if we rebuild them. */
+ new = xmalloc (sizeof (struct load_list));
+ new->name = xstrdup (ldname);
+ new->dlp = dlp;
+ new->next = loaded_syms;
+ loaded_syms = new;
+ }
+
+ return symp;
+}
+
+int
+load_file (const gmk_floc *flocp, const char **ldname, int noerror)
+{
+ int nmlen = strlen (*ldname);
+ char *new = alloca (nmlen + CSTRLEN (SYMBOL_EXTENSION) + 1);
+ char *symname = NULL;
+ char *loaded;
+ const char *fp;
+ int r;
+ load_func_t symp;
+
+ /* Break the input into an object file name and a symbol name. If no symbol
+ name was provided, compute one from the object file name. */
+ fp = strchr (*ldname, '(');
+ if (fp)
+ {
+ const char *ep;
+
+ /* There's an open paren, so see if there's a close paren: if so use
+ that as the symbol name. We can't have whitespace: it would have
+ been chopped up before this function is called. */
+ ep = strchr (fp+1, ')');
+ if (ep && ep[1] == '\0')
+ {
+ int l = fp - *ldname;;
+
+ ++fp;
+ if (fp == ep)
+ fatal (flocp, _("Empty symbol name for load: %s"), *ldname);
+
+ /* Make a copy of the ldname part. */
+ memcpy (new, *ldname, l);
+ new[l] = '\0';
+ *ldname = new;
+
+ /* Make a copy of the symbol name part. */
+ symname = new + l + 1;
+ memcpy (symname, fp, ep - fp);
+ symname[ep - fp] = '\0';
+ }
+ }
+
+ /* Add this name to the string cache so it can be reused later. */
+ *ldname = strcache_add (*ldname);
+
+ /* If this object has been loaded, we're done. */
+ loaded = allocated_variable_expand ("$(.LOADED)");
+ fp = strstr (loaded, *ldname);
+ r = fp && (fp==loaded || fp[-1]==' ') && (fp[nmlen]=='\0' || fp[nmlen]==' ');
+ free (loaded);
+ if (r)
+ return 1;
+
+ /* If we didn't find a symbol name yet, construct it from the ldname. */
+ if (! symname)
+ {
+ char *p = new;
+
+ fp = strrchr (*ldname, '/');
+#ifdef HAVE_DOS_PATHS
+ if (fp)
+ {
+ const char *fp2 = strchr (fp, '\\');
+
+ if (fp2 > fp)
+ fp = fp2;
+ }
+ else
+ fp = strrchr (*ldname, '\\');
+ /* The (improbable) case of d:foo. */
+ if (fp && *fp && fp[1] == ':')
+ fp++;
+#endif
+ if (!fp)
+ fp = *ldname;
+ else
+ ++fp;
+ while (isalnum (*fp) || *fp == '_')
+ *(p++) = *(fp++);
+ strcpy (p, SYMBOL_EXTENSION);
+ symname = new;
+ }
+
+ DB (DB_VERBOSE, (_("Loading symbol %s from %s\n"), symname, *ldname));
+
+ /* Load it! */
+ symp = load_object (flocp, noerror, *ldname, symname);
+ if (! symp)
+ return 0;
+
+ /* Invoke the symbol. */
+ r = (*symp) (flocp);
+
+ /* If it succeeded, add the load file to the loaded variable. */
+ if (r > 0)
+ do_variable_definition (flocp, ".LOADED", *ldname, o_default, f_append, 0);
+
+ return r;
+}
+
+void
+unload_file (const char *name)
+{
+ struct load_list *d;
+
+ for (d = loaded_syms; d != NULL; d = d->next)
+ if (streq (d->name, name) && d->dlp)
+ {
+ if (dlclose (d->dlp))
+ perror_with_name ("dlclose", d->name);
+ d->dlp = NULL;
+ break;
+ }
+}
+
+#else
+
+int
+load_file (const gmk_floc *flocp, const char **ldname, int noerror)
+{
+ if (! noerror)
+ fatal (flocp, _("The 'load' operation is not supported on this platform."));
+
+ return 0;
+}
+
+void
+unload_file (const char *name)
+{
+ fatal (NILF, "INTERNAL: Cannot unload when load is not supported!");
+}
+
+#endif /* MAKE_LOAD */
diff --git a/loadapi.c b/loadapi.c
new file mode 100644
index 0000000..0568cbd
--- /dev/null
+++ b/loadapi.c
@@ -0,0 +1,61 @@
+/* API for GNU Make dynamic objects.
+Copyright (C) 2013 Free Software Foundation, Inc.
+This file is part of GNU Make.
+
+GNU Make is free software; you can redistribute it and/or modify it under the
+terms of the GNU General Public License as published by the Free Software
+Foundation; either version 3 of the License, or (at your option) any later
+version.
+
+GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with
+this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "makeint.h"
+
+#include "filedef.h"
+#include "variable.h"
+#include "dep.h"
+
+/* Allocate a buffer in our context, so we can free it. */
+char *
+gmk_alloc (unsigned int len)
+{
+ return xmalloc (len);
+}
+
+/* Free a buffer returned by gmk_expand(). */
+void
+gmk_free (char *s)
+{
+ free (s);
+}
+
+/* Evaluate a buffer as make syntax.
+ Ideally eval_buffer() will take const char *, but not yet. */
+void
+gmk_eval (const char *buffer, const gmk_floc *floc)
+{
+ char *s = xstrdup (buffer);
+ eval_buffer (s, floc);
+ free (s);
+}
+
+/* Expand a string and return an allocated buffer.
+ Caller must call gmk_free() with this buffer. */
+char *
+gmk_expand (const char *ref)
+{
+ return allocated_variable_expand (ref);
+}
+
+/* Register a function to be called from makefiles. */
+void
+gmk_add_function (const char *name, gmk_func_ptr func,
+ unsigned int min, unsigned int max, unsigned int flags)
+{
+ define_new_function (reading_file, name, min, max, flags, func);
+}
diff --git a/main.c b/main.c
index c6989e3..f60e6be 100644
--- a/main.c
+++ b/main.c
@@ -1,7 +1,5 @@
/* Argument parsing and main program of GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,9 +14,9 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
-#include "dep.h"
+#include "makeint.h"
#include "filedef.h"
+#include "dep.h"
#include "variable.h"
#include "job.h"
#include "commands.h"
@@ -32,9 +30,11 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
# include <proto/dos.h>
#endif
#ifdef WINDOWS32
-#include <windows.h>
-#include <io.h>
-#include "pathstuff.h"
+# include <windows.h>
+# include <io.h>
+# include "pathstuff.h"
+# include "sub_proc.h"
+# include "w32err.h"
#endif
#ifdef __EMX__
# include <sys/types.h>
@@ -64,11 +64,11 @@ void verify_file_data_base (void);
# define HAVE_WAIT_NOHANG
#endif
-#ifndef HAVE_UNISTD_H
+#ifndef HAVE_UNISTD_H
int chdir ();
#endif
-#ifndef STDC_HEADERS
-# ifndef sun /* Sun has an incorrect decl in a header. */
+#ifndef STDC_HEADERS
+# ifndef sun /* Sun has an incorrect decl in a header. */
void exit (int) __attribute__ ((noreturn));
# endif
double atof ();
@@ -79,7 +79,7 @@ static void print_data_base (void);
static void print_version (void);
static void decode_switches (int argc, char **argv, int env);
static void decode_env_switches (char *envar, unsigned int len);
-static const char *define_makeflags (int all, int makefile);
+static struct variable *define_makeflags (int all, int makefile);
static char *quote_for_env (char *out, const char *in);
static void initialize_global_hash_tables (void);
@@ -88,29 +88,29 @@ static void initialize_global_hash_tables (void);
struct command_switch
{
- int c; /* The switch character. */
+ int c; /* The switch character. */
- enum /* Type of the value. */
+ enum /* Type of the value. */
{
- flag, /* Turn int flag on. */
- flag_off, /* Turn int flag off. */
- string, /* One string per switch. */
- filename, /* A string containing a file name. */
- positive_int, /* A positive integer. */
- floating, /* A floating-point number (double). */
- ignore /* Ignored. */
+ flag, /* Turn int flag on. */
+ flag_off, /* Turn int flag off. */
+ string, /* One string per switch. */
+ filename, /* A string containing a file name. */
+ positive_int, /* A positive integer. */
+ floating, /* A floating-point number (double). */
+ ignore /* Ignored. */
} type;
- void *value_ptr; /* Pointer to the value-holding variable. */
+ void *value_ptr; /* Pointer to the value-holding variable. */
- unsigned int env:1; /* Can come from MAKEFLAGS. */
- unsigned int toenv:1; /* Should be put in MAKEFLAGS. */
- unsigned int no_makefile:1; /* Don't propagate when remaking makefiles. */
+ unsigned int env:1; /* Can come from MAKEFLAGS. */
+ unsigned int toenv:1; /* Should be put in MAKEFLAGS. */
+ unsigned int no_makefile:1; /* Don't propagate when remaking makefiles. */
- const void *noarg_value; /* Pointer to value used if no arg given. */
- const void *default_value; /* Pointer to default value. */
+ const void *noarg_value; /* Pointer to value used if no arg given. */
+ const void *default_value; /* Pointer to default value. */
- char *long_name; /* Long option name. */
+ char *long_name; /* Long option name. */
};
/* True if C is a switch value that corresponds to a short option. */
@@ -122,14 +122,18 @@ struct command_switch
struct stringlist
{
- const char **list; /* Nil-terminated list of strings. */
- unsigned int idx; /* Index into above. */
- unsigned int max; /* Number of pointers allocated. */
+ const char **list; /* Nil-terminated list of strings. */
+ unsigned int idx; /* Index into above. */
+ unsigned int max; /* Number of pointers allocated. */
};
/* The recognized command switches. */
+/* Nonzero means do extra verification (that may slow things down). */
+
+int verify_flag;
+
/* Nonzero means do not print commands to be executed (-s). */
int silent_flag;
@@ -146,14 +150,14 @@ int just_print_flag;
/* Print debugging info (--debug). */
-static struct stringlist *db_flags;
+static struct stringlist *db_flags = 0;
static int debug_flag = 0;
int db_level = 0;
-/* Output level (--verbosity). */
+/* Synchronize output (--output-sync). */
-static struct stringlist *verbosity_flags;
+static struct stringlist *output_sync_option = 0;
#ifdef WINDOWS32
/* Suspend make in main for a short time to allow debugger to attach */
@@ -235,6 +239,11 @@ static struct stringlist *jobserver_fds = 0;
int job_fds[2] = { -1, -1 };
int job_rfd = -1;
+/* Handle for the mutex used on Windows to synchronize output of our
+ children under -O. */
+
+static struct stringlist *sync_mutex = 0;
+
/* Maximum load average at which multiple jobs will be run.
Negative values mean unlimited, while zero means limit to
zero load (which could be useful to start infinite jobs remotely
@@ -343,6 +352,9 @@ static const char *const usage[] =
-o FILE, --old-file=FILE, --assume-old=FILE\n\
Consider FILE to be very old and don't remake it.\n"),
N_("\
+ -O[TYPE], --output-sync[=TYPE]\n\
+ Synchronize output of parallel jobs by TYPE.\n"),
+ N_("\
-p, --print-data-base Print make's internal database.\n"),
N_("\
-q, --question Run no recipe; exit status says if up to date.\n"),
@@ -358,6 +370,8 @@ static const char *const usage[] =
N_("\
-t, --touch Touch targets instead of remaking them.\n"),
N_("\
+ --trace Print tracing information.\n"),
+ N_("\
-v, --version Print the version number of make and exit.\n"),
N_("\
-w, --print-directory Print the current directory.\n"),
@@ -371,40 +385,26 @@ static const char *const usage[] =
NULL
};
-/* The table of command switches. */
+/* The table of command switches.
+ Order matters here: this is the order MAKEFLAGS will be constructed.
+ So be sure all simple flags (single char, no argument) come first. */
static const struct command_switch switches[] =
{
{ 'b', ignore, 0, 0, 0, 0, 0, 0, 0 },
{ 'B', flag, &always_make_set, 1, 1, 0, 0, 0, "always-make" },
- { 'C', filename, &directories, 0, 0, 0, 0, 0, "directory" },
{ 'd', flag, &debug_flag, 1, 1, 0, 0, 0, 0 },
- { CHAR_MAX+1, string, &db_flags, 1, 1, 0, "basic", 0, "debug" },
#ifdef WINDOWS32
{ 'D', flag, &suspend_flag, 1, 1, 0, 0, 0, "suspend-for-debug" },
#endif
{ 'e', flag, &env_overrides, 1, 1, 0, 0, 0, "environment-overrides", },
- { 'f', filename, &makefiles, 0, 0, 0, 0, 0, "file" },
{ 'h', flag, &print_usage_flag, 0, 0, 0, 0, 0, "help" },
{ 'i', flag, &ignore_errors_flag, 1, 1, 0, 0, 0, "ignore-errors" },
- { 'I', filename, &include_directories, 1, 1, 0, 0, 0,
- "include-dir" },
- { 'j', positive_int, &job_slots, 1, 1, 0, &inf_jobs, &default_job_slots,
- "jobs" },
- { CHAR_MAX+2, string, &jobserver_fds, 1, 1, 0, 0, 0, "jobserver-fds" },
{ 'k', flag, &keep_going_flag, 1, 1, 0, 0, &default_keep_going_flag,
"keep-going" },
-#ifndef NO_FLOAT
- { 'l', floating, &max_load_average, 1, 1, 0, &default_load_average,
- &default_load_average, "load-average" },
-#else
- { 'l', positive_int, &max_load_average, 1, 1, 0, &default_load_average,
- &default_load_average, "load-average" },
-#endif
{ 'L', flag, &check_symlink_flag, 1, 1, 0, 0, 0, "check-symlink-times" },
{ 'm', ignore, 0, 0, 0, 0, 0, 0, 0 },
{ 'n', flag, &just_print_flag, 1, 1, 1, 0, 0, "just-print" },
- { 'o', filename, &old_files, 0, 0, 0, 0, 0, "old-file" },
{ 'p', flag, &print_data_base_flag, 1, 1, 0, 0, 0, "print-data-base" },
{ 'q', flag, &question_flag, 1, 1, 1, 0, 0, "question" },
{ 'r', flag, &no_builtin_rules_flag, 1, 1, 0, 0, 0, "no-builtin-rules" },
@@ -415,15 +415,36 @@ static const struct command_switch switches[] =
"no-keep-going" },
{ 't', flag, &touch_flag, 1, 1, 1, 0, 0, "touch" },
{ 'v', flag, &print_version_flag, 1, 1, 0, 0, 0, "version" },
- { CHAR_MAX+3, string, &verbosity_flags, 1, 1, 0, 0, 0,
- "verbosity" },
{ 'w', flag, &print_directory_flag, 1, 1, 0, 0, 0, "print-directory" },
+
+ /* These options take arguments. */
+ { 'C', filename, &directories, 0, 0, 0, 0, 0, "directory" },
+ { 'f', filename, &makefiles, 0, 0, 0, 0, 0, "file" },
+ { 'I', filename, &include_directories, 1, 1, 0, 0, 0,
+ "include-dir" },
+ { 'j', positive_int, &job_slots, 1, 1, 0, &inf_jobs, &default_job_slots,
+ "jobs" },
+#ifndef NO_FLOAT
+ { 'l', floating, &max_load_average, 1, 1, 0, &default_load_average,
+ &default_load_average, "load-average" },
+#else
+ { 'l', positive_int, &max_load_average, 1, 1, 0, &default_load_average,
+ &default_load_average, "load-average" },
+#endif
+ { 'o', filename, &old_files, 0, 0, 0, 0, 0, "old-file" },
+ { 'O', string, &output_sync_option, 1, 1, 0, "target", 0, "output-sync" },
+ { 'W', filename, &new_files, 0, 0, 0, 0, 0, "what-if" },
+
+ /* These are long-style options. */
+ { CHAR_MAX+1, string, &db_flags, 1, 1, 0, "basic", 0, "debug" },
+ { CHAR_MAX+2, string, &jobserver_fds, 1, 1, 0, 0, 0, "jobserver-fds" },
+ { CHAR_MAX+3, flag, &trace_flag, 1, 1, 0, 0, 0, "trace" },
{ CHAR_MAX+4, flag, &inhibit_print_directory_flag, 1, 1, 0, 0, 0,
"no-print-directory" },
- { 'W', filename, &new_files, 0, 0, 0, 0, 0, "what-if" },
{ CHAR_MAX+5, flag, &warn_undefined_variables_flag, 1, 1, 0, 0, 0,
"warn-undefined-variables" },
{ CHAR_MAX+6, string, &eval_strings, 1, 0, 0, 0, 0, "eval" },
+ { CHAR_MAX+7, string, &sync_mutex, 1, 1, 0, 0, 0, "sync-mutex" },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0 }
};
@@ -431,15 +452,15 @@ static const struct command_switch switches[] =
static struct option long_option_aliases[] =
{
- { "quiet", no_argument, 0, 's' },
- { "stop", no_argument, 0, 'S' },
- { "new-file", required_argument, 0, 'W' },
- { "assume-new", required_argument, 0, 'W' },
- { "assume-old", required_argument, 0, 'o' },
- { "max-load", optional_argument, 0, 'l' },
- { "dry-run", no_argument, 0, 'n' },
- { "recon", no_argument, 0, 'n' },
- { "makefile", required_argument, 0, 'f' },
+ { "quiet", no_argument, 0, 's' },
+ { "stop", no_argument, 0, 'S' },
+ { "new-file", required_argument, 0, 'W' },
+ { "assume-new", required_argument, 0, 'W' },
+ { "assume-old", required_argument, 0, 'o' },
+ { "max-load", optional_argument, 0, 'l' },
+ { "dry-run", no_argument, 0, 'n' },
+ { "recon", no_argument, 0, 'n' },
+ { "makefile", required_argument, 0, 'f' },
};
/* List of goal targets. */
@@ -486,7 +507,7 @@ struct variable * default_goal_var;
struct file *default_file;
-/* Nonzero if we have seen the magic `.POSIX' target.
+/* Nonzero if we have seen the magic '.POSIX' target.
This turns on pedantic compliance with POSIX.2. */
int posix_pedantic;
@@ -502,7 +523,17 @@ int second_expansion;
int one_shell;
-/* Nonzero if we have seen the `.NOTPARALLEL' target.
+/* One of OUTPUT_SYNC_* if the "--output-sync" option was given. This
+ attempts to synchronize the output of parallel jobs such that the results
+ of each job stay together. */
+
+int output_sync = OUTPUT_SYNC_NONE;
+
+/* Nonzero if the "--trace" option was given. */
+
+int trace_flag = 0;
+
+/* Nonzero if we have seen the '.NOTPARALLEL' target.
This turns off parallel builds for this invocation of make. */
int not_parallel;
@@ -512,13 +543,25 @@ int not_parallel;
warning at the end of the run. */
int clock_skew_detected;
+
+/* Map of possible stop characters for searching strings. */
+#ifndef UCHAR_MAX
+# define UCHAR_MAX 255
+#endif
+unsigned short stopchar_map[UCHAR_MAX + 1] = {0};
+
+/* If output-sync is enabled we'll collect all the output generated due to
+ options, while reading makefiles, etc. */
+
+struct output make_sync;
+
/* Mask of signals that are being caught with fatal_error_signal. */
-#ifdef POSIX
+#ifdef POSIX
sigset_t fatal_signal_set;
#else
-# ifdef HAVE_SIGSETMASK
+# ifdef HAVE_SIGSETMASK
int fatal_signal_mask;
# endif
#endif
@@ -554,6 +597,46 @@ initialize_global_hash_tables (void)
hash_init_function_table ();
}
+/* This character map locate stop chars when parsing GNU makefiles.
+ Each element is true if we should stop parsing on that character. */
+
+static void
+initialize_stopchar_map ()
+{
+ int i;
+
+ stopchar_map[(int)'\0'] = MAP_NUL;
+ stopchar_map[(int)'#'] = MAP_COMMENT;
+ stopchar_map[(int)';'] = MAP_SEMI;
+ stopchar_map[(int)'='] = MAP_EQUALS;
+ stopchar_map[(int)':'] = MAP_COLON;
+ stopchar_map[(int)'%'] = MAP_PERCENT;
+ stopchar_map[(int)'|'] = MAP_PIPE;
+ stopchar_map[(int)'.'] = MAP_DOT | MAP_USERFUNC;
+ stopchar_map[(int)','] = MAP_COMMA;
+ stopchar_map[(int)'$'] = MAP_VARIABLE;
+
+ stopchar_map[(int)'-'] = MAP_USERFUNC;
+ stopchar_map[(int)'_'] = MAP_USERFUNC;
+
+ stopchar_map[(int)'/'] = MAP_PATHSEP;
+#if defined(VMS)
+ stopchar_map[(int)']'] = MAP_PATHSEP;
+#elif defined(HAVE_DOS_PATHS)
+ stopchar_map[(int)'\\'] = MAP_PATHSEP;
+#endif
+
+ for (i = 1; i <= UCHAR_MAX; ++i)
+ {
+ if (isblank(i))
+ stopchar_map[i] = MAP_BLANK;
+ if (isspace(i))
+ stopchar_map[i] |= MAP_SPACE;
+ if (isalnum(i))
+ stopchar_map[i] = MAP_USERFUNC;
+ }
+}
+
static const char *
expand_command_line_file (char *name)
{
@@ -567,7 +650,7 @@ expand_command_line_file (char *name)
{
expanded = tilde_expand (name);
if (expanded != 0)
- name = expanded;
+ name = expanded;
}
/* This is also done in parse_file_seq, so this is redundant
@@ -577,16 +660,16 @@ expand_command_line_file (char *name)
{
name += 2;
while (*name == '/')
- /* Skip following slashes: ".//foo" is "foo", not "/foo". */
- ++name;
+ /* Skip following slashes: ".//foo" is "foo", not "/foo". */
+ ++name;
}
if (*name == '\0')
{
/* It was all slashes! Move back to the dot and truncate
- it after the first slash, so it becomes just "./". */
+ it after the first slash, so it becomes just "./". */
do
- --name;
+ --name;
while (name[0] != '.');
name[2] = '\0';
}
@@ -617,52 +700,127 @@ decode_debug_flags (void)
if (debug_flag)
db_level = DB_ALL;
- if (!db_flags)
+ if (db_flags)
+ for (pp=db_flags->list; *pp; ++pp)
+ {
+ const char *p = *pp;
+
+ while (1)
+ {
+ switch (tolower (p[0]))
+ {
+ case 'a':
+ db_level |= DB_ALL;
+ break;
+ case 'b':
+ db_level |= DB_BASIC;
+ break;
+ case 'i':
+ db_level |= DB_BASIC | DB_IMPLICIT;
+ break;
+ case 'j':
+ db_level |= DB_JOBS;
+ break;
+ case 'm':
+ db_level |= DB_BASIC | DB_MAKEFILES;
+ break;
+ case 'n':
+ db_level = 0;
+ break;
+ case 'v':
+ db_level |= DB_BASIC | DB_VERBOSE;
+ break;
+ default:
+ fatal (NILF, _("unknown debug level specification '%s'"), p);
+ }
+
+ while (*(++p) != '\0')
+ if (*p == ',' || *p == ' ')
+ {
+ ++p;
+ break;
+ }
+
+ if (*p == '\0')
+ break;
+ }
+ }
+
+ if (db_level)
+ verify_flag = 1;
+
+ if (! db_level)
+ debug_flag = 0;
+}
+
+static void
+decode_output_sync_flags (void)
+{
+ const char **pp;
+
+ if (!output_sync_option)
return;
- for (pp=db_flags->list; *pp; ++pp)
+ for (pp=output_sync_option->list; *pp; ++pp)
{
const char *p = *pp;
- while (1)
- {
- switch (tolower (p[0]))
- {
- case 'a':
- db_level |= DB_ALL;
- break;
- case 'b':
- db_level |= DB_BASIC;
- break;
- case 'i':
- db_level |= DB_BASIC | DB_IMPLICIT;
- break;
- case 'j':
- db_level |= DB_JOBS;
- break;
- case 'm':
- db_level |= DB_BASIC | DB_MAKEFILES;
- break;
- case 'v':
- db_level |= DB_BASIC | DB_VERBOSE;
- break;
- default:
- fatal (NILF, _("unknown debug level specification `%s'"), p);
- }
+ if (streq (p, "none"))
+ output_sync = OUTPUT_SYNC_NONE;
+ else if (streq (p, "line"))
+ output_sync = OUTPUT_SYNC_LINE;
+ else if (streq (p, "target"))
+ output_sync = OUTPUT_SYNC_TARGET;
+ else if (streq (p, "recurse"))
+ output_sync = OUTPUT_SYNC_RECURSE;
+ else
+ fatal (NILF, _("unknown output-sync type '%s'"), p);
+ }
- while (*(++p) != '\0')
- if (*p == ',' || *p == ' ')
- break;
+ if (sync_mutex)
+ {
+ const char *mp;
+ unsigned int idx;
- if (*p == '\0')
- break;
+ for (idx = 1; idx < sync_mutex->idx; idx++)
+ if (!streq (sync_mutex->list[0], sync_mutex->list[idx]))
+ fatal (NILF, _("internal error: multiple --sync-mutex options"));
- ++p;
- }
+ /* Now parse the mutex handle string. */
+ mp = sync_mutex->list[0];
+ RECORD_SYNC_MUTEX (mp);
}
}
#ifdef WINDOWS32
+
+#ifndef NO_OUTPUT_SYNC
+
+/* This is called from start_job_command when it detects that
+ output_sync option is in effect. The handle to the synchronization
+ mutex is passed, as a string, to sub-makes via the --sync-mutex
+ command-line argument. */
+void
+prepare_mutex_handle_string (sync_handle_t handle)
+{
+ if (!sync_mutex)
+ {
+ /* 2 hex digits per byte + 2 characters for "0x" + null. */
+ char hdl_string[2 * sizeof (sync_handle_t) + 2 + 1];
+
+ /* Prepare the mutex handle string for our children. */
+ sprintf (hdl_string, "0x%x", handle);
+ sync_mutex = xmalloc (sizeof (struct stringlist));
+ sync_mutex->list = xmalloc (sizeof (char *));
+ sync_mutex->list[0] = xstrdup (hdl_string);
+ sync_mutex->idx = 1;
+ sync_mutex->max = 1;
+ define_makeflags (1, 0);
+ }
+}
+
+#endif /* NO_OUTPUT_SYNC */
+
/*
* HANDLE runtime exceptions by avoiding a requestor on the GUI. Capture
* exception and print it to stderr instead.
@@ -673,11 +831,11 @@ decode_debug_flags (void)
* debuggers can attach.
*/
LONG WINAPI
-handle_runtime_exceptions( struct _EXCEPTION_POINTERS *exinfo )
+handle_runtime_exceptions (struct _EXCEPTION_POINTERS *exinfo)
{
PEXCEPTION_RECORD exrec = exinfo->ExceptionRecord;
- LPSTR cmdline = GetCommandLine();
- LPSTR prg = strtok(cmdline, " ");
+ LPSTR cmdline = GetCommandLine ();
+ LPSTR prg = strtok (cmdline, " ");
CHAR errmsg[1024];
#ifdef USE_EVENT_LOG
HANDLE hEventSource;
@@ -686,54 +844,54 @@ handle_runtime_exceptions( struct _EXCEPTION_POINTERS *exinfo )
if (! ISDB (DB_VERBOSE))
{
- sprintf(errmsg,
- _("%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"),
- prg, exrec->ExceptionCode, exrec->ExceptionAddress);
- fprintf(stderr, errmsg);
- exit(255);
+ sprintf (errmsg,
+ _("%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"),
+ prg, exrec->ExceptionCode, exrec->ExceptionAddress);
+ fprintf (stderr, errmsg);
+ exit (255);
}
- sprintf(errmsg,
- _("\nUnhandled exception filter called from program %s\nExceptionCode = %lx\nExceptionFlags = %lx\nExceptionAddress = 0x%p\n"),
- prg, exrec->ExceptionCode, exrec->ExceptionFlags,
- exrec->ExceptionAddress);
+ sprintf (errmsg,
+ _("\nUnhandled exception filter called from program %s\nExceptionCode = %lx\nExceptionFlags = %lx\nExceptionAddress = 0x%p\n"),
+ prg, exrec->ExceptionCode, exrec->ExceptionFlags,
+ exrec->ExceptionAddress);
if (exrec->ExceptionCode == EXCEPTION_ACCESS_VIOLATION
&& exrec->NumberParameters >= 2)
- sprintf(&errmsg[strlen(errmsg)],
- (exrec->ExceptionInformation[0]
- ? _("Access violation: write operation at address 0x%p\n")
- : _("Access violation: read operation at address 0x%p\n")),
- (PVOID)exrec->ExceptionInformation[1]);
+ sprintf (&errmsg[strlen(errmsg)],
+ (exrec->ExceptionInformation[0]
+ ? _("Access violation: write operation at address 0x%p\n")
+ : _("Access violation: read operation at address 0x%p\n")),
+ (PVOID)exrec->ExceptionInformation[1]);
/* turn this on if we want to put stuff in the event log too */
#ifdef USE_EVENT_LOG
- hEventSource = RegisterEventSource(NULL, "GNU Make");
+ hEventSource = RegisterEventSource (NULL, "GNU Make");
lpszStrings[0] = errmsg;
if (hEventSource != NULL)
{
- ReportEvent(hEventSource, /* handle of event source */
- EVENTLOG_ERROR_TYPE, /* event type */
- 0, /* event category */
- 0, /* event ID */
- NULL, /* current user's SID */
- 1, /* strings in lpszStrings */
- 0, /* no bytes of raw data */
- lpszStrings, /* array of error strings */
- NULL); /* no raw data */
-
- (VOID) DeregisterEventSource(hEventSource);
+ ReportEvent (hEventSource, /* handle of event source */
+ EVENTLOG_ERROR_TYPE, /* event type */
+ 0, /* event category */
+ 0, /* event ID */
+ NULL, /* current user's SID */
+ 1, /* strings in lpszStrings */
+ 0, /* no bytes of raw data */
+ lpszStrings, /* array of error strings */
+ NULL); /* no raw data */
+
+ (VOID) DeregisterEventSource (hEventSource);
}
#endif
/* Write the error to stderr too */
- fprintf(stderr, errmsg);
+ fprintf (stderr, errmsg);
#ifdef DEBUG
return EXCEPTION_CONTINUE_SEARCH;
#else
- exit(255);
+ exit (255);
return (255); /* not reached */
#endif
}
@@ -741,7 +899,7 @@ handle_runtime_exceptions( struct _EXCEPTION_POINTERS *exinfo )
/*
* On WIN32 systems we don't have the luxury of a /bin directory that
* is mapped globally to every drive mounted to the system. Since make could
- * be invoked from any drive, and we don't want to propogate /bin/sh
+ * be invoked from any drive, and we don't want to propagate /bin/sh
* to every single drive. Allow ourselves a chance to search for
* a value for default shell here (if the default path does not exist).
*/
@@ -773,75 +931,92 @@ find_and_set_default_shell (const char *token)
|| ((tokend - 4 == search_token
|| (tokend - 4 > search_token
&& (tokend[-5] == '/' || tokend[-5] == '\\')))
- && !strcasecmp (tokend - 4, "cmd.exe"))) {
- batch_mode_shell = 1;
- unixy_shell = 0;
- sprintf (sh_path, "%s", search_token);
- default_shell = xstrdup (w32ify (sh_path, 0));
- DB (DB_VERBOSE, (_("find_and_set_shell() setting default_shell = %s\n"),
- default_shell));
- sh_found = 1;
- } else if (!no_default_sh_exe &&
- (token == NULL || !strcmp (search_token, default_shell))) {
- /* no new information, path already set or known */
- sh_found = 1;
- } else if (file_exists_p (search_token)) {
- /* search token path was found */
- sprintf (sh_path, "%s", search_token);
- default_shell = xstrdup (w32ify (sh_path, 0));
- DB (DB_VERBOSE, (_("find_and_set_shell() setting default_shell = %s\n"),
- default_shell));
- sh_found = 1;
- } else {
- char *p;
- struct variable *v = lookup_variable (STRING_SIZE_TUPLE ("PATH"));
-
- /* Search Path for shell */
- if (v && v->value) {
- char *ep;
-
- p = v->value;
- ep = strchr (p, PATH_SEPARATOR_CHAR);
-
- while (ep && *ep) {
- *ep = '\0';
-
- if (dir_file_exists_p (p, search_token)) {
- sprintf (sh_path, "%s/%s", p, search_token);
- default_shell = xstrdup (w32ify (sh_path, 0));
- sh_found = 1;
- *ep = PATH_SEPARATOR_CHAR;
-
- /* terminate loop */
- p += strlen (p);
- } else {
- *ep = PATH_SEPARATOR_CHAR;
- p = ++ep;
- }
+ && !strcasecmp (tokend - 4, "cmd.exe")))
+ {
+ batch_mode_shell = 1;
+ unixy_shell = 0;
+ sprintf (sh_path, "%s", search_token);
+ default_shell = xstrdup (w32ify (sh_path, 0));
+ DB (DB_VERBOSE, (_("find_and_set_shell() setting default_shell = %s\n"),
+ default_shell));
+ sh_found = 1;
+ }
+ else if (!no_default_sh_exe
+ && (token == NULL || !strcmp (search_token, default_shell)))
+ {
+ /* no new information, path already set or known */
+ sh_found = 1;
+ }
+ else if (_access (search_token, 0) == 0)
+ {
+ /* search token path was found */
+ sprintf (sh_path, "%s", search_token);
+ default_shell = xstrdup (w32ify (sh_path, 0));
+ DB (DB_VERBOSE, (_("find_and_set_shell() setting default_shell = %s\n"),
+ default_shell));
+ sh_found = 1;
+ }
+ else
+ {
+ char *p;
+ struct variable *v = lookup_variable (STRING_SIZE_TUPLE ("PATH"));
- ep = strchr (p, PATH_SEPARATOR_CHAR);
- }
+ /* Search Path for shell */
+ if (v && v->value)
+ {
+ char *ep;
- /* be sure to check last element of Path */
- if (p && *p && dir_file_exists_p (p, search_token)) {
- sprintf (sh_path, "%s/%s", p, search_token);
- default_shell = xstrdup (w32ify (sh_path, 0));
- sh_found = 1;
- }
+ p = v->value;
+ ep = strchr (p, PATH_SEPARATOR_CHAR);
+
+ while (ep && *ep)
+ {
+ *ep = '\0';
+
+ sprintf (sh_path, "%s/%s", p, search_token);
+ if (_access (sh_path, 0) == 0)
+ {
+ default_shell = xstrdup (w32ify (sh_path, 0));
+ sh_found = 1;
+ *ep = PATH_SEPARATOR_CHAR;
+
+ /* terminate loop */
+ p += strlen (p);
+ }
+ else
+ {
+ *ep = PATH_SEPARATOR_CHAR;
+ p = ++ep;
+ }
- if (sh_found)
- DB (DB_VERBOSE,
- (_("find_and_set_shell() path search set default_shell = %s\n"),
- default_shell));
+ ep = strchr (p, PATH_SEPARATOR_CHAR);
+ }
+
+ /* be sure to check last element of Path */
+ if (p && *p)
+ {
+ sprintf (sh_path, "%s/%s", p, search_token);
+ if (_access (sh_path, 0) == 0)
+ {
+ default_shell = xstrdup (w32ify (sh_path, 0));
+ sh_found = 1;
+ }
+ }
+
+ if (sh_found)
+ DB (DB_VERBOSE,
+ (_("find_and_set_shell() path search set default_shell = %s\n"),
+ default_shell));
+ }
}
- }
/* naive test */
- if (!unixy_shell && sh_found &&
- (strstr (default_shell, "sh") || strstr (default_shell, "SH"))) {
- unixy_shell = 1;
- batch_mode_shell = 0;
- }
+ if (!unixy_shell && sh_found
+ && (strstr (default_shell, "sh") || strstr (default_shell, "SH")))
+ {
+ unixy_shell = 1;
+ batch_mode_shell = 0;
+ }
#ifdef BATCH_MODE_ONLY_SHELL
batch_mode_shell = 1;
@@ -863,51 +1038,6 @@ msdos_return_to_initial_directory (void)
}
#endif /* __MSDOS__ */
-char *mktemp (char *template);
-int mkstemp (char *template);
-
-FILE *
-open_tmpfile(char **name, const char *template)
-{
-#ifdef HAVE_FDOPEN
- int fd;
-#endif
-
-#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
-}
-
-
#ifdef _AMIGA
int
main (int argc, char **argv)
@@ -918,20 +1048,25 @@ main (int argc, char **argv, char **envp)
{
static char *stdin_nm = 0;
int makefile_status = MAKE_SUCCESS;
- struct dep *read_makefiles;
+ struct dep *read_files;
PATH_VAR (current_directory);
unsigned int restarts = 0;
+ unsigned int syncing = 0;
#ifdef WINDOWS32
char *unix_path = NULL;
char *windows32_path = NULL;
- SetUnhandledExceptionFilter(handle_runtime_exceptions);
+ SetUnhandledExceptionFilter (handle_runtime_exceptions);
/* start off assuming we have no shell */
unixy_shell = 0;
no_default_sh_exe = 1;
#endif
+ output_init (&make_sync);
+
+ initialize_stopchar_map();
+
#ifdef SET_STACK_SIZE
/* Get rid of any avoidable limit on stack size. */
{
@@ -950,24 +1085,23 @@ main (int argc, char **argv, char **envp)
}
#endif
-#ifdef HAVE_ATEXIT
- atexit (close_stdout);
-#endif
-
/* Needed for OS/2 */
- initialize_main(&argc, &argv);
+ initialize_main (&argc, &argv);
- reading_file = 0;
+#ifdef MAKE_MAINTAINER_MODE
+ /* In maintainer mode we always enable verification. */
+ verify_flag = 1;
+#endif
#if defined (__MSDOS__) && !defined (_POSIX_SOURCE)
- /* Request the most powerful version of `system', to
+ /* Request the most powerful version of 'system', to
make up for the dumb default shell. */
__system_flags = (__system_redirect
- | __system_use_shell
- | __system_allow_multiple_cmds
- | __system_allow_long_cmds
- | __system_handle_null_commands
- | __system_emulate_chdir);
+ | __system_use_shell
+ | __system_allow_multiple_cmds
+ | __system_allow_long_cmds
+ | __system_handle_null_commands
+ | __system_emulate_chdir);
#endif
@@ -978,22 +1112,22 @@ main (int argc, char **argv, char **envp)
(void)bindtextdomain (PACKAGE, LOCALEDIR);
(void)textdomain (PACKAGE);
-#ifdef POSIX
+#ifdef POSIX
sigemptyset (&fatal_signal_set);
-#define ADD_SIG(sig) sigaddset (&fatal_signal_set, sig)
+#define ADD_SIG(sig) sigaddset (&fatal_signal_set, sig)
#else
-#ifdef HAVE_SIGSETMASK
+#ifdef HAVE_SIGSETMASK
fatal_signal_mask = 0;
-#define ADD_SIG(sig) fatal_signal_mask |= sigmask (sig)
+#define ADD_SIG(sig) fatal_signal_mask |= sigmask (sig)
#else
-#define ADD_SIG(sig) (void)sig /* Needed to avoid warnings in MSVC. */
+#define ADD_SIG(sig) (void)sig
#endif
#endif
-#define FATAL_SIG(sig) \
- if (bsd_signal (sig, fatal_error_signal) == SIG_IGN) \
- bsd_signal (sig, SIG_IGN); \
- else \
+#define FATAL_SIG(sig) \
+ if (bsd_signal (sig, fatal_error_signal) == SIG_IGN) \
+ bsd_signal (sig, SIG_IGN); \
+ else \
ADD_SIG (sig);
#ifdef SIGHUP
@@ -1012,7 +1146,7 @@ main (int argc, char **argv, char **envp)
FATAL_SIG (SIGFPE);
#endif
-#ifdef SIGDANGER
+#ifdef SIGDANGER
FATAL_SIG (SIGDANGER);
#endif
#ifdef SIGXCPU
@@ -1022,7 +1156,7 @@ main (int argc, char **argv, char **envp)
FATAL_SIG (SIGXFSZ);
#endif
-#undef FATAL_SIG
+#undef FATAL_SIG
/* Do not ignore the child-death signal. This must be done before
any children could possibly be created; otherwise, the wait
@@ -1038,18 +1172,7 @@ main (int argc, char **argv, char **envp)
# endif
#endif
- /* Make sure stdout is line-buffered. */
-
-#ifdef HAVE_SETVBUF
-# ifdef SETVBUF_REVERSED
- setvbuf (stdout, _IOLBF, xmalloc (BUFSIZ), BUFSIZ);
-# else /* setvbuf not reversed. */
- /* Some buggy systems lose if we pass 0 instead of allocating ourselves. */
- setvbuf (stdout, 0, _IOLBF, BUFSIZ);
-# endif /* setvbuf reversed. */
-#elif HAVE_SETLINEBUF
- setlinebuf (stdout);
-#endif /* setlinebuf missing. */
+ output_init (NULL);
/* Figure out where this program lives. */
@@ -1066,27 +1189,26 @@ main (int argc, char **argv, char **envp)
#endif
#if defined(__MSDOS__) || defined(__EMX__)
if (program == 0)
- program = strrchr (argv[0], '\\');
+ program = strrchr (argv[0], '\\');
else
- {
- /* Some weird environments might pass us argv[0] with
- both kinds of slashes; we must find the rightmost. */
- char *p = strrchr (argv[0], '\\');
- if (p && p > program)
- program = p;
- }
+ {
+ /* Some weird environments might pass us argv[0] with
+ both kinds of slashes; we must find the rightmost. */
+ char *p = strrchr (argv[0], '\\');
+ if (p && p > program)
+ program = p;
+ }
if (program == 0 && argv[0][1] == ':')
- program = argv[0] + 1;
+ program = argv[0] + 1;
#endif
#ifdef WINDOWS32
if (program == 0)
{
/* Extract program from full path */
- int argv0_len;
program = strrchr (argv[0], '\\');
if (program)
{
- argv0_len = strlen(program);
+ int argv0_len = strlen (program);
if (argv0_len > 4 && streq (&program[argv0_len - 4], ".exe"))
/* Remove .exe extension */
program[argv0_len - 4] = '\0';
@@ -1094,9 +1216,9 @@ main (int argc, char **argv, char **envp)
}
#endif
if (program == 0)
- program = argv[0];
+ program = argv[0];
else
- ++program;
+ ++program;
}
/* Set up to access user data (files). */
@@ -1112,7 +1234,7 @@ main (int argc, char **argv, char **envp)
if (getcwd (current_directory, GET_PATH_MAX) == 0)
#endif
{
-#ifdef HAVE_GETCWD
+#ifdef HAVE_GETCWD
perror_with_name ("getcwd", "");
#else
error (NILF, "getwd: %s", current_directory);
@@ -1122,6 +1244,7 @@ main (int argc, char **argv, char **envp)
}
else
directory_before_chdir = xstrdup (current_directory);
+
#ifdef __MSDOS__
/* Make sure we will return to the initial directory, come what may. */
atexit (msdos_return_to_initial_directory);
@@ -1134,25 +1257,39 @@ main (int argc, char **argv, char **envp)
define_variable_cname (".SHELLFLAGS", "-c", o_default, 0);
/* Set up .FEATURES
- We must do this in multiple calls because define_variable_cname() is
- a macro and some compilers (MSVC) don't like conditionals in macros. */
+ Use a separate variable because define_variable_cname() is a macro and
+ some compilers (MSVC) don't like conditionals in macros. */
{
const char *features = "target-specific order-only second-expansion"
- " else-if shortest-stem undefine"
+ " else-if shortest-stem undefine oneshell"
#ifndef NO_ARCHIVES
" archives"
#endif
#ifdef MAKE_JOBSERVER
" jobserver"
#endif
+#ifndef NO_OUTPUT_SYNC
+ " output-sync"
+#endif
#ifdef MAKE_SYMLINKS
" check-symlink"
#endif
+#ifdef HAVE_GUILE
+ " guile"
+#endif
+#ifdef MAKE_LOAD
+ " load"
+#endif
;
define_variable_cname (".FEATURES", features, o_default, 0);
}
+#ifdef HAVE_GUILE
+ /* Configure GNU Guile support */
+ guile_gmake_setup (NILF);
+#endif
+
/* Read in variables from the environment. It is important that this be
done before $(MAKE) is figured out so its definitions will not be
from the environment. */
@@ -1163,62 +1300,67 @@ main (int argc, char **argv, char **envp)
for (i = 0; envp[i] != 0; ++i)
{
- int do_not_define = 0;
+ struct variable *v;
char *ep = envp[i];
+ /* By default, export all variables culled from the environment. */
+ enum variable_export export = v_export;
+ unsigned int len;
- while (*ep != '\0' && *ep != '=')
+ while (! STOP_SET (*ep, MAP_EQUALS))
++ep;
+
+ /* If there's no equals sign it's a malformed environment. Ignore. */
+ if (*ep == '\0')
+ continue;
+
#ifdef WINDOWS32
- if (!unix_path && strneq(envp[i], "PATH=", 5))
+ if (!unix_path && strneq (envp[i], "PATH=", 5))
unix_path = ep+1;
- else if (!strnicmp(envp[i], "Path=", 5)) {
- do_not_define = 1; /* it gets defined after loop exits */
- if (!windows32_path)
- windows32_path = ep+1;
- }
-#endif
- /* The result of pointer arithmetic is cast to unsigned int for
- machines where ptrdiff_t is a different size that doesn't widen
- the same. */
- if (!do_not_define)
+ else if (!strnicmp (envp[i], "Path=", 5))
{
- struct variable *v;
-
- v = define_variable (envp[i], (unsigned int) (ep - envp[i]),
- ep + 1, o_env, 1);
- /* Force exportation of every variable culled from the
- environment. We used to rely on target_environment's
- v_default code to do this. But that does not work for the
- case where an environment variable is redefined in a makefile
- with `override'; it should then still be exported, because it
- was originally in the environment. */
- v->export = v_export;
-
- /* Another wrinkle is that POSIX says the value of SHELL set in
- the makefile won't change the value of SHELL given to
- subprocesses. */
- if (streq (v->name, "SHELL"))
- {
-#ifndef __MSDOS__
- v->export = v_noexport;
+ if (!windows32_path)
+ windows32_path = ep+1;
+ /* PATH gets defined after the loop exits. */
+ continue;
+ }
#endif
- shell_var.name = "SHELL";
- shell_var.length = 5;
- shell_var.value = xstrdup (ep + 1);
- }
- /* If MAKE_RESTARTS is set, remember it but don't export it. */
- if (streq (v->name, "MAKE_RESTARTS"))
+ /* Length of the variable name, and skip the '='. */
+ len = ep++ - envp[i];
+
+ /* If this is MAKE_RESTARTS, check to see if the "already printed
+ the enter statement" flag is set. */
+ if (len == 13 && strneq (envp[i], "MAKE_RESTARTS", 13))
+ {
+ if (*ep == '-')
{
- v->export = v_noexport;
- restarts = (unsigned int) atoi (ep + 1);
+ OUTPUT_TRACED ();
+ ++ep;
}
+ restarts = (unsigned int) atoi (ep);
+ export = v_noexport;
+ }
+
+ v = define_variable (envp[i], len, ep, o_env, 1);
+
+ /* POSIX says the value of SHELL set in the makefile won't change the
+ value of SHELL given to subprocesses. */
+ if (streq (v->name, "SHELL"))
+ {
+#ifndef __MSDOS__
+ export = v_noexport;
+#endif
+ shell_var.name = "SHELL";
+ shell_var.length = 5;
+ shell_var.value = xstrdup (ep);
}
+
+ v->export = export;
}
}
#ifdef WINDOWS32
/* If we didn't find a correctly spelled PATH we define PATH as
- * either the first mispelled value or an empty string
+ * either the first misspelled value or an empty string
*/
if (!unix_path)
define_variable_cname ("PATH", windows32_path ? windows32_path : "",
@@ -1226,38 +1368,50 @@ main (int argc, char **argv, char **envp)
#endif
#else /* For Amiga, read the ENV: device, ignoring all dirs */
{
- BPTR env, file, old;
- char buffer[1024];
- int len;
- __aligned struct FileInfoBlock fib;
-
- env = Lock ("ENV:", ACCESS_READ);
- if (env)
- {
- old = CurrentDir (DupLock(env));
- Examine (env, &fib);
-
- while (ExNext (env, &fib))
- {
- if (fib.fib_DirEntryType < 0) /* File */
- {
- /* Define an empty variable. It will be filled in
- variable_lookup(). Makes startup quite a bit
- faster. */
- define_variable (fib.fib_FileName,
- strlen (fib.fib_FileName),
- "", o_env, 1)->export = v_export;
- }
- }
- UnLock (env);
- UnLock(CurrentDir(old));
- }
+ BPTR env, file, old;
+ char buffer[1024];
+ int len;
+ __aligned struct FileInfoBlock fib;
+
+ env = Lock ("ENV:", ACCESS_READ);
+ if (env)
+ {
+ old = CurrentDir (DupLock (env));
+ Examine (env, &fib);
+
+ while (ExNext (env, &fib))
+ {
+ if (fib.fib_DirEntryType < 0) /* File */
+ {
+ /* Define an empty variable. It will be filled in
+ variable_lookup(). Makes startup quite a bit faster. */
+ define_variable (fib.fib_FileName,
+ strlen (fib.fib_FileName),
+ "", o_env, 1)->export = v_export;
+ }
+ }
+ UnLock (env);
+ UnLock (CurrentDir (old));
+ }
}
#endif
/* Decode the switches. */
+ decode_env_switches (STRING_SIZE_TUPLE ("GNUMAKEFLAGS"));
+
+ /* Clear GNUMAKEFLAGS to avoid duplication. */
+ define_variable_cname ("GNUMAKEFLAGS", "", o_env, 0);
+
decode_env_switches (STRING_SIZE_TUPLE ("MAKEFLAGS"));
+
+ /* In output sync mode we need to sync any output generated by reading the
+ makefiles, such as in $(info ...) or stderr from $(shell ...) etc. */
+
+ syncing = make_sync.syncout = (output_sync == OUTPUT_SYNC_LINE
+ || output_sync == OUTPUT_SYNC_TARGET);
+ OUTPUT_SET (&make_sync);
+
#if 0
/* People write things like:
MFLAGS="CC=gcc -pipe" "CFLAGS=-g"
@@ -1267,30 +1421,48 @@ main (int argc, char **argv, char **envp)
decode_switches (argc, argv, 0);
-#ifdef WINDOWS32
- if (suspend_flag) {
- fprintf(stderr, "%s (pid = %ld)\n", argv[0], GetCurrentProcessId());
- fprintf(stderr, _("%s is suspending for 30 seconds..."), argv[0]);
- Sleep(30 * 1000);
- fprintf(stderr, _("done sleep(30). Continuing.\n"));
+ /* Reset in case the switches changed our minds. */
+ syncing = (output_sync == OUTPUT_SYNC_LINE
+ || output_sync == OUTPUT_SYNC_TARGET);
+
+ if (make_sync.syncout && ! syncing)
+ output_close (&make_sync);
+
+ make_sync.syncout = syncing;
+ OUTPUT_SET (&make_sync);
+
+ /* Figure out the level of recursion. */
+ {
+ struct variable *v = lookup_variable (STRING_SIZE_TUPLE (MAKELEVEL_NAME));
+ if (v && v->value[0] != '\0' && v->value[0] != '-')
+ makelevel = (unsigned int) atoi (v->value);
+ else
+ makelevel = 0;
}
-#endif
- decode_debug_flags ();
+#ifdef WINDOWS32
+ if (suspend_flag)
+ {
+ fprintf (stderr, "%s (pid = %ld)\n", argv[0], GetCurrentProcessId ());
+ fprintf (stderr, _("%s is suspending for 30 seconds..."), argv[0]);
+ Sleep (30 * 1000);
+ fprintf (stderr, _("done sleep(30). Continuing.\n"));
+ }
+#endif
/* Set always_make_flag if -B was given and we've not restarted already. */
always_make_flag = always_make_set && (restarts == 0);
- /* Print version information. */
- if (print_version_flag || print_data_base_flag || db_level)
+ /* Print version information, and exit. */
+ if (print_version_flag)
{
print_version ();
-
- /* `make --version' is supposed to just print the version and exit. */
- if (print_version_flag)
- die (0);
+ die (0);
}
+ if (ISDB (DB_BASIC))
+ print_version ();
+
#ifndef VMS
/* Set the "MAKE_COMMAND" variable to the name we were invoked with.
(If it is a relative pathname with a slash, prepend our directory name
@@ -1304,10 +1476,9 @@ main (int argc, char **argv, char **envp)
* matter if the path is one way or the other for
* CreateProcess().
*/
- if (strpbrk(argv[0], "/:\\") ||
- strstr(argv[0], "..") ||
- strneq(argv[0], "//", 2))
- argv[0] = xstrdup(w32ify(argv[0],1));
+ if (strpbrk (argv[0], "/:\\") || strstr (argv[0], "..")
+ || strneq (argv[0], "//", 2))
+ argv[0] = xstrdup (w32ify (argv[0], 1));
#else /* WINDOWS32 */
#if defined (__MSDOS__) || defined (__EMX__)
if (strchr (argv[0], '\\'))
@@ -1316,8 +1487,8 @@ main (int argc, char **argv, char **envp)
argv[0] = xstrdup (argv[0]);
for (p = argv[0]; *p; p++)
- if (*p == '\\')
- *p = '/';
+ if (*p == '\\')
+ *p = '/';
}
/* If argv[0] is not in absolute form, prepend the current
directory. This can happen when Make is invoked by another DJGPP
@@ -1344,6 +1515,98 @@ main (int argc, char **argv, char **envp)
#endif /* WINDOWS32 */
#endif
+ /* We may move, but until we do, here we are. */
+ starting_directory = current_directory;
+
+#ifdef MAKE_JOBSERVER
+ /* If the jobserver-fds option is seen, make sure that -j is reasonable.
+ This can't be usefully set in the makefile, and we want to verify the
+ FDs are valid before any other aspect of make has a chance to start
+ using them for something else. */
+
+ if (jobserver_fds)
+ {
+ const char *cp;
+ unsigned int ui;
+
+ for (ui=1; ui < jobserver_fds->idx; ++ui)
+ if (!streq (jobserver_fds->list[0], jobserver_fds->list[ui]))
+ fatal (NILF, _("internal error: multiple --jobserver-fds options"));
+
+ /* Now parse the fds string and make sure it has the proper format. */
+
+ cp = jobserver_fds->list[0];
+
+#ifdef WINDOWS32
+ if (! open_jobserver_semaphore (cp))
+ {
+ DWORD err = GetLastError ();
+ fatal (NILF, _("internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"),
+ cp, err, map_windows32_error_to_string (err));
+ }
+ DB (DB_JOBS, (_("Jobserver client (semaphore %s)\n"), cp));
+#else
+ if (sscanf (cp, "%d,%d", &job_fds[0], &job_fds[1]) != 2)
+ fatal (NILF,
+ _("internal error: invalid --jobserver-fds string '%s'"), cp);
+
+ DB (DB_JOBS,
+ (_("Jobserver client (fds %d,%d)\n"), job_fds[0], job_fds[1]));
+#endif
+
+ /* The combination of a pipe + !job_slots means we're using the
+ jobserver. If !job_slots and we don't have a pipe, we can start
+ infinite jobs. If we see both a pipe and job_slots >0 that means the
+ user set -j explicitly. This is broken; in this case obey the user
+ (ignore the jobserver pipe for this make) but print a message.
+ If we've restarted, we already printed this the first time. */
+
+ if (job_slots > 0)
+ {
+ if (! restarts)
+ error (NILF, _("warning: -jN forced in submake: disabling jobserver mode."));
+ }
+#ifndef WINDOWS32
+#ifdef HAVE_FCNTL
+# define FD_OK(_f) ((fcntl ((_f), F_GETFD) != -1) || (errno != EBADF))
+#else
+# define FD_OK(_f) 1
+#endif
+ /* Create a duplicate pipe, that will be closed in the SIGCHLD
+ handler. If this fails with EBADF, the parent has closed the pipe
+ on us because it didn't think we were a submake. If so, print a
+ warning then default to -j1. */
+ else if (!FD_OK (job_fds[0]) || !FD_OK (job_fds[1])
+ || (job_rfd = dup (job_fds[0])) < 0)
+ {
+ if (errno != EBADF)
+ pfatal_with_name (_("dup jobserver"));
+
+ error (NILF,
+ _("warning: jobserver unavailable: using -j1. Add '+' to parent make rule."));
+ job_slots = 1;
+ job_fds[0] = job_fds[1] = -1;
+ }
+#endif
+
+ if (job_slots > 0)
+ {
+#ifdef WINDOWS32
+ free_jobserver_semaphore ();
+#else
+ if (job_fds[0] >= 0)
+ close (job_fds[0]);
+ if (job_fds[1] >= 0)
+ close (job_fds[1]);
+#endif
+ job_fds[0] = job_fds[1] = -1;
+ free (jobserver_fds->list);
+ free (jobserver_fds);
+ jobserver_fds = 0;
+ }
+ }
+#endif
+
/* The extra indirection through $(MAKE_COMMAND) is done
for hysterical raisins. */
define_variable_cname ("MAKE_COMMAND", argv[0], o_default, 0);
@@ -1357,34 +1620,34 @@ main (int argc, char **argv, char **envp)
char *value, *p;
/* Figure out how much space will be taken up by the command-line
- variable definitions. */
+ variable definitions. */
for (cv = command_variables; cv != 0; cv = cv->next)
- {
- v = cv->variable;
- len += 2 * strlen (v->name);
- if (! v->recursive)
- ++len;
- ++len;
- len += 2 * strlen (v->value);
- ++len;
- }
+ {
+ v = cv->variable;
+ len += 2 * strlen (v->name);
+ if (! v->recursive)
+ ++len;
+ ++len;
+ len += 2 * strlen (v->value);
+ ++len;
+ }
/* Now allocate a buffer big enough and fill it. */
p = value = alloca (len);
for (cv = command_variables; cv != 0; cv = cv->next)
- {
- v = cv->variable;
- p = quote_for_env (p, v->name);
- if (! v->recursive)
- *p++ = ':';
- *p++ = '=';
- p = quote_for_env (p, v->value);
- *p++ = ' ';
- }
- p[-1] = '\0'; /* Kill the final space and terminate. */
+ {
+ v = cv->variable;
+ p = quote_for_env (p, v->name);
+ if (! v->recursive)
+ *p++ = ':';
+ *p++ = '=';
+ p = quote_for_env (p, v->value);
+ *p++ = ' ';
+ }
+ p[-1] = '\0'; /* Kill the final space and terminate. */
/* Define an unchangeable variable with a name that no POSIX.2
- makefile could validly use for its own variable. */
+ makefile could validly use for its own variable. */
define_variable_cname ("-*-command-variables-*-", value, o_automatic, 0);
/* Define the variable; this will not override any user definition.
@@ -1429,17 +1692,8 @@ main (int argc, char **argv, char **envp)
* lookups to fail because the current directory (.) was pointing
* at the wrong place when it was first evaluated.
*/
- no_default_sh_exe = !find_and_set_default_shell(NULL);
-
+ no_default_sh_exe = !find_and_set_default_shell (NULL);
#endif /* WINDOWS32 */
- /* Figure out the level of recursion. */
- {
- struct variable *v = lookup_variable (STRING_SIZE_TUPLE (MAKELEVEL_NAME));
- if (v != 0 && v->value[0] != '\0' && v->value[0] != '-')
- makelevel = (unsigned int) atoi (v->value);
- else
- makelevel = 0;
- }
/* Except under -s, always do -w in sub-makes and under -C. */
if (!silent_flag && (directories != 0 || makelevel > 0))
@@ -1458,27 +1712,24 @@ main (int argc, char **argv, char **envp)
construct_include_path (include_directories == 0
? 0 : include_directories->list);
- /* Figure out where we are now, after chdir'ing. */
- if (directories == 0)
- /* We didn't move, so we're still in the same place. */
- starting_directory = current_directory;
- else
+ /* If we chdir'ed, figure out where we are now. */
+ if (directories)
{
#ifdef WINDOWS32
if (getcwd_fs (current_directory, GET_PATH_MAX) == 0)
#else
if (getcwd (current_directory, GET_PATH_MAX) == 0)
#endif
- {
-#ifdef HAVE_GETCWD
- perror_with_name ("getcwd", "");
+ {
+#ifdef HAVE_GETCWD
+ perror_with_name ("getcwd", "");
#else
- error (NILF, "getwd: %s", current_directory);
+ error (NILF, "getwd: %s", current_directory);
#endif
- starting_directory = 0;
- }
+ starting_directory = 0;
+ }
else
- starting_directory = current_directory;
+ starting_directory = current_directory;
}
define_variable_cname ("CURDIR", current_directory, o_file, 0);
@@ -1489,12 +1740,12 @@ main (int argc, char **argv, char **envp)
{
unsigned int i;
for (i = 0; i < makefiles->idx; ++i)
- if (makefiles->list[i][0] == '-' && makefiles->list[i][1] == '\0')
- {
- /* This makefile is standard input. Since we may re-exec
- and thus re-read the makefiles, we read standard input
- into a temporary file and read from that. */
- FILE *outfile;
+ if (makefiles->list[i][0] == '-' && makefiles->list[i][1] == '\0')
+ {
+ /* This makefile is standard input. Since we may re-exec
+ and thus re-read the makefiles, we read standard input
+ into a temporary file and read from that. */
+ FILE *outfile;
char *template, *tmpdir;
if (stdin_nm)
@@ -1511,63 +1762,63 @@ main (int argc, char **argv, char **envp)
#endif
#define DEFAULT_TMPFILE "GmXXXXXX"
- if (((tmpdir = getenv ("TMPDIR")) == NULL || *tmpdir == '\0')
+ if (((tmpdir = getenv ("TMPDIR")) == NULL || *tmpdir == '\0')
#if defined (__MSDOS__) || defined (WINDOWS32) || defined (__EMX__)
/* These are also used commonly on these platforms. */
&& ((tmpdir = getenv ("TEMP")) == NULL || *tmpdir == '\0')
&& ((tmpdir = getenv ("TMP")) == NULL || *tmpdir == '\0')
#endif
)
- tmpdir = DEFAULT_TMPDIR;
+ tmpdir = DEFAULT_TMPDIR;
- template = alloca (strlen (tmpdir) + sizeof (DEFAULT_TMPFILE) + 1);
- strcpy (template, tmpdir);
+ template = alloca (strlen (tmpdir) + CSTRLEN (DEFAULT_TMPFILE) + 2);
+ strcpy (template, tmpdir);
#ifdef HAVE_DOS_PATHS
- if (strchr ("/\\", template[strlen (template) - 1]) == NULL)
- strcat (template, "/");
+ if (strchr ("/\\", template[strlen (template) - 1]) == NULL)
+ strcat (template, "/");
#else
# ifndef VMS
- if (template[strlen (template) - 1] != '/')
- strcat (template, "/");
+ if (template[strlen (template) - 1] != '/')
+ strcat (template, "/");
# endif /* !VMS */
#endif /* !HAVE_DOS_PATHS */
- strcat (template, DEFAULT_TMPFILE);
- outfile = open_tmpfile (&stdin_nm, template);
- if (outfile == 0)
- pfatal_with_name (_("fopen (temporary file)"));
- while (!feof (stdin) && ! ferror (stdin))
- {
- char buf[2048];
- unsigned int n = fread (buf, 1, sizeof (buf), stdin);
- if (n > 0 && fwrite (buf, 1, n, outfile) != n)
- pfatal_with_name (_("fwrite (temporary file)"));
- }
- fclose (outfile);
-
- /* Replace the name that read_all_makefiles will
- see with the name of the temporary file. */
+ strcat (template, DEFAULT_TMPFILE);
+ outfile = output_tmpfile (&stdin_nm, template);
+ if (outfile == 0)
+ pfatal_with_name (_("fopen (temporary file)"));
+ while (!feof (stdin) && ! ferror (stdin))
+ {
+ char buf[2048];
+ unsigned int n = fread (buf, 1, sizeof (buf), stdin);
+ if (n > 0 && fwrite (buf, 1, n, outfile) != n)
+ pfatal_with_name (_("fwrite (temporary file)"));
+ }
+ fclose (outfile);
+
+ /* Replace the name that read_all_makefiles will
+ see with the name of the temporary file. */
makefiles->list[i] = strcache_add (stdin_nm);
- /* Make sure the temporary file will not be remade. */
+ /* Make sure the temporary file will not be remade. */
{
struct file *f = enter_file (strcache_add (stdin_nm));
f->updated = 1;
- f->update_status = 0;
+ f->update_status = us_success;
f->command_state = cs_finished;
/* Can't be intermediate, or it'll be removed too early for
make re-exec. */
f->intermediate = 0;
f->dontcare = 0;
}
- }
+ }
}
#ifndef __EMX__ /* Don't use a SIGCHLD handler for OS/2 */
#if defined(MAKE_JOBSERVER) || !defined(HAVE_WAIT_NOHANG)
/* Set up to handle children dying. This must be done before
- reading in the makefiles so that `shell' function calls will work.
+ reading in the makefiles so that 'shell' function calls will work.
If we don't have a hanging wait we have to fall back to old, broken
functionality here and rely on the signal handler and counting
@@ -1596,7 +1847,6 @@ main (int argc, char **argv, char **envp)
#endif
/* Define the initial list of suffixes for old-style rules. */
-
set_default_suffixes ();
/* Define the file rules for the built-in suffix rules. These will later
@@ -1604,17 +1854,14 @@ main (int argc, char **argv, char **envp)
install_default_implicit_rules, but since that happens after reading
makefiles, it results in the built-in pattern rules taking precedence
over makefile-specified suffix rules, which is wrong. */
-
install_default_suffix_rules ();
/* Define some internal and special variables. */
-
define_automatic_variables ();
- /* Set up the MAKEFLAGS and MFLAGS variables
- so makefiles can look at them. */
-
- define_makeflags (0, 0);
+ /* Set up the MAKEFLAGS and MFLAGS variables for makefiles to see.
+ Initialize it to be exported but allow the makefile to reset it. */
+ define_makeflags (0, 0)->export = v_export;
/* Define the default variables. */
define_default_variables ();
@@ -1630,13 +1877,13 @@ main (int argc, char **argv, char **envp)
{
char *p, *value;
unsigned int i;
- unsigned int len = sizeof ("--eval=") * eval_strings->idx;
+ unsigned int len = (CSTRLEN ("--eval=") + 1) * eval_strings->idx;
for (i = 0; i < eval_strings->idx; ++i)
{
p = xstrdup (eval_strings->list[i]);
len += 2 * strlen (p);
- eval_buffer (p);
+ eval_buffer (p, NULL);
free (p);
}
@@ -1644,7 +1891,7 @@ main (int argc, char **argv, char **envp)
for (i = 0; i < eval_strings->idx; ++i)
{
strcpy (p, "--eval=");
- p += strlen (p);
+ p += CSTRLEN ("--eval=");
p = quote_for_env (p, eval_strings->list[i]);
*(p++) = ' ';
}
@@ -1655,13 +1902,12 @@ main (int argc, char **argv, char **envp)
/* Read all the makefiles. */
- read_makefiles
- = read_all_makefiles (makefiles == 0 ? 0 : makefiles->list);
+ read_files = read_all_makefiles (makefiles == 0 ? 0 : makefiles->list);
#ifdef WINDOWS32
/* look one last time after reading all Makefiles */
if (no_default_sh_exe)
- no_default_sh_exe = !find_and_set_default_shell(NULL);
+ no_default_sh_exe = !find_and_set_default_shell (NULL);
#endif /* WINDOWS32 */
#if defined (__MSDOS__) || defined (__EMX__)
@@ -1674,24 +1920,59 @@ main (int argc, char **argv, char **envp)
if (shv && *shv->value)
{
- char *shell_path = recursively_expand(shv);
-
- if (shell_path && _is_unixy_shell (shell_path))
- unixy_shell = 1;
- else
- unixy_shell = 0;
- if (shell_path)
- default_shell = shell_path;
+ char *shell_path = recursively_expand (shv);
+
+ if (shell_path && _is_unixy_shell (shell_path))
+ unixy_shell = 1;
+ else
+ unixy_shell = 0;
+ if (shell_path)
+ default_shell = shell_path;
}
}
#endif /* __MSDOS__ || __EMX__ */
- /* Decode switches again, in case the variables were set by the makefile. */
- decode_env_switches (STRING_SIZE_TUPLE ("MAKEFLAGS"));
+ {
+ int old_builtin_rules_flag = no_builtin_rules_flag;
+ int old_builtin_variables_flag = no_builtin_variables_flag;
+
+ /* Decode switches again, for variables set by the makefile. */
+ decode_env_switches (STRING_SIZE_TUPLE ("GNUMAKEFLAGS"));
+
+ /* Clear GNUMAKEFLAGS to avoid duplication. */
+ define_variable_cname ("GNUMAKEFLAGS", "", o_override, 0);
+
+ decode_env_switches (STRING_SIZE_TUPLE ("MAKEFLAGS"));
#if 0
- decode_env_switches (STRING_SIZE_TUPLE ("MFLAGS"));
+ decode_env_switches (STRING_SIZE_TUPLE ("MFLAGS"));
#endif
+ /* Reset in case the switches changed our mind. */
+ syncing = (output_sync == OUTPUT_SYNC_LINE
+ || output_sync == OUTPUT_SYNC_TARGET);
+
+ if (make_sync.syncout && ! syncing)
+ output_close (&make_sync);
+
+ make_sync.syncout = syncing;
+ OUTPUT_SET (&make_sync);
+
+ /* If we've disabled builtin rules, get rid of them. */
+ if (no_builtin_rules_flag && ! old_builtin_rules_flag)
+ {
+ if (suffix_file->builtin)
+ {
+ free_dep_chain (suffix_file->deps);
+ suffix_file->deps = 0;
+ }
+ define_variable_cname ("SUFFIXES", "", o_default, 0);
+ }
+
+ /* If we've disabled builtin variables, get rid of them. */
+ if (no_builtin_variables_flag && ! old_builtin_variables_flag)
+ undefine_default_variables ();
+ }
+
#if defined (__MSDOS__) || defined (__EMX__)
if (job_slots != 1
# ifdef __EMX__
@@ -1707,74 +1988,36 @@ main (int argc, char **argv, char **envp)
#endif
#ifdef MAKE_JOBSERVER
- /* If the jobserver-fds option is seen, make sure that -j is reasonable. */
+ /* If we have >1 slot but no jobserver-fds, then we're a top-level make.
+ Set up the pipe and install the fds option for our children. */
- if (jobserver_fds)
+ if (job_slots > 1)
{
- const char *cp;
- unsigned int ui;
-
- for (ui=1; ui < jobserver_fds->idx; ++ui)
- if (!streq (jobserver_fds->list[0], jobserver_fds->list[ui]))
- fatal (NILF, _("internal error: multiple --jobserver-fds options"));
-
- /* Now parse the fds string and make sure it has the proper format. */
-
- cp = jobserver_fds->list[0];
-
- if (sscanf (cp, "%d,%d", &job_fds[0], &job_fds[1]) != 2)
- fatal (NILF,
- _("internal error: invalid --jobserver-fds string `%s'"), cp);
-
- DB (DB_JOBS,
- (_("Jobserver client (fds %d,%d)\n"), job_fds[0], job_fds[1]));
-
- /* The combination of a pipe + !job_slots means we're using the
- jobserver. If !job_slots and we don't have a pipe, we can start
- infinite jobs. If we see both a pipe and job_slots >0 that means the
- user set -j explicitly. This is broken; in this case obey the user
- (ignore the jobserver pipe for this make) but print a message. */
-
- if (job_slots > 0)
- error (NILF,
- _("warning: -jN forced in submake: disabling jobserver mode."));
+ char *cp;
- /* Create a duplicate pipe, that will be closed in the SIGCHLD
- handler. If this fails with EBADF, the parent has closed the pipe
- on us because it didn't think we were a submake. If so, print a
- warning then default to -j1. */
+#ifdef WINDOWS32
+ /* sub_proc.c cannot wait for more than MAXIMUM_WAIT_OBJECTS objects
+ * and one of them is the job-server semaphore object. Limit the
+ * number of available job slots to (MAXIMUM_WAIT_OBJECTS - 1). */
- else if ((job_rfd = dup (job_fds[0])) < 0)
+ if (job_slots >= MAXIMUM_WAIT_OBJECTS)
{
- if (errno != EBADF)
- pfatal_with_name (_("dup jobserver"));
-
- error (NILF,
- _("warning: jobserver unavailable: using -j1. Add `+' to parent make rule."));
- job_slots = 1;
+ job_slots = MAXIMUM_WAIT_OBJECTS - 1;
+ DB (DB_JOBS, (_("Jobserver slots limited to %d\n"), job_slots));
}
- if (job_slots > 0)
+ if (! create_jobserver_semaphore (job_slots - 1))
{
- close (job_fds[0]);
- close (job_fds[1]);
- job_fds[0] = job_fds[1] = -1;
- free (jobserver_fds->list);
- free (jobserver_fds);
- jobserver_fds = 0;
+ DWORD err = GetLastError ();
+ fatal (NILF, _("creating jobserver semaphore: (Error %ld: %s)"),
+ err, map_windows32_error_to_string (err));
}
- }
-
- /* If we have >1 slot but no jobserver-fds, then we're a top-level make.
- Set up the pipe and install the fds option for our children. */
-
- if (job_slots > 1)
- {
- char *cp;
+#else
char c = '+';
if (pipe (job_fds) < 0 || (job_rfd = dup (job_fds[0])) < 0)
- pfatal_with_name (_("creating jobs pipe"));
+ pfatal_with_name (_("creating jobs pipe"));
+#endif
/* Every make assumes that it always has one job it can run. For the
submakes it's the token they were given by their parent. For the
@@ -1783,6 +2026,10 @@ main (int argc, char **argv, char **envp)
master_job_slots = job_slots;
+#ifdef WINDOWS32
+ /* We're using the jobserver so set job_slots to 0. */
+ job_slots = 0;
+#else
while (--job_slots)
{
int r;
@@ -1791,14 +2038,19 @@ main (int argc, char **argv, char **envp)
if (r != 1)
pfatal_with_name (_("init jobserver pipe"));
}
+#endif
/* Fill in the jobserver_fds struct for our children. */
- cp = xmalloc ((sizeof ("1024")*2)+1);
+#ifdef WINDOWS32
+ cp = xmalloc (MAX_PATH + 1);
+ strcpy (cp, get_jobserver_semaphore_name ());
+#else
+ cp = xmalloc ((CSTRLEN ("1024") * 2) + 2);
sprintf (cp, "%d,%d", job_fds[0], job_fds[1]);
+#endif
- jobserver_fds = (struct stringlist *)
- xmalloc (sizeof (struct stringlist));
+ jobserver_fds = xmalloc (sizeof (struct stringlist));
jobserver_fds->list = xmalloc (sizeof (char *));
jobserver_fds->list[0] = cp;
jobserver_fds->idx = 1;
@@ -1818,7 +2070,7 @@ main (int argc, char **argv, char **envp)
define_makeflags (1, 0);
- /* Make each `struct dep' point at the `struct file' for the file
+ /* Make each 'struct dep' point at the 'struct file' for the file
depended on. Also do magic for special targets. */
snap_deps ();
@@ -1857,7 +2109,7 @@ main (int argc, char **argv, char **envp)
struct file *f = enter_file (*p);
f->last_mtime = f->mtime_before_update = OLD_MTIME;
f->updated = 1;
- f->update_status = 0;
+ f->update_status = us_success;
f->command_state = cs_finished;
}
}
@@ -1866,16 +2118,21 @@ main (int argc, char **argv, char **envp)
{
const char **p;
for (p = new_files->list; *p != 0; ++p)
- {
- struct file *f = enter_file (*p);
- f->last_mtime = f->mtime_before_update = NEW_MTIME;
- }
+ {
+ struct file *f = enter_file (*p);
+ f->last_mtime = f->mtime_before_update = NEW_MTIME;
+ }
}
/* Initialize the remote job module. */
remote_setup ();
- if (read_makefiles != 0)
+ /* Dump any output we've collected. */
+
+ OUTPUT_UNSET ();
+ output_close (&make_sync);
+
+ if (read_files != 0)
{
/* Update any makefiles if necessary. */
@@ -1884,7 +2141,7 @@ main (int argc, char **argv, char **envp)
char **nargv;
int nargc;
int orig_db_level = db_level;
- int status;
+ enum update_status status;
if (! ISDB (DB_MAKEFILES))
db_level = DB_NONE;
@@ -1892,88 +2149,88 @@ main (int argc, char **argv, char **envp)
DB (DB_BASIC, (_("Updating makefiles....\n")));
/* Remove any makefiles we don't want to try to update.
- Also record the current modtimes so we can compare them later. */
+ Also record the current modtimes so we can compare them later. */
{
- register struct dep *d, *last;
- last = 0;
- d = read_makefiles;
- while (d != 0)
- {
- struct file *f = d->file;
- if (f->double_colon)
- for (f = f->double_colon; f != NULL; f = f->prev)
- {
- if (f->deps == 0 && f->cmds != 0)
- {
- /* This makefile is a :: target with commands, but
- no dependencies. So, it will always be remade.
- This might well cause an infinite loop, so don't
- try to remake it. (This will only happen if
- your makefiles are written exceptionally
- stupidly; but if you work for Athena, that's how
- you write your makefiles.) */
-
- DB (DB_VERBOSE,
- (_("Makefile `%s' might loop; not remaking it.\n"),
+ register struct dep *d, *last;
+ last = 0;
+ d = read_files;
+ while (d != 0)
+ {
+ struct file *f = d->file;
+ if (f->double_colon)
+ for (f = f->double_colon; f != NULL; f = f->prev)
+ {
+ if (f->deps == 0 && f->cmds != 0)
+ {
+ /* This makefile is a :: target with commands, but
+ no dependencies. So, it will always be remade.
+ This might well cause an infinite loop, so don't
+ try to remake it. (This will only happen if
+ your makefiles are written exceptionally
+ stupidly; but if you work for Athena, that's how
+ you write your makefiles.) */
+
+ DB (DB_VERBOSE,
+ (_("Makefile '%s' might loop; not remaking it.\n"),
f->name));
- if (last == 0)
- read_makefiles = d->next;
- else
- last->next = d->next;
+ if (last == 0)
+ read_files = d->next;
+ else
+ last->next = d->next;
- /* Free the storage. */
+ /* Free the storage. */
free_dep (d);
- d = last == 0 ? read_makefiles : last->next;
+ d = last == 0 ? read_files : last->next;
- break;
- }
- }
- if (f == NULL || !f->double_colon)
- {
+ break;
+ }
+ }
+ if (f == NULL || !f->double_colon)
+ {
makefile_mtimes = xrealloc (makefile_mtimes,
(mm_idx+1)
* sizeof (FILE_TIMESTAMP));
- makefile_mtimes[mm_idx++] = file_mtime_no_search (d->file);
- last = d;
- d = d->next;
- }
- }
+ makefile_mtimes[mm_idx++] = file_mtime_no_search (d->file);
+ last = d;
+ d = d->next;
+ }
+ }
}
- /* Set up `MAKEFLAGS' specially while remaking makefiles. */
+ /* Set up 'MAKEFLAGS' specially while remaking makefiles. */
define_makeflags (1, 1);
rebuilding_makefiles = 1;
- status = update_goal_chain (read_makefiles);
+ status = update_goal_chain (read_files);
rebuilding_makefiles = 0;
switch (status)
- {
- case 1:
+ {
+ case us_question:
/* The only way this can happen is if the user specified -q and asked
* for one of the makefiles to be remade as a target on the command
* line. Since we're not actually updating anything with -q we can
* treat this as "did nothing".
*/
- case -1:
- /* Did nothing. */
- break;
-
- case 2:
- /* Failed to update. Figure out if we care. */
- {
- /* Nonzero if any makefile was successfully remade. */
- int any_remade = 0;
- /* Nonzero if any makefile we care about failed
- in updating or could not be found at all. */
- int any_failed = 0;
- unsigned int i;
+ case us_none:
+ /* Did nothing. */
+ break;
+
+ case us_failed:
+ /* Failed to update. Figure out if we care. */
+ {
+ /* Nonzero if any makefile was successfully remade. */
+ int any_remade = 0;
+ /* Nonzero if any makefile we care about failed
+ in updating or could not be found at all. */
+ int any_failed = 0;
+ unsigned int i;
struct dep *d;
- for (i = 0, d = read_makefiles; d != 0; ++i, d = d->next)
+ for (i = 0, d = read_files; d != 0; ++i, d = d->next)
{
/* Reset the considered flag; we may need to look at the file
again to print an error. */
@@ -1982,7 +2239,7 @@ main (int argc, char **argv, char **envp)
if (d->file->updated)
{
/* This makefile was updated. */
- if (d->file->update_status == 0)
+ if (d->file->update_status == us_success)
{
/* It was successfully updated. */
any_remade |= (file_mtime_no_search (d->file)
@@ -1993,7 +2250,7 @@ main (int argc, char **argv, char **envp)
FILE_TIMESTAMP mtime;
/* The update failed and this makefile was not
from the MAKEFILES variable, so we care. */
- error (NILF, _("Failed to remake makefile `%s'."),
+ error (NILF, _("Failed to remake makefile '%s'."),
d->file->name);
mtime = file_mtime_no_search (d->file);
any_remade |= (mtime != NONEXISTENT_MTIME
@@ -2010,55 +2267,53 @@ main (int argc, char **argv, char **envp)
/* An included makefile. We don't need
to die, but we do want to complain. */
error (NILF,
- _("Included makefile `%s' was not found."),
+ _("Included makefile '%s' was not found."),
dep_name (d));
else
{
/* A normal makefile. We must die later. */
- error (NILF, _("Makefile `%s' was not found"),
+ error (NILF, _("Makefile '%s' was not found"),
dep_name (d));
any_failed = 1;
}
}
}
/* Reset this to empty so we get the right error message below. */
- read_makefiles = 0;
+ read_files = 0;
- if (any_remade)
- goto re_exec;
- if (any_failed)
- die (2);
+ if (any_remade)
+ goto re_exec;
+ if (any_failed)
+ die (2);
break;
- }
-
- case 0:
- re_exec:
- /* Updated successfully. Re-exec ourselves. */
+ }
- remove_intermediates (0);
+ case us_success:
+ re_exec:
+ /* Updated successfully. Re-exec ourselves. */
- if (print_data_base_flag)
- print_data_base ();
+ remove_intermediates (0);
- log_working_directory (0);
+ if (print_data_base_flag)
+ print_data_base ();
clean_jobserver (0);
- if (makefiles != 0)
- {
- /* These names might have changed. */
- int i, j = 0;
- for (i = 1; i < argc; ++i)
- if (strneq (argv[i], "-f", 2)) /* XXX */
- {
- if (argv[i][2] == '\0')
+ if (makefiles != 0)
+ {
+ /* These names might have changed. */
+ int i, j = 0;
+ for (i = 1; i < argc; ++i)
+ if (strneq (argv[i], "-f", 2)) /* XXX */
+ {
+ if (argv[i][2] == '\0')
/* This cast is OK since we never modify argv. */
- argv[++i] = (char *) makefiles->list[j];
- else
- argv[i] = xstrdup (concat (2, "-f", makefiles->list[j]));
- ++j;
- }
- }
+ argv[++i] = (char *) makefiles->list[j];
+ else
+ argv[i] = xstrdup (concat (2, "-f", makefiles->list[j]));
+ ++j;
+ }
+ }
/* Add -o option for the stdin temporary file, if necessary. */
nargc = argc;
@@ -2072,118 +2327,111 @@ main (int argc, char **argv, char **envp)
else
nargv = argv;
- if (directories != 0 && directories->idx > 0)
- {
- int bad = 1;
- if (directory_before_chdir != 0)
- {
- if (chdir (directory_before_chdir) < 0)
- perror_with_name ("chdir", "");
- else
- bad = 0;
- }
- if (bad)
- fatal (NILF, _("Couldn't change back to original directory."));
- }
+ if (directories != 0 && directories->idx > 0)
+ {
+ int bad = 1;
+ if (directory_before_chdir != 0)
+ {
+ if (chdir (directory_before_chdir) < 0)
+ perror_with_name ("chdir", "");
+ else
+ bad = 0;
+ }
+ if (bad)
+ fatal (NILF, _("Couldn't change back to original directory."));
+ }
++restarts;
- /* Reset makeflags in case they were changed. */
- {
- const char *pv = define_makeflags (1, 1);
- char *p = alloca (sizeof ("MAKEFLAGS=") + strlen (pv) + 1);
- sprintf (p, "MAKEFLAGS=%s", pv);
- putenv (p);
- }
+ /* If we're re-exec'ing the first make, put back the number of
+ job slots so define_makefiles() will get it right. */
+ if (master_job_slots)
+ job_slots = master_job_slots;
- if (ISDB (DB_BASIC))
- {
- char **p;
- printf (_("Re-executing[%u]:"), restarts);
- for (p = nargv; *p != 0; ++p)
- printf (" %s", *p);
- putchar ('\n');
- }
+ if (ISDB (DB_BASIC))
+ {
+ char **p;
+ printf (_("Re-executing[%u]:"), restarts);
+ for (p = nargv; *p != 0; ++p)
+ printf (" %s", *p);
+ putchar ('\n');
+ }
#ifndef _AMIGA
{
char **p;
for (p = environ; *p != 0; ++p)
{
- if (strneq (*p, MAKELEVEL_NAME, MAKELEVEL_LENGTH)
- && (*p)[MAKELEVEL_LENGTH] == '=')
+ if (strneq (*p, MAKELEVEL_NAME "=", MAKELEVEL_LENGTH+1))
{
*p = alloca (40);
sprintf (*p, "%s=%u", MAKELEVEL_NAME, makelevel);
}
- if (strneq (*p, "MAKE_RESTARTS=", 14))
+ else if (strneq (*p, "MAKE_RESTARTS=", CSTRLEN ("MAKE_RESTARTS=")))
{
*p = alloca (40);
- sprintf (*p, "MAKE_RESTARTS=%u", restarts);
+ sprintf (*p, "MAKE_RESTARTS=%s%u",
+ OUTPUT_IS_TRACED () ? "-" : "", restarts);
restarts = 0;
}
}
}
#else /* AMIGA */
- {
- char buffer[256];
+ {
+ char buffer[256];
sprintf (buffer, "%u", makelevel);
SetVar (MAKELEVEL_NAME, buffer, -1, GVF_GLOBAL_ONLY);
- sprintf (buffer, "%u", restarts);
+ sprintf (buffer, "%s%u", OUTPUT_IS_TRACED () ? "-" : "", restarts);
SetVar ("MAKE_RESTARTS", buffer, -1, GVF_GLOBAL_ONLY);
restarts = 0;
- }
+ }
#endif
/* If we didn't set the restarts variable yet, add it. */
if (restarts)
{
char *b = alloca (40);
- sprintf (b, "MAKE_RESTARTS=%u", restarts);
+ sprintf (b, "MAKE_RESTARTS=%s%u",
+ OUTPUT_IS_TRACED () ? "-" : "", restarts);
putenv (b);
}
- fflush (stdout);
- fflush (stderr);
+ fflush (stdout);
+ fflush (stderr);
/* Close the dup'd jobserver pipe if we opened one. */
if (job_rfd >= 0)
close (job_rfd);
#ifdef _AMIGA
- exec_command (nargv);
- exit (0);
+ exec_command (nargv);
+ exit (0);
#elif defined (__EMX__)
- {
- /* It is not possible to use execve() here because this
- would cause the parent process to be terminated with
- exit code 0 before the child process has been terminated.
- Therefore it may be the best solution simply to spawn the
- child process including all file handles and to wait for its
- termination. */
- int pid;
- int status;
- pid = child_execute_job (0, 1, nargv, environ);
-
- /* is this loop really necessary? */
- do {
- pid = wait (&status);
- } while (pid <= 0);
- /* use the exit code of the child process */
- exit (WIFEXITED(status) ? WEXITSTATUS(status) : EXIT_FAILURE);
- }
+ {
+ /* It is not possible to use execve() here because this
+ would cause the parent process to be terminated with
+ exit code 0 before the child process has been terminated.
+ Therefore it may be the best solution simply to spawn the
+ child process including all file handles and to wait for its
+ termination. */
+ int pid;
+ int r;
+ pid = child_execute_job (FD_STDIN, FD_STDOUT, FD_STDERR,
+ nargv, environ);
+
+ /* is this loop really necessary? */
+ do {
+ pid = wait (&r);
+ } while (pid <= 0);
+ /* use the exit code of the child process */
+ exit (WIFEXITED(r) ? WEXITSTATUS(r) : EXIT_FAILURE);
+ }
#else
- exec_command (nargv, environ);
+ exec_command (nargv, environ);
#endif
- /* NOTREACHED */
-
- default:
-#define BOGUS_UPDATE_STATUS 0
- assert (BOGUS_UPDATE_STATUS);
- break;
- }
+ }
db_level = orig_db_level;
@@ -2192,7 +2440,7 @@ main (int argc, char **argv, char **envp)
free (makefile_mtimes);
}
- /* Set up `MAKEFLAGS' again for the normal targets. */
+ /* Set up 'MAKEFLAGS' again for the normal targets. */
define_makeflags (1, 0);
/* Set always_make_flag if -B was given. */
@@ -2203,10 +2451,10 @@ main (int argc, char **argv, char **envp)
{
const char **p;
for (p = new_files->list; *p != 0; ++p)
- {
- struct file *f = enter_file (*p);
- f->last_mtime = f->mtime_before_update = NEW_MTIME;
- }
+ {
+ struct file *f = enter_file (*p);
+ f->last_mtime = f->mtime_before_update = NEW_MTIME;
+ }
}
/* If there is a temp file from reading a makefile from stdin, get rid of
@@ -2239,7 +2487,7 @@ main (int argc, char **argv, char **envp)
{
struct nameseq *ns;
- ns = PARSE_FILE_SEQ (&p, struct nameseq, '\0', NULL, 0);
+ ns = PARSE_SIMPLE_SEQ (&p, struct nameseq);
if (ns)
{
/* .DEFAULT_GOAL should contain one target. */
@@ -2266,7 +2514,7 @@ main (int argc, char **argv, char **envp)
if (!goals)
{
- if (read_makefiles == 0)
+ if (read_files == 0)
fatal (NILF, _("No targets specified and no makefile found"));
fatal (NILF, _("No targets"));
@@ -2277,27 +2525,23 @@ main (int argc, char **argv, char **envp)
DB (DB_BASIC, (_("Updating goal targets....\n")));
{
- int status;
-
switch (update_goal_chain (goals))
{
- case -1:
+ case us_none:
/* Nothing happened. */
- case 0:
- /* Updated successfully. */
- status = makefile_status;
+ /* FALLTHROUGH */
+ case us_success:
+ /* Keep the previous result. */
break;
- case 1:
+ case us_question:
/* We are under -q and would run some commands. */
- status = MAKE_TROUBLE;
+ makefile_status = MAKE_TROUBLE;
break;
- case 2:
+ case us_failed:
/* Updating failed. POSIX.2 specifies exit status >1 for this;
but in VMS, there is only success and failure. */
- status = MAKE_FAILURE;
+ makefile_status = MAKE_FAILURE;
break;
- default:
- abort ();
}
/* If we detected some clock skew, generate one last warning */
@@ -2306,19 +2550,19 @@ main (int argc, char **argv, char **envp)
_("warning: Clock skew detected. Your build may be incomplete."));
/* Exit. */
- die (status);
+ die (makefile_status);
}
/* NOTREACHED */
- return 0;
+ exit (0);
}
/* Parsing of arguments, decoding of switches. */
static char options[1 + sizeof (switches) / sizeof (switches[0]) * 3];
static struct option long_options[(sizeof (switches) / sizeof (switches[0])) +
- (sizeof (long_option_aliases) /
- sizeof (long_option_aliases[0]))];
+ (sizeof (long_option_aliases) /
+ sizeof (long_option_aliases[0]))];
/* Fill in the string and vector for getopt. */
static void
@@ -2341,89 +2585,93 @@ init_switches (void)
for (i = 0; switches[i].c != '\0'; ++i)
{
long_options[i].name = (switches[i].long_name == 0 ? "" :
- switches[i].long_name);
+ switches[i].long_name);
long_options[i].flag = 0;
long_options[i].val = switches[i].c;
if (short_option (switches[i].c))
- *p++ = switches[i].c;
+ *p++ = switches[i].c;
switch (switches[i].type)
- {
- case flag:
- case flag_off:
- case ignore:
- long_options[i].has_arg = no_argument;
- break;
-
- case string:
+ {
+ case flag:
+ case flag_off:
+ case ignore:
+ long_options[i].has_arg = no_argument;
+ break;
+
+ case string:
case filename:
- case positive_int:
- case floating:
- if (short_option (switches[i].c))
- *p++ = ':';
- if (switches[i].noarg_value != 0)
- {
- if (short_option (switches[i].c))
- *p++ = ':';
- long_options[i].has_arg = optional_argument;
- }
- else
- long_options[i].has_arg = required_argument;
- break;
- }
+ case positive_int:
+ case floating:
+ if (short_option (switches[i].c))
+ *p++ = ':';
+ if (switches[i].noarg_value != 0)
+ {
+ if (short_option (switches[i].c))
+ *p++ = ':';
+ long_options[i].has_arg = optional_argument;
+ }
+ else
+ long_options[i].has_arg = required_argument;
+ break;
+ }
}
*p = '\0';
for (c = 0; c < (sizeof (long_option_aliases) /
- sizeof (long_option_aliases[0]));
+ sizeof (long_option_aliases[0]));
++c)
long_options[i++] = long_option_aliases[c];
long_options[i].name = 0;
}
+
+/* Non-option argument. It might be a variable definition. */
static void
handle_non_switch_argument (char *arg, int env)
{
- /* Non-option argument. It might be a variable definition. */
struct variable *v;
+
if (arg[0] == '-' && arg[1] == '\0')
- /* Ignore plain `-' for compatibility. */
+ /* Ignore plain '-' for compatibility. */
return;
+
v = try_variable_definition (0, arg, o_command, 0);
if (v != 0)
{
/* It is indeed a variable definition. If we don't already have this
- one, record a pointer to the variable for later use in
- define_makeflags. */
+ one, record a pointer to the variable for later use in
+ define_makeflags. */
struct command_variable *cv;
for (cv = command_variables; cv != 0; cv = cv->next)
if (cv->variable == v)
break;
- if (! cv) {
- cv = xmalloc (sizeof (*cv));
- cv->variable = v;
- cv->next = command_variables;
- command_variables = cv;
- }
+ if (! cv)
+ {
+ cv = xmalloc (sizeof (*cv));
+ cv->variable = v;
+ cv->next = command_variables;
+ command_variables = cv;
+ }
}
else if (! env)
{
/* Not an option or variable definition; it must be a goal
- target! Enter it as a file and add it to the dep chain of
- goals. */
+ target! Enter it as a file and add it to the dep chain of
+ goals. */
struct file *f = enter_file (strcache_add (expand_command_line_file (arg)));
f->cmd_target = 1;
if (goals == 0)
- {
- goals = alloc_dep ();
- lastgoal = goals;
- }
+ {
+ goals = alloc_dep ();
+ lastgoal = goals;
+ }
else
- {
- lastgoal->next = alloc_dep ();
- lastgoal = lastgoal->next;
- }
+ {
+ lastgoal->next = alloc_dep ();
+ lastgoal = lastgoal->next;
+ }
lastgoal->file = f;
@@ -2508,47 +2756,47 @@ decode_switches (int argc, char **argv, int env)
/* Parse the next argument. */
c = getopt_long (argc, argv, options, long_options, (int *) 0);
if (c == EOF)
- /* End of arguments, or "--" marker seen. */
- break;
+ /* End of arguments, or "--" marker seen. */
+ break;
else if (c == 1)
- /* An argument not starting with a dash. */
- handle_non_switch_argument (optarg, env);
+ /* An argument not starting with a dash. */
+ handle_non_switch_argument (optarg, env);
else if (c == '?')
- /* Bad option. We will print a usage message and die later.
- But continue to parse the other options so the user can
- see all he did wrong. */
- bad = 1;
+ /* Bad option. We will print a usage message and die later.
+ But continue to parse the other options so the user can
+ see all he did wrong. */
+ bad = 1;
else
- for (cs = switches; cs->c != '\0'; ++cs)
- if (cs->c == c)
- {
- /* Whether or not we will actually do anything with
- this switch. We test this individually inside the
- switch below rather than just once outside it, so that
- options which are to be ignored still consume args. */
- int doit = !env || cs->env;
-
- switch (cs->type)
- {
- default:
- abort ();
-
- case ignore:
- break;
-
- case flag:
- case flag_off:
- if (doit)
- *(int *) cs->value_ptr = cs->type == flag;
- break;
-
- case string:
- case filename:
- if (!doit)
- break;
-
- if (optarg == 0)
- optarg = xstrdup (cs->noarg_value);
+ for (cs = switches; cs->c != '\0'; ++cs)
+ if (cs->c == c)
+ {
+ /* Whether or not we will actually do anything with
+ this switch. We test this individually inside the
+ switch below rather than just once outside it, so that
+ options which are to be ignored still consume args. */
+ int doit = !env || cs->env;
+
+ switch (cs->type)
+ {
+ default:
+ abort ();
+
+ case ignore:
+ break;
+
+ case flag:
+ case flag_off:
+ if (doit)
+ *(int *) cs->value_ptr = cs->type == flag;
+ break;
+
+ case string:
+ case filename:
+ if (!doit)
+ break;
+
+ if (optarg == 0)
+ optarg = xstrdup (cs->noarg_value);
else if (*optarg == '\0')
{
char opt[2] = "c";
@@ -2559,39 +2807,38 @@ decode_switches (int argc, char **argv, int env)
else
op = cs->long_name;
- error (NILF, _("the `%s%s' option requires a non-empty string argument"),
+ error (NILF, _("the '%s%s' option requires a non-empty string argument"),
short_option (cs->c) ? "-" : "--", op);
bad = 1;
}
- sl = *(struct stringlist **) cs->value_ptr;
- if (sl == 0)
- {
- sl = (struct stringlist *)
- xmalloc (sizeof (struct stringlist));
- sl->max = 5;
- sl->idx = 0;
- sl->list = xmalloc (5 * sizeof (char *));
- *(struct stringlist **) cs->value_ptr = sl;
- }
- else if (sl->idx == sl->max - 1)
- {
- sl->max += 5;
+ sl = *(struct stringlist **) cs->value_ptr;
+ if (sl == 0)
+ {
+ sl = xmalloc (sizeof (struct stringlist));
+ sl->max = 5;
+ sl->idx = 0;
+ sl->list = xmalloc (5 * sizeof (char *));
+ *(struct stringlist **) cs->value_ptr = sl;
+ }
+ else if (sl->idx == sl->max - 1)
+ {
+ sl->max += 5;
/* MSVC erroneously warns without a cast here. */
- sl->list = xrealloc ((void *)sl->list,
+ sl->list = xrealloc ((void *)sl->list,
sl->max * sizeof (char *));
- }
+ }
if (cs->type == filename)
sl->list[sl->idx++] = expand_command_line_file (optarg);
else
sl->list[sl->idx++] = optarg;
- sl->list[sl->idx] = 0;
- break;
+ sl->list[sl->idx] = 0;
+ break;
- case positive_int:
+ case positive_int:
/* See if we have an option argument; if we do require that
it's all digits, not something like "10foo". */
- if (optarg == 0 && argc > optind)
+ if (optarg == 0 && argc > optind)
{
const char *cp;
for (cp=argv[optind]; ISDIGIT (cp[0]); ++cp)
@@ -2600,50 +2847,50 @@ decode_switches (int argc, char **argv, int env)
optarg = argv[optind++];
}
- if (!doit)
- break;
+ if (!doit)
+ break;
- if (optarg != 0)
- {
- int i = atoi (optarg);
+ if (optarg != 0)
+ {
+ int i = atoi (optarg);
const char *cp;
/* Yes, I realize we're repeating this in some cases. */
for (cp = optarg; ISDIGIT (cp[0]); ++cp)
;
- if (i < 1 || cp[0] != '\0')
- {
- error (NILF, _("the `-%c' option requires a positive integral argument"),
+ if (i < 1 || cp[0] != '\0')
+ {
+ error (NILF, _("the '-%c' option requires a positive integer argument"),
cs->c);
- bad = 1;
- }
- else
- *(unsigned int *) cs->value_ptr = i;
- }
- else
- *(unsigned int *) cs->value_ptr
- = *(unsigned int *) cs->noarg_value;
- break;
+ bad = 1;
+ }
+ else
+ *(unsigned int *) cs->value_ptr = i;
+ }
+ else
+ *(unsigned int *) cs->value_ptr
+ = *(unsigned int *) cs->noarg_value;
+ break;
#ifndef NO_FLOAT
- case floating:
- if (optarg == 0 && optind < argc
- && (ISDIGIT (argv[optind][0]) || argv[optind][0] == '.'))
- optarg = argv[optind++];
+ case floating:
+ if (optarg == 0 && optind < argc
+ && (ISDIGIT (argv[optind][0]) || argv[optind][0] == '.'))
+ optarg = argv[optind++];
- if (doit)
- *(double *) cs->value_ptr
- = (optarg != 0 ? atof (optarg)
- : *(double *) cs->noarg_value);
+ if (doit)
+ *(double *) cs->value_ptr
+ = (optarg != 0 ? atof (optarg)
+ : *(double *) cs->noarg_value);
- break;
+ break;
#endif
- }
+ }
- /* We've found the switch. Stop looking. */
- break;
- }
+ /* We've found the switch. Stop looking. */
+ break;
+ }
}
/* There are no more options according to getting getopt, but there may
@@ -2653,12 +2900,15 @@ decode_switches (int argc, char **argv, int env)
while (optind < argc)
handle_non_switch_argument (argv[optind++], env);
-
if (!env && (bad || print_usage_flag))
{
print_usage (bad);
die (bad ? 2 : 0);
}
+
+ /* If there are any options that need to be decoded do it now. */
+ decode_debug_flags ();
+ decode_output_sync_flags ();
}
/* Decode switches from environment variable ENVAR (which is LEN chars long).
@@ -2704,17 +2954,17 @@ decode_env_switches (char *envar, unsigned int len)
while (*value != '\0')
{
if (*value == '\\' && value[1] != '\0')
- ++value; /* Skip the backslash. */
+ ++value; /* Skip the backslash. */
else if (isblank ((unsigned char)*value))
- {
- /* End of the word. */
- *p++ = '\0';
- argv[++argc] = p;
- do
- ++value;
- while (isblank ((unsigned char)*value));
- continue;
- }
+ {
+ /* End of the word. */
+ *p++ = '\0';
+ argv[++argc] = p;
+ do
+ ++value;
+ while (isblank ((unsigned char)*value));
+ continue;
+ }
*p++ = *value++;
}
*p = '\0';
@@ -2743,7 +2993,7 @@ quote_for_env (char *out, const char *in)
while (*in != '\0')
{
if (*in == '$')
- *out++ = '$';
+ *out++ = '$';
else if (isblank ((unsigned char)*in) || *in == '\\')
*out++ = '\\';
*out++ = *in++;
@@ -2754,9 +3004,9 @@ quote_for_env (char *out, const char *in)
/* Define the MAKEFLAGS and MFLAGS variables to reflect the settings of the
command switches. Include options with args if ALL is nonzero.
- Don't include options with the `no_makefile' flag set if MAKEFILE. */
+ Don't include options with the 'no_makefile' flag set if MAKEFILE. */
-static const char *
+static struct variable *
define_makeflags (int all, int makefile)
{
const char ref[] = "$(MAKEOVERRIDES)";
@@ -2764,11 +3014,9 @@ define_makeflags (int all, int makefile)
const char evalref[] = "$(-*-eval-flags-*-)";
const struct command_switch *cs;
char *flagstring;
- register char *p;
- unsigned int words;
- struct variable *v;
+ char *p;
- /* We will construct a linked list of `struct flag's describing
+ /* We will construct a linked list of 'struct flag's describing
all the flags which need to go in MAKEFLAGS. Then, once we
know how many there are and their lengths, we can put them all
together in a string. */
@@ -2780,259 +3028,210 @@ define_makeflags (int all, int makefile)
const char *arg;
};
struct flag *flags = 0;
+ struct flag *last = 0;
unsigned int flagslen = 0;
-#define ADD_FLAG(ARG, LEN) \
- do { \
- struct flag *new = alloca (sizeof (struct flag)); \
- new->cs = cs; \
- new->arg = (ARG); \
- new->next = flags; \
- flags = new; \
- if (new->arg == 0) \
- ++flagslen; /* Just a single flag letter. */ \
- else \
- /* " -x foo", plus space to expand "foo". */ \
- flagslen += 1 + 1 + 1 + 1 + (3 * (LEN)); \
- if (!short_option (cs->c)) \
+#define ADD_FLAG(ARG, LEN) \
+ do { \
+ struct flag *new = alloca (sizeof (struct flag)); \
+ new->cs = cs; \
+ new->arg = (ARG); \
+ new->next = 0; \
+ if (! flags) \
+ flags = new; \
+ else \
+ last->next = new; \
+ last = new; \
+ if (new->arg == 0) \
+ /* Just a single flag letter: " -x" */ \
+ flagslen += 3; \
+ else \
+ /* " -xfoo", plus space to escape "foo". */ \
+ flagslen += 1 + 1 + 1 + (3 * (LEN)); \
+ if (!short_option (cs->c)) \
/* This switch has no single-letter version, so we use the long. */ \
- flagslen += 2 + strlen (cs->long_name); \
+ flagslen += 2 + strlen (cs->long_name); \
} while (0)
for (cs = switches; cs->c != '\0'; ++cs)
if (cs->toenv && (!makefile || !cs->no_makefile))
switch (cs->type)
- {
- case ignore:
- break;
-
- case flag:
- case flag_off:
- if (!*(int *) cs->value_ptr == (cs->type == flag_off)
- && (cs->default_value == 0
- || *(int *) cs->value_ptr != *(int *) cs->default_value))
- ADD_FLAG (0, 0);
- break;
-
- case positive_int:
- if (all)
- {
- if ((cs->default_value != 0
- && (*(unsigned int *) cs->value_ptr
- == *(unsigned int *) cs->default_value)))
- break;
- else if (cs->noarg_value != 0
- && (*(unsigned int *) cs->value_ptr ==
- *(unsigned int *) cs->noarg_value))
- ADD_FLAG ("", 0); /* Optional value omitted; see below. */
- else if (cs->c == 'j')
- /* Special case for `-j'. */
- ADD_FLAG ("1", 1);
- else
- {
- char *buf = alloca (30);
- sprintf (buf, "%u", *(unsigned int *) cs->value_ptr);
- ADD_FLAG (buf, strlen (buf));
- }
- }
- break;
+ {
+ case ignore:
+ break;
+
+ case flag:
+ case flag_off:
+ if (!*(int *) cs->value_ptr == (cs->type == flag_off)
+ && (cs->default_value == 0
+ || *(int *) cs->value_ptr != *(int *) cs->default_value))
+ ADD_FLAG (0, 0);
+ break;
+
+ case positive_int:
+ if (all)
+ {
+ if ((cs->default_value != 0
+ && (*(unsigned int *) cs->value_ptr
+ == *(unsigned int *) cs->default_value)))
+ break;
+ else if (cs->noarg_value != 0
+ && (*(unsigned int *) cs->value_ptr ==
+ *(unsigned int *) cs->noarg_value))
+ ADD_FLAG ("", 0); /* Optional value omitted; see below. */
+ else
+ {
+ char *buf = alloca (30);
+ sprintf (buf, "%u", *(unsigned int *) cs->value_ptr);
+ ADD_FLAG (buf, strlen (buf));
+ }
+ }
+ break;
#ifndef NO_FLOAT
- case floating:
- if (all)
- {
- if (cs->default_value != 0
- && (*(double *) cs->value_ptr
- == *(double *) cs->default_value))
- break;
- else if (cs->noarg_value != 0
- && (*(double *) cs->value_ptr
- == *(double *) cs->noarg_value))
- ADD_FLAG ("", 0); /* Optional value omitted; see below. */
- else
- {
- char *buf = alloca (100);
- sprintf (buf, "%g", *(double *) cs->value_ptr);
- ADD_FLAG (buf, strlen (buf));
- }
- }
- break;
-#endif
-
- case filename:
- case string:
- if (all)
- {
- struct stringlist *sl = *(struct stringlist **) cs->value_ptr;
- if (sl != 0)
- {
- /* Add the elements in reverse order, because all the flags
- get reversed below; and the order matters for some
- switches (like -I). */
- unsigned int i = sl->idx;
- while (i-- > 0)
- ADD_FLAG (sl->list[i], strlen (sl->list[i]));
- }
- }
- break;
-
- default:
- abort ();
- }
-
- /* Four more for the possible " -- ". */
- flagslen += 4 + sizeof (posixref) + sizeof (evalref);
-
-#undef ADD_FLAG
+ case floating:
+ if (all)
+ {
+ if (cs->default_value != 0
+ && (*(double *) cs->value_ptr
+ == *(double *) cs->default_value))
+ break;
+ else if (cs->noarg_value != 0
+ && (*(double *) cs->value_ptr
+ == *(double *) cs->noarg_value))
+ ADD_FLAG ("", 0); /* Optional value omitted; see below. */
+ else
+ {
+ char *buf = alloca (100);
+ sprintf (buf, "%g", *(double *) cs->value_ptr);
+ ADD_FLAG (buf, strlen (buf));
+ }
+ }
+ break;
+#endif
+
+ case filename:
+ case string:
+ if (all)
+ {
+ struct stringlist *sl = *(struct stringlist **) cs->value_ptr;
+ if (sl != 0)
+ {
+ unsigned int i;
+ for (i = 0; i < sl->idx; ++i)
+ ADD_FLAG (sl->list[i], strlen (sl->list[i]));
+ }
+ }
+ break;
+
+ default:
+ abort ();
+ }
+
+#undef ADD_FLAG
+
+ /* Four more for the possible " -- ", plus variable references. */
+ flagslen += 4 + CSTRLEN (posixref) + 1 + CSTRLEN (evalref) + 1;
/* Construct the value in FLAGSTRING.
We allocate enough space for a preceding dash and trailing null. */
flagstring = alloca (1 + flagslen + 1);
memset (flagstring, '\0', 1 + flagslen + 1);
p = flagstring;
- words = 1;
+
+ /* Start with a dash, for MFLAGS. */
*p++ = '-';
- while (flags != 0)
+
+ /* Add simple options as a group. */
+ while (flags != 0 && !flags->arg && short_option (flags->cs->c))
+ {
+ *p++ = flags->cs->c;
+ flags = flags->next;
+ }
+
+ /* Now add more complex flags: ones with options and/or long names. */
+ while (flags)
{
+ *p++ = ' ';
+ *p++ = '-';
+
/* Add the flag letter or name to the string. */
if (short_option (flags->cs->c))
- *p++ = flags->cs->c;
+ *p++ = flags->cs->c;
else
- {
- if (*p != '-')
- {
- *p++ = ' ';
- *p++ = '-';
- }
- *p++ = '-';
- strcpy (p, flags->cs->long_name);
- p += strlen (p);
- }
- if (flags->arg != 0)
- {
- /* A flag that takes an optional argument which in this case is
- omitted is specified by ARG being "". We must distinguish
- because a following flag appended without an intervening " -"
- is considered the arg for the first. */
- if (flags->arg[0] != '\0')
- {
- /* Add its argument too. */
- *p++ = !short_option (flags->cs->c) ? '=' : ' ';
- p = quote_for_env (p, flags->arg);
- }
- ++words;
- /* Write a following space and dash, for the next flag. */
- *p++ = ' ';
- *p++ = '-';
- }
- else if (!short_option (flags->cs->c))
- {
- ++words;
- /* Long options must each go in their own word,
- so we write the following space and dash. */
- *p++ = ' ';
- *p++ = '-';
- }
+ {
+ /* Long options require a double-dash. */
+ *p++ = '-';
+ strcpy (p, flags->cs->long_name);
+ p += strlen (p);
+ }
+ /* An omitted optional argument has an ARG of "". */
+ if (flags->arg && flags->arg[0] != '\0')
+ {
+ if (!short_option (flags->cs->c))
+ /* Long options require '='. */
+ *p++ = '=';
+ p = quote_for_env (p, flags->arg);
+ }
flags = flags->next;
}
- /* Define MFLAGS before appending variable definitions. */
-
+ /* If no flags at all, get rid of the initial dash. */
if (p == &flagstring[1])
- /* No flags. */
- flagstring[0] = '\0';
- else if (p[-1] == '-')
{
- /* Kill the final space and dash. */
- p -= 2;
- *p = '\0';
+ flagstring[0] = '\0';
+ p = flagstring;
}
- else
- /* Terminate the string. */
- *p = '\0';
- /* Since MFLAGS is not parsed for flags, there is no reason to
+ /* Define MFLAGS before appending variable definitions. Omit an initial
+ empty dash. Since MFLAGS is not parsed for flags, there is no reason to
override any makefile redefinition. */
- define_variable_cname ("MFLAGS", flagstring, o_env, 1);
+ define_variable_cname ("MFLAGS",
+ flagstring + (flagstring[0] == '-' && flagstring[1] == ' ' ? 2 : 0),
+ o_env, 1);
/* Write a reference to -*-eval-flags-*-, which contains all the --eval
flag options. */
if (eval_strings)
{
- if (p == &flagstring[1])
- /* No flags written, so elide the leading dash already written. */
- p = flagstring;
- else
- *p++ = ' ';
- memcpy (p, evalref, sizeof (evalref) - 1);
- p += sizeof (evalref) - 1;
+ *p++ = ' ';
+ memcpy (p, evalref, CSTRLEN (evalref));
+ p += CSTRLEN (evalref);
}
- if (all && command_variables != 0)
+ if (all && command_variables)
{
- /* Now write a reference to $(MAKEOVERRIDES), which contains all the
- command-line variable definitions. */
+ /* Write a reference to $(MAKEOVERRIDES), which contains all the
+ command-line variable definitions. Separate the variables from the
+ switches with a "--" arg. */
- if (p == &flagstring[1])
- /* No flags written, so elide the leading dash already written. */
- p = flagstring;
- else
- {
- /* Separate the variables from the switches with a "--" arg. */
- if (p[-1] != '-')
- {
- /* We did not already write a trailing " -". */
- *p++ = ' ';
- *p++ = '-';
- }
- /* There is a trailing " -"; fill it out to " -- ". */
- *p++ = '-';
- *p++ = ' ';
- }
+ strcpy (p, " -- ");
+ p += 4;
/* Copy in the string. */
if (posix_pedantic)
- {
- memcpy (p, posixref, sizeof (posixref) - 1);
- p += sizeof (posixref) - 1;
- }
+ {
+ memcpy (p, posixref, CSTRLEN (posixref));
+ p += CSTRLEN (posixref);
+ }
else
- {
- memcpy (p, ref, sizeof (ref) - 1);
- p += sizeof (ref) - 1;
- }
- }
- else if (p == &flagstring[1])
- {
- words = 0;
- --p;
+ {
+ memcpy (p, ref, CSTRLEN (ref));
+ p += CSTRLEN (ref);
+ }
}
- else if (p[-1] == '-')
- /* Kill the final space and dash. */
- p -= 2;
- /* Terminate the string. */
- *p = '\0';
- /* If there are switches, omit the leading dash unless it is a single long
- option with two leading dashes. */
- if (flagstring[0] == '-' && flagstring[1] != '-')
+ /* If there is a leading dash, omit it. */
+ if (flagstring[0] == '-')
++flagstring;
- v = define_variable_cname ("MAKEFLAGS", flagstring,
- /* This used to use o_env, but that lost when a
- makefile defined MAKEFLAGS. Makefiles set
- MAKEFLAGS to add switches, but we still want
- to redefine its value with the full set of
- switches. Of course, an override or command
- definition will still take precedence. */
- o_file, 1);
-
- if (! all)
- /* The first time we are called, set MAKEFLAGS to always be exported.
- We should not do this again on the second call, because that is
- after reading makefiles which might have done `unexport MAKEFLAGS'. */
- v->export = v_export;
-
- return v->value;
+ /* This used to use o_env, but that lost when a makefile defined MAKEFLAGS.
+ Makefiles set MAKEFLAGS to add switches, but we still want to redefine
+ its value with the full set of switches. Then we used o_file, but that
+ lost when users added -e, causing a previous MAKEFLAGS env. var. to take
+ precedence over the new one. Of course, an override or command
+ definition will still take precedence. */
+ return define_variable_cname ("MAKEFLAGS", flagstring,
+ env_overrides ? o_env_override : o_file, 1);
}
/* Print version information. */
@@ -3059,9 +3258,10 @@ print_version (void)
/* Print this untranslated. The coding standards recommend translating the
(C) to the copyright symbol, but this string is going to change every
year, and none of the rest of it should be translated (including the
- word "Copyright", so it hardly seems worth it. */
+ word "Copyright"), so it hardly seems worth it. */
- printf ("%sCopyright (C) 2010 Free Software Foundation, Inc.\n", precede);
+ printf ("%sCopyright (C) 1988-2013 Free Software Foundation, Inc.\n",
+ precede);
printf (_("%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n\
%sThis is free software: you are free to change and redistribute it.\n\
@@ -3071,7 +3271,7 @@ print_version (void)
printed_version = 1;
/* Flush stdout so the user doesn't have to wait to see the
- version information while things are thought about. */
+ version information while make thinks about things. */
fflush (stdout);
}
@@ -3080,9 +3280,10 @@ print_version (void)
static void
print_data_base ()
{
- time_t when;
+ time_t when = time ((time_t *) 0);
+
+ print_version ();
- when = time ((time_t *) 0);
printf (_("\n# Make data base, printed on %s"), ctime (&when));
print_variable_data_base ();
@@ -3099,27 +3300,37 @@ print_data_base ()
static void
clean_jobserver (int status)
{
- char token = '+';
-
/* Sanity: have we written all our jobserver tokens back? If our
exit status is 2 that means some kind of syntax error; we might not
have written all our tokens so do that now. If tokens are left
after any other error code, that's bad. */
+#ifdef WINDOWS32
+ if (has_jobserver_semaphore () && jobserver_tokens)
+#else
+ char token = '+';
+
if (job_fds[0] != -1 && jobserver_tokens)
+#endif
{
if (status != 2)
error (NILF,
"INTERNAL: Exiting with %u jobserver tokens (should be 0)!",
jobserver_tokens);
else
- while (jobserver_tokens--)
+ /* Don't write back the "free" token */
+ while (--jobserver_tokens)
{
+#ifdef WINDOWS32
+ if (! release_jobserver_semaphore ())
+ perror_with_name ("release_jobserver_semaphore", "");
+#else
int r;
EINTRLOOP (r, write (job_fds[1], &token, 1));
if (r != 1)
perror_with_name ("write", "");
+#endif
}
}
@@ -3131,18 +3342,27 @@ clean_jobserver (int status)
/* We didn't write one for ourself, so start at 1. */
unsigned int tcnt = 1;
+#ifdef WINDOWS32
+ while (acquire_jobserver_semaphore ())
+ ++tcnt;
+#else
/* Close the write side, so the read() won't hang. */
close (job_fds[1]);
while (read (job_fds[0], &token, 1) == 1)
++tcnt;
+#endif
if (tcnt != master_job_slots)
error (NILF,
"INTERNAL: Exiting with %u jobserver tokens available; should be %u!",
tcnt, master_job_slots);
+#ifdef WINDOWS32
+ free_jobserver_semaphore ();
+#else
close (job_fds[0]);
+#endif
/* Clean out jobserver_fds so we don't pass this information to any
sub-makes. Also reset job_slots since it will be put on the command
@@ -3172,12 +3392,12 @@ die (int status)
dying = 1;
if (print_version_flag)
- print_version ();
+ print_version ();
/* Wait for children to die. */
err = (status != 0);
while (job_slots_used > 0)
- reap_children (1, err);
+ reap_children (1, err);
/* Let the remote job module clean up its state. */
remote_cleanup ();
@@ -3186,80 +3406,34 @@ die (int status)
remove_intermediates (0);
if (print_data_base_flag)
- print_data_base ();
+ print_data_base ();
- verify_file_data_base ();
+ if (verify_flag)
+ verify_file_data_base ();
clean_jobserver (status);
+ if (output_context)
+ {
+ assert (output_context == &make_sync);
+ OUTPUT_UNSET ();
+ output_close (&make_sync);
+ }
+
+ output_close (NULL);
+
/* Try to move back to the original directory. This is essential on
- MS-DOS (where there is really only one process), and on Unix it
- puts core files in the original directory instead of the -C
- directory. Must wait until after remove_intermediates(), or unlinks
+ MS-DOS (where there is really only one process), and on Unix it
+ puts core files in the original directory instead of the -C
+ directory. Must wait until after remove_intermediates(), or unlinks
of relative pathnames fail. */
if (directory_before_chdir != 0)
{
/* If it fails we don't care: shut up GCC. */
- int _x;
+ int _x UNUSED;
_x = chdir (directory_before_chdir);
}
-
- log_working_directory (0);
}
exit (status);
}
-
-/* Write a message indicating that we've just entered or
- left (according to ENTERING) the current directory. */
-
-void
-log_working_directory (int entering)
-{
- static int entered = 0;
-
- /* Print nothing without the flag. Don't print the entering message
- again if we already have. Don't print the leaving message if we
- haven't printed the entering message. */
- if (! print_directory_flag || entering == entered)
- return;
-
- entered = entering;
-
- if (print_data_base_flag)
- fputs ("# ", stdout);
-
- /* Use entire sentences to give the translators a fighting chance. */
-
- if (makelevel == 0)
- if (starting_directory == 0)
- if (entering)
- printf (_("%s: Entering an unknown directory\n"), program);
- else
- printf (_("%s: Leaving an unknown directory\n"), program);
- else
- if (entering)
- printf (_("%s: Entering directory `%s'\n"),
- program, starting_directory);
- else
- printf (_("%s: Leaving directory `%s'\n"),
- program, starting_directory);
- else
- if (starting_directory == 0)
- if (entering)
- printf (_("%s[%u]: Entering an unknown directory\n"),
- program, makelevel);
- else
- printf (_("%s[%u]: Leaving an unknown directory\n"),
- program, makelevel);
- else
- if (entering)
- printf (_("%s[%u]: Entering directory `%s'\n"),
- program, makelevel, starting_directory);
- else
- printf (_("%s[%u]: Leaving directory `%s'\n"),
- program, makelevel, starting_directory);
-
- /* Flush stdout to be sure this comes before any stderr output. */
- fflush (stdout);
-}
diff --git a/make.1 b/make.1
index c76ce25..94536fe 100644
--- a/make.1
+++ b/make.1
@@ -1,49 +1,35 @@
-.TH MAKE 1 "22 August 1989" "GNU" "LOCAL USER COMMANDS"
+.TH MAKE 1 "03 March 2012" "GNU" "User Commands"
.SH NAME
make \- GNU make utility to maintain groups of programs
.SH SYNOPSIS
-.B "make "
-[
-.B \-f
-.I makefile
-] [ options ] ... [ targets ] ...
-.SH WARNING
-This man page is an extract of the documentation of GNU
-.IR make .
-It is updated only occasionally, because the GNU project does not use nroff.
-For complete, current documentation, refer to the Info file
-.B make.info
-which is made from the Texinfo source file
-.BR make.texi .
+.B make
+[\fIOPTION\fR]... [\fITARGET\fR]...
.SH DESCRIPTION
.LP
-The purpose of the
-.I make
-utility is to determine automatically which
-pieces of a large program need to be recompiled, and issue the commands to
-recompile them.
-The manual describes the GNU implementation of
-.IR make ,
-which was written by Richard Stallman and Roland McGrath, and is
-currently maintained by Paul Smith.
-Our examples show C programs, since they are most common, but you can use
+The
.I make
-with any programming language whose compiler can be run with a
-shell command.
+utility will determine automatically which pieces of a large program need to
+be recompiled, and issue the commands to recompile them. The manual describes
+the GNU implementation of
+.BR make ,
+which was written by Richard Stallman and Roland McGrath, and is currently
+maintained by Paul Smith. Our examples show C programs, since they are very
+common, but you can use
+.B make
+with any programming language whose compiler can be run with a shell command.
In fact,
-.I make
-is not limited to programs.
-You can use it to describe any task where some files must be
-updated automatically from others whenever the others change.
+.B make
+is not limited to programs. You can use it to describe any task where some
+files must be updated automatically from others whenever the others change.
.LP
To prepare to use
-.IR make ,
+.BR make ,
you must write a file called the
.I makefile
-that describes the relationships among files in your program, and the
-states the commands for updating each file.
-In a program, typically the executable file is updated from object
-files, which are in turn made by compiling source files.
+that describes the relationships among files in your program, and the states
+the commands for updating each file. In a program, typically the executable
+file is updated from object files, which are in turn made by compiling source
+files.
.LP
Once a suitable makefile exists, each time you change some source files,
this simple shell command:
@@ -54,16 +40,15 @@ this simple shell command:
.sp 1
suffices to perform all necessary recompilations.
The
-.I make
-program uses the makefile data base and the last-modification times
-of the files to decide which of the files need to be updated.
-For each of those files, it issues the commands recorded in the data base.
+.B make
+program uses the makefile description and the last-modification times of the
+files to decide which of the files need to be updated. For each of those
+files, it issues the commands recorded in the makefile.
.LP
-.I make
+.B make
executes commands in the
.I makefile
-to update
-one or more target
+to update one or more target
.IR names ,
where
.I name
@@ -71,7 +56,7 @@ is typically a program.
If no
.B \-f
option is present,
-.I make
+.B make
will look for the makefiles
.IR GNUmakefile ,
.IR makefile ,
@@ -90,27 +75,27 @@ listing, right near other important files such as
.IR README .)
The first name checked,
.IR GNUmakefile ,
-is not recommended for most makefiles.
-You should use this name if you have a makefile that is specific to GNU
-.IR make ,
+is not recommended for most makefiles. You should use this name if you have a
+makefile that is specific to GNU
+.BR make ,
and will not be understood by other versions of
-.IR make .
+.BR make .
If
.I makefile
-is `\-', the standard input is read.
+is '\-', the standard input is read.
.LP
-.I make
+.B make
updates a target if it depends on prerequisite files
that have been modified since the target was last modified,
or if the target does not exist.
.SH OPTIONS
.sp 1
.TP 0.5i
-.BR \-b , " \-m"
+\fB\-b\fR, \fB\-m\fR
These options are ignored for compatibility with other versions of
-.IR make .
+.BR make .
.TP 0.5i
-.BR \-B , " \-\-always\-make"
+\fB\-B\fR, \fB\-\-always\-make\fR
Unconditionally make all targets.
.TP 0.5i
\fB\-C\fR \fIdir\fR, \fB\-\-directory\fR=\fIdir\fR
@@ -126,7 +111,7 @@ previous one:
is equivalent to
.BR "\-C " /etc.
This is typically used with recursive invocations of
-.IR make .
+.BR make .
.TP 0.5i
.B \-d
Print debugging information in addition to normal processing.
@@ -134,7 +119,7 @@ The debugging information says which files are being considered for
remaking, which file-times are being compared and with what results,
which files actually need to be remade, which implicit rules are
considered and which are applied---everything interesting about how
-.I make
+.B make
decides what to do.
.TP 0.5i
.BI \-\-debug "[=FLAGS]"
@@ -158,9 +143,11 @@ for showing implicit rules,
.I j
for details on invocation of commands, and
.I m
-for debugging while remaking makefiles.
+for debugging while remaking makefiles. Use
+.I n
+to disable all previous debugging flags.
.TP 0.5i
-.BR \-e , " \-\-environment\-overrides"
+\fB\-e\fR, \fB\-\-environment\-overrides\fR
Give variables taken from the environment precedence
over variables from makefiles.
.TP 0.5i
@@ -169,7 +156,7 @@ Use
.I file
as a makefile.
.TP 0.5i
-.BR \-i , " \-\-ignore\-errors"
+\fB\-i\fR, \fB\-\-ignore\-errors\fR
Ignore all errors in commands executed to remake files.
.TP 0.5i
\fB\-I\fR \fIdir\fR, \fB\-\-include\-dir\fR=\fIdir\fR
@@ -181,13 +168,14 @@ If several
options are used to specify several directories, the directories are
searched in the order specified.
Unlike the arguments to other flags of
-.IR make ,
+.BR make ,
directories given with
.B \-I
flags may come directly after the flag:
.BI \-I dir
is allowed, as well as
-.BI "\-I " dir.
+.B \-I
+.IR dir .
This syntax is allowed for compatibility with the C
preprocessor's
.B \-I
@@ -203,10 +191,10 @@ option, the last one is effective.
If the
.B \-j
option is given without an argument,
-.IR make
+.BR make
will not limit the number of jobs that can run simultaneously.
.TP 0.5i
-.BR \-k , " \-\-keep\-going"
+\fB\-k\fR, \fB\-\-keep\-going\fR
Continue as much as possible after an error.
While the target that failed, and those that depend on it, cannot
be remade, the other dependencies of these targets can be processed
@@ -219,10 +207,10 @@ others jobs running and the load average is at least
(a floating-point number).
With no argument, removes a previous load limit.
.TP 0.5i
-.BR \-L , " \-\-check\-symlink\-times"
+\fB\-L\fR, \fB\-\-check\-symlink\-times\fR
Use the latest mtime between symlinks and target.
.TP 0.5i
-.BR \-n , " \-\-just\-print" , " \-\-dry\-run" , " \-\-recon"
+\fB\-n\fR, \fB\-\-just\-print\fR, \fB\-\-dry\-run\fR, \fB\-\-recon\fR
Print the commands that would be executed, but do not execute them (except in
certain circumstances).
.TP 0.5i
@@ -234,7 +222,29 @@ on account of changes in
.IR file .
Essentially the file is treated as very old and its rules are ignored.
.TP 0.5i
-.BR \-p , " \-\-print\-data\-base"
+\fB\-O\fR[\fItype\fR], \fB\-\-output\-sync\fR[=\fItype\fR]
+When running multiple jobs in parallel with \fB-j\fR, ensure the output of
+each job is collected together rather than interspersed with output from
+other jobs. If
+.I type
+is not specified or is
+.B target
+the output from the entire recipe for each target is grouped together. If
+.I type
+is
+.B line
+the output from each command line within a recipe is grouped together.
+If
+.I type
+is
+.B recurse
+output from an entire recursive make is grouped together. If
+.I type
+is
+.B none
+output synchronization is disabled.
+.TP 0.5i
+\fB\-p\fR, \fB\-\-print\-data\-base\fR
Print the data base (rules and variable values) that results from
reading the makefiles; then execute as usual or as otherwise
specified.
@@ -242,59 +252,61 @@ This also prints the version information given by the
.B \-v
switch (see below).
To print the data base without trying to remake any files, use
-.B make
-.B \-p
-.BI \-f /dev/null.
+.IR "make \-p \-f/dev/null" .
.TP 0.5i
-.BR \-q , " \-\-question"
+\fB\-q\fR, \fB\-\-question\fR
``Question mode''.
Do not run any commands, or print anything; just return an exit status
that is zero if the specified targets are already up to date, nonzero
otherwise.
.TP 0.5i
-.BR \-r , " \-\-no\-builtin\-rules"
+\fB\-r\fR, \fB\-\-no\-builtin\-rules\fR
Eliminate use of the built\-in implicit rules.
Also clear out the default list of suffixes for suffix rules.
.TP 0.5i
-.BR \-R , " \-\-no\-builtin\-variables"
+\fB\-R\fR, \fB\-\-no\-builtin\-variables\fR
Don't define any built\-in variables.
.TP 0.5i
-.BR \-s , " \-\-silent" , " \-\-quiet"
+\fB\-s\fR, \fB\-\-silent\fR, \fB\-\-quiet\fR
Silent operation; do not print the commands as they are executed.
.TP 0.5i
-.BR \-S , " \-\-no\-keep\-going" , " \-\-stop"
+\fB\-S\fR, \fB\-\-no\-keep\-going\fR, \fB\-\-stop\fR
Cancel the effect of the
.B \-k
option.
This is never necessary except in a recursive
-.I make
+.B make
where
.B \-k
might be inherited from the top-level
-.I make
+.B make
via MAKEFLAGS or if you set
.B \-k
in MAKEFLAGS in your environment.
.TP 0.5i
-.BR \-t , " \-\-touch"
+\fB\-t\fR, \fB\-\-touch\fR
Touch files (mark them up to date without really changing them)
instead of running their commands.
This is used to pretend that the commands were done, in order to fool
future invocations of
-.IR make .
+.BR make .
+.TP 0.5i
+.B \-\-trace
+Information about the disposition of each target is printed (why the target is
+being rebuilt and what commands are run to rebuild it).
.TP 0.5i
-.BR \-v , " \-\-version"
+\fB\-v\fR, \fB\-\-version\fR
Print the version of the
-.I make
+.B make
program plus a copyright, a list of authors and a notice that there
is no warranty.
.TP 0.5i
-.BR \-w , " \-\-print\-directory"
+\fB\-w\fR, \fB\-\-print\-directory\fR
Print a message containing the working directory
before and after other processing.
This may be useful for tracking down errors from complicated nests of
recursive
-.I make
+.B make
commands.
.TP 0.5i
.B \-\-no\-print\-directory
@@ -314,36 +326,46 @@ Without
it is almost the same as running a
.I touch
command on the given file before running
-.IR make ,
+.BR make ,
except that the modification time is changed only in the imagination of
-.IR make .
+.BR make .
.TP 0.5i
.B \-\-warn\-undefined\-variables
Warn when an undefined variable is referenced.
.SH "EXIT STATUS"
GNU
-.I make
+.B make
exits with a status of zero if all makefiles were successfully parsed
and no targets that were built failed. A status of one will be returned
if the
.B \-q
flag was used and
-.I make
+.B make
determines that a target needs to be rebuilt. A status of two will be
returned if any errors were encountered.
.SH "SEE ALSO"
-.I "The GNU Make Manual"
+The full documentation for
+.B make
+is maintained as a Texinfo manual. If the
+.B info
+and
+.B make
+programs are properly installed at your site, the command
+.IP
+.B info make
+.PP
+should give you access to the complete manual.
.SH BUGS
-See the chapter `Problems and Bugs' in
+See the chapter ``Problems and Bugs'' in
.IR "The GNU Make Manual" .
.SH AUTHOR
This manual page contributed by Dennis Morse of Stanford University.
-It has been reworked by Roland McGrath. Further updates contributed by
-Mike Frysinger.
+Further updates contributed by Mike Frysinger. It has been reworked by Roland
+McGrath. Maintained by Paul Smith.
.SH "COPYRIGHT"
-Copyright (C) 1992, 1993, 1996, 1999, 2007 Free Software Foundation, Inc.
-This file is part of GNU
-.IR make .
+Copyright \(co 1992-1993, 1996-2013 Free Software Foundation, Inc.
+This file is part of
+.IR "GNU make" .
.LP
GNU Make is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
diff --git a/make.lnk b/make.lnk
index b4080a7..0d983bf 100644
--- a/make.lnk
+++ b/make.lnk
@@ -1,4 +1,4 @@
-FROM LIB:cres.o "commands.o"+"job.o"+"dir.o"+"file.o"+"misc.o"+"main.o"+"read.o"+"remake.o"+"rule.o"+"implicit.o"+"default.o"+"variable.o"+"expand.o"+"function.o"+"vpath.o"+"version.o"+"ar.o"+"arscan.o"+"signame.o"+"remote-stub.o"+"getopt.o"+"getopt1.o"+"alloca.o"+"amiga.o"+"hash.o"+"strcache.o"
+FROM LIB:cres.o "commands.o"+"job.o"+"dir.o"+"file.o"+"misc.o"+"main.o"+"read.o"+"remake.o"+"rule.o"+"implicit.o"+"default.o"+"variable.o"+"expand.o"+"function.o"+"vpath.o"+"version.o"+"ar.o"+"arscan.o"+"signame.o"+"remote-stub.o"+"getopt.o"+"getopt1.o"+"alloca.o"+"amiga.o"+"hash.o"+"strcache.o"+"output.o"
TO "make.new"
LIB glob/glob.lib LIB:sc.lib LIB:amiga.lib
QUIET
diff --git a/make_msvc_net2003.vcproj b/make_msvc_net2003.vcproj
index 357dfba..be620ad 100644
--- a/make_msvc_net2003.vcproj
+++ b/make_msvc_net2003.vcproj
@@ -154,6 +154,11 @@
<File
RelativePath=".\getopt1.c">
</File>
+<!--
+ <File
+ RelativePath=".\guile.c">
+ </File>
+-->
<File
RelativePath=".\hash.c">
</File>
@@ -167,6 +172,12 @@
RelativePath=".\job.c">
</File>
<File
+ RelativePath=".\load.c">
+ </File>
+ <File
+ RelativePath=".\output.c">
+ </File>
+ <File
RelativePath=".\main.c">
</File>
<File
@@ -203,6 +214,9 @@
RelativePath=".\w32\compat\dirent.c">
</File>
<File
+ RelativePath=".\w32\compat\posixfcn.c">
+ </File>
+ <File
RelativePath=".\w32\subproc\misc.c">
<FileConfiguration
Name="Debug|Win32">
@@ -264,13 +278,19 @@
RelativePath=".\gettext.h">
</File>
<File
+ RelativePath=".\gmk-default.h">
+ </File>
+ <File
RelativePath=".\hash.h">
</File>
<File
RelativePath=".\job.h">
</File>
<File
- RelativePath=".\make.h">
+ RelativePath=".\output.h">
+ </File>
+ <File
+ RelativePath=".\makeint.h">
</File>
<File
RelativePath=".\rule.h">
diff --git a/makefile.com b/makefile.com
index d2d05d1..6359c47 100644
--- a/makefile.com
+++ b/makefile.com
@@ -67,8 +67,8 @@ $ then
$ gosub check_cc_qual
$ endif
$ filelist = "alloca ar arscan commands default dir expand file function " + -
- "hash implicit job main misc read remake remote-stub rule " + -
- "signame variable version vmsfunctions vmsify vpath " + -
+ "hash implicit job load main misc read remake remote-stub rule " + -
+ "output signame variable version vmsfunctions vmsify vpath " + -
"[.glob]glob [.glob]fnmatch getopt1 getopt strcache"
$ copy config.h-vms config.h
$ n=0
@@ -138,8 +138,7 @@ $ exit
$ endsubroutine : compileit
$!
$!-----------------------------------------------------------------------------
-$!Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-$!2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+$!Copyright (C) 1996-2013 Free Software Foundation, Inc.
$!This file is part of GNU Make.
$!
$!GNU Make is free software; you can redistribute it and/or modify it under
diff --git a/makefile.vms b/makefile.vms
index 1e6a88e..e5950b7 100644
--- a/makefile.vms
+++ b/makefile.vms
@@ -1,7 +1,6 @@
# -*-Makefile-*- to build GNU make on VMS
#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
@@ -21,7 +20,7 @@
# Klaus Kämpf (kkaempf@rmi.de)
# Modified for version 3.78.1 by Hartmut.Becker@compaq.com.
# Modified for version 3.80 by zinser@decus.de
-# Modified for version 3.81 by Hartmut Becker
+# Modified for versions 3.81, 3.99.90 by Hartmut Becker
CC = cc
CP = copy
@@ -82,22 +81,26 @@ extras = ,signame.obj,remote-stub.obj,vmsfunctions.obj,vmsify.obj
# as an alternative:
glob = ,[.glob]glob.obj,[.glob]fnmatch.obj
getopt = ,getopt.obj,getopt1.obj
-# Directory to install `make' in.
+# Directory to install 'make' in.
bindir = []
# Directory to install the man page in.
mandir = []
# Number to put on the man page filename.
manext = 1
-objs = commands.obj,job.obj,dir.obj,file.obj,misc.obj,hash.obj,\
- main.obj,read.obj,remake.obj,rule.obj,implicit.obj,\
+#guile = ,guile.obj
+
+objs = commands.obj,job.obj,output.obj,dir.obj,file.obj,misc.obj,hash.obj,\
+ load.obj,main.obj,read.obj,remake.obj,rule.obj,implicit.obj,\
default.obj,variable.obj,expand.obj,function.obj,strcache.obj,\
- vpath.obj,version.obj$(ARCHIVES)$(ALLOCA)$(extras)$(getopt)$(glob)
-srcs = commands.c job.c dir.c file.c misc.c hash.c \
- main.c read.c remake.c rule.c implicit.c \
+ vpath.obj,version.obj\
+ $(ARCHIVES)$(ALLOCA)$(extras)$(getopt)$(glob)$(guile)
+
+srcs = commands.c job.c output.c dir.c file.c misc.c guile.c hash.c \
+ load.c main.c read.c remake.c rule.c implicit.c \
default.c variable.c expand.c function.c strcache.c \
vpath.c version.c vmsfunctions.c vmsify.c $(ARCHIVES_SRC) $(ALLOCASRC) \
- commands.h dep.h filedef.h job.h make.h rule.h variable.h
+ commands.h dep.h filedef.h job.h output.h makeint.h rule.h variable.h
.PHONY: all doc
@@ -111,39 +114,44 @@ make.exe: $(objs)
.PHONY: clean realclean
clean:
- $$ purge [...]
+ -purge [...]
-$(RM) make.exe;,*.obj;
-$(RM) [.glob]*.obj;
# Automatically generated dependencies.
-commands.obj: commands.c make.h dep.h commands.h filedef.h variable.h job.h
-job.obj: job.c vmsjobs.c make.h commands.h job.h filedef.h variable.h
-dir.obj: dir.c make.h
-file.obj: file.c make.h commands.h dep.h filedef.h variable.h
-misc.obj: misc.c make.h dep.h
-hash.obj: hash.c make.h hash.h
-strcache.obj: strcache.c make.h hash.h
-main.obj: main.c make.h commands.h dep.h filedef.h variable.h job.h
-read.obj: read.c make.h commands.h dep.h filedef.h variable.h
-remake.obj: remake.c make.h commands.h job.h dep.h filedef.h
-rule.obj: rule.c make.h commands.h dep.h filedef.h variable.h rule.h
-implicit.obj: implicit.c make.h rule.h dep.h filedef.h
-default.obj: default.c make.h rule.h dep.h filedef.h commands.h variable.h
-variable.obj: variable.c make.h commands.h variable.h dep.h filedef.h
-expand.obj: expand.c make.h commands.h filedef.h variable.h
-function.obj: function.c make.h variable.h dep.h commands.h job.h
-vpath.obj: vpath.c make.h filedef.h variable.h
+# makeint.h: config.h gnumake.h gettext.h
+# filedef.h: hash.h
+ar.obj: ar.c makeint.h filedef.h dep.h [.glob]fnmatch.h
+arscan.obj: arscan.c makeint.h
+commands.obj: commands.c makeint.h dep.h commands.h filedef.h variable.h job.h
+default.obj: default.c makeint.h rule.h dep.h job.h filedef.h commands.h variable.h
+dir.obj: dir.c makeint.h hash.h [.glob]glob.h
+expand.obj: expand.c makeint.h commands.h filedef.h job.h rule.h variable.h
+file.obj: file.c makeint.h commands.h dep.h filedef.h variable.h job.h debug.h
+function.obj: function.c makeint.h variable.h dep.h commands.h filedef.h debug.h job.h
+getopt.obj: getopt.c getopt.h config.h gettext.h
+getopt1.obj: getopt1.c getopt.h config.h
+guile.obj: guile.c makeint.h debug.h dep.h gmk-default.h
+hash.obj: hash.c makeint.h hash.h
+implicit.obj: implicit.c makeint.h rule.h dep.h filedef.h debug.h variable.h job.h commands.h
+job.obj: job.c vmsjobs.c makeint.h commands.h job.h filedef.h variable.h debug.h
+output.obj: output.c vmsjobs.c makeint.h output.h filedef.h debug.h
+load.obj: load.c makeint.h debug.h filedef.h variable.h
+main.obj: main.c makeint.h commands.h dep.h filedef.h variable.h job.h rule.h debug.h getopt.h
+misc.obj: misc.c makeint.h dep.h debug.h
+read.obj: read.c makeint.h commands.h dep.h filedef.h variable.h [.glob]glob.h debug.h rule.h job.h
+remake.obj: remake.c makeint.h commands.h job.h dep.h filedef.h variable.h debug.h
+remote-stub.obj: remote-stub.c makeint.h filedef.h job.h commands.h
+rule.obj: rule.c makeint.h commands.h dep.h filedef.h variable.h rule.h job.h
+signame.obj: signame.c makeint.h
+strcache.obj: strcache.c makeint.h hash.h
+variable.obj: variable.c makeint.h commands.h variable.h dep.h filedef.h job.h rule.h
version.obj: version.c config.h
-arscan.obj: arscan.c
-ar.obj: ar.c make.h filedef.h
-signame.obj: signame.c
-remote-stub.obj: remote-stub.c
-[.glob]glob.obj: [.glob]glob.c
-[.glob]fnmatch.obj: [.glob]fnmatch.c
-getopt.obj: getopt.c
-getopt1.obj: getopt1.c
-vmsfunctions.obj: vmsfunctions.c make.h vmsdir.h
-vmsify.obj: vmsify.c make.h
+vmsfunctions.obj: vmsfunctions.c makeint.h vmsdir.h debug.h job.h
+vmsify.obj: vmsify.c
+vpath.obj: vpath.c makeint.h filedef.h variable.h
+[.glob]fnmatch.obj: [.glob]fnmatch.c [.glob]fnmatch.h config.h
+[.glob]glob.obj: [.glob]glob.c [.glob]glob.h [.glob]fnmatch.h config.h
config.h: config.h-vms
$(CP) $< $@
diff --git a/make.h b/makeint.h
index 60ade4c..3e22296 100644
--- a/make.h
+++ b/makeint.h
@@ -1,7 +1,5 @@
/* Miscellaneous global declarations and portability cruft for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -18,7 +16,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* We use <config.h> instead of "config.h" so that a compilation
using -I. -I$srcdir will use ./config.h rather than $srcdir/config.h
- (which it would do because make.h was found in $srcdir). */
+ (which it would do because makeint.h was found in $srcdir). */
#include <config.h>
#undef HAVE_CONFIG_H
#define HAVE_CONFIG_H 1
@@ -43,6 +41,20 @@ char *alloca ();
# endif
#endif
+/* Disable assert() unless we're a maintainer.
+ Some asserts are compute-intensive. */
+#ifndef MAKE_MAINTAINER_MODE
+# define NDEBUG 1
+#endif
+
+/* Include the externally-visible content.
+ Be sure to use the local one, and not one installed on the system.
+ Define GMK_BUILDING_MAKE for proper selection of dllexport/dllimport
+ declarations for MS-Windows. */
+#ifdef WINDOWS32
+# define GMK_BUILDING_MAKE
+#endif
+#include "gnumake.h"
#ifdef CRAY
/* This must happen before #include <signal.h> so
@@ -60,13 +72,12 @@ char *alloca ();
#include <signal.h>
#include <stdio.h>
#include <ctype.h>
+
#ifdef HAVE_SYS_TIMEB_H
-/* SCO 3.2 "devsys 4.2" has a prototype for `ftime' in <time.h> that bombs
- unless <sys/timeb.h> has been included first. Does every system have a
- <sys/timeb.h>? If any does not, configure should check for it. */
+/* SCO 3.2 "devsys 4.2" has a prototype for 'ftime' in <time.h> that bombs
+ unless <sys/timeb.h> has been included first. */
# include <sys/timeb.h>
#endif
-
#if TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
@@ -91,7 +102,7 @@ extern int errno;
#ifdef HAVE_UNISTD_H
# include <unistd.h>
/* Ultrix's unistd.h always defines _POSIX_VERSION, but you only get
- POSIX.1 behavior with `cc -YPOSIX', which predefines POSIX itself! */
+ POSIX.1 behavior with 'cc -YPOSIX', which predefines POSIX itself! */
# if defined (_POSIX_VERSION) && !defined (ultrix) && !defined (VMS)
# define POSIX 1
# endif
@@ -148,8 +159,13 @@ unsigned int get_path_max (void);
# define CHAR_BIT 8
#endif
-/* Nonzero if the integer type T is signed. */
-#define INTEGER_TYPE_SIGNED(t) ((t) -1 < 0)
+#ifndef USHRT_MAX
+# define USHRT_MAX 65535
+#endif
+
+/* Nonzero if the integer type T is signed.
+ Use <= to avoid GCC warnings about always-false expressions. */
+#define INTEGER_TYPE_SIGNED(t) ((t) -1 <= 0)
/* The minimum and maximum values for the integer type T.
Use ~ (t) 0, not -1, for portability to 1's complement hosts. */
@@ -157,6 +173,9 @@ unsigned int get_path_max (void);
(! INTEGER_TYPE_SIGNED (t) ? (t) 0 : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))
#define INTEGER_TYPE_MAXIMUM(t) (~ (t) 0 - INTEGER_TYPE_MINIMUM (t))
+/* The maximum number of digits needed to represent the largest integer. */
+#define INTEGER_LENGTH sizeof("18446744073709551616")
+
#ifndef CHAR_MAX
# define CHAR_MAX INTEGER_TYPE_MAXIMUM (char)
#endif
@@ -178,6 +197,7 @@ unsigned int get_path_max (void);
#endif
#ifdef VMS
+# include <fcntl.h>
# include <types.h>
# include <unixlib.h>
# include <unixio.h>
@@ -191,7 +211,7 @@ unsigned int get_path_max (void);
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
# define __attribute__(x)
# endif
-/* The __-protected variants of `format' and `printf' attributes
+/* The __-protected variants of 'format' and 'printf' attributes
are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
# define __format__ format
@@ -249,6 +269,9 @@ char *strerror (int errnum);
#if HAVE_INTTYPES_H
# include <inttypes.h>
#endif
+#if HAVE_STDINT_H
+# include <stdint.h>
+#endif
#define FILE_TIMESTAMP uintmax_t
#if !defined(HAVE_STRSIGNAL)
@@ -262,7 +285,7 @@ char *strsignal (int signum);
- It's typically faster.
POSIX 1003.2-1992 section 2.5.2.1 page 50 lines 1556-1558 says that
only '0' through '9' are digits. Prefer ISDIGIT to isdigit() unless
- it's important to use the locale's definition of `digit' even when the
+ it's important to use the locale's definition of 'digit' even when the
host does not conform to POSIX. */
#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9)
@@ -305,11 +328,15 @@ char *strsignal (int signum);
#define N_(msgid) gettext_noop (msgid)
#define S_(msg1,msg2,num) ngettext (msg1,msg2,num)
-/* Handle other OSs. */
-#ifndef PATH_SEPARATOR_CHAR
-# if defined(HAVE_DOS_PATHS)
-# define PATH_SEPARATOR_CHAR ';'
-# elif defined(VMS)
+/* Handle other OSs.
+ To overcome an issue parsing paths in a DOS/Windows environment when
+ built in a unix based environment, override the PATH_SEPARATOR_CHAR
+ definition unless being built for Cygwin. */
+#if defined(HAVE_DOS_PATHS) && !defined(__CYGWIN__)
+# undef PATH_SEPARATOR_CHAR
+# define PATH_SEPARATOR_CHAR ';'
+#elif !defined(PATH_SEPARATOR_CHAR)
+# if defined (VMS)
# define PATH_SEPARATOR_CHAR ','
# else
# define PATH_SEPARATOR_CHAR ':'
@@ -326,10 +353,17 @@ char *strsignal (int signum);
# include <malloc.h>
# define pipe(_p) _pipe((_p), 512, O_BINARY)
# define kill(_pid,_sig) w32_kill((_pid),(_sig))
+/* MSVC doesn't have ftruncate. */
+# ifdef _MSC_VER
+# define ftruncate(_fd,_len) _chsize(_fd,_len)
+# endif
+/* MinGW64 doesn't have _S_ISDIR. */
+# ifndef _S_ISDIR
+# define _S_ISDIR(m) S_ISDIR(m)
+# endif
void sync_Path_environment (void);
int w32_kill (pid_t pid, int sig);
-char *end_of_token_w32 (const char *s, char stopchar);
int find_and_set_default_shell (const char *token);
/* indicates whether or not we have Bourne shell */
@@ -337,54 +371,72 @@ extern int no_default_sh_exe;
/* is default_shell unixy? */
extern int unixy_shell;
+
+/* We don't have a preferred fixed value for LOCALEDIR. */
+# ifndef LOCALEDIR
+# define LOCALEDIR NULL
+# endif
+
+/* Include only the minimal stuff from windows.h. */
+#define WIN32_LEAN_AND_MEAN
#endif /* WINDOWS32 */
+#define ANY_SET(_v,_m) (((_v)&(_m)) != 0)
+#define NONE_SET(_v,_m) (! ANY_SET ((_v),(_m)))
+
+#define MAP_NUL 0x0001
+#define MAP_BLANK 0x0002
+#define MAP_SPACE 0x0004
+#define MAP_COMMENT 0x0008
+#define MAP_SEMI 0x0010
+#define MAP_EQUALS 0x0020
+#define MAP_COLON 0x0040
+#define MAP_PERCENT 0x0080
+#define MAP_PIPE 0x0100
+#define MAP_DOT 0x0200
+#define MAP_COMMA 0x0400
+
+/* These are the valid characters for a user-defined function. */
+#define MAP_USERFUNC 0x2000
+/* This means not only a '$', but skip the variable reference. */
+#define MAP_VARIABLE 0x4000
+/* The set of characters which are path separators is OS-specific. */
+#define MAP_PATHSEP 0x8000
+
+#ifdef VMS
+# define MAP_VMSCOMMA MAP_COMMA
+#else
+# define MAP_VMSCOMMA 0x0000
+#endif
+
+#define STOP_SET(_v,_m) ANY_SET (stopchar_map[(int)(_v)],(_m))
+
#if defined(HAVE_SYS_RESOURCE_H) && defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT)
# define SET_STACK_SIZE
#endif
#ifdef SET_STACK_SIZE
# include <sys/resource.h>
-struct rlimit stack_limit;
+extern struct rlimit stack_limit;
#endif
-struct floc
- {
- const char *filenm;
- unsigned long lineno;
- };
-#define NILF ((struct floc *)0)
+#define NILF ((gmk_floc *)0)
-#define STRING_SIZE_TUPLE(_s) (_s), (sizeof (_s)-1)
+#define CSTRLEN(_s) (sizeof (_s)-1)
+#define STRING_SIZE_TUPLE(_s) (_s), CSTRLEN(_s)
-/* We have to have stdarg.h or varargs.h AND v*printf or doprnt to use
- variadic versions of these functions. */
-
-#if HAVE_STDARG_H || HAVE_VARARGS_H
-# if HAVE_VPRINTF || HAVE_DOPRNT
-# define USE_VARIADIC 1
-# endif
-#endif
-
-#if HAVE_ANSI_COMPILER && USE_VARIADIC && HAVE_STDARG_H
const char *concat (unsigned int, ...);
void message (int prefix, const char *fmt, ...)
__attribute__ ((__format__ (__printf__, 2, 3)));
-void error (const struct floc *flocp, const char *fmt, ...)
+void error (const gmk_floc *flocp, const char *fmt, ...)
__attribute__ ((__format__ (__printf__, 2, 3)));
-void fatal (const struct floc *flocp, const char *fmt, ...)
+void fatal (const gmk_floc *flocp, const char *fmt, ...)
__attribute__ ((noreturn, __format__ (__printf__, 2, 3)));
-#else
-const char *concat ();
-void message ();
-void error ();
-void fatal ();
-#endif
void die (int) __attribute__ ((noreturn));
-void log_working_directory (int);
void pfatal_with_name (const char *) __attribute__ ((noreturn));
void perror_with_name (const char *, const char *);
+#define xstrlen(_s) ((_s)==NULL ? 0 : strlen (_s))
void *xmalloc (unsigned int);
void *xcalloc (unsigned int);
void *xrealloc (void *, unsigned int);
@@ -399,7 +451,6 @@ int alpha_compare (const void *, const void *);
void print_spaces (unsigned int);
char *find_percent (char *);
const char *find_percent_cached (const char **);
-FILE *open_tmpfile (char **, const char *);
#ifndef NO_ARCHIVES
int ar_name (const char *);
@@ -408,9 +459,9 @@ int ar_touch (const char *);
time_t ar_member_date (const char *);
typedef long int (*ar_member_func_t) (int desc, const char *mem, int truncated,
- long int hdrpos, long int datapos,
- long int size, long int date, int uid,
- int gid, int mode, const void *arg);
+ long int hdrpos, long int datapos,
+ long int size, long int date, int uid,
+ int gid, int mode, const void *arg);
long int ar_scan (const char *archive, ar_member_func_t function, const void *arg);
int ar_name_equal (const char *name, const char *mem, int truncated);
@@ -427,6 +478,7 @@ const char *dir_name (const char *);
void hash_init_directories (void);
void define_default_variables (void);
+void undefine_default_variables (void);
void set_default_suffixes (void);
void install_default_suffix_rules (void);
void install_default_implicit_rules (void);
@@ -443,8 +495,6 @@ void user_access (void);
void make_access (void);
void child_access (void);
-void close_stdout (void);
-
char *strip_whitespace (const char **begpp, const char **endpp);
/* String caching */
@@ -452,13 +502,19 @@ void strcache_init (void);
void strcache_print_stats (const char *prefix);
int strcache_iscached (const char *str);
const char *strcache_add (const char *str);
-const char *strcache_add_len (const char *str, int len);
-int strcache_setbufsize (int size);
+const char *strcache_add_len (const char *str, unsigned int len);
+int strcache_setbufsize (unsigned int size);
-#ifdef HAVE_VFORK_H
-# include <vfork.h>
+/* Guile support */
+#ifdef HAVE_GUILE
+int guile_gmake_setup (const gmk_floc *flocp);
#endif
+/* Loadable object support. Sets to the strcached name of the loaded file. */
+typedef int (*load_func_t)(const gmk_floc *flocp);
+int load_file (const gmk_floc *flocp, const char **filename, int noerror);
+void unload_file (const char *name);
+
/* We omit these declarations on non-POSIX systems which define _POSIX_VERSION,
because such systems often declare them in header files anyway. */
@@ -502,18 +558,25 @@ int strncasecmp (const char *s1, const char *s2, int n);
# endif
#endif
-extern const struct floc *reading_file;
-extern const struct floc **expanding_var;
+#define OUTPUT_SYNC_NONE 0
+#define OUTPUT_SYNC_LINE 1
+#define OUTPUT_SYNC_TARGET 2
+#define OUTPUT_SYNC_RECURSE 3
+
+extern const gmk_floc *reading_file;
+extern const gmk_floc **expanding_var;
extern char **environ;
+extern unsigned short stopchar_map[];
+
extern int just_print_flag, silent_flag, ignore_errors_flag, keep_going_flag;
extern int print_data_base_flag, question_flag, touch_flag, always_make_flag;
extern int env_overrides, no_builtin_rules_flag, no_builtin_variables_flag;
extern int print_version_flag, print_directory_flag, check_symlink_flag;
-extern int warn_undefined_variables_flag, posix_pedantic, not_parallel;
-extern int second_expansion, clock_skew_detected, rebuilding_makefiles;
-extern int one_shell;
+extern int warn_undefined_variables_flag, trace_flag, posix_pedantic;
+extern int not_parallel, second_expansion, clock_skew_detected;
+extern int rebuilding_makefiles, one_shell, output_sync, verify_flag;
/* can we run commands via 'sh -c xxx' or must we use batch files? */
extern int batch_mode_shell;
diff --git a/misc.c b/misc.c
index 7a6f773..bc54ce6 100644
--- a/misc.c
+++ b/misc.c
@@ -1,7 +1,5 @@
/* Miscellaneous generic support functions for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,42 +14,21 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
+#include "filedef.h"
#include "dep.h"
#include "debug.h"
-/* Variadic functions. We go through contortions to allow proper function
- prototypes for both ANSI and pre-ANSI C compilers, and also for those
- which support stdarg.h vs. varargs.h, and finally those which have
- vfprintf(), etc. and those who have _doprnt... or nothing.
-
- This fancy stuff all came from GNU fileutils, except for the VA_PRINTF and
- VA_END macros used here since we have multiple print functions. */
-
-#if USE_VARIADIC
-# if HAVE_STDARG_H
-# include <stdarg.h>
-# define VA_START(args, lastarg) va_start(args, lastarg)
-# else
-# include <varargs.h>
-# define VA_START(args, lastarg) va_start(args)
-# endif
-# if HAVE_VPRINTF
-# define VA_PRINTF(fp, lastarg, args) vfprintf((fp), (lastarg), (args))
-# else
-# define VA_PRINTF(fp, lastarg, args) _doprnt((lastarg), (args), (fp))
-# endif
-# define VA_END(args) va_end(args)
+/* GNU make no longer supports pre-ANSI89 environments. */
+
+#include <stdarg.h>
+
+#ifdef HAVE_FCNTL_H
+# include <fcntl.h>
#else
-/* We can't use any variadic interface! */
-# define va_alist a1, a2, a3, a4, a5, a6, a7, a8
-# define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8;
-# define VA_START(args, lastarg)
-# define VA_PRINTF(fp, lastarg, args) fprintf((fp), (lastarg), va_alist)
-# define VA_END(args)
+# include <sys/file.h>
#endif
-
/* Compare strings *S1 and *S2.
Return negative if the first is less, positive if it is greater,
zero if they are equal. */
@@ -74,9 +51,7 @@ alpha_compare (const void *v1, const void *v2)
void
collapse_continuations (char *line)
{
- register char *in, *out, *p;
- register int backslash;
- register unsigned int bs_write;
+ char *in, *out, *p;
in = strchr (line, '\n');
if (in == 0)
@@ -89,62 +64,64 @@ collapse_continuations (char *line)
while (*in != '\0')
{
/* BS_WRITE gets the number of quoted backslashes at
- the end just before IN, and BACKSLASH gets nonzero
- if the next character is quoted. */
- backslash = 0;
- bs_write = 0;
+ the end just before IN, and BACKSLASH gets nonzero
+ if the next character is quoted. */
+ unsigned int backslash = 0;
+ unsigned int bs_write = 0;
for (p = in - 1; p >= line && *p == '\\'; --p)
- {
- if (backslash)
- ++bs_write;
- backslash = !backslash;
+ {
+ if (backslash)
+ ++bs_write;
+ backslash = !backslash;
- /* It should be impossible to go back this far without exiting,
- but if we do, we can't get the right answer. */
- if (in == out - 1)
- abort ();
- }
+ /* It should be impossible to go back this far without exiting,
+ but if we do, we can't get the right answer. */
+ if (in == out - 1)
+ abort ();
+ }
/* Output the appropriate number of backslashes. */
while (bs_write-- > 0)
- *out++ = '\\';
+ *out++ = '\\';
/* Skip the newline. */
++in;
- /* If the newline is escaped, discard following whitespace leaving just
- one space. POSIX requires that each backslash/newline/following
- whitespace sequence be reduced to a single space. */
if (backslash)
- {
- in = next_token (in);
- /* Removing this loop will fix Savannah bug #16670: do we want to? */
- while (out > line && isblank ((unsigned char)out[-1]))
- --out;
- *out++ = ' ';
- }
+ {
+ /* Backslash/newline handling:
+ In traditional GNU make all trailing whitespace, consecutive
+ backslash/newlines, and any leading whitespace on the next line
+ is reduced to a single space.
+ In POSIX, each backslash/newline and is replaced by a space. */
+ in = next_token (in);
+ if (! posix_pedantic)
+ while (out > line && isblank ((unsigned char)out[-1]))
+ --out;
+ *out++ = ' ';
+ }
else
- /* If the newline isn't quoted, put it in the output. */
- *out++ = '\n';
+ /* If the newline isn't quoted, put it in the output. */
+ *out++ = '\n';
/* Now copy the following line to the output.
- Stop when we find backslashes followed by a newline. */
+ Stop when we find backslashes followed by a newline. */
while (*in != '\0')
- if (*in == '\\')
- {
- p = in + 1;
- while (*p == '\\')
- ++p;
- if (*p == '\n')
- {
- in = p;
- break;
- }
- while (in < p)
- *out++ = *in++;
- }
- else
- *out++ = *in++;
+ if (*in == '\\')
+ {
+ p = in + 1;
+ while (*p == '\\')
+ ++p;
+ if (*p == '\n')
+ {
+ in = p;
+ break;
+ }
+ while (in < p)
+ *out++ = *in++;
+ }
+ else
+ *out++ = *in++;
}
*out = '\0';
@@ -164,28 +141,19 @@ print_spaces (unsigned int n)
This string lives in static, re-used memory. */
const char *
-#if HAVE_ANSI_COMPILER && USE_VARIADIC && HAVE_STDARG_H
concat (unsigned int num, ...)
-#else
-concat (num, va_alist)
- unsigned int num;
- va_dcl
-#endif
{
static unsigned int rlen = 0;
static char *result = NULL;
- int ri = 0;
-
-#if USE_VARIADIC
+ unsigned int ri = 0;
va_list args;
-#endif
- VA_START (args, num);
+ va_start (args, num);
while (num-- > 0)
{
const char *s = va_arg (args, const char *);
- unsigned int l = s ? strlen (s) : 0;
+ unsigned int l = xstrlen (s);
if (l == 0)
continue;
@@ -200,7 +168,7 @@ concat (num, va_alist)
ri += l;
}
- VA_END (args);
+ va_end (args);
/* Get some more memory if we don't have enough space for the
terminating '\0'. */
@@ -215,113 +183,9 @@ concat (num, va_alist)
return result;
}
-/* Print a message on stdout. */
-
-void
-#if HAVE_ANSI_COMPILER && USE_VARIADIC && HAVE_STDARG_H
-message (int prefix, const char *fmt, ...)
-#else
-message (prefix, fmt, va_alist)
- int prefix;
- const char *fmt;
- va_dcl
-#endif
-{
-#if USE_VARIADIC
- va_list args;
-#endif
-
- log_working_directory (1);
-
- if (fmt != 0)
- {
- if (prefix)
- {
- if (makelevel == 0)
- printf ("%s: ", program);
- else
- printf ("%s[%u]: ", program, makelevel);
- }
- VA_START (args, fmt);
- VA_PRINTF (stdout, fmt, args);
- VA_END (args);
- putchar ('\n');
- }
-
- fflush (stdout);
-}
-
-/* Print an error message. */
-
-void
-#if HAVE_ANSI_COMPILER && USE_VARIADIC && HAVE_STDARG_H
-error (const struct floc *flocp, const char *fmt, ...)
-#else
-error (flocp, fmt, va_alist)
- const struct floc *flocp;
- const char *fmt;
- va_dcl
-#endif
-{
-#if USE_VARIADIC
- va_list args;
-#endif
-
- log_working_directory (1);
-
- if (flocp && flocp->filenm)
- fprintf (stderr, "%s:%lu: ", flocp->filenm, flocp->lineno);
- else if (makelevel == 0)
- fprintf (stderr, "%s: ", program);
- else
- fprintf (stderr, "%s[%u]: ", program, makelevel);
-
- VA_START(args, fmt);
- VA_PRINTF (stderr, fmt, args);
- VA_END (args);
-
- putc ('\n', stderr);
- fflush (stderr);
-}
-
-/* Print an error message and exit. */
-
-void
-#if HAVE_ANSI_COMPILER && USE_VARIADIC && HAVE_STDARG_H
-fatal (const struct floc *flocp, const char *fmt, ...)
-#else
-fatal (flocp, fmt, va_alist)
- const struct floc *flocp;
- const char *fmt;
- va_dcl
-#endif
-{
-#if USE_VARIADIC
- va_list args;
-#endif
-
- log_working_directory (1);
-
- if (flocp && flocp->filenm)
- fprintf (stderr, "%s:%lu: *** ", flocp->filenm, flocp->lineno);
- else if (makelevel == 0)
- fprintf (stderr, "%s: *** ", program);
- else
- fprintf (stderr, "%s[%u]: *** ", program, makelevel);
-
- VA_START(args, fmt);
- VA_PRINTF (stderr, fmt, args);
- VA_END (args);
-
- fputs (_(". Stop.\n"), stderr);
-
- die (2);
-}
#ifndef HAVE_STRERROR
-
-#undef strerror
-
+#undef strerror
char *
strerror (int errnum)
{
@@ -338,24 +202,6 @@ strerror (int errnum)
return buf;
}
#endif
-
-/* Print an error message from errno. */
-
-void
-perror_with_name (const char *str, const char *name)
-{
- error (NILF, _("%s%s: %s"), str, name, strerror (errno));
-}
-
-/* Print an error message from errno and exit. */
-
-void
-pfatal_with_name (const char *name)
-{
- fatal (NILF, _("%s: %s"), name, strerror (errno));
-
- /* NOTREACHED */
-}
/* Like malloc but get fatal error if memory is exhausted. */
/* Don't bother if we're using dmalloc; it provides these for us. */
@@ -468,41 +314,11 @@ lindex (const char *s, const char *limit, int c)
char *
end_of_token (const char *s)
{
- while (*s != '\0' && !isblank ((unsigned char)*s))
+ while (! STOP_SET (*s, MAP_BLANK|MAP_NUL))
++s;
return (char *)s;
}
-#ifdef WINDOWS32
-/*
- * Same as end_of_token, but take into account a stop character
- */
-char *
-end_of_token_w32 (const char *s, char stopchar)
-{
- const char *p = s;
- int backslash = 0;
-
- while (*p != '\0' && *p != stopchar
- && (backslash || !isblank ((unsigned char)*p)))
- {
- if (*p++ == '\\')
- {
- backslash = !backslash;
- while (*p == '\\')
- {
- backslash = !backslash;
- ++p;
- }
- }
- else
- backslash = 0;
- }
-
- return (char *)p;
-}
-#endif
-
/* Return the address of the first nonwhitespace or null in the string S. */
char *
@@ -533,7 +349,7 @@ find_next_token (const char **ptr, unsigned int *lengthptr)
}
-/* Copy a chain of `struct dep'. For 2nd expansion deps, dup the name. */
+/* Copy a chain of 'struct dep'. For 2nd expansion deps, dup the name. */
struct dep *
copy_dep_chain (const struct dep *d)
@@ -551,9 +367,9 @@ copy_dep_chain (const struct dep *d)
c->next = 0;
if (firstnew == 0)
- firstnew = lastnew = c;
+ firstnew = lastnew = c;
else
- lastnew = lastnew->next = c;
+ lastnew = lastnew->next = c;
d = d->next;
}
@@ -590,7 +406,6 @@ free_ns_chain (struct nameseq *ns)
#if !HAVE_STRCASECMP && !HAVE_STRICMP && !HAVE_STRCMPI
-
/* If we don't have strcasecmp() (from POSIX), or anything that can substitute
for it, define our own version. */
@@ -616,7 +431,6 @@ strcasecmp (const char *s1, const char *s2)
#endif
#if !HAVE_STRNCASECMP && !HAVE_STRNICMP && !HAVE_STRNCMPI
-
/* If we don't have strncasecmp() (from POSIX), or anything that can
substitute for it, define our own version. */
@@ -643,7 +457,7 @@ strncasecmp (const char *s1, const char *s2, int n)
}
#endif
-#ifdef GETLOADAVG_PRIVILEGED
+#ifdef GETLOADAVG_PRIVILEGED
#ifdef POSIX
@@ -656,7 +470,7 @@ strncasecmp (const char *s1, const char *s2, int n)
#undef HAVE_SETREUID
#undef HAVE_SETREGID
-#else /* Not POSIX. */
+#else /* Not POSIX. */
/* Some POSIX.1 systems have the seteuid and setegid functions. In a
POSIX-like system, they are the best thing to use. However, some
@@ -666,30 +480,30 @@ strncasecmp (const char *s1, const char *s2, int n)
#undef HAVE_SETEUID
#undef HAVE_SETEGID
-#endif /* POSIX. */
+#endif /* POSIX. */
-#ifndef HAVE_UNISTD_H
+#ifndef HAVE_UNISTD_H
extern int getuid (), getgid (), geteuid (), getegid ();
extern int setuid (), setgid ();
#ifdef HAVE_SETEUID
extern int seteuid ();
#else
-#ifdef HAVE_SETREUID
+#ifdef HAVE_SETREUID
extern int setreuid ();
-#endif /* Have setreuid. */
-#endif /* Have seteuid. */
+#endif /* Have setreuid. */
+#endif /* Have seteuid. */
#ifdef HAVE_SETEGID
extern int setegid ();
#else
-#ifdef HAVE_SETREGID
+#ifdef HAVE_SETREGID
extern int setregid ();
-#endif /* Have setregid. */
-#endif /* Have setegid. */
-#endif /* No <unistd.h>. */
+#endif /* Have setregid. */
+#endif /* Have setegid. */
+#endif /* No <unistd.h>. */
/* Keep track of the user and group IDs for user- and make- access. */
static int user_uid = -1, user_gid = -1, make_uid = -1, make_gid = -1;
-#define access_inited (user_uid != -1)
+#define access_inited (user_uid != -1)
static enum { make, user } current_access;
@@ -706,7 +520,7 @@ log_access (const char *flavor)
run in a child fork whose stdout is piped. */
fprintf (stderr, _("%s: user %lu (real %lu), group %lu (real %lu)\n"),
- flavor, (unsigned long) geteuid (), (unsigned long) getuid (),
+ flavor, (unsigned long) geteuid (), (unsigned long) getuid (),
(unsigned long) getegid (), (unsigned long) getgid ());
fflush (stderr);
}
@@ -732,14 +546,14 @@ init_access (void)
#endif
}
-#endif /* GETLOADAVG_PRIVILEGED */
+#endif /* GETLOADAVG_PRIVILEGED */
/* Give the process appropriate permissions for access to
user data (i.e., to stat files, or to spawn a child process). */
void
user_access (void)
{
-#ifdef GETLOADAVG_PRIVILEGED
+#ifdef GETLOADAVG_PRIVILEGED
if (!access_inited)
init_access ();
@@ -752,7 +566,7 @@ user_access (void)
We now want to set the effective user and group IDs to the real IDs,
which are the IDs of the process that exec'd make. */
-#ifdef HAVE_SETEUID
+#ifdef HAVE_SETEUID
/* Modern systems have the seteuid/setegid calls which set only the
effective IDs, which is ideal. */
@@ -760,9 +574,9 @@ user_access (void)
if (seteuid (user_uid) < 0)
pfatal_with_name ("user_access: seteuid");
-#else /* Not HAVE_SETEUID. */
+#else /* Not HAVE_SETEUID. */
-#ifndef HAVE_SETREUID
+#ifndef HAVE_SETREUID
/* System V has only the setuid/setgid calls to set user/group IDs.
There is an effective ID, which can be set by setuid/setgid.
@@ -775,7 +589,7 @@ user_access (void)
if (setuid (user_uid) < 0)
pfatal_with_name ("user_access: setuid");
-#else /* HAVE_SETREUID. */
+#else /* HAVE_SETREUID. */
/* In 4BSD, the setreuid/setregid calls set both the real and effective IDs.
They may be set to themselves or each other. So you have two alternatives
@@ -787,14 +601,14 @@ user_access (void)
if (setreuid (make_uid, user_uid) < 0)
pfatal_with_name ("user_access: setreuid");
-#endif /* Not HAVE_SETREUID. */
-#endif /* HAVE_SETEUID. */
+#endif /* Not HAVE_SETREUID. */
+#endif /* HAVE_SETEUID. */
-#ifdef HAVE_SETEGID
+#ifdef HAVE_SETEGID
if (setegid (user_gid) < 0)
pfatal_with_name ("user_access: setegid");
#else
-#ifndef HAVE_SETREGID
+#ifndef HAVE_SETREGID
if (setgid (user_gid) < 0)
pfatal_with_name ("user_access: setgid");
#else
@@ -807,7 +621,7 @@ user_access (void)
log_access (_("User access"));
-#endif /* GETLOADAVG_PRIVILEGED */
+#endif /* GETLOADAVG_PRIVILEGED */
}
/* Give the process appropriate permissions for access to
@@ -815,7 +629,7 @@ user_access (void)
void
make_access (void)
{
-#ifdef GETLOADAVG_PRIVILEGED
+#ifdef GETLOADAVG_PRIVILEGED
if (!access_inited)
init_access ();
@@ -825,11 +639,11 @@ make_access (void)
/* See comments in user_access, above. */
-#ifdef HAVE_SETEUID
+#ifdef HAVE_SETEUID
if (seteuid (make_uid) < 0)
pfatal_with_name ("make_access: seteuid");
#else
-#ifndef HAVE_SETREUID
+#ifndef HAVE_SETREUID
if (setuid (make_uid) < 0)
pfatal_with_name ("make_access: setuid");
#else
@@ -838,11 +652,11 @@ make_access (void)
#endif
#endif
-#ifdef HAVE_SETEGID
+#ifdef HAVE_SETEGID
if (setegid (make_gid) < 0)
pfatal_with_name ("make_access: setegid");
#else
-#ifndef HAVE_SETREGID
+#ifndef HAVE_SETREGID
if (setgid (make_gid) < 0)
pfatal_with_name ("make_access: setgid");
#else
@@ -855,7 +669,7 @@ make_access (void)
log_access (_("Make access"));
-#endif /* GETLOADAVG_PRIVILEGED */
+#endif /* GETLOADAVG_PRIVILEGED */
}
/* Give the process appropriate permissions for a child process.
@@ -863,7 +677,7 @@ make_access (void)
void
child_access (void)
{
-#ifdef GETLOADAVG_PRIVILEGED
+#ifdef GETLOADAVG_PRIVILEGED
if (!access_inited)
abort ();
@@ -871,7 +685,7 @@ child_access (void)
/* Set both the real and effective UID and GID to the user's.
They cannot be changed back to make's. */
-#ifndef HAVE_SETREUID
+#ifndef HAVE_SETREUID
if (setuid (user_uid) < 0)
pfatal_with_name ("child_access: setuid");
#else
@@ -879,7 +693,7 @@ child_access (void)
pfatal_with_name ("child_access: setreuid");
#endif
-#ifndef HAVE_SETREGID
+#ifndef HAVE_SETREGID
if (setgid (user_gid) < 0)
pfatal_with_name ("child_access: setgid");
#else
@@ -889,9 +703,9 @@ child_access (void)
log_access (_("Child access"));
-#endif /* GETLOADAVG_PRIVILEGED */
+#endif /* GETLOADAVG_PRIVILEGED */
}
-
+
#ifdef NEED_GET_PATH_MAX
unsigned int
get_path_max (void)
@@ -902,58 +716,11 @@ get_path_max (void)
{
long int x = pathconf ("/", _PC_PATH_MAX);
if (x > 0)
- value = x;
+ value = x;
else
- return MAXPATHLEN;
+ return MAXPATHLEN;
}
return value;
}
#endif
-
-
-/* This code is stolen from gnulib.
- If/when we abandon the requirement to work with K&R compilers, we can
- remove this (and perhaps other parts of GNU make!) and migrate to using
- gnulib directly.
-
- This is called only through atexit(), which means die() has already been
- invoked. So, call exit() here directly. Apparently that works...?
-*/
-
-/* Close standard output, exiting with status 'exit_failure' on failure.
- If a program writes *anything* to stdout, that program should close
- stdout and make sure that it succeeds before exiting. Otherwise,
- suppose that you go to the extreme of checking the return status
- of every function that does an explicit write to stdout. The last
- printf can succeed in writing to the internal stream buffer, and yet
- the fclose(stdout) could still fail (due e.g., to a disk full error)
- when it tries to write out that buffered data. Thus, you would be
- left with an incomplete output file and the offending program would
- exit successfully. Even calling fflush is not always sufficient,
- since some file systems (NFS and CODA) buffer written/flushed data
- until an actual close call.
-
- Besides, it's wasteful to check the return value from every call
- that writes to stdout -- just let the internal stream state record
- the failure. That's what the ferror test is checking below.
-
- It's important to detect such failures and exit nonzero because many
- tools (most notably `make' and other build-management systems) depend
- on being able to detect failure in other tools via their exit status. */
-
-void
-close_stdout (void)
-{
- int prev_fail = ferror (stdout);
- int fclose_fail = fclose (stdout);
-
- if (prev_fail || fclose_fail)
- {
- if (fclose_fail)
- error (NILF, _("write error: %s"), strerror (errno));
- else
- error (NILF, _("write error"));
- exit (EXIT_FAILURE);
- }
-}
diff --git a/output.c b/output.c
new file mode 100644
index 0000000..fa757b0
--- /dev/null
+++ b/output.c
@@ -0,0 +1,762 @@
+/* Output to stdout / stderr for GNU make
+Copyright (C) 2013 Free Software Foundation, Inc.
+This file is part of GNU Make.
+
+GNU Make is free software; you can redistribute it and/or modify it under the
+terms of the GNU General Public License as published by the Free Software
+Foundation; either version 3 of the License, or (at your option) any later
+version.
+
+GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with
+this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "makeint.h"
+#include "job.h"
+
+/* GNU make no longer supports pre-ANSI89 environments. */
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdarg.h>
+
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+#ifdef HAVE_FCNTL_H
+# include <fcntl.h>
+#else
+# include <sys/file.h>
+#endif
+
+#ifdef WINDOWS32
+# include <windows.h>
+# include <io.h>
+# include "sub_proc.h"
+#endif /* WINDOWS32 */
+
+struct output *output_context = NULL;
+unsigned int stdio_traced = 0;
+
+#define OUTPUT_NONE (-1)
+
+#define OUTPUT_ISSET(_out) ((_out)->out >= 0 || (_out)->err >= 0)
+
+#ifdef HAVE_FCNTL
+# define STREAM_OK(_s) ((fcntl (fileno (_s), F_GETFD) != -1) || (errno != EBADF))
+#else
+# define STREAM_OK(_s) 1
+#endif
+
+/* I really want to move to gnulib. However, this is a big undertaking
+ especially for non-UNIX platforms: how to get bootstrapping to work, etc.
+ I don't want to take the time to do it right now. Use a hack to get a
+ useful version of vsnprintf() for Windows. */
+#ifdef __VMS
+# define va_copy(_d, _s) ((_d) = (_s))
+#endif
+#ifdef _MSC_VER
+# define va_copy(_d, _s) ((_d) = (_s))
+# define snprintf msc_vsnprintf
+static int
+msc_vsnprintf (char *str, size_t size, const char *format, va_list ap)
+{
+ int len = -1;
+
+ if (size > 0)
+ len = _vsnprintf_s (str, size, _TRUNCATE, format, ap);
+ if (len == -1)
+ len = _vscprintf (format, ap);
+
+ return len;
+}
+#endif
+
+/* Write a string to the current STDOUT or STDERR. */
+static void
+_outputs (struct output *out, int is_err, const char *msg)
+{
+ if (! out || ! out->syncout)
+ {
+ FILE *f = is_err ? stderr : stdout;
+ fputs (msg, f);
+ fflush (f);
+ }
+ else
+ {
+ int fd = is_err ? out->err : out->out;
+ int len = strlen (msg);
+ int r;
+
+ EINTRLOOP (r, lseek (fd, 0, SEEK_END));
+ while (1)
+ {
+ EINTRLOOP (r, write (fd, msg, len));
+ if (r == len || r <= 0)
+ break;
+ len -= r;
+ msg += r;
+ }
+ }
+}
+
+/* Write a message indicating that we've just entered or
+ left (according to ENTERING) the current directory. */
+
+static int
+log_working_directory (int entering)
+{
+ static char *buf = NULL;
+ static unsigned int len = 0;
+ unsigned int need;
+ const char *fmt;
+ char *p;
+
+ /* Get enough space for the longest possible output. */
+ need = strlen (program) + INTEGER_LENGTH + 2 + 1;
+ if (starting_directory)
+ need += strlen (starting_directory);
+
+ /* Use entire sentences to give the translators a fighting chance. */
+ if (makelevel == 0)
+ if (starting_directory == 0)
+ if (entering)
+ fmt = _("%s: Entering an unknown directory\n");
+ else
+ fmt = _("%s: Leaving an unknown directory\n");
+ else
+ if (entering)
+ fmt = _("%s: Entering directory '%s'\n");
+ else
+ fmt = _("%s: Leaving directory '%s'\n");
+ else
+ if (starting_directory == 0)
+ if (entering)
+ fmt = _("%s[%u]: Entering an unknown directory\n");
+ else
+ fmt = _("%s[%u]: Leaving an unknown directory\n");
+ else
+ if (entering)
+ fmt = _("%s[%u]: Entering directory '%s'\n");
+ else
+ fmt = _("%s[%u]: Leaving directory '%s'\n");
+
+ need += strlen (fmt);
+
+ if (need > len)
+ {
+ buf = xrealloc (buf, need);
+ len = need;
+ }
+
+ p = buf;
+ if (print_data_base_flag)
+ {
+ *(p++) = '#';
+ *(p++) = ' ';
+ }
+
+ if (makelevel == 0)
+ if (starting_directory == 0)
+ sprintf (p, fmt , program);
+ else
+ sprintf (p, fmt, program, starting_directory);
+ else if (starting_directory == 0)
+ sprintf (p, fmt, program, makelevel);
+ else
+ sprintf (p, fmt, program, makelevel, starting_directory);
+
+ _outputs (NULL, 0, buf);
+
+ return 1;
+}
+
+/* Set a file descriptor to be in O_APPEND mode.
+ If it fails, just ignore it. */
+
+static void
+set_append_mode (int fd)
+{
+#if defined(F_GETFL) && defined(F_SETFL) && defined(O_APPEND)
+ int flags = fcntl (fd, F_GETFL, 0);
+ if (flags >= 0)
+ fcntl (fd, F_SETFL, flags | O_APPEND);
+#endif
+}
+
+
+#ifndef NO_OUTPUT_SYNC
+
+/* Semaphore for use in -j mode with output_sync. */
+static sync_handle_t sync_handle = -1;
+
+#define FD_NOT_EMPTY(_f) ((_f) != OUTPUT_NONE && lseek ((_f), 0, SEEK_END) > 0)
+
+/* Set up the sync handle. Disables output_sync on error. */
+static int
+sync_init ()
+{
+ int combined_output = 0;
+
+#ifdef WINDOWS32
+ if ((!STREAM_OK (stdout) && !STREAM_OK (stderr))
+ || (sync_handle = create_mutex ()) == -1)
+ {
+ perror_with_name ("output-sync suppressed: ", "stderr");
+ output_sync = 0;
+ }
+ else
+ {
+ combined_output = same_stream (stdout, stderr);
+ prepare_mutex_handle_string (sync_handle);
+ }
+
+#else
+ if (STREAM_OK (stdout))
+ {
+ struct stat stbuf_o, stbuf_e;
+
+ sync_handle = fileno (stdout);
+ combined_output = (fstat (fileno (stdout), &stbuf_o) == 0
+ && fstat (fileno (stderr), &stbuf_e) == 0
+ && stbuf_o.st_dev == stbuf_e.st_dev
+ && stbuf_o.st_ino == stbuf_e.st_ino);
+ }
+ else if (STREAM_OK (stderr))
+ sync_handle = fileno (stderr);
+ else
+ {
+ perror_with_name ("output-sync suppressed: ", "stderr");
+ output_sync = 0;
+ }
+#endif
+
+ return combined_output;
+}
+
+/* Support routine for output_sync() */
+static void
+pump_from_tmp (int from, FILE *to)
+{
+ static char buffer[8192];
+
+#ifdef WINDOWS32
+ int prev_mode;
+
+ /* "from" is opened by open_tmpfd, which does it in binary mode, so
+ we need the mode of "to" to match that. */
+ prev_mode = _setmode (fileno (to), _O_BINARY);
+#endif
+
+ if (lseek (from, 0, SEEK_SET) == -1)
+ perror ("lseek()");
+
+ while (1)
+ {
+ int len;
+ EINTRLOOP (len, read (from, buffer, sizeof (buffer)));
+ if (len < 0)
+ perror ("read()");
+ if (len <= 0)
+ break;
+ if (fwrite (buffer, len, 1, to) < 1)
+ perror ("fwrite()");
+ }
+
+#ifdef WINDOWS32
+ /* Switch "to" back to its original mode, so that log messages by
+ Make have the same EOL format as without --output-sync. */
+ _setmode (fileno (to), prev_mode);
+#endif
+}
+
+/* Obtain the lock for writing output. */
+static void *
+acquire_semaphore (void)
+{
+ static struct flock fl;
+
+ fl.l_type = F_WRLCK;
+ fl.l_whence = SEEK_SET;
+ fl.l_start = 0;
+ fl.l_len = 1;
+ if (fcntl (sync_handle, F_SETLKW, &fl) != -1)
+ return &fl;
+ perror ("fcntl()");
+ return NULL;
+}
+
+/* Release the lock for writing output. */
+static void
+release_semaphore (void *sem)
+{
+ struct flock *flp = (struct flock *)sem;
+ flp->l_type = F_UNLCK;
+ if (fcntl (sync_handle, F_SETLKW, flp) == -1)
+ perror ("fcntl()");
+}
+
+/* Returns a file descriptor to a temporary file. The file is automatically
+ closed/deleted on exit. Don't use a FILE* stream. */
+int
+output_tmpfd ()
+{
+ int fd = -1;
+ FILE *tfile = tmpfile ();
+
+ if (! tfile)
+ pfatal_with_name ("tmpfile");
+
+ /* Create a duplicate so we can close the stream. */
+ fd = dup (fileno (tfile));
+ if (fd < 0)
+ pfatal_with_name ("dup");
+
+ fclose (tfile);
+
+ set_append_mode (fd);
+
+ return fd;
+}
+
+/* Adds file descriptors to the child structure to support output_sync; one
+ for stdout and one for stderr as long as they are open. If stdout and
+ stderr share a device they can share a temp file too.
+ Will reset output_sync on error. */
+static void
+setup_tmpfile (struct output *out)
+{
+ /* Is make's stdout going to the same place as stderr? */
+ static int combined_output = -1;
+
+ if (combined_output < 0)
+ combined_output = sync_init ();
+
+ if (STREAM_OK (stdout))
+ {
+ int fd = output_tmpfd ();
+ if (fd < 0)
+ goto error;
+ CLOSE_ON_EXEC (fd);
+ out->out = fd;
+ }
+
+ if (STREAM_OK (stderr))
+ {
+ if (out->out != OUTPUT_NONE && combined_output)
+ out->err = out->out;
+ else
+ {
+ int fd = output_tmpfd ();
+ if (fd < 0)
+ goto error;
+ CLOSE_ON_EXEC (fd);
+ out->err = fd;
+ }
+ }
+
+ return;
+
+ /* If we failed to create a temp file, disable output sync going forward. */
+ error:
+ output_close (out);
+ output_sync = 0;
+}
+
+/* Synchronize the output of jobs in -j mode to keep the results of
+ each job together. This is done by holding the results in temp files,
+ one for stdout and potentially another for stderr, and only releasing
+ them to "real" stdout/stderr when a semaphore can be obtained. */
+
+void
+output_dump (struct output *out)
+{
+ int outfd_not_empty = FD_NOT_EMPTY (out->out);
+ int errfd_not_empty = FD_NOT_EMPTY (out->err);
+
+ if (outfd_not_empty || errfd_not_empty)
+ {
+ int traced = 0;
+
+ /* Try to acquire the semaphore. If it fails, dump the output
+ unsynchronized; still better than silently discarding it.
+ We want to keep this lock for as little time as possible. */
+ void *sem = acquire_semaphore ();
+
+ /* Log the working directory for this dump. */
+ if (print_directory_flag && output_sync != OUTPUT_SYNC_RECURSE)
+ traced = log_working_directory (1);
+
+ if (outfd_not_empty)
+ pump_from_tmp (out->out, stdout);
+ if (errfd_not_empty && out->err != out->out)
+ pump_from_tmp (out->err, stderr);
+
+ if (traced)
+ log_working_directory (0);
+
+ /* Exit the critical section. */
+ if (sem)
+ release_semaphore (sem);
+
+ /* Truncate and reset the output, in case we use it again. */
+ if (out->out != OUTPUT_NONE)
+ {
+ int e;
+ lseek (out->out, 0, SEEK_SET);
+ EINTRLOOP (e, ftruncate (out->out, 0));
+ }
+ if (out->err != OUTPUT_NONE && out->err != out->out)
+ {
+ int e;
+ lseek (out->err, 0, SEEK_SET);
+ EINTRLOOP (e, ftruncate (out->err, 0));
+ }
+ }
+}
+#endif /* NO_OUTPUT_SYNC */
+
+
+/* Provide support for temporary files. */
+
+#ifndef HAVE_STDLIB_H
+# ifdef HAVE_MKSTEMP
+int mkstemp (char *template);
+# else
+char *mktemp (char *template);
+# endif
+#endif
+
+FILE *
+output_tmpfile (char **name, const char *template)
+{
+#ifdef HAVE_FDOPEN
+ int fd;
+#endif
+
+#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
+}
+
+
+/* This code is stolen from gnulib.
+ If/when we abandon the requirement to work with K&R compilers, we can
+ remove this (and perhaps other parts of GNU make!) and migrate to using
+ gnulib directly.
+
+ This is called only through atexit(), which means die() has already been
+ invoked. So, call exit() here directly. Apparently that works...?
+*/
+
+/* Close standard output, exiting with status 'exit_failure' on failure.
+ If a program writes *anything* to stdout, that program should close
+ stdout and make sure that it succeeds before exiting. Otherwise,
+ suppose that you go to the extreme of checking the return status
+ of every function that does an explicit write to stdout. The last
+ printf can succeed in writing to the internal stream buffer, and yet
+ the fclose(stdout) could still fail (due e.g., to a disk full error)
+ when it tries to write out that buffered data. Thus, you would be
+ left with an incomplete output file and the offending program would
+ exit successfully. Even calling fflush is not always sufficient,
+ since some file systems (NFS and CODA) buffer written/flushed data
+ until an actual close call.
+
+ Besides, it's wasteful to check the return value from every call
+ that writes to stdout -- just let the internal stream state record
+ the failure. That's what the ferror test is checking below.
+
+ It's important to detect such failures and exit nonzero because many
+ tools (most notably 'make' and other build-management systems) depend
+ on being able to detect failure in other tools via their exit status. */
+
+static void
+close_stdout (void)
+{
+ int prev_fail = ferror (stdout);
+ int fclose_fail = fclose (stdout);
+
+ if (prev_fail || fclose_fail)
+ {
+ if (fclose_fail)
+ error (NILF, _("write error: %s"), strerror (errno));
+ else
+ error (NILF, _("write error"));
+ exit (EXIT_FAILURE);
+ }
+}
+
+
+void
+output_init (struct output *out)
+{
+ if (out)
+ {
+ out->out = out->err = OUTPUT_NONE;
+ out->syncout = !!output_sync;
+ return;
+ }
+
+ /* Configure this instance of make. Be sure stdout is line-buffered. */
+
+#ifdef HAVE_SETVBUF
+# ifdef SETVBUF_REVERSED
+ setvbuf (stdout, _IOLBF, xmalloc (BUFSIZ), BUFSIZ);
+# else /* setvbuf not reversed. */
+ /* Some buggy systems lose if we pass 0 instead of allocating ourselves. */
+ setvbuf (stdout, 0, _IOLBF, BUFSIZ);
+# endif /* setvbuf reversed. */
+#elif HAVE_SETLINEBUF
+ setlinebuf (stdout);
+#endif /* setlinebuf missing. */
+
+ /* Force stdout/stderr into append mode. This ensures parallel jobs won't
+ lose output due to overlapping writes. */
+ set_append_mode (fileno (stdout));
+ set_append_mode (fileno (stderr));
+
+#ifdef HAVE_ATEXIT
+ if (STREAM_OK (stdout))
+ atexit (close_stdout);
+#endif
+}
+
+void
+output_close (struct output *out)
+{
+ if (! out)
+ {
+ if (stdio_traced)
+ log_working_directory (0);
+ return;
+ }
+
+#ifndef NO_OUTPUT_SYNC
+ output_dump (out);
+#endif
+
+ if (out->out >= 0)
+ close (out->out);
+ if (out->err >= 0 && out->err != out->out)
+ close (out->err);
+
+ output_init (out);
+}
+
+/* We're about to generate output: be sure it's set up. */
+void
+output_start ()
+{
+#ifndef NO_OUTPUT_SYNC
+ /* If we're syncing output make sure the temporary file is set up. */
+ if (output_context && output_context->syncout)
+ if (! OUTPUT_ISSET(output_context))
+ setup_tmpfile (output_context);
+#endif
+
+ /* If we're not syncing this output per-line or per-target, make sure we emit
+ the "Entering..." message where appropriate. */
+ if (output_sync == OUTPUT_SYNC_NONE || output_sync == OUTPUT_SYNC_RECURSE)
+ if (! stdio_traced && print_directory_flag)
+ stdio_traced = log_working_directory (1);
+}
+
+void
+outputs (int is_err, const char *msg)
+{
+ if (! msg || *msg == '\0')
+ return;
+
+ output_start ();
+
+ _outputs (output_context, is_err, msg);
+}
+
+
+/* Return formatted string buffers.
+ If we move to gnulib we can use vasnprintf() etc. to make this simpler.
+ Note these functions use a static buffer, so each call overwrites the
+ results of the previous call. */
+
+static struct fmtstring
+ {
+ char *buffer;
+ unsigned int size;
+ unsigned int len;
+ } fmtbuf = { NULL, 0, 0 };
+
+/* Concatenate a formatted string onto the format buffer. */
+static const char *
+vfmtconcat (const char *fmt, va_list args)
+{
+ va_list vcopy;
+ int tot;
+ int unused = fmtbuf.size - fmtbuf.len;
+
+ va_copy (vcopy, args);
+
+ tot = vsnprintf (&fmtbuf.buffer[fmtbuf.len], unused, fmt, args);
+ assert (tot >= 0);
+
+ if (tot >= unused)
+ {
+ fmtbuf.size += tot * 2;
+ fmtbuf.buffer = xrealloc (fmtbuf.buffer, fmtbuf.size);
+
+ unused = fmtbuf.size - fmtbuf.len;
+ tot = vsnprintf (&fmtbuf.buffer[fmtbuf.len], unused, fmt, vcopy);
+ }
+
+ va_end (vcopy);
+
+ fmtbuf.len += tot;
+
+ return fmtbuf.buffer;
+}
+
+static const char *
+fmtconcat (const char *fmt, ...)
+{
+ const char *p;
+ va_list args;
+
+ va_start (args, fmt);
+ p = vfmtconcat (fmt, args);
+ va_end (args);
+
+ return p;
+}
+
+/* Print a message on stdout. */
+
+void
+message (int prefix, const char *fmt, ...)
+{
+ va_list args;
+
+ assert (fmt != NULL);
+
+ fmtbuf.len = 0;
+
+ if (prefix)
+ {
+ if (makelevel == 0)
+ fmtconcat ("%s: ", program);
+ else
+ fmtconcat ("%s[%u]: ", program, makelevel);
+ }
+
+ va_start (args, fmt);
+ vfmtconcat (fmt, args);
+ va_end (args);
+
+ fmtconcat ("\n");
+
+ outputs (0, fmtbuf.buffer);
+}
+
+/* Print an error message. */
+
+void
+error (const gmk_floc *flocp, const char *fmt, ...)
+{
+ va_list args;
+
+ assert (fmt != NULL);
+
+ fmtbuf.len = 0;
+
+ if (flocp && flocp->filenm)
+ fmtconcat ("%s:%lu: ", flocp->filenm, flocp->lineno);
+ else if (makelevel == 0)
+ fmtconcat ("%s: ", program);
+ else
+ fmtconcat ("%s[%u]: ", program, makelevel);
+
+ va_start (args, fmt);
+ vfmtconcat (fmt, args);
+ va_end (args);
+
+ fmtconcat ("\n");
+
+ outputs (1, fmtbuf.buffer);
+}
+
+/* Print an error message and exit. */
+
+void
+fatal (const gmk_floc *flocp, const char *fmt, ...)
+{
+ va_list args;
+
+ assert (fmt != NULL);
+
+ fmtbuf.len = 0;
+
+ if (flocp && flocp->filenm)
+ fmtconcat ("%s:%lu: *** ", flocp->filenm, flocp->lineno);
+ else if (makelevel == 0)
+ fmtconcat ("%s: *** ", program);
+ else
+ fmtconcat ("%s[%u]: *** ", program, makelevel);
+
+ va_start (args, fmt);
+ vfmtconcat (fmt, args);
+ va_end (args);
+
+ fmtconcat (_(". Stop.\n"));
+ outputs (1, fmtbuf.buffer);
+
+ die (2);
+}
+
+/* Print an error message from errno. */
+
+void
+perror_with_name (const char *str, const char *name)
+{
+ error (NILF, _("%s%s: %s"), str, name, strerror (errno));
+}
+
+/* Print an error message from errno and exit. */
+
+void
+pfatal_with_name (const char *name)
+{
+ fatal (NILF, _("%s: %s"), name, strerror (errno));
+
+ /* NOTREACHED */
+}
diff --git a/output.h b/output.h
new file mode 100644
index 0000000..e0d5daa
--- /dev/null
+++ b/output.h
@@ -0,0 +1,51 @@
+/* Output to stdout / stderr for GNU make
+Copyright (C) 2013 Free Software Foundation, Inc.
+This file is part of GNU Make.
+
+GNU Make is free software; you can redistribute it and/or modify it under the
+terms of the GNU General Public License as published by the Free Software
+Foundation; either version 3 of the License, or (at your option) any later
+version.
+
+GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with
+this program. If not, see <http://www.gnu.org/licenses/>. */
+
+struct output
+ {
+ int out;
+ int err;
+ unsigned int syncout:1; /* True if we want to synchronize output. */
+ };
+
+extern struct output *output_context;
+extern unsigned int stdio_traced;
+
+#define OUTPUT_SET(_new) do{ output_context = (_new)->syncout ? (_new) : NULL; }while(0)
+#define OUTPUT_UNSET() do{ output_context = NULL; }while(0)
+
+#define OUTPUT_TRACED() do{ stdio_traced = 1; }while(0)
+#define OUTPUT_IS_TRACED() (!!stdio_traced)
+
+FILE *output_tmpfile (char **, const char *);
+
+/* Initialize and close a child output structure: if NULL do this program's
+ output (this should only be done once). */
+void output_init (struct output *out);
+void output_close (struct output *out);
+
+/* In situations where output may be about to be displayed but we're not
+ sure if we've set it up yet, call this. */
+void output_start (void);
+
+/* Show a message on stdout or stderr. Will start the output if needed. */
+void outputs (int is_err, const char *msg);
+
+#ifndef NO_OUTPUT_SYNC
+int output_tmpfd (void);
+/* Dump any child output content to stdout, and reset it. */
+void output_dump (struct output *out);
+#endif
diff --git a/po/ChangeLog b/po/ChangeLog
index dbc21b4..cd7de0c 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,15 @@
+2013-01-06 Paul Smith <psmith@gnu.org>
+
+ * POTFILES.in: Add new load.c file.
+
+2012-01-12 Paul Smith <psmith@gnu.org>
+
+ * POTFILES.in: Add new guile.c file.
+
+2011-09-26 Paul Smith <psmith@gnu.org>
+
+ * LINGUAS: Added new translation file for Czech (cs).
+
2009-09-16 Paul Smith <psmith@gnu.org>
* LINGUAS: Added new translation for Italian (it).
@@ -65,8 +77,7 @@
* POTFILES.in, LINGUAS, Makevars: Created.
-Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
-Foundation, Inc.
+Copyright (C) 2002-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/po/LINGUAS b/po/LINGUAS
index 6774713..d9ba7f4 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1,5 +1,5 @@
-# Set of available languages: 24 languages
+# Set of available languages: 25 languages
-be da de es fi fr ga gl he hr id it ja ko lt nl pl pt_BR ru sv tr uk vi zh_CN
+be cs da de es fi fr ga gl he hr id it ja ko lt nl pl pt_BR ru sv tr uk vi zh_CN
# Can't seem to get en@quot and en@boldquot to build properly?
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
index 53efc5e..83d8838 100644
--- a/po/Makefile.in.in
+++ b/po/Makefile.in.in
@@ -1,5 +1,5 @@
# Makefile for PO directory in any package using GNU gettext.
-# Copyright (C) 1995-1997, 2000-2004 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
#
# This file can be copied and used freely without restrictions. It can
# be used in projects which are not available under the GNU General Public
@@ -8,10 +8,12 @@
# Please note that the actual code of GNU gettext is covered by the GNU
# General Public License and is *not* in the public domain.
#
-# Origin: gettext-0.14
+# Origin: gettext-0.18
+GETTEXT_MACRO_VERSION = 0.18
PACKAGE = @PACKAGE@
VERSION = @VERSION@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
SHELL = /bin/sh
@SET_MAKE@
@@ -22,18 +24,38 @@ VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
+datarootdir = @datarootdir@
datadir = @datadir@
-localedir = $(datadir)/locale
+localedir = @localedir@
gettextsrcdir = $(datadir)/gettext/po
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
-GMSGFMT = @GMSGFMT@
-MSGFMT = @MSGFMT@
-XGETTEXT = @XGETTEXT@
+# We use $(mkdir_p).
+# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as
+# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions,
+# @install_sh@ does not start with $(SHELL), so we add it.
+# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined
+# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake
+# versions, $(mkinstalldirs) and $(install_sh) are unused.
+mkinstalldirs = $(SHELL) @install_sh@ -d
+install_sh = $(SHELL) @install_sh@
+MKDIR_P = @MKDIR_P@
+mkdir_p = @mkdir_p@
+
+GMSGFMT_ = @GMSGFMT@
+GMSGFMT_no = @GMSGFMT@
+GMSGFMT_yes = @GMSGFMT_015@
+GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT))
+MSGFMT_ = @MSGFMT@
+MSGFMT_no = @MSGFMT@
+MSGFMT_yes = @MSGFMT_015@
+MSGFMT = $(MSGFMT_$(USE_MSGCTXT))
+XGETTEXT_ = @XGETTEXT@
+XGETTEXT_no = @XGETTEXT@
+XGETTEXT_yes = @XGETTEXT_015@
+XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))
MSGMERGE = msgmerge
MSGMERGE_UPDATE = @MSGMERGE@ --update
MSGINIT = msginit
@@ -46,7 +68,7 @@ UPDATEPOFILES = @UPDATEPOFILES@
DUMMYPOFILES = @DUMMYPOFILES@
DISTFILES.common = Makefile.in.in remove-potcdate.sin \
$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
-DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \
+DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \
$(POFILES) $(GMOFILES) \
$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
@@ -66,19 +88,32 @@ CATALOGS = @CATALOGS@
.po.gmo:
@lang=`echo $* | sed -e 's,.*/,,'`; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
- cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \
+ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
.sin.sed:
sed -e '/^#/d' $< > t-$@
mv t-$@ $@
-all: all-@USE_NLS@
+all: check-macro-version all-@USE_NLS@
all-yes: stamp-po
all-no:
+# Ensure that the gettext macros and this Makefile.in.in are in sync.
+check-macro-version:
+ @test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \
+ || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \
+ exit 1; \
+ }
+
+# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no
+# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because
+# we don't want to bother translators with empty POT files). We assume that
+# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty.
+# In this case, stamp-po is a nop (i.e. a phony target).
+
# stamp-po is a timestamp denoting the last time at which the CATALOGS have
# been loosely updated. Its purpose is that when a developer or translator
# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
@@ -88,10 +123,13 @@ all-no:
# $(POFILES) has been designed to not touch files that don't need to be
# changed.
stamp-po: $(srcdir)/$(DOMAIN).pot
- test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
- @echo "touch stamp-po"
- @echo timestamp > stamp-poT
- @mv stamp-poT stamp-po
+ test ! -f $(srcdir)/$(DOMAIN).pot || \
+ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
+ @test ! -f $(srcdir)/$(DOMAIN).pot || { \
+ echo "touch stamp-po" && \
+ echo timestamp > stamp-poT && \
+ mv stamp-poT stamp-po; \
+ }
# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
# otherwise packages like GCC can not be built if only parts of the source
@@ -100,11 +138,34 @@ stamp-po: $(srcdir)/$(DOMAIN).pot
# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
- $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
- --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
- --files-from=$(srcdir)/POTFILES.in \
- --copyright-holder='$(COPYRIGHT_HOLDER)' \
- --msgid-bugs-address='$(MSGID_BUGS_ADDRESS)'
+ if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \
+ package_gnu='GNU '; \
+ else \
+ package_gnu=''; \
+ fi; \
+ if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \
+ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \
+ else \
+ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \
+ fi; \
+ case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \
+ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
+ --files-from=$(srcdir)/POTFILES.in \
+ --copyright-holder='$(COPYRIGHT_HOLDER)' \
+ --msgid-bugs-address="$$msgid_bugs_address" \
+ ;; \
+ *) \
+ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
+ --files-from=$(srcdir)/POTFILES.in \
+ --copyright-holder='$(COPYRIGHT_HOLDER)' \
+ --package-name="$${package_gnu}@PACKAGE@" \
+ --package-version='@VERSION@' \
+ --msgid-bugs-address="$$msgid_bugs_address" \
+ ;; \
+ esac
test ! -f $(DOMAIN).po || { \
if test -f $(srcdir)/$(DOMAIN).pot; then \
sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
@@ -132,8 +193,15 @@ $(POFILES): $(srcdir)/$(DOMAIN).pot
@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
if test -f "$(srcdir)/$${lang}.po"; then \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
- cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \
+ echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \
+ cd $(srcdir) \
+ && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
+ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \
+ *) \
+ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \
+ esac; \
+ }; \
else \
$(MAKE) $${lang}.po-create; \
fi
@@ -143,7 +211,7 @@ install: install-exec install-data
install-exec:
install-data: install-data-@USE_NLS@
if test "$(PACKAGE)" = "gettext-tools"; then \
- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
for file in $(DISTFILES.common) Makevars.template; do \
$(INSTALL_DATA) $(srcdir)/$$file \
$(DESTDIR)$(gettextsrcdir)/$$file; \
@@ -156,13 +224,12 @@ install-data: install-data-@USE_NLS@
fi
install-data-no: all
install-data-yes: all
- $(mkinstalldirs) $(DESTDIR)$(datadir)
@catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
dir=$(localedir)/$$lang/LC_MESSAGES; \
- $(mkinstalldirs) $(DESTDIR)$$dir; \
+ $(mkdir_p) $(DESTDIR)$$dir; \
if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
$(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
@@ -202,19 +269,18 @@ installdirs: installdirs-exec installdirs-data
installdirs-exec:
installdirs-data: installdirs-data-@USE_NLS@
if test "$(PACKAGE)" = "gettext-tools"; then \
- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
else \
: ; \
fi
installdirs-data-no:
installdirs-data-yes:
- $(mkinstalldirs) $(DESTDIR)$(datadir)
@catalogs='$(CATALOGS)'; \
for cat in $$catalogs; do \
cat=`basename $$cat`; \
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
dir=$(localedir)/$$lang/LC_MESSAGES; \
- $(mkinstalldirs) $(DESTDIR)$$dir; \
+ $(mkdir_p) $(DESTDIR)$$dir; \
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
if test -n "$$lc"; then \
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
@@ -289,11 +355,14 @@ dist distdir:
$(MAKE) update-po
@$(MAKE) dist2
# This is a separate target because 'update-po' must be executed before.
-dist2: $(DISTFILES)
+dist2: stamp-po $(DISTFILES)
dists="$(DISTFILES)"; \
if test "$(PACKAGE)" = "gettext-tools"; then \
dists="$$dists Makevars.template"; \
fi; \
+ if test -f $(srcdir)/$(DOMAIN).pot; then \
+ dists="$$dists $(DOMAIN).pot stamp-po"; \
+ fi; \
if test -f $(srcdir)/ChangeLog; then \
dists="$$dists ChangeLog"; \
fi; \
@@ -305,9 +374,9 @@ dist2: $(DISTFILES)
if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
for file in $$dists; do \
if test -f $$file; then \
- cp -p $$file $(distdir); \
+ cp -p $$file $(distdir) || exit 1; \
else \
- cp -p $(srcdir)/$$file $(distdir); \
+ cp -p $(srcdir)/$$file $(distdir) || exit 1; \
fi; \
done
@@ -331,9 +400,15 @@ update-po: Makefile
tmpdir=`pwd`; \
echo "$$lang:"; \
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+ echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
cd $(srcdir); \
- if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
+ if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
+ $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+ *) \
+ $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+ esac; \
+ }; then \
if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
rm -f $$tmpdir/$$lang.new.po; \
else \
@@ -354,10 +429,13 @@ $(DUMMYPOFILES):
update-gmo: Makefile $(GMOFILES)
@:
-Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@
+# Recreate Makefile by invoking config.status. Explicitly invoke the shell,
+# because execution permission bits may not work on the current file system.
+# Use @SHELL@, which is the shell determined by autoconf for the use by its
+# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient.
+Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@
cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
- $(SHELL) ./config.status
+ && @SHELL@ ./config.status $(subdir)/$@.in po-directories
force:
diff --git a/po/Makevars b/po/Makevars
index 2103ce8..900e794 100644
--- a/po/Makevars
+++ b/po/Makevars
@@ -1,6 +1,5 @@
# This is a -*-Makefile-*-
-# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-# Software Foundation, Inc.
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 05208bb..ba156ee 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,6 +1,5 @@
# List of source files containing translatable strings.
-# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-# 2010 Free Software Foundation, Inc.
+# Copyright (C) 2000-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
@@ -24,11 +23,15 @@ expand.c
file.c
function.c
getopt.c
+guile.c
hash.c
implicit.c
job.c
+job.h
+load.c
main.c
misc.c
+output.c
read.c
remake.c
remote-cstms.c
diff --git a/po/Rules-quot b/po/Rules-quot
index 9c2a995..af52487 100644
--- a/po/Rules-quot
+++ b/po/Rules-quot
@@ -20,7 +20,7 @@ en@boldquot.po-update: en@boldquot.po-update-en
ll=`echo $$lang | sed -e 's/@.*//'`; \
LC_ALL=C; export LC_ALL; \
cd $(srcdir); \
- if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
+ if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
rm -f $$tmpdir/$$lang.new.po; \
else \
diff --git a/po/be.gmo b/po/be.gmo
index f5a4512..93a72bc 100644
--- a/po/be.gmo
+++ b/po/be.gmo
Binary files differ
diff --git a/po/be.po b/po/be.po
index 3b94b02..c296783 100644
--- a/po/be.po
+++ b/po/be.po
@@ -6,117 +6,123 @@ msgid ""
msgstr ""
"Project-Id-Version: make 3.80\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: 2003-10-21 11:50+0300\n"
"Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n"
"Language-Team: Belarusian <i18n@mova.org>\n"
+"Language: be\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 0.9.6\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 "Ñпроба выкарыÑтаць непадтрымліваемую мажліваÑьць: \"%s\""
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
msgstr "дакрананьне да ўдзельніку архіва недаÑтупна на VMS"
-#: 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: архіў \"%s\" Ð½Ñ Ð¹Ñнуе"
-#: 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\" - гÑта не Ñ€ÑчаіÑны архіў"
-#: 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: удзельнік \"%s\" Ð½Ñ Ð¹Ñнуе Ñž \"%s\""
-#: ar.c:166
+#: ar.c:164
#, c-format
-msgid "touch: Bad return code from ar_member_touch on `%s'"
+msgid "touch: Bad return code from ar_member_touch on '%s'"
msgstr ""
-#: arscan.c:69
+#: arscan.c:67
#, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
msgstr ""
-#: arscan.c:175
+#: arscan.c:173
#, c-format
msgid "lbr$ini_control() failed with status = %d"
msgstr ""
-#: arscan.c:187
+#: arscan.c:185
#, c-format
-msgid "unable to open library `%s' to lookup member `%s'"
+msgid "unable to open library '%s' to lookup member '%s'"
msgstr ""
-#: arscan.c:850
+#: arscan.c:847
#, c-format
-msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n"
+msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
msgstr ""
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr " (назва муÑіла быць абрÑзана)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Дата %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d, gid = %d, Ñ€Ñжым = 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 ""
-#: commands.c:622
+#: commands.c:630
#, c-format
-msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
+msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
msgstr ""
-#: commands.c:625
+#: commands.c:633
#, c-format
-msgid "*** Archive member `%s' may be bogus; not deleted"
+msgid "*** Archive member '%s' may be bogus; not deleted"
msgstr ""
-#: commands.c:638
-#, c-format
-msgid "*** [%s] Deleting file `%s'"
+#: commands.c:646
+#, fuzzy, c-format
+msgid "*** [%s] Deleting file '%s'"
msgstr "*** [%s] ВыдалÑецца файл \"%s\""
-#: commands.c:640
-#, c-format
-msgid "*** Deleting file `%s'"
+#: commands.c:648
+#, fuzzy, c-format
+msgid "*** Deleting file '%s'"
msgstr "*** ВыдалÑецца файл \"%s\""
-#: commands.c:676
+#: commands.c:684
#, fuzzy
msgid "# recipe to execute"
msgstr "# загады Ð´Ð»Ñ Ð²Ñ‹ÐºÐ°Ð½Ð°Ð½ÑŒÐ½Ñ"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr " (убудаваны):"
-#: commands.c:681
-#, c-format
-msgid " (from `%s', line %lu):\n"
+#: commands.c:689
+#, fuzzy, c-format
+msgid " (from '%s', line %lu):\n"
msgstr " (з\"%s\", радок %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -124,221 +130,221 @@ msgstr ""
"\n"
"# ТÑчкі\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
msgstr ""
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
msgstr ""
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
msgstr ""
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
msgstr ""
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr ""
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
msgstr ""
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
msgstr ""
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "Ðе"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " файлаў, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "не"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
msgstr ""
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr " так далёка."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
msgstr ""
-#: expand.c:127
+#: expand.c:125
#, c-format
-msgid "Recursive variable `%s' references itself (eventually)"
+msgid "Recursive variable '%s' references itself (eventually)"
msgstr ""
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
msgstr ""
-#: file.c:267
-#, c-format
-msgid "Recipe was specified for file `%s' at %s:%lu,"
-msgstr ""
-
-#: file.c:272
+#: file.c:269
#, c-format
-msgid "Recipe for file `%s' was found by implicit rule search,"
+msgid "Recipe was specified for file '%s' at %s:%lu,"
msgstr ""
-#: file.c:275
+#: file.c:274
#, c-format
-msgid "but `%s' is now considered the same file as `%s'."
+msgid "Recipe for file '%s' was found by implicit rule search,"
msgstr ""
-#: file.c:278
+#: file.c:277
#, c-format
-msgid "Recipe for `%s' will be ignored in favor of the one for `%s'."
+msgid "but '%s' is now considered the same file as '%s'."
msgstr ""
-#: file.c:298
+#: file.c:280
#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
+msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
msgstr ""
-#: file.c:303
+#: file.c:300
#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
+msgid "can't rename single-colon '%s' to double-colon '%s'"
msgstr ""
-#: file.c:392
+#: file.c:305
#, c-format
-msgid "*** Deleting intermediate file `%s'"
+msgid "can't rename double-colon '%s' to single-colon '%s'"
msgstr ""
#: file.c:396
+#, fuzzy, c-format
+msgid "*** Deleting intermediate file '%s'"
+msgstr "*** ВыдалÑецца файл \"%s\""
+
+#: file.c:400
msgid "Removing intermediate files...\n"
msgstr "ВыдалÑюцца Ð¿Ñ€Ð°Ð¼ÐµÐ¶ÐºÐ°Ð²Ñ‹Ñ Ñ„Ð°Ð¹Ð»Ñ‹...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
msgstr "%s: адбітак чаÑу па-за дапушчальнымі межамі, падÑтаўлÑецца %s"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "БÑгучы чаÑ"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
msgstr "# ÐÑ Ð¼Ñта:"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
msgstr ""
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
msgstr ""
-#: file.c:933
+#: file.c:958
#, fuzzy
msgid "# Command line target."
msgstr "загадны радок"
-#: file.c:935
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
msgstr ""
-#: file.c:937
+#: file.c:962
+msgid "# Builtin rule"
+msgstr ""
+
+#: file.c:964
msgid "# Implicit rule search has been done."
msgstr ""
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
msgstr ""
-#: 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 ""
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
msgstr "# Так Ñама робÑцца:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
msgstr "# Ð§Ð°Ñ Ð·ÑŒÐ¼ÑÐ½ÐµÐ½ÑŒÐ½Ñ Ð½Ñ–ÐºÐ¾Ð»Ñ– не правÑраўÑÑ."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# Файл Ð½Ñ Ð¹Ñнуе."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr "# Файл вельмі Ñтары."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr "# ÐпошнÑе зьмÑненьне %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# Файл быў абноўлены."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# Файл Ð½Ñ Ð±Ñ‹Ñž абноўлены."
-#: file.c:968
+#: file.c:995
#, fuzzy
msgid "# Recipe currently running (THIS IS A BUG)."
msgstr "# Загады, што выконваюцца зараз (ГЭТР- ПÐМЫЛКÐ)."
-#: file.c:971
+#: file.c:998
#, fuzzy
msgid "# Dependencies recipe running (THIS IS A BUG)."
msgstr "# Загады, што выконваюцца зараз (ГЭТР- ПÐМЫЛКÐ)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
msgstr "# ПаÑьпÑхова абноўлены."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
msgstr ""
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr ""
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
+#: file.c:1019
+msgid "# Invalid value in 'command_state' member!"
msgstr ""
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
-msgstr ""
-
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -346,124 +352,178 @@ msgstr ""
"\n"
"# Файлы"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
"# "
msgstr ""
-#: 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:763
-msgid "first argument to `word' function must be greater than 0"
+#: function.c:742
+msgid "non-numeric first argument to 'word' function"
msgstr ""
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
+#: function.c:747
+msgid "first argument to 'word' function must be greater than 0"
msgstr ""
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
+#: function.c:767
+msgid "non-numeric first argument to 'wordlist' function"
msgstr ""
-#: function.c:1458
+#: function.c:769
+msgid "non-numeric second argument to 'wordlist' function"
+msgstr ""
+
+#: 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 "windows32_openpipe (): памылка ў process_init_fd()\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 "windows32_openpipe (): памылка ў process_init_fd()\n"
-#: function.c:1474
+#: function.c:1490
#, fuzzy, c-format
msgid "CreatePipe() failed (e=%ld)\n"
msgstr "памылка ў CreatePipe() (e=%d)\n"
-#: function.c:1479
+#: function.c:1498
#, fuzzy
msgid "windows32_openpipe(): process_init_fd() failed\n"
msgstr "windows32_openpipe (): памылка ў process_init_fd()\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr ""
-#: function.c:2150
+#: function.c:2151
+#, fuzzy, c-format
+msgid "open: %s: %s"
+msgstr "%s: %s"
+
+#: function.c:2158
+#, fuzzy, c-format
+msgid "write: %s: %s"
+msgstr "%s: %s"
+
+#: function.c:2164
+#, c-format
+msgid "Invalid file operation: %s"
+msgstr ""
+
+#: function.c:2279
#, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
+msgid "insufficient number of arguments (%d) to function '%s'"
msgstr ""
-#: function.c:2162
+#: function.c:2291
#, fuzzy, c-format
-msgid "unimplemented on this platform: function `%s'"
+msgid "unimplemented on this platform: function '%s'"
msgstr "ÐÑ Ð·Ñ€Ð¾Ð±Ð»ÐµÐ½Ð° Ð´Ð»Ñ Ð³Ñтае плÑтформы: Ñ„ÑƒÐ½ÐºÑ†Ñ‹Ñ \"%s\""
-#: function.c:2212
+#: function.c:2354
+#, c-format
+msgid "unterminated call to function '%s': missing '%c'"
+msgstr ""
+
+#: function.c:2546
+msgid "Empty function name\n"
+msgstr ""
+
+#: function.c:2548
#, c-format
-msgid "unterminated call to function `%s': missing `%c'"
+msgid "Invalid function name: %s\n"
msgstr ""
-#: getopt.c:661
+#: function.c:2550
#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: выбар \"%s\" - неадназначы.\n"
+msgid "Function name too long: %s\n"
+msgstr ""
-#: getopt.c:685
+#: function.c:2552
#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: выбар \"--%s\" не дазвалÑе довад.\n"
+msgid "Invalid minimum argument count (%d) for function %s\n"
+msgstr ""
-#: getopt.c:690
+#: function.c:2555
#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr ""
+
+#: getopt.c:659
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: выбар \"%s\" - неадназначы.\n"
+
+#: getopt.c:683
+#, fuzzy, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: выбар \"--%s\" не дазвалÑе довад.\n"
+
+#: getopt.c:688
+#, fuzzy, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
msgstr "%s: выбар \"%c%s\" не дазвалÑе довад.\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: выбар \"%s\" патрабуе довад.\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: нераÑпазнаны выбар \"--%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: нераÑпазнаны выбар \"%c%s\".\n"
-#: getopt.c:766
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: недапушчальны выбар -- %c.\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: нерÑчаіÑны выбар -- %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: выбар патрабуе довад -- %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: выбар \"-W %s\" - неадназначын.\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: выбар \"-W %s\" не дазвалÑе довад.\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
#, c-format
msgid "can't allocate %lu bytes for hash table: memory exhausted"
@@ -484,348 +544,431 @@ msgstr ""
msgid "Collisions=%ld/%ld=%.0f%%"
msgstr ""
-#: implicit.c:40
+#: implicit.c:38
#, c-format
-msgid "Looking for an implicit rule for `%s'.\n"
+msgid "Looking for an implicit rule for '%s'.\n"
msgstr ""
-#: implicit.c:56
+#: implicit.c:54
#, c-format
-msgid "Looking for archive-member implicit rule for `%s'.\n"
+msgid "Looking for archive-member implicit rule for '%s'.\n"
msgstr ""
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
msgstr ""
-#: 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:674
+#: implicit.c:491
#, c-format
-msgid "Rejecting impossible rule prerequisite `%s'.\n"
+msgid "Trying pattern rule with stem '%.*s'.\n"
msgstr ""
-#: implicit.c:675
+#: implicit.c:697
#, c-format
-msgid "Rejecting impossible implicit prerequisite `%s'.\n"
+msgid "Rejecting impossible rule prerequisite '%s'.\n"
msgstr ""
-#: implicit.c:688
+#: implicit.c:698
#, c-format
-msgid "Trying rule prerequisite `%s'.\n"
+msgid "Rejecting impossible implicit prerequisite '%s'.\n"
msgstr ""
-#: implicit.c:689
+#: implicit.c:711
#, c-format
-msgid "Trying implicit prerequisite `%s'.\n"
+msgid "Trying rule prerequisite '%s'.\n"
msgstr ""
-#: implicit.c:728
+#: implicit.c:712
#, c-format
-msgid "Found prerequisite `%s' as VPATH `%s'\n"
+msgid "Trying implicit prerequisite '%s'.\n"
msgstr ""
-#: implicit.c:742
+#: implicit.c:751
#, c-format
-msgid "Looking for a rule with intermediate file `%s'.\n"
+msgid "Found prerequisite '%s' as VPATH '%s'\n"
msgstr ""
-#: job.c:335
+#: implicit.c:765
+#, fuzzy, c-format
+msgid "Looking for a rule with intermediate file '%s'.\n"
+msgstr "ВыдалÑюцца Ð¿Ñ€Ð°Ð¼ÐµÐ¶ÐºÐ°Ð²Ñ‹Ñ Ñ„Ð°Ð¹Ð»Ñ‹...\n"
+
+#: job.c:361
#, fuzzy
msgid "Cannot create a temporary file\n"
msgstr "fwrite (чаÑовы файл)"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
+#: job.c:482
+msgid " (core dumped)"
msgstr ""
-#: job.c:450
-#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] Памылка 0x%x"
+#: job.c:487
+msgid " (ignored)"
+msgstr ""
+
+#: job.c:491 job.c:1994
+#, fuzzy
+msgid "<builtin>"
+msgstr " (убудаваны):"
-#: job.c:454
+#: job.c:501
#, c-format
-msgid "[%s] Error %d (ignored)"
+msgid "%s: recipe for target '%s' failed"
msgstr ""
-#: job.c:455
-#, c-format
-msgid "*** [%s] Error %d"
+#: job.c:510
+#, fuzzy, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "*** [%s] Памылка 0x%x"
+
+#: job.c:513
+#, fuzzy, c-format
+msgid "%s[%s] Error %d%s"
msgstr "*** [%s] Памылка %d"
-#: job.c:460
-msgid " (core dumped)"
-msgstr ""
+#: 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 "*** Чакаюцца Ð½ÐµÐ·Ð°Ð²ÐµÑ€ÑˆÐ°Ð½Ñ‹Ñ Ð¿Ñ€Ð°Ñ†Ñ‹...."
-#: 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 ""
-#: 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 ""
-#: job.c:861
+#: job.c:843
+#, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr ""
+
+#: job.c:949
#, c-format
msgid "Removing child %p PID %s%s from chain.\n"
msgstr ""
-#: job.c:920
-msgid "write jobserver"
+#: 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 ""
+
+#: job.c:1612 job.c:2332
#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
msgstr ""
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
"Counted %d args in failed launch\n"
msgstr ""
-#: job.c:1525
+#: job.c:1685
#, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
msgstr ""
-#: 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 ""
-#: 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: архіў \"%s\" Ð½Ñ Ð¹Ñнуе"
-#: job.c:1802
-#, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr ""
+#: job.c:2005
+#, fuzzy, c-format
+msgid "%s: update target '%s' due to: %s"
+msgstr "%s ÐÑма правіла каб зрабіць мÑту \"%s\", патрÑбную Ð´Ð»Ñ \"%s\"%s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
msgstr ""
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
msgstr ""
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
msgstr ""
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
msgstr ""
-#: job.c:2015
+#: job.c:2223
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr ""
+
+#: job.c:2238
msgid "Could not restore stdin\n"
msgstr ""
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
msgstr ""
-#: job.c:2127
+#: job.c:2254
+msgid "Could not restore stderr\n"
+msgstr ""
+
+#: 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: загад не адшуканы"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr ""
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
msgstr ""
-#: job.c:2461
+#: job.c:2709
#, fuzzy, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
+msgid "$SHELL changed (was '%s', now '%s')\n"
msgstr "$SHELL зьменена (раней \"%s\", зараз \"%s\")"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr ""
-#: 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 ""
-#: 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 "ÐŸÐ°Ñ€Ð°Ð»ÐµÐ»ÑŒÐ½Ñ Ð¿Ñ€Ð°Ñ†Ñ‹ (-j) не падтрымліваюцца на гÑтае плÑтхорме."
+
+#: main.c:312
msgid "Options:\n"
msgstr "Выбары:\n"
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
msgstr ""
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr ""
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
msgstr ""
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
msgstr ""
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
msgstr ""
-#: 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"
msgstr ""
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
msgstr ""
" -h, --help Друкуе гÑтае паведамленьне й выходзіць.\n"
-#: main.c:325
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
msgstr ""
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
msgstr ""
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
msgstr ""
-#: main.c:332
+#: main.c:341
msgid ""
" -k, --keep-going Keep going when some targets can't be made.\n"
msgstr ""
-#: 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 "
"N.\n"
msgstr ""
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
msgstr ""
-#: main.c:339
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
"them.\n"
msgstr ""
-#: 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 "
"it.\n"
msgstr ""
-#: 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 Друкуе нутраную базу даньнÑÑž make.\n"
-#: main.c:347
+#: main.c:359
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
msgstr ""
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr ""
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr ""
-#: main.c:353
+#: main.c:365
#, fuzzy
msgid " -s, --silent, --quiet Don't echo recipes.\n"
msgstr " -s, --silent, --quiet Ðе адлюÑтроўваць загады.\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
@@ -833,52 +976,67 @@ msgstr ""
" -S, --no-keep-going, --stop\n"
" Выключае -k.\n"
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
-#: main.c:360
+#: main.c:372
+#, fuzzy
+msgid " --trace Print tracing information.\n"
+msgstr ""
+" -h, --help Друкуе гÑтае паведамленьне й выходзіць.\n"
+
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr ""
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
msgstr " -w, --print-directory Друкуе бÑгучую Ñ‚Ñчку.\n"
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
msgstr ""
-#: 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"
msgstr ""
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
msgstr ""
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
msgstr "пуÑÑ‚Ñ‹ радок нерÑчаіÑны Ñž ÑкаÑьці назвы файла"
-#: main.c:650
+#: main.c:734
+#, c-format
+msgid "unknown debug level specification '%s'"
+msgstr ""
+
+#: main.c:777
#, c-format
-msgid "unknown debug level specification `%s'"
+msgid "unknown output-sync type '%s'"
msgstr ""
-#: main.c:690
+#: main.c:787
+msgid "internal error: multiple --sync-mutex options"
+msgstr ""
+
+#: main.c:848
#, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
msgstr ""
-#: main.c:697
+#: main.c:855
#, c-format
msgid ""
"\n"
@@ -888,158 +1046,179 @@ msgid ""
"ExceptionAddress = 0x%p\n"
msgstr ""
-#: main.c:705
+#: main.c:863
#, c-format
msgid "Access violation: write operation at address 0x%p\n"
msgstr ""
-#: main.c:706
+#: main.c:864
#, c-format
msgid "Access violation: read operation at address 0x%p\n"
msgstr ""
-#: main.c:781 main.c:792
+#: main.c:940 main.c:955
#, c-format
msgid "find_and_set_shell() setting default_shell = %s\n"
msgstr ""
-#: main.c:834
+#: main.c:1008
#, c-format
msgid "find_and_set_shell() path search set default_shell = %s\n"
msgstr ""
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr "%s Ñпынена на 30 ÑÑкундаў..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr ""
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr "Makefile Ñа Ñтандартнага ўводу зададзены двойчы."
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr "fopen (чаÑовы файл)"
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr "fwrite (чаÑовы файл)"
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "ÐŸÐ°Ñ€Ð°Ð»ÐµÐ»ÑŒÐ½Ñ Ð¿Ñ€Ð°Ñ†Ñ‹ (-j) не падтрымліваюцца на гÑтае плÑтхорме."
+#: main.c:1534
+msgid "internal error: multiple --jobserver-fds options"
+msgstr ""
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
+#: main.c:1544
+#, c-format
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
msgstr ""
-#: main.c:1719
-msgid "internal error: multiple --jobserver-fds options"
+#: main.c:1547
+#, c-format
+msgid "Jobserver client (semaphore %s)\n"
msgstr ""
-#: main.c:1727
+#: main.c:1551
#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
+msgid "internal error: invalid --jobserver-fds string '%s'"
msgstr ""
-#: 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 ""
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
msgstr ""
-#: main.c:1753
+#: main.c:1586
msgid ""
-"warning: jobserver unavailable: using -j1. Add `+' to parent make rule."
+"warning: jobserver unavailable: using -j1. Add '+' to parent make rule."
msgstr ""
-#: main.c:1777
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "Makefile Ñа Ñтандартнага ўводу зададзены двойчы."
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (чаÑовы файл)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (чаÑовы файл)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr "ÐŸÐ°Ñ€Ð°Ð»ÐµÐ»ÑŒÐ½Ñ Ð¿Ñ€Ð°Ñ†Ñ‹ (-j) не падтрымліваюцца на гÑтае плÑтхорме."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr ""
+
+#: 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 "Ñтвараецца трубаправод прац"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
msgstr ""
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
msgstr ""
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr "ÐбнаўлÑюцца make-файлы....\n"
-#: main.c:1917
+#: main.c:2174
#, c-format
-msgid "Makefile `%s' might loop; not remaking it.\n"
+msgid "Makefile '%s' might loop; not remaking it.\n"
msgstr ""
-#: main.c:1996
+#: main.c:2253
#, c-format
-msgid "Failed to remake makefile `%s'."
+msgid "Failed to remake makefile '%s'."
msgstr ""
-#: main.c:2013
-#, c-format
-msgid "Included makefile `%s' was not found."
-msgstr ""
+#: main.c:2270
+#, fuzzy, c-format
+msgid "Included makefile '%s' was not found."
+msgstr "Makefile \"%s\" Ð½Ñ Ð·Ð½Ð¾Ð¹Ð´Ð·ÐµÐ½"
-#: 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 \"%s\" Ð½Ñ Ð·Ð½Ð¾Ð¹Ð´Ð·ÐµÐ½"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
msgstr ""
-#: main.c:2102
+#: main.c:2354
#, c-format
msgid "Re-executing[%u]:"
msgstr ""
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr "unlink (чаÑовы файл): "
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
msgstr ""
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
msgstr ""
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "ÐÑма мÑÑ‚"
-#: 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 ""
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
msgstr "ВыкарыÑтаньне: %s [выбары] [мÑта] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
@@ -1048,7 +1227,7 @@ msgstr ""
"\n"
"ГÑта праграма пабудавана Ð´Ð»Ñ %s\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
@@ -1057,36 +1236,36 @@ msgstr ""
"\n"
"ГÑта праграма падубавана Ð´Ð»Ñ %s (%s)\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
msgstr "ПаведамлÑйце пра памылкі на <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 "выбар \"-%c\" патрабуе Ñтаноўчы цÑлы довад"
-#: 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 "выбар \"-%c\" патрабуе Ñтаноўчы цÑлы довад"
-#: main.c:3054
+#: main.c:3253
#, fuzzy, c-format
msgid "%sBuilt for %s\n"
msgstr ""
"\n"
"ГÑта праграма пабудавана Ð´Ð»Ñ %s\n"
-#: main.c:3056
+#: main.c:3255
#, fuzzy, c-format
msgid "%sBuilt for %s (%s)\n"
msgstr ""
"\n"
"ГÑта праграма падубавана Ð´Ð»Ñ %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."
@@ -1095,121 +1274,121 @@ msgid ""
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
"# Make data base, printed on %s"
msgstr ""
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
"# Finished Make data base on %s\n"
msgstr ""
-#: main.c:3237
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "ÐевÑÐ´Ð¾Ð¼Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ° %d"
+
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ð¿Ð°Ð¼Ñць вычарпана"
+
+#: misc.c:522
+#, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s: карыÑтальнік %lu (наÑамрÑч %lu), група %lu (наÑамрÑч %lu)\n"
+
+#: misc.c:543
+msgid "Initialized access"
+msgstr ""
+
+#: misc.c:622
+msgid "User access"
+msgstr ""
+
+#: misc.c:670
+msgid "Make access"
+msgstr ""
+
+#: misc.c:704
+msgid "Child access"
+msgstr ""
+
+#: output.c:128
#, fuzzy, c-format
msgid "%s: Entering an unknown directory\n"
msgstr "%s: уваход у невÑдомую Ñ‚Ñчку"
-#: main.c:3239
+#: output.c:130
#, fuzzy, c-format
msgid "%s: Leaving an unknown directory\n"
msgstr "%s: выхад зь невÑдомае Ñ‚Ñчкі"
-#: 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: уваход у Ñ‚Ñчку \"%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: выхад з Ñ‚Ñчкі \"%s\"\n"
-#: main.c:3250
+#: output.c:139
#, fuzzy, c-format
msgid "%s[%u]: Entering an unknown directory\n"
msgstr "%s[%u]: уваход у невÑдомую Ñ‚Ñчку"
-#: main.c:3253
+#: output.c:141
#, fuzzy, c-format
msgid "%s[%u]: Leaving an unknown directory\n"
msgstr "%s[%u]: выхад зь невÑдомае Ñ‚Ñчкі"
-#: 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]: уваход у Ñ‚Ñчку \"%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]: выхад з Ñ‚Ñчкі \"%s\"\n"
-#: misc.c:316
-msgid ". Stop.\n"
+#: output.c:515
+#, c-format
+msgid "write error: %s"
msgstr ""
-#: misc.c:337
-#, c-format
-msgid "Unknown error %d"
-msgstr "ÐевÑÐ´Ð¾Ð¼Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ° %d"
+#: output.c:517
+#, fuzzy
+msgid "write error"
+msgstr "Памылка шыны"
+
+#: output.c:740
+msgid ". Stop.\n"
+msgstr ""
-#: 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 "Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ð¿Ð°Ð¼Ñць вычарпана"
-
-#: misc.c:708
-#, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s: карыÑтальнік %lu (наÑамрÑч %lu), група %lu (наÑамрÑч %lu)\n"
-
-#: misc.c:729
-msgid "Initialized access"
-msgstr ""
-
-#: misc.c:808
-msgid "User access"
-msgstr ""
-
-#: misc.c:856
-msgid "Make access"
-msgstr ""
-
-#: misc.c:890
-msgid "Child access"
-msgstr ""
-
-#: misc.c:954
-#, c-format
-msgid "write error: %s"
-msgstr ""
-
-#: misc.c:956
-#, fuzzy
-msgid "write error"
-msgstr "Памылка шыны"
-
-#: read.c:179
+#: read.c:180
msgid "Reading makefiles...\n"
msgstr "Чытаюцца make-файлы...\n"
#: read.c:333
-#, c-format
-msgid "Reading makefile `%s'"
+#, fuzzy, c-format
+msgid "Reading makefile '%s'"
msgstr "Чытаецца make-файл \"%s\""
#: read.c:335
@@ -1232,572 +1411,606 @@ msgstr ""
msgid " (no ~ expansion)"
msgstr ""
-#: 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 ""
-#: read.c:891
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr ""
+
+#: read.c:987
msgid "recipe commences before first target"
msgstr ""
-#: read.c:940
+#: read.c:1036
#, fuzzy
msgid "missing rule before recipe"
msgstr "прапушчана правіла перад загадамі"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
msgstr "прапушчан падзÑлÑльнік %s"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
msgstr " (вы маеце на ўвазе TAB замеÑÑ‚ 8 прагалаў?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
msgstr ""
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
msgstr ""
-#: read.c:1169
+#: read.c:1269
#, c-format
-msgid "target pattern contains no `%%'"
+msgid "target pattern contains no '%%'"
msgstr ""
-#: read.c:1293
-msgid "missing `endif'"
+#: read.c:1391
+#, fuzzy
+msgid "missing 'endif'"
msgstr "прапушчаны \"endif\""
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr ""
-#: read.c:1367
-msgid "extraneous text after `define' directive"
+#: read.c:1465
+msgid "extraneous text after 'define' directive"
msgstr ""
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
+#: read.c:1490
+#, fuzzy
+msgid "missing 'endef', unterminated 'define'"
msgstr "прапушчаны \"endef\", незавершаны \"define\""
-#: read.c:1420
-msgid "extraneous text after `endef' directive"
+#: read.c:1518
+msgid "extraneous text after 'endef' directive"
msgstr ""
-#: read.c:1490
+#: read.c:1589
#, c-format
-msgid "Extraneous text after `%s' directive"
+msgid "extraneous text after '%s' directive"
msgstr ""
-#: read.c:1499 read.c:1513
-#, c-format
-msgid "extraneous `%s'"
+#: read.c:1598 read.c:1612
+#, fuzzy, c-format
+msgid "extraneous '%s'"
msgstr "зьнешні \"%s\""
-#: read.c:1518
-msgid "only one `else' per conditional"
+#: read.c:1617
+msgid "only one 'else' per conditional"
msgstr ""
-#: read.c:1797
+#: read.c:1892
msgid "Malformed target-specific variable definition"
msgstr ""
-#: read.c:1855
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
msgstr ""
-#: 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
+#: read.c:2084
#, c-format
-msgid "target `%s' doesn't match the target pattern"
+msgid "target '%s' doesn't match the target pattern"
msgstr ""
-#: read.c:1991 read.c:2036
+#: read.c:2099 read.c:2144
#, c-format
-msgid "target file `%s' has both : and :: entries"
+msgid "target file '%s' has both : and :: entries"
msgstr ""
-#: read.c:1997
+#: read.c:2105
#, c-format
-msgid "target `%s' given more than once in the same rule."
+msgid "target '%s' given more than once in the same rule"
msgstr ""
-#: read.c:2006
+#: read.c:2114
#, c-format
-msgid "warning: overriding recipe for target `%s'"
+msgid "warning: overriding recipe for target '%s'"
msgstr ""
-#: read.c:2009
+#: read.c:2117
#, c-format
-msgid "warning: ignoring old recipe for target `%s'"
+msgid "warning: ignoring old recipe for target '%s'"
msgstr ""
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
msgstr ""
-#: 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 "Ðічога Ð½Ñ Ð±Ñ‹Ð»Ð¾ зроблена Ð´Ð»Ñ \"%s\"."
-#: 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\" - ÑаÑтарÑл(а)."
-#: remake.c:306
-#, c-format
-msgid "Pruning file `%s'.\n"
-msgstr ""
+#: remake.c:305
+#, fuzzy, c-format
+msgid "Pruning file '%s'.\n"
+msgstr "УÑÑ‘ ÑÑˆÑ Ð°Ð±Ð½Ð°ÑžÐ»Ñецца файл \"%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 "%sÐÑма правіла каб зрабіць мÑту \"%s\"%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 "%s ÐÑма правіла каб зрабіць мÑту \"%s\", патрÑбную Ð´Ð»Ñ \"%s\"%s"
#: remake.c:413
#, c-format
-msgid "Considering target file `%s'.\n"
+msgid "Considering target file '%s'.\n"
msgstr ""
#: remake.c:420
#, c-format
-msgid "Recently tried and failed to update file `%s'.\n"
+msgid "Recently tried and failed to update file '%s'.\n"
msgstr ""
#: remake.c:432
-#, c-format
-msgid "File `%s' was considered already.\n"
+#, fuzzy, c-format
+msgid "File '%s' was considered already.\n"
msgstr "Файл \"%s\" ужо быў разгледжаны.\n"
#: remake.c:442
-#, c-format
-msgid "Still updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Still updating file '%s'.\n"
msgstr "УÑÑ‘ ÑÑˆÑ Ð°Ð±Ð½Ð°ÑžÐ»Ñецца файл \"%s\".\n"
#: remake.c:445
-#, c-format
-msgid "Finished updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Finished updating file '%s'.\n"
msgstr "Скончана абнаўленьне файла \"%s\".\n"
#: remake.c:474
-#, c-format
-msgid "File `%s' does not exist.\n"
+#, fuzzy, c-format
+msgid "File '%s' does not exist.\n"
msgstr "Файл \"%s\" Ð½Ñ Ð¹Ñнуе.\n"
#: remake.c:481
#, 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 ""
-#: remake.c:494 remake.c:1016
+#: remake.c:494 remake.c:1019
#, c-format
-msgid "Found an implicit rule for `%s'.\n"
+msgid "Found an implicit rule for '%s'.\n"
msgstr ""
-#: remake.c:496 remake.c:1018
+#: remake.c:496 remake.c:1021
#, c-format
-msgid "No implicit rule found for `%s'.\n"
+msgid "No implicit rule found for '%s'.\n"
msgstr ""
#: remake.c:502
-#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
-msgstr "Ðічога Ð½Ñ Ð±Ñ‹Ð»Ð¾ зроблена Ð´Ð»Ñ \"%s\"."
-
-#: remake.c:535 remake.c:1057
#, c-format
-msgid "Circular %s <- %s dependency dropped."
+msgid "Using default recipe for '%s'.\n"
msgstr ""
-#: remake.c:651
+#: remake.c:535 remake.c:1067
#, c-format
-msgid "Finished prerequisites of target file `%s'.\n"
+msgid "Circular %s <- %s dependency dropped."
msgstr ""
-#: remake.c:657
-#, c-format
-msgid "The prerequisites of `%s' are being made.\n"
-msgstr ""
+#: remake.c:655
+#, fuzzy, c-format
+msgid "Finished prerequisites of target file '%s'.\n"
+msgstr "Скончана абнаўленьне файла \"%s\".\n"
-#: remake.c:670
+#: remake.c:661
#, c-format
-msgid "Giving up on target file `%s'.\n"
+msgid "The prerequisites of '%s' are being made.\n"
msgstr ""
-#: remake.c:675
-#, c-format
-msgid "Target `%s' not remade because of errors."
-msgstr ""
+#: remake.c:674
+#, fuzzy, c-format
+msgid "Giving up on target file '%s'.\n"
+msgstr "Скончана абнаўленьне файла \"%s\".\n"
-#: remake.c:727
+#: remake.c:679
#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
+msgid "Target '%s' not remade because of errors."
msgstr ""
-#: remake.c:732
+#: remake.c:731
#, c-format
-msgid "Prerequisite `%s' of target `%s' does not exist.\n"
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
msgstr ""
-#: remake.c:737
-#, c-format
-msgid "Prerequisite `%s' is newer than target `%s'.\n"
-msgstr ""
+#: remake.c:736
+#, fuzzy, c-format
+msgid "Prerequisite '%s' of target '%s' does not exist.\n"
+msgstr "Файл \"%s\" Ð½Ñ Ð¹Ñнуе.\n"
-#: remake.c:740
+#: remake.c:741
#, c-format
-msgid "Prerequisite `%s' is older than target `%s'.\n"
+msgid "Prerequisite '%s' is newer than target '%s'.\n"
msgstr ""
-#: remake.c:758
+#: remake.c:744
#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
+msgid "Prerequisite '%s' is older than target '%s'.\n"
msgstr ""
-#: remake.c:765
+#: remake.c:762
#, c-format
-msgid "No recipe for `%s' and no prerequisites actually changed.\n"
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
msgstr ""
-#: remake.c:770
+#: remake.c:769
#, c-format
-msgid "Making `%s' due to always-make flag.\n"
+msgid "No recipe for '%s' and no prerequisites actually changed.\n"
msgstr ""
-#: remake.c:778
+#: remake.c:774
#, c-format
-msgid "No need to remake target `%s'"
+msgid "Making '%s' due to always-make flag.\n"
msgstr ""
-#: remake.c:780
-#, c-format
-msgid "; using VPATH name `%s'"
-msgstr ""
+#: remake.c:782
+#, fuzzy, c-format
+msgid "No need to remake target '%s'"
+msgstr "%sÐÑма правіла каб зрабіць мÑту \"%s\"%s"
-#: remake.c:800
+#: remake.c:784
#, c-format
-msgid "Must remake target `%s'.\n"
+msgid "; using VPATH name '%s'"
msgstr ""
-#: remake.c:806
-#, c-format
-msgid " Ignoring VPATH name `%s'.\n"
-msgstr ""
+#: remake.c:804
+#, fuzzy, c-format
+msgid "Must remake target '%s'.\n"
+msgstr "%sÐÑма правіла каб зрабіць мÑту \"%s\"%s"
-#: remake.c:815
+#: remake.c:810
#, c-format
-msgid "Recipe of `%s' is being run.\n"
+msgid " Ignoring VPATH name '%s'.\n"
msgstr ""
-#: remake.c:822
+#: remake.c:819
#, c-format
-msgid "Failed to remake target file `%s'.\n"
+msgid "Recipe of '%s' is being run.\n"
msgstr ""
-#: remake.c:825
-#, c-format
-msgid "Successfully remade target file `%s'.\n"
-msgstr ""
+#: remake.c:826
+#, fuzzy, c-format
+msgid "Failed to remake target file '%s'.\n"
+msgstr "%sÐÑма правіла каб зрабіць мÑту \"%s\"%s"
-#: remake.c:828
+#: remake.c:829
#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
+msgid "Successfully remade target file '%s'.\n"
msgstr ""
-#: remake.c:1024
+#: remake.c:832
#, c-format
-msgid "Using default commands for `%s'.\n"
+msgid "Target file '%s' needs to be remade under -q.\n"
msgstr ""
-#: remake.c:1357
-#, c-format
-msgid "Warning: File `%s' has modification time in the future"
+#: remake.c:1027
+#, fuzzy, c-format
+msgid "Using default commands for '%s'.\n"
+msgstr "ÐевÑдомы ўбудаваны загад \"%s\".\n"
+
+#: remake.c:1372
+#, fuzzy, c-format
+msgid "Warning: File '%s' has modification time in the future"
msgstr "Увага! Файл \"%s\" мае Ñ‡Ð°Ñ Ð·ÑŒÐ¼ÑненьнÑ, Ñкі ÑˆÑ‡Ñ Ð½Ðµ надышоў."
-#: 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 "Увага! Файл \"%s\" мае Ñ‡Ð°Ñ Ð·ÑŒÐ¼ÑÐ½ÐµÐ½ÑŒÐ½Ñ %.2g Ñ, Ñкі ÑˆÑ‡Ñ Ð½Ðµ надышоў."
-#: remake.c:1569
+#: remake.c:1583
#, c-format
-msgid ".LIBPATTERNS element `%s' is not a pattern"
+msgid ".LIBPATTERNS element '%s' is not a pattern"
msgstr ""
-#: 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"
msgstr ""
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
msgstr ""
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
"# %u implicit rules, %u"
msgstr ""
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr " Ñ‚Ñрмінал."
-#: rule.c:534
+#: rule.c:531
#, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
msgstr ""
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "невÑдомы Ñыгнал"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
msgstr ""
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr ""
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
msgstr ""
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
msgstr "ÐÐµÐ´Ð°Ð¿ÑƒÑˆÑ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ñ–Ð½ÑтрукцыÑ"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
msgstr ""
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr ""
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
msgstr ""
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
msgstr ""
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
msgstr ""
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "Забіты"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr "Памылка шыны"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr ""
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "ДрÑнны ÑÑ‹ÑÑ‚Ñмны выклік"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr "Зламаны трубаправод"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr ""
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
msgstr "Завершаны"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr ""
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr ""
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
msgstr ""
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
msgstr ""
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "Спынен"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
msgstr "Спынен (tty увод)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
msgstr "Спынен (вывад на tty)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "Спынена (Ñыгнал)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
msgstr ""
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
msgstr ""
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
msgstr ""
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
msgstr ""
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
msgstr "Ðкно зьменена"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr ""
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
msgstr ""
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
msgstr "магчым У/В"
-#: signame.c:204
+#: signame.c:202
msgid "SIGWIND"
msgstr ""
-#: signame.c:207
+#: signame.c:205
msgid "SIGPHONE"
msgstr ""
-#: signame.c:213
+#: signame.c:211
msgid "Resource lost"
msgstr ""
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "Сыгнал пагрозы"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr "Запыт аб зьвеÑтках"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
msgstr ""
-#: strcache.c:235
+#: strcache.c:236
+#, c-format
+msgid ""
+"\n"
+"%s No strcache buffers\n"
+msgstr ""
+
+#: strcache.c:266
#, c-format
msgid ""
"\n"
-"%s # of strings in strcache: %d / lookups = %lu / hits = %lu\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
msgstr ""
-#: strcache.c:237
+#: strcache.c:270
#, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+msgid ""
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
msgstr ""
-#: strcache.c:239
+#: strcache.c:280
#, c-format
-msgid "%s strcache used: 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:241
+#: strcache.c:283
#, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
msgstr ""
-#: strcache.c:244
+#: 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
+msgid ""
+"# hash-table stats:\n"
"# "
msgstr ""
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "аўтаматычна"
+
+#: variable.c:1610
msgid "default"
msgstr "дапомны"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr "аÑÑродзьдзе"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr "make-файл"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
msgstr ""
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr "загадны радок"
-#: variable.c:1556
-msgid "`override' directive"
+#: variable.c:1625
+#, fuzzy
+msgid "'override' directive"
msgstr "дырÑктыва \"override\""
-#: variable.c:1559
-msgid "automatic"
-msgstr "аўтаматычна"
-
-#: variable.c:1570
-#, c-format
-msgid " (from `%s', line %lu)"
+#: variable.c:1636
+#, fuzzy, c-format
+msgid " (from '%s', line %lu)"
msgstr " (з \"%s\", радок %lu)"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
msgstr ""
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1805,137 +2018,138 @@ msgstr ""
"\n"
"# ПераменныÑ\n"
-#: variable.c:1627
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
msgstr ""
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
msgstr ""
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
"# %u pattern-specific variable values"
msgstr ""
-#: variable.h:219
-#, c-format
-msgid "warning: undefined variable `%.*s'"
+#: variable.h:224
+#, fuzzy, c-format
+msgid "warning: undefined variable '%.*s'"
msgstr "Увага! ÐÑÐ²Ñ‹Ð·Ð½Ð°Ñ‡Ð°Ð½Ð°Ñ Ð¿ÐµÑ€Ð°Ð¼ÐµÐ½Ð½Ð°Ñ \"%.*s\""
-#: vmsfunctions.c:92
+#: vmsfunctions.c:91
#, c-format
msgid "sys$search() failed with %d\n"
msgstr ""
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr ""
-#: vmsjobs.c:184
+#: vmsjobs.c:178
#, c-format
-msgid "internal error: `%s' command_state"
+msgid "internal error: '%s' command_state"
msgstr ""
-#: vmsjobs.c:289
+#: vmsjobs.c:286
#, c-format
msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
msgstr ""
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr ""
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr ""
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr ""
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
msgstr "ÐевÑдомы ўбудаваны загад \"%s\".\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr "Памылка! Парожні загад.\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr "Перанакіраваны ўвод з %s\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr ""
-#: vmsjobs.c:523
+#: vmsjobs.c:518
#, fuzzy, c-format
msgid "Append output to %s\n"
msgstr "Перанакіраваны вывад у %s\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
msgstr "Перанакіраваны вывад у %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 ""
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr ""
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
msgstr ""
-#: vpath.c:603
-msgid "# No `vpath' search paths."
-msgstr ""
+#: vpath.c:600
+#, fuzzy
+msgid "# No 'vpath' search paths."
+msgstr " (пошук шлÑху)"
-#: vpath.c:605
+#: vpath.c:602
#, c-format
msgid ""
"\n"
-"# %u `vpath' search paths.\n"
+"# %u 'vpath' search paths.\n"
msgstr ""
-#: vpath.c:608
+#: vpath.c:605
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
-#: vpath.c:614
+#: vpath.c:611
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
diff --git a/po/cs.gmo b/po/cs.gmo
new file mode 100644
index 0000000..babe63b
--- /dev/null
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
new file mode 100644
index 0000000..c679df9
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,2301 @@
+# Czech translation of make.
+# Copyright (C) 2010 Free Software Foundation, Inc.
+# This file is distributed under the same license as the make package.
+# Petr Pisar <petr.pisar@atlas.cz>, 2011, 2013.
+#
+# directive → klíÄové slovo (nepÅ™ekládat jako příkaz kvůli zámÄ›nÄ›)
+# hash → haÅ¡ (zapisovat Äesky)
+# chain → řetězec
+# jobserver → správce úloh
+# make (verb) → vyrobit
+# make (substantivum) → (program) make (skloňovat, nelze-li jinak)
+# makefile → makefile (nepřekládat, ale skloňovat)
+# (archive) member → prvek
+# (C structure) member → Älen
+# pattern → vzor (nikoliv vzorek)
+# prerequisite → prerekvizita (předpoklad se nehodí jako duální slovo
+# k target)
+# reap (child) → uklidit potomka
+# recipe → návod
+# target → cíl
+# token → token (nepřekládat)
+#
+# SECONDARY, INTERMEDIATE, PRECIOUS apod. nepřekládat, i když jsou použity
+# jako přívlastek. Jedná se o identifikátory jazyka make.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: make 3.99.93\n"
+"Report-Msgid-Bugs-To: bug-make@gnu.org\n"
+"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"PO-Revision-Date: 2013-10-02 05:55+0200\n"
+"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
+"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ar.c:46
+#, c-format
+msgid "attempt to use unsupported feature: '%s'"
+msgstr "pokus použít nepodporovanou vlastnost: „%s“"
+
+#: ar.c:123
+msgid "touch archive member is not available on VMS"
+msgstr "nastavení Äasu zmÄ›ny prvku archivu není na VMS dostupné"
+
+#: ar.c:147
+#, c-format
+msgid "touch: Archive '%s' does not exist"
+msgstr "touch: Archiv „%s“ neexistuje"
+
+#: ar.c:150
+#, c-format
+msgid "touch: '%s' is not a valid archive"
+msgstr "touch: „%s“ není platným archivem"
+
+#: ar.c:157
+#, c-format
+msgid "touch: Member '%s' does not exist in '%s'"
+msgstr "touch: Prvek „%s“ v „%s“ neexistuje"
+
+#: ar.c:164
+#, c-format
+msgid "touch: Bad return code from ar_member_touch on '%s'"
+msgstr "touch: Chybný návratový kód z funkce ar_member_touch volané nad „%s“"
+
+#: arscan.c:67
+#, c-format
+msgid "lbr$set_module() failed to extract module info, status = %d"
+msgstr ""
+"funkce lbr$set_module() nedokázala vytáhnout údaje o modulu, status = %d"
+
+#: arscan.c:173
+#, c-format
+msgid "lbr$ini_control() failed with status = %d"
+msgstr "funkce lbr$ini_control() selhala se stavem = %d"
+
+#: arscan.c:185
+#, c-format
+msgid "unable to open library '%s' to lookup member '%s'"
+msgstr "není možné otevřít knihovnu „%s“ potřebnou k najití prvku „%s“"
+
+# TODO: Pluralize
+#: arscan.c:847
+#, c-format
+msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
+msgstr "Prvek „%s“%s: %'ld bajtů at %ld (%ld).\n"
+
+#: arscan.c:848
+msgid " (name might be truncated)"
+msgstr " (název může být zkrácen)"
+
+#: arscan.c:850
+#, c-format
+msgid " Date %s"
+msgstr " Datum %s"
+
+#: arscan.c:851
+#, c-format
+msgid " uid = %d, gid = %d, mode = 0%o.\n"
+msgstr " UID = %d, GID = %d, práva = 0%o\n"
+
+#: commands.c:406
+#, c-format
+msgid "Recipe has too many lines (%ud)"
+msgstr "Návod má příliš mnoho řádků (%ud)"
+
+#: commands.c:507
+msgid "*** Break.\n"
+msgstr "*** Přerušeno.\n"
+
+#: commands.c:630
+#, c-format
+msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
+msgstr "*** [%s] Prvek archivu „%s“ je možná chybný, nesmazáno"
+
+#: commands.c:633
+#, c-format
+msgid "*** Archive member '%s' may be bogus; not deleted"
+msgstr "*** Prvek archivu „%s“ ne možná chybný, nesmazáno"
+
+#: commands.c:646
+#, c-format
+msgid "*** [%s] Deleting file '%s'"
+msgstr "*** [%s] Maže se soubor „%s“"
+
+#: commands.c:648
+#, c-format
+msgid "*** Deleting file '%s'"
+msgstr "*** Maže se soubor „%s“"
+
+#: commands.c:684
+msgid "# recipe to execute"
+msgstr "# spustitelný návod"
+
+#: commands.c:687
+msgid " (built-in):"
+msgstr " (vestavěný):"
+
+#: commands.c:689
+#, c-format
+msgid " (from '%s', line %lu):\n"
+msgstr " (z „%s“, řádek %lu):\n"
+
+#: dir.c:989
+msgid ""
+"\n"
+"# Directories\n"
+msgstr ""
+"\n"
+"# Adresáře\n"
+
+#: dir.c:1001
+#, c-format
+msgid "# %s: could not be stat'd.\n"
+msgstr "# %s: nebylo možné nad ním zavolat stat().\n"
+
+#: dir.c:1005
+#, c-format
+msgid "# %s (key %s, mtime %d): could not be opened.\n"
+msgstr "# %s (klÃ­Ä %s, Äas zmÄ›ny obsahu %d): nebylo možné otevřít.\n"
+
+#: dir.c:1009
+#, c-format
+msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
+msgstr "# %s (zařízení %d, iuzel [%d,%d,%d]): nebylo možné otevřít.\n"
+
+#: dir.c:1014
+#, c-format
+msgid "# %s (device %ld, inode %ld): could not be opened.\n"
+msgstr "# %s (zařízení %ld, iuzel %ld): nebylo možné otevřít.\n"
+
+#: dir.c:1041
+#, c-format
+msgid "# %s (key %s, mtime %d): "
+msgstr "# %s (klÃ­Ä %s, Äas zmÄ›ny obsahu %d): "
+
+#: dir.c:1045
+#, c-format
+msgid "# %s (device %d, inode [%d,%d,%d]): "
+msgstr "# %s (zařízení %d, iuzel [%d,%d,%d]): "
+
+#: dir.c:1050
+#, c-format
+msgid "# %s (device %ld, inode %ld): "
+msgstr "# %s (zařízení %ld, iuzel %ld): "
+
+#: dir.c:1056 dir.c:1077
+msgid "No"
+msgstr "Žádný"
+
+# TODO: Pluralize
+#: dir.c:1059 dir.c:1080
+msgid " files, "
+msgstr " souborů, "
+
+#: dir.c:1061 dir.c:1082
+msgid "no"
+msgstr "žádný "
+
+# TODO: Pluralize
+#: dir.c:1064
+msgid " impossibilities"
+msgstr " nemožností "
+
+#: dir.c:1068
+msgid " so far."
+msgstr " zatím."
+
+# TODO: Pluralize
+#: dir.c:1085
+#, c-format
+msgid " impossibilities in %lu directories.\n"
+msgstr " nemožností v %lu adresářích.\n"
+
+#: expand.c:125
+#, c-format
+msgid "Recursive variable '%s' references itself (eventually)"
+msgstr "Rekurzivní proměnná „%s“ odkazuje na sebe (nakonec)"
+
+#: expand.c:269
+msgid "unterminated variable reference"
+msgstr "neukonÄený odkaz na promÄ›nnou"
+
+#: file.c:269
+#, c-format
+msgid "Recipe was specified for file '%s' at %s:%lu,"
+msgstr "Návod byl urÄen pro soubor „%s“ v %s:%lu,"
+
+#: file.c:274
+#, c-format
+msgid "Recipe for file '%s' was found by implicit rule search,"
+msgstr "Návod pro soubor „%s“ byl nalezen hledáním implicitních pravidel,"
+
+#: file.c:277
+#, c-format
+msgid "but '%s' is now considered the same file as '%s'."
+msgstr "ale „%s“ se nyní považuje za soubor totožný s „%s“."
+
+#: file.c:280
+#, c-format
+msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
+msgstr "Návod pro „%s“ bude ignorován ve prospěch návodu pro „%s“."
+
+#: file.c:300
+#, c-format
+msgid "can't rename single-colon '%s' to double-colon '%s'"
+msgstr ""
+"„%s“ s jednoduchou dvojteÄkou nelze pÅ™ejmenovat na „%s“ s dvojitou dvojteÄkou"
+
+#: file.c:305
+#, c-format
+msgid "can't rename double-colon '%s' to single-colon '%s'"
+msgstr ""
+"„%s“ s dvojitou dvojteÄkou nelze pÅ™ejmenovat na „%s“ s jednoduchou dvojteÄkou"
+
+#: file.c:396
+#, c-format
+msgid "*** Deleting intermediate file '%s'"
+msgstr "Maže se mezilehlý soubor „%s“ "
+
+#: file.c:400
+msgid "Removing intermediate files...\n"
+msgstr "Odstraňují se mezilehlé soubory…\n"
+
+#: file.c:808
+#, c-format
+msgid "%s: Timestamp out of range; substituting %s"
+msgstr "%s: Časový údaj mimo rozsah, nahrazuje se %s"
+
+#: file.c:809
+msgid "Current time"
+msgstr "Aktuální Äas"
+
+#: file.c:949
+msgid "# Not a target:"
+msgstr "# Není cílem:"
+
+#: file.c:954
+msgid "# Precious file (prerequisite of .PRECIOUS)."
+msgstr "# Cenný soubor (prerekvizita k .PRECIOUS)."
+
+#: file.c:956
+msgid "# Phony target (prerequisite of .PHONY)."
+msgstr "# Falešný cíl (prerekvizita k .PHONY)."
+
+#: file.c:958
+msgid "# Command line target."
+msgstr "# Cíl příkazové řádky."
+
+#: file.c:960
+msgid "# A default, MAKEFILES, or -include/sinclude makefile."
+msgstr "# Default, MAKEFILES nebo -include/sinclude makefile."
+
+#: file.c:962
+msgid "# Builtin rule"
+msgstr "# Vestavěné pravidlo"
+
+#: file.c:964
+msgid "# Implicit rule search has been done."
+msgstr "# Hledalo se za pomoci implicitních pravidel."
+
+#: file.c:965
+msgid "# Implicit rule search has not been done."
+msgstr "# Nehledalo se za pomoci implicitních pravidel."
+
+#: file.c:967
+#, c-format
+msgid "# Implicit/static pattern stem: '%s'\n"
+msgstr "# Kořen implicitního/statického vzoru: „%s“\n"
+
+#: file.c:969
+msgid "# File is an intermediate prerequisite."
+msgstr "# Soubor je mezilehlá prerekvizita."
+
+#: file.c:973
+msgid "# Also makes:"
+msgstr "# Rovněž vyrábí:"
+
+#: file.c:979
+msgid "# Modification time never checked."
+msgstr "# Čas změny obsahu se nikdy nekontroluje."
+
+#: file.c:981
+msgid "# File does not exist."
+msgstr "# Soubor neexistuje."
+
+#: file.c:983
+msgid "# File is very old."
+msgstr "# Soubor je velmi starý."
+
+#: file.c:988
+#, c-format
+msgid "# Last modified %s\n"
+msgstr "# Obsah naposledy změněn v %s\n"
+
+#: file.c:991
+msgid "# File has been updated."
+msgstr "# Soubor byl aktualizován."
+
+#: file.c:991
+msgid "# File has not been updated."
+msgstr "# Soubor nebyl aktualizován."
+
+#: file.c:995
+msgid "# Recipe currently running (THIS IS A BUG)."
+msgstr "# Návod se právě vykonává (TOTO JE CHYBA)."
+
+#: file.c:998
+msgid "# Dependencies recipe running (THIS IS A BUG)."
+msgstr "# Návod pro závislosti se právě vykonává (TOTO JE CHYBA)."
+
+#: file.c:1007
+msgid "# Successfully updated."
+msgstr "# Úspěšně aktualizováno."
+
+#: file.c:1011
+msgid "# Needs to be updated (-q is set)."
+msgstr "# Je třeba aktualizovat (-q je nastaveno)."
+
+#: file.c:1014
+msgid "# Failed to be updated."
+msgstr "# Aktualizace selhala."
+
+#: file.c:1019
+msgid "# Invalid value in 'command_state' member!"
+msgstr "# Neplatná hodnota v Älenu „command_state“!"
+
+#: file.c:1038
+msgid ""
+"\n"
+"# Files"
+msgstr ""
+"\n"
+"# Soubory"
+
+#: file.c:1042
+msgid ""
+"\n"
+"# files hash-table stats:\n"
+"# "
+msgstr ""
+"\n"
+"# Statistika hašovací tabulky souborů:\n"
+"# "
+
+#: file.c:1051
+#, c-format
+msgid "%s: Field '%s' not cached: %s"
+msgstr "%s: Položka „%s“ není v keši: %s"
+
+#: function.c:742
+msgid "non-numeric first argument to 'word' function"
+msgstr "neÄíselný první argument funkce „word“"
+
+#: function.c:747
+msgid "first argument to 'word' function must be greater than 0"
+msgstr "první argument funkce „word“ musí být vetší než 0"
+
+#: function.c:767
+msgid "non-numeric first argument to 'wordlist' function"
+msgstr "neÄíselný první argument funkce „wordlist“"
+
+#: function.c:769
+msgid "non-numeric second argument to 'wordlist' function"
+msgstr "neÄíselný druhý argument funkce „wordlist“"
+
+#: function.c:1460
+#, c-format
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
+msgstr "windows32_openpipe: DuplicateHandle(vstup) selhalo (chyba=%ld)\n"
+
+#: function.c:1483
+#, c-format
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
+msgstr ""
+"windows32_openpipe: DuplicateHandle(chybový výstup) selhalo (chyba=%ld)\n"
+
+#: function.c:1490
+#, c-format
+msgid "CreatePipe() failed (e=%ld)\n"
+msgstr "CreatePipe() selhalo (chyba=%ld)\n"
+
+#: function.c:1498
+msgid "windows32_openpipe(): process_init_fd() failed\n"
+msgstr "windows32_openpipe(): process_init_fd() selhalo\n"
+
+#: function.c:1792
+#, c-format
+msgid "Cleaning up temporary batch file %s\n"
+msgstr "DoÄasný dávkový soubor %s se uklízí\n"
+
+#: function.c:2151
+#, c-format
+msgid "open: %s: %s"
+msgstr "otevření: %s: %s"
+
+#: function.c:2158
+#, c-format
+msgid "write: %s: %s"
+msgstr "zápis: %s: %s"
+
+#: function.c:2164
+#, c-format
+msgid "Invalid file operation: %s"
+msgstr "Neplatná operace na souboru: %s"
+
+#: function.c:2279
+#, c-format
+msgid "insufficient number of arguments (%d) to function '%s'"
+msgstr "nedostateÄný poÄet argumentů (%d) funkce „%s“"
+
+#: function.c:2291
+#, c-format
+msgid "unimplemented on this platform: function '%s'"
+msgstr "na této platformě neimplementováno: funkce „%s“"
+
+#: function.c:2354
+#, c-format
+msgid "unterminated call to function '%s': missing '%c'"
+msgstr "neukonÄené volání funkce „%s“: chybí „%c“"
+
+#: function.c:2546
+msgid "Empty function name\n"
+msgstr ""
+
+#: function.c:2548
+#, fuzzy, c-format
+msgid "Invalid function name: %s\n"
+msgstr "Neplatná operace na souboru: %s"
+
+#: function.c:2550
+#, c-format
+msgid "Function name too long: %s\n"
+msgstr "Název funkce je příliš dlouhý: %s\n"
+
+#: function.c:2552
+#, c-format
+msgid "Invalid minimum argument count (%d) for function %s\n"
+msgstr "Neplatný minimální poÄet argumentů (%d) funkce %s\n"
+
+#: function.c:2555
+#, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "Neplatný maximální poÄet argumentů (%d) funkce %s\n"
+
+#: getopt.c:659
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: pÅ™epínaÄ â€ž%s“ není jednoznaÄný\n"
+
+#: getopt.c:683
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: pÅ™epínaÄe „--%s“ nepÅ™ipouÅ¡tí argument\n"
+
+#: getopt.c:688
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: pÅ™epínaÄ â€ž%c%s“ nepÅ™ipouÅ¡tí argument\n"
+
+#: getopt.c:705 getopt.c:878
+#, c-format
+msgid "%s: option '%s' requires an argument\n"
+msgstr "%s: pÅ™epínaÄ â€ž%s“ vyžaduje argument\n"
+
+#: getopt.c:734
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: nerozpoznaný pÅ™epínaÄ â€ž--%s“\n"
+
+#: getopt.c:738
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: nerozpoznaný pÅ™epínaÄ â€ž%c%s“\n"
+
+#: getopt.c:764
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: zakázaný pÅ™epínaÄ – %c\n"
+
+#: getopt.c:767
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: neplatný pÅ™epínaÄ – %c\n"
+
+#: getopt.c:797 getopt.c:927
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: pÅ™epínaÄ vyžaduje argument – %c\n"
+
+#: getopt.c:844
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: pÅ™epínaÄ â€ž-W %s“ není jednoznaÄný\n"
+
+#: getopt.c:862
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: pÅ™epínaÄ â€ž-W %s“ nepÅ™ipouÅ¡tí argument\n"
+
+#: guile.c:55
+#, c-format
+msgid "guile: Expanding '%s'\n"
+msgstr "guile: Expanduje se „%s“\n"
+
+#: guile.c:71
+#, c-format
+msgid "guile: Evaluating '%s'\n"
+msgstr "guile: Vyhodnocuje se „%s“\n"
+
+# TODO: Pluralize
+#: hash.c:49
+#, c-format
+msgid "can't allocate %lu bytes for hash table: memory exhausted"
+msgstr "nelze alokovat %lu bajtů na haÅ¡ovací tabulku: paměť vyÄerpána"
+
+#: hash.c:280
+#, c-format
+msgid "Load=%ld/%ld=%.0f%%, "
+msgstr "Zátěž = %ld/%ld = %.0f %%, "
+
+#: hash.c:282
+#, c-format
+msgid "Rehash=%d, "
+msgstr "Přehašováno = %d, "
+
+#: hash.c:283
+#, c-format
+msgid "Collisions=%ld/%ld=%.0f%%"
+msgstr "Kolizí = %ld/%ld = %.0f %%"
+
+#: implicit.c:38
+#, c-format
+msgid "Looking for an implicit rule for '%s'.\n"
+msgstr "Hledá se implicitní pravidlo pro „%s“.\n"
+
+#: implicit.c:54
+#, c-format
+msgid "Looking for archive-member implicit rule for '%s'.\n"
+msgstr "Hledá se implicitní pravidlo prvku archivu pro „%s“.\n"
+
+#: implicit.c:310
+msgid "Avoiding implicit rule recursion.\n"
+msgstr "Zabraňuje se rekurzi implicitního pravidla.\n"
+
+#: implicit.c:486
+#, c-format
+msgid "Stem too long: '%.*s'.\n"
+msgstr "Kořen je příliš dlouhý „%.*s“.\n"
+
+#: implicit.c:491
+#, c-format
+msgid "Trying pattern rule with stem '%.*s'.\n"
+msgstr "Zkouší se pravidlo vzoru s kořenem „%.*s“.\n"
+
+#: implicit.c:697
+#, c-format
+msgid "Rejecting impossible rule prerequisite '%s'.\n"
+msgstr "Zamítá se nemožná prerekvizita pravidla „%s“.\n"
+
+#: implicit.c:698
+#, c-format
+msgid "Rejecting impossible implicit prerequisite '%s'.\n"
+msgstr "Zamítá se nemožná implicitní prerekvizita „%s“.\n"
+
+#: implicit.c:711
+#, c-format
+msgid "Trying rule prerequisite '%s'.\n"
+msgstr "Zkouší se prerekvizita pravidla „%s“.\n"
+
+#: implicit.c:712
+#, c-format
+msgid "Trying implicit prerequisite '%s'.\n"
+msgstr "Zkouší se implicitní prerekvizita „%s“.\n"
+
+#: implicit.c:751
+#, c-format
+msgid "Found prerequisite '%s' as VPATH '%s'\n"
+msgstr "Nalezena prerekvizita „%s“ jako VPATH „%s“\n"
+
+#: implicit.c:765
+#, c-format
+msgid "Looking for a rule with intermediate file '%s'.\n"
+msgstr "Hledá se pravidlo s mezilehlým souborem „%s“.\n"
+
+#: job.c:361
+msgid "Cannot create a temporary file\n"
+msgstr "DoÄasný soubor nelze vytvoÅ™it\n"
+
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (obraz paměti uložen)"
+
+#: job.c:487
+msgid " (ignored)"
+msgstr " (ignorováno)"
+
+#: job.c:491 job.c:1994
+msgid "<builtin>"
+msgstr "<vestavěný>"
+
+#: job.c:501
+#, c-format
+msgid "%s: recipe for target '%s' failed"
+msgstr "%s: návod pro cíl „%s“ selhal"
+
+#: job.c:510
+#, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Chyba 0x%x%s"
+
+#: job.c:513
+#, c-format
+msgid "%s[%s] Error %d%s"
+msgstr "%s[%s] Chyba %d%s"
+
+#: job.c:517
+#, c-format
+msgid "%s[%s] %s%s%s"
+msgstr "%s[%s] %s%s%s"
+
+#: job.c:609
+msgid "*** Waiting for unfinished jobs...."
+msgstr "*** ÄŒeká se na nedokonÄené úlohy…"
+
+#: job.c:639
+#, c-format
+msgid "Live child %p (%s) PID %s %s\n"
+msgstr "Živý potomek %p (%s) PID %s %s\n"
+
+# Continuation of Live child
+#: job.c:641 job.c:831 job.c:950 job.c:1687
+msgid " (remote)"
+msgstr " (vzdálený)"
+
+#: job.c:829
+#, c-format
+msgid "Reaping losing child %p PID %s %s\n"
+msgstr "Uklízí se prohrávající potomek %p PID %s %s\n"
+
+#: job.c:830
+#, c-format
+msgid "Reaping winning child %p PID %s %s\n"
+msgstr "Uklízí se vyhrávající potomek %p PID %s %s\n"
+
+#: job.c:837
+#, c-format
+msgid "Cleaning up temp batch file %s\n"
+msgstr "Uklízí se doÄasný dávkový soubor %s\n"
+
+#: job.c:843
+#, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "Úklid doÄasného dávkového souboru %s selhal (%d)\n"
+
+#: job.c:949
+#, c-format
+msgid "Removing child %p PID %s%s from chain.\n"
+msgstr "Z řetězce se odstraňuje potomek %p PID %s%s.\n"
+
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr "uvolnění semaforu správce úloh: (Chyba %ld: %s)"
+
+#: job.c:1011 job.c:1025
+#, c-format
+msgid "Released token for child %p (%s).\n"
+msgstr "Uvolněn token pro potomka %p (%s).\n"
+
+#: job.c:1023
+msgid "write jobserver"
+msgstr "zápis správce úloh"
+
+#: job.c:1612 job.c:2332
+#, c-format
+msgid "process_easy() failed to launch process (e=%ld)\n"
+msgstr "process_easy() nedokázala spustit proces (chyba=%ld)\n"
+
+# FIXME: Pluralize
+#: job.c:1616 job.c:2336
+#, c-format
+msgid ""
+"\n"
+"Counted %d args in failed launch\n"
+msgstr ""
+"\n"
+"NapoÄítáno %d argumentů v selhaném spuÅ¡tÄ›ní\n"
+
+#: job.c:1685
+#, c-format
+msgid "Putting child %p (%s) PID %s%s on the chain.\n"
+msgstr "Do řetězce se přidává potomek %p (%s) PID %s%s.\n"
+
+#: job.c:1953
+#, c-format
+msgid "semaphore or child process wait: (Error %ld: %s)"
+msgstr "Äekání na semafor nebo potomka: (Chyba %ld: %s)"
+
+#: job.c:1967
+#, c-format
+msgid "Obtained token for child %p (%s).\n"
+msgstr "Získán token pro potomka %p (%s).\n"
+
+#: job.c:1977
+msgid "read jobs pipe"
+msgstr "Ätení z roury úloh"
+
+#: job.c:2003
+#, c-format
+msgid "%s: target '%s' does not exist"
+msgstr "%s: cíl „%s“ neexistuje"
+
+#: job.c:2005
+#, c-format
+msgid "%s: update target '%s' due to: %s"
+msgstr "%s: aktualizovat cíl „%s“ potřebný pro %s"
+
+#: job.c:2118
+msgid "cannot enforce load limits on this operating system"
+msgstr "na tomto operaÄním systému nelze vynutit omezení zátěže"
+
+#: job.c:2120
+msgid "cannot enforce load limit: "
+msgstr "omezení zátěže nelze vynutit: "
+
+#: job.c:2199
+msgid "no more file handles: could not duplicate stdin\n"
+msgstr "nedostatek deskriptorů souboru: standardní vstup nelze zduplikovat\n"
+
+#: job.c:2210
+msgid "no more file handles: could not duplicate stdout\n"
+msgstr "nedostatek deskriptorů souboru: standardní výstup nelze zduplikovat\n"
+
+#: job.c:2223
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr "nedostatek deskriptorů souboru: chybový výstup nelze zduplikovat\n"
+
+#: job.c:2238
+msgid "Could not restore stdin\n"
+msgstr "Standardní vstup nelze obnovit\n"
+
+#: job.c:2246
+msgid "Could not restore stdout\n"
+msgstr "Standardní výstup nelze obnovit\n"
+
+#: job.c:2254
+msgid "Could not restore stderr\n"
+msgstr "Chybový výstup nelze obnovit\n"
+
+#: job.c:2365
+#, c-format
+msgid "make reaped child pid %s, still waiting for pid %s\n"
+msgstr "make uklidil potomka s PID %s, stále se Äeká na PID %s\n"
+
+#: job.c:2403
+#, c-format
+msgid "%s: Command not found"
+msgstr "%s: Příkaz nenalezen"
+
+#: job.c:2463
+#, c-format
+msgid "%s: Shell program not found"
+msgstr "%s: Program shellu nenalezen"
+
+#: job.c:2472
+msgid "spawnvpe: environment space might be exhausted"
+msgstr "spawnvpe: možná byl vyÄerpán prostor pro prostÅ™edí"
+
+#: job.c:2709
+#, c-format
+msgid "$SHELL changed (was '%s', now '%s')\n"
+msgstr "Proměnná $SHELL se změnila (byla „%s“, nyní je „%s“)\n"
+
+#: job.c:3140 job.c:3325
+#, c-format
+msgid "Creating temporary batch file %s\n"
+msgstr "Vytváří se doÄasný dávkový soubor %s\n"
+
+#: job.c:3148
+msgid ""
+"Batch file contents:\n"
+"\t@echo off\n"
+msgstr ""
+"Obsah dávkového souboru:\n"
+"\t@echo off\n"
+
+#: job.c:3337
+#, c-format
+msgid ""
+"Batch file contents:%s\n"
+"\t%s\n"
+msgstr ""
+"Obsah dávkového souboru:%s\n"
+"\t%s\n"
+
+#: job.c:3444
+#, c-format
+msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
+msgstr "%s (řádek %d) Chybný kontext shellu (!unixy && !batch_mode_shell)\n"
+
+#: job.h:43
+msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
+msgstr ""
+"PÅ™epínaÄ -O[DRUH] (--output-sync[=DRUH]) není v tomto sestavení zahrnut."
+
+#: load.c:53
+#, c-format
+msgid "Failed to open global symbol table: %s"
+msgstr "Nepodařilo se otevřít tabulku globálních symbolů: %s"
+
+#: load.c:87
+#, c-format
+msgid "Loaded object %s is not declared to be GPL compatible"
+msgstr "Zavedený objekt %s není veden jako sluÄitelný s GPL"
+
+#: load.c:92
+#, c-format
+msgid "Failed to load symbol %s from %s: %s"
+msgstr "Symbol %s z %s se nepodařilo zavést: %s"
+
+#: load.c:136
+#, c-format
+msgid "Empty symbol name for load: %s"
+msgstr "Pokus zavést prázdný název symbolu: %s"
+
+#: load.c:191
+#, c-format
+msgid "Loading symbol %s from %s\n"
+msgstr "Zavádí se symbol %s z %s\n"
+
+#: load.c:229
+msgid "The 'load' operation is not supported on this platform."
+msgstr "Na této platformě není operace zavedení (load) podporována."
+
+#: main.c:312
+msgid "Options:\n"
+msgstr "PÅ™epínaÄe:\n"
+
+#: main.c:313
+msgid " -b, -m Ignored for compatibility.\n"
+msgstr " -b, -m Ignoruje se kvůli kompatibilitě.\n"
+
+#: main.c:315
+msgid " -B, --always-make Unconditionally make all targets.\n"
+msgstr " -B, --always-make BezpodmíneÄnÄ› vyrobí vÅ¡echny cíle.\n"
+
+#: main.c:317
+msgid ""
+" -C DIRECTORY, --directory=DIRECTORY\n"
+" Change to DIRECTORY before doing anything.\n"
+msgstr ""
+" -C ADRESÃŘ, --directory=ADRESÃŘ\n"
+" PÅ™ed dÄ›láním Äehokoliv se pÅ™epne do ADRESÃŘE.\n"
+
+#: main.c:320
+msgid " -d Print lots of debugging information.\n"
+msgstr " -d Vypisuje mnoho ladicích údajů.\n"
+
+#: main.c:322
+msgid ""
+" --debug[=FLAGS] Print various types of debugging information.\n"
+msgstr ""
+" --debug[=PŘÃZNAKY] Vypisuje ladicí údaje rozliÄných druhů.\n"
+
+#: main.c:324
+msgid ""
+" -e, --environment-overrides\n"
+" Environment variables override makefiles.\n"
+msgstr ""
+" -e, --environment-overrides\n"
+" Proměnné prostředí přebijí ty z makefilu.\n"
+
+#: main.c:327
+msgid ""
+" --eval=STRING Evaluate STRING as a makefile statement.\n"
+msgstr " --eval=ŘETĚZEC Vyhodnotí ŘETĚZEC jako kód makefilu.\n"
+
+#: main.c:329
+msgid ""
+" -f FILE, --file=FILE, --makefile=FILE\n"
+" Read FILE as a makefile.\n"
+msgstr ""
+" -f SOUBOR, --file=SOUBOR, --makefile=SOUBOR\n"
+" NaÄte SOUBOR coby makefile.\n"
+
+#: main.c:332
+msgid " -h, --help Print this message and exit.\n"
+msgstr " -h, --help Vypíše tuto zprávu a skonÄí.\n"
+
+#: main.c:334
+msgid " -i, --ignore-errors Ignore errors from recipes.\n"
+msgstr " -i, --ignore-errors Ignoruje chyby z návodů.\n"
+
+#: main.c:336
+msgid ""
+" -I DIRECTORY, --include-dir=DIRECTORY\n"
+" Search DIRECTORY for included makefiles.\n"
+msgstr ""
+" -I ADRESÃŘ, --include-dir=ADRESÃŘ\n"
+" Vložené makefily hledá v ADRESÃŘI.\n"
+
+#: main.c:339
+msgid ""
+" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
+"arg.\n"
+msgstr ""
+" -j [N], --jobs[=N] Dovolí nejvíce N úloh najednou;\n"
+" nekoneÄno úloh bez argumentu.\n"
+
+#: main.c:341
+msgid ""
+" -k, --keep-going Keep going when some targets can't be made.\n"
+msgstr ""
+" -k, --keep-going PokraÄuje, když nÄ›které cíle nelze vyrobit.\n"
+
+#: main.c:343
+msgid ""
+" -l [N], --load-average[=N], --max-load[=N]\n"
+" Don't start multiple jobs unless load is below "
+"N.\n"
+msgstr ""
+" -l [N], --load-average[=N], --max-load[=N]\n"
+" Nespouští souběžné úlohy, dokud zátěž\n"
+" neklesne pod N.\n"
+
+#: main.c:346
+msgid ""
+" -L, --check-symlink-times Use the latest mtime between symlinks and "
+"target.\n"
+msgstr ""
+" -L, --check-symlink-times Použije nejnovÄ›jší Äas zmÄ›ny obsahu z Äasů\n"
+" symbolických odkazů a cíle.\n"
+
+#: main.c:348
+msgid ""
+" -n, --just-print, --dry-run, --recon\n"
+" Don't actually run any recipe; just print "
+"them.\n"
+msgstr ""
+" -n, --just-print, --dry-run, --recon\n"
+" Ve skuteÄnosti nevykoná žádný návod, pouze\n"
+" jej vypíše.\n"
+
+#: main.c:351
+msgid ""
+" -o FILE, --old-file=FILE, --assume-old=FILE\n"
+" Consider FILE to be very old and don't remake "
+"it.\n"
+msgstr ""
+" -o SOUBOR, --old-file=SOUBOR, --assume-old=SOUBOR\n"
+" Považuje SOUBOR za velmi starý a znovu jej\n"
+" nevyrobí.\n"
+
+#: main.c:354
+msgid ""
+" -O[TYPE], --output-sync[=TYPE]\n"
+" Synchronize output of parallel jobs by TYPE.\n"
+msgstr ""
+" -O[DRUH], --output-sync[=DRUH]\n"
+" Synchronizuje výstup souběžných úloh podle "
+"DRUHU.\n"
+
+#: main.c:357
+msgid " -p, --print-data-base Print make's internal database.\n"
+msgstr " -p, --print-data-base Vypíše vnitřní databázi programu make.\n"
+
+#: main.c:359
+msgid ""
+" -q, --question Run no recipe; exit status says if up to "
+"date.\n"
+msgstr ""
+" -q, --question Nespustí žádný návod. Návratový kód řekne,\n"
+" jestli je aktuální.\n"
+
+#: main.c:361
+msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
+msgstr " -r, --no-builtin-rules Vypne vestavěná implicitní pravidla.\n"
+
+#: main.c:363
+msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
+msgstr " -R, --no-builtin-variables Vypne vestavěné nastavení proměnných.\n"
+
+#: main.c:365
+msgid " -s, --silent, --quiet Don't echo recipes.\n"
+msgstr " -s, --silent, --quiet Neopisuje návod.\n"
+
+#: main.c:367
+msgid ""
+" -S, --no-keep-going, --stop\n"
+" Turns off -k.\n"
+msgstr ""
+" -S, --no-keep-going, --stop\n"
+" Vypne -k.\n"
+
+#: main.c:370
+msgid " -t, --touch Touch targets instead of remaking them.\n"
+msgstr " -t, --touch Namísto výroby cílů jim zmÄ›ní Äas.\n"
+
+#: main.c:372
+msgid " --trace Print tracing information.\n"
+msgstr " --trace Vypisuje trasovací údaje.\n"
+
+#: main.c:374
+msgid ""
+" -v, --version Print the version number of make and exit.\n"
+msgstr ""
+" -v, --version Vypíše Äíslo verze programu make a skonÄí.\n"
+
+#: main.c:376
+msgid " -w, --print-directory Print the current directory.\n"
+msgstr " -w, --print-directory Vypisuje aktuální adresář.\n"
+
+#: main.c:378
+msgid ""
+" --no-print-directory Turn off -w, even if it was turned on "
+"implicitly.\n"
+msgstr ""
+" --no-print-directory Vypne -w, i kdyby byl zapnut implicitně.\n"
+
+#: main.c:380
+msgid ""
+" -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
+" Consider FILE to be infinitely new.\n"
+msgstr ""
+" -W SOUBOR, --what-if=SOUBOR, --new-file=SOUBOR, --assume-new=SOUBOR\n"
+" Považuje SOUBOR za nekoneÄnÄ› nový.\n"
+
+#: main.c:383
+msgid ""
+" --warn-undefined-variables Warn when an undefined variable is "
+"referenced.\n"
+msgstr ""
+" --warn-undefined-variables Upozorní, kdykoliv je odkazováno na\n"
+" nedefinovanou proměnnou.\n"
+
+#: main.c:647
+msgid "empty string invalid as file name"
+msgstr "prázdný řetězec není platný název souboru"
+
+#: main.c:734
+#, c-format
+msgid "unknown debug level specification '%s'"
+msgstr "zadána neznámá úroveň ladění „%s“"
+
+#: main.c:777
+#, c-format
+msgid "unknown output-sync type '%s'"
+msgstr "neznámý druh synchronizace výstupu „%s“"
+
+#: main.c:787
+msgid "internal error: multiple --sync-mutex options"
+msgstr "vnitÅ™ní chyba: více pÅ™epínaÄů --sync-mutex"
+
+#: main.c:848
+#, c-format
+msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
+msgstr "%s: Zachyceno přerušení/výjimka (kód = 0x%lx, adresa = 0x%p)\n"
+
+#: main.c:855
+#, c-format
+msgid ""
+"\n"
+"Unhandled exception filter called from program %s\n"
+"ExceptionCode = %lx\n"
+"ExceptionFlags = %lx\n"
+"ExceptionAddress = 0x%p\n"
+msgstr ""
+"\n"
+"Filtr neošetřených výjimek zavolán z programu %s\n"
+"Kód výjimky = %lx\n"
+"Příznaky výjimky = %lx\n"
+"Adresa výjimky = 0x%p\n"
+
+#: main.c:863
+#, c-format
+msgid "Access violation: write operation at address 0x%p\n"
+msgstr "Porušení přístupu: operace zápisu na adrese 0x%p\n"
+
+#: main.c:864
+#, c-format
+msgid "Access violation: read operation at address 0x%p\n"
+msgstr "PoruÅ¡ení přístupu: operace Ätení na adrese 0x%p\n"
+
+#: main.c:940 main.c:955
+#, c-format
+msgid "find_and_set_shell() setting default_shell = %s\n"
+msgstr "find_and_set_shell() nastavuje default_shell = %s\n"
+
+#: main.c:1008
+#, c-format
+msgid "find_and_set_shell() path search set default_shell = %s\n"
+msgstr ""
+"find_and_set_shell() při prohledávání cesty nastavila default_shell = %s\n"
+
+#: main.c:1447
+#, c-format
+msgid "%s is suspending for 30 seconds..."
+msgstr "%s se uspí na 30 sekund…"
+
+#: main.c:1449
+#, c-format
+msgid "done sleep(30). Continuing.\n"
+msgstr "sleep(30) dokonÄeno. PokraÄuje se.\n"
+
+#: main.c:1534
+msgid "internal error: multiple --jobserver-fds options"
+msgstr "vnitÅ™ní chyba: více pÅ™epínaÄů --jobserver-fds"
+
+#: main.c:1544
+#, c-format
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
+msgstr ""
+"vnitřní chyba: nelze otevřít semafor správce úloh „%s“: (Chyba %ld: %s)"
+
+#: main.c:1547
+#, c-format
+msgid "Jobserver client (semaphore %s)\n"
+msgstr "Klient správce úloh (semafor %s)\n"
+
+#: main.c:1551
+#, c-format
+msgid "internal error: invalid --jobserver-fds string '%s'"
+msgstr "vnitřní chyba: neplatný řetězec --jobserver-fds „%s“"
+
+#: main.c:1554
+#, c-format
+msgid "Jobserver client (fds %d,%d)\n"
+msgstr "Klient správce úloh (deskriptory %d,%d)\n"
+
+#: main.c:1567
+msgid "warning: -jN forced in submake: disabling jobserver mode."
+msgstr "pozor: -jN vnuceno podřízenému maku: režim správce úloh se vypíná."
+
+#: main.c:1583
+msgid "dup jobserver"
+msgstr "služba dup() nad správcem úloh"
+
+#: main.c:1586
+msgid ""
+"warning: jobserver unavailable: using -j1. Add '+' to parent make rule."
+msgstr ""
+"pozor: správce úloh není dostupný: použije se -j1. Do nadřízeného pravidla "
+"maku přidejte „+“."
+
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "Makefile na standardním vstupu uveden dvakrát."
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (doÄasný soubor)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (doÄasný soubor)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr "Na této platformě nejsou paralelní úlohy (-j) podporovány."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "Návrat k jednoúlohovému režimu (-j1)."
+
+#: main.c:2006
+#, c-format
+msgid "Jobserver slots limited to %d\n"
+msgstr "Místa ve správci úloh jsou omezena na %d\n"
+
+#: main.c:2012
+#, c-format
+msgid "creating jobserver semaphore: (Error %ld: %s)"
+msgstr "vytváření semaforu správce úloh: (Chyba %ld: %s)"
+
+#: main.c:2019
+msgid "creating jobs pipe"
+msgstr "vytváření roury úloh"
+
+#: main.c:2039
+msgid "init jobserver pipe"
+msgstr "inicializace roury správce úloh"
+
+#: main.c:2064
+msgid "Symbolic links not supported: disabling -L."
+msgstr "Symbolické odkazy nejsou podporovány: vypíná se -L."
+
+#: main.c:2149
+msgid "Updating makefiles....\n"
+msgstr "Soubory makefile se aktualizují…\n"
+
+#: main.c:2174
+#, c-format
+msgid "Makefile '%s' might loop; not remaking it.\n"
+msgstr "Makefile „%s“ může cyklit, nebude znovu vyroben.\n"
+
+#: main.c:2253
+#, c-format
+msgid "Failed to remake makefile '%s'."
+msgstr "Výroba nového makefilu „%s“ selhala."
+
+#: main.c:2270
+#, c-format
+msgid "Included makefile '%s' was not found."
+msgstr "Vložený makefile „%s“ nebyl nalezen."
+
+#: main.c:2275
+#, c-format
+msgid "Makefile '%s' was not found"
+msgstr "Makefile „%s“ nebyl nalezen"
+
+#: main.c:2341
+msgid "Couldn't change back to original directory."
+msgstr "Nebylo možné se vrátit do původního adresáře."
+
+#: main.c:2354
+#, c-format
+msgid "Re-executing[%u]:"
+msgstr "Znovu se spouští [%u]:"
+
+#: main.c:2463
+msgid "unlink (temporary file): "
+msgstr "unlink (doÄasný soubor): "
+
+#: main.c:2495
+msgid ".DEFAULT_GOAL contains more than one target"
+msgstr ".DEFAULT_GOAL obsahuje více než jeden cíl"
+
+#: main.c:2518
+msgid "No targets specified and no makefile found"
+msgstr "Nezadány žádné cíle a žádné makefily nenalezeny"
+
+#: main.c:2520
+msgid "No targets"
+msgstr "Žádné cíle"
+
+#: main.c:2525
+msgid "Updating goal targets....\n"
+msgstr "Aktualizují se cíle…\n"
+
+#: main.c:2550
+msgid "warning: Clock skew detected. Your build may be incomplete."
+msgstr "pozor: Zjištěn posun hodin. Vaše sestavení možná nebude úplné."
+
+#: main.c:2718
+#, c-format
+msgid "Usage: %s [options] [target] ...\n"
+msgstr "Použití: %s [PŘEPÃNAÄŒE] [CÃLE]…\n"
+
+#: main.c:2724
+#, c-format
+msgid ""
+"\n"
+"This program built for %s\n"
+msgstr ""
+"\n"
+"Tento program byl sestaven pro %s\n"
+
+#: main.c:2726
+#, c-format
+msgid ""
+"\n"
+"This program built for %s (%s)\n"
+msgstr ""
+"\n"
+"Tento program byl sestaven pro %s (%s)\n"
+
+#: main.c:2729
+#, c-format
+msgid "Report bugs to <bug-make@gnu.org>\n"
+msgstr ""
+"Chyby v programu hlaste anglicky na <bug-make@gnu.org>. Nedostatky\n"
+"v pÅ™ekladu hlaste Äesky na <translation-team-cs@lists.sourceforge.net>.\n"
+
+#: main.c:2810
+#, c-format
+msgid "the '%s%s' option requires a non-empty string argument"
+msgstr "pÅ™epínaÄe „%s%s“ vyžaduje neprázdný Å™etÄ›zcový argument"
+
+#: main.c:2864
+#, c-format
+msgid "the '-%c' option requires a positive integer argument"
+msgstr "pÅ™epínaÄ â€ž-%c“ vyžaduje kladný celoÄíselný argument"
+
+#: main.c:3253
+#, c-format
+msgid "%sBuilt for %s\n"
+msgstr "%sSestaveno pro %s\n"
+
+#: main.c:3255
+#, c-format
+msgid "%sBuilt for %s (%s)\n"
+msgstr "%s Sestaveno pro %s (%s)\n"
+
+#: main.c:3266
+#, c-format
+msgid ""
+"%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>\n"
+"%sThis is free software: you are free to change and redistribute it.\n"
+"%sThere is NO WARRANTY, to the extent permitted by law.\n"
+msgstr ""
+"%sLicence GPLv3+: GNU GPL verze 3 nebo novější <http://gnu.org/licenses/gpl."
+"html>\n"
+"%sToto je svobodné programové vybavení: máte právo jej měnit a dále šířit.\n"
+"%sNesposkytuje se ŽÃDNà ZÃRUKA, jak jen zákon dovoluje.\n"
+
+# FIXME: i18n %s (time)
+#: main.c:3287
+#, c-format
+msgid ""
+"\n"
+"# Make data base, printed on %s"
+msgstr ""
+"\n"
+"# Databáze maku vypsána v %s"
+
+# FIXME: i18n %s (time)
+#: main.c:3297
+#, c-format
+msgid ""
+"\n"
+"# Finished Make data base on %s\n"
+msgstr ""
+"\n"
+"# Konec databáze maku v %s\n"
+
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "Neznámá chyba %d"
+
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "virtuální paměť vyÄerpána"
+
+#: misc.c:522
+#, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s: uživatel %lu (reálný %lu), skupina %lu (reálná %lu)\n"
+
+#: misc.c:543
+msgid "Initialized access"
+msgstr "Přístup zahájen"
+
+#: misc.c:622
+msgid "User access"
+msgstr "Přístup uživatelem"
+
+#: misc.c:670
+msgid "Make access"
+msgstr "Přístup makem"
+
+#: misc.c:704
+msgid "Child access"
+msgstr "Přístup potomkem"
+
+#: output.c:128
+#, c-format
+msgid "%s: Entering an unknown directory\n"
+msgstr "%s: Vstupuje se do neznámého adresáře\n"
+
+#: output.c:130
+#, c-format
+msgid "%s: Leaving an unknown directory\n"
+msgstr "%s Opouští se neznámý adresář\n"
+
+#: output.c:133
+#, c-format
+msgid "%s: Entering directory '%s'\n"
+msgstr "%s: Vstupuje se do adresáře „%s“\n"
+
+#: output.c:135
+#, c-format
+msgid "%s: Leaving directory '%s'\n"
+msgstr "%s: Opouští se adresář „%s“\n"
+
+#: output.c:139
+#, c-format
+msgid "%s[%u]: Entering an unknown directory\n"
+msgstr "%s[%u]: Vstupuje se do neznámého adresáře\n"
+
+#: output.c:141
+#, c-format
+msgid "%s[%u]: Leaving an unknown directory\n"
+msgstr "%s[%u]: Opouští se neznámý adresář\n"
+
+#: output.c:144
+#, c-format
+msgid "%s[%u]: Entering directory '%s'\n"
+msgstr "%s[%u]: Vstupuje se do adresáře „%s“\n"
+
+#: output.c:146
+#, c-format
+msgid "%s[%u]: Leaving directory '%s'\n"
+msgstr "%s[%u]: Opouští se adresář „%s“\n"
+
+#: output.c:515
+#, c-format
+msgid "write error: %s"
+msgstr "chyba zápisu: %s"
+
+#: output.c:517
+msgid "write error"
+msgstr "chyba zápisu"
+
+#: output.c:740
+msgid ". Stop.\n"
+msgstr ". Konec.\n"
+
+#: output.c:751
+#, c-format
+msgid "%s%s: %s"
+msgstr "%s%s: %s"
+
+#: output.c:759
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: read.c:180
+msgid "Reading makefiles...\n"
+msgstr "Čtou se makefily…\n"
+
+#: read.c:333
+#, c-format
+msgid "Reading makefile '%s'"
+msgstr "Čte se makefile „%s“"
+
+#: read.c:335
+#, c-format
+msgid " (no default goal)"
+msgstr " (žádný výchozí cíl)"
+
+#: read.c:337
+#, c-format
+msgid " (search path)"
+msgstr " (vyhledávací cesta)"
+
+#: read.c:339
+#, c-format
+msgid " (don't care)"
+msgstr " (nestarat se)"
+
+#: read.c:341
+#, c-format
+msgid " (no ~ expansion)"
+msgstr " (žádný expanze ~)"
+
+#: read.c:652
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile '%s'\n"
+msgstr "Přeskakuje se UTF-8 BOM v makefilu „%s“\n"
+
+#: read.c:655
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile buffer\n"
+msgstr "Přeskakuje se UTF-8 BOM v paměti makefilu\n"
+
+#: read.c:786
+msgid "invalid syntax in conditional"
+msgstr "neplatná syntaxe podmínky"
+
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr "%s: zavedení selhalo"
+
+#: read.c:987
+msgid "recipe commences before first target"
+msgstr "návod zahájen před prvním cílem"
+
+#: read.c:1036
+msgid "missing rule before recipe"
+msgstr "před návodem chybí pravidlo"
+
+#: read.c:1123
+#, c-format
+msgid "missing separator%s"
+msgstr "chybí oddÄ›lovaÄ%s"
+
+#: read.c:1125
+msgid " (did you mean TAB instead of 8 spaces?)"
+msgstr " (mysleli jste tabulátor místo 8 mezer?)"
+
+#: read.c:1263
+msgid "missing target pattern"
+msgstr "chybí vzor cíle"
+
+#: read.c:1265
+msgid "multiple target patterns"
+msgstr "více vzorů cíle"
+
+#: read.c:1269
+#, c-format
+msgid "target pattern contains no '%%'"
+msgstr "vzor cíle neobsahuje „%%“"
+
+#: read.c:1391
+msgid "missing 'endif'"
+msgstr "chybí „endif“"
+
+#: read.c:1430 read.c:1475 variable.c:1554
+msgid "empty variable name"
+msgstr "prázdný název proměnné"
+
+#: read.c:1465
+msgid "extraneous text after 'define' directive"
+msgstr "nadbyteÄný text po klíÄovém slovu „define“"
+
+#: read.c:1490
+msgid "missing 'endef', unterminated 'define'"
+msgstr "chybí „endef“, neukonÄený „define“"
+
+#: read.c:1518
+msgid "extraneous text after 'endef' directive"
+msgstr "nadbyteÄný text po klíÄovém slovu „endef“"
+
+#: read.c:1589
+#, c-format
+msgid "extraneous text after '%s' directive"
+msgstr "nadbyteÄný text po klíÄovém slovu „%s“"
+
+#: read.c:1598 read.c:1612
+#, c-format
+msgid "extraneous '%s'"
+msgstr "nadbyteÄný „%s“"
+
+#: read.c:1617
+msgid "only one 'else' per conditional"
+msgstr "pouze jeden „else“ na podmínku"
+
+#: read.c:1892
+msgid "Malformed target-specific variable definition"
+msgstr "Chybě utvořená definice proměnné specifické pro cíl"
+
+#: read.c:1951
+msgid "prerequisites cannot be defined in recipes"
+msgstr "prerekvizitu nelze definovat v návodu"
+
+#: read.c:2009
+msgid "mixed implicit and static pattern rules"
+msgstr "smíšené implicitní a statická pravidla vzorů"
+
+#: read.c:2032 read.c:2220
+msgid "mixed implicit and normal rules"
+msgstr "smíšené implicitní a normální pravidla"
+
+#: read.c:2084
+#, c-format
+msgid "target '%s' doesn't match the target pattern"
+msgstr "cíl „%s“ neodpovídá vzoru cíle"
+
+#: read.c:2099 read.c:2144
+#, c-format
+msgid "target file '%s' has both : and :: entries"
+msgstr "cílový soubor „%s“ obsahuje jak :, tak i ::"
+
+#: read.c:2105
+#, c-format
+msgid "target '%s' given more than once in the same rule"
+msgstr "cíl „%s“ zadán více než jednou ve stejném pravidle"
+
+#: read.c:2114
+#, c-format
+msgid "warning: overriding recipe for target '%s'"
+msgstr "pozor: návod pro cíl „%s“ bude přebit"
+
+#: read.c:2117
+#, c-format
+msgid "warning: ignoring old recipe for target '%s'"
+msgstr "pozor: starý návod pro cíl „%s“ bude ignorován"
+
+#: read.c:2530
+msgid "warning: NUL character seen; rest of line ignored"
+msgstr "pozor: zaznamenán znak NUL, zbytek řádku bude ignorován"
+
+#: remake.c:232
+#, c-format
+msgid "Nothing to be done for '%s'."
+msgstr "Pro „%s“ nebude nic uděláno."
+
+#: remake.c:233
+#, c-format
+msgid "'%s' is up to date."
+msgstr "„%s“ je aktuální."
+
+#: remake.c:305
+#, c-format
+msgid "Pruning file '%s'.\n"
+msgstr "Uklízí se soubor „%s“.\n"
+
+#: remake.c:377
+#, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sŽádné pravidlo jak vyrobit cíl „%s“%s"
+
+#: remake.c:379
+#, c-format
+msgid "%sNo rule to make target '%s', needed by '%s'%s"
+msgstr "%sŽádné pravidlo jak vyrobit cíl „%s“ potřebný pro „%s“%s"
+
+#: remake.c:413
+#, c-format
+msgid "Considering target file '%s'.\n"
+msgstr "Zvažuje se cílový soubor „%s“.\n"
+
+#: remake.c:420
+#, c-format
+msgid "Recently tried and failed to update file '%s'.\n"
+msgstr "Nedávná aktualizace souboru „%s“ selhala.\n"
+
+#: remake.c:432
+#, c-format
+msgid "File '%s' was considered already.\n"
+msgstr "Soubor „%s“ již byl uvážen.\n"
+
+#: remake.c:442
+#, c-format
+msgid "Still updating file '%s'.\n"
+msgstr "Stále se aktualizuje soubor „%s“.\n"
+
+#: remake.c:445
+#, c-format
+msgid "Finished updating file '%s'.\n"
+msgstr "Aktualizace soubor „%s“ dokonÄena.\n"
+
+#: remake.c:474
+#, c-format
+msgid "File '%s' does not exist.\n"
+msgstr "Soubor „%s“ neexistuje.\n"
+
+#: remake.c:481
+#, c-format
+msgid ""
+"*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
+msgstr ""
+"*** Pozor: Soubor .LOW_RESOLUTION_TIME „%s“ má Äasový údaj ve vysokém "
+"rozlišení"
+
+#: remake.c:494 remake.c:1019
+#, c-format
+msgid "Found an implicit rule for '%s'.\n"
+msgstr "Nalezeno implicitní pravidlo pro „%s“.\n"
+
+#: remake.c:496 remake.c:1021
+#, c-format
+msgid "No implicit rule found for '%s'.\n"
+msgstr "Pro „%s“ nenalezeno žádné implicitní pravidlo.\n"
+
+#: remake.c:502
+#, c-format
+msgid "Using default recipe for '%s'.\n"
+msgstr "Pro „%s“ se použije výchozí návod.\n"
+
+#: remake.c:535 remake.c:1067
+#, c-format
+msgid "Circular %s <- %s dependency dropped."
+msgstr "Kruhová závislost „%s ↠%s zahozena."
+
+#: remake.c:655
+#, c-format
+msgid "Finished prerequisites of target file '%s'.\n"
+msgstr "Prerekvizity cílového souboru „%s“ dokonÄeny.\n"
+
+#: remake.c:661
+#, c-format
+msgid "The prerequisites of '%s' are being made.\n"
+msgstr "Prerekvizity „%s“ se vyrábějí.\n"
+
+#: remake.c:674
+#, c-format
+msgid "Giving up on target file '%s'.\n"
+msgstr "Výroba cílového souboru „%s“ vzdána.\n"
+
+#: remake.c:679
+#, c-format
+msgid "Target '%s' not remade because of errors."
+msgstr "Cíl „%s“ nebyl kvůli chybám znovu vyroben."
+
+#: remake.c:731
+#, c-format
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
+msgstr "Prerekvizita „%s“ pro cíl „%s“ je jen o pořadí.\n"
+
+#: remake.c:736
+#, c-format
+msgid "Prerequisite '%s' of target '%s' does not exist.\n"
+msgstr "Prerekvizita „%s“ cíle „%s“ neexistuje.\n"
+
+#: remake.c:741
+#, c-format
+msgid "Prerequisite '%s' is newer than target '%s'.\n"
+msgstr "Prerekvizita „%s“ je novější než cíl „%s“.\n"
+
+#: remake.c:744
+#, c-format
+msgid "Prerequisite '%s' is older than target '%s'.\n"
+msgstr "Prerekvizita „%s“ je starší než cíl „%s“.\n"
+
+#: remake.c:762
+#, c-format
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
+msgstr "Cíl „%s“ je dvojdvouteÄkový a nemá žádnou prerekvizitu.\n"
+
+#: remake.c:769
+#, c-format
+msgid "No recipe for '%s' and no prerequisites actually changed.\n"
+msgstr "Pro „%s“ neexistuje návod a žádná prerekvizita se vskutku nezměnila.\n"
+
+# Always-make flag is make option -B
+#: remake.c:774
+#, c-format
+msgid "Making '%s' due to always-make flag.\n"
+msgstr "Vyrábí se „%s“ kvůli pÅ™epínaÄi --always-make.\n"
+
+#: remake.c:782
+#, c-format
+msgid "No need to remake target '%s'"
+msgstr "Cíl „%s“ není třeba znovu vyrábět"
+
+#: remake.c:784
+#, c-format
+msgid "; using VPATH name '%s'"
+msgstr "; použije se název „%s“ z VPATH"
+
+#: remake.c:804
+#, c-format
+msgid "Must remake target '%s'.\n"
+msgstr "Cíl „%s“ je třeba znovu vyrobit.\n"
+
+#: remake.c:810
+#, c-format
+msgid " Ignoring VPATH name '%s'.\n"
+msgstr " Ignoruje se název „%s“ z VPATH.\n"
+
+#: remake.c:819
+#, c-format
+msgid "Recipe of '%s' is being run.\n"
+msgstr "Právě se vykonává návod pro „%s“.\n"
+
+#: remake.c:826
+#, c-format
+msgid "Failed to remake target file '%s'.\n"
+msgstr "Cílový soubor „%s“ nebylo možné znovu vyrobit.\n"
+
+#: remake.c:829
+#, c-format
+msgid "Successfully remade target file '%s'.\n"
+msgstr "Cílový soubor „%s“ byl úspěšně znovu vyroben.\n"
+
+#: remake.c:832
+#, c-format
+msgid "Target file '%s' needs to be remade under -q.\n"
+msgstr "Cílový soubor „%s“ je třeba znovu vyrobit za použití -q.\n"
+
+#: remake.c:1027
+#, c-format
+msgid "Using default commands for '%s'.\n"
+msgstr "Pro „%s„ se použijí se výchozí příkazy.\n"
+
+#: remake.c:1372
+#, c-format
+msgid "Warning: File '%s' has modification time in the future"
+msgstr "Pozor: Soubor „%s“ má Äas zmÄ›ny obsahu v budoucnu"
+
+#: remake.c:1385
+#, c-format
+msgid "Warning: File '%s' has modification time %s s in the future"
+msgstr "Pozor: Soubor „%s“ má Äas zmÄ›ny obsahu %s s smÄ›rem do budoucnosti"
+
+#: remake.c:1583
+#, c-format
+msgid ".LIBPATTERNS element '%s' is not a pattern"
+msgstr "Prvek .LIBPATTERNS „%s“ není vzorem"
+
+# `Customs' is literal (a library name). See README.customs.
+#: remote-cstms.c:122
+#, c-format
+msgid "Customs won't export: %s\n"
+msgstr "Customs nebude exportovat: %s\n"
+
+#: rule.c:496
+msgid ""
+"\n"
+"# Implicit Rules"
+msgstr ""
+"\n"
+"# Implicitní pravidla"
+
+#: rule.c:511
+msgid ""
+"\n"
+"# No implicit rules."
+msgstr ""
+"\n"
+"# Žádná implicitní pravidla."
+
+# FIXME: Pluralize by first %u
+#: rule.c:514
+#, c-format
+msgid ""
+"\n"
+"# %u implicit rules, %u"
+msgstr ""
+"\n"
+"# Implicitních pravidel: %u, %u"
+
+#: rule.c:523
+msgid " terminal."
+msgstr " terminál."
+
+#: rule.c:531
+#, c-format
+msgid "BUG: num_pattern_rules is wrong! %u != %u"
+msgstr "CHYBA: num_pattern_rules je chybný! %u != %u"
+
+#: signame.c:84
+msgid "unknown signal"
+msgstr "neznámý signál"
+
+# Keep signal names in sync with GNU libc translations.
+#: signame.c:92
+msgid "Hangup"
+msgstr "Odpojen terminál (SIGHUP)"
+
+#: signame.c:95
+msgid "Interrupt"
+msgstr "Přerušení (SIGINT)"
+
+#: signame.c:98
+msgid "Quit"
+msgstr "Konec (SIGQUIT)"
+
+#: signame.c:101
+msgid "Illegal Instruction"
+msgstr "Nedovolená instrukce (SIGILL)"
+
+#: signame.c:104
+msgid "Trace/breakpoint trap"
+msgstr "Trasovací/ladící past (SIGTRAP)"
+
+#: signame.c:109
+msgid "Aborted"
+msgstr "NeúspěšnÄ› ukonÄen (SIGABRT)"
+
+#: signame.c:112
+msgid "IOT trap"
+msgstr "IOT past (SIGIOT)"
+
+#: signame.c:115
+msgid "EMT trap"
+msgstr "EMT past (SIGEMT)"
+
+#: signame.c:118
+msgid "Floating point exception"
+msgstr "Výjimka práce s pohyblivou řádovou Äárkou (SIGFPE)"
+
+#: signame.c:121
+msgid "Killed"
+msgstr "Zabit (SIGKILL)"
+
+#: signame.c:124
+msgid "Bus error"
+msgstr "Chyba na sběrnici (neplatná adresa) (SIGBUS)"
+
+#: signame.c:127
+msgid "Segmentation fault"
+msgstr "Neoprávněný přístup do paměti (SIGSEGV)"
+
+#: signame.c:130
+msgid "Bad system call"
+msgstr "Chybné volání systému (SIGSYS)"
+
+#: signame.c:133
+msgid "Broken pipe"
+msgstr "Roura přerušena (SIGPIPE)"
+
+#: signame.c:136
+msgid "Alarm clock"
+msgstr "Budík (SIGALRM)"
+
+#: signame.c:139
+msgid "Terminated"
+msgstr "UkonÄen (SIGTERM)"
+
+#: signame.c:142
+msgid "User defined signal 1"
+msgstr "Uživatelem definovaný signál 1 (SIGUSR1)"
+
+#: signame.c:145
+msgid "User defined signal 2"
+msgstr "Uživatelem definovaný signál 2 (SIGUSR2)"
+
+#: signame.c:150 signame.c:153
+msgid "Child exited"
+msgstr "Potomek skonÄil (SIGCHLD)"
+
+#: signame.c:156
+msgid "Power failure"
+msgstr "Výpadek napájení (SIGPWR)"
+
+#: signame.c:159
+msgid "Stopped"
+msgstr "Pozastaven (SIGTSTP)"
+
+#: signame.c:162
+msgid "Stopped (tty input)"
+msgstr "Pozastaven (vstup TTY) (SIGTTIN)"
+
+#: signame.c:165
+msgid "Stopped (tty output)"
+msgstr "Pozastaven (výstup TTY) (SIGTTOU)"
+
+#: signame.c:168
+msgid "Stopped (signal)"
+msgstr "Pozastaven (SIGSTOP)"
+
+#: signame.c:171
+msgid "CPU time limit exceeded"
+msgstr "PÅ™ekroÄen Äasový limit pro procesor (SIGXCPU)"
+
+#: signame.c:174
+msgid "File size limit exceeded"
+msgstr "PÅ™ekroÄen limit délky souboru (SIGXFS2)"
+
+#: signame.c:177
+msgid "Virtual timer expired"
+msgstr "Virtuální ÄasovaÄ vyprÅ¡el (SIGVTALRM)"
+
+#: signame.c:180
+msgid "Profiling timer expired"
+msgstr "Profilovací ÄasovaÄ vyprÅ¡el (SIGPROF)"
+
+#: signame.c:186
+msgid "Window changed"
+msgstr "Okno se změnilo (SIGWINCH)"
+
+#: signame.c:189
+msgid "Continued"
+msgstr "Je pokraÄováno (SIGCONT)"
+
+#: signame.c:192
+msgid "Urgent I/O condition"
+msgstr "Naléhavá I/O situace (SIGURG)"
+
+#: signame.c:199 signame.c:208
+msgid "I/O possible"
+msgstr "Vstup/Výstup možný (SIGIO)"
+
+# SIGWIND exists on Darwin
+#: signame.c:202
+msgid "SIGWIND"
+msgstr "Okno se změnilo (SIGWIND)"
+
+# SIGPHONE exists on Unix PC (3B1)
+#: signame.c:205
+msgid "SIGPHONE"
+msgstr "Změna stavu linky (SIGPHONE)"
+
+#: signame.c:211
+msgid "Resource lost"
+msgstr "Prostředek byl ztracen (SIGLOST)"
+
+# SIGDANGER exists on AIX
+#: signame.c:214
+msgid "Danger signal"
+msgstr "NebezpeÄí nedostatku pamÄ›ti (SIGDANGER)"
+
+#: signame.c:217
+msgid "Information request"
+msgstr "Žádost o informaci (SIGINFO)"
+
+#: signame.c:220
+msgid "Floating point co-processor not available"
+msgstr "Koprocesor pro práci s pohyblivou řádkou není dostupný (SIGNOFP)"
+
+#: strcache.c:236
+#, c-format
+msgid ""
+"\n"
+"%s No strcache buffers\n"
+msgstr ""
+"\n"
+"%s Žádná keš řetězců\n"
+
+#: strcache.c:266
+#, c-format
+msgid ""
+"\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
+msgstr ""
+"\n"
+"%s užito z keše řetězců: %lu (%lu) / řetězců = %lu / úložiště = %lu B / "
+"prům. = %lu B\n"
+
+#: strcache.c:270
+#, c-format
+msgid ""
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
+msgstr ""
+"%s souÄasná keÅ¡: velikost = %hu B / užito = %hu B / poÄet = %hu / prům. = "
+"%hu B\n"
+
+#: strcache.c:280
+#, c-format
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
+msgstr "%s užito dalších: celkem = %lu B / poÄet = %lu / prům. = %lu B\n"
+
+#: strcache.c:283
+#, c-format
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
+msgstr ""
+"%s volno dalších: celkem = %lu B / max. = %lu B / min. = %lu B / prům. = "
+"%hu B\n"
+
+#: strcache.c:287
+#, c-format
+msgid ""
+"\n"
+"%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
+msgstr ""
+"\n"
+"%s vytížení keše řetězců: dotazů = %lu / poměr nálezů = %lu %%\n"
+
+#: strcache.c:289
+msgid ""
+"# hash-table stats:\n"
+"# "
+msgstr ""
+"# Statistika hašovací tabulky:\n"
+"# "
+
+#: variable.c:1607
+msgid "automatic"
+msgstr "automatická"
+
+#: variable.c:1610
+msgid "default"
+msgstr "výchozí"
+
+#: variable.c:1613
+msgid "environment"
+msgstr "prostředí"
+
+#: variable.c:1616
+msgid "makefile"
+msgstr "makefile"
+
+#: variable.c:1619
+msgid "environment under -e"
+msgstr "prostÅ™edí z pÅ™epínaÄe -e"
+
+#: variable.c:1622
+msgid "command line"
+msgstr "příkazový řádek"
+
+#: variable.c:1625
+msgid "'override' directive"
+msgstr "klíÄové slovo „override“"
+
+#: variable.c:1636
+#, c-format
+msgid " (from '%s', line %lu)"
+msgstr " (z „%s“, řádek %lu)"
+
+#: variable.c:1699
+msgid "# variable set hash-table stats:\n"
+msgstr "# statistika hašovací tabulky pro množinu proměnných:\n"
+
+#: variable.c:1710
+msgid ""
+"\n"
+"# Variables\n"
+msgstr ""
+"\n"
+"# Proměnné\n"
+
+#: variable.c:1714
+msgid ""
+"\n"
+"# Pattern-specific Variable Values"
+msgstr ""
+"\n"
+"# Hodnoty proměnných specifických pro vzor"
+
+#: variable.c:1728
+msgid ""
+"\n"
+"# No pattern-specific variable values."
+msgstr ""
+"\n"
+"# Žádné hodnoty proměnných specifických pro vzor."
+
+# FIXME: Pluralize
+#: variable.c:1730
+#, c-format
+msgid ""
+"\n"
+"# %u pattern-specific variable values"
+msgstr ""
+"\n"
+"# Hodnot proměnných specifických pro vzor: %u"
+
+#: variable.h:224
+#, c-format
+msgid "warning: undefined variable '%.*s'"
+msgstr "pozor: nedefinovaná proměnná „%.*s“"
+
+#: vmsfunctions.c:91
+#, c-format
+msgid "sys$search() failed with %d\n"
+msgstr "volání sys$search() selhalo s %d\n"
+
+#: vmsjobs.c:70
+#, c-format
+msgid "Warning: Empty redirection\n"
+msgstr "Pozor: Prázdné přesměrování\n"
+
+#: vmsjobs.c:178
+#, c-format
+msgid "internal error: '%s' command_state"
+msgstr "vnitřní chyba: command_state pro „%s“"
+
+#: vmsjobs.c:286
+#, c-format
+msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
+msgstr "-pozor, možná byste měli znovu povolit obsluhu CTRL-Y z DCL.\n"
+
+#: vmsjobs.c:417
+#, c-format
+msgid "BUILTIN [%s][%s]\n"
+msgstr "VESTAVÄšNÃ [%s][%s]\n"
+
+#: vmsjobs.c:428
+#, c-format
+msgid "BUILTIN CD %s\n"
+msgstr "VESTAVÄšNÃ CD %s\n"
+
+#: vmsjobs.c:446
+#, c-format
+msgid "BUILTIN RM %s\n"
+msgstr "VESTAVÄšNÃ RM %s\n"
+
+#: vmsjobs.c:467
+#, c-format
+msgid "Unknown builtin command '%s'\n"
+msgstr "Neznámý vestavěný příkaz „%s“\n"
+
+#: vmsjobs.c:489
+#, c-format
+msgid "Error, empty command\n"
+msgstr "Chyba, prázdný příkaz\n"
+
+#: vmsjobs.c:502
+#, c-format
+msgid "Redirected input from %s\n"
+msgstr "Vstup přesměrován z %s\n"
+
+#: vmsjobs.c:509
+#, c-format
+msgid "Redirected error to %s\n"
+msgstr "Chyby přesměrovány do %s\n"
+
+#: vmsjobs.c:518
+#, c-format
+msgid "Append output to %s\n"
+msgstr "Výstup připojen k %s\n"
+
+#: vmsjobs.c:524
+#, c-format
+msgid "Redirected output to %s\n"
+msgstr "Výstup přesměrován do %s\n"
+
+#: vmsjobs.c:593
+#, c-format
+msgid "Append %.*s and cleanup\n"
+msgstr "Připojit %.*s a uklidit\n"
+
+#: vmsjobs.c:600
+#, c-format
+msgid "Executing %s instead\n"
+msgstr "Místo toho se spustí %s\n"
+
+#: vmsjobs.c:706
+#, c-format
+msgid "Error spawning, %d\n"
+msgstr "Chyba oddělení podprocesu, %d\n"
+
+#: vpath.c:583
+msgid ""
+"\n"
+"# VPATH Search Paths\n"
+msgstr ""
+"\n"
+"# Vyhledávací cesty VPATH\n"
+
+#: vpath.c:600
+msgid "# No 'vpath' search paths."
+msgstr "# Žádné vyhledávací cesty „vpath“."
+
+# FIXME: Pluralize
+#: vpath.c:602
+#, c-format
+msgid ""
+"\n"
+"# %u 'vpath' search paths.\n"
+msgstr ""
+"\n"
+"$ Vyhledávacích cest „vpath“: %u\n"
+
+#: vpath.c:605
+msgid ""
+"\n"
+"# No general ('VPATH' variable) search path."
+msgstr ""
+"\n"
+"# Žádná obecná vyhledávací cesta (proměnná „VPATH“)."
+
+#: vpath.c:611
+msgid ""
+"\n"
+"# General ('VPATH' variable) search path:\n"
+"# "
+msgstr ""
+"\n"
+"# Obecná vyhledávací cesta (proměnná „VPATH“):\n"
+"# "
+
+#~ msgid "# Invalid value in 'update_status' member!"
+#~ msgstr "# Neplatná hodnota v Älenu „update_status“!"
+
+#~ msgid "unknown trace mode '%s'"
+#~ msgstr "neznámý režim trasování „%s“"
+
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] Chyba 0x%x (ignorováno)"
+
+#~ msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
+#~ msgstr "Za úÄelem aktualizace cíle „%3$s“ se volá se návod z %1$s:%2$lu.\n"
+
+#~ msgid "Invoking builtin recipe to update target `%s'.\n"
+#~ msgstr "Za úÄelem aktualizace cíle „%s“ se volá vestavÄ›ný návod.\n"
+
+#~ msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+#~ msgstr ""
+#~ "%s poÄet vyrovnávacích pamÄ›tí keÅ¡e Å™etÄ›zců: %d (* %d B/buffer = %d B)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "# strcache hash-table stats:\n"
+#~ "# "
+#~ msgstr ""
+#~ "\n"
+#~ "# statistika hašovací tabulky keše řetězců:\n"
+#~ "# "
diff --git a/po/da.gmo b/po/da.gmo
index 7a5badb..3c6d27e 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index de34eb7..94d673d 100644
--- a/po/da.po
+++ b/po/da.po
@@ -1,121 +1,129 @@
# Danish messages for make
# Copyright (C) 2001 Free Software Foundation, Inc.
+# This file is distributed under the same license as the make package.
+#
# Byrial Ole Jensen <byrial@image.dk>, 2001
+# Ask Hjorth Larsen <asklarsen@gmail.com>, 2010.
#
msgid ""
msgstr ""
-"Project-Id-Version: make 3.80\n"
+"Project-Id-Version: make 3.82\n"
"Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2010-07-28 01:42-0400\n"
-"PO-Revision-Date: 2002-10-05 22:56+0200\n"
-"Last-Translator: Byrial Ole Jensen <byrial@image.dk>\n"
-"Language-Team: Danish <dansk@klid.dk>\n"
+"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"PO-Revision-Date: 2011-01-05 02:26+0100\n"
+"Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
+"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
+"Language: da\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ar.c:48
-#, c-format
-msgid "attempt to use unsupported feature: `%s'"
-msgstr "forsøg på at bruge en ikke understøttet facilitet: '%s'"
+#: ar.c:46
+#, fuzzy, c-format
+msgid "attempt to use unsupported feature: '%s'"
+msgstr "forsøg på at bruge en ikke understøttet facilitet: '%s'"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
-msgstr "'berør arkivmedlem' er ikke tilgængelig på VMS"
-
-#: ar.c:149
-#, c-format
-msgid "touch: Archive `%s' does not exist"
-msgstr "berør: Arkivet '%s' findes ikke"
+msgstr "'berør arkivmedlem' er ikke tilgængelig på VMS"
-#: ar.c:152
-#, c-format
-msgid "touch: `%s' is not a valid archive"
-msgstr "berør: '%s' er ikke et gyldigt arkiv"
-
-#: ar.c:159
-#, c-format
-msgid "touch: Member `%s' does not exist in `%s'"
-msgstr "berør: Medlemmet '%s' findes ikke i '%s'"
+#: ar.c:147
+#, fuzzy, c-format
+msgid "touch: Archive '%s' does not exist"
+msgstr "touch: Arkivet '%s' findes ikke"
-#: ar.c:166
-#, c-format
-msgid "touch: Bad return code from ar_member_touch on `%s'"
-msgstr "berør: Forkert returkode fra ar_member_touch på '%s'"
+#: ar.c:150
+#, fuzzy, c-format
+msgid "touch: '%s' is not a valid archive"
+msgstr "touch: '%s' er ikke et gyldigt arkiv"
-#: arscan.c:69
+#: ar.c:157
#, fuzzy, c-format
-msgid "lbr$set_module() failed to extract module info, status = %d"
-msgstr "lbr$set_module kunne ikke udtrække modulinformation, status = %d"
+msgid "touch: Member '%s' does not exist in '%s'"
+msgstr "touch: Medlemmet '%s' findes ikke i '%s'"
-#: arscan.c:175
+#: ar.c:164
#, fuzzy, c-format
-msgid "lbr$ini_control() failed with status = %d"
-msgstr "lbr$ini_control fejlede med status = %d"
+msgid "touch: Bad return code from ar_member_touch on '%s'"
+msgstr "touch: Forkert returkode fra ar_member_touch på '%s'"
-#: arscan.c:187
+#: arscan.c:67
#, c-format
-msgid "unable to open library `%s' to lookup member `%s'"
-msgstr "kan ikke åbne biblioteket '%s' for at søge medlemmet '%s'"
+msgid "lbr$set_module() failed to extract module info, status = %d"
+msgstr "lbr$set_module() kunne ikke udtrække modulinformation, status = %d"
-#: arscan.c:850
+#: arscan.c:173
#, c-format
-msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n"
+msgid "lbr$ini_control() failed with status = %d"
+msgstr "lbr$ini_control() fejlede med status = %d"
+
+#: arscan.c:185
+#, fuzzy, c-format
+msgid "unable to open library '%s' to lookup member '%s'"
+msgstr "kan ikke åbne biblioteket '%s' for at søge medlemmet '%s'"
+
+#: arscan.c:847
+#, fuzzy, c-format
+msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
msgstr "Medlem '%s'%s: %ld byte ved %ld (/%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
-msgstr " (navnet kan være forkortet)"
+msgstr " (navnet kan være forkortet)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Tidsstempel %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d, gid = %d, modus = 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 "*** Afbrydelse.\n"
-#: commands.c:622
-#, c-format
-msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
-msgstr "*** [%s] Arkivmedlemmet '%s' er måske falsk; ikke slettet"
+#: commands.c:630
+#, fuzzy, c-format
+msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
+msgstr "*** [%s] Arkivmedlemmet '%s' er måske falsk; ikke slettet"
-#: commands.c:625
-#, c-format
-msgid "*** Archive member `%s' may be bogus; not deleted"
-msgstr "*** Arkivmedlemmet '%s' er måske falsk; ikke slettet"
+#: commands.c:633
+#, fuzzy, c-format
+msgid "*** Archive member '%s' may be bogus; not deleted"
+msgstr "*** Arkivmedlemmet '%s' er måske falsk; ikke slettet"
-#: commands.c:638
-#, c-format
-msgid "*** [%s] Deleting file `%s'"
+#: commands.c:646
+#, fuzzy, c-format
+msgid "*** [%s] Deleting file '%s'"
msgstr "*** [%s] Sletter filen '%s'"
-#: commands.c:640
-#, c-format
-msgid "*** Deleting file `%s'"
+#: commands.c:648
+#, fuzzy, c-format
+msgid "*** Deleting file '%s'"
msgstr "*** Sletter filen '%s'"
-#: commands.c:676
-#, fuzzy
+#: commands.c:684
msgid "# recipe to execute"
-msgstr "# kommandoer at udføre"
+msgstr "# kommandoer der skal køres"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr " (indbyggede):"
-#: commands.c:681
-#, c-format
-msgid " (from `%s', line %lu):\n"
+#: commands.c:689
+#, fuzzy, c-format
+msgid " (from '%s', line %lu):\n"
msgstr " (fra '%s', linje %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -123,222 +131,222 @@ msgstr ""
"\n"
"# Filkataloger\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
-msgstr "# %s: kunne ikke undersøges med stat.\n"
+msgstr "# %s: kunne ikke undersøges med stat.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
-msgstr "# %s (nøgle %s, mtime %d): kunne ikke åbnes.\n"
+msgstr "# %s (nøgle %s, mtime %d): kunne ikke åbnes.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
-msgstr "# %s (enhed %d, inode [%d,%d,%d]): kunne ikke åbnes.\n"
+msgstr "# %s (enhed %d, inode [%d,%d,%d]): kunne ikke åbnes.\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
-msgstr "# %s (enhed %ld, inode %ld): kunne ikke åbnes.\n"
+msgstr "# %s (enhed %ld, inode %ld): kunne ikke åbnes.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
-msgstr "# %s (nøgle %s, mtime %d): "
+msgstr "# %s (nøgle %s, mtime %d): "
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
msgstr "# %s (enhed %d, inode [%d,%d,%d]): "
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
msgstr "# %s (enhed %ld, inode %ld): "
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "Ingen"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " filer, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "ingen"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
msgstr " umuligheder"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr " indtil videre."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
msgstr " umuligheder i %lu kataloger.\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 "Rekursiv variabel '%s' refererer (i sidste ende) til sig selv"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
msgstr "uafsluttet variabelreference"
-#: file.c:267
+#: file.c:269
#, fuzzy, c-format
-msgid "Recipe was specified for file `%s' at %s:%lu,"
-msgstr "Kommandoer var angivet for fil '%s' i %s:%lu,"
+msgid "Recipe was specified for file '%s' at %s:%lu,"
+msgstr "Kommandoer blev angivet for filen '%s' i %s:%lu,"
-#: file.c:272
+#: file.c:274
#, fuzzy, c-format
-msgid "Recipe for file `%s' was found by implicit rule search,"
-msgstr "Kommandoer for fil '%s' blev fundet ved implicit regel-søgning,"
+msgid "Recipe for file '%s' was found by implicit rule search,"
+msgstr "Kommandoer for filen '%s' blev fundet ved implicit regelsøgning,"
-#: 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 "men '%s' bliver nu anset som samme fil som '%s'."
-#: file.c:278
+#: file.c:280
#, fuzzy, c-format
-msgid "Recipe for `%s' will be ignored in favor of the one for `%s'."
-msgstr "Kommandoer for '%s' vil blive ignoreret til fordel for dem til '%s'."
+msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
+msgstr "Kommandoer for '%s' vil blive ignoreret til fordel for de for '%s'."
-#: file.c:298
-#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
-msgstr "kan ikke ændre enkelt-kolon '%s' til dobbelt-kolon '%s'"
+#: file.c:300
+#, fuzzy, c-format
+msgid "can't rename single-colon '%s' to double-colon '%s'"
+msgstr "kan ikke ændre enkelt-kolon '%s' til dobbelt-kolon '%s'"
-#: file.c:303
-#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
-msgstr "kan ikke ændre dobbelt-kolon '%s' til enkelt-kolon '%s'"
+#: file.c:305
+#, fuzzy, c-format
+msgid "can't rename double-colon '%s' to single-colon '%s'"
+msgstr "kan ikke ændre dobbelt-kolon '%s' til enkelt-kolon '%s'"
-#: file.c:392
-#, c-format
-msgid "*** Deleting intermediate file `%s'"
+#: file.c:396
+#, fuzzy, c-format
+msgid "*** Deleting intermediate file '%s'"
msgstr "*** Sletter mellemfil '%s'"
-#: file.c:396
+#: file.c:400
msgid "Removing intermediate files...\n"
msgstr "Sletter mellemfiler ...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
-msgstr "%s: Tidsstempel i forkert område; bruger %s"
+msgstr "%s: Tidsstempel i forkert område; bruger %s"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "Aktuel tid"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
-msgstr "# Ikke et mål:"
+msgstr "# Ikke et mål:"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
-msgstr "# Værdifuld fil (forudsætning for .PRECIOUS)."
+msgstr "# Værdifuld fil (forudsætning for .PRECIOUS)."
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
-msgstr "# Falsk mål (forudsætning for .PHONY)."
+msgstr "# Falsk mål (forudsætning for .PHONY)."
-#: file.c:933
-#, fuzzy
+#: file.c:958
msgid "# Command line target."
-msgstr "# Kommandolinjemål."
+msgstr "# Kommandolinjemål."
-#: file.c:935
-#, fuzzy
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
-msgstr "# En uangivet makefil, evt. en fra MAKEFILES."
+msgstr "# Et forvalg, MAKEFILES, eller -include/sinclude makefile."
+
+#: file.c:962
+#, fuzzy
+msgid "# Builtin rule"
+msgstr ""
+"\n"
+"# Ingen implicitte regler."
-#: file.c:937
+#: file.c:964
msgid "# Implicit rule search has been done."
-msgstr "# Der er udført implicit regelsøgning."
+msgstr "# Der er udført implicit regelsøgning."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
-msgstr "# Der er ikke udført implicit regelsøgning."
+msgstr "# Der er ikke udført implicit regelsøgning."
-#: file.c:940
-#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
-msgstr "# Implicit/statisk mønsterstamme: '%s'\n"
+#: file.c:967
+#, fuzzy, c-format
+msgid "# Implicit/static pattern stem: '%s'\n"
+msgstr "# Implicit/statisk mønsterstamme: '%s'\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
msgstr "# Filen er en mellemfil."
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
-msgstr "# Skaber også:"
+msgstr "# Skaber også:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
-msgstr "# Ændringstid ikke tjekket."
+msgstr "# Ændringstid ikke tjekket."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# Filen findes ikke."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr "# Filen er meget gammel."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
-msgstr "# Sidst ændret %s\n"
+msgstr "# Sidst ændret %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# Filen er blevet opdateret."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# Filen er ikke blevet opdateret."
-#: file.c:968
-#, fuzzy
+#: file.c:995
msgid "# Recipe currently running (THIS IS A BUG)."
-msgstr "# Kommandoer udføres nu (DETTE ER EN FEJL)."
+msgstr "# Der køres kommandoer nu (DETTE ER EN FEJL)."
-#: file.c:971
-#, fuzzy
+#: file.c:998
msgid "# Dependencies recipe running (THIS IS A BUG)."
-msgstr "# Kommandoer for afhængigheder udføres nu (DETTE ER EN FEJL)."
+msgstr "# Kommandoer for afhængigheder køres nu (DETTE ER EN FEJL)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
msgstr "# Opdateret med godt resultat."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
-msgstr "# Behøver opdatering (-q er sat)."
+msgstr "# Behøver opdatering (-q er sat)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr "# Opdatering mislykkedes."
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# Ugyldig værdi i 'update_status'-felt!"
-
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
-msgstr "# Ugyldig værdi i 'command_state'-felt!"
+#: file.c:1019
+#, fuzzy
+msgid "# Invalid value in 'command_state' member!"
+msgstr "# Ugyldig værdi i 'command_state'-felt!"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -346,7 +354,7 @@ msgstr ""
"\n"
"# Filer"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
@@ -356,121 +364,178 @@ msgstr ""
"# Statistik for fil-hash-spande:\n"
"# "
-#: function.c:758
-msgid "non-numeric first argument to `word' function"
-msgstr "ikke-numerisk første argument til 'word'-funktionen"
+#: 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 "ikke-numerisk første argument til 'word'-funktionen"
-#: function.c:763
-msgid "first argument to `word' function must be greater than 0"
-msgstr "første argument til 'word'-functionen skal være større end 0"
+#: function.c:747
+#, fuzzy
+msgid "first argument to 'word' function must be greater than 0"
+msgstr "første argument til 'word'-functionen skal være større end 0"
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
-msgstr "ikke-numerisk første argument til 'wordlist'-funktionen"
+#: function.c:767
+#, fuzzy
+msgid "non-numeric first argument to 'wordlist' function"
+msgstr "ikke-numerisk første argument til 'wordlist'-funktionen"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
+#: function.c:769
+#, fuzzy
+msgid "non-numeric second argument to 'wordlist' function"
msgstr "ikke-numerisk andet argument til 'wordlist'-funktionen"
-#: function.c:1458
+#: function.c:1460
#, fuzzy, c-format
-msgid "windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"
-msgstr "create_child_process: DuplicateHandle(In) mislykkedes (e=%d)\n"
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
+msgstr "windows32_openpipe(): DuplicateHandle(In) mislykkedes (e=%ld)\n"
-#: function.c:1469
+#: function.c:1483
#, fuzzy, c-format
-msgid "windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr "create_child_process: DuplicateHandle(Err) mislykkedes (e=%d)\n"
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
+msgstr "windows32_open_pipe(): DuplicateHandle(Err) mislykkedes (e=%ld)\n"
-#: function.c:1474
-#, fuzzy, c-format
+#: function.c:1490
+#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
-msgstr "CreatePipe() mislykkedes (e=%d)\n"
+msgstr "CreatePipe() mislykkedes (e=%ld)\n"
-#: function.c:1479
-#, fuzzy
+#: function.c:1498
msgid "windows32_openpipe(): process_init_fd() failed\n"
msgstr "windows32_openpipe(): process_init_fd() mislykkedes\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr "Afrydder midlertidig batchfil %s\n"
-#: function.c:2150
+#: function.c:2151
#, fuzzy, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
-msgstr "Utilstrækkeligt antal argumenter (%d) til funktionen '%s'"
+msgid "open: %s: %s"
+msgstr "%s: %s"
-#: function.c:2162
+#: function.c:2158
#, fuzzy, c-format
-msgid "unimplemented on this platform: function `%s'"
-msgstr "Uimplementeret på denne platform: funktion '%s'"
+msgid "write: %s: %s"
+msgstr "skrivefejl: %s"
-#: function.c:2212
+#: function.c:2164
#, c-format
-msgid "unterminated call to function `%s': missing `%c'"
-msgstr "Uafsluttet kald til funktionen '%s'; manglende '%c'"
+msgid "Invalid file operation: %s"
+msgstr ""
-#: getopt.c:661
+#: function.c:2279
+#, fuzzy, c-format
+msgid "insufficient number of arguments (%d) to function '%s'"
+msgstr "utilstrækkeligt antal argumenter (%d) til funktionen '%s'"
+
+#: function.c:2291
+#, fuzzy, c-format
+msgid "unimplemented on this platform: function '%s'"
+msgstr "ikke implementeret på denne platform: funktion '%s'"
+
+#: function.c:2354
+#, fuzzy, c-format
+msgid "unterminated call to function '%s': missing '%c'"
+msgstr "uafsluttet kald til funktionen '%s'; manglende '%c'"
+
+#: function.c:2546
+msgid "Empty function name\n"
+msgstr ""
+
+#: function.c:2548
#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: tilvalg '%s' er flertydigt\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 "utilstrækkeligt antal argumenter (%d) til funktionen '%s'"
+
+#: function.c:2555
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "utilstrækkeligt antal argumenter (%d) til funktionen '%s'"
+
+#: getopt.c:659
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: tilvalg '%s' er flertydigt\n"
+
+#: getopt.c:683
+#, fuzzy, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr "%s: tilvalg '--%s' tillader ikke et argument\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: tilvalg '%c%s' tillader ikke et argument\n"
-#: getopt.c:707 getopt.c:880
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s tilvalg '%s' kræver et argument\n"
+#: getopt.c:705 getopt.c:878
+#, fuzzy, c-format
+msgid "%s: option '%s' requires an argument\n"
+msgstr "%s tilvalg '%s' kræver et argument\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: ikke genkendt tilvalg '--%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: ikke genkendt tilvalg '%c%s'\n"
-#: getopt.c:766
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: ulovligt tilvalg -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: ugyldigt tilvalg -- %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: tilvalg kræver et argument -- %c\n"
+msgstr "%s: tilvalg kræver et argument -- %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: tilvalg '-W %s' er flertydigt\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: tilvalg '-W %s' tillader ikke et argument\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
+#, c-format
msgid "can't allocate %lu bytes for hash table: memory exhausted"
-msgstr "kan ikke tildele %ld byte til hash-spande: hukommelsen opbrugt"
+msgstr "kan ikke tildele %lu byte til hashtabel: hukommelsen opbrugt"
#: hash.c:280
#, c-format
@@ -485,302 +550,386 @@ msgstr "Omgrupperinger=%d, "
#: hash.c:283
#, c-format
msgid "Collisions=%ld/%ld=%.0f%%"
-msgstr "Sammenstød=%ld/%ld=%.0f%%"
+msgstr "Sammenstød=%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 "Kigger efter en implicit regel for '%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 "Kigger efter en implicit arkivmedlemsregel for '%s'.\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
-msgstr "Undgår rekursion i implicitte regler.\n"
+msgstr "Undgår rekursion i implicitte regler.\n"
-#: implicit.c:491
+#: implicit.c:486
#, c-format
-msgid "Trying pattern rule with stem `%.*s'.\n"
-msgstr "Prøver mønsterregel med stammen '%.*s'.\n"
+msgid "Stem too long: '%.*s'.\n"
+msgstr ""
-#: implicit.c:674
-#, c-format
-msgid "Rejecting impossible rule prerequisite `%s'.\n"
-msgstr "Afviser umulig regelforudsætning '%s'.\n"
+#: implicit.c:491
+#, fuzzy, c-format
+msgid "Trying pattern rule with stem '%.*s'.\n"
+msgstr "Prøver mønsterregel med stammen '%.*s'.\n"
-#: implicit.c:675
-#, c-format
-msgid "Rejecting impossible implicit prerequisite `%s'.\n"
-msgstr "Afviser umulig implicit forudsætning '%s'.\n"
+#: implicit.c:697
+#, fuzzy, c-format
+msgid "Rejecting impossible rule prerequisite '%s'.\n"
+msgstr "Afviser umulig regelforudsætning '%s'.\n"
-#: implicit.c:688
-#, c-format
-msgid "Trying rule prerequisite `%s'.\n"
-msgstr "Prøver regelforudsætning '%s'.\n"
+#: implicit.c:698
+#, fuzzy, c-format
+msgid "Rejecting impossible implicit prerequisite '%s'.\n"
+msgstr "Afviser umulig implicit forudsætning '%s'.\n"
-#: implicit.c:689
-#, c-format
-msgid "Trying implicit prerequisite `%s'.\n"
-msgstr "Prøver implicit forudsætning '%s'.\n"
+#: implicit.c:711
+#, fuzzy, c-format
+msgid "Trying rule prerequisite '%s'.\n"
+msgstr "Prøver regelforudsætning '%s'.\n"
-#: implicit.c:728
-#, c-format
-msgid "Found prerequisite `%s' as VPATH `%s'\n"
-msgstr "Fandt forudsætning '%s' som VPATH '%s'\n"
+#: implicit.c:712
+#, fuzzy, c-format
+msgid "Trying implicit prerequisite '%s'.\n"
+msgstr "Prøver implicit forudsætning '%s'.\n"
-#: implicit.c:742
-#, c-format
-msgid "Looking for a rule with intermediate file `%s'.\n"
+#: implicit.c:751
+#, fuzzy, c-format
+msgid "Found prerequisite '%s' as VPATH '%s'\n"
+msgstr "Fandt forudsætning '%s' som VPATH '%s'\n"
+
+#: implicit.c:765
+#, fuzzy, c-format
+msgid "Looking for a rule with intermediate file '%s'.\n"
msgstr "Kigger efter en regel med mellemfil '%s'.\n"
-#: job.c:335
-#, fuzzy
+#: job.c:361
msgid "Cannot create a temporary file\n"
-msgstr "fwrite (midlertidig fil)"
+msgstr "Kan ikke oprette midlertidig fil\n"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] Fejl 0x%x (ignoreret)"
-
-#: job.c:450
-#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] Fejl 0x%x"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (core-fil efterladt)"
-#: job.c:454
-#, c-format
-msgid "[%s] Error %d (ignored)"
+#: job.c:487
+#, fuzzy
+msgid " (ignored)"
msgstr "[%s] Fejl %d (ignoreret)"
-#: job.c:455
-#, c-format
-msgid "*** [%s] Error %d"
+#: job.c:491 job.c:1994
+#, fuzzy
+msgid "<builtin>"
+msgstr " (indbyggede):"
+
+#: job.c:501
+#, fuzzy, c-format
+msgid "%s: recipe for target '%s' failed"
+msgstr "advarsel: tilsidesætter kommandoer for mål '%s'"
+
+#: job.c:510
+#, fuzzy, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "*** [%s] Fejl 0x%x"
+
+#: job.c:513
+#, fuzzy, c-format
+msgid "%s[%s] Error %d%s"
msgstr "*** [%s] Fejl %d"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (core-fil efterladt)"
+#: 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 "*** Venter på uafsluttede job...."
+msgstr "*** Venter på uafsluttede job...."
-#: job.c:579
-#, fuzzy, c-format
+#: job.c:639
+#, c-format
msgid "Live child %p (%s) PID %s %s\n"
-msgstr "Levende barn 0x%08lx (%s), PID %ld %s\n"
+msgstr "Levende underproces %p (%s) PID %s %s\n"
-#: 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 " (eksternt)"
-#: job.c:758
-#, fuzzy, c-format
+#: job.c:829
+#, c-format
msgid "Reaping losing child %p PID %s %s\n"
-msgstr "Høster taberbarn 0x%08lx, PID %ld %s\n"
+msgstr "Høster tabende underproces %p PID %s %s\n"
-#: job.c:759
-#, fuzzy, c-format
+#: job.c:830
+#, c-format
msgid "Reaping winning child %p PID %s %s\n"
-msgstr "Høster vinderbarn 0x%08lx, PID %ld %s\n"
+msgstr "Høster vindende underproces %p PID %s %s\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
msgstr "Afrydder midlertidig jobfil %s\n"
-#: job.c:861
+#: job.c:843
#, fuzzy, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "Afrydder midlertidig jobfil %s\n"
+
+#: job.c:949
+#, c-format
msgid "Removing child %p PID %s%s from chain.\n"
-msgstr "Fjerner barn 0x%08lx, PID %ld%s fra kæde.\n"
+msgstr "Fjerner underproces %p PID %s%s fra kæde.\n"
-#: job.c:920
-msgid "write jobserver"
-msgstr "write jobserver"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr ""
-#: job.c:922
-#, fuzzy, c-format
+#: job.c:1011 job.c:1025
+#, c-format
msgid "Released token for child %p (%s).\n"
-msgstr "Frigav symbol for barn 0x%08lx (%s).\n"
+msgstr "Frigav symbol for underproces %p (%s).\n"
-#: job.c:1453 job.c:2094
-#, fuzzy, c-format
+#: job.c:1023
+msgid "write jobserver"
+msgstr "write jobserver"
+
+#: job.c:1612 job.c:2332
+#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
-msgstr "process_easy() fejlede ved igangsætning af proces (e=%d)\n"
+msgstr "process_easy() fejlede ved igangsætning af proces (e=%ld)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
"Counted %d args in failed launch\n"
msgstr ""
"\n"
-"Talte %d argumenter i fejlet igangsætning\n"
+"Talte %d argumenter i fejlet igangsætning\n"
-#: job.c:1525
-#, fuzzy, c-format
+#: job.c:1685
+#, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
-msgstr "Sætter barn 0x%08lx (%s), PID %ld%s i kæden.\n"
+msgstr "Sætter underproces %p (%s) PID %s%s på kæden.\n"
-#: job.c:1778
-#, fuzzy, c-format
+#: 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 "Fik symbol for barn 0x%08lx (%s).\n"
+msgstr "Fik symbol for underproces %p (%s).\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
msgstr "read jobs pipe"
-#: 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: Arkivet '%s' findes ikke"
-#: job.c:1802
+#: job.c:2005
#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "Ingen grund til at genskabe målet '%s'"
+msgid "%s: update target '%s' due to: %s"
+msgstr "%sIngen regel til at skabe mål '%s' som behøves af '%s'%s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
-msgstr "kan ikke gennemtvinge belastningsgrænser på dette styrestystem"
+msgstr "kan ikke gennemtvinge belastningsgrænser på dette styrestystem"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
-msgstr "kan ikke gennemtvinge belastningsgrænse: "
+msgstr "kan ikke gennemtvinge belastningsgrænse: "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
-msgstr ""
+msgstr "ikke flere filhåndtag: Kunne ikke duplikere stdin\n"
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
-msgstr ""
+msgstr "ikke flere filhåndtag: Kunne ikke duplikere stdout\n"
-#: job.c:2015
+#: job.c:2223
+#, fuzzy
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr "ikke flere filhåndtag: Kunne ikke duplikere stdin\n"
+
+#: job.c:2238
msgid "Could not restore stdin\n"
-msgstr ""
+msgstr "Kunne ikke gendanne stdin\n"
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
-msgstr ""
+msgstr "Kunne ikke gendanne stdout\n"
-#: job.c:2127
-#, fuzzy, c-format
+#: job.c:2254
+#, fuzzy
+msgid "Could not restore stderr\n"
+msgstr "Kunne ikke gendanne stdin\n"
+
+#: job.c:2365
+#, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
-msgstr "make høstede børne-pid %d, venter endnu på pid %d\n"
+msgstr "make høstede underproces med pid %s, venter endnu på pid %s\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
msgstr "%s: Kommando ikke fundet"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr "%s; Skalprogram ikke fundet"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
-msgstr ""
+msgstr "spawnvpe: miljøplads er måske opbrugt"
-#: job.c:2461
+#: job.c:2709
#, fuzzy, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
-msgstr "$SHELL ændret (var '%s', nu '%s')"
+msgid "$SHELL changed (was '%s', now '%s')\n"
+msgstr "$SHELL ændret (var '%s', nu '%s')\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr "Opretter midlertidig jobfil %s\n"
-#: job.c:2963
+#: job.c:3148
+#, fuzzy
+msgid ""
+"Batch file contents:\n"
+"\t@echo off\n"
+msgstr ""
+"Indhold af batchfil:%s\n"
+"\t%s\n"
+
+#: job.c:3337
#, c-format
msgid ""
"Batch file contents:%s\n"
"\t%s\n"
msgstr ""
+"Indhold af batchfil:%s\n"
+"\t%s\n"
-#: job.c:3065
+#: job.c:3444
#, c-format
msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
msgstr "%s (linje %d) Forkert skal-kontekst (!unixy && !batch_mode_shell)\n"
-#: 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 "Parallelle job (-j) er ikke understøttet på denne platform."
+
+#: main.c:312
msgid "Options:\n"
msgstr "Tilvalg:\n"
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
msgstr " -b, -m Ignoreret af hensyn til kompabilitet.\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
-msgstr " -B, --always-make Skab alle mål betingelsesløst.\n"
+msgstr " -B, --always-make Skab alle mål betingelsesløst.\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
msgstr ""
" -C KATALOG, --directory=KATALOG\n"
-" Skift allerførst til KATALOG.\n"
+" Skift allerførst til KATALOG.\n"
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
msgstr ""
-" -d Udskriv en masse fejlsøgningsinformation.\n"
+" -d Udskriv en masse fejlsøgningsinformation.\n"
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
" --debug[=FLAG] Udskriv forskellige slags "
-"fejlsøgningsinformation.\n"
+"fejlsøgningsinformation.\n"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
msgstr ""
" -e, --environment-overrides\n"
-" Miljøvariable har forrang for makefiler.\n"
+" Miljøvariable har forrang for makefiler.\n"
-#: main.c:318
+#: main.c:327
msgid ""
" --eval=STRING Evaluate STRING as a makefile statement.\n"
msgstr ""
+" --eval=STRENG Evaluér STRENG som en makefil-erklæring.\n"
-#: main.c:320
+#: main.c:329
msgid ""
" -f FILE, --file=FILE, --makefile=FILE\n"
" Read FILE as a makefile.\n"
msgstr ""
" -f FIL, --file=FIL, --makefile=FIL\n"
-" Læs FIL som en makefil.\n"
+" Læs FIL som en makefil.\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
msgstr " -h, --help Udskriv denne besked og afslut.\n"
-#: main.c:325
-#, fuzzy
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
-msgstr " -i, --ignore-errors Ignorér fejl fra kommandoer.\n"
+msgstr " -i, --ignore-errors Ignorér fejl fra kommandoer.\n"
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
msgstr ""
" -I KATALOG, --include-dir=KATALOG\n"
-" Søg i KATALOG efter inkluderede makefiler.\n"
+" Søg i KATALOG efter inkluderede makefiler.\n"
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
@@ -788,13 +937,13 @@ msgstr ""
" -j [N], --jobs[=N] Tillad N samtidige job; uendelig mange job "
"uden argument.\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 Fortsæt selvom nogen mål ikke kan skabes.\n"
+" -k, --keep-going Fortsæt selvom nogen mål ikke kan skabes.\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 "
@@ -804,121 +953,143 @@ msgstr ""
" Start ikke flere job medmindre belastningen er "
"under N.\n"
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
msgstr ""
+" -L, --check-symlink-times Brug sidste mtime mellem symbolske lænker og "
+"mål.\n"
-#: main.c:339
-#, fuzzy
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
"them.\n"
msgstr ""
" -n, --just-print, --dry-run, --recon\n"
-" Udfør ikke nogen kommandoer; udskriv dem "
+" Udfør ikke nogen kommandoer; udskriv dem "
"bare.\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 "
"it.\n"
msgstr ""
" -o FIL, --old-file=FIL, --assume-old=FIL\n"
-" Anse FIL som værende meget gammel og genskab "
+" Anse FIL som værende meget gammel og genskab "
"den ikke.\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 Udskriv makes interne database.\n"
-#: main.c:347
-#, fuzzy
+#: main.c:359
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
msgstr ""
-" -q, --question Udfør ingen kommandoer; afslutningskoden "
-"fortæller status.\n"
+" -q, --question Udfør ingen kommandoer; afslutningskoden "
+"angiver\n"
+" om målet er tidssvarende.\n"
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr ""
-" -r, --no-builtin-rules Slå de indbyggede implicitte regler fra.\n"
+" -r, --no-builtin-rules Slå de indbyggede implicitte regler fra.\n"
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
-msgstr " -R, --no-builtin-variables Slå de indbyggede variabelværdier fra.\n"
+msgstr " -R, --no-builtin-variables Slå de indbyggede variabelværdier fra.\n"
-#: main.c:353
-#, fuzzy
+#: main.c:365
msgid " -s, --silent, --quiet Don't echo recipes.\n"
-msgstr " -s, --silent, --quiet Udskriv ikke kommander.\n"
+msgstr " -s, --silent, --quiet Udskriv ikke kommandoer.\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
msgstr ""
" -S, --no-keep-going, --stop\n"
-" Slår -k fra.\n"
+" Slår -k fra.\n"
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
-" -t, --touch Berør mål i stedet for at genskabe dem.\n"
+" -t, --touch Berør mål i stedet for at genskabe dem.\n"
-#: main.c:360
+#: main.c:372
+#, fuzzy
+msgid " --trace Print tracing information.\n"
+msgstr ""
+" -d Udskriv en masse fejlsøgningsinformation.\n"
+
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr " -v, --version Udskriv makes versionnummer og afslut.\n"
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
msgstr " -w, --print-directory Udskriv det aktuelle katalog.\n"
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
msgstr ""
-" --no-print-directory Slå -w fra, selv hvis det var slået til "
+" --no-print-directory Slå -w fra, selv hvis det var slået til "
"automatisk.\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"
msgstr ""
" -W FIL, --what-if=FIL, --new-file=FIL, --assume-new=FIL\n"
-" Anse FIL som værende nyskabt.\n"
+" Anse FIL som værende nyskabt.\n"
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
msgstr ""
-" --warn-undefined-variables Advar når en udefineret variabel bruges.\n"
+" --warn-undefined-variables Advar når en udefineret variabel bruges.\n"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
msgstr "en tom streng er ugyldig som filnavn"
-#: main.c:650
+#: main.c:734
+#, fuzzy, c-format
+msgid "unknown debug level specification '%s'"
+msgstr "ukendt fejlsøgningsniveau-specifikation '%s'"
+
+#: main.c:777
#, c-format
-msgid "unknown debug level specification `%s'"
-msgstr "ukendt fejlsøgningsniveau-specifikation '%s'"
+msgid "unknown output-sync type '%s'"
+msgstr ""
-#: main.c:690
-#, fuzzy, c-format
+#: main.c:787
+#, fuzzy
+msgid "internal error: multiple --sync-mutex options"
+msgstr "intern fejl: flere '--jobserver-fds'-tilvalg"
+
+#: main.c:848
+#, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
-msgstr "%s: Interrupt/undtagelse fanget (kode = 0x%x, addr = 0x%x)\n"
+msgstr "%s: Afbrydelse/undtagelse fanget (kode = 0x%lx, addr = 0x%p)\n"
-#: main.c:697
-#, fuzzy, c-format
+#: main.c:855
+#, c-format
msgid ""
"\n"
"Unhandled exception filter called from program %s\n"
@@ -927,165 +1098,190 @@ msgid ""
"ExceptionAddress = 0x%p\n"
msgstr ""
"\n"
-"Uhåndteret undtagelsesfilter kaldt fra program %s\n"
-"ExceptionCode = %x\n"
-"ExceptionFlags = %x\n"
-"ExceptionAddress = %x\n"
+"Uhåndteret undtagelsesfilter kaldt fra program %s\n"
+"ExceptionCode = %lx\n"
+"ExceptionFlags = %lx\n"
+"ExceptionAddress = 0x%p\n"
-#: main.c:705
-#, fuzzy, c-format
+#: main.c:863
+#, c-format
msgid "Access violation: write operation at address 0x%p\n"
-msgstr "Adgangskrænkelse: skriveoperation på adresse %x\n"
+msgstr "Adgangskrænkelse: skriveoperation på adresse 0x%p\n"
-#: main.c:706
-#, fuzzy, c-format
+#: main.c:864
+#, c-format
msgid "Access violation: read operation at address 0x%p\n"
-msgstr "Adgangskrænkelse: læseoperation på adresse %x\n"
+msgstr "Adgangskrænkelse: læseoperation på adresse 0x%p\n"
-#: main.c:781 main.c:792
-#, fuzzy, c-format
+#: main.c:940 main.c:955
+#, c-format
msgid "find_and_set_shell() setting default_shell = %s\n"
-msgstr "find_and_set_shell sætter default_shell = %s\n"
+msgstr "find_and_set_shell() sætter default_shell = %s\n"
-#: main.c:834
-#, fuzzy, c-format
+#: main.c:1008
+#, c-format
msgid "find_and_set_shell() path search set default_shell = %s\n"
-msgstr "find_and_set_shell stisøgning sætter default_shell = %s\n"
+msgstr "find_and_set_shell()-stisøgning sætter default_shell = %s\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr "%s er standset i 30 sekunder..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
-msgstr "udført sleep(30). Fortsætter.\n"
-
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr "Makefil fra standard-ind er angivet to gange."
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr "fopen (midlertidig fil)"
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr "fwrite (midlertidig fil)"
+msgstr "udført sleep(30). Fortsætter.\n"
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "Parallelle job (-j) er ikke understøttet på denne platform."
-
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
-msgstr "Sætter tilbage til enkelt job-tilstand (-j1)."
-
-#: main.c:1719
+#: main.c:1534
msgid "internal error: multiple --jobserver-fds options"
msgstr "intern fejl: flere '--jobserver-fds'-tilvalg"
-#: 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 ""
+
+# fd = fildeskriptor
+#: main.c:1547
+#, fuzzy, c-format
+msgid "Jobserver client (semaphore %s)\n"
+msgstr "Jobserverklient (fd'er %d,%d)\n"
+
+#: main.c:1551
+#, fuzzy, c-format
+msgid "internal error: invalid --jobserver-fds string '%s'"
msgstr "intern fejl: ugyldig '--jobserver-fds'-streng '%s'"
-#: main.c:1730
+# fd = fildeskriptor
+#: main.c:1554
#, c-format
msgid "Jobserver client (fds %d,%d)\n"
-msgstr ""
+msgstr "Jobserverklient (fd'er %d,%d)\n"
-#: main.c:1740
+#: main.c:1567
msgid "warning: -jN forced in submake: disabling jobserver mode."
-msgstr "advarsel: tvunget -jN i undermake: slår jobserver tilstand fra."
+msgstr "advarsel: tvunget -jN i undermake: slår jobserver tilstand fra."
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
msgstr "dup jobserver"
-#: 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 ""
-"advarsel: jobserver ikke tilgængelig: bruger -j1. Tilføj '+' til "
+"advarsel: jobserver ikke tilgængelig: bruger -j1. Tilføj '+' til "
"ophavsmakeregel."
-#: main.c:1777
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "Makefil fra standard-ind er angivet to gange."
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (midlertidig fil)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (midlertidig fil)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr "Parallelle job (-j) er ikke understøttet på denne platform."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "Sætter tilbage til enkelt job-tilstand (-j1)."
+
+# fd = fildeskriptor
+#: main.c:2006
+#, fuzzy, c-format
+msgid "Jobserver slots limited to %d\n"
+msgstr "Jobserverklient (fd'er %d,%d)\n"
+
+#: main.c:2012
+#, c-format
+msgid "creating jobserver semaphore: (Error %ld: %s)"
+msgstr ""
+
+#: main.c:2019
msgid "creating jobs pipe"
msgstr "oprettelse af jobledning"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
-msgstr "klargøring af jobserver-ledning"
+msgstr "klargøring af jobserver-ledning"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
-msgstr ""
+msgstr "Symbolske lænker understøttes ikke: Deaktiverer -L."
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr "Opdaterer makefiler....\n"
-#: main.c:1917
-#, c-format
-msgid "Makefile `%s' might loop; not remaking it.\n"
-msgstr "Makefilen '%s' får måske make til at gå i ring; genskaber den ikke.\n"
+#: main.c:2174
+#, fuzzy, c-format
+msgid "Makefile '%s' might loop; not remaking it.\n"
+msgstr "Makefilen '%s' får måske make til at gå i ring; genskaber den ikke.\n"
-#: main.c:1996
-#, c-format
-msgid "Failed to remake makefile `%s'."
+#: main.c:2253
+#, fuzzy, c-format
+msgid "Failed to remake makefile '%s'."
msgstr "Genskabelse af makefilen '%s' mislykkedes."
-#: 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 "Inkluderet makefil '%s' blev ikke fundet."
-#: main.c:2018
-#, c-format
-msgid "Makefile `%s' was not found"
+#: main.c:2275
+#, fuzzy, c-format
+msgid "Makefile '%s' was not found"
msgstr "Makefil '%s' blev ikke fundet."
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
msgstr "Kunne ikke skifte tilbage til det originale katalog."
-#: main.c:2102
-#, fuzzy, c-format
+#: main.c:2354
+#, c-format
msgid "Re-executing[%u]:"
-msgstr "Udfører igen:"
+msgstr "Udfører igen[%u]:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr "unlink (midlertidig fil): "
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
-msgstr ""
+msgstr ".DEFAULT_GOAL indeholder mere end et mål"
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
-msgstr "Ingen angivne mål og ingen makefil fundet"
+msgstr "Ingen angivne mål og ingen makefil fundet"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
-msgstr "Ingen mål"
+msgstr "Ingen mål"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
-msgstr "Opdaterer endemål....\n"
+msgstr "Opdaterer endemål....\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
-msgstr "advarsel: Fejl i urets tid opdaget. Din bygning kan være ukomplet."
+msgstr "advarsel: Fejl i urets tid opdaget. Din bygning kan være ukomplet."
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
-msgstr "Brug: %s [tilvalg] [mål] ...\n"
+msgstr "Brug: %s [tilvalg] [mål] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
@@ -1094,7 +1290,7 @@ msgstr ""
"\n"
"Dette program er bygget til %s\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
@@ -1103,36 +1299,32 @@ msgstr ""
"\n"
"Dette program er bygget til %s (%s)\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
-msgstr "Send fejlmeldinger (på engelsk) til <bug-make@gnu.org>.\n"
+msgstr "Send fejlmeldinger (på engelsk) til <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"
-msgstr "'-%c'-tilvalget kræver et positivt heltalligt argument"
-
-#: main.c:2617
-#, c-format
-msgid "the `-%c' option requires a positive integral argument"
-msgstr "'-%c'-tilvalget kræver et positivt heltalligt argument"
+msgid "the '%s%s' option requires a non-empty string argument"
+msgstr "'-%s%s'-tilvalget kræver et strengargument, der ikke er tomt"
-#: main.c:3054
+#: main.c:2864
#, fuzzy, c-format
+msgid "the '-%c' option requires a positive integer argument"
+msgstr "'-%c'-tilvalget kræver et positivt heltalligt argument"
+
+#: main.c:3253
+#, c-format
msgid "%sBuilt for %s\n"
-msgstr ""
-"\n"
-"Dette program er bygget til %s\n"
+msgstr "%sBygget til %s\n"
-#: main.c:3056
-#, fuzzy, c-format
+#: main.c:3255
+#, c-format
msgid "%sBuilt for %s (%s)\n"
-msgstr ""
-"\n"
-"Dette program er bygget til %s (%s)\n"
+msgstr "%sBygget til %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."
@@ -1140,9 +1332,12 @@ msgid ""
"%sThis is free software: you are free to change and redistribute it.\n"
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
+"%sLicens GPLv3+: GNU GPL v3 eller nyere <http://gnu.org/licenses/gpl.html>\n"
+"%sDette er frit programmel: Du kan frit ændre og videredistribuere det.\n"
+"%sDer gives INGEN GARANTI i den grad, som dette tillades af loven.\n"
-# %s giver dato og klokkeslæt
-#: main.c:3086
+# %s giver dato og klokkeslæt
+#: main.c:3287
#, c-format
msgid ""
"\n"
@@ -1151,8 +1346,8 @@ msgstr ""
"\n"
"# Makedatabase, udskrevet %s"
-# %s giver dato og klokkeslæt
-#: main.c:3096
+# %s giver dato og klokkeslæt
+#: main.c:3297
#, c-format
msgid ""
"\n"
@@ -1161,454 +1356,468 @@ msgstr ""
"\n"
"# Afsluttet makedatabase %s\n"
-#: main.c:3237
-#, fuzzy, c-format
-msgid "%s: Entering an unknown directory\n"
-msgstr "%s: Går til et ukendt katalog"
-
-#: main.c:3239
-#, fuzzy, c-format
-msgid "%s: Leaving an unknown directory\n"
-msgstr "%s: Forlader et ukendt katalog"
-
-#: main.c:3242
-#, c-format
-msgid "%s: Entering directory `%s'\n"
-msgstr "%s: Går til katalog '%s'\n"
-
-#: main.c:3245
-#, c-format
-msgid "%s: Leaving directory `%s'\n"
-msgstr "%s: Forlader katalog '%s'\n"
-
-#: main.c:3250
-#, fuzzy, c-format
-msgid "%s[%u]: Entering an unknown directory\n"
-msgstr "%s[%u]: Går til et ukendt katalog"
-
-#: main.c:3253
-#, fuzzy, c-format
-msgid "%s[%u]: Leaving an unknown directory\n"
-msgstr "%s[%u]: Forlader et ukendt katalog"
-
-#: main.c:3257
-#, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
-msgstr "%s[%u]: Går til katalog '%s'\n"
-
-#: main.c:3260
-#, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
-msgstr "%s[%u]: Forlader katalog '%s'\n"
-
-#: misc.c:316
-msgid ". Stop.\n"
-msgstr ". Stop.\n"
-
-#: misc.c:337
+#: misc.c:201
#, c-format
msgid "Unknown error %d"
msgstr "Ukendt fejl %d"
-#: misc.c:347
-#, c-format
-msgid "%s%s: %s"
-msgstr "%s%s: %s"
-
-#: misc.c:355
-#, 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
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
msgid "virtual memory exhausted"
msgstr "virtuel hukommelse opbrugt"
-#: misc.c:708
+#: misc.c:522
#, c-format
msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
msgstr "%s: bruger %lu (reelt %lu), gruppe %lu (reelt %lu)\n"
-#: misc.c:729
+#: misc.c:543
msgid "Initialized access"
msgstr "Indledende adgang"
-#: misc.c:808
+#: misc.c:622
msgid "User access"
msgstr "Brugeradgang"
-#: misc.c:856
+#: misc.c:670
msgid "Make access"
msgstr "Make-adgang"
-#: misc.c:890
+#: misc.c:704
msgid "Child access"
msgstr "Barneadgang"
-#: misc.c:954
+#: output.c:128
+#, c-format
+msgid "%s: Entering an unknown directory\n"
+msgstr "%s: GÃ¥r til et ukendt katalog\n"
+
+#: output.c:130
+#, c-format
+msgid "%s: Leaving an unknown directory\n"
+msgstr "%s: Forlader et ukendt katalog\n"
+
+#: output.c:133
+#, fuzzy, c-format
+msgid "%s: Entering directory '%s'\n"
+msgstr "%s: GÃ¥r til katalog '%s'\n"
+
+#: output.c:135
+#, fuzzy, c-format
+msgid "%s: Leaving directory '%s'\n"
+msgstr "%s: Forlader katalog '%s'\n"
+
+#: output.c:139
+#, c-format
+msgid "%s[%u]: Entering an unknown directory\n"
+msgstr "%s[%u]: GÃ¥r til et ukendt katalog\n"
+
+#: output.c:141
+#, c-format
+msgid "%s[%u]: Leaving an unknown directory\n"
+msgstr "%s[%u]: Forlader et ukendt katalog\n"
+
+#: output.c:144
+#, fuzzy, c-format
+msgid "%s[%u]: Entering directory '%s'\n"
+msgstr "%s[%u]: GÃ¥r til katalog '%s'\n"
+
+#: output.c:146
#, fuzzy, c-format
+msgid "%s[%u]: Leaving directory '%s'\n"
+msgstr "%s[%u]: Forlader katalog '%s'\n"
+
+#: output.c:515
+#, c-format
msgid "write error: %s"
-msgstr "Omdirigeret fejl to %s\n"
+msgstr "skrivefejl: %s"
-#: misc.c:956
-#, fuzzy
+#: output.c:517
msgid "write error"
-msgstr "write jobserver"
+msgstr "skrivefejl"
+
+#: output.c:740
+msgid ". Stop.\n"
+msgstr ". Stop.\n"
-#: read.c:179
+#: output.c:751
+#, c-format
+msgid "%s%s: %s"
+msgstr "%s%s: %s"
+
+#: output.c:759
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: read.c:180
msgid "Reading makefiles...\n"
-msgstr "Læser makefiler...\n"
+msgstr "Læser makefiler...\n"
#: read.c:333
-#, c-format
-msgid "Reading makefile `%s'"
-msgstr "Læser makefil '%s'"
+#, fuzzy, c-format
+msgid "Reading makefile '%s'"
+msgstr "Læser makefil '%s'"
#: read.c:335
#, c-format
msgid " (no default goal)"
-msgstr " (ingen standard-endemål)"
+msgstr " (ingen standard-endemål)"
#: read.c:337
#, c-format
msgid " (search path)"
-msgstr " (søgesti)"
+msgstr " (søgesti)"
#: read.c:339
#, c-format
msgid " (don't care)"
-msgstr " (ikke nødvendig)"
+msgstr " (ikke nødvendig)"
#: read.c:341
#, c-format
msgid " (no ~ expansion)"
msgstr " (ingen ~-udfoldning)"
-#: 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 "Ugyldig syntaks i betingelse"
+msgstr "ugyldig syntaks i betingelse"
-#: read.c:891
-#, fuzzy
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr ""
+
+#: read.c:987
msgid "recipe commences before first target"
-msgstr "kommandoer begynder før det første mål"
+msgstr "kommandoer begynder før første mål"
-#: read.c:940
-#, fuzzy
+#: read.c:1036
msgid "missing rule before recipe"
-msgstr "manglende regel før kommandoer"
+msgstr "manglende regel før kommandoer"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
msgstr "manglende adskiller%s"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
msgstr " (mente du TAB i stedet for 8 mellemrum?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
-msgstr "manglende målmønster"
+msgstr "manglende målmønster"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
-msgstr "flere målmønstre"
+msgstr "flere målmønstre"
-#: read.c:1169
-#, c-format
-msgid "target pattern contains no `%%'"
-msgstr "målmønster indeholder ingen '%%'"
+#: read.c:1269
+#, fuzzy, c-format
+msgid "target pattern contains no '%%'"
+msgstr "målmønster indeholder ingen '%%'"
-#: read.c:1293
-msgid "missing `endif'"
+#: read.c:1391
+#, fuzzy
+msgid "missing 'endif'"
msgstr "manglende 'endif'"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "tomt variabelnavn"
-#: read.c:1367
+#: read.c:1465
#, fuzzy
-msgid "extraneous text after `define' directive"
-msgstr "Fremmed tekst efter 'endef'-direktiv"
+msgid "extraneous text after 'define' directive"
+msgstr "overskydende tekst efter 'define'-direktiv"
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
+#: read.c:1490
+#, fuzzy
+msgid "missing 'endef', unterminated 'define'"
msgstr "manglende 'endef', uafsluttet 'define'"
-#: read.c:1420
+#: read.c:1518
#, fuzzy
-msgid "extraneous text after `endef' directive"
-msgstr "Fremmed tekst efter 'endef'-direktiv"
+msgid "extraneous text after 'endef' directive"
+msgstr "overskydende tekst efter 'endef'-direktiv"
-#: read.c:1490
-#, c-format
-msgid "Extraneous text after `%s' directive"
-msgstr "Fremmed tekst efter '%s'-direktiv"
+#: read.c:1589
+#, fuzzy, c-format
+msgid "extraneous text after '%s' directive"
+msgstr "Overskydende tekst efter '%s'-direktiv"
-#: read.c:1499 read.c:1513
-#, c-format
-msgid "extraneous `%s'"
+#: read.c:1598 read.c:1612
+#, fuzzy, c-format
+msgid "extraneous '%s'"
msgstr "fremmed '%s'"
-#: read.c:1518
-msgid "only one `else' per conditional"
-msgstr "kun én 'else' per betingelse"
-
-#: read.c:1797
+#: read.c:1617
#, fuzzy
+msgid "only one 'else' per conditional"
+msgstr "kun én 'else' per betingelse"
+
+#: read.c:1892
msgid "Malformed target-specific variable definition"
-msgstr "Misdannet per-mål variabeldefinition"
+msgstr "Misdannet målspecifik variabeldefinition"
-#: read.c:1855
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
-msgstr ""
+msgstr "der kan ikke defineres forudsætninger i kommandoer"
-#: read.c:1908
+#: read.c:2009
msgid "mixed implicit and static pattern rules"
-msgstr "blandede implicitte og statiske mønsterregler"
+msgstr "blandede implicitte og statiske mønsterregler"
-#: read.c:1931 read.c:2112
+#: read.c:2032 read.c:2220
msgid "mixed implicit and normal rules"
msgstr "blandede implicitte og normale regler"
-#: read.c:1976
-#, c-format
-msgid "target `%s' doesn't match the target pattern"
-msgstr "mål '%s' passer ikke til målmønstret"
+#: read.c:2084
+#, fuzzy, c-format
+msgid "target '%s' doesn't match the target pattern"
+msgstr "mål '%s' passer ikke til målmønstret"
-#: read.c:1991 read.c:2036
-#, c-format
-msgid "target file `%s' has both : and :: entries"
-msgstr "målfil '%s' har både :- og ::-angivelser"
+#: read.c:2099 read.c:2144
+#, fuzzy, c-format
+msgid "target file '%s' has both : and :: entries"
+msgstr "målfil '%s' har både :- og ::-angivelser"
-#: read.c:1997
-#, c-format
-msgid "target `%s' given more than once in the same rule."
-msgstr "target '%s' optræder mere end én gang i samme regel."
+#: read.c:2105
+#, fuzzy, c-format
+msgid "target '%s' given more than once in the same rule"
+msgstr "target '%s' optræder mere end én gang i samme regel."
-#: read.c:2006
+#: read.c:2114
#, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
-msgstr "advarsel: tilsidesætter kommandoer for mål '%s'"
+msgid "warning: overriding recipe for target '%s'"
+msgstr "advarsel: tilsidesætter kommandoer for mål '%s'"
-#: read.c:2009
+#: read.c:2117
#, fuzzy, c-format
-msgid "warning: ignoring old recipe for target `%s'"
-msgstr "advarsel: ignorerer gamle kommadoer for mål '%s'"
+msgid "warning: ignoring old recipe for target '%s'"
+msgstr "advarsel: ignorerer gamle kommandoer for mål '%s'"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
msgstr "advarsel: NUL-tegn set; resten af linjen ignoreres"
-#: remake.c:234
-#, c-format
-msgid "Nothing to be done for `%s'."
-msgstr "Ingenting at gøre for '%s'."
+#: remake.c:232
+#, fuzzy, c-format
+msgid "Nothing to be done for '%s'."
+msgstr "Ingenting at gøre for '%s'."
-#: 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' er tidssvarende."
-#: remake.c:306
-#, c-format
-msgid "Pruning file `%s'.\n"
-msgstr "Beskærer fil '%s'.\n"
+#: remake.c:305
+#, fuzzy, c-format
+msgid "Pruning file '%s'.\n"
+msgstr "Beskærer fil '%s'.\n"
-#: remake.c:359
-#, c-format
-msgid "%sNo rule to make target `%s'%s"
-msgstr "%sIngen regel til at skabe mål '%s'%s"
+#: remake.c:377
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sIngen regel til at skabe mål '%s'%s"
-#: remake.c:361
-#, c-format
-msgid "%sNo rule to make target `%s', needed by `%s'%s"
-msgstr "%sIngen regel til at skabe mål '%s' som behøves af '%s'%s"
+#: remake.c:379
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s', needed by '%s'%s"
+msgstr "%sIngen regel til at skabe mål '%s' som behøves af '%s'%s"
#: remake.c:413
-#, c-format
-msgid "Considering target file `%s'.\n"
-msgstr "Overvejer målfil '%s'.\n"
+#, fuzzy, c-format
+msgid "Considering target file '%s'.\n"
+msgstr "Overvejer målfil '%s'.\n"
#: remake.c:420
-#, c-format
-msgid "Recently tried and failed to update file `%s'.\n"
-msgstr "Opdatering af fil '%s' er forgæves prøvet for nylig.\n"
+#, fuzzy, c-format
+msgid "Recently tried and failed to update file '%s'.\n"
+msgstr "Opdatering af fil '%s' er forgæves prøvet for nylig.\n"
#: remake.c:432
-#, c-format
-msgid "File `%s' was considered already.\n"
+#, fuzzy, c-format
+msgid "File '%s' was considered already.\n"
msgstr "Fil '%s' er allerede overvejet.\n"
#: remake.c:442
-#, c-format
-msgid "Still updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Still updating file '%s'.\n"
msgstr "Opdaterer stadig fil '%s'.\n"
#: remake.c:445
-#, c-format
-msgid "Finished updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Finished updating file '%s'.\n"
msgstr "Opdatering af fil '%s' afsluttet.\n"
#: remake.c:474
-#, c-format
-msgid "File `%s' does not exist.\n"
+#, fuzzy, c-format
+msgid "File '%s' does not exist.\n"
msgstr "Filen '%s' findes ikke.\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 ""
-"*** Advarsel: .LOW_RESOLUTION_TIME-fil '%s' har et tidsstempel med høj "
-"opløsning"
+"*** Advarsel: .LOW_RESOLUTION_TIME-fil '%s' har et tidsstempel med høj "
+"opløsning"
-#: 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 "Fandt en implicit regel for '%s'.\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 "Ingen implicit regel for '%s' fundet.\n"
#: remake.c:502
#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
+msgid "Using default recipe for '%s'.\n"
msgstr "Bruger standardkommandoer for '%s'.\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
-msgstr "Cirkulær %s <- %s afhængighed opgivet."
+msgstr "Cirkulær %s <- %s afhængighed opgivet."
-#: remake.c:651
-#, c-format
-msgid "Finished prerequisites of target file `%s'.\n"
-msgstr "Afsluttet forudsætningerne for målfil '%s'.\n"
+#: remake.c:655
+#, fuzzy, c-format
+msgid "Finished prerequisites of target file '%s'.\n"
+msgstr "Afsluttet forudsætningerne for målfil '%s'.\n"
-#: remake.c:657
-#, c-format
-msgid "The prerequisites of `%s' are being made.\n"
-msgstr "Forudsætningerne for '%s' er ved at blive skabt.\n"
+#: remake.c:661
+#, fuzzy, c-format
+msgid "The prerequisites of '%s' are being made.\n"
+msgstr "Forudsætningerne for '%s' er ved at blive skabt.\n"
-#: remake.c:670
-#, c-format
-msgid "Giving up on target file `%s'.\n"
-msgstr "Opgiver målfil '%s'.\n"
+#: remake.c:674
+#, fuzzy, c-format
+msgid "Giving up on target file '%s'.\n"
+msgstr "Opgiver målfil '%s'.\n"
-#: remake.c:675
-#, c-format
-msgid "Target `%s' not remade because of errors."
-msgstr "Målet '%s' ikke genskabt på grund af fejl."
+#: remake.c:679
+#, fuzzy, c-format
+msgid "Target '%s' not remade because of errors."
+msgstr "Målet '%s' ikke genskabt på grund af fejl."
-#: remake.c:727
-#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
-msgstr "Forudsætningen '%s' angiver kun rækkefølgen ift. målet '%s'.\n"
+#: remake.c:731
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
+msgstr "Forudsætningen '%s' angiver kun rækkefølgen ift. målet '%s'.\n"
-#: remake.c:732
-#, c-format
-msgid "Prerequisite `%s' of target `%s' does not exist.\n"
-msgstr "Forudsætningen '%s' for målet '%s' findes ikke.\n"
+#: remake.c:736
+#, fuzzy, c-format
+msgid "Prerequisite '%s' of target '%s' does not exist.\n"
+msgstr "Forudsætningen '%s' for målet '%s' findes ikke.\n"
-#: remake.c:737
-#, c-format
-msgid "Prerequisite `%s' is newer than target `%s'.\n"
-msgstr "Forudsætningen '%s' er nyere end målet '%s'.\n"
+#: remake.c:741
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is newer than target '%s'.\n"
+msgstr "Forudsætningen '%s' er nyere end målet '%s'.\n"
-#: remake.c:740
-#, c-format
-msgid "Prerequisite `%s' is older than target `%s'.\n"
-msgstr "Forudsætningen '%s' er ældre end målet '%s'.\n"
+#: remake.c:744
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is older than target '%s'.\n"
+msgstr "Forudsætningen '%s' er ældre end målet '%s'.\n"
-#: remake.c:758
-#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
-msgstr "Målet '%s' er med dobbelt-kolon og har ingen forudsætninger.\n"
+#: remake.c:762
+#, fuzzy, c-format
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
+msgstr "Målet '%s' er med dobbelt-kolon og har ingen forudsætninger.\n"
-#: remake.c:765
+#: remake.c:769
#, fuzzy, c-format
-msgid "No recipe for `%s' and no prerequisites actually changed.\n"
-msgstr "Ingen kommandoer til '%s' og ingen forudsætninger er ændrede.\n"
+msgid "No recipe for '%s' and no prerequisites actually changed.\n"
+msgstr "Ingen kommandoer til '%s', og ingen forudsætninger har ændret sig.\n"
-#: 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 "Skaber '%s' pga. \"always-make\"-flag.\n"
-#: remake.c:778
-#, c-format
-msgid "No need to remake target `%s'"
-msgstr "Ingen grund til at genskabe målet '%s'"
+#: remake.c:782
+#, fuzzy, c-format
+msgid "No need to remake target '%s'"
+msgstr "Ingen grund til at genskabe målet '%s'"
-#: remake.c:780
-#, c-format
-msgid "; using VPATH name `%s'"
+#: remake.c:784
+#, fuzzy, c-format
+msgid "; using VPATH name '%s'"
msgstr "; bruger VPATH-navnet '%s'"
-#: remake.c:800
-#, c-format
-msgid "Must remake target `%s'.\n"
-msgstr "Skal genskabe målet '%s'.\n"
+#: remake.c:804
+#, fuzzy, c-format
+msgid "Must remake target '%s'.\n"
+msgstr "Skal genskabe målet '%s'.\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 " Ignorerer VPATH-navnet '%s'.\n"
-#: remake.c:815
+#: remake.c:819
#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
-msgstr "Kommandoer til '%s' er ved at blive udført.\n"
+msgid "Recipe of '%s' is being run.\n"
+msgstr "Kommandoerne for '%s' er ved at blive kørt.\n"
-#: remake.c:822
-#, c-format
-msgid "Failed to remake target file `%s'.\n"
-msgstr "Genskabelse af målfil '%s' mislykkedes.\n"
+#: remake.c:826
+#, fuzzy, c-format
+msgid "Failed to remake target file '%s'.\n"
+msgstr "Genskabelse af målfil '%s' mislykkedes.\n"
-#: remake.c:825
-#, c-format
-msgid "Successfully remade target file `%s'.\n"
-msgstr "Målfil '%s' genskabt.\n"
+#: remake.c:829
+#, fuzzy, c-format
+msgid "Successfully remade target file '%s'.\n"
+msgstr "MÃ¥lfil '%s' genskabt.\n"
-#: remake.c:828
-#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
-msgstr "Med -q trænger målfilen '%s' til at blive genskabt.\n"
+#: remake.c:832
+#, fuzzy, c-format
+msgid "Target file '%s' needs to be remade under -q.\n"
+msgstr "Med -q trænger målfilen '%s' til at blive genskabt.\n"
-#: 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 "Bruger standardkommandoer for '%s'.\n"
-#: remake.c:1357
-#, c-format
-msgid "Warning: File `%s' has modification time in the future"
-msgstr "Advarsel: Ændringstiden for filen '%s' er i fremtiden"
+#: remake.c:1372
+#, fuzzy, c-format
+msgid "Warning: File '%s' has modification time in the future"
+msgstr "Advarsel: Ændringstiden for filen '%s' er i fremtiden"
-#: remake.c:1370
+#: remake.c:1385
#, fuzzy, c-format
-msgid "Warning: File `%s' has modification time %s s in the future"
-msgstr "Advarsel: Ændringstiden for filen '%s' er %.2g s i fremtiden"
+msgid "Warning: File '%s' has modification time %s s in the future"
+msgstr "Advarsel: Filen '%s' har ændringstidspunkt %s s i fremtiden"
-#: remake.c:1569
-#, c-format
-msgid ".LIBPATTERNS element `%s' is not a pattern"
-msgstr ".LIBPATTERNS-element '%s' er ikke et mønster"
+#: remake.c:1583
+#, fuzzy, c-format
+msgid ".LIBPATTERNS element '%s' is not a pattern"
+msgstr ".LIBPATTERNS-element '%s' er ikke et mønster"
# "remote job exportation interface to the Customs daemon": jeg aner ikke
-# hvad der er tale om. I øvrigt ser remote-cstms.c forældet/ubrugt ud, og
-# koden er ikke understøttet af GNU...
-#: remote-cstms.c:125
+# hvad der er tale om. I øvrigt ser remote-cstms.c forældet/ubrugt ud, og
+# koden er ikke understøttet af GNU...
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
msgstr "Customs kan ikke eksporteres: %s\n"
-#: rule.c:499
+#: rule.c:496
msgid ""
"\n"
"# Implicit Rules"
@@ -1616,7 +1825,7 @@ msgstr ""
"\n"
"# Implicitte regler."
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
@@ -1624,7 +1833,7 @@ msgstr ""
"\n"
"# Ingen implicitte regler."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -1633,244 +1842,265 @@ msgstr ""
"\n"
"# %u implicitte regler, %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr " terminale."
-#: rule.c:534
-#, fuzzy, c-format
+#: rule.c:531
+#, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
-msgstr "FEJL: num_pattern_rules forkert! %u != %u"
+msgstr "FEJL: forkert num_pattern_rules! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "ukendt signal"
# De fleste af signalnavnene fra signame.c er kopieret fra libc.da.po,
# kun ganske enkelte findes ikke der.
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
-msgstr "Læg på"
+msgstr "Læg på"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "Afbrudt"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
msgstr "Afslut"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
msgstr "Ulovlig instruktion"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
-msgstr "Sporings-/stoppunkts-fælde"
+msgstr "Sporings-/stoppunkts-fælde"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "Afbrudt"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
-msgstr "IOT_fælde"
+msgstr "IOT_fælde"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
-msgstr "Emulatorfælde"
+msgstr "Emulatorfælde"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
-msgstr "Undtagelsestilfælde ved flydendetals-operation"
+msgstr "Undtagelsestilfælde ved flydendetals-operation"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
-msgstr "Dræbt"
+msgstr "Dræbt"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr "Busfejl"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "Lagersegmentfejl"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "Ugyldigt systemkald"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
-msgstr "Røret blev brudt"
+msgstr "Røret blev brudt"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "Alarmen gik"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
msgstr "Termineret"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr "Brugerdefineret signal 1"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr "Brugerdefineret signal 2"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
msgstr "Barnet afsluttet"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
-msgstr "Strømmen gik"
+msgstr "Strømmen gik"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "Stoppet"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
-msgstr "Stoppet (ville læse fra tty)"
+msgstr "Stoppet (ville læse fra tty)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
msgstr "Stoppet (ville skrive til tty)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "Stoppet (signal)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
-msgstr "Begrænsning af CPU-tid overskredet"
+msgstr "Begrænsning af CPU-tid overskredet"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
-msgstr "Grænse for filstørrelse overskredet"
+msgstr "Grænse for filstørrelse overskredet"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
-msgstr "Virtuel tidsgrænse overskredet"
+msgstr "Virtuel tidsgrænse overskredet"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
-msgstr "Profileringstiden udløb"
+msgstr "Profileringstiden udløb"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
-msgstr "Vinduet blev ændret"
+msgstr "Vinduet blev ændret"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
-msgstr "Fortsættes"
+msgstr "Fortsættes"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
msgstr "Kritisk I/O-tilstand"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
msgstr "I/O mulig"
-#: 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 "Resurse tabt"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "Faresignal"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
-msgstr "Informationsforespørgsel"
+msgstr "Informationsforespørgsel"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
-msgstr "Flydendetalshjælpeprocessor ikke tilgængelig"
+msgstr "Flydendetalshjælpeprocessor ikke tilgængelig"
-#: 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
-#, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+#: strcache.c:266
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
msgstr ""
+"%s strcache brugt: total = %d (%d) / maks = %d / min = %d / gnmsn = %d\n"
-#: 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
-#, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+#: strcache.c:280
+#, fuzzy, c-format
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
msgstr ""
+"%s strcache brugt: total = %d (%d) / maks = %d / min = %d / gnmsn = %d\n"
-#: strcache.c:244
-#, fuzzy
+#: strcache.c:283
+#, fuzzy, c-format
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
+msgstr "%s strcache fri: total = %d (%d) / maks = %d / min = %d / gnmsn = %d\n"
+
+#: strcache.c:287
+#, fuzzy, c-format
msgid ""
"\n"
-"# strcache hash-table stats:\n"
+"%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
+msgstr ""
+"\n"
+"%s # strenge i strcache: %d / opslag = %lu / fundne = %lu\n"
+
+#: strcache.c:289
+#, fuzzy
+msgid ""
+"# hash-table stats:\n"
"# "
msgstr ""
"\n"
"# Statistik for fil-hash-spande:\n"
"# "
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "automatisk"
+
+#: variable.c:1610
msgid "default"
msgstr "forvalgt"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
-msgstr "miljø"
+msgstr "miljø"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr "makefil"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
-msgstr "miljø med -e"
+msgstr "miljø med -e"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr "kommandolinje"
-#: variable.c:1556
-msgid "`override' directive"
+#: variable.c:1625
+#, fuzzy
+msgid "'override' directive"
msgstr "'override'-direktiv"
-#: variable.c:1559
-msgid "automatic"
-msgstr "automatisk"
-
-#: variable.c:1570
-#, c-format
-msgid " (from `%s', line %lu)"
+#: variable.c:1636
+#, fuzzy, c-format
+msgid " (from '%s', line %lu)"
msgstr " (fra '%s', linje %lu)"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
-msgstr "# Statistik for variabelsæt-hash-spande:\n"
+msgstr "# Statistik for variabelsæt-hash-spande:\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1878,171 +2108,197 @@ msgstr ""
"\n"
"# Variabler\n"
-#: variable.c:1627
-#, fuzzy
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
msgstr ""
"\n"
-"# Mønsterspecifikke variabelværdier"
+"# Mønsterspecifikke variabelværdier"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
msgstr ""
"\n"
-"# Ingen mønsterspecifikke variabelværdier."
+"# Ingen mønsterspecifikke variabelværdier."
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
"# %u pattern-specific variable values"
msgstr ""
"\n"
-"# %u mønsterspecifikke variabelværdier"
+"# %u mønsterspecifikke variabelværdier"
-#: variable.h:219
-#, c-format
-msgid "warning: undefined variable `%.*s'"
+#: variable.h:224
+#, fuzzy, c-format
+msgid "warning: undefined variable '%.*s'"
msgstr "advarsel: udefineret vaiabel '%.*s'"
-#: vmsfunctions.c:92
-#, fuzzy, c-format
+#: vmsfunctions.c:91
+#, c-format
msgid "sys$search() failed with %d\n"
-msgstr "sys$search mislykkedes med %d\n"
+msgstr "sys$search() mislykkedes med %d\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr "Advarsel: Tom omdirigering\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 "intern fejl: '%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 ""
-"-advarsel, du kan blive nødt til at genetablere CTRL-Y-behandling fra DCL.\n"
+"-advarsel, du kan blive nødt til at genetablere CTRL-Y-behandling fra DCL.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr "BUILTIN [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr "BUILTIN CD %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr "BUILTIN RM %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
msgstr "Ukendt indbygget kommando '%s'\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr "Fejl, tom kommando\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr "Omdirigeret inddata from %s\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr "Omdirigeret fejl to %s\n"
-#: vmsjobs.c:523
-#, fuzzy, c-format
+#: vmsjobs.c:518
+#, c-format
msgid "Append output to %s\n"
-msgstr "Omdirigeret uddata til %s\n"
+msgstr "Tilføj uddata til slutningen af %s\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
msgstr "Omdirigeret uddata til %s\n"
-#: vmsjobs.c:599
+#: vmsjobs.c:593
#, c-format
msgid "Append %.*s and cleanup\n"
-msgstr ""
+msgstr "Tilføj %.*s og ryd op\n"
-#: vmsjobs.c:606
+#: vmsjobs.c:600
#, c-format
msgid "Executing %s instead\n"
-msgstr "Udfører i stedet %s\n"
+msgstr "Udfører i stedet %s\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr "Fejl ved spawn, %d\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
msgstr ""
"\n"
-"# VPATH-søgestier\n"
+"# VPATH-søgestier\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
-msgstr "# Ingen 'vpath'-søgestier"
+#: vpath.c:600
+#, fuzzy
+msgid "# No 'vpath' search paths."
+msgstr "# Ingen 'vpath'-søgestier."
-#: 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'-søgestier.\n"
+"# %u 'vpath'-søgestier.\n"
-#: vpath.c:608
+#: vpath.c:605
+#, fuzzy
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
-"# Ingen generel ('VPATH'-variabel) søgesti."
+"# Ingen generel ('VPATH'-variabel) søgesti."
-#: vpath.c:614
+#: vpath.c:611
+#, fuzzy
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
-"# Generel ('VPATH'-variabel) søgesti:\n"
+"# Generel ('VPATH'-variabel) søgesti:\n"
"# "
+#~ msgid "# Invalid value in `update_status' member!"
+#~ msgstr "# Ugyldig værdi i 'update_status'-felt!"
+
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] Fejl 0x%x (ignoreret)"
+
+#~ msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
+#~ msgstr "Kører kommandoer fra %s:%lu for at opdatere målet '%s'.\n"
+
+#~ msgid "Invoking builtin recipe to update target `%s'.\n"
+#~ msgstr "Kører indbyggede kommandoer for at opdatere målet '%s'.\n"
+
+#~ msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+#~ msgstr "%s # strcache-buffere: %d (* %d B/buffer = %d B)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "# strcache hash-table stats:\n"
+#~ "# "
+#~ msgstr ""
+#~ "\n"
+#~ "# statistik for strcache-hashtabeller:\n"
+#~ "# "
+
#~ msgid "Syntax error, still inside '\"'\n"
#~ msgstr "Syntaksfejl, stadig inden i '\"'\n"
#~ msgid "Got a SIGCHLD; %u unreaped children.\n"
-#~ msgstr "Fik et SIGCHLD; %u uhøstede børn.\n"
+#~ msgstr "Fik et SIGCHLD; %u uhøstede børn.\n"
#~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
#~ msgstr "-advarsel, CTRL-Y vil efterlade underproces(ser).\n"
#~ msgid "Do not specify -j or --jobs if sh.exe is not available."
-#~ msgstr "Angiv ikke -j eller --jobs hvis sh.exe ikke er tilgængelig."
+#~ msgstr "Angiv ikke -j eller --jobs hvis sh.exe ikke er tilgængelig."
#~ msgid "Resetting make for single job mode."
-#~ msgstr "Sætter make tilbage til enkelt job-tilstand."
+#~ msgstr "Sætter make tilbage til enkelt job-tilstand."
#~ msgid ""
#~ "%sThis is free software; see the source for copying conditions.\n"
@@ -2051,7 +2307,7 @@ msgstr ""
#~ msgstr ""
#~ "%sDette er frit programmel; se kildeteksten for kopieringsbetingelser.\n"
#~ "%sDer er INGEN garanti; end ikke for SALGBARHED eller EGNETHED TIL NOGET\n"
-#~ "%sBESTEMT FORMÅL.\n"
+#~ "%sBESTEMT FORMÃ…L.\n"
#~ msgid "extraneous `endef'"
#~ msgstr "fremmed 'endef'"
@@ -2066,7 +2322,7 @@ msgstr ""
#~ msgstr "intet filnavn for '%sinclude'"
#~ msgid "target `%s' leaves prerequisite pattern empty"
-#~ msgstr "mål '%s' efterlader forudsætningsmønstret tomt"
+#~ msgstr "mål '%s' efterlader forudsætningsmønstret tomt"
#~ msgid ""
#~ "\n"
@@ -2086,7 +2342,7 @@ msgstr ""
#~ msgstr "# %.3f filer per spand i gennemsnit, maks. %u filer i en spand.\n"
#~ msgid "Suspend process to allow a debugger to attach"
-#~ msgstr "Stands proces for at tillade et fejlsøgningsprogram at hænge sig på"
+#~ msgstr "Stands proces for at tillade et fejlsøgningsprogram at hænge sig på"
#~ msgid "# No variables."
#~ msgstr "# Ingen variabler."
diff --git a/po/de.gmo b/po/de.gmo
index ef209cf..e6455d1 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 4e9c506..29e285a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -14,124 +14,130 @@ 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-10-20 20:55+0200\n"
"Last-Translator: Karl Eichwalder <ke@suse.de>\n"
"Language-Team: German <de@li.org>\n"
+"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\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 "Versuch, eine nicht unterstützte Funktionalität zu verwenden: »%s«"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
msgstr ""
"VMS stellt nicht die Möglichkeit einer Änderung \n"
"der Zeitmarken von Archiveinträgen zur Verfügung"
-#: 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: Archiv »%s« existiert nicht"
-#: 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« ist kein gültiges Archiv"
-#: 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: Eintrag »%s« existiert nicht in »%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: Ungünstiger Rückgabewert beim Zugriff \n"
"von ar_member_touch auf »%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« konnte keine Modulinformation auslesen; Status = %d"
-#: arscan.c:175
+#: arscan.c:173
#, fuzzy, c-format
msgid "lbr$ini_control() failed with status = %d"
msgstr "»lbr$ini_control« schlug mit Status = %d fehl"
-#: 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 ""
"Konnte die Bibliothek »%s« auf der Suche \n"
"nach dem Eintrag »%s« nicht öffnen"
-#: 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 ""
"Eintrag »%s« %s: \n"
"%ld Byte an Position %ld (%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr " (der Name ist möglicherweise gekürzt)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Datum %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " Nutzer-ID = %d, Gruppen-ID = %d, Modus = 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 "*** Abbruch.\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] Archiveintrag »%s« ist wohl falsch; nicht gelöscht"
-#: 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 "*** Archiveintrag »%s« ist wohl falsch; nicht gelöscht"
-#: commands.c:638
-#, c-format
-msgid "*** [%s] Deleting file `%s'"
+#: commands.c:646
+#, fuzzy, c-format
+msgid "*** [%s] Deleting file '%s'"
msgstr "*** [%s] Datei »%s« wird gelöscht"
-#: commands.c:640
-#, c-format
-msgid "*** Deleting file `%s'"
+#: commands.c:648
+#, fuzzy, c-format
+msgid "*** Deleting file '%s'"
msgstr "*** Datei »%s« wird gelöscht"
-#: commands.c:676
+#: commands.c:684
#, fuzzy
msgid "# recipe to execute"
msgstr "# Auszuführende Kommandos"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr " (eingebaut):"
-#: commands.c:681
-#, c-format
-msgid " (from `%s', line %lu):\n"
+#: commands.c:689
+#, fuzzy, c-format
+msgid " (from '%s', line %lu):\n"
msgstr " (aus »%s«, Zeile %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -139,241 +145,245 @@ msgstr ""
"\n"
"# Verzeichnisse\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
msgstr "# %s: Konnte den Status nicht feststellen.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
msgstr ""
"# %s ( Schlüssel (key) %s, letzte Änderung (mtime) %d): \n"
"Konnte nicht geöffnet werden.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
msgstr ""
"# %s (Gerät %d, I-Knoten (inode) [%d,%d,%d]): \n"
"Konnte nicht geöffnet werden.\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
msgstr ""
"# %s (Gerät %ld, I-Knoten (inode) %ld): \n"
"Konnte nicht geöffnet werden.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr "# %s (Schlüssel (key) %s, letzte Änderung (mtime) %d): "
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
msgstr "# %s (Gerät %d, I-Knoten (inode) [%d,%d,%d]): "
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
msgstr "# %s (Gerät %ld, I-Knoten (inode) %ld): "
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "Keine"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " Dateien, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "keine"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
msgstr " Unmöglichkeiten"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr " bisher."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
msgstr " Unmöglichkeiten in %lu Verzeichnissen.\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 "Rekursive Variable »%s« referenziert sich (schließlich) selbst"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
msgstr "Nicht abgeschlossene Variablenreferenz"
-#: 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 ""
"Die Kommandos wurden für die Datei »%s« angegeben \n"
"an der Stelle %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 ""
"Die Kommandos für die Datei »%s« wurden aufgrund \n"
"der Suche nach impliziten Regeln gefunden,"
-#: 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 ""
"aber »%s« wird jetzt als dieselbe Datei \n"
"wie »%s« betrachtet."
-#: 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 ""
"Die Kommandos für »%s« werden ignoriert, \n"
"die für »%s« werden bevorzugt."
-#: file.c:298
-#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
+#: file.c:300
+#, fuzzy, c-format
+msgid "can't rename single-colon '%s' to double-colon '%s'"
msgstr ""
"»%s« mit einfachem Doppelpunkt kann nicht in \n"
"»%s« mit doppeltem Doppelpunkt geändert werden"
-#: file.c:303
-#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
+#: file.c:305
+#, fuzzy, 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:392
-#, c-format
-msgid "*** Deleting intermediate file `%s'"
+#: file.c:396
+#, fuzzy, c-format
+msgid "*** Deleting intermediate file '%s'"
msgstr "*** Löschen der Zwischendatei »%s«"
-#: file.c:396
+#: file.c:400
#, fuzzy
msgid "Removing intermediate files...\n"
msgstr "*** Löschen der Zwischendatei »%s«"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
msgstr "%s: Zeitstempel außerhalb der Reihenfolge; %s wird ersetzt"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "Aktuelle Zeit"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
msgstr "# Dies ist kein Ziel:"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
msgstr "# Wertvolle Datei (Voraussetzung von .PRECIOUS)."
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
msgstr "# Vorgetäuschtes Ziel (Voraussetzung von .PHONY)."
-#: file.c:933
+#: file.c:958
#, fuzzy
msgid "# Command line target."
msgstr "# Kommandozeilen-Ziel (target)."
-#: file.c:935
+#: file.c:960
#, fuzzy
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
msgstr "# Ein Standardwert oder MAKEFILES »make«-Steuerdatei."
-#: file.c:937
+#: file.c:962
+#, fuzzy
+msgid "# Builtin rule"
+msgstr ""
+"\n"
+"# Keine impliziten Regeln vorhanden."
+
+#: file.c:964
msgid "# Implicit rule search has been done."
msgstr "# Suche nach impliziten Regeln wurde durchgeführt."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
msgstr "# Suche nach impliziten Regeln wurde nicht durchgeführt."
-#: file.c:940
-#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
+#: file.c:967
+#, fuzzy, c-format
+msgid "# Implicit/static pattern stem: '%s'\n"
msgstr "# Ersetzung für implizites/statisches Muster: »%s«\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
msgstr "# Datei ist ein Zwischenschritt in den Abhängigkeiten."
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
msgstr "# Erzeugt außerdem:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
msgstr "# Zeit der letzten Änderung wurde nicht überprüft."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# Die Datei existiert nicht."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr "# Datei ist sehr alt."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr "# Zuletzt geändert %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# Datei wurde aktualisiert."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# Datei wurde nicht aktualisiert."
-#: file.c:968
+#: file.c:995
#, fuzzy
msgid "# Recipe currently running (THIS IS A BUG)."
msgstr "# Derzeit laufende Befehle (DAS IST EIN BUG)."
-#: file.c:971
+#: file.c:998
#, fuzzy
msgid "# Dependencies recipe running (THIS IS A BUG)."
msgstr "# Derzeit laufende Befehle für Abhängigkeiten (DAS IST EIN BUG)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
msgstr "# Erfolgreich aktualisiert."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
msgstr "# Eine Aktualisierung ist notwendig (-q ist angegeben)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr "# Aktualisierung fehlgeschlagen."
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# Ungültiger Wert in »update_status«-Eintrag!"
-
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
+#: file.c:1019
+#, fuzzy
+msgid "# Invalid value in 'command_state' member!"
msgstr "# Ungültiger Wert im »command_state«-Eintrag!"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -381,124 +391,182 @@ msgstr ""
"\n"
"# Dateien"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
"# "
msgstr ""
-#: 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 "Nicht-numerisches erstes Argument zur »word«-Funktion"
-#: 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 "Erstes Argument zur »word«-Funktion muss größer als 0 sein"
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
+#: function.c:767
+#, fuzzy
+msgid "non-numeric first argument to 'wordlist' function"
msgstr "Nicht-numerisches erstes Argument für die »wordlist«-Funktion"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
+#: function.c:769
+#, fuzzy
+msgid "non-numeric second argument to 'wordlist' function"
msgstr "Nicht-numerisches zweites Argument zur »wordlist«-Funktion"
-#: 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)« schlug fehl (e=%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)« schlug fehl (e=%d)\n"
-#: function.c:1474
+#: function.c:1490
#, fuzzy, c-format
msgid "CreatePipe() failed (e=%ld)\n"
msgstr "»CreatePipe()« schlug fehl (e=%d)\n"
-#: function.c:1479
+#: function.c:1498
#, fuzzy
msgid "windows32_openpipe(): process_init_fd() failed\n"
msgstr "windows32_openpipe (): process_init_fd() schlug fehl\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr "Lösche temporäre Stapelverarbeitungsdatei %s\n"
-#: function.c:2150
+#: function.c:2151
+#, c-format
+msgid "open: %s: %s"
+msgstr ""
+
+#: function.c:2158
#, fuzzy, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
+msgid "write: %s: %s"
+msgstr "Schreibfehler: %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 "Zuwenig Argumente (%d) für die Funktion »%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 "Auf dieser Rechnerkonfiguration nicht implementiert: Funktion »%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 "Nicht beendeter Aufruf der Funktion »%s«: »%c« fehlt"
-#: 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: Option »%s« ist mehrdeutig\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 "Zuwenig Argumente (%d) für die Funktion »%s«"
+
+#: function.c:2555
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "Zuwenig Argumente (%d) für die Funktion »%s«"
+
+#: getopt.c:659
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: Option »%s« ist mehrdeutig\n"
+
+#: getopt.c:683
+#, fuzzy, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr "%s: Option »--%s« erlaubt kein Argument\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: Option »%c%s« erlaubt kein Argument\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: Option »%s« erfordert ein Argument\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: unerkannte Option »--%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: unerkannte Option »%c%s«\n"
-#: getopt.c:766
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: unerlaubte Option -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: ungültige Option -- %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: Option erfordert ein Argument -- %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: Option »-W %s« ist mehrdeutig\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: Option »-W %s« erlaubt kein Argument\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
#, c-format
msgid "can't allocate %lu bytes for hash table: memory exhausted"
@@ -519,131 +587,156 @@ msgstr ""
msgid "Collisions=%ld/%ld=%.0f%%"
msgstr ""
-#: 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 "Suche nach einer impliziten Regel für »%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 "Suche nach einer impliziten Regel für Archiveinträge für »%s«.\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
msgstr "Vermeide Rekursion in den impliziten Regeln.\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 "Versuche Muster-Regel mit Ersetzung »%.*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 "Unmögliche Voraussetzung »%s« abgelehnt.\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 "Unmögliche implizite Voraussetzung »%s« abgelehnt.\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 "Versuche Voraussetzung »%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 "Versuche implizite Voraussetzung »%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 "Fand die Voraussetzung »%s« als 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 "Suche nach einer Regel mit der Zwischendatei »%s«.\n"
-#: job.c:335
+#: job.c:361
msgid "Cannot create a temporary file\n"
msgstr "temporäre Datei kann nicht erzeugt werden\n"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] Fehler 0x%x (ignoriert)"
-
-#: job.c:450
-#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] Fehler 0x%x"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (Speicherauszug erstellt)"
-#: job.c:454
-#, c-format
-msgid "[%s] Error %d (ignored)"
+#: job.c:487
+#, fuzzy
+msgid " (ignored)"
msgstr "[%s] Fehler %d (ignoriert)"
-#: job.c:455
+#: job.c:491 job.c:1994
+#, fuzzy
+msgid "<builtin>"
+msgstr " (eingebaut):"
+
+#: 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] Fehler 0x%x"
+
+#: job.c:513
+#, fuzzy, c-format
+msgid "%s[%s] Error %d%s"
msgstr "*** [%s] Fehler %d"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (Speicherauszug erstellt)"
+#: job.c:517
+#, c-format
+msgid "%s[%s] %s%s%s"
+msgstr ""
-#: job.c:549
+#: job.c:609
msgid "*** Waiting for unfinished jobs...."
msgstr "*** Warte auf noch nicht beendete Prozesse..."
-#: job.c:579
+#: job.c:639
#, fuzzy, c-format
msgid "Live child %p (%s) PID %s %s\n"
msgstr "Aktiver Kindprozess 0x%08lx (%s) PID %ld %s\n"
-#: 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 " (entfernt)"
-#: job.c:758
+#: job.c:829
#, fuzzy, c-format
msgid "Reaping losing child %p PID %s %s\n"
msgstr "Sammle erfolglosen Kindprozess 0x%08lx PID %ld %s\n"
-#: job.c:759
+#: job.c:830
#, fuzzy, c-format
msgid "Reaping winning child %p PID %s %s\n"
msgstr "Sammle erfolgreichen Kindprozess 0x%08lx PID %ld %s\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
msgstr "Lösche temporäre Stapelverarbeitungsdatei »%s«\n"
-#: job.c:861
+#: job.c:843
+#, fuzzy, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "Lösche temporäre Stapelverarbeitungsdatei »%s«\n"
+
+#: job.c:949
#, fuzzy, c-format
msgid "Removing child %p PID %s%s from chain.\n"
msgstr "Entferne Kindprozess 0x%08lx PID %ld %s aus der Kette.\n"
-#: job.c:920
-msgid "write jobserver"
-msgstr "Schreibe Job-Server"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr ""
-#: job.c:922
+#: job.c:1011 job.c:1025
#, fuzzy, c-format
msgid "Released token for child %p (%s).\n"
msgstr "Marke des Kindprozesses 0x%08lx PID (%s) freigegeben.\n"
-#: job.c:1453 job.c:2094
+#: job.c:1023
+msgid "write jobserver"
+msgstr "Schreibe Job-Server"
+
+#: job.c:1612 job.c:2332
#, fuzzy, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
msgstr "»process_easy()« konnte den Prozess nicht starten (e=%d)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
@@ -652,112 +745,169 @@ msgstr ""
"\n"
"%d Argumente gehörten zum fehlgeschlagenen Prozessstart\n"
-#: job.c:1525
+#: job.c:1685
#, fuzzy, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
msgstr "Nehme Kindprozess 0x%08lx (%s) PID %ld%s in die Kette auf.\n"
-#: job.c:1778
+#: job.c:1953
+#, c-format
+msgid "semaphore or child process wait: (Error %ld: %s)"
+msgstr ""
+
+#: job.c:1967
#, fuzzy, c-format
msgid "Obtained token for child %p (%s).\n"
msgstr "Marke für den Kindprozess 0x%08lx (%s) erhalten.\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
msgstr "Lese Pipe für die Jobs"
-#: 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: Archiv »%s« existiert nicht"
-#: job.c:1802
+#: job.c:2005
#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "Es ist nicht notwendig, das Target »%s« neu zu erzeugen"
+msgid "%s: update target '%s' due to: %s"
+msgstr ""
+"%sKeine Regel vorhanden, um das Target »%s«, \n"
+" benötigt von »%s«, zu erstellen%s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
msgstr ""
"Auf diesem Betriebssystem kann die Einhaltung\n"
"der Lastbeschränkung nicht erzwungen werden"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
msgstr "Lasteinschränkung kann nicht erzwungen werden: "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
msgstr ""
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
msgstr ""
-#: job.c:2015
+#: job.c:2223
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr ""
+
+#: job.c:2238
msgid "Could not restore stdin\n"
msgstr ""
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
msgstr ""
-#: job.c:2127
+#: job.c:2254
+msgid "Could not restore stderr\n"
+msgstr ""
+
+#: job.c:2365
#, fuzzy, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
msgstr ""
"»make« registrierte die Beendigung des Kindprozesses mit ID %d,\n"
"wartet jedoch noch auf den Prozess mit ID %d.\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
msgstr "%s: Kommando nicht gefunden"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr "%s: Shell-Programm wurde nicht gefunden"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
msgstr ""
-#: 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 gewechselt (war »%s«, ist »%s«)\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr "Erstelle temporäre Stapelverarbeitungsdatei %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 (Zeile %d) Falscher Shell-Kontext (!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 ""
+"Parallele Abarbeitung (-j) \n"
+"wird auf dieser Plattform nicht unterstützt."
+
+#: main.c:312
msgid "Options:\n"
msgstr "Optionen:\n"
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
msgstr " -b, -m Aus Kompatibilitätsgründen ignoriert\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr " -B, --always-make Alle Ziele ohne Bedingungen erstellen\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
@@ -766,18 +916,18 @@ msgstr ""
" In VERZEICHNIS wechseln, bevor etwas getan "
"wird\n"
-#: main.c:311
+#: main.c:320
#, fuzzy
msgid " -d Print lots of debugging information.\n"
msgstr "Viele Informationen zur Fehlersuche ausgeben"
-#: main.c:313
+#: main.c:322
#, fuzzy
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr "Verschiedene Arten von Debug-Information ausgeben"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
@@ -786,12 +936,12 @@ msgstr ""
" Umgebungsvariablen überschreiben »make«-"
"Steuerdateien\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"
@@ -799,16 +949,16 @@ msgstr ""
" -f DATEI, --file=DATEI, --makefile=DATEI\n"
" DATEI als »make«-Steuerdatei lesen\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
msgstr " -h, --help Diese Meldung ausgeben und beenden\n"
-#: main.c:325
+#: main.c:334
#, fuzzy
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
msgstr "Fehler in den Befehlen irgnorieren"
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
@@ -817,7 +967,7 @@ msgstr ""
" VERZEICHNIS nach inkludierten\n"
" »make«-Steuerdateien durchsuchen\n"
-#: main.c:330
+#: main.c:339
#, fuzzy
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
@@ -826,45 +976,51 @@ msgstr ""
"N Jobs gleichzeitig erlauben; unbegrenzte Anzahl \n"
"von Jobs ohne Argument"
-#: main.c:332
+#: main.c:341
#, fuzzy
msgid ""
" -k, --keep-going Keep going when some targets can't be made.\n"
msgstr "Weiterlaufen, auch wenn einige Targets nicht erzeugt werden konnten"
-#: 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 "
"N.\n"
msgstr ""
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
msgstr ""
-#: main.c:339
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
"them.\n"
msgstr ""
-#: 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 "
"it.\n"
msgstr ""
-#: 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
#, fuzzy
msgid " -p, --print-data-base Print make's internal database.\n"
msgstr "Die interne Datenbank von »make« ausgeben"
-#: main.c:347
+#: main.c:359
#, fuzzy
msgid ""
" -q, --question Run no recipe; exit status says if up to "
@@ -873,22 +1029,22 @@ msgstr ""
"Keine Befehle ausführen; der Exit-Status gibt an, ob die Dateien\n"
"aktuell sind"
-#: main.c:349
+#: main.c:361
#, fuzzy
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr "Die eingebauten impliziten Regeln deaktivieren"
-#: main.c:351
+#: main.c:363
#, fuzzy
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr "Die eingebauten Variablenbelegungen deaktivieren"
-#: main.c:353
+#: main.c:365
#, fuzzy
msgid " -s, --silent, --quiet Don't echo recipes.\n"
msgstr " -s, --silent, --quiet Befehle nicht ausgeben.\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
@@ -896,38 +1052,43 @@ msgstr ""
" -S, --no-keep-going, --stop\n"
" -k abschalten.\n"
-#: main.c:358
+#: main.c:370
#, fuzzy
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
"Die Targets werden nur als aktualisiert markiert,\n"
"nicht tatsächlich erneuert"
-#: main.c:360
+#: main.c:372
+#, fuzzy
+msgid " --trace Print tracing information.\n"
+msgstr "Viele Informationen zur Fehlersuche ausgeben"
+
+#: main.c:374
#, fuzzy
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr "Die Versionsnummer von »make« ausgeben und beenden"
-#: main.c:362
+#: main.c:376
#, fuzzy
msgid " -w, --print-directory Print the current directory.\n"
msgstr "Das aktuelle Verzeichnis ausgeben"
-#: main.c:364
+#: main.c:378
#, fuzzy
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
msgstr "-w abschalten, selbst wenn es implizit eingeschaltet wurde"
-#: 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"
msgstr ""
-#: main.c:369
+#: main.c:383
#, fuzzy
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
@@ -935,22 +1096,32 @@ msgid ""
msgstr ""
"Eine Warnung ausgeben, wenn eine undefinierte Variable referenziert wird"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
msgstr "Eine leere Zeichenkette ist als Dateiname ungültig"
-#: main.c:650
-#, c-format
-msgid "unknown debug level specification `%s'"
+#: main.c:734
+#, fuzzy, c-format
+msgid "unknown debug level specification '%s'"
msgstr "Unbekanntes Debug-Level angegeben »%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 "Interner Fehler: mehrfache --jobserver-fds Optionen"
+
+#: main.c:848
#, fuzzy, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
msgstr ""
"%s: bekam Unterbrechung/Ausnahme signalisiert (Kode = 0x%x, Adr = 0x%x)\n"
-#: main.c:697
+#: main.c:855
#, fuzzy, c-format
msgid ""
"\n"
@@ -966,207 +1137,229 @@ msgstr ""
"ExceptionFlags = %x\n"
"ExceptionAddress = %x\n"
-#: main.c:705
+#: main.c:863
#, fuzzy, c-format
msgid "Access violation: write operation at address 0x%p\n"
msgstr "Zugriffsverletzung: Schreiboperation an Adresse %x\n"
-#: main.c:706
+#: main.c:864
#, fuzzy, c-format
msgid "Access violation: read operation at address 0x%p\n"
msgstr "Zugriffsverletzung: Leseoperation an Adresse %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 setzt 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 Suchpfad gesetzt; default_shell = %s\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr "%s setzt für 30 Sekunden aus..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr "»sleep(30)« ist abgeschlossen. Es geht weiter.\n"
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr "Das Makefile wurde zweimal über die Standardeingabe angegeben."
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr "fopen (temporäre Datei)"
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr "fwrite (temporäre Datei)"
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr ""
-"Parallele Abarbeitung (-j) \n"
-"wird auf dieser Plattform nicht unterstützt."
-
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
-msgstr "Umstellung auf Einzel-Job-Verarbeitung (-j1)."
-
-#: main.c:1719
+#: main.c:1534
msgid "internal error: multiple --jobserver-fds options"
msgstr "Interner Fehler: mehrfache --jobserver-fds Optionen"
-#: main.c:1727
+#: main.c:1544
+#, c-format
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
+msgstr ""
+
+#: main.c:1547
#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
+msgid "Jobserver client (semaphore %s)\n"
+msgstr ""
+
+#: main.c:1551
+#, fuzzy, c-format
+msgid "internal error: invalid --jobserver-fds string '%s'"
msgstr "Interner Fehler: Falsche --jobserver-fds Angabe »%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 ""
"Warnung: -jN in »make«-Verarbeitungszweig erzwungen: \n"
"Jobserver-Modus nicht verfügbar."
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
msgstr "Jobserver verdoppelt"
-#: 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 ""
"Warnung: Kein Jobserver verfügbar: -j1 wird gesetzt. »+« zur Ursprungsregel\n"
"hinzufügen."
-#: main.c:1777
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "Das Makefile wurde zweimal über die Standardeingabe angegeben."
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (temporäre Datei)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (temporäre Datei)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr ""
+"Parallele Abarbeitung (-j) \n"
+"wird auf dieser Plattform nicht unterstützt."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "Umstellung auf Einzel-Job-Verarbeitung (-j1)."
+
+#: 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 "Öffnen der Pipe für die Jobs"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
msgstr "Initialisierung der Pipe für den jobserver"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
msgstr "Symbolische Links sind nicht unterstützt: -L wird abgeschaltet."
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr "Aktualisiere »make«-Steuerdateien...\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 ""
"»make«-Steuerdatei »%s« könnte eine Schleife enthalten; \n"
"es wird nicht neu erzeugt.\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 "Konnte die »make«-Steuerdatei »%s« nicht neu erstellen."
-#: 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 "Die eingebundene »make«-Steuerdatei »%s« wurde nicht gefunden."
-#: main.c:2018
-#, c-format
-msgid "Makefile `%s' was not found"
+#: main.c:2275
+#, fuzzy, c-format
+msgid "Makefile '%s' was not found"
msgstr "Die »make«-Steuerdatei »%s« wurde nicht gefunden"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
msgstr "Konnte nicht in das ursprüngliche Verzeichnis wechseln."
-#: main.c:2102
+#: main.c:2354
#, fuzzy, c-format
msgid "Re-executing[%u]:"
msgstr "Erneute Ausführung:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr "unlink (temporäre Datei): "
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
msgstr ".DEFAULT_GOAL beinhaltet mehr als ein Ziel"
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
msgstr "Keine Targets angegeben und keine »make«-Steuerdatei gefunden"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "Keine Targets"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
msgstr "Aktualisieren der Ziele...\n"
-#: main.c:2306
+#: main.c:2550
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:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
msgstr "Syntax: %s [Optionen] [Target] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
"This program built for %s\n"
msgstr ""
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
"This program built for %s (%s)\n"
msgstr ""
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
msgstr "Fehlermeldungen (auf Englisch) an <bug-make@gnu.org> senden.\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 "Die Option »-%c« verlangt eine positive ganze Zahl als Argument"
-#: 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 "Die Option »-%c« verlangt eine positive ganze Zahl als Argument"
-#: main.c:3054
+#: main.c:3253
#, c-format
msgid "%sBuilt for %s\n"
msgstr ""
-#: main.c:3056
+#: main.c:3255
#, c-format
msgid "%sBuilt for %s (%s)\n"
msgstr ""
-#: main.c:3066
+#: main.c:3266
#, c-format
msgid ""
"%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1175,7 +1368,7 @@ msgid ""
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
@@ -1184,7 +1377,7 @@ msgstr ""
"\n"
"# »Make«-Datenbank; erstellt am: %s"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
@@ -1193,110 +1386,110 @@ msgstr ""
"\n"
"# »Make«-Datenbank; beendet am: %s\n"
-#: main.c:3237
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "Unbekannter Fehler %d"
+
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "Der virtuelle Speicher ist verbraucht"
+
+#: misc.c:522
+#, fuzzy, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s: Nutzer %lu (tatsächlich %lu), Gruppe %lu (tatsächlich %lu)\n"
+
+#: misc.c:543
+msgid "Initialized access"
+msgstr "Initialisierter Zugriff"
+
+#: misc.c:622
+msgid "User access"
+msgstr ""
+
+#: misc.c:670
+msgid "Make access"
+msgstr ""
+
+#: misc.c:704
+msgid "Child access"
+msgstr ""
+
+#: output.c:128
#, fuzzy, c-format
msgid "%s: Entering an unknown directory\n"
msgstr "ein unbekanntes Verzeichnis"
-#: main.c:3239
+#: output.c:130
#, fuzzy, c-format
msgid "%s: Leaving an unknown directory\n"
msgstr "ein unbekanntes Verzeichnis"
# !!! Attention: concatenated with the previous messages!!!
-#: main.c:3242
+#: output.c:133
#, fuzzy, c-format
-msgid "%s: Entering directory `%s'\n"
+msgid "%s: Entering directory '%s'\n"
msgstr "»%s«\n"
# !!! Attention: concatenated with the previous messages!!!
-#: main.c:3245
+#: output.c:135
#, fuzzy, c-format
-msgid "%s: Leaving directory `%s'\n"
+msgid "%s: Leaving directory '%s'\n"
msgstr "»%s«\n"
-#: main.c:3250
+#: output.c:139
#, fuzzy, c-format
msgid "%s[%u]: Entering an unknown directory\n"
msgstr "ein unbekanntes Verzeichnis"
-#: main.c:3253
+#: output.c:141
#, fuzzy, c-format
msgid "%s[%u]: Leaving an unknown directory\n"
msgstr "ein unbekanntes Verzeichnis"
# !!! Attention: concatenated with the previous messages!!!
-#: main.c:3257
+#: output.c:144
#, fuzzy, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
+msgid "%s[%u]: Entering directory '%s'\n"
msgstr "»%s«\n"
# !!! Attention: concatenated with the previous messages!!!
-#: main.c:3260
+#: output.c:146
#, fuzzy, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
+msgid "%s[%u]: Leaving directory '%s'\n"
msgstr "»%s«\n"
-#: misc.c:316
+#: output.c:515
+#, c-format
+msgid "write error: %s"
+msgstr "Schreibfehler: %s"
+
+#: output.c:517
+msgid "write error"
+msgstr "Schreibfehler"
+
+#: output.c:740
msgid ". Stop.\n"
msgstr ". Schluss.\n"
-#: misc.c:337
-#, c-format
-msgid "Unknown error %d"
-msgstr "Unbekannter Fehler %d"
-
-#: misc.c:347
+#: output.c:751
#, c-format
msgid "%s%s: %s"
msgstr ""
-#: misc.c:355
+#: output.c:759
#, c-format
msgid "%s: %s"
msgstr ""
-#: misc.c:376 misc.c:387 misc.c:402 misc.c:419 misc.c:438 read.c:3118
-msgid "virtual memory exhausted"
-msgstr "Der virtuelle Speicher ist verbraucht"
-
-#: misc.c:708
-#, fuzzy, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s: Nutzer %lu (tatsächlich %lu), Gruppe %lu (tatsächlich %lu)\n"
-
-#: misc.c:729
-msgid "Initialized access"
-msgstr "Initialisierter Zugriff"
-
-#: misc.c:808
-msgid "User access"
-msgstr ""
-
-#: misc.c:856
-msgid "Make access"
-msgstr ""
-
-#: misc.c:890
-msgid "Child access"
-msgstr ""
-
-#: misc.c:954
-#, c-format
-msgid "write error: %s"
-msgstr "Schreibfehler: %s"
-
-#: misc.c:956
-msgid "write error"
-msgstr "Schreibfehler"
-
-#: read.c:179
+#: read.c:180
msgid "Reading makefiles...\n"
msgstr "»make«-Steuerdateien werden gelesen...\n"
#: read.c:333
-#, c-format
-msgid "Reading makefile `%s'"
+#, fuzzy, c-format
+msgid "Reading makefile '%s'"
msgstr "»make«-Steuerdatei »%s« wird gelesen"
#: read.c:335
@@ -1319,337 +1512,355 @@ msgstr " (macht nichts)"
msgid " (no ~ expansion)"
msgstr " (keine ~-Auflösung)"
-#: 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 "Ungültige Syntax in der Bedingung"
-#: 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 "Befehle beginnen vor dem ersten Ziel"
-#: read.c:940
+#: read.c:1036
#, fuzzy
msgid "missing rule before recipe"
msgstr "Es fehlt eine Regel vor den Befehlen"
# Untranslatable because of weird %s usage -ke-
-#: read.c:1027
+#: read.c:1123
#, fuzzy, c-format
msgid "missing separator%s"
msgstr "Fehlendes Trennzeichen%s"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
msgstr " (Meinten Sie TAB anstelle von 8 Leerzeichen?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
msgstr "Es fehlt ein Target-Muster"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
msgstr "Mehrfache Target-Muster"
-#: read.c:1169
-#, c-format
-msgid "target pattern contains no `%%'"
+#: read.c:1269
+#, fuzzy, c-format
+msgid "target pattern contains no '%%'"
msgstr "Target-Muster enthält kein »%%«"
-#: read.c:1293
-msgid "missing `endif'"
+#: read.c:1391
+#, fuzzy
+msgid "missing 'endif'"
msgstr "Fehlendes »endif«"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "Leerer Variablenname"
-#: read.c:1367
+#: read.c:1465
#, fuzzy
-msgid "extraneous text after `define' directive"
+msgid "extraneous text after 'define' directive"
msgstr "Überflüssiger Text nach einer »endef«-Anweisung"
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
+#: read.c:1490
+#, fuzzy
+msgid "missing 'endef', unterminated 'define'"
msgstr "Fehlendes »endef«, nicht abgeschlossenes »define«"
-#: read.c:1420
+#: read.c:1518
#, fuzzy
-msgid "extraneous text after `endef' directive"
+msgid "extraneous text after 'endef' directive"
msgstr "Überflüssiger Text nach einer »endef«-Anweisung"
-#: read.c:1490
-#, c-format
-msgid "Extraneous text after `%s' directive"
+#: read.c:1589
+#, fuzzy, c-format
+msgid "extraneous text after '%s' directive"
msgstr "Überflüssiger Text nach einer »%s«-Anweisung"
-#: read.c:1499 read.c:1513
-#, c-format
-msgid "extraneous `%s'"
+#: read.c:1598 read.c:1612
+#, fuzzy, c-format
+msgid "extraneous '%s'"
msgstr "Überflüssiges »%s«"
-#: read.c:1518
-msgid "only one `else' per conditional"
+#: read.c:1617
+#, fuzzy
+msgid "only one 'else' per conditional"
msgstr "Es ist nur ein »else« je Verzweigung erlaubt"
-#: read.c:1797
+#: read.c:1892
#, fuzzy
msgid "Malformed target-specific variable definition"
msgstr "Falsche Ziel-bezogene Variablendefinition"
-#: read.c:1855
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
msgstr ""
-#: read.c:1908
+#: read.c:2009
msgid "mixed implicit and static pattern rules"
msgstr "Implizite und statische Muster-Regel vermischt"
-#: read.c:1931 read.c:2112
+#: read.c:2032 read.c:2220
msgid "mixed implicit and normal rules"
msgstr "Implizite und normale Regel vermischt"
-#: 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 "Target »%s« passt nicht zum Target-Muster"
-#: 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 "Das Ziel »%s« enthält sowohl »:«- als auch »::«-Einträge"
-#: 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 "Das Ziel »%s« steht mehrfach in derselben Regel."
-#: read.c:2006
+#: read.c:2114
#, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
+msgid "warning: overriding recipe for target '%s'"
msgstr "Warnung: Die Befehle für das Ziel »%s« werden überschrieben"
-#: 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 "Warnung: Alte Befehle für das Ziel »%s« werden ignoriert"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
msgstr "Warnung: NUL-Zeichen gelesen; der Rest der Zeile wird ignoriert"
-#: 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 "Für das Ziel »%s« ist nichts zu tun."
-#: 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« ist bereits aktualisiert."
-#: remake.c:306
-#, c-format
-msgid "Pruning file `%s'.\n"
+#: remake.c:305
+#, fuzzy, c-format
+msgid "Pruning file '%s'.\n"
msgstr "Die Datei »%s« wird \"gestutzt\" (der Abhängigkeitsgraph).\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 "%sKeine Regel, um »%s« zu erstellen%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 ""
"%sKeine Regel vorhanden, um das Target »%s«, \n"
" benötigt von »%s«, zu erstellen%s"
#: remake.c:413
-#, c-format
-msgid "Considering target file `%s'.\n"
+#, fuzzy, c-format
+msgid "Considering target file '%s'.\n"
msgstr "Betrachte Target-Datei »%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 ""
"Versuchte gerade die Datei »%s« zu aktualisieren, \n"
"dies schlug aber fehl.\n"
#: remake.c:432
-#, c-format
-msgid "File `%s' was considered already.\n"
+#, fuzzy, c-format
+msgid "File '%s' was considered already.\n"
msgstr "Die Datei »%s« wurde bereits betrachtet.\n"
#: remake.c:442
-#, c-format
-msgid "Still updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Still updating file '%s'.\n"
msgstr "Die Datei »%s« wird immer noch aktualisiert.\n"
#: remake.c:445
-#, c-format
-msgid "Finished updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Finished updating file '%s'.\n"
msgstr "Aktualisierung der Datei »%s« beendet.\n"
#: remake.c:474
-#, c-format
-msgid "File `%s' does not exist.\n"
+#, fuzzy, c-format
+msgid "File '%s' does not exist.\n"
msgstr "Die Datei »%s« existiert nicht.\n"
#: remake.c:481
#, 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 ""
-#: 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 "Eine implizite Regel für »%s« gefunden.\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 "Keine implizite Regel für »%s« gefunden.\n"
#: remake.c:502
#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
+msgid "Using default recipe for '%s'.\n"
msgstr "Verwende die Standard-Kommandos für »%s«.\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
msgstr "Zirkuläre Datei %s <- %s Abhängigkeit wird nicht verwendet."
-#: 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 "Fertig mit den Voraussetzungen für die Ziel-Datei »%s«.\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 "Die Voraussetzungen von »%s« werden fertiggestellt.\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 "Die Arbeit an der Target-Datei »%s« wurde aufgegeben.\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 "Das Target »%s« wurde wegen Fehlern nicht aktualisiert."
-#: remake.c:727
+#: remake.c:731
#, fuzzy, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
msgstr "Die Datei »%s« ist älter als das davon abhängige Ziel »%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 ""
"Die Datei »%s«, Voraussetzung für das Ziel »%s«, \n"
"existiert nicht.\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 "Die Datei »%s« ist jünger als das davon abhängige Ziel »%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 "Die Datei »%s« ist älter als das davon abhängige Ziel »%s«.\n"
-#: remake.c:758
-#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
+#: remake.c:762
+#, fuzzy, c-format
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
msgstr ""
"Das Ziel »%s« hat einen doppelten Doppelpunkt \n"
"und keine Voraussetzungen.\n"
-#: remake.c:765
+#: remake.c:769
#, fuzzy, 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 ""
"Kein Kommando für »%s« und keine Voraussetzung \n"
"wurde tatsächlich verändert.\n"
-#: remake.c:770
+#: remake.c:774
#, c-format
-msgid "Making `%s' due to always-make flag.\n"
+msgid "Making '%s' due to always-make flag.\n"
msgstr ""
-#: 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 "Es ist nicht notwendig, das Target »%s« neu zu erzeugen"
-#: remake.c:780
-#, c-format
-msgid "; using VPATH name `%s'"
+#: remake.c:784
+#, fuzzy, c-format
+msgid "; using VPATH name '%s'"
msgstr "; benutze VPATH-Name »%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 "Das Target »%s« muss neu erzeugt werden.\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 " Ignoriere VPATH-Name »%s«.\n"
-#: remake.c:815
+#: remake.c:819
#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
+msgid "Recipe of '%s' is being run.\n"
msgstr "Die Kommandos von »%s« werden gerade ausgeführt.\n"
-#: 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 "Fehler beim Aktualisieren der Target-Datei »%s«.\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 "Die Target-Datei »%s« wurde erfolgreich aktualisiert.\n"
-#: remake.c:828
-#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
+#: remake.c:832
+#, fuzzy, c-format
+msgid "Target file '%s' needs to be remade under -q.\n"
msgstr "Target »%s« muss bei -q aktualisiert werden.\n"
-#: 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 "Verwende die Standard-Kommandos für »%s«.\n"
-#: remake.c:1357
+#: remake.c:1372
#, fuzzy, c-format
-msgid "Warning: File `%s' has modification time in the future"
+msgid "Warning: File '%s' has modification time in the future"
msgstr "*** Warnung: Datei »%s« hat zukünftige Änderungszeit (%s > %s)!"
-#: 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 "*** Warnung: Datei »%s« hat zukünftige Änderungszeit (%s > %s)!"
-#: 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 Element »%s« ist kein Muster"
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
msgstr "Customs wird nicht exportieren: %s\n"
-#: rule.c:499
+#: rule.c:496
#, fuzzy
msgid ""
"\n"
@@ -1658,7 +1869,7 @@ msgstr ""
"\n"
"# Keine impliziten Regeln vorhanden."
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
@@ -1666,7 +1877,7 @@ msgstr ""
"\n"
"# Keine impliziten Regeln vorhanden."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -1675,240 +1886,257 @@ msgstr ""
"\n"
"# %u implizite Regeln, %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr " Terminal."
-#: rule.c:534
+#: rule.c:531
#, fuzzy, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
msgstr "BUG: »num_pattern_rules« falsch! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "Unbekanntes Signal"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
msgstr "Aufgelegt"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "Abgebrochen (Interrupt)"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
msgstr "Quit"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
msgstr "Illegaler Befehl"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
msgstr "Verfolgen/anhalten abfangen (Trace/breakpoint trap)"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "Abgebrochen (Aborted)"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
msgstr "IOT abfangen (IOT trap)"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
msgstr "EMT abfangen (EMT trap)"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
msgstr "Gleitkommafehler"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "Abgebrochen (Killed)"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr "Bus-Fehler"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "Adressierungsdefekt"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "Falscher Systemaufruf"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr "Zerstörte Pipe"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "Wecksignal"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
msgstr "Abgebrochen (Terminated)"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr "Nutzersignal 1"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr "Nutzersignal 2"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
msgstr "Kindprozess beendet"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
msgstr "Stromausfall"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "Angehalten"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
msgstr "Angehalten (tty input)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
msgstr "Angehalten (tty output)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "Angehalten (signal)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
msgstr "CPU-Zeitschranke überschritten"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
msgstr "Dateigrößenschranke überschritten"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
msgstr "Virtueller Timer erloschen"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
msgstr "Profiling Timer erloschen"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
msgstr "Fenster hat sich verändert"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "Fortgesetzt"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
msgstr "Dringende I/O-Bedingung"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
msgstr "I/O möglich"
-#: 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 "Ressource verloren gegangen"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "Gefahrensignal"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr "Informationsanforderung"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
msgstr "Es ist kein Koprozessor für Fließkommaoperationen vorhanden"
-#: strcache.c:235
+#: strcache.c:236
+#, c-format
+msgid ""
+"\n"
+"%s No strcache buffers\n"
+msgstr ""
+
+#: strcache.c:266
#, c-format
msgid ""
"\n"
-"%s # of strings in strcache: %d / lookups = %lu / hits = %lu\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
msgstr ""
-#: strcache.c:237
+#: strcache.c:270
#, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+msgid ""
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
msgstr ""
-#: strcache.c:239
+#: strcache.c:280
#, c-format
-msgid "%s strcache used: 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:241
+#: strcache.c:283
#, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
msgstr ""
-#: strcache.c:244
-#, fuzzy
+#: 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 "# %u Variablen für %u hash-Werte.\n"
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "automatisch"
+
+#: variable.c:1610
msgid "default"
msgstr "Standard"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr "Umgebung"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr "Makefile"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
msgstr "Umgebung per -e"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr "Kommandozeile"
-#: variable.c:1556
-msgid "`override' directive"
+#: variable.c:1625
+#, fuzzy
+msgid "'override' directive"
msgstr "»override«-Anweisung"
-#: variable.c:1559
-msgid "automatic"
-msgstr "automatisch"
-
-#: variable.c:1570
+#: variable.c:1636
#, fuzzy, c-format
-msgid " (from `%s', line %lu)"
+msgid " (from '%s', line %lu)"
msgstr " (aus »%s«, Zeile %lu):\n"
-#: variable.c:1612
+#: variable.c:1699
#, fuzzy
msgid "# variable set hash-table stats:\n"
msgstr "# %u Variablen für %u hash-Werte.\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1916,7 +2144,7 @@ msgstr ""
"\n"
"# Variablen\n"
-#: variable.c:1627
+#: variable.c:1714
#, fuzzy
msgid ""
"\n"
@@ -1925,7 +2153,7 @@ msgstr ""
"\n"
"# Musterspezifische Variablenwerte"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
@@ -1933,7 +2161,7 @@ msgstr ""
"\n"
"# Keine musterspezifischen Variablenwerte."
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
@@ -1942,92 +2170,92 @@ msgstr ""
"\n"
"# %u musterspezifische Variablenwerte"
-#: variable.h:219
-#, c-format
-msgid "warning: undefined variable `%.*s'"
+#: variable.h:224
+#, fuzzy, c-format
+msgid "warning: undefined variable '%.*s'"
msgstr "Warnung: undefinierte Variable »%.*s«"
-#: vmsfunctions.c:92
+#: vmsfunctions.c:91
#, fuzzy, c-format
msgid "sys$search() failed with %d\n"
msgstr "»sys$search« schlug mit %d fehl\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr "Warnung: Umleitung ins Leere!\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 "Interner Fehler: »%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 "-Warnung: Vielleicht müssen Sie STRG-Y aus DCL wieder ermöglichen.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr "BUILTIN [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr "BUILTIN CD %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr "BUILTIN RM %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
msgstr "Unbekanntes eingebautes Kommando »%s«\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr "Fehler: Leere Anweisung\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr "Datei %s auf Standardeingabe umgeleitet\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr "Fehlerausgabe nach %s umgeleitet\n"
-#: vmsjobs.c:523
+#: vmsjobs.c:518
#, fuzzy, c-format
msgid "Append output to %s\n"
msgstr "Ausgabe nach %s umgeleitet\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
msgstr "Ausgabe nach %s umgeleitet\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 "%s wird stattdessen ausgeführt\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr "Fehler beim Starten eines Kindprozesses, %d.\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
@@ -2035,37 +2263,46 @@ msgstr ""
"\n"
"# VPATH-Suchpfade\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
+#: vpath.c:600
+#, fuzzy
+msgid "# No 'vpath' search paths."
msgstr "# Keine »vpath«-Suchpfade."
-#: 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«-Suchpfade.\n"
-#: vpath.c:608
+#: vpath.c:605
+#, fuzzy
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
"# Kein allgemeiner Suchpfad (Variable »VPATH«)."
-#: vpath.c:614
+#: vpath.c:611
+#, fuzzy
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
"# Allgemeiner Suchpfad (Variable »VPATH«):\n"
"# "
+#~ msgid "# Invalid value in `update_status' member!"
+#~ msgstr "# Ungültiger Wert in »update_status«-Eintrag!"
+
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] Fehler 0x%x (ignoriert)"
+
#~ msgid "Do not specify -j or --jobs if sh.exe is not available."
#~ msgstr ""
#~ "Wenn »sh.exe« nicht vorhanden ist, \n"
diff --git a/po/es.gmo b/po/es.gmo
index 5afbd6e..83cbb57 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index b8dcf08..18a1ee2 100644
--- a/po/es.po
+++ b/po/es.po
@@ -1,22 +1,24 @@
# Mensajes en español para GNU make.
-# Copyright (C) 1996, 2001 Free Software Foundation, Inc.
-# Max de Mendizábal <max@upn.mx>, 1996, 2001.
+# Copyright (C) 1996, 2001, 2011 Free Software Foundation, Inc.
+# This file is distributed under the same license as the make package.
+# Max de Mendizábal <max.de.mendizabal@gmail.com>, 1996, 2011.
#
msgid ""
msgstr ""
-"Project-Id-Version: GNU make 3.81-b3\n"
+"Project-Id-Version: GNU make 3.82\n"
"Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2010-07-28 01:42-0400\n"
-"PO-Revision-Date: 2005-06-28 19:59-0500\n"
-"Last-Translator: Max de Mendizábal <max@upn.mx>\n"
+"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"PO-Revision-Date: 2011-02-16 14:50-0600\n"
+"Last-Translator: Max de Mendizábal <max.de.mendizabal@gmail.com>\n"
"Language-Team: Spanish <es@li.org>\n"
+"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\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 "Se intentó utilizar una característica no implementada: `%s'"
# Sugerencia: touch -> `touch'. sv
@@ -31,111 +33,115 @@ msgstr "Se intentó utilizar una característica no implementada: `%s'"
# Enrique: touch es un programa del sistema operativo y sirve para
# cambiar la fecha de un programa o archivo. Es decir lo "toca" y
# modifica sus atributos. Por eso preferí no traducirlo.
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
msgstr "El programa para hacer un `touch' no está disponible en VMS"
-#: 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: El archivo `%s' no existe"
-#: 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' no es un archivo válido"
-#: 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: El miembro `%s' no existe en `%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: Código de retorno erróneo de ar_member_touch en `%s'"
-#: arscan.c:69
-#, fuzzy, c-format
+#: arscan.c:67
+#, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
msgstr ""
-"fallo en lbr$set_module para extraer la información del módulo, estado = %d"
+"fallo en lbr$set_module() para extraer la información del módulo, estado = %d"
-#: arscan.c:175
-#, fuzzy, c-format
+#: arscan.c:173
+#, c-format
msgid "lbr$ini_control() failed with status = %d"
-msgstr "fallo en lbr$ini_control con estado = %d"
+msgstr "fallo en lbr$ini_control() con estado = %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 "Error al abrir la biblioteca `%s' para buscar al elemento `%s'"
-#: 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 "Miembro `%s'%s: %ld bytes en %ld (%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr " (el nombre puede estar truncado)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Fecha %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d, gid = %d, modo = 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 "*** Break.\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] Miembro de archivo `%s' podría estar incorrecto; aunque no se "
"elimina"
-#: 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 ""
"*** Miembro del archivo `%s' podría estar incorrecto; aunque no se elimina"
# Propongo un cambio en el tiempo verbal: Se borra el archivo temporal. sv
# Ok. mm
-#: commands.c:638
-#, c-format
-msgid "*** [%s] Deleting file `%s'"
+#: commands.c:646
+#, fuzzy, c-format
+msgid "*** [%s] Deleting file '%s'"
msgstr "*** [%s] Se borra el archivo `%s'"
# Propongo un cambio en el tiempo verbal: Se borra el archivo temporal. sv
# Ok. mm
-#: commands.c:640
-#, c-format
-msgid "*** Deleting file `%s'"
+#: commands.c:648
+#, fuzzy, c-format
+msgid "*** Deleting file '%s'"
msgstr "*** Se borra el archivo `%s'"
-#: commands.c:676
-#, fuzzy
+#: commands.c:684
msgid "# recipe to execute"
-msgstr "# comandos para ejecutar"
+msgstr "# las instrucciones para ejecutar"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr " (interconstruido):"
-#: commands.c:681
-#, c-format
-msgid " (from `%s', line %lu):\n"
+#: commands.c:689
+#, fuzzy, c-format
+msgid " (from '%s', line %lu):\n"
msgstr " (de `%s', linea %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -143,7 +149,7 @@ msgstr ""
"\n"
"# Directorios\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
msgstr "# %s: podría no estar establecido.\n"
@@ -151,14 +157,14 @@ msgstr "# %s: podría no estar establecido.\n"
# ¿No sobraría el "posiblemente"?
# Propongo dejarlo en " no se pudo abrir ". sv
# Ok. Es consistente con otras traducciones. mm
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
msgstr "# %s (llave %s, mtime %d): no se pudo abrir.\n"
# En el K & R aparece inode traducido como nodo-i. ¿qué te parece? sv
# Bien. Me gusta con el guioncito. mm
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
msgstr ""
@@ -167,49 +173,49 @@ msgstr ""
# ¿No sobraría el "posiblemente"?
# Propongo dejarlo en " no se pudo abrir ". sv
# Ok. Es consistente con otras traducciones. mm
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
msgstr "# %s (dispositivo %ld, nodo-i %ld): no se pudo abrir.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr "# %s (llave %s, mtime %d): "
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
msgstr "# %s (dispositivo %d, nodo-i [%d,%d,%d]): "
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
msgstr "# %s (dispositivo %ld, nodo-i %ld): "
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "No"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " archivos, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "no"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
msgstr " imposibilidades"
# ¿"So far" no era "hasta ahora"? (no me hagas mucho caso) sv
# Si tu traducción es mejor. Aceptada. mm
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr " hasta ahora."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
msgstr " imposibilidades en %lu directorios.\n"
@@ -223,46 +229,46 @@ msgstr " imposibilidades en %lu directorios.\n"
# ejemplo em+
# Mejor lo eliminamos. Es de alguna forma reiterativo e innecesario.
# Lo de `al final' puede ser más confuso. mm
-#: 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 "La variable recursiva `%s' se auto-referencia"
# No me gusta nada ( lo siento )
# ¿ Qué tal : La referencia a una variable está sin terminar em+
# Creo que tienes razón la voz pasiva es muy desagradable. mm.
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
msgstr "la referencia a la variable está sin terminar"
-#: 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 "Las instrucciones fueron especificadas para el archivo `%s' en %s:%lu,"
# Buscando en las legras implícitas em+
# Utilicé por búsqueda en para evitar el gerundio. mm
-#: file.c: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 ""
"Las instrucciones para el archivo `%s' se encontraron por búsqueda en reglas "
"implícitas,"
# "now" es "ahora". ¿te lo has comido consciente o inconscientemente? sv
# inconscientemente. mm
-#: 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 "pero `%s' se considera ahora como el mismo archivo que `%s'."
# Lo repetiré una y mil veces... :-)
# "To ignore" *no* es ignorar. sv
# Propongo "no serán tenidas en cuenta" a falta de algo mejor.
# Ok. Mi necedad sobrepasa el milenio. mm
-#: 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 ""
"Las instrucciones para `%s' no serán tenidas en cuenta en favor de las que "
"están en `%s'."
@@ -270,46 +276,46 @@ msgstr ""
# Me suena que eso de colon es algo así como punto, dos puntos o punto y coma.
# ¿Podrías comprobarlo? sv
# Es un punto sencillo (.). A ver si te gusta mi propuesta. mm
-#: file.c:298
-#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
+#: file.c:300
+#, fuzzy, c-format
+msgid "can't rename single-colon '%s' to double-colon '%s'"
msgstr "no se puede cambiar un punto (.) `%s' por dos puntos (:) `%s'"
# Lo mismo. sv
-#: file.c:303
-#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
+#: file.c:305
+#, fuzzy, c-format
+msgid "can't rename double-colon '%s' to single-colon '%s'"
msgstr "no se pueden cambiar dos puntos (:) `%s' por un punto (.) `%s'"
# Propongo un cambio en el tiempo verbal: Se borra el archivo temporal. sv
# Ok. mm
-#: file.c:392
-#, c-format
-msgid "*** Deleting intermediate file `%s'"
+#: file.c:396
+#, fuzzy, c-format
+msgid "*** Deleting intermediate file '%s'"
msgstr "*** Se borra el archivo temporal `%s'"
# Propongo un cambio en el tiempo verbal: Se borra el archivo temporal. sv
# Ok. mm
-#: file.c:396
+#: file.c:400
msgid "Removing intermediate files...\n"
msgstr "*** Se borran los archivos temporales...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
msgstr "%s: Fecha fuera de intervalo; sustituyéndola %s"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "Hora actual"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
msgstr "# No es un objetivo:"
# Pondría: es una dependencia de em+
# Si, tienes razón. mm
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
msgstr "# Archivo valioso (es una dependencia de .PRECIOUS)."
@@ -321,7 +327,7 @@ msgstr "# Archivo valioso (es una dependencia de .PRECIOUS)."
# No. Incondicional no es una traducción correcta. Que tal si al rato
# se les ocurre hacer una nueva instrucción .INCONDITIONAL.
# Si quieres podríamos pensar en otra traducción como señuelo o algo así. mm
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
msgstr "# objetivo falso (dependencia de .PHONY)."
@@ -332,10 +338,9 @@ msgstr "# objetivo falso (dependencia de .PHONY)."
# Están traduciendo commands como comandos? Son más bien ordenes o
# instrucciones. Por mi parte no hay problema, incluso me gusta más
# comandos, pero es un anglicismo. mm
-#: file.c:933
-#, fuzzy
+#: file.c:958
msgid "# Command line target."
-msgstr "# Objetivo de línea de instrucciones."
+msgstr "# Objetivo en línea de instrucciones."
# Habría que entender esto
# Creo que esto es lo que significa. El fuente no es demasiado claro. mm
@@ -345,15 +350,22 @@ msgstr "# Objetivo de línea de instrucciones."
# Así pues tu traducción es completamente equivocada, lo siento.
# Pondría: Fichero por defecto o definido en la variable MAKEFILE em+
# Cierto, lo has entendido bien. Arreglo acorde. mm
-#: file.c:935
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
msgstr "# Por omisión, MAKEFILES, o -include/sinclude makefile."
+#: file.c:962
+#, fuzzy
+msgid "# Builtin rule"
+msgstr ""
+"\n"
+"# No hay reglas implícitas."
+
# Propongo efectuada en lugar de terminada. sv
# Ok. Es más literal. mm
# Atención ! , es la búsqueda 'de'reglas implícitas em+
# Ok. Ojo, debo pluralizar regla e implícita. Platicarlo con Ulrich. mm
-#: file.c:937
+#: file.c:964
msgid "# Implicit rule search has been done."
msgstr "# La búsqueda de reglas implícitas ha sido efectuada."
@@ -361,22 +373,22 @@ msgstr "# La búsqueda de reglas implícitas ha sido efectuada."
# Ok. Es más literal. mm
# Atención ! , es la búsqueda 'de'reglas implícitas em+
# Ok. Ojo, debo pluralizar regla e implícita. Platicarlo con Ulrich. mm
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
msgstr "# La búsqueda de reglas implícitas ha sido efectuada."
-#: file.c:940
-#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
+#: file.c:967
+#, fuzzy, c-format
+msgid "# Implicit/static pattern stem: '%s'\n"
msgstr "# rama del patrón implícita/estática: `%s'\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
msgstr "# El archivo es una dependencia intermedia."
# Sugerencia: "crea". sv
# Ok. Aunque, viendolo bien, que tal "hace"? mm.
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
msgstr "# También hace:"
@@ -384,71 +396,62 @@ msgstr "# También hace:"
# Ok. Mejora. mm
# No pondría nunca, sino simplemente 'no se comprobó 'em+
# Si, es lo mismo pero es más español. mm
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
msgstr "# La fecha de modificación no se comprobó."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# El archivo no existe."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr "# El archivo es muy viejo."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr "# Última modificación %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# El archivo ha sido actualizado."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# El archivo ha sido actualizado."
-#: file.c:968
-#, fuzzy
+#: file.c:995
msgid "# Recipe currently running (THIS IS A BUG)."
-msgstr "# Las instrucciones siguen ejecutándose (ESTO ES UN BUG)."
+msgstr "# Las instrucciones continúan en ejecución (ESTO ES UN BUG)."
# ¿No sería más bien "las instrucciones de las dependencias"? sv
# Si, que babas soy. Ahora corrijo. mm
-#: file.c:971
-#, fuzzy
+#: file.c:998
msgid "# Dependencies recipe running (THIS IS A BUG)."
msgstr ""
-"# Las instrucciones de las dependencias siguen ejecutándose (ESTO ES UN "
+"# Las instrucciones de las dependencias continúan en ejecución (ESTO ES UN "
"BUG)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
msgstr "# Actualizado con éxito."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
msgstr "# Necesita ser actualizado (la opción -q está activa)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr "# Fallo al ser actualizado."
-# ## Le he añadido un "¡" con tu permiso.
-# Gracias. No lo puse porque no se como poner ese símbolo con el
-# iso-accents-mode y luego se me olvidó. Por cierto, como se hace?
-# también tengo duda de la interrogación abierta.
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# ¡Valor inválido en el miembro `update_status'!"
-
# ## Lo mismo.
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
+#: file.c:1019
+#, fuzzy
+msgid "# Invalid value in 'command_state' member!"
msgstr "# ¡Valor inválido en el miembro `command_state'!"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -456,7 +459,7 @@ msgstr ""
"\n"
"# Archivos"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
@@ -466,127 +469,193 @@ msgstr ""
"# estadísticas de la tabla de hash de los archivos:\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 "el primer argumento de la función `word' no es numérico"
-#: 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 "el primer argumento de la función `word' debe ser mayor a 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 "el primer argumento de la función `wordlist' no es numérico"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
+#: function.c:769
+#, fuzzy
+msgid "non-numeric second argument to 'wordlist' function"
msgstr "el primer argumento de la función `wordlist' no es numérico"
-#: function.c:1458
+#: function.c:1460
#, fuzzy, c-format
-msgid "windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"
-msgstr "create_child_process: fallo en DuplicateHandle(In), (e=%d)\n"
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
+msgstr "windows32_openpipe(): fallo en DuplicateHandle(In), (e=%ld)\n"
-#: function.c:1469
+#: function.c:1483
#, fuzzy, c-format
-msgid "windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr "create_child_process: fallo en DuplicateHandle(Err), (e=%d)\n"
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
+msgstr "windows32_open_pipe(): fallo en DuplicateHandle(Err), (e=%ld)\n"
-#: function.c:1474
-#, fuzzy, c-format
+#: function.c:1490
+#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
-msgstr "Fallo en CreatePipe(), (e=%d)\n"
+msgstr "Fallo en CreatePipe(), (e=%ld)\n"
-#: function.c:1479
-#, fuzzy
+#: function.c:1498
msgid "windows32_openpipe(): process_init_fd() failed\n"
-msgstr "windows32_openpipe (): fallo en process_init_fd()\n"
+msgstr "windows32_openpipe(): fallo en process_init_fd()\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr "Limpiando el archivo temporal %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"
+
+# Probablemente sea aquí donde haya que ponerle el "el" para que "Entering"
+# concuerde bien con esta frase y con la anterior simultáneamente. sv
+# No. Ya revisé el fuente y transcribo el trozo pertinente:
+# char *message = entering ? "Entering" : "Leaving";
+# if (makelevel == 0)
+# printf ("%s: %s ", program, message);
+# else
+# printf ("%s[%u]: %s ", program, makelevel, message);
+# Como notarás lo del directorio va en otro lado.
+#: function.c:2158
+#, fuzzy, c-format
+msgid "write: %s: %s"
+msgstr "error al escribir: %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 "Número de argumentos (%d) insuficientes para la función `%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 "No implementado en esta plataforma: función `%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 "la llamada a la función `%s' no concluyó: falta `%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"
+msgid "Invalid function name: %s\n"
+msgstr ""
+
+#: function.c:2550
+#, c-format
+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 "Número de argumentos (%d) insuficientes para la función `%s'"
+
+#: function.c:2555
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "Número de argumentos (%d) insuficientes para la función `%s'"
+
+#: getopt.c:659
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
msgstr "%s: la opción `%s' es ambigua\n"
# No admite ningún argumento. sv
# Ok. Y vuelve la burra al trigo. mm
-#: getopt.c:685
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
+#: getopt.c:683
+#, fuzzy, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr "%s: la opción `--%s' no admite ningún argumento\n"
# Lo mismo. sv
# Ok. mm
-#: 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: la opción `%c%s' no admite ningún argumento\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: la opción `%s' requiere un argumento\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: opción no reconocida `--%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: opción no reconocida `%c%s'\n"
-#: getopt.c:766
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: opción inválida -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: opción inválida -- %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: la opción requiere un argumento -- %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: la opción `-W %s' es ambigua\n"
# No admite ningún argumento. sv
# Ok. Y vuelve la burra al trigo. mm
-#: 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: la opción `-W %s' no admite ningún argumento\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
+#, c-format
msgid "can't allocate %lu bytes for hash table: memory exhausted"
-msgstr "no se pueden reservar %ld bytes para la tabla de hash: memoria agotada"
+msgstr "no se pueden reservar %lu bytes para la tabla de hash: memoria agotada"
#: hash.c:280
#, c-format
@@ -607,17 +676,17 @@ msgstr "Colisiones=%ld/%ld=%.0f%%"
# Ten en cuenta que este mensaje no parece un mensaje de error, sino más
# de "debug" o de "verbose". sv
# Cierto. mm
-#: implicit.c: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 "Buscando una regla implícita para `%s'.\n"
# Lo mismo.
# Buscando una regla implítita para el miembro del archivo `%s' em+
# Se me resbaló. mm
-#: 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 "Buscando una regla implícita para el miembro del archivo `%s'.\n"
# Pues si ilegal le suena a cárcel a Enrique, "evade" me suena a mí a
@@ -627,10 +696,15 @@ msgstr "Buscando una regla implícita para el miembro del archivo `%s'.\n"
# Me gusta evade, pero evita es correcto. Acepto tu sugerencia. mm
# No me gusta se evita, pondría evitando em+
# Ok. Pero a mi paranoia de evitar gerundios dónde la dejas? mm
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
msgstr "Evitando la recursión en la regla implícita.\n"
+#: implicit.c:486
+#, c-format
+msgid "Stem too long: '%.*s'.\n"
+msgstr ""
+
# FUZZY
# Esto me suena fatal. Se a que se refiere, porque lo
# he visto, pero en cristiano no se si podría entenderlo.
@@ -640,8 +714,8 @@ msgstr "Evitando la recursión en la regla implícita.\n"
# pondría a toda costa gerundio ( intentando ) em+
# Ok con el gerundio. Pero también tengo que meditarlo. mm
#: implicit.c:491
-#, c-format
-msgid "Trying pattern rule with stem `%.*s'.\n"
+#, fuzzy, c-format
+msgid "Trying pattern rule with stem '%.*s'.\n"
msgstr "Intentando una regla de patrón con la ramificación `%.*s'.\n"
# ## Corrijo la palabra "dependencia". sv
@@ -651,9 +725,9 @@ msgstr "Intentando una regla de patrón con la ramificación `%.*s'.\n"
# aparecer tal y como está ahora (Se rechaza la dependencia imposible
# `%s' `%s )'em+
# Ok. mm
-#: 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 "Se rechaza la regla de dependencia imposible `%s'.\n"
# ## Corrijo la palabra "dependencia". sv
@@ -663,9 +737,9 @@ msgstr "Se rechaza la regla de dependencia imposible `%s'.\n"
# aparecer tal y como está ahora (Se rechaza la dependencia imposible
# `%s' `%s )'em+
# Ok. mm
-#: 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 "Se rechaza la dependencia imposible `%s'.\n"
# FUZZY
@@ -676,9 +750,9 @@ msgstr "Se rechaza la dependencia imposible `%s'.\n"
# De momento cambio la regla patron por una regla de patron , y
# pondría a toda costa gerundio ( intentando ) em+
# Ok con el gerundio. Pero también tengo que meditarlo. mm
-#: implicit.c:688
-#, c-format
-msgid "Trying rule prerequisite `%s'.\n"
+#: implicit.c:711
+#, fuzzy, c-format
+msgid "Trying rule prerequisite '%s'.\n"
msgstr "Intentando la regla de dependencia `%s'.\n"
# Pues si ilegal le suena a cárcel a Enrique, "evade" me suena a mí a
@@ -688,118 +762,143 @@ msgstr "Intentando la regla de dependencia `%s'.\n"
# Me gusta evade, pero evita es correcto. Acepto tu sugerencia. mm
# No me gusta se evita, pondría evitando em+
# Ok. Pero a mi paranoia de evitar gerundios dónde la dejas? mm
-#: implicit.c:689
-#, c-format
-msgid "Trying implicit prerequisite `%s'.\n"
+#: implicit.c:712
+#, fuzzy, c-format
+msgid "Trying implicit prerequisite '%s'.\n"
msgstr "Probando la dependencia implícita `%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 "Se encontró la dependencia `%s' como la 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 "Se busca una regla con el archivo intermedio `%s'.\n"
-#: job.c:335
+#: job.c:361
msgid "Cannot create a temporary file\n"
msgstr "No se puede crear un archivo temporal\n"
-# Lo mismo. sv
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] Error 0x%x (no tiene efecto)"
-
-#: job.c:450
-#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] Error 0x%x"
-
-# Lo mismo. sv
-#: job.c:454
-#, c-format
-msgid "[%s] Error %d (ignored)"
-msgstr "[%s] Error %d (no tiene efecto)"
-
-#: job.c:455
-#, c-format
-msgid "*** [%s] Error %d"
-msgstr "*** [%s] Error %d"
-
# Sugerencia: " (volcado de `core')". sv
# volcado de `core' no significa nada, que te parece si mejor dejamos
# el core dumped, o bien volcado del núcleo o algo así. Por el momento
# no cambio nada. mm
-#: job.c:460
+#: job.c:482
msgid " (core dumped)"
msgstr " (core dumped) [Núcleo vaciado a un archivo]"
+# Preferiría mil veces "sin efecto" o algo parecido. sv
+# Ok. Habíamos quedado en `no tiene efecto'. mm
+#: job.c:487
+msgid " (ignored)"
+msgstr " (no tiene efecto)"
+
+#: job.c:491 job.c:1994
+#, fuzzy
+msgid "<builtin>"
+msgstr " (interconstruido):"
+
+# No me gusta esta traducción de override. Mira a ver
+# si encaja mejor alguna de las dos que se proponen arriba
+# em+
+# Aunque no me acaba de convencer, que te parece ésto? mm
+#: job.c:501
+#, fuzzy, c-format
+msgid "%s: recipe for target '%s' failed"
+msgstr "atención: se imponen las instrucciones para el objetivo `%s'"
+
+#: job.c:510
+#, fuzzy, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "*** [%s] Error 0x%x"
+
+#: job.c:513
+#, fuzzy, c-format
+msgid "%s[%s] Error %d%s"
+msgstr "*** [%s] Error %d"
+
+#: job.c:517
+#, fuzzy, c-format
+msgid "%s[%s] %s%s%s"
+msgstr "%s%s: %s"
+
# ¿Y job -> trabajos? sv
# Si, pero no hablas de una computadora multi-trabajos sino multi-tareas.
# Por eso elegí tareas. Lo platicamos con más calma? mm
-#: job.c:549
+#: job.c:609
msgid "*** Waiting for unfinished jobs...."
msgstr "*** Se espera a que terminen otras tareas...."
# ¿De verdad se dice "vivo"? Si es un proceso, se me ocurre "activo". sv
# Me gusta lo de activo. mm
-#: job.c:579
-#, fuzzy, c-format
+#: job.c:639
+#, c-format
msgid "Live child %p (%s) PID %s %s\n"
-msgstr "Hijo activo 0x%08lx (%s) PID %ld %s\n"
+msgstr "Hijo activo %p (%s) PID %s %s\n"
-#: 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 " (remoto)"
# Lo mismo, pon Proceso hijo, y quita lo que hay
# entre paréntesis em+
-#: job.c:758
-#, fuzzy, c-format
+#: job.c:829
+#, c-format
msgid "Reaping losing child %p PID %s %s\n"
-msgstr "Se pierde al proceso hijo descarriado 0x%08lx PID %ld %s\n"
+msgstr "Se recupera al proceso hijo perdido %p PID %s %s\n"
# Lo mismo, pon Proceso hijo, y quita lo que hay
# entre paréntesis em+
-#: job.c:759
-#, fuzzy, c-format
+#: job.c:830
+#, c-format
msgid "Reaping winning child %p PID %s %s\n"
-msgstr "Se gana al proceso hijo descarriado 0x%08lx PID %ld %s\n"
+msgstr "Se recupera al proceso hijo ganador %p PID %s %s\n"
# Give up no es enfocar, es abandonar, o desistir em+
# Si, metí la pata. mm
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
msgstr "Se limpia el archivo temporal %s\n"
+# Give up no es enfocar, es abandonar, o desistir em+
+# Si, metí la pata. mm
+#: job.c:843
+#, fuzzy, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "Se limpia el archivo temporal %s\n"
+
# Proceso hijo em+
# Ok.
-#: job.c:861
-#, fuzzy, c-format
+#: job.c:949
+#, c-format
msgid "Removing child %p PID %s%s from chain.\n"
-msgstr "Se elimina al proceso hijo 0x%08lx PID %ld%s de la cadena.\n"
+msgstr "Se elimina al proceso hijo %p PID %s%s de la cadena.\n"
-#: job.c:920
-msgid "write jobserver"
-msgstr "escribir en el servidor de tareas"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr ""
# Lo mismo, pon Proceso hijo, y quita lo que hay
# entre paréntesis em+
-#: job.c:922
-#, fuzzy, c-format
+#: job.c:1011 job.c:1025
+#, c-format
msgid "Released token for child %p (%s).\n"
-msgstr "Se libera el token para el proceso hijo 0x%08lx (%s).\n"
+msgstr "Se libera el token para el proceso hijo %p (%s).\n"
-#: job.c:1453 job.c:2094
-#, fuzzy, c-format
+#: job.c:1023
+msgid "write jobserver"
+msgstr "escribir en el servidor de tareas"
+
+#: job.c:1612 job.c:2332
+#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
-msgstr "fallo en process_easy() al lanzar el proceso (e=%d)\n"
+msgstr "fallo en process_easy() para lanzar al proceso (e=%ld)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
@@ -810,62 +909,78 @@ msgstr ""
# Proceso hijo em+
# Ok.
-#: job.c:1525
-#, fuzzy, c-format
+#: job.c:1685
+#, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
-msgstr "Se pone al proceso hijo 0x%08lx (%s) PID %ld%s en la cadena.\n"
+msgstr "Se pone al proceso hijo %p (%s) PID %s%s en la cadena.\n"
+
+#: job.c:1953
+#, c-format
+msgid "semaphore or child process wait: (Error %ld: %s)"
+msgstr ""
# Lo mismo, pon Proceso hijo, y quita lo que hay
# entre paréntesis em+
-#: job.c:1778
-#, fuzzy, c-format
+#: job.c:1967
+#, c-format
msgid "Obtained token for child %p (%s).\n"
-msgstr "Se obtiene el token para el proceso hijo 0x%08lx (%s).\n"
+msgstr "Se obtiene el token para el proceso hijo %p (%s).\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
msgstr "tubería de trabajos leídos"
-#: 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: El archivo `%s' no existe"
-#: job.c:1802
+#: job.c:2005
#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "No es necesario reconstruir el objetivo `%s'."
+msgid "%s: update target '%s' due to: %s"
+msgstr ""
+"%sNo hay ninguna regla para construir el objetivo `%s', necesario para `%s'%s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
msgstr "no se pueden forzar los límites de carga en este sistema operativo"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
msgstr "no se puede forzar la carga límite: "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
msgstr "no hay más manejadores de archivos: no se puede duplicar stdin\n"
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
msgstr "no hay más manejadores de archivos: no se puede duplicar stdout\n"
-#: job.c:2015
+#: job.c:2223
+#, fuzzy
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr "no hay más manejadores de archivos: no se puede duplicar stdin\n"
+
+#: job.c:2238
msgid "Could not restore stdin\n"
msgstr "No se puede restaurar stdin\n"
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
msgstr "No se puede restaurar stdout\n"
-#: job.c:2127
-#, fuzzy, c-format
+#: job.c:2254
+#, fuzzy
+msgid "Could not restore stderr\n"
+msgstr "No se puede restaurar stdin\n"
+
+#: job.c:2365
+#, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
-msgstr "hacer un hijo descarriado %d, aún esperando el pid %d\n"
+msgstr "hacer un hijo descarriado %s, aún se espera por el pid %s\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
msgstr "%s: No se encontró el programa"
@@ -876,55 +991,101 @@ msgstr "%s: No se encontró el programa"
# yo pensaria que me falta un programa en mi sistema que se
# llame shell. No se ha encontrado el 'shell'em+
# Es bueno contar con una segunda opinión ... mm
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr "%s: No se ha encontrado el `shell'"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
msgstr "spawnvpe: el espacio ambiental podría estar agotado"
-#: 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 ha cambiado (era `%s' y ahora es `%s')\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr "Se crea el archivo temporal %s\n"
-#: job.c:2963
+#: job.c:3148
+#, fuzzy
+msgid ""
+"Batch file contents:\n"
+"\t@echo off\n"
+msgstr ""
+"Contenido del archivo de lotes:%s\n"
+"\t%s\n"
+
+#: job.c:3337
#, c-format
msgid ""
"Batch file contents:%s\n"
"\t%s\n"
msgstr ""
+"Contenido del archivo de lotes:%s\n"
+"\t%s\n"
-#: job.c:3065
+#: job.c:3444
#, c-format
msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
msgstr ""
"%s (linea %d) Contexto de shell erróneo (!unixy && !batch_mode_shell)\n"
-#: 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 ""
+"Los trabajos en paralelo (-j) no están implementados en esta plataforma."
+
+#: main.c:312
msgid "Options:\n"
msgstr "Opciones:\n"
# Lo mismo de arriba con "ignorar". sv
# Ok. mm.
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
msgstr ""
" -b, -m No se tendrá en cuenta por compatibilidad.\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr ""
" -B, --always-make Hace incondicionalmente todos los objetivos.\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
@@ -935,7 +1096,7 @@ msgstr ""
# ¿"depurado" o "depuración"? sv
# Puse de depurado para evitar la cacofonía información depuración.
# Sugerencias bienvenidas. mm
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
msgstr ""
" -d Se imprimirán grandes cantidades de información de depurado.\n"
@@ -943,14 +1104,14 @@ msgstr ""
# ¿"depurado" o "depuración"? sv
# Puse de depurado para evitar la cacofonía información depuración.
# Sugerencias bienvenidas. mm
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
" --debug[=BANDERAS] Se imprimirán varios tipos de información de "
"depurado.\n"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
@@ -959,12 +1120,14 @@ msgstr ""
" Las variables ambientales se imponen a las de los "
"makefiles.\n"
-#: main.c:318
+#: main.c:327
msgid ""
" --eval=STRING Evaluate STRING as a makefile statement.\n"
msgstr ""
+" --eval=CADENA Evalúla la CADENA como una instrucción de un "
+"makefile.\n"
-#: main.c:320
+#: main.c:329
msgid ""
" -f FILE, --file=FILE, --makefile=FILE\n"
" Read FILE as a makefile.\n"
@@ -972,7 +1135,7 @@ msgstr ""
" -f ARCHIVO, --file=ARCHIVO, --makefile=ARCHIVO\n"
" Lee al ARCHIVO como un makefile.\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
msgstr " -h, --help Muestra este mensaje y finaliza.\n"
@@ -982,14 +1145,13 @@ msgstr " -h, --help Muestra este mensaje y finaliza.\n"
# tambien.
# No me gusta este mensaje, preferiría: Se ignoran los errores obtenidos
# en la ejecución de las instrucciones em+
-#: main.c:325
-#, fuzzy
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
msgstr ""
" -i, --ignore-errors No se toman en cuenta los errores provenientes "
"de las instrucciones.\n"
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
@@ -1000,7 +1162,7 @@ msgstr ""
# Yo traduciría "infinite" por "infinitos", no por "una infinidad", que
# parece que son muchos menos... sv
# Ok. mm
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
@@ -1011,14 +1173,14 @@ msgstr ""
# No entiendo por qué aquí empleas subjuntivo: "pudieron". sv
# Es incorrecto. Es una de las opciones `k' que dice... mm
-#: main.c:332
+#: main.c:341
msgid ""
" -k, --keep-going Keep going when some targets can't be made.\n"
msgstr ""
" -k, --keep-going Sigue avanzando aún cuando no se puedan crear "
"algunos objetivos.\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 "
@@ -1028,7 +1190,7 @@ msgstr ""
" No inicia con trabajos múltiples a menos que la carga esté por debajo "
"de N.\n"
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
@@ -1036,8 +1198,7 @@ msgstr ""
" -L, --check-symlink-times Utiliza el último mtime entre los enlaces "
"simbólicos y los objetivos.\n"
-#: main.c:339
-#, fuzzy
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
@@ -1047,7 +1208,7 @@ msgstr ""
" No ejecuta ninguna instrucción; sólo las "
"muestra.\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 "
@@ -1057,30 +1218,35 @@ msgstr ""
" Supone que ARCHIVO es muy viejo y no lo "
"reconstruye.\n"
+#: main.c:354
+msgid ""
+" -O[TYPE], --output-sync[=TYPE]\n"
+" Synchronize output of parallel jobs by TYPE.\n"
+msgstr ""
+
# de 'make' em+
# ok. mm
-#: main.c:345
+#: main.c:357
msgid " -p, --print-data-base Print make's internal database.\n"
msgstr ""
" -p, --print-data-base Se imprime la base de datos interna de "
"`make'.\n"
-#: main.c:347
-#, fuzzy
+#: main.c:359
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
msgstr ""
" -q, --question No se ejecutan las instrucciones; el "
"estado de salida\n"
-"indicará si están actualizados.\n"
+" indicará si están actualizados.\n"
# ¿desabilitan o deshabilitan? sv
# Error de dedo. mm
# ¡ Por favor ! , ¿ pero qué es eso de interconstruidas ?
# Pon almacenadas internamente, que es exactamente lo que son :) em+
# Bueno, bajo protesta. mm
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr ""
" -r, --no-builtin-rules Se deshabilitan las reglas implícitas "
@@ -1091,18 +1257,17 @@ msgstr ""
# ¡ Por favor ! , ¿ pero qué es eso de interconstruidas ?
# Pon almacenadas internamente, que es exactamente lo que son :) em+
# Bueno, bajo protesta. mm
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr ""
" -R, --no-builtin-variables Se deshabilitan los ajustes a las variables "
"almacenadas internamente.\n"
-#: main.c:353
-#, fuzzy
+#: main.c:365
msgid " -s, --silent, --quiet Don't echo recipes.\n"
msgstr " -s, --silent, --quiet No muestra las intrucciones.\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
@@ -1115,22 +1280,31 @@ msgstr ""
#
# Pues entonces cámbialo arriba tambien em+
# En donde? mm
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
" -t, --touch Se tocan los objetivos en vez de "
"reconstruirlos.\n"
+# ¿"depurado" o "depuración"? sv
+# Puse de depurado para evitar la cacofonía información depuración.
+# Sugerencias bienvenidas. mm
+#: main.c:372
+#, fuzzy
+msgid " --trace Print tracing information.\n"
+msgstr ""
+" -d Se imprimirán grandes cantidades de información de depurado.\n"
+
# Me comería el "Se" inicial. "Muestra la versión..." sv
# Ok. mm
-#: main.c:360
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr ""
" -v, --version Muestra la versión del make y finaliza.\n"
# Lo mismo. sv
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
msgstr " -w, --print-directory Muestra el directorio actual.\n"
@@ -1139,7 +1313,7 @@ msgstr " -w, --print-directory Muestra el directorio actual.\n"
# apaga luz Mari Luz apaga luz ,que yo no puedo vivir con
# tanta luz ... ( canción tradicional ) ( no lo pude evitar ) em+
# Juar, Juar, Juar. Coincido, pero el sentido es el mismo. mm
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
@@ -1147,7 +1321,7 @@ msgstr ""
" --no-print-directory Desactiva -w, aún cuando haya sido activado "
"implícitamente.\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"
@@ -1158,7 +1332,7 @@ msgstr ""
# Lo mismo. sv
# Todas estas parecen descripciones de opciones.
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
@@ -1166,23 +1340,33 @@ msgstr ""
" --warn-undefined-variables Advierte cuando se hace una referencia a una "
"variable no definida.\n"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
msgstr "no se permite que una cadena vacía sea el nombre de un archivo"
-#: main.c:650
-#, c-format
-msgid "unknown debug level specification `%s'"
+#: main.c:734
+#, fuzzy, c-format
+msgid "unknown debug level specification '%s'"
msgstr "se especificó un nivel de depuración desconocido `%s'"
-#: main.c:690
-#, fuzzy, c-format
+#: main.c:777
+#, c-format
+msgid "unknown output-sync type '%s'"
+msgstr ""
+
+#: main.c:787
+#, fuzzy
+msgid "internal error: multiple --sync-mutex options"
+msgstr "error interno: hay varias opciones --jobserver-fds"
+
+#: main.c:848
+#, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
msgstr ""
-"%s: Se atrapó una interrupción/excepción (código = 0x%x, dirección = 0x%x)\n"
+"%s: Se atrapó una interrupción/excepción (código = 0x%lx, dirección = 0x%p)\n"
-#: main.c:697
-#, fuzzy, c-format
+#: main.c:855
+#, c-format
msgid ""
"\n"
"Unhandled exception filter called from program %s\n"
@@ -1192,109 +1376,132 @@ msgid ""
msgstr ""
"\n"
"Se ha llamado un filtro de excepción no manejado desde el programa %s\n"
-"Código de excepción %x\n"
-"Banderas de excepción %x\n"
-"Dirección de la excepción %x\n"
+"Código de la excepción = %lx\n"
+"Banderas de la excepción = %lx\n"
+"Dirección de la excepción = 0x%p\n"
-#: main.c:705
-#, fuzzy, c-format
+#: main.c:863
+#, c-format
msgid "Access violation: write operation at address 0x%p\n"
-msgstr "Violación de acceso: operación de escritura en la dirección %x\n"
+msgstr "Violación de acceso: operación de escritura en la dirección 0x%p\n"
-#: main.c:706
-#, fuzzy, c-format
+#: main.c:864
+#, c-format
msgid "Access violation: read operation at address 0x%p\n"
-msgstr "Violación de acceso: operación de lectura en la dirección %x\n"
+msgstr "Violación de acceso: operación de lectura en la dirección 0x%p\n"
-#: main.c:781 main.c:792
-#, fuzzy, c-format
+#: main.c:940 main.c:955
+#, c-format
msgid "find_and_set_shell() setting default_shell = %s\n"
-msgstr "la variable find_and_set_shell puesta como default_shell = %s\n"
+msgstr "la función find_and_set_shell() pone el valor del default_shell = %s\n"
-#: main.c:834
-#, fuzzy, c-format
+#: main.c:1008
+#, c-format
msgid "find_and_set_shell() path search set default_shell = %s\n"
msgstr ""
-"la ruta de búsqueda find_and_set_shell está puesta como default_shell = %s\n"
+"la función find_and_set_shell() pone el valor de la ruta de búsceda "
+"default_shell = %s\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr "%s está suspendida por 30 segundos..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr "se hizo un sleep(30). Continuando.\n"
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr ""
-"El archivo Makefile ha sido especificado dos veces desde la entrada estándard"
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr "fopen (archivo temporal)"
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr "fwrite (archivo temporal)"
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr ""
-"Los trabajos en paralelo (-j) no están implementados en esta plataforma."
-
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
-msgstr "Reajustando al modo monotarea (-j1)."
-
-#: main.c:1719
+#: main.c:1534
msgid "internal error: multiple --jobserver-fds options"
msgstr "error interno: hay varias opciones --jobserver-fds"
-#: 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
+#, fuzzy, c-format
+msgid "Jobserver client (semaphore %s)\n"
+msgstr "Cliente del servidor de tareas (fds %d,%d)\n"
+
+#: main.c:1551
+#, fuzzy, c-format
+msgid "internal error: invalid --jobserver-fds string '%s'"
msgstr "error interno: cadena --jobserver-fds inválida `%s'"
-#: main.c:1730
+#: main.c:1554
#, c-format
msgid "Jobserver client (fds %d,%d)\n"
-msgstr ""
+msgstr "Cliente del servidor de tareas (fds %d,%d)\n"
-#: main.c:1740
+#: main.c:1567
msgid "warning: -jN forced in submake: disabling jobserver mode."
msgstr ""
"atención: se fuerza a -jN en el submake: se deshabilita el modo de servidor "
"de tareas."
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
msgstr "servidor de tareas duplicado"
-#: 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 ""
"atención: el servidor de tareas no está disponible: se utilizará -j1. Añada `"
"+' a la regla padre del make."
-#: main.c:1777
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr ""
+"El archivo Makefile ha sido especificado dos veces desde la entrada estándard"
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (archivo temporal)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (archivo temporal)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr ""
+"Los trabajos en paralelo (-j) no están implementados en esta plataforma."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "Reajustando al modo monotarea (-j1)."
+
+#: main.c:2006
+#, fuzzy, c-format
+msgid "Jobserver slots limited to %d\n"
+msgstr "Cliente del servidor de tareas (fds %d,%d)\n"
+
+#: main.c:2012
+#, c-format
+msgid "creating jobserver semaphore: (Error %ld: %s)"
+msgstr ""
+
+#: main.c:2019
msgid "creating jobs pipe"
msgstr "creando una tubería de trabajos"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
msgstr "se inicializa la tubería al servidor de tareas"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
msgstr "Los enlaces simbólicos no están implementados: se deshabilitan con -L."
# Antes pusiste "makefiles". Coherencia. sv
# Cierto. mm
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr "Actualizando archivos makefiles....\n"
@@ -1304,61 +1511,61 @@ msgstr "Actualizando archivos makefiles....\n"
# Pondría ( como en un mensaje anterior ) se autoreferencia ... em+
# He puesto makefile con minúsculas , par ser coherentes em+
# Ok. Es más breve. mm.
-#: main.c: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 "El makefile `%s' se autoreferencia; por lo cual no se reconstruye.\n"
# Lo mismo. sv
-#: main.c:1996
-#, c-format
-msgid "Failed to remake makefile `%s'."
+#: main.c:2253
+#, fuzzy, c-format
+msgid "Failed to remake makefile '%s'."
msgstr "Fallo al reconstruir el makefile `%s'."
# Lo mismo. sv
-#: 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 "No se encontró el makefile incluído `%s'."
# Lo mismo. sv
-#: main.c:2018
-#, c-format
-msgid "Makefile `%s' was not found"
+#: main.c:2275
+#, fuzzy, c-format
+msgid "Makefile '%s' was not found"
msgstr "No se encontró el Makefile `%s'"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
msgstr "No se pudo regresar al directorio original."
-#: main.c:2102
+#: main.c:2354
#, c-format
msgid "Re-executing[%u]:"
msgstr "Re-ejecutando[%u]:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr "unlink (archivo temporal)"
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
msgstr ".DEFAULT_GOAL contien más de un objetivo"
# Sugerencia: "No se especificó ningún objetivo ... " sv
# Ok. Me gusta. mm
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
msgstr "No se especificó ningún objetivo y no se encontró ningún makefile"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "No hay objetivos"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
msgstr "Actualizando los objetivos finales....\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr ""
"atención: Se ha detectado una desviación en el reloj. La construcción podría "
@@ -1369,12 +1576,12 @@ msgstr ""
# "target" es "objetivo", no "objetivos". Fíjate que lleva puntos
# suspensivos, permitiendo así varios objetivos. sv
# Ok. mm
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
msgstr "Modo de empleo: %s [opciones] [objetivo] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
@@ -1383,7 +1590,7 @@ msgstr ""
"\n"
"Este programa fue construido para %s\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
@@ -1392,40 +1599,36 @@ msgstr ""
"\n"
"Este programa construido para %s (%s)\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
msgstr "Informe sobre los errores a <bug-make@gnu.org>\n"
# Me comería el "de" de "requiere de" sv
# Ok. mm
-#: main.c:2562
+#: main.c:2810
#, fuzzy, c-format
-msgid "the `%s%s' option requires a non-empty string argument"
-msgstr "la opción `-%c' requiere un argumento no-vacío de tipo cadena"
+msgid "the '%s%s' option requires a non-empty string argument"
+msgstr "la opción `%s%s' requiere un argumento no-vacío de tipo cadena"
# Me comería el "de" de "requiere de" sv
# Ok. mm
-#: 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 "la opción `-%c' requiere un argumento positivo y entero"
-#: main.c:3054
-#, fuzzy, c-format
+#: main.c:3253
+#, c-format
msgid "%sBuilt for %s\n"
-msgstr ""
-"\n"
-" %sEste programa fue construido para %s\n"
+msgstr "%sEste programa fue construido para %s\n"
-#: main.c:3056
-#, fuzzy, c-format
+#: main.c:3255
+#, c-format
msgid "%sBuilt for %s (%s)\n"
-msgstr ""
-"\n"
-"%sEste programa fue construido para %s (%s)\n"
+msgstr "%sEste programa fue construido para %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."
@@ -1433,8 +1636,14 @@ msgid ""
"%sThis is free software: you are free to change and redistribute it.\n"
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
+"%sLicencia GPLv3+: GNU GPL versión 3 o posterior <http://gnu.org/licenses/"
+"gpl.html>\n"
+"%sEste es software libre: cualquiera es libre para redistribuirlo y "
+"modificarlo.\n"
+"%sNo existe GARANTÍA ALGUNA, hasta los límites permitidos por las leyes "
+"aplicables.\n"
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
@@ -1448,7 +1657,7 @@ msgstr ""
# Porqué 'del', o pones 'del programa' Make o pones
# 'de Make' em+
# Ok. mm
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
@@ -1457,12 +1666,45 @@ msgstr ""
"\n"
"# Se termina la base de datos de Make en %s\n"
-#: main.c:3237
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "Error desconocido %d"
+
+# Propongo eliminar la palabra virtual. sv
+# Pero si es muy bonita. :) Bueno. Como ya platicamos puede que sea
+# una buena idea pero, por ahora la dejaría. mm
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "memoria virtual agotada"
+
+#: misc.c:522
+#, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s: usuario %lu (real %lu), grupo %lu (real %lu)\n"
+
+#: misc.c:543
+msgid "Initialized access"
+msgstr "Acceso inicializado"
+
+#: misc.c:622
+msgid "User access"
+msgstr "Acceso del usuario"
+
+#: misc.c:670
+msgid "Make access"
+msgstr "Acceso del Make"
+
+#: misc.c:704
+msgid "Child access"
+msgstr "Acceso del hijo"
+
+#: output.c:128
#, c-format
msgid "%s: Entering an unknown directory\n"
msgstr "%s: se ingresa a un directorio desconocido\n"
-#: main.c:3239
+#: output.c:130
#, c-format
msgid "%s: Leaving an unknown directory\n"
msgstr "%s: se sale del directorio desconocido\n"
@@ -1476,9 +1718,9 @@ msgstr "%s: se sale del directorio desconocido\n"
# else
# printf ("%s[%u]: %s ", program, makelevel, message);
# Como notarás lo del directorio va en otro lado.
-#: 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: se ingresa al directorio `%s'\n"
# Probablemente sea aquí donde haya que ponerle el "el" para que "Entering"
@@ -1490,17 +1732,17 @@ msgstr "%s: se ingresa al directorio `%s'\n"
# else
# printf ("%s[%u]: %s ", program, makelevel, message);
# Como notarás lo del directorio va en otro lado.
-#: 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: se sale del directorio `%s'\n"
-#: main.c:3250
+#: output.c:139
#, c-format
msgid "%s[%u]: Entering an unknown directory\n"
msgstr "%s[%u]: se ingresa a un directorio desconocido\n"
-#: main.c:3253
+#: output.c:141
#, c-format
msgid "%s[%u]: Leaving an unknown directory\n"
msgstr "%s[%u]: se sale del directorio desconocido\n"
@@ -1514,9 +1756,9 @@ msgstr "%s[%u]: se sale del directorio desconocido\n"
# else
# printf ("%s[%u]: %s ", program, makelevel, message);
# Como notarás lo del directorio va en otro lado.
-#: 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]: se ingresa al directorio `%s'\n"
# Probablemente sea aquí donde haya que ponerle el "el" para que "Entering"
@@ -1528,61 +1770,11 @@ msgstr "%s[%u]: se ingresa al directorio `%s'\n"
# else
# printf ("%s[%u]: %s ", program, makelevel, message);
# Como notarás lo del directorio va en otro lado.
-#: 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]: se sale del directorio `%s'\n"
-# Interrumpido (?). sv
-# Mmgmh... El mensaje indica que hubo algún error muy grave y que por
-# eso se detiene el make. Probablemente sea mejor dejarlo así. mm
-#: misc.c:316
-msgid ". Stop.\n"
-msgstr ". Alto.\n"
-
-#: misc.c:337
-#, c-format
-msgid "Unknown error %d"
-msgstr "Error desconocido %d"
-
-#: misc.c:347
-#, c-format
-msgid "%s%s: %s"
-msgstr "%s%s: %s"
-
-#: misc.c:355
-#, c-format
-msgid "%s: %s"
-msgstr "%s: %s"
-
-# Propongo eliminar la palabra virtual. sv
-# Pero si es muy bonita. :) Bueno. Como ya platicamos puede que sea
-# una buena idea pero, por ahora la dejaría. mm
-#: misc.c:376 misc.c:387 misc.c:402 misc.c:419 misc.c:438 read.c:3118
-msgid "virtual memory exhausted"
-msgstr "memoria virtual agotada"
-
-#: misc.c:708
-#, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s: usuario %lu (real %lu), grupo %lu (real %lu)\n"
-
-#: misc.c:729
-msgid "Initialized access"
-msgstr "Acceso inicializado"
-
-#: misc.c:808
-msgid "User access"
-msgstr "Acceso del usuario"
-
-#: misc.c:856
-msgid "Make access"
-msgstr "Acceso del Make"
-
-#: misc.c:890
-msgid "Child access"
-msgstr "Acceso del hijo"
-
# Probablemente sea aquí donde haya que ponerle el "el" para que "Entering"
# concuerde bien con esta frase y con la anterior simultáneamente. sv
# No. Ya revisé el fuente y transcribo el trozo pertinente:
@@ -1592,24 +1784,41 @@ msgstr "Acceso del hijo"
# else
# printf ("%s[%u]: %s ", program, makelevel, message);
# Como notarás lo del directorio va en otro lado.
-#: misc.c:954
+#: output.c:515
#, c-format
msgid "write error: %s"
msgstr "error al escribir: %s"
-#: misc.c:956
+#: output.c:517
msgid "write error"
msgstr "error al escribir"
+# Interrumpido (?). sv
+# Mmgmh... El mensaje indica que hubo algún error muy grave y que por
+# eso se detiene el make. Probablemente sea mejor dejarlo así. mm
+#: output.c:740
+msgid ". Stop.\n"
+msgstr ". Alto.\n"
+
+#: output.c:751
+#, c-format
+msgid "%s%s: %s"
+msgstr "%s%s: %s"
+
+#: output.c:759
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
# Sugerencia: eliminar la palabra "archivo". sv
# Ok. Mejora. mm
-#: read.c:179
+#: read.c:180
msgid "Reading makefiles...\n"
msgstr "Leyendo makefiles...\n"
#: read.c:333
-#, c-format
-msgid "Reading makefile `%s'"
+#, fuzzy, c-format
+msgid "Reading makefile '%s'"
msgstr "Leyendo makefile `%s'"
#: read.c:335
@@ -1632,14 +1841,28 @@ msgstr " (no importa)"
msgid " (no ~ expansion)"
msgstr " (no hay expansión del ~)"
+#: 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 ""
+
# ## Sintaxis no llevaba tilde.
# Ok. mm
-#: read.c:759
+#: read.c:786
msgid "invalid syntax in conditional"
msgstr "sintaxis no válida en condicional"
-#: read.c:891
-#, fuzzy
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr ""
+
+#: read.c:987
msgid "recipe commences before first target"
msgstr "las instrucciones comenzaron antes del primer objetivo"
@@ -1648,152 +1871,154 @@ msgstr "las instrucciones comenzaron antes del primer objetivo"
# Cierto pareciera que se perdió dentro de algún circuito. mm
# Falta 'la' regla em+
# No no es la regla sino una regla pues puede ser cualquiera de ellas. mm
-#: read.c:940
-#, fuzzy
+#: read.c:1036
msgid "missing rule before recipe"
msgstr "falta una regla antes de las instrucciones"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
msgstr "falta un separador%s"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
msgstr " (¿Quiere decir TAB en vez de 8 espacios?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
msgstr "falta un patrón de objetivos"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
msgstr "hay varios patrones de objetivos"
-#: read.c:1169
-#, c-format
-msgid "target pattern contains no `%%'"
+#: read.c:1269
+#, fuzzy, c-format
+msgid "target pattern contains no '%%'"
msgstr "el patrón de objetivo no contiene `%%'"
-#: read.c:1293
-msgid "missing `endif'"
+#: read.c:1391
+#, fuzzy
+msgid "missing 'endif'"
msgstr "falta un `endif'"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "nombre de variable vacío"
-#: read.c:1367
+#: read.c:1465
#, fuzzy
-msgid "extraneous text after `define' directive"
+msgid "extraneous text after 'define' directive"
msgstr ""
-"Hay un texto irrelevante o mal colocado después de la instrucción `endef'"
+"Hay un texto irrelevante o mal colocado después de la instrucción `define'"
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
+#: read.c:1490
+#, fuzzy
+msgid "missing 'endef', unterminated 'define'"
msgstr "falta un `endef', no se terminó un `define'"
-#: read.c:1420
+#: read.c:1518
#, fuzzy
-msgid "extraneous text after `endef' directive"
+msgid "extraneous text after 'endef' directive"
msgstr ""
"Hay un texto irrelevante o mal colocado después de la instrucción `endef'"
-#: read.c:1490
-#, c-format
-msgid "Extraneous text after `%s' directive"
+#: read.c:1589
+#, fuzzy, c-format
+msgid "extraneous text after '%s' directive"
msgstr "Texto irrelevante o mal colocado después de la instrucción `%s'"
-#: read.c:1499 read.c:1513
-#, c-format
-msgid "extraneous `%s'"
+#: read.c:1598 read.c:1612
+#, fuzzy, c-format
+msgid "extraneous '%s'"
msgstr "irrelevante o mal colocado `%s'"
-#: read.c:1518
-msgid "only one `else' per conditional"
+#: read.c:1617
+#, fuzzy
+msgid "only one 'else' per conditional"
msgstr "sólo se admite un `else' por condicional"
-#: read.c:1797
+#: read.c:1892
msgid "Malformed target-specific variable definition"
msgstr ""
"La definición de las variables específicas al blanco está mal construida"
-#: read.c:1855
-#, fuzzy
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
-msgstr "los prerequisitos no pueden ser definidos por guiones de instrucciones"
+msgstr ""
+"los prerequisitos no pueden ser definidos por los guiones de instrucciones"
-#: read.c:1908
+#: read.c:2009
msgid "mixed implicit and static pattern rules"
msgstr "las reglas implícitas y las de patrón estático están mezcladas"
# Y 'las' normales em+
# Ok. mm
-#: read.c:1931 read.c:2112
+#: read.c:2032 read.c:2220
msgid "mixed implicit and normal rules"
msgstr "las reglas implícitas y las normales están mezcladas"
-#: 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 "el archivo de objetivos `%s' no coincide con el patrón de objetivos"
-#: 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 "el archivo de objetivos `%s' tiene líneas con : y ::"
# Cambiaría given por 'proporcionó' o 'indicó' em+
# Ok. mm
-#: 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 "el objetivo `%s' se proporcionó más de una vez en la misma regla."
# No me gusta esta traducción de override. Mira a ver
# si encaja mejor alguna de las dos que se proponen arriba
# em+
# Aunque no me acaba de convencer, que te parece ésto? mm
-#: read.c:2006
+#: read.c:2114
#, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
-msgstr "atención: se imponen comandos para el objetivo `%s'"
+msgid "warning: overriding recipe for target '%s'"
+msgstr "atención: se imponen las instrucciones para el objetivo `%s'"
# Ojo con ignora. sv
-#: 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 "atención: se ignoran las instrucciones viejas para el objetivo `%s'"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
msgstr "atención: hay un carácter NUL; se ignora el resto de la línea"
-#: 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 "No se hace nada para `%s'."
-#: 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' está actualizado."
-#: remake.c:306
-#, c-format
-msgid "Pruning file `%s'.\n"
+#: remake.c:305
+#, fuzzy, c-format
+msgid "Pruning file '%s'.\n"
msgstr "Se continúa actualizando el archivo `%s'.\n"
# Sugerencia: No hay ninguna regla... sv
# Como una no hay ninguna. mm
-#: 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 "%sNo hay ninguna regla para construir el objetivo `%s'%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 ""
"%sNo hay ninguna regla para construir el objetivo `%s', necesario para `%s'%s"
@@ -1804,8 +2029,8 @@ msgstr ""
# se refiere a lo que dice Santiago, es decir, 'archivo objetivo' em+
# Ok creo que tienen razón. mm
#: remake.c:413
-#, c-format
-msgid "Considering target file `%s'.\n"
+#, fuzzy, c-format
+msgid "Considering target file '%s'.\n"
msgstr "Se considera el archivo objetivo `%s'.\n"
# Un compañero mío dice que una buena regla es poner siempre que se pueda
@@ -1815,58 +2040,58 @@ msgstr "Se considera el archivo objetivo `%s'.\n"
# ¿Qué te parece? sv
# Bien y tiene razón. mm
#: 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 "Se intentó, sin éxito, actualizar el archivo `%s'.\n"
#: remake.c:432
-#, c-format
-msgid "File `%s' was considered already.\n"
+#, fuzzy, c-format
+msgid "File '%s' was considered already.\n"
msgstr "El archivo `%s' ya fue considerado.\n"
#: remake.c:442
-#, c-format
-msgid "Still updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Still updating file '%s'.\n"
msgstr "Se continúa actualizando el archivo `%s'.\n"
#: remake.c:445
-#, c-format
-msgid "Finished updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Finished updating file '%s'.\n"
msgstr "Se terminó de actualizar el archivo `%s'.\n"
#: remake.c:474
-#, c-format
-msgid "File `%s' does not exist.\n"
+#, fuzzy, c-format
+msgid "File '%s' does not exist.\n"
msgstr "El archivo `%s' no existe.\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 ""
"*** Atención: el archivo .LOW_RESOLUTION_TIME `%s' tiene una resolución "
"demasiado alta"
-#: 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 "Se encontró una regla implícita para `%s'.\n"
# Se ha encontrado em+
# Ok, pero procuro evitar como a la muerte los gerundios. mm
-#: remake.c:496 remake.c: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 "No se ha encontrado una regla implícita para `%s'.\n"
# Por defecto, como haces arriba em+
# en efecto, mm
#: remake.c:502
#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
-msgstr "Se utilizan las instrucciones por defecto para `%s'.\n"
+msgid "Using default recipe for '%s'.\n"
+msgstr "Se utilizan las instrucciones por omisión para `%s'.\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
msgstr "Se elimina la dependencia circular %s <- %s."
@@ -1874,142 +2099,142 @@ msgstr "Se elimina la dependencia circular %s <- %s."
# Lo mismo de antes con "target file". sv
# Estoy de acuerdo con él ( por una vez ;) ) em+
# Ok. mm
-#: 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 "Se terminaron las dependencias del archivo objetivo `%s'.\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 "Se están construyendo las dependencias de `%s'.\n"
# Give up no es enfocar, es abandonar, o desistir em+
# Si, metí la pata. mm
-#: remake.c: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 "Se abandona el archivo objetivo `%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 "Debido a los errores, el objetivo `%s' no se reconstruyó."
-#: remake.c:727
-#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
+#: remake.c:731
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
msgstr "El prerequisito `%s' es posterior al objetivo `%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 "La dependencia `%s' del blanco `%s' no existe.\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 "La dependencia `%s' es más reciente que el objetivo `%s'.\n"
-#: remake.c:740
-#, c-format
-msgid "Prerequisite `%s' is older than target `%s'.\n"
-msgstr "La dependencia `%s' es posterior al objetivo `%s'.\n"
+#: remake.c:744
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is older than target '%s'.\n"
+msgstr "La dependencia `%s' es anterior al objetivo `%s'.\n"
# Ahorra espacio, y pon '::' en vez de eso :) em+
# Bueno, no es mala idea. A ver si te gusta lo que puse. mm
-#: remake.c:758
-#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
+#: remake.c:762
+#, fuzzy, c-format
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
msgstr ""
"El objetivo `%s' es de tipo dos puntos dos veces (::)\n"
"y no tiene dependencias.\n"
-#: remake.c:765
+#: remake.c:769
#, fuzzy, c-format
-msgid "No recipe for `%s' and no prerequisites actually changed.\n"
-msgstr "No hay instrucciones para `%s' y ninguna dependencia cambió.\n"
+msgid "No recipe for '%s' and no prerequisites actually changed.\n"
+msgstr "No hay instrucciones para `%s' y ningún prerrequisito ha cambiado.\n"
-#: 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 "Haciendo `%s' debido a la bandera always-make.\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 "No es necesario reconstruir el objetivo `%s'."
-#: remake.c:780
-#, c-format
-msgid "; using VPATH name `%s'"
+#: remake.c:784
+#, fuzzy, c-format
+msgid "; using VPATH name '%s'"
msgstr "; se usa el nombre del VPATH `%s'"
# Revisa todo el po con un search, y mira a ver si decides usar
# regenerar o reconstruir ( prefiero lo último 10000 veces ) em+
# Ok, buena propuesta. mm
-#: remake.c:800
-#, c-format
-msgid "Must remake target `%s'.\n"
+#: remake.c:804
+#, fuzzy, c-format
+msgid "Must remake target '%s'.\n"
msgstr "Se debe reconstruir el objetivo `%s'.\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 " Se ignora el nombre del VPATH `%s'.\n"
-#: remake.c:815
+#: remake.c:819
#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
+msgid "Recipe of '%s' is being run.\n"
msgstr "Las instrucciones de `%s' se están ejecutando.\n"
# Target file no es archivo de objetivos, sino el archivo objetivo
# make no tiene ningún archivo de objetivos em+
# Ok. mm
-#: 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 "Fallo al reconstruir el archivo objetivo `%s'.\n"
# Lo mismo em+
# Ok. mm
-#: 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 "Se reconstruyó con éxito el archivo objetivo `%s'.\n"
# Otra vez em+
# Ok, no te puedes quejar de falta de consistencia en este caso! mm
-#: remake.c:828
-#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
+#: remake.c:832
+#, fuzzy, c-format
+msgid "Target file '%s' needs to be remade under -q.\n"
msgstr "Se necesita reconstruir el archivo objetivo `%s' con la opción -q.\n"
# Por defecto, como haces arriba em+
# en efecto, mm
-#: 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 "Se utilizan las instrucciones por defecto para `%s'.\n"
# Ubicada :)) , que tal futura, a secas ? em+
# Bueno, sonaba como StarTrek, muy chido, pero acepto tu sugerencia. mm
-#: remake.c: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 "Atención: El archivo `%s' tiene una hora de modificación en el futuro"
# Ubicada :)) , que tal futura, a secas ? em+
# Bueno, sonaba como StarTrek, muy chido, pero acepto tu sugerencia. mm
-#: remake.c: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 ""
-"Atención: El archivo `%s' tiene una hora de modificación %.2g en el futuro"
+"Atención: El archivo `%s' tiene una hora de modificación %s s en el futuro"
-#: 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 "El elemento .LIBPATTERNS `%s' no es un patrón"
# ¿Las aduanas? sv
@@ -2024,12 +2249,12 @@ msgstr "El elemento .LIBPATTERNS `%s' no es un patrón"
# no se exportarán em+
# Muchísimo más claro (es más me gusta más en español que en inglés con tu
# arreglo) mm
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
msgstr "Los valores definidos por el usuario no se exportarán: %s\n"
-#: rule.c:499
+#: rule.c:496
msgid ""
"\n"
"# Implicit Rules"
@@ -2037,7 +2262,7 @@ msgstr ""
"\n"
"# Reglas implícitas."
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
@@ -2045,7 +2270,7 @@ msgstr ""
"\n"
"# No hay reglas implícitas."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -2054,7 +2279,7 @@ msgstr ""
"\n"
"# %u reglas implícitas, %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr " terminal."
@@ -2062,16 +2287,16 @@ msgstr " terminal."
# Gracias. mm
# ¿ qué tal erróneo ? em+
# Si, suena mejor. mm
-#: rule.c:534
-#, fuzzy, c-format
+#: rule.c:531
+#, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
msgstr "BUG: ¡num_pattern_rules erróneo! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "señal desconocida"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
msgstr "Colgado"
@@ -2079,25 +2304,25 @@ msgstr "Colgado"
# Porque es una acción. De hecho es un mensaje que se envía a través
# del sistema en este caso le enviarías un kill -INT num_proceso para
# interrumpir al programa. Lo revisé contra el fuente. mm
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "Interrumpir"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
msgstr "Finalizar"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
msgstr "Instrucción no válida"
# Los trap los hemos dejado como traps, simplemente. em+
# Ok. mm
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
msgstr "Trace/breakpoint trap"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "Abortado"
@@ -2105,13 +2330,13 @@ msgstr "Abortado"
# Enrique tiene esta misma frase en glibc. sv
# Eso es :) IOT trap em+
# Ok. mm
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
msgstr "IOT trap"
# Otra em+
# Ok. mm
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
msgstr "EMT trap"
@@ -2120,7 +2345,7 @@ msgstr "EMT trap"
# por eso usamos el punto flotante. Debemos llegar a un acuerdo.
# Por ahora pongo coma flotante para facilitar las cosas, pero bajo
# protesta ;-) mm
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
msgstr "Excepción de coma flotante"
@@ -2129,23 +2354,23 @@ msgstr "Excepción de coma flotante"
# Bueno, creo que mi traducción es más exacta, concisa y clara
# pero si insisten... Además recuerda en que estoy en un país
# en donde asesinado es palabra de todos los días. mm
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "Terminado (killed)"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr "Error en el bus"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "Fallo de segmentación"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "Llamada al sistema errónea"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr "Tubería rota"
@@ -2156,36 +2381,36 @@ msgstr "Tubería rota"
# Bueno, un alarm clock es una alarma del reloj. No tiene pierde.
# Temporizador es una bonita palabra pero en donde dice que va a
# sonar una campana para despertarte? mm
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "Alarma del reloj"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
msgstr "Finalizado"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr "Señal 1 definida por el usuario"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr "Señal 2 definida por el usuario"
# Proceso hijo terminado em+
# Ok. mm
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
msgstr "Proceso hijo terminado"
# Fallo. sv
# Alimentación eléctrico em+
# Ok. mm
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
msgstr "Falla de alimentación eléctrica"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "Detenido"
@@ -2196,30 +2421,30 @@ msgstr "Detenido"
# Requiere 'de';) , como te vea Santiago que le metes
# otro 'de' otra vez ... em+
# Ok. mm
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
msgstr "Detenido (se requiere entrada de terminal)"
# lo mismo, se requiere entrada de terminal , em+
# Ok. mm
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
msgstr "Detenido (se requiere salida de terminal)"
# idem em+
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "Detenido (se requiere una señal)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
msgstr "Se agotó el tiempo de CPU permitido"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
msgstr "Se excedió el tamaño máximo de archivo permitido"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
msgstr "El contador de tiempo virtual ha expirado"
@@ -2231,125 +2456,149 @@ msgstr "El contador de tiempo virtual ha expirado"
# Esto lo tengo en glibc, lo mirare otro día. Estos mensajes no son
# importantes em+
# Agregué unas palabras en aras de claridad (espero) mm
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
msgstr "El contador de tiempo para la generación del perfil ha expirado"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
msgstr "La ventana ha cambiado"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "Continuado"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
msgstr "Condición urgente de I/O"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
msgstr "Posible I/O"
-#: 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 "Recurso perdido"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "Señal de peligro"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr "Petición de información"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
msgstr "Coprocesador de punto flotante no disponible"
-#: 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
-#, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+#: strcache.c:266
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
msgstr ""
+"%s strcache utilizado: total = %d (%d) / máx = %d / mín = %d / promedio = "
+"%d\n"
-#: 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
-#, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+#: strcache.c:280
+#, fuzzy, c-format
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
msgstr ""
+"%s strcache utilizado: total = %d (%d) / máx = %d / mín = %d / promedio = "
+"%d\n"
-#: strcache.c:244
-#, fuzzy
+#: strcache.c:283
+#, fuzzy, c-format
msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
+msgstr ""
+"%s strcache libre: total = %d (%d) / máx = %d / mín = %d / promedio = %d\n"
+
+#: strcache.c:287
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
+msgstr ""
"\n"
-"# strcache hash-table stats:\n"
+"%s # de cadenas en strcache: %d / búsquedas = %lu / coincidencias = %lu\n"
+
+#: strcache.c:289
+#, fuzzy
+msgid ""
+"# hash-table stats:\n"
"# "
msgstr ""
"\n"
"# estadísticas de la tabla de hash de los archivos:\n"
"# "
-#: variable.c:1541
+# Lo he cmabiado em+
+# Ok. Deberíamos platicarlo con Ulrich. mm
+#: variable.c:1607
+msgid "automatic"
+msgstr "automática/o"
+
+#: variable.c:1610
msgid "default"
msgstr "por defecto"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr "entorno"
# Sugerencia: No poner archivo. sv
# Ok. mm
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr "makefile"
# 'bajo -e' = 'con -e activo' em+
# Ok. Esta inversión en los idiomas sajones se pega. mm
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
msgstr "con -e activo"
# Línea de comandos me parece correcto em+
# Ver arriba. Estoy de acuerdo si así han traducido en otros lados. mm
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr "línea de instrucciones"
# Creo que tendremos un problema con instrucción, comando
# , programa y directiva . Está claro que aquí es directiva em+
# Ok, pero no deja de sonar a RoboCop. A ver que te parece como quedó. mm
-#: variable.c:1556
-msgid "`override' directive"
+#: variable.c:1625
+#, fuzzy
+msgid "'override' directive"
msgstr "directiva de sobreposición `override'"
-# Lo he cmabiado em+
-# Ok. Deberíamos platicarlo con Ulrich. mm
-#: variable.c:1559
-msgid "automatic"
-msgstr "automática/o"
-
-#: variable.c:1570
-#, c-format
-msgid " (from `%s', line %lu)"
+#: variable.c:1636
+#, fuzzy, c-format
+msgid " (from '%s', line %lu)"
msgstr " (de `%s', línea %lu):"
# Bueno. Aquí un punto de discusión. Traduzco buckets por cubetas o
@@ -2357,11 +2606,11 @@ msgstr " (de `%s', línea %lu):"
# Estos mensajes son para debug, no creo que haga falta usar cubetas ;) em+
# Tienes razón, si el debugueador no lo entiende pues, ... que se
# dedique a otra cosa. mm
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
msgstr "# estadísticas del conjunto de variables de la tabla de hash:\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -2369,7 +2618,7 @@ msgstr ""
"\n"
"# Variables\n"
-#: variable.c:1627
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
@@ -2377,7 +2626,7 @@ msgstr ""
"\n"
"# Valores de variables específicas al patrón"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
@@ -2385,7 +2634,7 @@ msgstr ""
"\n"
"# No hay valores de variables específicas al patrón."
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
@@ -2396,59 +2645,59 @@ msgstr ""
# ¿Qué te parece "atención"? Lo hemos usado mucho en otros programas. sv
# Pero que bestia soy. Perdón por el desbarre. mm
-#: variable.h:219
-#, c-format
-msgid "warning: undefined variable `%.*s'"
+#: variable.h:224
+#, fuzzy, c-format
+msgid "warning: undefined variable '%.*s'"
msgstr "atención: la variable `%.*s' no ha sido definida"
-#: vmsfunctions.c:92
-#, fuzzy, c-format
+#: vmsfunctions.c:91
+#, c-format
msgid "sys$search() failed with %d\n"
-msgstr "fallo en sys$search con %d\n"
+msgstr "fallo en sys$search() con %d\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr "Atención: redirección vacía\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 "error interno: `%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 "-atención, deberás rehabilitar el manejo del CTRL-Y desde el DCL.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr "INTERCONSTRUIDO [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr "CD INTERCONSTRUIDO %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr "RM INTERCONSTRUIDO %s\n"
# Por defecto, como haces arriba em+
# en efecto, mm
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
msgstr "Instrucción interconstruida desconocida `%s'.\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr "Error, comando vacío\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr "Entrada redirigida desde %s\n"
@@ -2462,41 +2711,41 @@ msgstr "Entrada redirigida desde %s\n"
# else
# printf ("%s[%u]: %s ", program, makelevel, message);
# Como notarás lo del directorio va en otro lado.
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr "Se redirecciona el error a %s\n"
-#: vmsjobs.c:523
-#, fuzzy, c-format
+#: vmsjobs.c:518
+#, c-format
msgid "Append output to %s\n"
msgstr "Salida redirigida a %s\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
msgstr "Salida redirigida a %s\n"
-#: vmsjobs.c:599
+#: vmsjobs.c:593
#, c-format
msgid "Append %.*s and cleanup\n"
-msgstr ""
+msgstr "Agregada a %.*s y limpieza\n"
# "en sustituto" me suena muy raro. Propongo: "en su lugar" en su lugar :-) sv
# Ok. mm
-#: vmsjobs.c:606
+#: vmsjobs.c:600
#, c-format
msgid "Executing %s instead\n"
msgstr "En su lugar, se ejecuta %s\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr "Error al lanzar el proceso %d\n"
# ¿Y al revés?: Rutas de búsqueda VPATH. sv
# Mejora
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
@@ -2506,39 +2755,78 @@ msgstr ""
# Rutas creo que queda mejor. sv
# Ok. Es más común. mm
-#: vpath.c:603
-msgid "# No `vpath' search paths."
+#: vpath.c:600
+#, fuzzy
+msgid "# No 'vpath' search paths."
msgstr "# No hay rutas de búsqueda `vpath'."
# ¡Ah! Aquí si que pones el vpath al final, ¿eh? :-) sv
# You really got me! mm
-#: 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 rutas de búsqueda `vpath'.\n"
-#: vpath.c:608
+#: vpath.c:605
+#, fuzzy
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
"# No hay ruta de búsqueda general (variable `VPATH')."
-#: vpath.c:614
+#: vpath.c:611
+#, fuzzy
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
"# Ruta de búsqueda general (variable `VPATH'):\n"
"# "
+# ## Le he añadido un "¡" con tu permiso.
+# Gracias. No lo puse porque no se como poner ese símbolo con el
+# iso-accents-mode y luego se me olvidó. Por cierto, como se hace?
+# también tengo duda de la interrogación abierta.
+#~ msgid "# Invalid value in `update_status' member!"
+#~ msgstr "# ¡Valor inválido en el miembro `update_status'!"
+
+# Lo mismo. sv
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] Error 0x%x (no tiene efecto)"
+
+# Lo mismo. sv
+#~ msgid "[%s] Error %d (ignored)"
+#~ msgstr "[%s] Error %d (no tiene efecto)"
+
+#~ msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
+#~ msgstr ""
+#~ "Se invocan la instrucciones desde %s:%lu para actualizar el objetivo `"
+#~ "%s'.\n"
+
+#~ msgid "Invoking builtin recipe to update target `%s'.\n"
+#~ msgstr ""
+#~ "Se utilizan las instrucciones internas para actualizar al objetivo `%s'.\n"
+
+#~ msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+#~ msgstr "%s # de búfers strcache: %d (* %d B/búfer = %d B)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "# strcache hash-table stats:\n"
+#~ "# "
+#~ msgstr ""
+#~ "\n"
+#~ "# estadísticas de la tabla de hash:\n"
+#~ "# "
+
#~ msgid "Do not specify -j or --jobs if sh.exe is not available."
#~ msgstr "No especifique -j o --jobs si sh.exe no está disponible."
@@ -2760,11 +3048,6 @@ msgstr ""
#~ msgid "intermediate"
#~ msgstr "intermedia"
-# Preferiría mil veces "sin efecto" o algo parecido. sv
-# Ok. Habíamos quedado en `no tiene efecto'. mm
-#~ msgid " (ignored)"
-#~ msgstr " (no tiene efecto)"
-
# Protestar al autor. No hay forma de poner trabajo(s) desconocido(s)
# con coherencia. sv
# Si, si no tienen identificado a su padre. Ni modo. mm
diff --git a/po/fi.gmo b/po/fi.gmo
index cc9ea0c..f950a1c 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index b85fbc4..efd8db2 100644
--- 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ä."
diff --git a/po/fr.gmo b/po/fr.gmo
index 85109c0..89271db 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 4b38b22..a652fcc 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -6,124 +6,132 @@
# Marc Baudoin <babafou@ensta.fr>, Frédéric Liné <line@MicroNet.fr>, 1996.
# Michel Robitaille <robitail@IRO.UMontreal.CA>, 1996-2006
# Christophe Combelles <ccomb@free.fr>, 2009, 2010
+# Kevin Raymond <shaiton@fedoraproject.org>, 2012
#
msgid ""
msgstr ""
-"Project-Id-Version: GNU make 3.81.91\n"
+"Project-Id-Version: GNU make 3.82\n"
"Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2010-07-28 01:42-0400\n"
-"PO-Revision-Date: 2010-07-23 01:02+0100\n"
-"Last-Translator: Christophe Combelles <ccomb@free.fr>\n"
+"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"PO-Revision-Date: 2012-02-27 23:05+0100\n"
+"Last-Translator: Kevin Raymond <shaiton@fedoraproject.org>\n"
"Language-Team: French <traduc@traduc.org>\n"
+"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: ar.c:48
-#, c-format
-msgid "attempt to use unsupported feature: `%s'"
-msgstr "tentative d'utiliser une caractéristique non prise en charge : « %s »"
+#: ar.c:46
+#, fuzzy, c-format
+msgid "attempt to use unsupported feature: '%s'"
+msgstr "tentative d'utiliser une caractéristique non prise en charge : « %s »"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
msgstr "impossible de modifier la date d'un membre d'une archive sur VMS"
-#: ar.c:149
-#, c-format
-msgid "touch: Archive `%s' does not exist"
-msgstr "touch : l'archive « %s » n'existe pas"
+#: ar.c:147
+#, fuzzy, c-format
+msgid "touch: Archive '%s' does not exist"
+msgstr "touch : l'archive « %s » n'existe pas"
-#: ar.c:152
-#, c-format
-msgid "touch: `%s' is not a valid archive"
-msgstr "touch : « %s » n'est pas une archive valide"
+#: ar.c:150
+#, fuzzy, c-format
+msgid "touch: '%s' is not a valid archive"
+msgstr "touch : « %s » n'est pas une archive valide"
-#: ar.c:159
-#, c-format
-msgid "touch: Member `%s' does not exist in `%s'"
-msgstr "touch : le membre « %s » n'existe pas dans « %s »"
+#: ar.c:157
+#, fuzzy, c-format
+msgid "touch: Member '%s' does not exist in '%s'"
+msgstr "touch : le membre « %s » n'existe pas dans « %s »"
-#: ar.c:166
-#, c-format
-msgid "touch: Bad return code from ar_member_touch on `%s'"
-msgstr "touch : mauvais code de retour de ar_member_touch pour « %s »"
+#: ar.c:164
+#, fuzzy, c-format
+msgid "touch: Bad return code from ar_member_touch on '%s'"
+msgstr "touch : mauvais code de retour de ar_member_touch pour « %s »"
-#: arscan.c:69
+#: arscan.c:67
#, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
msgstr "lbr$set_module() n'a pas pu extraire les infos du module. Code = %d"
-#: arscan.c:175
+#: arscan.c:173
#, c-format
msgid "lbr$ini_control() failed with status = %d"
msgstr "lbr$ini_control() a échoué avec un code = %d"
-#: arscan.c:187
-#, c-format
-msgid "unable to open library `%s' to lookup member `%s'"
-msgstr "impossible d'ouvrir la bibliothèque %s pour récupérer le membre « %s »"
+#: arscan.c:185
+#, fuzzy, c-format
+msgid "unable to open library '%s' to lookup member '%s'"
+msgstr "impossible d'ouvrir la bibliothèque %s pour récupérer le membre « %s »"
-#: arscan.c:850
-#, c-format
-msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n"
-msgstr "Membre `%s'%s : %ld octets à %ld (%ld).\n"
+#: arscan.c:847
+#, fuzzy, c-format
+msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
+msgstr "Membre `%s'%s : %ld octets à %ld (%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr " (le nom peut être tronqué)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Date %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d, gid = %d, mode = 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 "*** Break.\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] le membre d'archive « %s » peut avoir un problème ; il n'a pas été "
+"*** [%s] le membre d'archive « %s » peut avoir un problème ; il n'a pas été "
"supprimé"
-#: 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 ""
-"*** Le membre d'archive « %s » peut avoir un problème; il n'a pas été supprimé"
+"*** Le membre d'archive « %s » peut avoir un problème; il n'a pas été "
+"supprimé"
-#: commands.c:638
-#, c-format
-msgid "*** [%s] Deleting file `%s'"
-msgstr "*** [%s] Suppression du fichier « %s »"
+#: commands.c:646
+#, fuzzy, c-format
+msgid "*** [%s] Deleting file '%s'"
+msgstr "*** [%s] Suppression du fichier « %s »"
-#: commands.c:640
-#, c-format
-msgid "*** Deleting file `%s'"
-msgstr "*** Suppression du fichier « %s »"
+#: commands.c:648
+#, fuzzy, c-format
+msgid "*** Deleting file '%s'"
+msgstr "*** Suppression du fichier « %s »"
-#: commands.c:676
+#: commands.c:684
msgid "# recipe to execute"
msgstr "# recette à exécuter"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
-msgstr " (commande interne):"
+msgstr " (commande interne) :"
-#: commands.c:681
-#, c-format
-msgid " (from `%s', line %lu):\n"
-msgstr " (de « %s », ligne %lu) :\n"
+#: commands.c:689
+#, fuzzy, c-format
+msgid " (from '%s', line %lu):\n"
+msgstr " (de « %s », ligne %lu) : \n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -131,226 +139,230 @@ msgstr ""
"\n"
"# Répertoires\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
-msgstr "# %s : « stat » impossible.\n"
+msgstr "# %s: « stat » impossible.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
-msgstr "# %s (clé %s, mtime %d) : ouverture impossible.\n"
+msgstr "# %s (clé %s, mtime %d) : ouverture impossible.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
-msgstr "# %s (périphérique %d, inode [%d,%d,%d]) : ouverture impossible.\n"
+msgstr "# %s (périphérique %d, inode [%d,%d,%d]) : ouverture impossible.\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
-msgstr "# %s (périphérique %ld, inode %ld) : ouverture impossible.\n"
+msgstr "# %s (périphérique %ld, inode %ld) : ouverture impossible.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
-msgstr "# %s (périphérique %s, mtime %d) : "
+msgstr "# %s (périphérique %s, mtime %d) : "
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
-msgstr "# %s (périphérique %d, inode [%d,%d,%d]) : "
+msgstr "# %s (périphérique %d, inode [%d,%d,%d]) : "
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
-msgstr "# %s (périphérique %ld, inode %ld) : "
+msgstr "# %s (périphérique %ld, inode %ld) : "
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "Aucun"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " fichier(s), "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "aucune"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
msgstr " impossibilité(s)"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr " jusqu'ici."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
msgstr " impossibilités dans %lu répertoires.\n"
-#: expand.c:127
-#, c-format
-msgid "Recursive variable `%s' references itself (eventually)"
-msgstr "La variable récursive « %s » se référence elle-même (finalement)"
+#: expand.c:125
+#, fuzzy, c-format
+msgid "Recursive variable '%s' references itself (eventually)"
+msgstr "La variable récursive « %s » se référence elle-même (finalement)"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
msgstr "référence incomplète à une variable"
-#: file.c:267
-#, c-format
-msgid "Recipe was specified for file `%s' at %s:%lu,"
-msgstr "Une recette a été spécifiée pour le fichier « %s » à %s:%lu,"
+#: file.c:269
+#, fuzzy, c-format
+msgid "Recipe was specified for file '%s' at %s:%lu,"
+msgstr "Une recette a été spécifiée pour le fichier « %s » à %s:%lu,"
-#: file.c:272
-#, c-format
-msgid "Recipe for file `%s' was found by implicit rule search,"
+#: file.c:274
+#, fuzzy, c-format
+msgid "Recipe for file '%s' was found by implicit rule search,"
msgstr ""
-"La recette pour le fichier « %s » a été trouvée par une recherche de règle "
+"La recette pour le fichier « %s » a été trouvée par une recherche de règle "
"implicite,"
-#: 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 ""
-"mais « %s » est maintenant considéré comme étant le même fichier que « %s »."
+"mais « %s » est maintenant considéré comme étant le même fichier que « %s »."
-#: file.c:278
-#, c-format
-msgid "Recipe for `%s' will be ignored in favor of the one for `%s'."
-msgstr "La recette pour « %s » sera ignorée en faveur de celle pour « %s »."
+#: file.c:280
+#, fuzzy, c-format
+msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
+msgstr "La recette pour « %s » sera ignorée en faveur de celle pour « %s »."
-#: file.c:298
-#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
+#: file.c:300
+#, fuzzy, c-format
+msgid "can't rename single-colon '%s' to double-colon '%s'"
msgstr ""
-"impossible de renommer le deux-points simple « %s » en deux-points double « %s "
-"»"
+"impossible de renommer le deux-points simple « %s » en deux-points double "
+"« %s »"
-#: file.c:303
-#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
+#: file.c:305
+#, fuzzy, c-format
+msgid "can't rename double-colon '%s' to single-colon '%s'"
msgstr ""
-"impossible de renommer le deux-points double « %s » en deux-points simple « %s "
-"»"
-
-#: file.c:392
-#, c-format
-msgid "*** Deleting intermediate file `%s'"
-msgstr "*** Suppression du fichier intermédiaire « %s »"
+"impossible de renommer le deux-points double « %s » en deux-points simple "
+"« %s »"
#: file.c:396
+#, fuzzy, c-format
+msgid "*** Deleting intermediate file '%s'"
+msgstr "*** Suppression du fichier intermédiaire « %s »"
+
+#: file.c:400
msgid "Removing intermediate files...\n"
msgstr "Suppression des fichiers intermédiaires...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
-msgstr "%s : horodatage hors limite ; remplacement par %s"
+msgstr "%s: horodatage hors limite ; remplacement par %s"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "Heure actuelle"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
-msgstr "# Pas une cible :"
+msgstr "# Pas une cible :"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
msgstr "# Fichier précieux (dépendance de .PRECIOUS)."
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
msgstr "# Cible factice (dépendance de .PHONY)."
-#: file.c:933
+#: file.c:958
msgid "# Command line target."
msgstr "# Cible de la ligne de commande."
-#: file.c:935
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
msgstr "# Une valeur par défaut, MAKEFILES ou -include/sinclude makefile."
-#: file.c:937
+#: file.c:962
+#, fuzzy
+msgid "# Builtin rule"
+msgstr ""
+"\n"
+"# Pas de règle implicite."
+
+#: file.c:964
msgid "# Implicit rule search has been done."
msgstr "# La recherche de règle implicite a été effectuée."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
msgstr "# La recherche de règle implicite n'a pas été effectuée."
-#: file.c:940
-#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
-msgstr "# Préfixe de motif implicite ou statique : « %s »\n"
+#: file.c:967
+#, fuzzy, c-format
+msgid "# Implicit/static pattern stem: '%s'\n"
+msgstr "# Préfixe de motif implicite ou statique : « %s »\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
msgstr "# Le fichier est une dépendance intermédiaire."
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
-msgstr "# Fabrique également :"
+msgstr "# Fabrique également :"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
msgstr "# Heure de modification jamais vérifiée."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# Le fichier n'existe pas."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr "# Le fichier est très ancien."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr "# Dernière modification %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# Le fichier a été mis à jour."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# Le fichier n'a pas été mis à jour."
-#: file.c:968
+#: file.c:995
msgid "# Recipe currently running (THIS IS A BUG)."
msgstr "# Recette en cours d'exécution (CECI EST UNE ANOMALIE)."
-#: file.c:971
+#: file.c:998
msgid "# Dependencies recipe running (THIS IS A BUG)."
msgstr ""
"# Recette de dépendances en cours d'exécution (CECI EST UNE ANOMALIE)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
msgstr "# Mise à jour réussie."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
-msgstr "# A besoin d'être mis à jour (l'option -q est activée)."
+msgstr "# À besoin d'être mis à jour (l'option -q est activée)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr "# N'a pas pu être mis à jour."
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# Valeur non valable dans le membre « update_status » !"
-
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
-msgstr "# Valeur non valable dans le membre « command_state » !"
+#: file.c:1019
+#, fuzzy
+msgid "# Invalid value in 'command_state' member!"
+msgstr "# Valeur non valable dans le membre « command_state » !"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -358,131 +370,189 @@ msgstr ""
"\n"
"# Fichiers"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
"# "
msgstr ""
"\n"
-"# stats des tables de hachage des fichiers :\n"
+"# stats des tables de hachage des fichiers :\n"
"# "
-#: function.c:758
-msgid "non-numeric first argument to `word' function"
-msgstr "le premier argument de la fonction « word » doit être numérique"
+#: 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 "le premier argument de la fonction « word » doit être numérique"
-#: function.c:763
-msgid "first argument to `word' function must be greater than 0"
-msgstr "le premier argument de la fonction « word » doit être plus grand que 0"
+#: function.c:747
+#, fuzzy
+msgid "first argument to 'word' function must be greater than 0"
+msgstr "le premier argument de la fonction « word » doit être plus grand que 0"
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
-msgstr "le premier argument de la fonction « wordlist » doit être numérique"
+#: function.c:767
+#, fuzzy
+msgid "non-numeric first argument to 'wordlist' function"
+msgstr "le premier argument de la fonction « wordlist » doit être numérique"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
-msgstr "le deuxième argument de la fonction « wordlist » doit être numérique"
+#: function.c:769
+#, fuzzy
+msgid "non-numeric second argument to 'wordlist' function"
+msgstr "le deuxième argument de la fonction « wordlist » doit être numérique"
-#: function.c:1458
-#, c-format
-msgid "windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"
+#: function.c:1460
+#, fuzzy, c-format
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
msgstr "windows32_openpipe(): DuplicateHandle(In) a échoué (e=%ld)\n"
-#: function.c:1469
-#, c-format
-msgid "windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"
+#: function.c:1483
+#, fuzzy, c-format
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
msgstr "windows32_open_pipe(): DuplicateHandle(Err) a échoué (e=%ld)\n"
-#: function.c:1474
+#: function.c:1490
#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
msgstr "CreatePipe() a échoué (e=%ld)\n"
-#: function.c:1479
+#: function.c:1498
msgid "windows32_openpipe(): process_init_fd() failed\n"
msgstr "windows32_openpipe(): process_init_fd() a échoué\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr "Nettoyage du fichier de commandes temporaire %s\n"
-#: function.c:2150
-#, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
-msgstr "nombre d'arguments insuffisant (%d) pour la fonction « %s »"
+#: function.c:2151
+#, fuzzy, c-format
+msgid "open: %s: %s"
+msgstr "%s: %s"
-#: function.c:2162
-#, c-format
-msgid "unimplemented on this platform: function `%s'"
-msgstr "non implémenté sur cette plateforme: fonction « %s »"
+#: function.c:2158
+#, fuzzy, c-format
+msgid "write: %s: %s"
+msgstr "erreur d'écriture : %s"
-#: function.c:2212
+#: function.c:2164
#, c-format
-msgid "unterminated call to function `%s': missing `%c'"
-msgstr "appel à la fonction « %s » non terminé : « %c » manquant"
+msgid "Invalid file operation: %s"
+msgstr ""
-#: getopt.c:661
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s : l'option « %s » est ambiguë\n"
+#: function.c:2279
+#, fuzzy, c-format
+msgid "insufficient number of arguments (%d) to function '%s'"
+msgstr "nombre d'arguments insuffisant (%d) pour la fonction « %s »"
-#: getopt.c:685
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s : l'option « --%s » ne prend pas d'argument\n"
+#: function.c:2291
+#, fuzzy, c-format
+msgid "unimplemented on this platform: function '%s'"
+msgstr "non implémenté sur cette plateforme: fonction « %s »"
-#: getopt.c:690
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s : l'option « %c%s » ne prend pas d'argument\n"
+#: function.c:2354
+#, fuzzy, c-format
+msgid "unterminated call to function '%s': missing '%c'"
+msgstr "appel à la fonction « %s » non terminé : « %c » manquant"
-#: getopt.c:707 getopt.c:880
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s : l'option « %s » nécessite un argument\n"
+#: function.c:2546
+msgid "Empty function name\n"
+msgstr ""
-#: getopt.c:736
+#: function.c:2548
#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s : option non reconnue « --%s »\n"
+msgid "Invalid function name: %s\n"
+msgstr ""
-#: getopt.c:740
+#: function.c:2550
#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s : option non reconnue « %c%s »\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 "nombre d'arguments insuffisant (%d) pour la fonction « %s »"
+
+#: function.c:2555
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "nombre d'arguments insuffisant (%d) pour la fonction « %s »"
+
+#: getopt.c:659
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: l'option « %s » est ambiguë\n"
+
+#: getopt.c:683
+#, fuzzy, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: l'option « --%s » ne prend pas d'argument\n"
+
+#: getopt.c:688
+#, fuzzy, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: l'option « %c%s » ne prend pas d'argument\n"
-#: getopt.c:766
+#: getopt.c:705 getopt.c:878
+#, fuzzy, c-format
+msgid "%s: option '%s' requires an argument\n"
+msgstr "%s: l'option « %s » nécessite un argument\n"
+
+#: getopt.c:734
+#, fuzzy, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: option non reconnue « --%s »\n"
+
+#: getopt.c:738
+#, fuzzy, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: option non reconnue « %c%s »\n"
+
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
-msgstr "%s : option non admise -- %c\n"
+msgstr "%s: option non admise -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
-msgstr "%s : option incorrecte -- %c\n"
+msgstr "%s: option incorrecte -- %c\n"
-#: getopt.c:799 getopt.c:929
+#: getopt.c:797 getopt.c:927
#, c-format
msgid "%s: option requires an argument -- %c\n"
-msgstr "%s : l'option nécessite un argument -- %c\n"
+msgstr "%s: l'option nécessite un argument -- %c\n"
-#: getopt.c:846
+#: getopt.c:844
+#, fuzzy, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: l'option « -W %s » est ambiguë\n"
+
+#: getopt.c:862
+#, fuzzy, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: l'option « -W %s » ne prend pas d'argument\n"
+
+#: guile.c:55
#, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
-msgstr "%s : l'option « -W %s » est ambiguë\n"
+msgid "guile: Expanding '%s'\n"
+msgstr ""
-#: getopt.c:864
+#: guile.c:71
#, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr "%s : l'option « -W %s » ne prend pas d'argument\n"
+msgid "guile: Evaluating '%s'\n"
+msgstr ""
#: hash.c:49
#, c-format
msgid "can't allocate %lu bytes for hash table: memory exhausted"
msgstr ""
-"impossible d'allouer %lu octets pour la table de hachage : mémoire épuisée"
+"impossible d'allouer %lu octets pour la table de hachage : mémoire épuisée"
#: hash.c:280
#, c-format
@@ -499,131 +569,155 @@ msgstr "Rehash=%d, "
msgid "Collisions=%ld/%ld=%.0f%%"
msgstr "Collisions=%ld/%ld=%.0f%%"
-#: implicit.c:40
-#, c-format
-msgid "Looking for an implicit rule for `%s'.\n"
-msgstr "Recherche d'une règle implicite pour « %s ».\n"
+#: implicit.c:38
+#, fuzzy, c-format
+msgid "Looking for an implicit rule for '%s'.\n"
+msgstr "Recherche d'une règle implicite pour « %s ».\n"
-#: implicit.c:56
-#, c-format
-msgid "Looking for archive-member implicit rule for `%s'.\n"
-msgstr "Recherche d'une règle implicite de membre d'archive pour « %s ».\n"
+#: implicit.c:54
+#, fuzzy, c-format
+msgid "Looking for archive-member implicit rule for '%s'.\n"
+msgstr "Recherche d'une règle implicite de membre d'archive pour « %s ».\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
-msgstr "Évitement de récursion dans une régle implicite.\n"
-
-#: implicit.c:491
-#, c-format
-msgid "Trying pattern rule with stem `%.*s'.\n"
-msgstr "Essai du motif avec « %.*s » comme radical.\n"
+msgstr "Évitement de récursion dans une règle implicite.\n"
-#: implicit.c:674
+#: implicit.c:486
#, c-format
-msgid "Rejecting impossible rule prerequisite `%s'.\n"
-msgstr "Rejet d'une dépendance de règle impossible « %s ».\n"
-
-#: implicit.c:675
-#, c-format
-msgid "Rejecting impossible implicit prerequisite `%s'.\n"
-msgstr "Rejet d'une dépendance implicite impossible « %s ».\n"
-
-#: implicit.c:688
-#, c-format
-msgid "Trying rule prerequisite `%s'.\n"
-msgstr "Essai de la dépendance de règle « %s ».\n"
+msgid "Stem too long: '%.*s'.\n"
+msgstr ""
-#: implicit.c:689
-#, c-format
-msgid "Trying implicit prerequisite `%s'.\n"
-msgstr "Essai de la dépendance implicite « %s ».\n"
+#: implicit.c:491
+#, fuzzy, c-format
+msgid "Trying pattern rule with stem '%.*s'.\n"
+msgstr "Essai du motif avec « %.*s » comme radical.\n"
+
+#: implicit.c:697
+#, fuzzy, c-format
+msgid "Rejecting impossible rule prerequisite '%s'.\n"
+msgstr "Rejet d'une dépendance de règle impossible « %s ».\n"
+
+#: implicit.c:698
+#, fuzzy, c-format
+msgid "Rejecting impossible implicit prerequisite '%s'.\n"
+msgstr "Rejet d'une dépendance implicite impossible « %s ».\n"
+
+#: implicit.c:711
+#, fuzzy, c-format
+msgid "Trying rule prerequisite '%s'.\n"
+msgstr "Essai de la dépendance de règle « %s ».\n"
+
+#: implicit.c:712
+#, fuzzy, c-format
+msgid "Trying implicit prerequisite '%s'.\n"
+msgstr "Essai de la dépendance implicite « %s ».\n"
+
+#: implicit.c:751
+#, fuzzy, c-format
+msgid "Found prerequisite '%s' as VPATH '%s'\n"
+msgstr "Dépendance trouvée « %s » comme VPATH « %s »\n"
+
+#: implicit.c:765
+#, fuzzy, c-format
+msgid "Looking for a rule with intermediate file '%s'.\n"
+msgstr "Recherche d'une règle contenant le fichier intermédaire « %s ».\n"
+
+#: job.c:361
+msgid "Cannot create a temporary file\n"
+msgstr "Impossible de créer un fichier temporaire\n"
-#: implicit.c:728
-#, c-format
-msgid "Found prerequisite `%s' as VPATH `%s'\n"
-msgstr "Dépendance trouvée « %s » comme VPATH « %s »\n"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (core dump créé)"
-#: implicit.c:742
-#, c-format
-msgid "Looking for a rule with intermediate file `%s'.\n"
-msgstr "Recherche d'une règle contenant le fichier intermédaire « %s ».\n"
+#: job.c:487
+msgid " (ignored)"
+msgstr " (ignorée)"
-#: job.c:335
-msgid "Cannot create a temporary file\n"
-msgstr "Impossible de créer un fichier temporaire\n"
+#: job.c:491 job.c:1994
+#, fuzzy
+msgid "<builtin>"
+msgstr " (commande interne) :"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] Erreur 0x%x (ignorée)"
+#: job.c:501
+#, fuzzy, c-format
+msgid "%s: recipe for target '%s' failed"
+msgstr "AVERTISSEMENT : surchargement de la recette pour la cible « %s »"
-#: job.c:450
-#, c-format
-msgid "*** [%s] Error 0x%x"
+#: job.c:510
+#, fuzzy, c-format
+msgid "%s[%s] Error 0x%x%s"
msgstr "*** [%s] Erreur 0x%x"
-#: job.c:454
-#, c-format
-msgid "[%s] Error %d (ignored)"
-msgstr "[%s] Erreur %d (ignorée)"
-
-#: job.c:455
-#, c-format
-msgid "*** [%s] Error %d"
+#: job.c:513
+#, fuzzy, c-format
+msgid "%s[%s] Error %d%s"
msgstr "*** [%s] Erreur %d"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (core dump créé)"
+#: 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 "*** Attente des tâches non terminées...."
-#: job.c:579
+#: job.c:639
#, c-format
msgid "Live child %p (%s) PID %s %s\n"
msgstr "Processus fils actif %p (%s) PID %s %s\n"
-#: 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 " (distant)"
-#: job.c:758
+#: job.c:829
#, c-format
msgid "Reaping losing child %p PID %s %s\n"
msgstr "Récolte du processus fils perdant %p PID %s %s\n"
-#: job.c:759
+#: job.c:830
#, c-format
msgid "Reaping winning child %p PID %s %s\n"
msgstr "Récolte du processus fils gagnant %p PID %s %s\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
msgstr "Nettoyage du fichier de commande temporaire %s\n"
-#: job.c:861
+#: job.c:843
+#, fuzzy, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "Nettoyage du fichier de commande temporaire %s\n"
+
+#: job.c:949
#, c-format
msgid "Removing child %p PID %s%s from chain.\n"
msgstr "Retrait du processus fils %p PID %s%s de la chaîne.\n"
-#: job.c:920
-msgid "write jobserver"
-msgstr "écriture vers le serveur de tâches"
+#: 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 "Jeton relâché pour le processus fils %p (%s).\n"
-#: job.c:1453 job.c:2094
+#: job.c:1023
+msgid "write jobserver"
+msgstr "écriture vers le serveur de tâches"
+
+#: job.c:1612 job.c:2332
#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
msgstr "process_easy() n'a pas pu lancer de processus (e=%ld)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
@@ -632,118 +726,179 @@ msgstr ""
"\n"
"%d arguments comptés lors du lancement échoué\n"
-#: job.c:1525
+#: job.c:1685
#, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
msgstr "Ajout du processus fils %p (%s) PID %s%s à la chaîne.\n"
-#: job.c: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 "Jeton obtenu pour le processus fils %p (%s).\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
msgstr "lecture du tube des processus"
-#: job.c:1798
-#, c-format
-msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
-msgstr "Invocation de recette de %s:%lu pour mettre à jour la cible « %s ».\n"
+#: job.c:2003
+#, fuzzy, c-format
+msgid "%s: target '%s' does not exist"
+msgstr "touch : l'archive « %s » n'existe pas"
-#: job.c:1802
-#, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
+#: job.c:2005
+#, fuzzy, c-format
+msgid "%s: update target '%s' due to: %s"
msgstr ""
-"Invocation de la recette incorporée pour mettre à jour la cible « %s ».\n"
+"%s Aucune règle pour fabriquer la cible « %s », nécessaire pour « %s »%s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
msgstr ""
"impossible d'imposer des limites de charge sur ce système d'exploitation"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
-msgstr "impossible d'imposer des limites de charge : "
+msgstr "impossible d'imposer des limites de charge : "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
msgstr ""
-"plus d'identificateur de fichier disponible : impossible de dupliquer stdin\n"
+"plus d'identificateur de fichier disponible : impossible de dupliquer stdin\n"
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
msgstr ""
-"plus d'identificateur de fichier disponible : impossible de dupliquer "
+"plus d'identificateur de fichier disponible : impossible de dupliquer "
"stdout\n"
-#: job.c:2015
+#: job.c:2223
+#, fuzzy
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr ""
+"plus d'identificateur de fichier disponible : impossible de dupliquer stdin\n"
+
+#: job.c:2238
msgid "Could not restore stdin\n"
msgstr "Impossible de restaurer stdin\n"
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
msgstr "Impossible de restaurer stdout\n"
-#: job.c:2127
+#: job.c:2254
+#, fuzzy
+msgid "Could not restore stderr\n"
+msgstr "Impossible de restaurer stdin\n"
+
+#: job.c:2365
#, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
msgstr ""
"make a récolté le processus fils pid %s, toujours en attente du pid %s\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
-msgstr "%s : commande introuvable"
+msgstr "%s: commande introuvable"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
-msgstr "%s : programme Shell introuvable"
+msgstr "%s: programme Shell introuvable"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
-msgstr "spawnvpe: l'espace d'environnement est peut-être épuisé"
+msgstr "spawnvpe : l'espace d'environnement est peut-être épuisé"
-#: job.c:2461
-#, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
-msgstr "$SHELL a été modifié (valait « %s », maintenant vaut « %s »)\n"
+#: job.c:2709
+#, fuzzy, c-format
+msgid "$SHELL changed (was '%s', now '%s')\n"
+msgstr "$SHELL a été modifié (valait « %s », vaut maintenant « %s »)\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr "Création d'un fichier de commande temporaire %s\n"
-#: job.c:2963
+#: job.c:3148
+#, fuzzy
+msgid ""
+"Batch file contents:\n"
+"\t@echo off\n"
+msgstr ""
+"Contenu du fichier Batch :%s\n"
+"\t%s\n"
+
+#: job.c:3337
#, c-format
msgid ""
"Batch file contents:%s\n"
"\t%s\n"
msgstr ""
-"Contenu du fichier Batch :%s\n"
+"Contenu du fichier Batch :%s\n"
"\t%s\n"
-#: job.c:3065
+#: job.c:3444
#, c-format
msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
msgstr ""
"%s (ligne %d) Mauvais contexte du shell (!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 ""
+"Les tâches en parallèle (-j) ne sont pas prises en charge sur cette "
+"plateforme."
+
+#: main.c:312
msgid "Options:\n"
-msgstr "Options :\n"
+msgstr "Options :\n"
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
msgstr " -b, -m Ignoré pour compatibilité.\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr ""
" -B, --always-make Fabriquer toutes les cibles sans condition.\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
@@ -752,19 +907,19 @@ msgstr ""
" Se placer dans le RÉPERTOIRE avant toute "
"action.\n"
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
msgstr ""
" -d Afficher beaucoup d'informations de débogage.\n"
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
-" --debug[=FLAGS] Afficher divers types d'informations de "
+" --debug[=FLAGS] Afficher divers types d'informations de "
"débogage.\n"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
@@ -773,14 +928,14 @@ msgstr ""
" Les variables d'environment sont prioritaires "
"sur les makefiles.\n"
-#: main.c:318
+#: main.c:327
msgid ""
" --eval=STRING Evaluate STRING as a makefile statement.\n"
msgstr ""
" --eval=CHAINE Evaluer la CHAINE comme une instruction de "
"makefile.\n"
-#: main.c:320
+#: main.c:329
msgid ""
" -f FILE, --file=FILE, --makefile=FILE\n"
" Read FILE as a makefile.\n"
@@ -788,16 +943,16 @@ msgstr ""
" -f FICHIER, --file=FICHIER, --makefile=FICHIER\n"
" Lire le FICHIER comme un makefile.\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
msgstr " -h, --help Afficher ce message et quitter.\n"
-#: main.c:325
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
msgstr ""
" -i, --ignore-errors Ignorer les erreurs venant des recettes.\n"
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
@@ -806,7 +961,7 @@ msgstr ""
" Chercher dans le RÉPERTOIRE les makefiles "
"traités par inclusion.\n"
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
@@ -814,14 +969,14 @@ msgstr ""
" -j [N], --jobs[=N] Autoriser N tâches simultanées ; nombre infini "
"si utilisé sans argument.\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 Poursuivre même si certaines cibles n'ont pas "
"pu être fabriquées.\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 "
@@ -831,15 +986,15 @@ msgstr ""
" Ne pas lancer de tâches multiples à moins que "
"la charge soit inférieure à N.\n"
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
msgstr ""
-" -L, --check-symlink-times Utiliser le « mtime » le plus récent entre les "
+" -L, --check-symlink-times Utiliser le « mtime » le plus récent entre les "
"liens symboliques et la cible.\n"
-#: main.c:339
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
@@ -849,7 +1004,7 @@ msgstr ""
" N'exécuter aucune recette ; seulement les "
"afficher.\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 "
@@ -859,12 +1014,18 @@ msgstr ""
" Considérer le FICHIER comme étant très ancien "
"et ne pas le refabriquer.\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 Afficher la base de données interne de make.\n"
-#: main.c:347
+#: main.c:359
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
@@ -872,22 +1033,22 @@ msgstr ""
" -q, --question Ne pas exécuter de recette ; le code de sortie "
"indique si la cible est à jour.\n"
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr ""
" -r, --no-builtin-rules Désactiver les règles implicites internes.\n"
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr ""
" -R, --no-builtin-variables Désactiver les réglages des variables "
"internes.\n"
-#: main.c:353
+#: main.c:365
msgid " -s, --silent, --quiet Don't echo recipes.\n"
msgstr " -s, --silent, --quiet Ne pas répéter les recettes.\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
@@ -895,24 +1056,30 @@ msgstr ""
" -S, --no-keep-going, --stop\n"
" Désactiver -k.\n"
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
" -t, --touch Assigner l'heure actuelle aux cibles au lieu "
"de les refabriquer.\n"
-#: main.c:360
+#: main.c:372
+#, fuzzy
+msgid " --trace Print tracing information.\n"
+msgstr ""
+" -d Afficher beaucoup d'informations de débogage.\n"
+
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr ""
" -v, --version Afficher le numéro de version de make et "
"quitter.\n"
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
msgstr " -w, --print-directory Afficher le répertoire courant.\n"
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
@@ -920,7 +1087,7 @@ msgstr ""
" --no-print-directory Désactiver l'option -w, même si elle a été "
"activée implicitement.\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"
@@ -929,7 +1096,7 @@ msgstr ""
" Considérer le FICHIER comme étant toujours "
"nouveau.\n"
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
@@ -937,22 +1104,32 @@ msgstr ""
" --warn-undefined-variables Prévenir lorsqu'une variable non définie est "
"référencée.\n"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
msgstr "une chaîne vide n'est pas un nom de fichier valable"
-#: main.c:650
+#: main.c:734
+#, fuzzy, c-format
+msgid "unknown debug level specification '%s'"
+msgstr "niveau de débogage inconnu « %s »"
+
+#: main.c:777
#, c-format
-msgid "unknown debug level specification `%s'"
-msgstr "niveau de débogage inconnu « %s »"
+msgid "unknown output-sync type '%s'"
+msgstr ""
-#: main.c:690
+#: main.c:787
+#, fuzzy
+msgid "internal error: multiple --sync-mutex options"
+msgstr "erreur interne : options --jobserver-fds multiples"
+
+#: main.c:848
#, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
msgstr ""
-"%s : interception de l'Interruption/Exception (code = 0x%lx, addr = 0x%p)\n"
+"%s: interception de l'interruption/exception (code = 0x%lx, addr = 0x%p)\n"
-#: main.c:697
+#: main.c:855
#, c-format
msgid ""
"\n"
@@ -967,211 +1144,233 @@ msgstr ""
"ExceptionFlags = %lx\n"
"ExceptionAddress = 0x%p\n"
-#: main.c:705
+#: main.c:863
#, c-format
msgid "Access violation: write operation at address 0x%p\n"
-msgstr "Violation d'accès : opération d'écriture à l'adresse 0x%p\n"
+msgstr "Violation d'accès : opération d'écriture à l'adresse 0x%p\n"
-#: main.c:706
+#: main.c:864
#, c-format
msgid "Access violation: read operation at address 0x%p\n"
-msgstr "Violation d'accès : opération de lecture à l'adresse 0x%p\n"
+msgstr "Violation d'accès : opération de lecture à l'adresse 0x%p\n"
-#: main.c:781 main.c:792
+#: main.c:940 main.c:955
#, c-format
msgid "find_and_set_shell() setting default_shell = %s\n"
msgstr "find_and_set_shell() définit default_shell = %s\n"
-#: main.c:834
+#: main.c:1008
#, c-format
msgid "find_and_set_shell() path search set default_shell = %s\n"
msgstr ""
"La recherche de chemin de find_and_set_shell() a définit default_shell = %s\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr "%s s'arrête pendant 30 secondes..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr "sleep(30) terminé. On continue.\n"
-#: main.c:1501
+#: main.c:1534
+msgid "internal error: multiple --jobserver-fds options"
+msgstr "erreur interne : options --jobserver-fds multiples"
+
+#: main.c:1544
+#, c-format
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
+msgstr ""
+
+#: main.c:1547
+#, fuzzy, c-format
+msgid "Jobserver client (semaphore %s)\n"
+msgstr "client Jobserver (fds %d,%d)\n"
+
+#: main.c:1551
+#, fuzzy, c-format
+msgid "internal error: invalid --jobserver-fds string '%s'"
+msgstr "erreur interne : chaîne --jobserver-fds incorrecte « %s » "
+
+#: main.c:1554
+#, c-format
+msgid "Jobserver client (fds %d,%d)\n"
+msgstr "client Jobserver (fds %d,%d)\n"
+
+#: main.c:1567
+msgid "warning: -jN forced in submake: disabling jobserver mode."
+msgstr ""
+"AVERTISSEMENT : -jN forcé dans un submake : désactivation du mode serveur de "
+"tâches."
+
+#: main.c:1583
+msgid "dup jobserver"
+msgstr "duplication du serveur de tâches"
+
+#: main.c:1586
+#, fuzzy
+msgid ""
+"warning: jobserver unavailable: using -j1. Add '+' to parent make rule."
+msgstr ""
+"AVERTISSEMENT : le serveur de tâches n'est pas disponible : utilisation de -"
+"j1. Ajouter « + » à la règle parent du make."
+
+#: main.c:1752
msgid "Makefile from standard input specified twice."
msgstr "Makefile depuis l'entrée standard spécifié deux fois."
-#: main.c:1539 vmsjobs.c:500
+#: main.c:1790 vmsjobs.c:496
msgid "fopen (temporary file)"
msgstr "fopen (fichier temporaire)"
-#: main.c:1545
+#: main.c:1796
msgid "fwrite (temporary file)"
msgstr "fwrite (fichier temporaire)"
-#: main.c:1703
+#: main.c:1984
msgid "Parallel jobs (-j) are not supported on this platform."
msgstr ""
"Les tâches en parallèle (-j) ne sont pas prises en charge sur cette "
"plateforme."
-#: main.c:1704
+#: main.c:1985
msgid "Resetting to single job (-j1) mode."
msgstr "On revient en mode monotâche (-j1)."
-#: main.c:1719
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "erreur interne : options --jobserver-fds multiples"
-
-#: main.c:1727
-#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
-msgstr "erreur interne : chaîne --jobserver-fds incorrecte « %s » "
-
-#: main.c:1730
-#, c-format
-msgid "Jobserver client (fds %d,%d)\n"
+#: main.c:2006
+#, fuzzy, c-format
+msgid "Jobserver slots limited to %d\n"
msgstr "client Jobserver (fds %d,%d)\n"
-#: main.c:1740
-msgid "warning: -jN forced in submake: disabling jobserver mode."
-msgstr ""
-"AVERTISSEMENT : -jN forcé dans un submake : désactivation du mode serveur de "
-"tâches."
-
-#: main.c:1750
-msgid "dup jobserver"
-msgstr "duplication du serveur de tâches"
-
-#: main.c:1753
-msgid ""
-"warning: jobserver unavailable: using -j1. Add `+' to parent make rule."
+#: main.c:2012
+#, c-format
+msgid "creating jobserver semaphore: (Error %ld: %s)"
msgstr ""
-"AVERTISSEMENT : le serveur de tâches n'est pas disponible: utilisation de -"
-"j1. Ajouter « + » à la règle parent du make."
-#: main.c:1777
+#: main.c:2019
msgid "creating jobs pipe"
msgstr "création d'un tube pour les tâches"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
msgstr "initialisation du tube du serveur de tâches"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
msgstr ""
-"Les liens symboliques ne sont pas pris en charge : désactivation de -L."
+"Les liens symboliques ne sont pas pris en charge : désactivation de -L."
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr "Mise à jour des makefiles....\n"
-#: main.c:1917
-#, c-format
-msgid "Makefile `%s' might loop; not remaking it.\n"
-msgstr "Le makefile « %s » peut boucler ; on ne refabrique pas.\n"
+#: main.c:2174
+#, fuzzy, c-format
+msgid "Makefile '%s' might loop; not remaking it.\n"
+msgstr "Le makefile « %s » peut boucler ; on ne refabrique pas.\n"
-#: main.c:1996
-#, c-format
-msgid "Failed to remake makefile `%s'."
-msgstr "Échec de refabrication du makefile « %s »."
+#: main.c:2253
+#, fuzzy, c-format
+msgid "Failed to remake makefile '%s'."
+msgstr "Échec de refabrication du makefile « %s »."
-#: main.c:2013
-#, c-format
-msgid "Included makefile `%s' was not found."
-msgstr "Le makefile inclus « %s » est introuvable."
+#: main.c:2270
+#, fuzzy, c-format
+msgid "Included makefile '%s' was not found."
+msgstr "Le makefile inclus « %s » est introuvable."
-#: main.c:2018
-#, c-format
-msgid "Makefile `%s' was not found"
-msgstr "Le makefile « %s » est introuvable"
+#: main.c:2275
+#, fuzzy, c-format
+msgid "Makefile '%s' was not found"
+msgstr "Le makefile « %s » est introuvable"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
msgstr "Impossible de revenir dans le répertoire d'origine."
-#: main.c:2102
+#: main.c:2354
#, c-format
msgid "Re-executing[%u]:"
-msgstr "Ré-exécution[%u] :"
+msgstr "Ré-exécution[%u] :"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr "unlink (fichier temporaire):"
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
msgstr ".DEFAULT_GOAL contient plus d'une cible"
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
msgstr "Pas de cible spécifiée et aucun makefile n'a été trouvé"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "Pas de cible"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
msgstr "Mise à jour des objectifs cibles....\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr ""
-"AVERTISSEMENT : décalage d'horloge détecté. La construction peut être "
+"AVERTISSEMENT : décalage d'horloge détecté. La construction peut être "
"incomplète."
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
-msgstr "Utilisation : %s [options] [cible] ...\n"
+msgstr "Utilisation : %s [options] [cible] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
"This program built for %s\n"
msgstr ""
"\n"
-"Ce programme a construit pour %s\n"
+"Ce programme est construit pour %s\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
"This program built for %s (%s)\n"
msgstr ""
"\n"
-"Ce programme a construit pour %s (%s)\n"
+"Ce programme est construit pour %s (%s)\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
-msgstr "Signaler les anomalies à <bug-make@gnu.org>.\n"
+msgstr "Signaler les anomalies à <bug-make@gnu.org>.\n"
-#: main.c:2562
-#, c-format
-msgid "the `%s%s' option requires a non-empty string argument"
-msgstr "l'option « %s%s » a besoin d'une chaîne non vide comme argument"
+#: main.c:2810
+#, fuzzy, c-format
+msgid "the '%s%s' option requires a non-empty string argument"
+msgstr "l'option « %s%s » a besoin d'une chaîne non vide comme argument"
-#: main.c:2617
-#, c-format
-msgid "the `-%c' option requires a positive integral argument"
-msgstr "l'option « -%c » prend en argument un entier positif"
+#: main.c:2864
+#, fuzzy, c-format
+msgid "the '-%c' option requires a positive integer argument"
+msgstr "l'option « -%c » prend en argument un entier positif"
-#: main.c:3054
+#: main.c:3253
#, c-format
msgid "%sBuilt for %s\n"
msgstr "%sConstruit pour %s\n"
-#: main.c:3056
+#: main.c:3255
#, c-format
msgid "%sBuilt for %s (%s)\n"
msgstr "%sConstruit pour %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."
@@ -1179,13 +1378,13 @@ msgid ""
"%sThis is free software: you are free to change and redistribute it.\n"
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
-"%sLicence GPLv3+ : GNU GPL version 3 ou ultérieure <http://gnu.org/licenses/"
+"%sLicence GPLv3+ : GNU GPL version 3 ou ultérieure <http://gnu.org/licenses/"
"gpl.html>\n"
-"%sCeci est un logiciel libre : vous êtes autorisé à le modifier et à la "
+"%sCeci est un logiciel libre : vous êtes autorisé à le modifier et à la "
"redistribuer.\n"
"%sIl ne comporte AUCUNE GARANTIE, dans la mesure de ce que permet la loi.\n"
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
@@ -1194,7 +1393,7 @@ msgstr ""
"\n"
"# Base de données de Make, imprimée le %s"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
@@ -1203,107 +1402,107 @@ msgstr ""
"\n"
"# Base de données de Make terminée le %s\n"
-#: main.c:3237
-#, c-format
-msgid "%s: Entering an unknown directory\n"
-msgstr "%s : on entre dans un répertoire inconnu\n"
-
-#: main.c:3239
-#, c-format
-msgid "%s: Leaving an unknown directory\n"
-msgstr "%s : on quitte un répertoire inconnu\n"
-
-#: main.c:3242
-#, c-format
-msgid "%s: Entering directory `%s'\n"
-msgstr "%s : on entre dans le répertoire « %s »\n"
-
-#: main.c:3245
-#, c-format
-msgid "%s: Leaving directory `%s'\n"
-msgstr "%s: on quitte le répertoire « %s »\n"
-
-#: main.c:3250
-#, c-format
-msgid "%s[%u]: Entering an unknown directory\n"
-msgstr "%s[%u] : on entre dans un répertoire inconnu\n"
-
-#: main.c:3253
-#, c-format
-msgid "%s[%u]: Leaving an unknown directory\n"
-msgstr "%s[%u] : on quitte un répertoire inconnu\n"
-
-#: main.c:3257
-#, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
-msgstr "%s[%u] : on entre dans le répertoire « %s »\n"
-
-#: main.c:3260
-#, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
-msgstr "%s[%u] : on quitte le répertoire « %s »\n"
-
-#: misc.c:316
-msgid ". Stop.\n"
-msgstr ". Arrêt.\n"
-
-#: misc.c:337
+#: misc.c:201
#, c-format
msgid "Unknown error %d"
msgstr "Erreur inconnue %d"
-#: misc.c:347
-#, c-format
-msgid "%s%s: %s"
-msgstr "%s%s : %s"
-
-#: misc.c:355
-#, 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
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
msgid "virtual memory exhausted"
msgstr "mémoire virtuelle épuisée"
-#: misc.c:708
+#: misc.c:522
#, c-format
msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s : utilisateur %lu (reél %lu), groupe %lu (réel %lu)\n"
+msgstr "%s: utilisateur %lu (reél %lu), groupe %lu (réel %lu)\n"
-#: misc.c:729
+#: misc.c:543
msgid "Initialized access"
msgstr "Accès initialisé"
-#: misc.c:808
+#: misc.c:622
msgid "User access"
msgstr "Accès utilisateur"
-#: misc.c:856
+#: misc.c:670
msgid "Make access"
msgstr "Accès de Make"
-#: misc.c:890
+#: misc.c:704
msgid "Child access"
msgstr "Accès des fils"
-#: misc.c:954
+#: output.c:128
+#, c-format
+msgid "%s: Entering an unknown directory\n"
+msgstr "%s: on entre dans un répertoire inconnu\n"
+
+#: output.c:130
+#, c-format
+msgid "%s: Leaving an unknown directory\n"
+msgstr "%s: on quitte un répertoire inconnu\n"
+
+#: output.c:133
+#, fuzzy, c-format
+msgid "%s: Entering directory '%s'\n"
+msgstr "%s: on entre dans le répertoire « %s »\n"
+
+#: output.c:135
+#, fuzzy, c-format
+msgid "%s: Leaving directory '%s'\n"
+msgstr "%s: on quitte le répertoire « %s »\n"
+
+#: output.c:139
+#, c-format
+msgid "%s[%u]: Entering an unknown directory\n"
+msgstr "%s[%u]: on entre dans un répertoire inconnu\n"
+
+#: output.c:141
+#, c-format
+msgid "%s[%u]: Leaving an unknown directory\n"
+msgstr "%s[%u]: on quitte un répertoire inconnu\n"
+
+#: output.c:144
+#, fuzzy, c-format
+msgid "%s[%u]: Entering directory '%s'\n"
+msgstr "%s[%u]: on entre dans le répertoire « %s »\n"
+
+#: output.c:146
+#, fuzzy, c-format
+msgid "%s[%u]: Leaving directory '%s'\n"
+msgstr "%s[%u]: on quitte le répertoire « %s »\n"
+
+#: output.c:515
#, c-format
msgid "write error: %s"
-msgstr "erreur d'écriture : %s"
+msgstr "erreur d'écriture : %s"
-#: misc.c:956
+#: output.c:517
msgid "write error"
msgstr "erreur d'écriture"
-#: read.c:179
+#: output.c:740
+msgid ". Stop.\n"
+msgstr ". Arrêt.\n"
+
+#: output.c:751
+#, c-format
+msgid "%s%s: %s"
+msgstr "%s%s: %s"
+
+#: output.c:759
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: read.c:180
msgid "Reading makefiles...\n"
msgstr "Lecture des makefiles...\n"
#: read.c:333
-#, c-format
-msgid "Reading makefile `%s'"
-msgstr "Lecture du makefile « %s »"
+#, fuzzy, c-format
+msgid "Reading makefile '%s'"
+msgstr "Lecture du makefile « %s »"
#: read.c:335
#, c-format
@@ -1325,335 +1524,356 @@ msgstr " (peu importe)"
msgid " (no ~ expansion)"
msgstr " (pas de remplacement du ~)"
-#: 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 "syntaxe incorrecte dans la condition"
-#: read.c:891
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr ""
+
+#: read.c:987
msgid "recipe commences before first target"
msgstr "La recette commence avant la première cible"
-#: read.c:940
+#: read.c:1036
msgid "missing rule before recipe"
msgstr "règle manquante avant la recette"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
msgstr "séparateur manquant %s"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
-msgstr " (vouliez-vous dire TAB au lieu des 8 espaces ?)"
+msgstr " (vouliez-vous dire TAB au lieu des 8 espaces ?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
msgstr "motif de cible manquant"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
msgstr "motifs de cible multiples"
-#: read.c:1169
-#, c-format
-msgid "target pattern contains no `%%'"
-msgstr "le motif de cible ne contient pas « %% »"
+#: read.c:1269
+#, fuzzy, c-format
+msgid "target pattern contains no '%%'"
+msgstr "le motif de cible ne contient pas « %% »"
-#: read.c:1293
-msgid "missing `endif'"
-msgstr "« endif » manquant"
+#: read.c:1391
+#, fuzzy
+msgid "missing 'endif'"
+msgstr "« endif » manquant"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "nom de variable vide"
-#: read.c:1367
-msgid "extraneous text after `define' directive"
-msgstr "Texte superflu après la directive « define »"
-
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
-msgstr "« endef » manquant, « define » non terminé"
-
-#: read.c:1420
-msgid "extraneous text after `endef' directive"
-msgstr "Texte superflu après la directive « endef »"
+#: read.c:1465
+#, fuzzy
+msgid "extraneous text after 'define' directive"
+msgstr "Texte superflu après la directive « define »"
#: read.c:1490
-#, c-format
-msgid "Extraneous text after `%s' directive"
-msgstr "Texte superflu après la directive « %s »"
-
-#: read.c:1499 read.c:1513
-#, c-format
-msgid "extraneous `%s'"
-msgstr "« %s » superflu"
+#, fuzzy
+msgid "missing 'endef', unterminated 'define'"
+msgstr "« endef » manquant, « define » non terminé"
#: read.c:1518
-msgid "only one `else' per conditional"
-msgstr "un seul « else » par condition"
-
-#: read.c:1797
+#, fuzzy
+msgid "extraneous text after 'endef' directive"
+msgstr "Texte superflu après la directive « endef »"
+
+#: read.c:1589
+#, fuzzy, c-format
+msgid "extraneous text after '%s' directive"
+msgstr "Texte superflu après la directive « %s »"
+
+#: read.c:1598 read.c:1612
+#, fuzzy, c-format
+msgid "extraneous '%s'"
+msgstr "« %s » superflu"
+
+#: read.c:1617
+#, fuzzy
+msgid "only one 'else' per conditional"
+msgstr "un seul « else » par condition"
+
+#: read.c:1892
msgid "Malformed target-specific variable definition"
msgstr "Définition malformée de variable spécifique à une cible"
-#: read.c:1855
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
msgstr "les prérequis ne peuvent être définis dans des recettes"
-#: read.c:1908
+#: read.c:2009
msgid "mixed implicit and static pattern rules"
msgstr "mélange de règles implicites et statiques pour le motif"
-#: read.c:1931 read.c:2112
+#: read.c:2032 read.c:2220
msgid "mixed implicit and normal rules"
msgstr "mélange de règles implicites et normales"
-#: read.c:1976
-#, c-format
-msgid "target `%s' doesn't match the target pattern"
-msgstr "la cible « %s » ne correspond pas au motif de cible"
+#: read.c:2084
+#, fuzzy, c-format
+msgid "target '%s' doesn't match the target pattern"
+msgstr "la cible « %s » ne correspond pas au motif de cible"
-#: read.c:1991 read.c:2036
-#, c-format
-msgid "target file `%s' has both : and :: entries"
-msgstr "le fichier cible « %s » possède à la fois des entrées : et ::"
+#: read.c:2099 read.c:2144
+#, fuzzy, c-format
+msgid "target file '%s' has both : and :: entries"
+msgstr "le fichier cible « %s » possède à la fois des entrées : et ::"
-#: read.c:1997
-#, c-format
-msgid "target `%s' given more than once in the same rule."
-msgstr "la cible « %s » apparaît plus d'une fois dans la même règle."
+#: read.c:2105
+#, fuzzy, c-format
+msgid "target '%s' given more than once in the same rule"
+msgstr "la cible « %s » apparaît plus d'une fois dans la même règle."
-#: read.c:2006
-#, c-format
-msgid "warning: overriding recipe for target `%s'"
-msgstr "AVERTISSEMENT : surchargement de la recette pour la cible « %s »"
+#: read.c:2114
+#, fuzzy, c-format
+msgid "warning: overriding recipe for target '%s'"
+msgstr "AVERTISSEMENT : surchargement de la recette pour la cible « %s »"
-#: read.c:2009
-#, c-format
-msgid "warning: ignoring old recipe for target `%s'"
-msgstr "AVERTISSEMENT : ancienne recette ignorée pour la cible « %s »"
+#: read.c:2117
+#, fuzzy, c-format
+msgid "warning: ignoring old recipe for target '%s'"
+msgstr "AVERTISSEMENT : ancienne recette ignorée pour la cible « %s »"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
msgstr ""
-"AVERTISSEMENT : caractère NUL détecté ; le reste de la ligne est ignoré"
+"AVERTISSEMENT : caractère NUL détecté ; le reste de la ligne est ignoré"
-#: remake.c:234
-#, c-format
-msgid "Nothing to be done for `%s'."
-msgstr "Rien à faire pour « %s »."
+#: remake.c:232
+#, fuzzy, c-format
+msgid "Nothing to be done for '%s'."
+msgstr "rien à faire pour « %s »."
-#: remake.c:235
-#, c-format
-msgid "`%s' is up to date."
-msgstr "« %s » est à jour."
+#: remake.c:233
+#, fuzzy, c-format
+msgid "'%s' is up to date."
+msgstr "« %s » est à jour."
-#: remake.c:306
-#, c-format
-msgid "Pruning file `%s'.\n"
-msgstr "Élagage du fichier « %s ».\n"
+#: remake.c:305
+#, fuzzy, c-format
+msgid "Pruning file '%s'.\n"
+msgstr "Élagage du fichier « %s ».\n"
-#: remake.c:359
-#, c-format
-msgid "%sNo rule to make target `%s'%s"
-msgstr "%sAucune règle pour fabriquer la cible « %s »%s"
+#: remake.c:377
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sAucune règle pour fabriquer la cible « %s »%s"
-#: remake.c:361
-#, c-format
-msgid "%sNo rule to make target `%s', needed by `%s'%s"
-msgstr "%s Aucune règle pour fabriquer la cible « %s », nécessaire pour « %s »%s"
+#: remake.c:379
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s', needed by '%s'%s"
+msgstr ""
+"%s Aucune règle pour fabriquer la cible « %s », nécessaire pour « %s »%s"
#: remake.c:413
-#, c-format
-msgid "Considering target file `%s'.\n"
-msgstr "Étude du fichier cible « %s ».\n"
+#, fuzzy, c-format
+msgid "Considering target file '%s'.\n"
+msgstr "Étude du fichier cible « %s ».\n"
#: remake.c:420
-#, c-format
-msgid "Recently tried and failed to update file `%s'.\n"
-msgstr "Tentative récente échouée de mettre à jour le fichier « %s ».\n"
+#, fuzzy, c-format
+msgid "Recently tried and failed to update file '%s'.\n"
+msgstr "Tentative récente échouée de mettre à jour le fichier « %s ».\n"
#: remake.c:432
-#, c-format
-msgid "File `%s' was considered already.\n"
-msgstr "Le fichier « %s » a déjà été étudié.\n"
+#, fuzzy, c-format
+msgid "File '%s' was considered already.\n"
+msgstr "Le fichier « %s » a déjà été étudié.\n"
#: remake.c:442
-#, c-format
-msgid "Still updating file `%s'.\n"
-msgstr "Mise à jour du fichier « %s » en cours.\n"
+#, fuzzy, c-format
+msgid "Still updating file '%s'.\n"
+msgstr "Mise à jour du fichier « %s » en cours.\n"
#: remake.c:445
-#, c-format
-msgid "Finished updating file `%s'.\n"
-msgstr "Fin de la mise à jour du fichier « %s ».\n"
+#, fuzzy, c-format
+msgid "Finished updating file '%s'.\n"
+msgstr "Fin de la mise à jour du fichier « %s ».\n"
#: remake.c:474
-#, c-format
-msgid "File `%s' does not exist.\n"
-msgstr "Le fichier « %s » n'existe pas.\n"
+#, fuzzy, c-format
+msgid "File '%s' does not exist.\n"
+msgstr "Le fichier « %s » n'existe pas.\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 ""
-"*** AVERTISSEMENT : le fichier .LOW_RESOLUTION_TIME « %s » a un horodatage à "
+"*** AVERTISSEMENT : le fichier .LOW_RESOLUTION_TIME « %s » a un horodatage à "
"haute résolution"
-#: remake.c:494 remake.c:1016
-#, c-format
-msgid "Found an implicit rule for `%s'.\n"
-msgstr "Règle implicite trouvée pour « %s ».\n"
+#: remake.c:494 remake.c:1019
+#, fuzzy, c-format
+msgid "Found an implicit rule for '%s'.\n"
+msgstr "Règle implicite trouvée pour « %s ».\n"
-#: remake.c:496 remake.c:1018
-#, c-format
-msgid "No implicit rule found for `%s'.\n"
-msgstr "Pas de règle implicite trouvée pour « %s ».\n"
+#: remake.c:496 remake.c:1021
+#, fuzzy, c-format
+msgid "No implicit rule found for '%s'.\n"
+msgstr "Pas de règle implicite trouvée pour « %s ».\n"
#: remake.c:502
-#, c-format
-msgid "Using default recipe for `%s'.\n"
-msgstr "Utilisation de la recette par défaut pour « %s ».\n"
+#, fuzzy, c-format
+msgid "Using default recipe for '%s'.\n"
+msgstr "Utilisation de la recette par défaut pour « %s ».\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
msgstr "Dépendance circulaire %s <- %s abandonnée."
-#: remake.c:651
-#, c-format
-msgid "Finished prerequisites of target file `%s'.\n"
-msgstr "Fin des dépendances du fichier cible « %s ».\n"
-
-#: remake.c:657
-#, c-format
-msgid "The prerequisites of `%s' are being made.\n"
-msgstr "Les dépendances de « %s » sont en cours de fabrication.\n"
-
-#: remake.c:670
-#, c-format
-msgid "Giving up on target file `%s'.\n"
-msgstr "Abandon sur le fichier cible « %s ».\n"
-
-#: remake.c:675
-#, c-format
-msgid "Target `%s' not remade because of errors."
-msgstr "La cible « %s » n'a pas été refabriquée à cause d'erreurs."
-
-#: remake.c:727
-#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
-msgstr "Le prérequis « %s » est seulement d'ordre pour la cible « %s ».\n"
-
-#: remake.c:732
-#, c-format
-msgid "Prerequisite `%s' of target `%s' does not exist.\n"
-msgstr "La dépendance « %s » de la cible « %s » n'existe pas.\n"
-
-#: remake.c:737
-#, c-format
-msgid "Prerequisite `%s' is newer than target `%s'.\n"
-msgstr "La dépendance « %s » est plus récente que la cible « %s ».\n"
-
-#: remake.c:740
-#, c-format
-msgid "Prerequisite `%s' is older than target `%s'.\n"
-msgstr "La dépendance « %s » est plus ancienne que la cible « %s ».\n"
-
-#: remake.c:758
-#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
-msgstr "La cible « %s » a un double deux-points et n'a pas de dépendance.\n"
-
-#: remake.c:765
-#, c-format
-msgid "No recipe for `%s' and no prerequisites actually changed.\n"
-msgstr "Pas de recette pour « %s » et aucune dépendance n'a changé.\n"
-
-#: remake.c:770
-#, c-format
-msgid "Making `%s' due to always-make flag.\n"
-msgstr "Fabrication de « %s » à cause de l'indicateur « always-make ».\n"
-
-#: remake.c:778
-#, c-format
-msgid "No need to remake target `%s'"
-msgstr "Inutile de refabriquer la cible « %s »."
-
-#: remake.c:780
-#, c-format
-msgid "; using VPATH name `%s'"
-msgstr "; utilisation du nom VPATH « %s »"
-
-#: remake.c:800
-#, c-format
-msgid "Must remake target `%s'.\n"
-msgstr "Il faut refabriquer la cible « %s ».\n"
-
-#: remake.c:806
-#, c-format
-msgid " Ignoring VPATH name `%s'.\n"
-msgstr " On ignore le nom VPATH « %s ».\n"
-
-#: remake.c:815
-#, c-format
-msgid "Recipe of `%s' is being run.\n"
-msgstr "La recette de « %s » est en cours d'exécution.\n"
-
-#: remake.c:822
-#, c-format
-msgid "Failed to remake target file `%s'.\n"
-msgstr "Échec de refabrication du fichier cible « %s ».\n"
-
-#: remake.c:825
-#, c-format
-msgid "Successfully remade target file `%s'.\n"
-msgstr "Refabrication réussie du fichier cible « %s ».\n"
-
-#: remake.c:828
-#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
-msgstr "Le fichier cible « %s » a besoin d'être refabriqué avec l'option -q.\n"
-
-#: remake.c:1024
-#, c-format
-msgid "Using default commands for `%s'.\n"
-msgstr "Utilisation des commandes par défaut pour « %s ».\n"
-
-#: remake.c:1357
-#, c-format
-msgid "Warning: File `%s' has modification time in the future"
-msgstr ""
-"AVERTISSEMENT : le fichier « %s » a une date de modification dans le futur"
-
-#: remake.c:1370
-#, c-format
-msgid "Warning: File `%s' has modification time %s s in the future"
-msgstr ""
-"AVERTISSEMENT : le fichier « %s » a une date de modification %s s dans le "
+#: remake.c:655
+#, fuzzy, c-format
+msgid "Finished prerequisites of target file '%s'.\n"
+msgstr "Fin des dépendances du fichier cible « %s ».\n"
+
+#: remake.c:661
+#, fuzzy, c-format
+msgid "The prerequisites of '%s' are being made.\n"
+msgstr "Les dépendances de « %s » sont en cours de fabrication.\n"
+
+#: remake.c:674
+#, fuzzy, c-format
+msgid "Giving up on target file '%s'.\n"
+msgstr "Abandon sur le fichier cible « %s ».\n"
+
+#: remake.c:679
+#, fuzzy, c-format
+msgid "Target '%s' not remade because of errors."
+msgstr "La cible « %s » n'a pas été refabriquée à cause d'erreurs."
+
+#: remake.c:731
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
+msgstr "Le prérequis « %s » est seulement d'ordre pour la cible « %s ».\n"
+
+#: remake.c:736
+#, fuzzy, c-format
+msgid "Prerequisite '%s' of target '%s' does not exist.\n"
+msgstr "La dépendance « %s » de la cible « %s » n'existe pas.\n"
+
+#: remake.c:741
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is newer than target '%s'.\n"
+msgstr "La dépendance « %s » est plus récente que la cible « %s ».\n"
+
+#: remake.c:744
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is older than target '%s'.\n"
+msgstr "La dépendance « %s » est plus ancienne que la cible « %s ».\n"
+
+#: remake.c:762
+#, fuzzy, c-format
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
+msgstr "La cible « %s » a un double deux-points et n'a pas de dépendance.\n"
+
+#: remake.c:769
+#, fuzzy, c-format
+msgid "No recipe for '%s' and no prerequisites actually changed.\n"
+msgstr "Pas de recette pour « %s » et aucune dépendance n'a changé.\n"
+
+#: remake.c:774
+#, fuzzy, c-format
+msgid "Making '%s' due to always-make flag.\n"
+msgstr "Fabrication de « %s » à cause de l'indicateur « always-make ».\n"
+
+#: remake.c:782
+#, fuzzy, c-format
+msgid "No need to remake target '%s'"
+msgstr "Inutile de refabriquer la cible « %s »."
+
+#: remake.c:784
+#, fuzzy, c-format
+msgid "; using VPATH name '%s'"
+msgstr "; utilisation du nom VPATH « %s »"
+
+#: remake.c:804
+#, fuzzy, c-format
+msgid "Must remake target '%s'.\n"
+msgstr "Il faut refabriquer la cible « %s ».\n"
+
+#: remake.c:810
+#, fuzzy, c-format
+msgid " Ignoring VPATH name '%s'.\n"
+msgstr " On ignore le nom VPATH « %s ».\n"
+
+#: remake.c:819
+#, fuzzy, c-format
+msgid "Recipe of '%s' is being run.\n"
+msgstr "La recette de « %s » est en cours d'exécution.\n"
+
+#: remake.c:826
+#, fuzzy, c-format
+msgid "Failed to remake target file '%s'.\n"
+msgstr "Échec de refabrication du fichier cible « %s ».\n"
+
+#: remake.c:829
+#, fuzzy, c-format
+msgid "Successfully remade target file '%s'.\n"
+msgstr "Refabrication réussie du fichier cible « %s ».\n"
+
+#: remake.c:832
+#, fuzzy, c-format
+msgid "Target file '%s' needs to be remade under -q.\n"
+msgstr "Le fichier cible « %s » a besoin d'être refabriqué avec l'option -q.\n"
+
+#: remake.c:1027
+#, fuzzy, c-format
+msgid "Using default commands for '%s'.\n"
+msgstr "Utilisation des commandes par défaut pour « %s ».\n"
+
+#: remake.c:1372
+#, fuzzy, c-format
+msgid "Warning: File '%s' has modification time in the future"
+msgstr ""
+"AVERTISSEMENT : le fichier « %s » a une date de modification dans le futur"
+
+#: remake.c:1385
+#, fuzzy, c-format
+msgid "Warning: File '%s' has modification time %s s in the future"
+msgstr ""
+"AVERTISSEMENT : le fichier « %s » a une date de modification %s s dans le "
"futur"
-#: remake.c:1569
-#, c-format
-msgid ".LIBPATTERNS element `%s' is not a pattern"
-msgstr "l'élément « %s » de .LIBPATTERNS n'est pas un motif"
+#: remake.c:1583
+#, fuzzy, c-format
+msgid ".LIBPATTERNS element '%s' is not a pattern"
+msgstr "l'élément « %s » de .LIBPATTERNS n'est pas un motif"
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
-msgstr "« customs » n'exportera pas : %s\n"
+msgstr "« customs » n'exportera pas : %s\n"
-#: rule.c:499
+#: rule.c:496
msgid ""
"\n"
"# Implicit Rules"
msgstr ""
"\n"
-"# Règles Implicites"
+"# Règles implicites"
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
@@ -1661,7 +1881,7 @@ msgstr ""
"\n"
"# Pas de règle implicite."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -1670,244 +1890,263 @@ msgstr ""
"\n"
"# %u règles implicites, %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr " terminales."
-#: rule.c:534
+#: rule.c:531
#, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
-msgstr "ANOMALIE : num_pattern_rules est faux ! %u != %u"
+msgstr "ANOMALIE : num_pattern_rules est faux ! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "signal inconnu"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
msgstr "Raccroche"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "Interrompt"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
msgstr "Quitte"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
msgstr "Instruction non admise"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
msgstr "Point de trace/arrêt"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "Annulé"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
msgstr "Appel IOT"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
msgstr "Appel EMT"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
msgstr "Exception en virgule flottante"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "Tué"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr "Erreur de bus"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "Erreur de segmentation"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "Mauvais appel système"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr "Tube cassé"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "Alarme"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
msgstr "Terminé"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr "Signal utilisateur 1"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr "Signal utilisateur 2"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
msgstr "Processus fils terminé"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
msgstr "Coupure d'alimentation"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "Arrêté"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
msgstr "Arrêté (entrée tty)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
msgstr "Arrêté (sortie tty)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "Arrêté (signal)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
msgstr "Limite du temps CPU dépassée"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
msgstr "Limite de taille de fichier dépassée"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
msgstr "Compteur virtuel expiré"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
msgstr "Compteur de profiling expiré"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
msgstr "Fenêtre modifiée"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "Reprise"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
msgstr "Condition d'E/S urgente"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
msgstr "E/S possible"
-#: 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 "Ressource perdue"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "Signal de danger"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr "Demande d'informations"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
msgstr "Coprocesseur en virgule flottante non disponible"
-#: 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:266
+#, fuzzy, c-format
+msgid ""
"\n"
-"%s nombre de chaines dans strcache: %d / lookups = %lu / hits = %lu\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
+msgstr ""
+"%s strcache utilisé : total = %d (%d) / max = %d / min = %d / moy = %d\n"
-#: strcache.c:237
+#: strcache.c:270
#, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
-msgstr "%s nombre de tampons strcache : %d (* %d B/buffer = %d B)\n"
+msgid ""
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
+msgstr ""
-#: strcache.c:239
-#, c-format
-msgid "%s strcache used: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+#: strcache.c:280
+#, fuzzy, c-format
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
msgstr ""
-"%s strcache utilisé : total = %d (%d) / max = %d / min = %d / moy = %d\n"
+"%s strcache utilisé : total = %d (%d) / max = %d / min = %d / moy = %d\n"
-#: strcache.c:241
-#, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
-msgstr "%s strcache libre : total = %d (%d) / max = %d / min = %d / moy = %d\n"
+#: strcache.c:283
+#, fuzzy, c-format
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
+msgstr "%s strcache libre : total = %d (%d) / max = %d / min = %d / moy = %d\n"
-#: strcache.c:244
+#: strcache.c:287
+#, fuzzy, c-format
msgid ""
"\n"
-"# strcache hash-table stats:\n"
+"%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
+msgstr ""
+"\n"
+"%s nombre de chaines dans strcache: %d / lookups = %lu / hits = %lu\n"
+
+#: strcache.c:289
+#, fuzzy
+msgid ""
+"# hash-table stats:\n"
"# "
msgstr ""
"\n"
-"# stats des tables de hachage strcache :\n"
+"# stats des tables de hachage des fichiers :\n"
"# "
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "automatique"
+
+#: variable.c:1610
msgid "default"
msgstr "défaut"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr "environnement"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr "makefile"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
msgstr "environnement avec l'option -e"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr "ligne de commande"
-#: variable.c:1556
-msgid "`override' directive"
-msgstr "directive « override »"
-
-#: variable.c:1559
-msgid "automatic"
-msgstr "automatique"
+#: variable.c:1625
+#, fuzzy
+msgid "'override' directive"
+msgstr "directive « override »"
-#: variable.c:1570
-#, c-format
-msgid " (from `%s', line %lu)"
-msgstr " (depuis « %s », ligne %lu)"
+#: variable.c:1636
+#, fuzzy, c-format
+msgid " (from '%s', line %lu)"
+msgstr " (depuis « %s », ligne %lu)"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
-msgstr "# stats des tables de hachage de la variable « set » :\n"
+msgstr "# stats des tables de hachage de la variable « set » :\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1915,7 +2154,7 @@ msgstr ""
"\n"
"# Variables\n"
-#: variable.c:1627
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
@@ -1923,7 +2162,7 @@ msgstr ""
"\n"
"# Valeurs de variable spécifiques au motif"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
@@ -1931,7 +2170,7 @@ msgstr ""
"\n"
"# pas de valeurs de variable spécifiques au motif"
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
@@ -1940,94 +2179,94 @@ msgstr ""
"\n"
"# %u valeurs de variable spécifiques au motif"
-#: variable.h:219
-#, c-format
-msgid "warning: undefined variable `%.*s'"
-msgstr "AVERTISSEMENT : variable indéfinie « %.*s »"
+#: variable.h:224
+#, fuzzy, c-format
+msgid "warning: undefined variable '%.*s'"
+msgstr "AVERTISSEMENT : variable indéfinie « %.*s »"
-#: vmsfunctions.c:92
+#: vmsfunctions.c:91
#, c-format
msgid "sys$search() failed with %d\n"
msgstr "sys$search() a échoué avec %d\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
-msgstr "AVERTISSEMENT : redirection vide\n"
+msgstr "AVERTISSEMENT : redirection vide\n"
-#: vmsjobs.c:184
-#, c-format
-msgid "internal error: `%s' command_state"
-msgstr "erreur interne : « %s » command_state"
+#: vmsjobs.c:178
+#, fuzzy, c-format
+msgid "internal error: '%s' command_state"
+msgstr "erreur interne : « %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 ""
"-warning, vous pourriez avoir besoin de réactiver le traitement de CTRL-Y "
"par DCL.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr "COMMANDE INTERNE [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr "COMMANDE CD INTERNE %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr "COMMANDE RM INTERNE %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
-msgstr "Commande interne inconnue « %s »\n"
+msgstr "Commande interne inconnue « %s »\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr "Erreur, commande vide\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr "Entrée redirigée depuis %s\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr "Erreur redirigée vers %s\n"
-#: vmsjobs.c:523
+#: vmsjobs.c:518
#, c-format
msgid "Append output to %s\n"
msgstr "Sortie ajoutée à %s\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
msgstr "Sortie redirigée vers %s\n"
-#: vmsjobs.c:599
+#: vmsjobs.c:593
#, c-format
msgid "Append %.*s and cleanup\n"
msgstr "Ajoute %.*s et nettoie\n"
-#: vmsjobs.c:606
+#: vmsjobs.c:600
#, c-format
msgid "Executing %s instead\n"
msgstr "Exécution de %s à la place\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr "Erreur de lancement, %d\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
@@ -2035,37 +2274,69 @@ msgstr ""
"\n"
"# Chemins de Recherche VPATH\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
-msgstr "# Aucun chemin de recherche « vpath »."
+#: vpath.c:600
+#, fuzzy
+msgid "# No 'vpath' search paths."
+msgstr "# Aucun chemin de recherche « vpath »."
-#: 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 chemins de recherche « vpath ».\n"
+"# %u chemins de recherche « vpath ».\n"
-#: vpath.c:608
+#: vpath.c:605
+#, fuzzy
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
-"# Aucun chemin de recherche général (variable « VPATH »)."
+"# Aucun chemin de recherche général (variable « VPATH »)."
-#: vpath.c:614
+#: vpath.c:611
+#, fuzzy
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
-"# Chemin de recherche général (variable « VPATH ») :\n"
+"# Chemin de recherche général (variable « VPATH ») :\n"
"# "
+#~ msgid "# Invalid value in `update_status' member!"
+#~ msgstr "# Valeur non valable dans le membre « update_status » !"
+
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] Erreur 0x%x (ignorée)"
+
+#~ msgid "[%s] Error %d (ignored)"
+#~ msgstr "[%s] Erreur %d (ignorée)"
+
+#~ msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
+#~ msgstr ""
+#~ "Invocation de recette de %s:%lu pour mettre à jour la cible « %s ».\n"
+
+#~ msgid "Invoking builtin recipe to update target `%s'.\n"
+#~ msgstr ""
+#~ "Invocation de la recette incorporée pour mettre à jour la cible « %s ».\n"
+
+#~ msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+#~ msgstr "%s nombre de tampons strcache : %d (* %d B/buffer = %d B)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "# strcache hash-table stats:\n"
+#~ "# "
+#~ msgstr ""
+#~ "\n"
+#~ "# stats des tables de hachage strcache :\n"
+#~ "# "
+
#~ msgid "process_easy() failed failed to launch process (e=%ld)\n"
#~ msgstr "process_easy() n'a pas pu lancer de processus (e=%ld)\n"
@@ -2080,13 +2351,13 @@ msgstr ""
#~ "%sune ADÉQUATION À UN BESOIN PARTICULIER.\n"
#~ msgid "extraneous `endef'"
-#~ msgstr "« endef » superflu"
+#~ msgstr "« endef » superflu"
#~ msgid "empty `override' directive"
-#~ msgstr "directive « override » vide"
+#~ msgstr "directive « override » vide"
#~ msgid "invalid `override' directive"
-#~ msgstr "directive « override » incorrecte"
+#~ msgstr "directive « override » incorrecte"
#~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
#~ msgstr "-warning, CTRL-Y va laisser des sous-processsus dans la nature.\n"
@@ -2098,7 +2369,7 @@ msgstr ""
#~ msgstr "Réinitialisation de make en mode de traitement simple des tâches."
#~ msgid "Syntax error, still inside '\"'\n"
-#~ msgstr "Erreur de syntaxe, toujours à l'intérieur de « \" »\n"
+#~ msgstr "Erreur de syntaxe, toujours à l'intérieur de « \" »\n"
#~ msgid "Got a SIGCHLD; %u unreaped children.\n"
#~ msgstr ""
@@ -2106,10 +2377,10 @@ msgstr ""
#~ "sortie n'a pas été récupé.\n"
#~ msgid "no file name for `%sinclude'"
-#~ msgstr "pas de nom de fichier pour « %sinclude »"
+#~ msgstr "pas de nom de fichier pour « %sinclude »"
#~ msgid "target `%s' leaves prerequisite pattern empty"
-#~ msgstr "la cible « %s » a laissé un schéma de dépendance vide"
+#~ msgstr "la cible « %s » a laissé un schéma de dépendance vide"
#~ msgid ""
#~ "\n"
@@ -2238,9 +2509,6 @@ msgstr ""
#~ msgid "intermediate"
#~ msgstr "intermédiaire"
-#~ msgid " (ignored)"
-#~ msgstr " (ignorée)"
-
#~ msgid "Unknown%s job %d"
#~ msgstr "Tâche%s inconnue %d"
diff --git a/po/ga.gmo b/po/ga.gmo
index 94495a8..aaf3e74 100644
--- a/po/ga.gmo
+++ b/po/ga.gmo
Binary files differ
diff --git a/po/ga.po b/po/ga.po
index 281f8f9..ef86f28 100644
--- a/po/ga.po
+++ b/po/ga.po
@@ -7,120 +7,126 @@ msgid ""
msgstr ""
"Project-Id-Version: make 3.81\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: 2006-04-22 16:02-0500\n"
"Last-Translator: Kevin Patrick Scannell <scannell@SLU.EDU>\n"
"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
+"Language: ga\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\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 "rinneadh iarracht ar ghné gan tacaíocht a úsáid: `%s'"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
msgstr "ní féidir ball cartlainne a `touch'áil ar VMS"
-#: 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: Níl an chartlann `%s' ann"
-#: 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: Níl `%s' ina cartlann bhailí"
-#: 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: Níl a leithéid de bhall `%s' i `%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: Droch-chód aisfhillidh ó ar_member_touch ar `%s'"
-#: arscan.c:69
+#: arscan.c:67
#, fuzzy, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
msgstr ""
-"níorbh fhéidir le lbr$set_module an t-eolas modúil a bhaint amach, stádas = %"
-"d"
+"níorbh fhéidir le lbr$set_module an t-eolas modúil a bhaint amach, stádas = "
+"%d"
-#: arscan.c:175
+#: arscan.c:173
#, fuzzy, c-format
msgid "lbr$ini_control() failed with status = %d"
msgstr "theip ar lbr$ini_control le stádas = %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 ""
-"ní féidir leabharlann `%s' a oscailt chun cuardach a dhéanamh ar an mball `%"
-"s'"
+"ní féidir leabharlann `%s' a oscailt chun cuardach a dhéanamh ar an mball `"
+"%s'"
-#: 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 "Ball `%s'%s: %ld beart ag %ld (%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr " (is féidir go bhfuil an t-ainm teasctha)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Dáta %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d, gid = %d, mód = 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 "*** Briseadh.\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] Is féidir gur ball bréige é `%s'; ní scriosadh"
-#: 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 "*** Is féidir gur ball bréige é `%s'; ní scriosadh"
-#: commands.c:638
-#, c-format
-msgid "*** [%s] Deleting file `%s'"
+#: commands.c:646
+#, fuzzy, c-format
+msgid "*** [%s] Deleting file '%s'"
msgstr "*** [%s] Comhad `%s' á scriosadh"
-#: commands.c:640
-#, c-format
-msgid "*** Deleting file `%s'"
+#: commands.c:648
+#, fuzzy, c-format
+msgid "*** Deleting file '%s'"
msgstr "*** Comhad `%s' á scriosadh"
-#: commands.c:676
+#: commands.c:684
#, fuzzy
msgid "# recipe to execute"
msgstr "# orduithe le rith"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr " (insuite):"
-#: commands.c:681
-#, c-format
-msgid " (from `%s', line %lu):\n"
+#: commands.c:689
+#, fuzzy, c-format
+msgid " (from '%s', line %lu):\n"
msgstr " (ó `%s', líne %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -128,225 +134,229 @@ msgstr ""
"\n"
"# Comhadlanna\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
msgstr "# %s: níorbh fhéidir é a stat.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
msgstr "# %s (eochair %s, am-m %d): ní féidir é a oscailt.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
msgstr "# %s (gléas %d, i-nód [%d,%d,%d]): ní féidir é a oscailt.\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
msgstr "# %s (gléas %ld, i-nód %ld): níorbh fhéidir é a oscailt.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr "# %s (eochair %s, am-m %d): "
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
msgstr "# %s (gléas %d, i-nód [%d,%d,%d]): "
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
msgstr "# %s (gléas %ld, i-nód %ld): "
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "Ná Déan"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " comhad, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "níl"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
msgstr " rudaí neamhfhéideartha"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr " go dtí seo."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
msgstr " rudaí neamhfhéideartha i %lu comhadlann.\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 "Déanann an athróg athchúrsach `%s' tagairt dó féin (sa deireadh)"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
msgstr "tagairt athróige gan chríochnú"
-#: 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 "Sonraíodh orduithe le haghaidh comhaid `%s' ag %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 ""
"Aimsíodh orduithe le haghaidh `%s' trí chuardach ar rialacha intuigthe,"
-#: 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 "ach anois is ionann iad na comhaid `%s' agus `%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 ""
"Déanfar neamhshuim ar orduithe le haghaidh `%s'; úsáidfear na cinn le "
"haghaidh `%s' ina n-ionad."
-#: file.c:298
-#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
+#: file.c:300
+#, fuzzy, c-format
+msgid "can't rename single-colon '%s' to double-colon '%s'"
msgstr ""
"ní féidir idirstad aonair `%s' a athainmnigh le hidirstad dúbailte `%s'"
-#: file.c:303
-#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
+#: file.c:305
+#, fuzzy, c-format
+msgid "can't rename double-colon '%s' to single-colon '%s'"
msgstr "ní féidir idirstad dúbailte `%s' a athainmniú le hidirstad aonair `%s'"
-#: file.c:392
-#, c-format
-msgid "*** Deleting intermediate file `%s'"
+#: file.c:396
+#, fuzzy, c-format
+msgid "*** Deleting intermediate file '%s'"
msgstr "*** Comhad idirmheánach `%s' á scriosadh"
-#: file.c:396
+#: file.c:400
msgid "Removing intermediate files...\n"
msgstr "Comhaid idirmheánacha á mbaint...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
msgstr "%s: Stampa ama as raon; %s á úsáid ina ionad"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "An t-am anois"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
msgstr "# Ní sprioc é:"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
msgstr "# Comhad luachmhar (réamhriachtanas de .PRECIOUS)."
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
msgstr "# Sprioc bhréige (réamhriachtanas de .PHONY)."
-#: file.c:933
+#: file.c:958
#, fuzzy
msgid "# Command line target."
msgstr "# Sprioc líne na n-orduithe."
-#: file.c:935
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
msgstr "# Makefile réamhshocraithe, nó ó MAKEFILES, nó -include/sinclude."
-#: file.c:937
+#: file.c:962
+#, fuzzy
+msgid "# Builtin rule"
+msgstr ""
+"\n"
+"# Níl aon riail intuigthe."
+
+#: file.c:964
msgid "# Implicit rule search has been done."
msgstr "# Rinneadh cuardach ar rialacha intuigthe."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
msgstr "# Ní dhearna cuardach ar rialacha intuigthe."
-#: file.c:940
-#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
+#: file.c:967
+#, fuzzy, c-format
+msgid "# Implicit/static pattern stem: '%s'\n"
msgstr "# Stoc patrúin intuigthe/statach: `%s'\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
msgstr "# Tá an comhad ina réamhriachtanas idirmheánach."
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
msgstr "# Déantar fosta:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
msgstr "# Níor seiceáladh an t-am mionathraithe riamh."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# Níl a leithéid de chomhad ann."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr "# Is cianaosta an comhad seo."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr "# Athraithe %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# Nuashonraíodh an comhad."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# Níor nuashonraíodh an comhad."
-#: file.c:968
+#: file.c:995
#, fuzzy
msgid "# Recipe currently running (THIS IS A BUG)."
msgstr "# Tá orduithe ann atá ag rith faoi láthair (IS FABHT É SEO)."
-#: file.c:971
+#: file.c:998
#, fuzzy
msgid "# Dependencies recipe running (THIS IS A BUG)."
msgstr "# Tá orduithe spleáchais ag rith (IS FABHT É SEO)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
msgstr "# D'éirigh leis an nuashonrú."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
msgstr "# Tá gá le nuashonrú (-q ceaptha)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr "# Theip ar nuashonrú."
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# Luach neamhbhailí sa bhall `update_status'!"
-
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
+#: file.c:1019
+#, fuzzy
+msgid "# Invalid value in 'command_state' member!"
msgstr "# Luach neamhbhailí sa bhall `command_state'!"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -354,7 +364,7 @@ msgstr ""
"\n"
"# Comhaid"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
@@ -364,117 +374,175 @@ msgstr ""
"# comhaid hais-tábla stait:\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 "tá an chéad argóint neamhuimhriúil leis an fheidhm `word'"
-#: 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 "caithfidh an chéad argóint leis an fheidhm `word' a bheith deimhneach"
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
+#: function.c:767
+#, fuzzy
+msgid "non-numeric first argument to 'wordlist' function"
msgstr "is neamhuimhriúil í an chéad argóint leis an fheidhm `wordlist'"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
+#: function.c:769
+#, fuzzy
+msgid "non-numeric second argument to 'wordlist' function"
msgstr "is neamhuimhriúil í an dara hargóint leis an fheidhm `wordlist'"
-#: 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: theip ar DuplicateHandle(In) (e=%ld)\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: theip ar DuplicateHandle(Earr) (e=%ld)\n"
-#: function.c:1474
+#: function.c:1490
#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
msgstr "Theip ar CreatePipe() (e=%ld)\n"
-#: function.c:1479
+#: function.c:1498
#, fuzzy
msgid "windows32_openpipe(): process_init_fd() failed\n"
msgstr "windows32_openpipe (): theip ar process_init_fd()\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr "Baisc-chomhad sealadach %s á ghlanadh\n"
-#: function.c:2150
+#: function.c:2151
+#, fuzzy, c-format
+msgid "open: %s: %s"
+msgstr "%s: %s"
+
+#: function.c:2158
+#, fuzzy, c-format
+msgid "write: %s: %s"
+msgstr "earráid sa scríobh: %s"
+
+#: function.c:2164
#, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
+msgid "Invalid file operation: %s"
+msgstr ""
+
+#: function.c:2279
+#, fuzzy, c-format
+msgid "insufficient number of arguments (%d) to function '%s'"
msgstr "easpa argóintí (%d) d'fheidhm `%s'"
-#: function.c:2162
-#, c-format
-msgid "unimplemented on this platform: function `%s'"
+#: function.c:2291
+#, fuzzy, c-format
+msgid "unimplemented on this platform: function '%s'"
msgstr "níl an fheidhm `%s' ar fáil ar an chóras seo"
-#: function.c: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 "glao ar fheidhm `%s' gan chríochnú: `%c' ar iarraidh"
-#: 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: Tá an rogha `%s' débhríoch\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 "easpa argóintí (%d) d'fheidhm `%s'"
+
+#: function.c:2555
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "easpa argóintí (%d) d'fheidhm `%s'"
+
+#: getopt.c:659
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: Tá an rogha `%s' débhríoch\n"
+
+#: getopt.c:683
+#, fuzzy, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr "%s: ní cheadaítear argóint i ndiaidh na rogha `--%s'\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: ní cheadaítear argóint i ndiaidh na rogha `%c%s'\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: tá argóint de dhíth i ndiaidh na rogha `%s'\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: rogha anaithnid `--%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: rogha anaithnid `%c%s'\n"
-#: getopt.c:766
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: rogha neamhcheadaithe -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: rogha neamhbhailí -- %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: tá argóint de dhíth i ndiaidh na rogha -- %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: Tá an rogha `-W %s' débhríoch\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: ní cheadaítear argóint i ndiaidh na rogha `-W %s'\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"
@@ -495,132 +563,157 @@ msgstr "Ath-haiseáil=%d, "
msgid "Collisions=%ld/%ld=%.0f%%"
msgstr "Tuairteanna haiseála=%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 "Ag déanamh cuardach ar riail intuigthe le haghaidh `%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 ""
"Ag déanamh cuardach ar riail intuigthe le haghaidh bhall cartlainne `%s'.\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
msgstr "Athchúrsáil de bharr rialacha intuigthe á seachaint.\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 "Ag baint triail as riail phatrúin le stoc `%.*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 "Réamhriachtanas neamhfhéideartha rialach `%s' á dhiúltú.\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 "Réamhriachtanas intuigthe neamhfhéideartha `%s' á dhiúltú.\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 "Ag baint triail as an réamhriachtanas rialach `%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 "Ag baint triail as an réamhriachtanas intuigthe `%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 "Aimsíodh réamhriachtanas `%s' mar 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 "Ag déanamh cuardach ar riail le comhad idirmheánach `%s'.\n"
-#: job.c:335
+#: job.c:361
msgid "Cannot create a temporary file\n"
msgstr "Ní féidir comhad sealadach a chruthú\n"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] Earráid 0x%x (rinneadh neamhshuim air)"
-
-#: job.c:450
-#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] Earráid 0x%x"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (córdhumpa)"
-#: job.c:454
-#, c-format
-msgid "[%s] Error %d (ignored)"
+#: job.c:487
+#, fuzzy
+msgid " (ignored)"
msgstr "[%s] Earráid %d (rinneadh neamhshuim)"
-#: job.c:455
+#: job.c:491 job.c:1994
+#, fuzzy
+msgid "<builtin>"
+msgstr " (insuite):"
+
+#: 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] Earráid 0x%x"
+
+#: job.c:513
+#, fuzzy, c-format
+msgid "%s[%s] Error %d%s"
msgstr "*** [%s] Earráid %d"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (córdhumpa)"
+#: 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 "*** Ag fanacht le jabanna neamhchríochnaithe..."
-#: job.c:579
+#: job.c:639
#, fuzzy, c-format
msgid "Live child %p (%s) PID %s %s\n"
msgstr "Mac beo 0x%08lx (%s) PID %ld %s\n"
-#: 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 " (cianda)"
-#: job.c:758
+#: job.c:829
#, fuzzy, c-format
msgid "Reaping losing child %p PID %s %s\n"
msgstr "Mac caillteach á bhaint: 0x%08lx PID %ld %s\n"
-#: job.c:759
+#: job.c:830
#, fuzzy, c-format
msgid "Reaping winning child %p PID %s %s\n"
msgstr "Mac buaiteach á bhaint: 0x%08lx PID %ld %s\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
msgstr "Baisc-chomhad sealadach %s á ghlanadh\n"
-#: job.c:861
+#: job.c:843
+#, fuzzy, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "Baisc-chomhad sealadach %s á ghlanadh\n"
+
+#: job.c:949
#, fuzzy, c-format
msgid "Removing child %p PID %s%s from chain.\n"
msgstr "Mac 0x%08lx PID %ld%s á dhealú ón slabhra.\n"
-#: job.c:920
-msgid "write jobserver"
-msgstr "scríobh jabfhreastalaí"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr ""
-#: job.c:922
+#: job.c:1011 job.c:1025
#, fuzzy, c-format
msgid "Released token for child %p (%s).\n"
msgstr "Saoradh ceadchomhartha le haghaidh mac 0x%08lx (%s).\n"
-#: job.c:1453 job.c:2094
+#: job.c:1023
+msgid "write jobserver"
+msgstr "scríobh jabfhreastalaí"
+
+#: job.c:1612 job.c:2332
#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
msgstr "theip ar process_easy(); níor tosaíodh próiseas (e=%ld)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
@@ -629,109 +722,166 @@ msgstr ""
"\n"
"%d argóint sa tosú theipthe\n"
-#: job.c:1525
+#: job.c:1685
#, fuzzy, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
msgstr "Ag cur mac 0x%08lx (%s) PID %ld%s ar an slabhra.\n"
-#: job.c:1778
+#: job.c:1953
+#, c-format
+msgid "semaphore or child process wait: (Error %ld: %s)"
+msgstr ""
+
+#: job.c:1967
#, fuzzy, c-format
msgid "Obtained token for child %p (%s).\n"
msgstr "Fuarthas ceadchomhartha le haghaidh mac 0x%08lx (%s).\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
msgstr "léadh píopa na jabanna"
-#: 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: Níl an chartlann `%s' ann"
-#: job.c:1802
+#: job.c:2005
#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "Níl gá leis an sprioc `%s' a athdhéanamh"
+msgid "%s: update target '%s' due to: %s"
+msgstr ""
+"%sNíl aon riail chun an sprioc `%s' a dhéanamh, riachtanach le haghaidh `"
+"%s'%s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
msgstr "ní féidir srianta lóid a chur i bhfeidhm ar an chóras oibriúcháin seo"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
msgstr "ní féidir srian lóid a chur i bhfeidhm: "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
msgstr "níl aon hanla comhaid le fáil: níorbh fhéidir stdin a chóipeáil\n"
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
msgstr "níl aon hanla comhaid le fáil: níorbh fhéidir stdout a chóipeáil\n"
-#: job.c:2015
+#: job.c:2223
+#, fuzzy
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr "níl aon hanla comhaid le fáil: níorbh fhéidir stdin a chóipeáil\n"
+
+#: job.c:2238
msgid "Could not restore stdin\n"
msgstr "Níorbh fhéidir stdin a athchóiriú\n"
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
msgstr "Níorbh fhéidir stdout a athchóiriú\n"
-#: job.c:2127
+#: job.c:2254
+#, fuzzy
+msgid "Could not restore stderr\n"
+msgstr "Níorbh fhéidir stdin a athchóiriú\n"
+
+#: job.c:2365
#, fuzzy, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
msgstr "ghin make mac le pid %ld, ag feitheamh le pid %ld fós\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
msgstr "%s: Ní bhfuarthas an t-ordú"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr "%s: Ní bhfuarthas an clár blaoisce"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
msgstr "spawnvpe: is féidir gur ídithe í cuimhne na timpeallachta"
-#: 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 "Athraíodh $SHELL (ba `%s' é, agus is `%s' é anois)\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr "Baisc-chomhad sealadach %s á chruthú\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 (líne %d) Droch-chomhthéacs blaoisce (!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 "Níl jabanna parailéalacha (-j) ar fáil ar an gcóras seo."
+
+#: main.c:312
msgid "Options:\n"
msgstr "Roghanna:\n"
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
msgstr " -b, -m Déan neamhshuim (comhoiriúnacht)\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr " -B, --always-make Déan gach sprioc, gan choinníollacha.\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
@@ -739,18 +889,18 @@ msgstr ""
" -C COMHADLANN, --directory=COMHADLANN\n"
" Téigh go COMHADLANN roimh dhéanamh aon rud.\n"
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
msgstr " -d Taispeáin go leor eolas dífhabhtaithe.\n"
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
" --debug[=BRATACHA] Taispeáin eolas fabhtaithe de chineálacha "
"éagsúla.\n"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
@@ -758,12 +908,12 @@ msgstr ""
" -e, --environment-overrides\n"
" Sáraíonn athróga timpeallachta makefileanna.\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"
@@ -771,17 +921,17 @@ msgstr ""
" -f COMHAD, --file=COMHAD, --makefile=COMHAD\n"
" Léigh COMHAD mar makefile.\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
msgstr " -h, --help Taispeáin an chabhair seo agus scoir.\n"
-#: main.c:325
+#: main.c:334
#, fuzzy
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
msgstr ""
" -i, --ignore-errors Déan neamhshuim ar earráidí ó orduithe.\n"
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
@@ -790,7 +940,7 @@ msgstr ""
" Cuardaigh i gCOMHADLANN ar makefileanna "
"breise.\n"
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
@@ -798,14 +948,14 @@ msgstr ""
" -j [N], --jobs[=N] Ceadaigh N jab le chéile; éigríoch mura "
"gceaptar arg.\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 Lean ar aghaidh fiú nach féidir sprioc a "
"dhéanamh.\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 "
@@ -815,7 +965,7 @@ msgstr ""
" Ná tosaigh jabanna iomadúla mura bhfuil an lód "
"níos lú ná N.\n"
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
@@ -824,7 +974,7 @@ msgstr ""
"nasc\n"
" siombalach nó ar an sprioc.\n"
-#: main.c:339
+#: main.c:348
#, fuzzy
msgid ""
" -n, --just-print, --dry-run, --recon\n"
@@ -835,7 +985,7 @@ msgstr ""
" Ná rith aon ordú; taispeáin torthaí mar dhea "
"amháin.\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 "
@@ -845,12 +995,18 @@ msgstr ""
" Caith le COMHAD mar cheann cianaosta; ná "
"hathdhéan é.\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 Taispeáin an bunachar sonraí inmheánach.\n"
-#: main.c:347
+#: main.c:359
#, fuzzy
msgid ""
" -q, --question Run no recipe; exit status says if up to "
@@ -859,21 +1015,21 @@ msgstr ""
" -q, --question Ná rith aon ordú; stádas scortha = 0 mura gá "
"le nuashonrú.\n"
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr ""
" -r, --no-builtin-rules Díchumasaigh na rialacha intuigthe insuite.\n"
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr " -R, --no-builtin-variables Díchumasaigh na hathróga insuite.\n"
-#: main.c:353
+#: main.c:365
#, fuzzy
msgid " -s, --silent, --quiet Don't echo recipes.\n"
msgstr " -s, --silent, --quiet Ná déan macalla ar orduithe.\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
@@ -881,23 +1037,28 @@ msgstr ""
" -S, --no-keep-going, --stop\n"
" Múch -k.\n"
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
" -t, --touch Teagmhaigh spriocanna in ionad iad a "
"athdhéanamh.\n"
-#: main.c:360
+#: main.c:372
+#, fuzzy
+msgid " --trace Print tracing information.\n"
+msgstr " -d Taispeáin go leor eolas dífhabhtaithe.\n"
+
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr ""
" -v, --version Taispeáin eolas faoin leagan agus scoir.\n"
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
msgstr " -w, --print-directory Taispeáin an chomhadlann reatha.\n"
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
@@ -905,7 +1066,7 @@ msgstr ""
" --no-print-directory Múch -w, fiú má tá sé i bhfeidhm go "
"hintuigthe.\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"
@@ -914,7 +1075,7 @@ msgstr ""
" Caith le COMHAD mar cheann úrnua (go "
"héigríoch).\n"
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
@@ -922,21 +1083,31 @@ msgstr ""
" --warn-undefined-variables Tabhair rabhadh má dhéantar tagairt d'athróg "
"gan sainmhíniú.\n"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
msgstr "ní féidir teaghrán folamh a úsáid mar ainm comhaid"
-#: main.c:650
-#, c-format
-msgid "unknown debug level specification `%s'"
+#: main.c:734
+#, fuzzy, c-format
+msgid "unknown debug level specification '%s'"
msgstr "sonrú anaithnid `%s' ar an leibhéal dífhabhtaithe"
-#: 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 "earráid inmheánach: roghanna --jobserver-fds iomadúla"
+
+#: main.c:848
#, fuzzy, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
msgstr "%s: Fuarthas idirbhriseadh/eisceacht (cód = 0x%lx, seoladh = 0x%lx)\n"
-#: main.c:697
+#: main.c:855
#, fuzzy, c-format
msgid ""
"\n"
@@ -951,160 +1122,182 @@ msgstr ""
"BratachaEisceachta = %lx\n"
"SeoladhEisceachta = %lx\n"
-#: main.c:705
+#: main.c:863
#, fuzzy, c-format
msgid "Access violation: write operation at address 0x%p\n"
msgstr "Sárú rochtana: oibríocht scríofa ag seoladh %lx\n"
-#: main.c:706
+#: main.c:864
#, fuzzy, c-format
msgid "Access violation: read operation at address 0x%p\n"
msgstr "Sárú rochtana: oibríocht léimh ag seoladh %lx\n"
-#: main.c:781 main.c:792
+#: main.c:940 main.c:955
#, fuzzy, c-format
msgid "find_and_set_shell() setting default_shell = %s\n"
msgstr "tá find_and_set_shell ag socrú default_shell = %s\n"
-#: main.c:834
+#: main.c:1008
#, fuzzy, c-format
msgid "find_and_set_shell() path search set default_shell = %s\n"
msgstr "shocraigh find_and_set_shell conair chuardaigh default_shell = %s\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr "cuirfear %s ar fionraí ar feadh tréimhse 30 soicind..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr "sleep(30) críochnaithe. Ag gabháil ar aghaidh.\n"
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr "Sonraíodh Makefile ón ionchur caighdeánach faoi dhó."
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr "fopen (comhad sealadach)"
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr "fwrite (comhad sealadach)"
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "Níl jabanna parailéalacha (-j) ar fáil ar an gcóras seo."
-
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
-msgstr "Á athshocrú le haghaidh jabanna aonair (-j1)."
-
-#: main.c:1719
+#: main.c:1534
msgid "internal error: multiple --jobserver-fds options"
msgstr "earráid inmheánach: roghanna --jobserver-fds iomadúla"
-#: main.c:1727
+#: main.c:1544
+#, c-format
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
+msgstr ""
+
+#: main.c:1547
#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
+msgid "Jobserver client (semaphore %s)\n"
+msgstr ""
+
+#: main.c:1551
+#, fuzzy, c-format
+msgid "internal error: invalid --jobserver-fds string '%s'"
msgstr "earráid inmheánach: teaghrán neamhbhailí --jobserver-fds `%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 "rabhadh: -jN fórsáilte i bhfo-make: mód jabfhreastalaí á dhíchumasú."
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
msgstr "jabfhreastalaí dup"
-#: 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 ""
"rabhadh: níl jabfhreastalaí ar fáil: ag baint úsáid as -j1. Cuir `+' leis "
"an máthair-riail."
-#: main.c:1777
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "Sonraíodh Makefile ón ionchur caighdeánach faoi dhó."
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (comhad sealadach)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (comhad sealadach)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr "Níl jabanna parailéalacha (-j) ar fáil ar an gcóras seo."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "Á athshocrú le haghaidh jabanna aonair (-j1)."
+
+#: 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 "píopa na jabanna á chruthú"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
msgstr "píopa an jabfhreastalaí á thúsú"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
msgstr "ní thacaítear le naisc shiombalacha: -L á dhíchumasú."
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr "Makefileanna á nuashonrú....\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 "is féidir go lúbfar an Makefile `%s'; ní athdhéanfar é.\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 "Theip ar athdhéanamh an makefile `%s'."
-#: 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 "Níor aimsíodh an makefile `%s' san áireamh."
-#: main.c:2018
-#, c-format
-msgid "Makefile `%s' was not found"
+#: main.c:2275
+#, fuzzy, c-format
+msgid "Makefile '%s' was not found"
msgstr "Níor aimsíodh an makefile `%s'"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
msgstr "Níorbh fhéidir an chomhadlann oibre a athrú ar ais."
-#: main.c:2102
+#: main.c:2354
#, c-format
msgid "Re-executing[%u]:"
msgstr "Á rith arís[%u]:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr "unlink (comhad sealadach): "
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
msgstr "tá níos mó ná aon sprioc amháin i .DEFAULT_GOAL"
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
msgstr "Níor sonraíodh aon sprioc agus níor aimsíodh aon makefile"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "Níl aon sprioc ann"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
msgstr "Cinn sprice á nuashonrú....\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr "rabhadh: Clog ar sceabha. Is féidir go bhfuil an tógáil neamhiomlán."
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
msgstr "Úsáid: %s [roghanna] [sprioc] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
@@ -1113,7 +1306,7 @@ msgstr ""
"\n"
"Tógadh an clár seo le haghaidh %s\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
@@ -1122,36 +1315,36 @@ msgstr ""
"\n"
"Tógadh an clár seo le haghaidh %s (%s)\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
msgstr "Seol tuairiscí fabhtanna chuig <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 "caithfidh tú teaghrán nach folamh a thabhairt mar argóint le `-%c'"
-#: 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 "caithfidh tú slánuimhir dheimhneach a thabhairt mar argóint le `-%c'"
-#: main.c:3054
+#: main.c:3253
#, fuzzy, c-format
msgid "%sBuilt for %s\n"
msgstr ""
"\n"
"%sTógadh an clár seo le haghaidh %s\n"
-#: main.c:3056
+#: main.c:3255
#, fuzzy, c-format
msgid "%sBuilt for %s (%s)\n"
msgstr ""
"\n"
"%sTógadh an clár seo le haghaidh %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."
@@ -1160,7 +1353,7 @@ msgid ""
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
@@ -1169,7 +1362,7 @@ msgstr ""
"\n"
"# Bunachar sonraí Make, priontáilte ar %s"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
@@ -1178,106 +1371,106 @@ msgstr ""
"\n"
"# Críochnaíodh an bunachar sonraí Make seo ar %s\n"
-#: main.c:3237
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "Earráid anaithnid %d"
+
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "cuimhne fhíorúil ídithe"
+
+#: misc.c:522
+#, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s: úsáideoir %lu (fíor %lu), grúpa %lu (fíor %lu)\n"
+
+#: misc.c:543
+msgid "Initialized access"
+msgstr "Rochtain túsaithe"
+
+#: misc.c:622
+msgid "User access"
+msgstr "Rochtain úsáideora"
+
+#: misc.c:670
+msgid "Make access"
+msgstr "Rochtain make"
+
+#: misc.c:704
+msgid "Child access"
+msgstr "Rochtain mic"
+
+#: output.c:128
#, c-format
msgid "%s: Entering an unknown directory\n"
msgstr "%s: Ag dul isteach i gcomhadlann anaithnid\n"
-#: main.c:3239
+#: output.c:130
#, c-format
msgid "%s: Leaving an unknown directory\n"
msgstr "%s: Ag dul amach as comhadlann anaithnid\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: Ag dul isteach sa chomhadlann `%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: Ag dul amach as an gcomhadlann `%s'\n"
-#: main.c:3250
+#: output.c:139
#, c-format
msgid "%s[%u]: Entering an unknown directory\n"
msgstr "%s[%u]: Ag dul isteach i gcomhadlann anaithnid\n"
-#: main.c:3253
+#: output.c:141
#, c-format
msgid "%s[%u]: Leaving an unknown directory\n"
msgstr "%s[%u]: Ag dul amach as comhadlann anaithnid\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]: Ag dul isteach sa chomhadlann `%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]: Ag dul amach as an gcomhadlann `%s'\n"
-#: misc.c:316
+#: output.c:515
+#, c-format
+msgid "write error: %s"
+msgstr "earráid sa scríobh: %s"
+
+#: output.c:517
+msgid "write error"
+msgstr "earráid sa scríobh"
+
+#: output.c:740
msgid ". Stop.\n"
msgstr ". Stop.\n"
-#: misc.c:337
-#, c-format
-msgid "Unknown error %d"
-msgstr "Earráid anaithnid %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 "cuimhne fhíorúil ídithe"
-
-#: misc.c:708
-#, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s: úsáideoir %lu (fíor %lu), grúpa %lu (fíor %lu)\n"
-
-#: misc.c:729
-msgid "Initialized access"
-msgstr "Rochtain túsaithe"
-
-#: misc.c:808
-msgid "User access"
-msgstr "Rochtain úsáideora"
-
-#: misc.c:856
-msgid "Make access"
-msgstr "Rochtain make"
-
-#: misc.c:890
-msgid "Child access"
-msgstr "Rochtain mic"
-
-#: misc.c:954
-#, c-format
-msgid "write error: %s"
-msgstr "earráid sa scríobh: %s"
-
-#: misc.c:956
-msgid "write error"
-msgstr "earráid sa scríobh"
-
-#: read.c:179
+#: read.c:180
msgid "Reading makefiles...\n"
msgstr "Makefileanna á léamh...\n"
#: read.c:333
-#, c-format
-msgid "Reading makefile `%s'"
+#, fuzzy, c-format
+msgid "Reading makefile '%s'"
msgstr "Makefile `%s' á léamh"
#: read.c:335
@@ -1300,336 +1493,354 @@ msgstr " (is cuma)"
msgid " (no ~ expansion)"
msgstr " (ná fairsing ~)"
-#: 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 "comhréir neamhbhailí i gcoinníollach"
-#: 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 "tá orduithe ann roimh an chéad sprioc"
-#: read.c:940
+#: read.c:1036
#, fuzzy
msgid "missing rule before recipe"
msgstr "riail ar iarraidh roimh orduithe"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
msgstr "deighilteoir%s ar iarraidh"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
msgstr " (Ar mhian leat TÁB in ionad ocht spás?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
msgstr "patrún sprice ar iarraidh"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
msgstr "patrúin iomadúla sprice"
-#: read.c:1169
-#, c-format
-msgid "target pattern contains no `%%'"
+#: read.c:1269
+#, fuzzy, c-format
+msgid "target pattern contains no '%%'"
msgstr "níl aon `%%' sa phatrún sprice"
-#: read.c:1293
-msgid "missing `endif'"
+#: read.c:1391
+#, fuzzy
+msgid "missing 'endif'"
msgstr "`endif' ar iarraidh"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "ainm folamh athróige"
-#: read.c:1367
+#: read.c:1465
#, fuzzy
-msgid "extraneous text after `define' directive"
+msgid "extraneous text after 'define' directive"
msgstr "Téacs gan mhaith i ndiaidh treorach `endef'"
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
+#: read.c:1490
+#, fuzzy
+msgid "missing 'endef', unterminated 'define'"
msgstr "`endef' ar iarraidh, `define' gan chríochnú"
-#: read.c:1420
+#: read.c:1518
#, fuzzy
-msgid "extraneous text after `endef' directive"
+msgid "extraneous text after 'endef' directive"
msgstr "Téacs gan mhaith i ndiaidh treorach `endef'"
-#: read.c:1490
-#, c-format
-msgid "Extraneous text after `%s' directive"
+#: read.c:1589
+#, fuzzy, c-format
+msgid "extraneous text after '%s' directive"
msgstr "Téacs gan mhaith i ndiaidh treorach `%s'"
-#: read.c:1499 read.c:1513
-#, c-format
-msgid "extraneous `%s'"
+#: read.c:1598 read.c:1612
+#, fuzzy, c-format
+msgid "extraneous '%s'"
msgstr "`%s' breise"
-#: read.c:1518
-msgid "only one `else' per conditional"
+#: read.c:1617
+#, fuzzy
+msgid "only one 'else' per conditional"
msgstr "ní cheadaítear ach aon `else' amháin le gach coinníollach"
-#: read.c:1797
+#: read.c:1892
msgid "Malformed target-specific variable definition"
msgstr "Is míchumtha é an sainmhíniú athróige (le haghaidh aon sprioc amháin)"
-#: read.c:1855
+#: read.c:1951
#, fuzzy
msgid "prerequisites cannot be defined in recipes"
msgstr "ní féidir réamhriachtanais a shonrú i scripteanna ordaithe"
-#: read.c:1908
+#: read.c:2009
msgid "mixed implicit and static pattern rules"
msgstr "rialacha intuigthe agus rialacha statacha measctha le chéile"
-#: read.c:1931 read.c:2112
+#: read.c:2032 read.c:2220
msgid "mixed implicit and normal rules"
msgstr "rialacha intuigthe agus gnáthrialacha measctha le chéile"
-#: 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 "níl an sprioc `%s' comhoiriúnach leis an phatrún sprice"
-#: 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 "tá iontrálacha : agus :: araon ann don chomhad sprice `%s'"
-#: 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 "tá an sprioc `%s' i riail amháin níos mó ná uair amháin."
-#: read.c:2006
+#: read.c:2114
#, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
+msgid "warning: overriding recipe for target '%s'"
msgstr "rabhadh: ag sárú na n-orduithe le haghaidh na sprice `%s'"
-#: 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 ""
"rabhadh: ag déanamh neamhshuim ar sheanorduithe le haghaidh sprice `%s'"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
msgstr ""
"rabhadh: chonacthas carachtar NUL; ag déanamh neamhshuim ar an chuid eile "
"den líne"
-#: 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 "Níl faic le déanamh i gcomhair `%s'."
-#: remake.c:235
-#, c-format
-msgid "`%s' is up to date."
+#: remake.c:233
+#, fuzzy, c-format
+msgid "'%s' is up to date."
msgstr "Níl gá le `%s' a nuashonrú."
-#: remake.c:306
-#, c-format
-msgid "Pruning file `%s'.\n"
+#: remake.c:305
+#, fuzzy, c-format
+msgid "Pruning file '%s'.\n"
msgstr "Comhad `%s' á bhearradh.\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 "%sNíl aon riail chun an sprioc `%s' a dhéanamh%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 ""
-"%sNíl aon riail chun an sprioc `%s' a dhéanamh, riachtanach le haghaidh `%s'%"
-"s"
+"%sNíl aon riail chun an sprioc `%s' a dhéanamh, riachtanach le haghaidh `"
+"%s'%s"
#: remake.c:413
-#, c-format
-msgid "Considering target file `%s'.\n"
+#, fuzzy, c-format
+msgid "Considering target file '%s'.\n"
msgstr "Comhad sprice `%s' idir lámha.\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 ""
"Rinneadh iarracht ar an chomhad `%s' a nuashonrú le déanaí, agus theip air.\n"
#: remake.c:432
-#, c-format
-msgid "File `%s' was considered already.\n"
+#, fuzzy, c-format
+msgid "File '%s' was considered already.\n"
msgstr "Rinneadh scrúdú ar an chomhad `%s' cheana.\n"
#: remake.c:442
-#, c-format
-msgid "Still updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Still updating file '%s'.\n"
msgstr "Comhad `%s' á nuashonrú fós.\n"
#: remake.c:445
-#, c-format
-msgid "Finished updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Finished updating file '%s'.\n"
msgstr "Nuashonraíodh an comhad `%s'.\n"
#: remake.c:474
-#, c-format
-msgid "File `%s' does not exist.\n"
+#, fuzzy, c-format
+msgid "File '%s' does not exist.\n"
msgstr "Níl a leithéid de chomhad `%s' ann.\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 ""
"*** Warning: comhad .LOW_RESOLUTION_TIME `%s' le stampa ama ardtaifeach"
-#: 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 "Aimsíodh riail intuigthe le haghaidh `%s'.\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 "Níor aimsíodh aon riail intuigthe le haghaidh `%s'.\n"
#: remake.c:502
#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
+msgid "Using default recipe for '%s'.\n"
msgstr "Ag baint úsáid as orduithe réamhshocraithe le haghaidh `%s'.\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
msgstr "Tréigeadh an spleáchas ciorclach %s <- %s."
-#: 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 "Críochnaíodh na réamhriachtanais den chomhad sprice `%s'.\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 "Réamhriachtanais de `%s' á ndéanamh anois.\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 "Ag tréigean an chomhaid sprice `%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 "Ní dhearna an sprioc `%s' arís ós rud é go bhfuil earráidí ann."
-#: remake.c:727
-#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
+#: remake.c:731
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
msgstr ""
"Sonraíonn an réamhriachtanas `%s' ord rite amháin le haghaidh sprice `%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 "Níl an réamhriachtanas `%s' den sprioc `%s' ann.\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 "Tá an réamhriachtanas `%s' níos nuaí ná an sprioc `%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 "Tá an réamhriachtanas `%s' níos sine ná an sprioc `%s'.\n"
-#: remake.c:758
-#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
+#: remake.c:762
+#, fuzzy, c-format
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
msgstr "Tá dhá idirstad ag an sprioc `%s' agus níl aon réamhriachtanas aice.\n"
-#: remake.c:765
+#: remake.c:769
#, fuzzy, 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 ""
"Níl aon ordú le haghaidh `%s' agus níor athraigh aon réamhriachtanas.\n"
-#: 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 "`%s' á dhéanamh de bharr bratach --always-make.\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 "Níl gá leis an sprioc `%s' a athdhéanamh"
-#: remake.c:780
-#, c-format
-msgid "; using VPATH name `%s'"
+#: remake.c:784
+#, fuzzy, c-format
+msgid "; using VPATH name '%s'"
msgstr "; ag baint úsáid as ainm VPATH `%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 "Caithfidh an sprioc `%s' a athdhéanamh.\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 " Ag déanamh neamhshuim ar ainm VPATH `%s'.\n"
-#: remake.c:815
+#: remake.c:819
#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
+msgid "Recipe of '%s' is being run.\n"
msgstr "Orduithe de `%s' á rith.\n"
-#: 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 "Theip ar athdhéanamh an sprioc-chomhaid `%s'.\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 "D'éirigh le hathdhéanamh an sprioc-chomhaid `%s'.\n"
-#: remake.c:828
-#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
+#: remake.c:832
+#, fuzzy, c-format
+msgid "Target file '%s' needs to be remade under -q.\n"
msgstr "Tá gá leis an chomhad sprice `%s' a athdhéanamh leis an rogha -q.\n"
-#: 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 "Ag baint úsáid as orduithe réamhshocraithe le haghaidh `%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 "Rabhadh: Tá an t-am mionathraithe den chomhad `%s' sa todhchaí"
-#: 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 ""
"Rabhadh: Tá an t-am mionathraithe den chomhad `%s' %.2g soicind sa todhchaí"
-#: 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 "Níl eilimint .LIBPATTERNS `%s' ina patrún"
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
msgstr "Ní easpórtálfar Customs: %s\n"
-#: rule.c:499
+#: rule.c:496
msgid ""
"\n"
"# Implicit Rules"
@@ -1637,7 +1848,7 @@ msgstr ""
"\n"
"# Rialacha Intuigthe"
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
@@ -1645,7 +1856,7 @@ msgstr ""
"\n"
"# Níl aon riail intuigthe."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -1654,244 +1865,259 @@ msgstr ""
"\n"
"# %u riail intuigthe, %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr " teirminéal."
-#: rule.c:534
+#: rule.c:531
#, fuzzy, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
msgstr "FABHT: num_pattern_rules mícheart! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "comhartha anaithnid"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
msgstr "Croch suas"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "Idirbhriseadh"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
msgstr "Scoir"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
msgstr "Treoir Neamhcheadaithe"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
msgstr "Rianaigh/brisphointe"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "Tobscortha"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
msgstr "Gaiste IOT"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
msgstr "Gaiste EMT"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
msgstr "Eisceacht snámhphointe"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "Maraithe"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr "Busearráid"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "Fabht deighilte"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "Drochghlao ar an gcóras"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr "Píopa briste"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "Clog aláraim"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
msgstr "Scortha"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr "Comhartha saincheaptha 1"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr "Comhartha saincheaptha 2"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
msgstr "Scoir an mhacphróiseas"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
msgstr "Cliseadh cumhachta"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "Stoptha"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
msgstr "Stoptha (ionchur tty)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
msgstr "Stoptha (aschur tty)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "Stoptha (comhartha)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
msgstr "Teorainn ama LAP sáraithe"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
msgstr "Uasmhéid na gcomhad sáraithe"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
msgstr "Am fíorúil caite"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
msgstr "Am próifíle caite"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
msgstr "Athraíodh an fhuinneog"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "Leanta"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
msgstr "Staid phráinneach A/I"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
msgstr "A/I indéanta"
-#: 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 "Acmhainn caillte"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "Comhartha guaise"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr "Iarratas ar eolas"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
msgstr "Níl comhphróiseálaí snámhphointe ar fáil"
-#: strcache.c:235
+#: strcache.c:236
#, fuzzy, c-format
msgid ""
"\n"
-"%s # of strings in strcache: %d / lookups = %lu / hits = %lu\n"
-msgstr ""
-"\n"
-"%s líon na dteaghrán i strcache: %d\n"
+"%s No strcache buffers\n"
+msgstr "%s líon na maolán strcache: %d\n"
-#: strcache.c:237
+#: strcache.c:266
#, fuzzy, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
-msgstr "%s líon na maolán strcache: %d\n"
+msgid ""
+"\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
+msgstr "%s strcache saor: iomlán = %d / uas = %d / íos = %d / meán = %d\n"
+
+#: strcache.c:270
+#, c-format
+msgid ""
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
+msgstr ""
-#: strcache.c:239
+#: strcache.c:280
#, fuzzy, c-format
-msgid "%s strcache used: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
msgstr "%s méid strcache: iomlán = %d / uas = %d / íos = %d / meán = %d\n"
-#: strcache.c:241
+#: strcache.c:283
#, fuzzy, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
msgstr "%s strcache saor: iomlán = %d / uas = %d / íos = %d / meán = %d\n"
-#: strcache.c:244
-#, fuzzy
+#: 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"
"# comhaid hais-tábla stait:\n"
"# "
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "uathoibríoch"
+
+#: variable.c:1610
msgid "default"
msgstr "réamhshocraithe"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr "timpeallacht"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr "makefile"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
msgstr "timpeallacht le -e"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr "líne na n-orduithe"
-#: variable.c:1556
-msgid "`override' directive"
+#: variable.c:1625
+#, fuzzy
+msgid "'override' directive"
msgstr "treoir `override'"
-#: variable.c:1559
-msgid "automatic"
-msgstr "uathoibríoch"
-
-#: variable.c:1570
-#, c-format
-msgid " (from `%s', line %lu)"
+#: variable.c:1636
+#, fuzzy, c-format
+msgid " (from '%s', line %lu)"
msgstr " (ó `%s', líne %lu)"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
msgstr "# athróg tacar hais-tábla stait:\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1899,7 +2125,7 @@ msgstr ""
"\n"
"# Athróga\n"
-#: variable.c:1627
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
@@ -1907,7 +2133,7 @@ msgstr ""
"\n"
"# Luachanna Athróige sainiúil don phatrún"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
@@ -1915,7 +2141,7 @@ msgstr ""
"\n"
"# Níl aon luach athróige atá sainiúil don phatrún."
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
@@ -1924,93 +2150,93 @@ msgstr ""
"\n"
"# %u luach athróige atá sainiúil don phatrún"
-#: variable.h:219
-#, c-format
-msgid "warning: undefined variable `%.*s'"
+#: variable.h:224
+#, fuzzy, c-format
+msgid "warning: undefined variable '%.*s'"
msgstr "rabhadh: athróg gan sainmhíniú: `%.*s'"
-#: vmsfunctions.c:92
+#: vmsfunctions.c:91
#, fuzzy, c-format
msgid "sys$search() failed with %d\n"
msgstr "Theip ar sys$cuardach le %d\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr "Rabhadh: Atreorú folamh\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 "earráid inmheánach: `%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 ""
"-rabhadh, is féidir gur gá duit ionramháil CTRL-Y a athchumasú ó DCL.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr "INSUITE [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr "CD INSUITE %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr "RM INSUITE %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
msgstr "Ordú anaithnid insuite '%s'\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr "Earráid, ordú folamh\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr "Atreoraíodh ionchur ó %s\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr "Atreoraíodh earráidí go %s\n"
-#: vmsjobs.c:523
+#: vmsjobs.c:518
#, fuzzy, c-format
msgid "Append output to %s\n"
msgstr "Atreoraíodh aschur go %s\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
msgstr "Atreoraíodh aschur go %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 "%s á rith ina áit\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr "Earráid le linn sceitheadh, %d\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
@@ -2018,37 +2244,46 @@ msgstr ""
"\n"
"# VPATH Conairí Cuardaigh\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
+#: vpath.c:600
+#, fuzzy
+msgid "# No 'vpath' search paths."
msgstr "# Níl aon chonair chuardaigh `vpath'."
-#: 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 conair chuardaigh `vpath'.\n"
-#: vpath.c:608
+#: vpath.c:605
+#, fuzzy
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
"# Níl aon chonair ghinearálta cuardaigh (athróg `VPATH')."
-#: vpath.c:614
+#: vpath.c:611
+#, fuzzy
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
"# Conair ghinearálta cuardaigh (athróg `VPATH'):\n"
"# "
+#~ msgid "# Invalid value in `update_status' member!"
+#~ msgstr "# Luach neamhbhailí sa bhall `update_status'!"
+
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] Earráid 0x%x (rinneadh neamhshuim air)"
+
#~ msgid "process_easy() failed failed to launch process (e=%ld)\n"
#~ msgstr "theip ar process_easy(); níor tosaíodh próiseas (e=%ld)\n"
@@ -2071,5 +2306,12 @@ msgstr ""
#~ msgid "invalid `override' directive"
#~ msgstr "treoir neamhbhailí `override'"
+#~ msgid ""
+#~ "\n"
+#~ "%s # of strings in strcache: %d\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s líon na dteaghrán i strcache: %d\n"
+
#~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
#~ msgstr "-rabhadh, fágfaidh CTRL-Y fo-phróisis gan ghlanadh.\n"
diff --git a/po/gl.gmo b/po/gl.gmo
index c3ec093..793358c 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index a4cabbc..335dd64 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -1,123 +1,136 @@
# Galician translation of GNU make.
+# This file is distributed under the same license as the make package.
# Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+# Copyright (C) 2012 Leandro Regueiro.
+#
# Jacobo Tarrio <jtarrio@trasno.net>, 2000, 2002.
+# Leandro Regueiro <leandro.regueiro@gmail.com>, 2012.
+#
+# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas
+# colaborar connosco, podes atopar máis información en http://www.trasno.net
#
msgid ""
msgstr ""
-"Project-Id-Version: make 3.80\n"
+"Project-Id-Version: make 3.82\n"
"Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2010-07-28 01:42-0400\n"
-"PO-Revision-Date: 2002-10-05 14:46+0200\n"
-"Last-Translator: Jacobo Tarrio <jtarrio@trasno.net>\n"
-"Language-Team: Galician <gpul-traduccion@ceu.fi.udc.es>\n"
+"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"PO-Revision-Date: 2012-11-12 16:40+0100\n"
+"Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com>\n"
+"Language-Team: Galician <proxecto@trasno.net>\n"
+"Language: gl\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ar.c:48
-#, c-format
-msgid "attempt to use unsupported feature: `%s'"
-msgstr "tentouse usar unha característica non soportada: `%s'"
+#: ar.c:46
+#, fuzzy, c-format
+msgid "attempt to use unsupported feature: '%s'"
+msgstr "tentouse usar unha característica non admitida: «%s»"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
-msgstr "a operación de tocar un membro do arquivo non está dispoñible en VMS"
+msgstr "a operación de tocar un membro do arquivo non está dispoñíbel en VMS"
-#: ar.c:149
-#, c-format
-msgid "touch: Archive `%s' does not exist"
-msgstr "touch: O arquivo `%s' non existe"
-
-#: ar.c:152
-#, c-format
-msgid "touch: `%s' is not a valid archive"
-msgstr "touch: `%s' non é un arquivo válido"
+#: ar.c:147
+#, fuzzy, c-format
+msgid "touch: Archive '%s' does not exist"
+msgstr "touch: O arquivo «%s» non existe"
-#: ar.c:159
-#, c-format
-msgid "touch: Member `%s' does not exist in `%s'"
-msgstr "touch: O membro `%s' non existe en `%s'"
+#: ar.c:150
+#, fuzzy, c-format
+msgid "touch: '%s' is not a valid archive"
+msgstr "touch: «%s» non é un arquivo válido"
-#: ar.c:166
-#, c-format
-msgid "touch: Bad return code from ar_member_touch on `%s'"
-msgstr "touch: Código de retorno incorrecto de ar_member_touch en `%s'"
+#: ar.c:157
+#, fuzzy, c-format
+msgid "touch: Member '%s' does not exist in '%s'"
+msgstr "touch: O membro «%s» non existe en «%s»"
-#: arscan.c:69
+#: ar.c:164
#, fuzzy, c-format
+msgid "touch: Bad return code from ar_member_touch on '%s'"
+msgstr "touch: Código de retorno incorrecto de ar_member_touch en «%s»"
+
+#: arscan.c:67
+#, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
msgstr ""
-"a chamada a lbr$set_module non puido extrae-la información do módulo, status "
-"= %d"
+"a chamada a lbr$set_module() fallou ao extraer a información do módulo, "
+"estado = %d"
-#: arscan.c:175
-#, fuzzy, c-format
+#: arscan.c:173
+#, c-format
msgid "lbr$ini_control() failed with status = %d"
-msgstr "a chamada a lbr$ini_control fallou con status = %d"
+msgstr "a chamada a lbr$ini_control() fallou con estado = %d"
-#: arscan.c:187
-#, c-format
-msgid "unable to open library `%s' to lookup member `%s'"
-msgstr "non se pode abri-la biblioteca `%s' para busca-lo membro `%s'"
+#: arscan.c:185
+#, fuzzy, c-format
+msgid "unable to open library '%s' to lookup member '%s'"
+msgstr "non é posíbel abrir a biblioteca «%s» para buscar o membro «%s»"
-#: arscan.c:850
-#, c-format
-msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n"
-msgstr "Membro `%s'%s: %ld bytes en %ld (%ld).\n"
+#: arscan.c:847
+#, fuzzy, c-format
+msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
+msgstr "Membro «%s»%s: %ld bytes en %ld (%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr " (o nome pode quedar truncado)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Data %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d, gid = %d, modo = 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 "*** Interrompido.\n"
-#: commands.c:622
-#, c-format
-msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
-msgstr "*** [%s] O membro do arquivo `%s' pode non ser correcto; non borrado"
+#: commands.c:630
+#, fuzzy, c-format
+msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
+msgstr "*** [%s] O membro do arquivo «%s» pode non ser correcto; non eliminado"
-#: commands.c:625
-#, c-format
-msgid "*** Archive member `%s' may be bogus; not deleted"
-msgstr "*** O membro do arquivo `%s' pode non ser correcto; non borrado"
+#: commands.c:633
+#, fuzzy, c-format
+msgid "*** Archive member '%s' may be bogus; not deleted"
+msgstr "*** O membro do arquivo «%s» pode non ser correcto; non eliminado"
-#: commands.c:638
-#, c-format
-msgid "*** [%s] Deleting file `%s'"
-msgstr "*** [%s] Borrando o ficheiro `%s'"
+#: commands.c:646
+#, fuzzy, c-format
+msgid "*** [%s] Deleting file '%s'"
+msgstr "*** [%s] Eliminando o ficheiro «%s»"
-#: commands.c:640
-#, c-format
-msgid "*** Deleting file `%s'"
-msgstr "*** Borrando o ficheiro `%s'"
+#: commands.c:648
+#, fuzzy, c-format
+msgid "*** Deleting file '%s'"
+msgstr "*** Eliminando o ficheiro «%s»"
-#: commands.c:676
-#, fuzzy
+#: commands.c:684
msgid "# recipe to execute"
-msgstr "# comandos para executar"
+msgstr ""
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
-msgstr " (incluidas):"
+msgstr " (incorporadas):"
-#: commands.c:681
-#, c-format
-msgid " (from `%s', line %lu):\n"
-msgstr " (de `%s', liña %lu):\n"
+#: commands.c:689
+#, fuzzy, c-format
+msgid " (from '%s', line %lu):\n"
+msgstr " (desde «%s», liña %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -125,223 +138,222 @@ msgstr ""
"\n"
"# Directorios\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
-msgstr "# %s: non se puido face-la operación de stat.\n"
+msgstr "# %s: non foi posíbel facer a operación de stat.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
-msgstr "# %s (clave %s, mtime %d): non se puido abrir.\n"
+msgstr "# %s (clave %s, mtime %d): non foi posíbel abrir.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
-msgstr "# %s (dispositivo %d, inode [%d,%d,%d]): non se puido abrir.\n"
+msgstr "# %s (dispositivo %d, inodo [%d,%d,%d]): non foi posíbel abrir.\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
-msgstr "# %s (dispositivo %ld, inode %ld): non se puido abrir.\n"
+msgstr "# %s (dispositivo %ld, inodo %ld): non foi posíbel abrir.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr "# %s (clave %s, mtime %d): "
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
-msgstr "# %s (dispositivo %d, inode [%d,%d,%d]): "
+msgstr "# %s (dispositivo %d, inodo [%d,%d,%d]): "
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
-msgstr "# %s (dispositivo %ld, inode %ld): "
+msgstr "# %s (dispositivo %ld, inodo %ld): "
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "Non"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " ficheiros, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "non"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
-msgstr " imposibles"
+msgstr " imposíbeis"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
-msgstr " ata aquí."
+msgstr " ata aquí."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
-msgstr " imposibles en %lu directorios.\n"
+msgstr " imposíbeis en %lu directorios.\n"
-#: expand.c:127
-#, c-format
-msgid "Recursive variable `%s' references itself (eventually)"
-msgstr "A variable recursiva `%s' fai referencia a si mesma (ao final)"
+#: expand.c:125
+#, fuzzy, c-format
+msgid "Recursive variable '%s' references itself (eventually)"
+msgstr "A variábel recursiva «%s» fai referencia a si mesma (ao final)"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
-msgstr "referencia a variable non rematada"
-
-#: file.c:267
-#, fuzzy, c-format
-msgid "Recipe was specified for file `%s' at %s:%lu,"
-msgstr "Especificáronse comandos do ficheiro `%s' en %s:%lu,"
+msgstr "referencia a variábel non rematada"
-#: file.c:272
-#, fuzzy, c-format
-msgid "Recipe for file `%s' was found by implicit rule search,"
+#: file.c:269
+#, c-format
+msgid "Recipe was specified for file '%s' at %s:%lu,"
msgstr ""
-"Atopáronse os comandos do ficheiro `%s' por busca de regras implícitas,"
-#: file.c:275
+#: file.c:274
#, c-format
-msgid "but `%s' is now considered the same file as `%s'."
-msgstr "pero agora considérase que `%s' é o mesmo ficheiro que `%s'."
+msgid "Recipe for file '%s' was found by implicit rule search,"
+msgstr ""
-#: file.c:278
+#: file.c:277
#, fuzzy, c-format
-msgid "Recipe for `%s' will be ignored in favor of the one for `%s'."
-msgstr "Os comandos de `%s' serán ignorados en favor dos de `%s'."
+msgid "but '%s' is now considered the same file as '%s'."
+msgstr "pero agora considérase que «%s» é o mesmo ficheiro que «%s»."
-#: file.c:298
+#: file.c:280
#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
-msgstr "non se pode renomear `%s' con dous puntos a `%s' con catro puntos"
+msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
+msgstr ""
-#: file.c:303
-#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
-msgstr "non se pode renomear `%s' con catro puntos a `%s' con dous puntos"
+#: file.c:300
+#, fuzzy, c-format
+msgid "can't rename single-colon '%s' to double-colon '%s'"
+msgstr "non é posíbel renomear «%s» con dous puntos a «%s» con catro puntos"
-#: file.c:392
-#, c-format
-msgid "*** Deleting intermediate file `%s'"
-msgstr "*** Borrando o ficheiro intermedio `%s'"
+#: file.c:305
+#, fuzzy, c-format
+msgid "can't rename double-colon '%s' to single-colon '%s'"
+msgstr "non é posíbel renomear «%s» con catro puntos a «%s» con dous puntos"
#: file.c:396
+#, fuzzy, c-format
+msgid "*** Deleting intermediate file '%s'"
+msgstr "*** Eliminando o ficheiro intermedio «%s»"
+
+#: file.c:400
msgid "Removing intermediate files...\n"
-msgstr "Borrando os ficheiros intermedios...\n"
+msgstr "Retirando os ficheiros intermedios...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
-msgstr "%s: Marca de tempo fóra de rango; substituíndo %s"
+msgstr "%s: Marca de tempo fóra de rango; substituíndo %s"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "Hora actual"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
-msgstr "# Non é un obxectivo:"
+msgstr "# Non é un obxectivo:"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
msgstr "# Ficheiro precioso (prerrequisito de .PRECIOUS)."
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
msgstr "# Obxectivo falso (prerrequisito de .PHONY)."
-#: file.c:933
-#, fuzzy
+#: file.c:958
msgid "# Command line target."
-msgstr "# Obxectivo da liña de comando."
+msgstr "# Obxectivo da liña de ordes."
-#: file.c:935
-#, fuzzy
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
-msgstr "# Un ficheiro de make por defecto ou de MAKEFILES."
+msgstr "# Un ficheiro de make por defecto, MAKEFILES, ou -include/sinclude."
-#: file.c:937
+#: file.c:962
+#, fuzzy
+msgid "# Builtin rule"
+msgstr ""
+"\n"
+"# Non hai regras implícitas."
+
+#: file.c:964
msgid "# Implicit rule search has been done."
-msgstr "# Fíxose a busca de regras implícitas."
+msgstr "# Fíxose a busca de regras implícitas."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
-msgstr "# Non se fixo a busca de regras implícitas."
+msgstr "# Non se fixo a busca de regras implícitas."
-#: file.c:940
-#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
-msgstr "# Raiz do patrón implícito/estático: `%s'\n"
+#: file.c:967
+#, fuzzy, c-format
+msgid "# Implicit/static pattern stem: '%s'\n"
+msgstr "# Raíz do patrón implícito/estático: «%s»\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
-msgstr "# O ficheiro é un prerrequisito intermedio."
+msgstr "# O ficheiro é un prerrequisito intermedio."
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
-msgstr "# Tamén se fai:"
+msgstr "# Tamén se fai:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
-msgstr "# Nunca se comprobou o tempo de modificación."
+msgstr "# Nunca se comprobou o tempo de modificación."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# O ficheiro non existe."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
-msgstr "# O ficheiro é moi antigo."
+msgstr "# O ficheiro é moi antigo."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
-msgstr "# Última modificación: %s\n"
+msgstr "# Última modificación: %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# O ficheiro foi actualizado."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# O ficheiro non foi actualizado."
-#: file.c:968
-#, fuzzy
+#: file.c:995
msgid "# Recipe currently running (THIS IS A BUG)."
-msgstr "# Comandos que se están a executar agora (ISTO É UN ERRO)."
+msgstr ""
-#: file.c:971
-#, fuzzy
+#: file.c:998
msgid "# Dependencies recipe running (THIS IS A BUG)."
-msgstr "# Comandos de dependencias que se están a executar (ISTO É UN ERRO)."
+msgstr ""
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
-msgstr "# Actualizado con éxito."
+msgstr "# Actualizado con éxito."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
-msgstr "# Ten que ser actualizado (-q está estabrecido)."
+msgstr "# Ten que ser actualizado (-q está definido)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
-msgstr "# Non se puido actualizar."
-
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# ¡Valor non válido no membro `update_status'!"
+msgstr "# Produciuse un erro ao actualizar."
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
-msgstr "# ¡Valor non válido no membro `command_state'!"
+#: file.c:1019
+#, fuzzy
+msgid "# Invalid value in 'command_state' member!"
+msgstr "# Valor non válido no membro «command_state»!"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -349,131 +361,189 @@ msgstr ""
"\n"
"# Ficheiros"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
"# "
msgstr ""
"\n"
-"# estatísticas da táboa hash de ficheiros:\n"
+"# estatísticas da táboa hash de ficheiros:\n"
"# "
-#: function.c:758
-msgid "non-numeric first argument to `word' function"
-msgstr "primeiro argumento da función `word' non numérico"
+#: 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 "primeiro argumento da función «word» non numérico"
-#: function.c:763
-msgid "first argument to `word' function must be greater than 0"
-msgstr "o primeiro argumento da función `word' debe ser maior que 0"
+#: function.c:747
+#, fuzzy
+msgid "first argument to 'word' function must be greater than 0"
+msgstr "o primeiro argumento da función «word» debe ser maior que 0"
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
-msgstr "primeiro argumento da función `wordlist' non numérico"
+#: function.c:767
+#, fuzzy
+msgid "non-numeric first argument to 'wordlist' function"
+msgstr "primeiro argumento da función «wordlist» non numérico"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
-msgstr "segundo argumento da función `wordlist' non numérico"
+#: function.c:769
+#, fuzzy
+msgid "non-numeric second argument to 'wordlist' function"
+msgstr "segundo argumento da función «wordlist» non numérico"
-#: function.c:1458
+#: function.c:1460
#, fuzzy, c-format
-msgid "windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"
-msgstr "process_easy: a chamada a DuplicateHandle(In) fallou (e=%d)\n"
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
+msgstr "windows32_openpipe(): a chamada a DuplicateHandle(In) fallou (e=%ld)\n"
-#: function.c:1469
+#: function.c:1483
#, fuzzy, c-format
-msgid "windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr "process_easy: a chamada a DuplicateHandle(Err) fallou (e=%d)\n"
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
+msgstr ""
+"windows32_open_pipe(): a chamada a DuplicateHandle(Err) fallou (e=%ld)\n"
-#: function.c:1474
-#, fuzzy, c-format
+#: function.c:1490
+#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
-msgstr "A chamada a CreatePipe() fallou (e=%d)\n"
+msgstr "A chamada a CreatePipe() fallou (e=%ld)\n"
-#: function.c:1479
-#, fuzzy
+#: function.c:1498
msgid "windows32_openpipe(): process_init_fd() failed\n"
-msgstr "windows32_openpipe (): a chamada a process_init_fd() fallou\n"
+msgstr "windows32_openpipe(): a chamada a process_init_fd() fallou\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr "Limpando o ficheiro de lotes temporal %s\n"
-#: function.c:2150
+#: function.c:2151
#, fuzzy, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
-msgstr "Número de argumentos insuficiente (%d) na chamada á función `%s'"
+msgid "open: %s: %s"
+msgstr "%s: %s"
-#: function.c:2162
+#: function.c:2158
#, fuzzy, c-format
-msgid "unimplemented on this platform: function `%s'"
-msgstr "Non implementada nesta plataforma: función `%s'"
+msgid "write: %s: %s"
+msgstr "erro de escritura: %s"
-#: function.c:2212
+#: function.c:2164
#, c-format
-msgid "unterminated call to function `%s': missing `%c'"
-msgstr "chamada á función `%s' non rematada: falla `%c'"
+msgid "Invalid file operation: %s"
+msgstr ""
-#: getopt.c:661
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: a opción `%s' é ambigua\n"
+#: function.c:2279
+#, fuzzy, c-format
+msgid "insufficient number of arguments (%d) to function '%s'"
+msgstr "número de argumentos insuficiente (%d) na chamada á función «%s»"
-#: getopt.c:685
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: a opción `--%s' non admite un argumento\n"
+#: function.c:2291
+#, fuzzy, c-format
+msgid "unimplemented on this platform: function '%s'"
+msgstr "non implementada nesta plataforma: función «%s»"
-#: getopt.c:690
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: a opción `%c%s' non admite un argumento\n"
+#: function.c:2354
+#, fuzzy, c-format
+msgid "unterminated call to function '%s': missing '%c'"
+msgstr "chamada á función «%s» non rematada: falta «%c»"
-#: getopt.c:707 getopt.c:880
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: a opción `%s' precisa dun argumento\n"
+#: function.c:2546
+msgid "Empty function name\n"
+msgstr ""
-#: getopt.c:736
+#: function.c:2548
#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: opción `--%s' non recoñecida\n"
+msgid "Invalid function name: %s\n"
+msgstr ""
-#: getopt.c:740
+#: function.c:2550
#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: opción `%c%s' non recoñecida\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 "número de argumentos insuficiente (%d) na chamada á función «%s»"
+
+#: function.c:2555
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "número de argumentos insuficiente (%d) na chamada á función «%s»"
+
+#: getopt.c:659
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: a opción «%s» é ambigua\n"
+
+#: getopt.c:683
+#, fuzzy, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: a opción «--%s» non permite ningún argumento\n"
-#: getopt.c:766
+#: getopt.c:688
+#, fuzzy, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: a opción «%c%s» non permite ningún argumento\n"
+
+#: getopt.c:705 getopt.c:878
+#, fuzzy, c-format
+msgid "%s: option '%s' requires an argument\n"
+msgstr "%s: a opción «%s» require un argumento\n"
+
+#: getopt.c:734
+#, fuzzy, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: opción «--%s» non recoñecida\n"
+
+#: getopt.c:738
+#, fuzzy, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: opción «%c%s» non recoñecida\n"
+
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
-msgstr "%s: opción non válida -- %c\n"
+msgstr "%s: opción inaceptábel -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
-msgstr "%s: opción non válida -- %c\n"
+msgstr "%s: opción incorrecta -- %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: a opción precisa dun argumento -- %c\n"
+msgstr "%s: a opción require un argumento -- %c\n"
+
+#: getopt.c:844
+#, fuzzy, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: a opción «-W %s» é ambigua\n"
+
+#: getopt.c:862
+#, fuzzy, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: a opción «-W %s» non permite ningún argumento\n"
-#: getopt.c:846
+#: guile.c:55
#, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
-msgstr "%s: a opción `-W %s' é ambigua\n"
+msgid "guile: Expanding '%s'\n"
+msgstr ""
-#: getopt.c:864
+#: guile.c:71
#, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr "%s: a opción `-W %s' non admite un argumento\n"
+msgid "guile: Evaluating '%s'\n"
+msgstr ""
#: hash.c:49
-#, fuzzy, c-format
+#, c-format
msgid "can't allocate %lu bytes for hash table: memory exhausted"
-msgstr "non se poden reservar %ld bytes para a táboa hash: memoria esgotada"
+msgstr "non se poden reservar %lu bytes para a táboa hash: memoria esgotada"
#: hash.c:280
#, c-format
@@ -488,248 +558,324 @@ msgstr "Rehash=%d, "
#: hash.c:283
#, c-format
msgid "Collisions=%ld/%ld=%.0f%%"
-msgstr "Colisións=%ld/%ld=%.0f%%"
+msgstr "Colisións=%ld/%ld=%.0f%%"
-#: implicit.c:40
-#, c-format
-msgid "Looking for an implicit rule for `%s'.\n"
-msgstr "Buscando unha regra implícita para `%s'.\n"
+#: implicit.c:38
+#, fuzzy, c-format
+msgid "Looking for an implicit rule for '%s'.\n"
+msgstr "Buscando unha regra implícita para «%s».\n"
-#: implicit.c:56
-#, c-format
-msgid "Looking for archive-member implicit rule for `%s'.\n"
-msgstr "Buscando unha regra implícita membro do arquivo para `%s'.\n"
+#: implicit.c:54
+#, fuzzy, c-format
+msgid "Looking for archive-member implicit rule for '%s'.\n"
+msgstr "Buscando unha regra implícita membro do arquivo para «%s».\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
-msgstr "Evitando a recursión de regras implícitas.\n"
+msgstr "Evitando a recursión de regras implícitas.\n"
-#: implicit.c:491
+#: implicit.c:486
#, c-format
-msgid "Trying pattern rule with stem `%.*s'.\n"
-msgstr "Probando a regra de patrón con raiz `%.*s'.\n"
+msgid "Stem too long: '%.*s'.\n"
+msgstr ""
-#: implicit.c:674
-#, c-format
-msgid "Rejecting impossible rule prerequisite `%s'.\n"
-msgstr "Rexeitando o prerrequisito imposible `%s'.\n"
+#: implicit.c:491
+#, fuzzy, c-format
+msgid "Trying pattern rule with stem '%.*s'.\n"
+msgstr "Probando a regra de patrón con raíz «%.*s».\n"
-#: implicit.c:675
-#, c-format
-msgid "Rejecting impossible implicit prerequisite `%s'.\n"
-msgstr "Rexeitando o prerrequisito implícito imposible `%s'.\n"
+#: implicit.c:697
+#, fuzzy, c-format
+msgid "Rejecting impossible rule prerequisite '%s'.\n"
+msgstr "Rexeitando o prerrequisito imposíbel «%s».\n"
-#: implicit.c:688
-#, c-format
-msgid "Trying rule prerequisite `%s'.\n"
-msgstr "Probando o prerrequisito `%s'.\n"
+#: implicit.c:698
+#, fuzzy, c-format
+msgid "Rejecting impossible implicit prerequisite '%s'.\n"
+msgstr "Rexeitando o prerrequisito implícito imposíbel «%s».\n"
-#: implicit.c:689
-#, c-format
-msgid "Trying implicit prerequisite `%s'.\n"
-msgstr "Probando o prerrequisito implícito `%s'.\n"
+#: implicit.c:711
+#, fuzzy, c-format
+msgid "Trying rule prerequisite '%s'.\n"
+msgstr "Probando o prerrequisito «%s».\n"
-#: implicit.c:728
-#, c-format
-msgid "Found prerequisite `%s' as VPATH `%s'\n"
-msgstr "Atopouse a o prerrequisito `%s' coma VPATH `%s'\n"
+#: implicit.c:712
+#, fuzzy, c-format
+msgid "Trying implicit prerequisite '%s'.\n"
+msgstr "Probando o prerrequisito implícito «%s».\n"
-#: implicit.c:742
-#, c-format
-msgid "Looking for a rule with intermediate file `%s'.\n"
-msgstr "Buscando unha regra co ficheiro intermedio `%s'.\n"
+#: implicit.c:751
+#, fuzzy, c-format
+msgid "Found prerequisite '%s' as VPATH '%s'\n"
+msgstr "Atopouse a o prerrequisito «%s» como VPATH «%s»\n"
-#: job.c:335
-#, fuzzy
+#: implicit.c:765
+#, fuzzy, c-format
+msgid "Looking for a rule with intermediate file '%s'.\n"
+msgstr "Buscando unha regra co ficheiro intermedio «%s».\n"
+
+#: job.c:361
msgid "Cannot create a temporary file\n"
-msgstr "fwrite (ficheiro temporal)"
+msgstr "Non foi posíbel crear un ficheiro temporal\n"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] Erro 0x%x (ignorado)"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (memoria envorcada)"
-#: job.c:450
-#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] Erro 0x%x"
+#: job.c:487
+msgid " (ignored)"
+msgstr " (ignorado)"
-#: job.c:454
-#, c-format
-msgid "[%s] Error %d (ignored)"
-msgstr "[%s] Erro %d (ignorado)"
+#: job.c:491 job.c:1994
+#, fuzzy
+msgid "<builtin>"
+msgstr " (incorporadas):"
-#: job.c:455
+#: 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] Erro 0x%x"
+
+#: job.c:513
+#, fuzzy, c-format
+msgid "%s[%s] Error %d%s"
msgstr "*** [%s] Erro %d"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (memoria envorcada)"
+#: 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 "*** Agardando por traballos non rematados...."
-#: job.c:579
-#, fuzzy, c-format
+#: job.c:639
+#, c-format
msgid "Live child %p (%s) PID %s %s\n"
-msgstr "Proceso fillo vivo 0x%08lx (%s) PID %ld %s\n"
+msgstr "Proceso fillo vivo %p (%s) PID %s %s\n"
-#: 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 " (remoto)"
-#: job.c:758
-#, fuzzy, c-format
+#: job.c:829
+#, c-format
msgid "Reaping losing child %p PID %s %s\n"
-msgstr "Colleitando o proceso fillo perdedor 0x%08lx PID %ld %s\n"
+msgstr "Colleitando o proceso fillo perdedor %p PID %s %s\n"
-#: job.c:759
-#, fuzzy, c-format
+#: job.c:830
+#, c-format
msgid "Reaping winning child %p PID %s %s\n"
-msgstr "Colleitando o proceso fillo gañador 0x%08lx PID %ld %s\n"
+msgstr "Colleitando o proceso fillo gañador %p PID %s %s\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
msgstr "Limpando o ficheiro de lotes temporal %s\n"
-#: job.c:861
+#: job.c:843
#, fuzzy, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "Limpando o ficheiro de lotes temporal %s\n"
+
+#: job.c:949
+#, c-format
msgid "Removing child %p PID %s%s from chain.\n"
-msgstr "Eliminando o proceso fillo 0x%08lx PID %ld%s da cadea.\n"
+msgstr "Retirando o proceso fillo %p PID %s%s da cadea.\n"
-#: job.c:920
-msgid "write jobserver"
-msgstr "write jobserver"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr ""
-#: job.c:922
-#, fuzzy, c-format
+#: job.c:1011 job.c:1025
+#, c-format
msgid "Released token for child %p (%s).\n"
-msgstr "Liberouse un elemento para o proceso fillo 0x%08lx (%s).\n"
+msgstr "Liberouse un elemento para o proceso fillo %p (%s).\n"
-#: job.c:1453 job.c:2094
-#, fuzzy, c-format
+#: job.c:1023
+msgid "write jobserver"
+msgstr ""
+
+#: job.c:1612 job.c:2332
+#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
-msgstr "process_easy() non puido lanza-lo proceso (e=%d)\n"
+msgstr "produciuse un erro ao iniciar process_easy() o proceso (e=%ld)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
"Counted %d args in failed launch\n"
msgstr ""
"\n"
-"Contáronse %d argumentos no lanzamento que fallou\n"
+"Contáronse %d argumentos no inicio que fallou\n"
-#: job.c:1525
-#, fuzzy, c-format
+#: job.c:1685
+#, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
-msgstr "Poñendo o proceso fillo 0x%08lx (%s) PID %ld%s na cadea.\n"
+msgstr "Poñendo o proceso fillo %p (%s) PID %s%s na cadea.\n"
-#: job.c:1778
-#, fuzzy, c-format
+#: 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 "Obtívose un elemento para o proceso fillo 0x%08lx (%s).\n"
+msgstr "Obtívose un elemento para o proceso fillo %p (%s).\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
-msgstr "lectura do cano de traballos"
+msgstr "lectura da canalización de traballos"
-#: 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: O arquivo «%s» non existe"
-#: job.c:1802
+#: job.c:2005
#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "Non é preciso reface-lo obxectivo `%s'"
+msgid "%s: update target '%s' due to: %s"
+msgstr "%sNon hai unha regra para facer o obxectivo «%s», que precisa «%s»%s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
-msgstr "non se poden impoñer límites de carga neste sistema operativo"
+msgstr "non é posíbel impoñer límites de carga neste sistema operativo"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
-msgstr "non se pode impoñer un límite de carga: "
+msgstr "non é posíbel impoñer un límite de carga: "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
msgstr ""
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
msgstr ""
-#: job.c:2015
+#: job.c:2223
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr ""
+
+#: job.c:2238
msgid "Could not restore stdin\n"
msgstr ""
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
msgstr ""
-#: job.c:2127
-#, fuzzy, c-format
+#: job.c:2254
+msgid "Could not restore stderr\n"
+msgstr ""
+
+#: job.c:2365
+#, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
msgstr ""
-"make colleitou un proceso fillo de pid %d, ainda se agarda polo pid %d\n"
+"make colleitou un proceso fillo de pid %s, aínda se agarda polo pid %s\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
-msgstr "%s: Comando non atopado"
+msgstr "%s: Orde non atopada"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
-msgstr "%s: Intérprete de comandos non atopado"
+msgstr "%s: Programa para o intérprete de ordes non atopado"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
msgstr ""
-#: job.c:2461
+#: job.c:2709
#, fuzzy, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
-msgstr "O valor de $SHELL cambiou (antes era `%s', agora `%s')"
+msgid "$SHELL changed (was '%s', now '%s')\n"
+msgstr "O valor de $SHELL cambiou (antes era «%s», agora é «%s»)\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr "Creando un ficheiro por lotes temporal %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 (liña %d) Contexto do intérprete de comandos incorrecto (!unixy && !"
+"%s (liña %d) Contexto do intérprete de ordes incorrecto (!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 "Non se admiten os traballos en paralelo (-j) nesta plataforma."
+
+#: main.c:312
msgid "Options:\n"
-msgstr "Opcións:\n"
+msgstr "Opcións:\n"
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
msgstr " -b, -m Ignorado por compatibilidade.\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr ""
-" -B, --always-make Facer tódolos obxectivos incondicionalmente.\n"
+" -B, --always-make Facer todos os obxectivos incondicionalmente.\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
@@ -737,75 +883,73 @@ msgstr ""
" -C DIRECTORIO, --directory=DIRECTORIO\n"
" Cambiar ao DIRECTORIO antes de facer nada.\n"
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
msgstr ""
-" -d Amosar moita información de depuración.\n"
+" -d Mostrar moita información de depuración.\n"
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
-" --debug[=MODIFICADORES] Amosar varios tipos de información de "
-"depuración.\n"
+" --debug[=MODIFICADORES] Mostrar varios tipos de información de "
+"depuración.\n"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
msgstr ""
" -e, --environment-overrides\n"
-" As variables de ambiente substitúen aos "
-"ficheiros\n"
-" de make.\n"
+" As variábei de ambiente substitúen aos "
+"makefiles.\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"
msgstr ""
" -f FICHEIRO, --file=FICHEIRO, --makefile=FICHEIRO\n"
-" Le-lo FICHEIRO coma ficheiro de make.\n"
+" Ler o FICHEIRO como makefile.\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
-msgstr " -h, --help Amosar esta mensaxe e saír.\n"
+msgstr " -h, --help Mostrar esta mensaxe e saír.\n"
-#: main.c:325
-#, fuzzy
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
-msgstr " -i, --ignore-errors Ignora-los erros dos comandos.\n"
+msgstr ""
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
msgstr ""
" -I DIRECTORIO, --include-dir=DIRECTORIO\n"
-" Busca-los ficheiros de make incluídos\n"
-" no directorio.\n"
+" Buscar os makefiles incluídos\n"
+" no DIRECTORIO.\n"
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
msgstr ""
-" -j [N], --jobs[=N] Admitir N traballos á vez; infinitos sen\n"
+" -j [N], --jobs[=N] Permitir N traballos á vez; infinitos sen\n"
" un argumento.\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 Continuar cando no se poidan facer\n"
-" algúns obxectivos.\n"
+" algúns obxectivos.\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 "
@@ -815,13 +959,13 @@ msgstr ""
" Non iniciar varios traballos con carga\n"
" superior a N.\n"
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
msgstr ""
-#: main.c:339
+#: main.c:348
#, fuzzy
msgid ""
" -n, --just-print, --dry-run, --recon\n"
@@ -829,49 +973,51 @@ msgid ""
"them.\n"
msgstr ""
" -n, --just-print, --dry-run, --recon\n"
-" Non executar ningún comando; só amosalos.\n"
+" Non executar ningún comando; só amosalos.\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 "
"it.\n"
msgstr ""
" -o FICHEIRO, --old-file=FICHEIRO, --assume-old=FICHEIRO\n"
-" Trata-lo FICHEIRO coma moi antigo e non "
+" Tratar o FICHEIRO como moi antigo e non "
"refacelo.\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 Amosa-la base de datos interna de make.\n"
+" -p, --print-data-base Mostrar a base de datos interna de make.\n"
-#: main.c:347
-#, fuzzy
+#: main.c:359
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
msgstr ""
-" -q, --question Non executar ningún comando; o estado de\n"
-" saída di se está actualizado.\n"
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr ""
-" -r, --no-builtin-rules Desactiva-las regras implícitas incluidas.\n"
+" -r, --no-builtin-rules Desactivar as regras implícitas incorporadas.\n"
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr ""
-" -R, --no-builtin-variables Desactiva-los valores das variables "
-"incluidos.\n"
+" -R, --no-builtin-variables Desactivar os valores das variábeis "
+"incorporadas.\n"
-#: main.c:353
-#, fuzzy
+#: main.c:365
msgid " -s, --silent, --quiet Don't echo recipes.\n"
-msgstr " -s, --silent, --quiet Non amosa-los comandos.\n"
+msgstr ""
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
@@ -879,22 +1025,28 @@ msgstr ""
" -S, --no-keep-going, --stop\n"
" Desactiva -k.\n"
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
-" -t, --touch Toca-los obxectivos no canto de os refacer.\n"
+" -t, --touch Tocar os obxectivos no canto de os refacer.\n"
+
+#: main.c:372
+#, fuzzy
+msgid " --trace Print tracing information.\n"
+msgstr ""
+" -d Mostrar moita información de depuración.\n"
-#: main.c:360
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr ""
-" -v, --version Amosa-lo número de versión de make e saír.\n"
+" -v, --version Mostrar o número de versión de make e saír.\n"
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
-msgstr " -w, --print-directory Amosa-lo directorio actual.\n"
+msgstr " -w, --print-directory Mostrar o directorio actual.\n"
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
@@ -902,40 +1054,50 @@ msgstr ""
" --no-print-directory Desactivar -w, incluso se se activou\n"
" implicitamente.\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"
msgstr ""
" -W FICHEIRO, --what-if=FICHEIRO, --new-file=FICHEIRO, --assume-"
"new=FICHEIRO\n"
-" Trata-lo FICHEIRO coma infinitamente novo.\n"
+" Tratar o FICHEIRO como infinitamente novo.\n"
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
msgstr ""
" --warn-undefined-variables Avisar cando se faga referencia a\n"
-" unha variable non definida.\n"
+" unha variábel non definida.\n"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
-msgstr "a cadea baleira non é válida coma nome de ficheiro"
+msgstr "a cadea baleira non é válida como nome de ficheiro"
-#: main.c:650
+#: main.c:734
+#, fuzzy, c-format
+msgid "unknown debug level specification '%s'"
+msgstr "especificación de nivel de depuración descoñecido «%s»"
+
+#: main.c:777
#, c-format
-msgid "unknown debug level specification `%s'"
-msgstr "especificación de nivel de depuración descoñecido `%s'"
+msgid "unknown output-sync type '%s'"
+msgstr ""
-#: main.c:690
-#, fuzzy, c-format
+#: main.c:787
+#, fuzzy
+msgid "internal error: multiple --sync-mutex options"
+msgstr "erro interno: opcións --jobserver-fds múltiples"
+
+#: main.c:848
+#, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
msgstr ""
-"%s: Atrapouse unha Interrupción/Excepción (código = 0x%x, enderezo = 0x%x)\n"
+"%s: Atrapouse unha Interrupción/Excepción (código = 0x%lx, enderezo = 0x%p)\n"
-#: main.c:697
-#, fuzzy, c-format
+#: main.c:855
+#, c-format
msgid ""
"\n"
"Unhandled exception filter called from program %s\n"
@@ -944,168 +1106,190 @@ msgid ""
"ExceptionAddress = 0x%p\n"
msgstr ""
"\n"
-"Filtro de excepcións non manexadas chamado dende o programa %s\n"
-"ExceptionCode = %x\n"
-"ExceptionFlags = %x\n"
-"ExceptionAddress = %x\n"
+"Filtro de excepcións non manexadas chamado desde o programa %s\n"
+"ExceptionCode = %lx\n"
+"ExceptionFlags = %lx\n"
+"ExceptionAddress = 0x%p\n"
-#: main.c:705
-#, fuzzy, c-format
+#: main.c:863
+#, c-format
msgid "Access violation: write operation at address 0x%p\n"
-msgstr "Violación de acceso: operación de escritura no enderezo %x\n"
+msgstr "Violación de acceso: operación de escritura no enderezo 0x%p\n"
-#: main.c:706
-#, fuzzy, c-format
+#: main.c:864
+#, c-format
msgid "Access violation: read operation at address 0x%p\n"
-msgstr "Violación de acceso: operación de lectura no enderezo %x\n"
+msgstr "Violación de acceso: operación de lectura no enderezo 0x%p\n"
-#: main.c:781 main.c:792
-#, fuzzy, c-format
+#: main.c:940 main.c:955
+#, c-format
msgid "find_and_set_shell() setting default_shell = %s\n"
-msgstr "find_and_set_shell estabrecendo default_shell = %s\n"
+msgstr "find_and_set_shell() definindo default_shell = %s\n"
-#: main.c:834
-#, fuzzy, c-format
+#: main.c:1008
+#, c-format
msgid "find_and_set_shell() path search set default_shell = %s\n"
-msgstr "find_and_set_shell busca de camiños estabrece default_shell = %s\n"
+msgstr "A busca de rutas de find_and_set_shell() define default_shell = %s\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
-msgstr "%s está suspendido durante 30 segundos..."
+msgstr "%s está suspendido durante 30 segundos..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr "rematouse sleep(30). Continuando.\n"
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr "O ficheiro de make da entrada estándar foi especificado dúas veces."
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr "fopen (ficheiro temporal)"
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr "fwrite (ficheiro temporal)"
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "Os traballos en paralelo (-j) non están soportados nesta plataforma."
-
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
-msgstr "Reiniciando para entrar no modo de un traballo (-j1)."
-
-#: main.c:1719
+#: main.c:1534
msgid "internal error: multiple --jobserver-fds options"
-msgstr "erro interno: opcións --jobserver-fds múltiples"
+msgstr "erro interno: opcións --jobserver-fds múltiples"
-#: main.c:1727
+#: main.c:1544
#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
-msgstr "erro interno: cadea --jobserver-fds non válida `%s'"
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
+msgstr ""
-#: main.c:1730
+#: 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 "erro interno: cadea --jobserver-fds non válida «%s»"
+
+#: 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 ""
"aviso: -jN forzado no submake: desactivando o modo de servidor de traballos."
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
msgstr "dup jobserver"
-#: 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 ""
-"aviso: o servidor de traballos non está dispoñible: usando -j1. Engada `+' á "
+"aviso: o servidor de traballos non está dispoñíbel: usando -j1. Engada «+» á "
"regra do make pai."
-#: main.c:1777
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "O ficheiro de make da entrada estándar especificouse dúas veces."
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (ficheiro temporal)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (ficheiro temporal)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr "Non se admiten os traballos en paralelo (-j) nesta plataforma."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "Reiniciando para entrar no modo de traballo único (-j1)."
+
+#: 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 "creando o cano de traballos"
+msgstr "creando a canalización de traballos"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
-msgstr "inicializa-lo cano do servidor de traballos"
+msgstr "inicializar a canalización do servidor de traballos"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
msgstr ""
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr "Actualizando os ficheiros de make....\n"
-#: main.c:1917
-#, c-format
-msgid "Makefile `%s' might loop; not remaking it.\n"
-msgstr "O ficheiro de make `%s' podería causar un lazo; non se refai.\n"
+#: main.c:2174
+#, fuzzy, c-format
+msgid "Makefile '%s' might loop; not remaking it.\n"
+msgstr "O ficheiro de make «%s» podería causar un bucle; non se refai.\n"
-#: main.c:1996
-#, c-format
-msgid "Failed to remake makefile `%s'."
-msgstr "Non se puido reface-lo ficheiro de make `%s'."
+#: main.c:2253
+#, fuzzy, c-format
+msgid "Failed to remake makefile '%s'."
+msgstr "Produciuse un erro ao refacer o ficheiro de make «%s»."
-#: main.c:2013
-#, c-format
-msgid "Included makefile `%s' was not found."
-msgstr "Non se atopou o ficheiro de make incluido `%s'."
+#: main.c:2270
+#, fuzzy, c-format
+msgid "Included makefile '%s' was not found."
+msgstr "Non se atopou o ficheiro de make incluído «%s»."
-#: main.c:2018
-#, c-format
-msgid "Makefile `%s' was not found"
-msgstr "Non se atopou o ficheiro de make `%s'"
+#: main.c:2275
+#, fuzzy, c-format
+msgid "Makefile '%s' was not found"
+msgstr "Non se atopou o ficheiro de make «%s»"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
-msgstr "Non se puido voltar ao directorio orixinal."
+msgstr "Non foi posíbel volver ao directorio orixinal."
-#: main.c:2102
-#, fuzzy, c-format
+#: main.c:2354
+#, c-format
msgid "Re-executing[%u]:"
-msgstr "Re-executando:"
+msgstr "Re-executando[%u]:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr "unlink (ficheiro temporal)"
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
msgstr ""
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
msgstr "Non se especificaron obxectivos e non se atopou un ficheiro de make"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "Non hai obxectivos"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
msgstr "Actualizando os obxectivos meta....\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr ""
-"aviso: Detectáronse inconsistencias de reloxo. A operación pode quedar "
+"aviso: Detectáronse inconsistencias de reloxo. A operación pode quedar "
"incompleta."
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
-msgstr "Uso: %s [opcións] [obxectivo] ...\n"
+msgstr "Uso: %s [opcións] [obxectivo] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
@@ -1114,7 +1298,7 @@ msgstr ""
"\n"
"Este programa compilou para %s\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
@@ -1123,38 +1307,34 @@ msgstr ""
"\n"
"Este programa compilou para %s (%s)\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
msgstr ""
-"Informe dos erros no programa a <bug-make@gnu.org>.\n"
-"Informe dos erros na traducción a <proxecto@trasno.net>.\n"
+"Envíe informes de fallo no programa a <bug-make@gnu.org>.\n"
+"Envíe informes de fallo na tradución a <proxecto@trasno.net>.\n"
-#: main.c:2562
+#: main.c:2810
#, fuzzy, c-format
-msgid "the `%s%s' option requires a non-empty string argument"
-msgstr "a opción `-%c' precisa dun argumento integral positivo"
-
-#: main.c:2617
-#, c-format
-msgid "the `-%c' option requires a positive integral argument"
-msgstr "a opción `-%c' precisa dun argumento integral positivo"
+msgid "the '%s%s' option requires a non-empty string argument"
+msgstr "a opción «%s%s» require un argumento de cadea non baleira"
-#: main.c:3054
+#: main.c:2864
#, fuzzy, c-format
+msgid "the '-%c' option requires a positive integer argument"
+msgstr "a opción «-%c» require un argumento integral positivo"
+
+#: main.c:3253
+#, c-format
msgid "%sBuilt for %s\n"
-msgstr ""
-"\n"
-"Este programa compilou para %s\n"
+msgstr "%sCompilado para %s\n"
-#: main.c:3056
-#, fuzzy, c-format
+#: main.c:3255
+#, c-format
msgid "%sBuilt for %s (%s)\n"
-msgstr ""
-"\n"
-"Este programa compilou para %s (%s)\n"
+msgstr "%sCompilado para %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."
@@ -1162,8 +1342,12 @@ msgid ""
"%sThis is free software: you are free to change and redistribute it.\n"
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
+"%sLicenza GPLv3+: GNU GPL versión 3 ou posterior <http://gnu.org/licenses/"
+"gpl.html>\n"
+"%sIsto é software libre: pode modificalo e redistribuílo.\n"
+"%sNon hai NINGUNHA GARANTÃA, ata onde o permita a lei.\n"
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
@@ -1172,7 +1356,7 @@ msgstr ""
"\n"
"# Base de datos de Make, imprimida en %s"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
@@ -1181,118 +1365,117 @@ msgstr ""
"\n"
"# Base de datos de Make rematada en %s\n"
-#: main.c:3237
-#, fuzzy, c-format
-msgid "%s: Entering an unknown directory\n"
-msgstr "%s: Entrando nun directorio descoñecido"
-
-#: main.c:3239
-#, fuzzy, c-format
-msgid "%s: Leaving an unknown directory\n"
-msgstr "%s: Saíndo dun directorio descoñecido"
-
-#: main.c:3242
-#, c-format
-msgid "%s: Entering directory `%s'\n"
-msgstr "%s: Entrando no directorio `%s'\n"
-
-#: main.c:3245
-#, c-format
-msgid "%s: Leaving directory `%s'\n"
-msgstr "%s: Saíndo do directorio `%s'\n"
-
-#: main.c:3250
-#, fuzzy, c-format
-msgid "%s[%u]: Entering an unknown directory\n"
-msgstr "%s[%u]: Entrando nun directorio descoñecido"
-
-#: main.c:3253
-#, fuzzy, c-format
-msgid "%s[%u]: Leaving an unknown directory\n"
-msgstr "%s[%u]: Saíndo dun directorio descoñecido"
-
-#: main.c:3257
-#, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
-msgstr "%s[%u]: Entrando no directorio `%s'\n"
-
-#: main.c:3260
-#, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
-msgstr "%s[%u]: Saíndo do directorio `%s'\n"
-
-#: misc.c:316
-msgid ". Stop.\n"
-msgstr ". Detido.\n"
-
-#: misc.c:337
+#: misc.c:201
#, c-format
msgid "Unknown error %d"
-msgstr "Erro %d descoñecido"
-
-#: misc.c:347
-#, c-format
-msgid "%s%s: %s"
-msgstr "%s%s: %s"
-
-#: misc.c:355
-#, c-format
-msgid "%s: %s"
-msgstr "%s: %s"
+msgstr "Erro %d descoñecido"
-#: misc.c:376 misc.c:387 misc.c:402 misc.c:419 misc.c:438 read.c:3118
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
msgid "virtual memory exhausted"
msgstr "memoria virtual esgotada"
-#: misc.c:708
+#: misc.c:522
#, c-format
msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
msgstr "%s: usuario %lu (real %lu), grupo %lu (real %lu)\n"
-#: misc.c:729
+#: misc.c:543
msgid "Initialized access"
msgstr "Acceso inicializado"
-#: misc.c:808
+#: misc.c:622
msgid "User access"
msgstr "Acceso de usuario"
-#: misc.c:856
+#: misc.c:670
msgid "Make access"
msgstr "Acceso de make"
-#: misc.c:890
+#: misc.c:704
msgid "Child access"
msgstr "Acceso de fillo"
-#: misc.c:954
+#: output.c:128
+#, c-format
+msgid "%s: Entering an unknown directory\n"
+msgstr "%s: Entrando nun directorio descoñecido\n"
+
+#: output.c:130
+#, c-format
+msgid "%s: Leaving an unknown directory\n"
+msgstr "%s: Saíndo dun directorio descoñecido\n"
+
+#: output.c:133
#, fuzzy, c-format
+msgid "%s: Entering directory '%s'\n"
+msgstr "%s: Entrando no directorio «%s»\n"
+
+#: output.c:135
+#, fuzzy, c-format
+msgid "%s: Leaving directory '%s'\n"
+msgstr "%s: Saíndo do directorio «%s»\n"
+
+#: output.c:139
+#, c-format
+msgid "%s[%u]: Entering an unknown directory\n"
+msgstr "%s[%u]: Entrando nun directorio descoñecido\n"
+
+#: output.c:141
+#, c-format
+msgid "%s[%u]: Leaving an unknown directory\n"
+msgstr "%s[%u]: Saíndo dun directorio descoñecido\n"
+
+#: output.c:144
+#, fuzzy, c-format
+msgid "%s[%u]: Entering directory '%s'\n"
+msgstr "%s[%u]: Entrando no directorio «%s»\n"
+
+#: output.c:146
+#, fuzzy, c-format
+msgid "%s[%u]: Leaving directory '%s'\n"
+msgstr "%s[%u]: Saíndo do directorio «%s»\n"
+
+#: output.c:515
+#, c-format
msgid "write error: %s"
-msgstr "Erros redirixidos a %s\n"
+msgstr "erro de escritura: %s"
-#: misc.c:956
-#, fuzzy
+#: output.c:517
msgid "write error"
-msgstr "write jobserver"
+msgstr "erro de escritura"
-#: read.c:179
+#: output.c:740
+msgid ". Stop.\n"
+msgstr ". Detido.\n"
+
+#: output.c:751
+#, c-format
+msgid "%s%s: %s"
+msgstr "%s%s: %s"
+
+#: output.c:759
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: read.c:180
msgid "Reading makefiles...\n"
msgstr "Lendo os ficheiros de make...\n"
#: read.c:333
-#, c-format
-msgid "Reading makefile `%s'"
-msgstr "Lendo o ficheiro de make `%s'"
+#, fuzzy, c-format
+msgid "Reading makefile '%s'"
+msgstr "Lendo o ficheiro de make «%s»"
#: read.c:335
#, c-format
msgid " (no default goal)"
-msgstr " (non hai un obxectivo por defecto)"
+msgstr " (non hai unha meta por defecto)"
#: read.c:337
#, c-format
msgid " (search path)"
-msgstr " (camiño de busca)"
+msgstr " (ruta de busca)"
#: read.c:339
#, c-format
@@ -1302,747 +1485,800 @@ msgstr " (non importa)"
#: read.c:341
#, c-format
msgid " (no ~ expansion)"
-msgstr " (non hai expansión de ~)"
+msgstr " (non hai expansión de ~)"
+
+#: 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:759
+#: read.c:786
msgid "invalid syntax in conditional"
-msgstr "sintaxe non válida no condicional"
+msgstr "sintaxe non válida no condicional"
-#: read.c:891
-#, fuzzy
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr ""
+
+#: read.c:987
msgid "recipe commences before first target"
-msgstr "os comandos comezan antes do primeiro obxectivo"
+msgstr ""
-#: read.c:940
-#, fuzzy
+#: read.c:1036
msgid "missing rule before recipe"
-msgstr "falla unha regra antes dos comandos"
+msgstr ""
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
-msgstr "falla un separador%s"
+msgstr "falta un separador%s"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
-msgstr " (¿se cadra unha tabulación no canto de oito espacios?)"
+msgstr " (quixo dicir TAB no canto de 8 espazos?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
-msgstr "falla un patrón obxectivo"
+msgstr "falta un patrón obxectivo"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
-msgstr "patróns de obxectivo múltiples"
+msgstr "patróns de obxectivo múltiples"
-#: read.c:1169
-#, c-format
-msgid "target pattern contains no `%%'"
-msgstr "o patrón obxectivo non contén `%%'"
+#: read.c:1269
+#, fuzzy, c-format
+msgid "target pattern contains no '%%'"
+msgstr "o patrón obxectivo non contén «%%»"
-#: read.c:1293
-msgid "missing `endif'"
-msgstr "falla `endif'"
+#: read.c:1391
+#, fuzzy
+msgid "missing 'endif'"
+msgstr "falta «endif»"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
-msgstr "nome de variable baleiro"
+msgstr "nome de variábel baleiro"
-#: read.c:1367
+#: read.c:1465
#, fuzzy
-msgid "extraneous text after `define' directive"
-msgstr "Texto superfluo trala directiva `endef'"
-
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
-msgstr "falla `endef', `define' sen rematar"
+msgid "extraneous text after 'define' directive"
+msgstr "texto superfluo trala directiva «define»"
-#: read.c:1420
+#: read.c:1490
#, fuzzy
-msgid "extraneous text after `endef' directive"
-msgstr "Texto superfluo trala directiva `endef'"
+msgid "missing 'endef', unterminated 'define'"
+msgstr "falta «endef», «define» sen rematar"
-#: read.c:1490
-#, c-format
-msgid "Extraneous text after `%s' directive"
-msgstr "Texto superfluo trala directiva `%s'"
+#: read.c:1518
+#, fuzzy
+msgid "extraneous text after 'endef' directive"
+msgstr "Texto superfluo trala directiva «endef»"
-#: read.c:1499 read.c:1513
-#, c-format
-msgid "extraneous `%s'"
-msgstr "`%s' superfluo"
+#: read.c:1589
+#, fuzzy, c-format
+msgid "extraneous text after '%s' directive"
+msgstr "Texto superfluo trala directiva «%s»"
-#: read.c:1518
-msgid "only one `else' per conditional"
-msgstr "só un `else' por condicional"
+#: read.c:1598 read.c:1612
+#, fuzzy, c-format
+msgid "extraneous '%s'"
+msgstr "«%s» superfluo"
-#: read.c:1797
+#: read.c:1617
#, fuzzy
+msgid "only one 'else' per conditional"
+msgstr "só un «else» por condicional"
+
+#: read.c:1892
msgid "Malformed target-specific variable definition"
-msgstr "Definición dunha variable por obxectivo mal formada"
+msgstr "Definición dunha variábel por obxectivo mal formada"
-#: read.c:1855
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
msgstr ""
-#: read.c:1908
+#: read.c:2009
msgid "mixed implicit and static pattern rules"
-msgstr "regrás de patrón implícitas e estáticas mesturadas"
+msgstr "regras de patrón implícitas e estáticas mesturadas"
-#: read.c:1931 read.c:2112
+#: read.c:2032 read.c:2220
msgid "mixed implicit and normal rules"
-msgstr "regras implícitas e normais mesturadas"
-
-#: read.c:1976
-#, c-format
-msgid "target `%s' doesn't match the target pattern"
-msgstr "o obxectivo `%s' non coincide co patrón do obxectivo"
-
-#: read.c:1991 read.c:2036
-#, c-format
-msgid "target file `%s' has both : and :: entries"
-msgstr "o ficheiro obxectivo `%s' ten entradas : e ::"
+msgstr "regras implícitas e normais mesturadas"
-#: read.c:1997
-#, c-format
-msgid "target `%s' given more than once in the same rule."
-msgstr "o obxectivo `%s' aparece máis dunha vez na mesma regra."
-
-#: read.c:2006
+#: read.c:2084
#, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
-msgstr "aviso: ignorando os comandos do obxectivo `%s'"
+msgid "target '%s' doesn't match the target pattern"
+msgstr "o obxectivo «%s» non coincide co patrón do obxectivo"
-#: read.c:2009
+#: read.c:2099 read.c:2144
#, fuzzy, c-format
-msgid "warning: ignoring old recipe for target `%s'"
-msgstr "aviso: ignóranse os comandos antigos do obxectivo `%s'"
+msgid "target file '%s' has both : and :: entries"
+msgstr "o ficheiro obxectivo «%s» ten entradas : e ::"
-#: read.c:2392
-msgid "warning: NUL character seen; rest of line ignored"
-msgstr "aviso: viuse un carácter NUL; ignórase o resto da liña"
+#: read.c:2105
+#, fuzzy, c-format
+msgid "target '%s' given more than once in the same rule"
+msgstr "o obxectivo «%s» aparece máis dunha vez na mesma regra."
-#: remake.c:234
+#: read.c:2114
#, c-format
-msgid "Nothing to be done for `%s'."
-msgstr "Non hai nada que facer para `%s'"
+msgid "warning: overriding recipe for target '%s'"
+msgstr ""
-#: remake.c:235
+#: read.c:2117
#, c-format
-msgid "`%s' is up to date."
-msgstr "`%s' está actualizado."
+msgid "warning: ignoring old recipe for target '%s'"
+msgstr ""
-#: remake.c:306
-#, c-format
-msgid "Pruning file `%s'.\n"
-msgstr "Podando o ficheiro `%s'.\n"
+#: read.c:2530
+msgid "warning: NUL character seen; rest of line ignored"
+msgstr "aviso: viuse un carácter NUL; ignórase o resto da liña"
-#: remake.c:359
-#, c-format
-msgid "%sNo rule to make target `%s'%s"
-msgstr "%sNon hai unha regra para face-lo obxectivo `%s'%s"
+#: remake.c:232
+#, fuzzy, c-format
+msgid "Nothing to be done for '%s'."
+msgstr "Non hai nada que facer para «%s»"
-#: remake.c:361
-#, c-format
-msgid "%sNo rule to make target `%s', needed by `%s'%s"
-msgstr "%sNon hai unha regra para face-lo obxectivo `%s', que precisa `%s'%s"
+#: remake.c:233
+#, fuzzy, c-format
+msgid "'%s' is up to date."
+msgstr "«%s» está actualizado."
+
+#: remake.c:305
+#, fuzzy, c-format
+msgid "Pruning file '%s'.\n"
+msgstr "Podando o ficheiro «%s».\n"
+
+#: remake.c:377
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sNon hai unha regra para facer o obxectivo «%s»%s"
+
+#: remake.c:379
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s', needed by '%s'%s"
+msgstr "%sNon hai unha regra para facer o obxectivo «%s», que precisa «%s»%s"
#: remake.c:413
-#, c-format
-msgid "Considering target file `%s'.\n"
-msgstr "Considerando o ficheiro obxectivo `%s'.\n"
+#, fuzzy, c-format
+msgid "Considering target file '%s'.\n"
+msgstr "Considerando o ficheiro obxectivo «%s».\n"
#: remake.c:420
-#, c-format
-msgid "Recently tried and failed to update file `%s'.\n"
-msgstr "Hai pouco probouse a actualiza-lo ficheiro `%s' e non se puido.\n"
+#, fuzzy, c-format
+msgid "Recently tried and failed to update file '%s'.\n"
+msgstr ""
+"Hai pouco probouse a actualizar o ficheiro «%s» e non foi posíbel facelo.\n"
#: remake.c:432
-#, c-format
-msgid "File `%s' was considered already.\n"
-msgstr "O ficheiro `%s' xa fora considerado.\n"
+#, fuzzy, c-format
+msgid "File '%s' was considered already.\n"
+msgstr "O ficheiro «%s» xa fora considerado.\n"
#: remake.c:442
-#, c-format
-msgid "Still updating file `%s'.\n"
-msgstr "Ainda se está actualizando o ficheiro `%s'.\n"
+#, fuzzy, c-format
+msgid "Still updating file '%s'.\n"
+msgstr "Aínda se está actualizando o ficheiro «%s».\n"
#: remake.c:445
-#, c-format
-msgid "Finished updating file `%s'.\n"
-msgstr "Rematouse de actualiza-lo ficheiro `%s'.\n"
+#, fuzzy, c-format
+msgid "Finished updating file '%s'.\n"
+msgstr "Rematouse de actualizar o ficheiro «%s».\n"
#: remake.c:474
-#, c-format
-msgid "File `%s' does not exist.\n"
-msgstr "O ficheiro `%s' non existe.\n"
+#, fuzzy, c-format
+msgid "File '%s' does not exist.\n"
+msgstr "O ficheiro «%s» non existe.\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 ""
-"*** Aviso: o ficheiro `%s' de .LOW_RESOLUTION_TIME ten unha marca de tempo "
-"de alta resolución"
+"*** Aviso: o ficheiro «%s» de .LOW_RESOLUTION_TIME ten unha marca de tempo "
+"de alta resolución"
-#: remake.c:494 remake.c:1016
-#, c-format
-msgid "Found an implicit rule for `%s'.\n"
-msgstr "Atopouse unha regra implícita de `%s'.\n"
+#: remake.c:494 remake.c:1019
+#, fuzzy, c-format
+msgid "Found an implicit rule for '%s'.\n"
+msgstr "Atopouse unha regra implícita de «%s».\n"
-#: remake.c:496 remake.c:1018
-#, c-format
-msgid "No implicit rule found for `%s'.\n"
-msgstr "Non se atopou unha regra implícita para `%s'.\n"
+#: remake.c:496 remake.c:1021
+#, fuzzy, c-format
+msgid "No implicit rule found for '%s'.\n"
+msgstr "Non se atopou unha regra implícita para «%s».\n"
#: remake.c:502
#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
-msgstr "Usando os comandos por defecto para `%s'.\n"
+msgid "Using default recipe for '%s'.\n"
+msgstr "Usando as ordes por defecto para «%s».\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
msgstr "A dependencia circular %s <- %s foi eliminada."
-#: remake.c:651
-#, c-format
-msgid "Finished prerequisites of target file `%s'.\n"
-msgstr "Rematáronse os prerrequisitos do ficheiro obxectivo `%s'.\n"
-
-#: remake.c:657
-#, c-format
-msgid "The prerequisites of `%s' are being made.\n"
-msgstr "Estan a se face-los prerrequisitos de `%s'.\n"
+#: remake.c:655
+#, fuzzy, c-format
+msgid "Finished prerequisites of target file '%s'.\n"
+msgstr "Rematáronse os prerrequisitos do ficheiro obxectivo «%s».\n"
-#: remake.c:670
-#, c-format
-msgid "Giving up on target file `%s'.\n"
-msgstr "Abandonando no ficheiro obxectivo `%s'.\n"
+#: remake.c:661
+#, fuzzy, c-format
+msgid "The prerequisites of '%s' are being made.\n"
+msgstr "Están a se facer os prerrequisitos de «%s».\n"
-#: remake.c:675
-#, c-format
-msgid "Target `%s' not remade because of errors."
-msgstr "Non se refai o obxectivo `%s' a causa dos erros."
+#: remake.c:674
+#, fuzzy, c-format
+msgid "Giving up on target file '%s'.\n"
+msgstr "Abandonando no ficheiro obxectivo «%s».\n"
-#: remake.c:727
-#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
-msgstr "O prerrequisito `%s' é só-orde para o obxectivo `%s'.\n"
+#: remake.c:679
+#, fuzzy, c-format
+msgid "Target '%s' not remade because of errors."
+msgstr "Non se refai o obxectivo «%s» a causa dos erros."
-#: remake.c:732
-#, c-format
-msgid "Prerequisite `%s' of target `%s' does not exist.\n"
-msgstr "O prerrequisito `%s' do obxectivo `%s' non existe.\n"
+#: remake.c:731
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
+msgstr "O prerrequisito «%s» é só-orde para o obxectivo «%s».\n"
-#: remake.c:737
-#, c-format
-msgid "Prerequisite `%s' is newer than target `%s'.\n"
-msgstr "O prerrequisito `%s' é máis novo có obxectivo `%s'.\n"
+#: remake.c:736
+#, fuzzy, c-format
+msgid "Prerequisite '%s' of target '%s' does not exist.\n"
+msgstr "O prerrequisito «%s» do obxectivo «%s» non existe.\n"
-#: remake.c:740
-#, c-format
-msgid "Prerequisite `%s' is older than target `%s'.\n"
-msgstr "O prerrequisito `%s' é máis vello có obxectivo `%s'.\n"
+#: remake.c:741
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is newer than target '%s'.\n"
+msgstr "O prerrequisito «%s» é máis novo que o obxectivo «%s».\n"
-#: remake.c:758
-#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
-msgstr "O obxectivo `%s' ten catro puntos e non ten prerrequisitos.\n"
+#: remake.c:744
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is older than target '%s'.\n"
+msgstr "O prerrequisito «%s» é máis vello que o obxectivo «%s».\n"
-#: remake.c:765
+#: remake.c:762
#, fuzzy, c-format
-msgid "No recipe for `%s' and no prerequisites actually changed.\n"
-msgstr "Non hai comandos de `%s', e non cambiaron os prerrequisitos.\n"
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
+msgstr "O obxectivo «%s» ten catro puntos e non ten prerrequisitos.\n"
-#: remake.c:770
+#: remake.c:769
#, c-format
-msgid "Making `%s' due to always-make flag.\n"
-msgstr "Facendo `%s' debido á marca de sempre-facer.\n"
+msgid "No recipe for '%s' and no prerequisites actually changed.\n"
+msgstr ""
-#: remake.c:778
-#, c-format
-msgid "No need to remake target `%s'"
-msgstr "Non é preciso reface-lo obxectivo `%s'"
+#: remake.c:774
+#, fuzzy, c-format
+msgid "Making '%s' due to always-make flag.\n"
+msgstr "Facendo «%s» debido á marca de sempre-facer.\n"
-#: remake.c:780
-#, c-format
-msgid "; using VPATH name `%s'"
-msgstr "; usando o nome de VPATH `%s'"
+#: remake.c:782
+#, fuzzy, c-format
+msgid "No need to remake target '%s'"
+msgstr "Non é preciso refacer o obxectivo «%s»"
-#: remake.c:800
-#, c-format
-msgid "Must remake target `%s'.\n"
-msgstr "Debe refacerse o obxectivo `%s'.\n"
+#: remake.c:784
+#, fuzzy, c-format
+msgid "; using VPATH name '%s'"
+msgstr "; usando o nome de VPATH «%s»"
-#: remake.c:806
-#, c-format
-msgid " Ignoring VPATH name `%s'.\n"
-msgstr " Ignorando o nome VPATH `%s'.\n"
+#: remake.c:804
+#, fuzzy, c-format
+msgid "Must remake target '%s'.\n"
+msgstr "Debe refacerse o obxectivo «%s».\n"
-#: remake.c:815
+#: remake.c:810
#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
-msgstr "Estanse a executa-los comandos de `%s'.\n"
+msgid " Ignoring VPATH name '%s'.\n"
+msgstr " Ignorando o nome VPATH «%s».\n"
-#: remake.c:822
+#: remake.c:819
#, c-format
-msgid "Failed to remake target file `%s'.\n"
-msgstr "Non se puido reface-lo ficheiro obxectivo `%s'.\n"
+msgid "Recipe of '%s' is being run.\n"
+msgstr ""
-#: remake.c:825
-#, c-format
-msgid "Successfully remade target file `%s'.\n"
-msgstr "O ficheiro obxectivo `%s' foi feito de novo con éxito.\n"
+#: remake.c:826
+#, fuzzy, c-format
+msgid "Failed to remake target file '%s'.\n"
+msgstr "Produciuse un erro ao refacer o ficheiro obxectivo «%s».\n"
-#: remake.c:828
-#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
-msgstr "O ficheiro obxectivo `%s' precisa refacerse con -q.\n"
+#: remake.c:829
+#, fuzzy, c-format
+msgid "Successfully remade target file '%s'.\n"
+msgstr "O ficheiro obxectivo «%s» foi feito de novo con éxito.\n"
-#: remake.c:1024
-#, c-format
-msgid "Using default commands for `%s'.\n"
-msgstr "Usando os comandos por defecto para `%s'.\n"
+#: remake.c:832
+#, fuzzy, c-format
+msgid "Target file '%s' needs to be remade under -q.\n"
+msgstr "O ficheiro obxectivo «%s» precisa refacerse con -q.\n"
-#: remake.c:1357
-#, c-format
-msgid "Warning: File `%s' has modification time in the future"
-msgstr "Aviso: O ficheiro `%s' ten unha data de modificación no futuro"
+#: remake.c:1027
+#, fuzzy, c-format
+msgid "Using default commands for '%s'.\n"
+msgstr "Usando as ordes por defecto para «%s».\n"
-#: remake.c:1370
+#: remake.c:1372
#, fuzzy, c-format
-msgid "Warning: File `%s' has modification time %s s in the future"
-msgstr "Aviso: O ficheiro `%s' ten unha data de modificación %.2g s. no futuro"
+msgid "Warning: File '%s' has modification time in the future"
+msgstr "Aviso: O ficheiro «%s» ten un tempo de modificación no futuro"
-#: remake.c:1569
-#, c-format
-msgid ".LIBPATTERNS element `%s' is not a pattern"
-msgstr "O elemento de .LIBPATTERNS `%s' non é un patrón"
+#: remake.c:1385
+#, fuzzy, c-format
+msgid "Warning: File '%s' has modification time %s s in the future"
+msgstr "Aviso: O ficheiro «%s» ten un tempo de modificación %s seg no futuro"
+
+#: remake.c:1583
+#, fuzzy, c-format
+msgid ".LIBPATTERNS element '%s' is not a pattern"
+msgstr "O elemento de .LIBPATTERNS «%s» non é un patrón"
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
msgstr "A Aduana non exporta: %s\n"
-#: rule.c:499
+#: rule.c:496
msgid ""
"\n"
"# Implicit Rules"
msgstr ""
"\n"
-"# Regras Implícitas"
+"# Regras implícitas"
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
msgstr ""
"\n"
-"# Non hai regras implícitas."
+"# Non hai regras implícitas."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
"# %u implicit rules, %u"
msgstr ""
"\n"
-"# %u regras implícitas, %u"
+"# %u regras implícitas, %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr " terminal."
-#: rule.c:534
-#, fuzzy, c-format
+#: rule.c:531
+#, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
-msgstr "ERRO: ¡num_pattern_rules é incorrecto! %u != %u"
+msgstr "FALLO: num_pattern_rules é incorrecto! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
-msgstr "sinal descoñecido"
+msgstr "sinal descoñecido"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
msgstr "Colgar"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "Interrompido"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
-msgstr "Saír"
+msgstr "Saír"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
-msgstr "Instrucción Ilegal"
+msgstr "Instrución inaceptábel"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
-msgstr "Trampa de trazado/punto de detención"
+msgstr "Trampa de trazado/punto de detención"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "Abortado"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
msgstr "Trampa de IOT"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
msgstr "Trampa EMT"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
-msgstr "Excepción de coma flotante"
+msgstr "Excepción de coma flotante"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "Matado"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr "Erro do bus"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "Fallo de segmento"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "Chamada ao sistema incorrecta"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
-msgstr "Cano rompido"
+msgstr "Canalización rota"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "Temporizador"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
-msgstr "Rematado"
+msgstr "Terminado"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr "Sinal definido polo usuario 1"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr "Sinal definido polo usuario 2"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
-msgstr "O proceso fillo rematou"
+msgstr "O proceso fillo saíu"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
-msgstr "Fallo de suministro eléctrico"
+msgstr "Fallo de subministración eléctrica"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "Detido"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
msgstr "Detido (entrada de consola)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
-msgstr "Detido (saída de consola)"
+msgstr "Detido (saída de consola)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "Detido (sinal)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
-msgstr "Límite de tempo de CPU superado"
+msgstr "Excedeuse o límite de tempo de CPU"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
-msgstr "Límite de tamaño de ficheiros superado"
+msgstr "Excedeuse o límite de tamaño do ficheiro"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
msgstr "Temporizador virtual esgotado"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
-msgstr "O temporizador esgotouse"
+msgstr ""
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
-msgstr "A fiestra cambiou"
+msgstr "A xanela cambiou"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "Continuado"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
-msgstr "Condición de E/S urxente"
+msgstr "Condición de E/S urxente"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
-msgstr "A E/S é posible"
+msgstr "A E/S é posíbel"
-#: 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 "Recurso perdido"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "Sinal de perigo"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
-msgstr "Petición de información"
+msgstr "Petición de información"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
-msgstr "O co-procesador de coma flotante non está dispoñible"
+msgstr "O coprocesador de coma flotante non está dispoñíbel"
-#: 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"
-"# estatísticas da táboa hash de ficheiros:\n"
+"# estatísticas da táboa hash de ficheiros:\n"
"# "
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "automático"
+
+#: variable.c:1610
msgid "default"
msgstr "por defecto"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr "ambiente"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr "ficheiro de make"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
msgstr "ambiente baixo -e"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
-msgstr "liña de comandos"
-
-#: variable.c:1556
-msgid "`override' directive"
-msgstr "directiva `override'"
+msgstr "liña de ordes"
-#: variable.c:1559
-msgid "automatic"
-msgstr "automático"
+#: variable.c:1625
+#, fuzzy
+msgid "'override' directive"
+msgstr "directiva «override»"
-#: variable.c:1570
-#, c-format
-msgid " (from `%s', line %lu)"
-msgstr " (de `%s', liña %lu)"
+#: variable.c:1636
+#, fuzzy, c-format
+msgid " (from '%s', line %lu)"
+msgstr " (desde «%s», liña %lu)"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
-msgstr "# estatísticas da táboa hash de conxunto de variables:\n"
+msgstr "# estatísticas da táboa hash de conxunto de variábeis:\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
msgstr ""
"\n"
-"# Variables\n"
+"# Variábeis\n"
-#: variable.c:1627
-#, fuzzy
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
msgstr ""
"\n"
-"# Valores de variables específicos do patrón"
+"# Valores de variábeis específicas do patrón"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
msgstr ""
"\n"
-"# Non hai valores específicos do patrón."
+"# Non hai valores específicos do patrón."
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
"# %u pattern-specific variable values"
msgstr ""
"\n"
-"# %u valores de variables específicos do patrón"
+"# %u valores de variábeis específicos do patrón"
-#: variable.h:219
-#, c-format
-msgid "warning: undefined variable `%.*s'"
-msgstr "aviso: variable non definida `%.*s'"
-
-#: vmsfunctions.c:92
+#: variable.h:224
#, fuzzy, c-format
+msgid "warning: undefined variable '%.*s'"
+msgstr "aviso: variábel non definida «%.*s»"
+
+#: vmsfunctions.c:91
+#, c-format
msgid "sys$search() failed with %d\n"
-msgstr "a chamada a sys$search fallou con %d\n"
+msgstr "a chamada a sys$search() fallou con %d\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
-msgstr "Aviso: Redirección baleira\n"
+msgstr "Aviso: Redirección baleira\n"
-#: vmsjobs.c:184
-#, c-format
-msgid "internal error: `%s' command_state"
-msgstr "erro interno: `%s' command_state"
+#: vmsjobs.c:178
+#, fuzzy, c-format
+msgid "internal error: '%s' command_state"
+msgstr "erro interno: «%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 "-aviso, pode que teña que reactiva-lo manexo de CTRL-Y dende o DCL.\n"
+msgstr "-aviso, pode que teña que reactivar o manexo de CTRL-Y desde o DCL.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr "BUILTIN [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr "BUILTIN CD %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr "BUILTIN RM %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
-msgstr "Comando incluido descoñecido '%s'\n"
+msgstr "Orde incorporada descoñecida «%s»\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
-msgstr "Erro, comando baleiro\n"
+msgstr "Erro, orde baleira\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
-msgstr "Entrada redirixida de %s\n"
+msgstr "Entrada redirixida desde %s\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr "Erros redirixidos a %s\n"
-#: vmsjobs.c:523
-#, fuzzy, c-format
+#: vmsjobs.c:518
+#, c-format
msgid "Append output to %s\n"
-msgstr "Saída redirixida a %s\n"
+msgstr ""
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
-msgstr "Saída redirixida a %s\n"
+msgstr "Saída redirixida a %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 "Executando %s no canto\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr "Erro ao lanzar, %d\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
msgstr ""
"\n"
-"# Camiños de Busca VPATH\n"
+"# Rutas de busca VPATH\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
-msgstr "# Non hai camiños de busca `vpath'"
+#: vpath.c:600
+#, fuzzy
+msgid "# No 'vpath' search paths."
+msgstr "# Non hai rutas de busca «vpath»"
-#: 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 camiños de busca `vpath'.\n"
+"# %u rutas de busca «vpath».\n"
-#: vpath.c:608
+#: vpath.c:605
+#, fuzzy
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
-"# Non hai un camiño de busca xeral (variable `VPATH')."
+"# Non hai unha ruta de busca xeral (variábel «VPATH»)."
-#: vpath.c:614
+#: vpath.c:611
+#, fuzzy
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
-"# Camiño de busca xeral (variable `VPATH'):\n"
+"# Ruta de busca xeral (variábel «VPATH»):\n"
"# "
+#~ msgid "# Invalid value in `update_status' member!"
+#~ msgstr "# Valor non válido no membro «update_status»!"
+
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] Erro 0x%x (ignorado)"
+
+#~ msgid "[%s] Error %d (ignored)"
+#~ msgstr "[%s] Erro %d (ignorado)"
+
+#~ msgid ""
+#~ "\n"
+#~ "# strcache hash-table stats:\n"
+#~ "# "
+#~ msgstr ""
+#~ "\n"
+#~ "# estatísticas da táboa hash strcache:\n"
+#~ "# "
+
#~ msgid "create_child_process: DuplicateHandle(In) failed (e=%d)\n"
#~ msgstr ""
#~ "create_child_process: a chamada a DuplicateHandle(In) fallou (e=%d)\n"
@@ -2058,10 +2294,10 @@ msgstr ""
#~ msgstr "Recibiuse un sinal SIGCHLD; %u procesos fillos non colleitados.\n"
#~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
-#~ msgstr "-aviso, CTRL-Y deixará subprocesos ceibos.\n"
+#~ msgstr "-aviso, CTRL-Y deixará subprocesos ceibos.\n"
#~ msgid "Do not specify -j or --jobs if sh.exe is not available."
-#~ msgstr "Non especifique -j ou --jobs se sh.exe non está dispoñible."
+#~ msgstr "Non especifique -j ou --jobs se sh.exe non está dispoñible."
#~ msgid "Resetting make for single job mode."
#~ msgstr "Reiniciando make para entrar no modo de un traballo."
@@ -2071,8 +2307,8 @@ msgstr ""
#~ "%sThere is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
#~ "%sPARTICULAR PURPOSE.\n"
#~ msgstr ""
-#~ "%sIsto é software libre; vexa o código fonte polas condicións de copia.\n"
-#~ "%sNON hai garantía; nin sequera de COMERCIABILIDADE ou APTITUDE PARA\n"
+#~ "%sIsto é software libre; vexa o código fonte polas condicións de copia.\n"
+#~ "%sNON hai garantía; nin sequera de COMERCIABILIDADE ou APTITUDE PARA\n"
#~ "%sUN FIN DETERMINADO.\n"
#~ msgid "extraneous `endef'"
@@ -2082,13 +2318,13 @@ msgstr ""
#~ msgstr "directiva `override' baleira"
#~ msgid "invalid `override' directive"
-#~ msgstr "directiva `override' non válida"
+#~ msgstr "directiva `override' non válida"
#~ msgid "no file name for `%sinclude'"
#~ msgstr "non hai un home de ficheiro en `%sinclude'"
#~ msgid "target `%s' leaves prerequisite pattern empty"
-#~ msgstr "o obxectivo `%s' deixa o patrón prerrequisito baleiro"
+#~ msgstr "o obxectivo `%s' deixa o patrón prerrequisito baleiro"
#~ msgid ""
#~ "\n"
@@ -2106,7 +2342,7 @@ msgstr ""
#~ msgid "# average %.3f files per bucket, max %u files in one bucket.\n"
#~ msgstr ""
-#~ "# %.3f ficheiros de media por balde, máximo de %u ficheiros nun balde.\n"
+#~ "# %.3f ficheiros de media por balde, máximo de %u ficheiros nun balde.\n"
#~ msgid "DIRECTORY"
#~ msgstr "DIRECTORIO"
@@ -2122,7 +2358,7 @@ msgstr ""
#~ msgid "Environment variables override makefiles"
#~ msgstr ""
-#~ "As variables de ambiente teñen prioridade sobre os ficheiros de make"
+#~ "As variables de ambiente teñen prioridade sobre os ficheiros de make"
#~ msgid "FILE"
#~ msgstr "FICHEIRO"
@@ -2134,13 +2370,13 @@ msgstr ""
#~ msgstr "Busca-los ficheiros de make incluidos no DIRECTORIO"
#~ msgid "Don't start multiple jobs unless load is below N"
-#~ msgstr "Non comezar traballos múltiples se a carga non é inferior a N"
+#~ msgstr "Non comezar traballos múltiples se a carga non é inferior a N"
#~ msgid "Don't actually run any commands; just print them"
-#~ msgstr "Non executar ningún comando; só amosalos"
+#~ msgstr "Non executar ningún comando; só amosalos"
#~ msgid "Consider FILE to be very old and don't remake it"
-#~ msgstr "Considerar que o FICHEIRO é moi vello, e non o refacer"
+#~ msgstr "Considerar que o FICHEIRO é moi vello, e non o refacer"
#~ msgid "Don't echo commands"
#~ msgstr "Non amosa-los comandos"
@@ -2149,7 +2385,7 @@ msgstr ""
#~ msgstr "Desactiva -k"
#~ msgid "Consider FILE to be infinitely new"
-#~ msgstr "Considerar que o FICHEIRO é infinitamente novo"
+#~ msgstr "Considerar que o FICHEIRO é infinitamente novo"
#~ msgid "Entering"
#~ msgstr "Entrando"
@@ -2161,16 +2397,13 @@ msgstr ""
#~ msgstr "# Non hai variables."
#~ msgid "# average of %.1f variables per bucket, max %u in one bucket.\n"
-#~ msgstr "# %.1f variables de media por balde, máximo de %u nun balde.\n"
+#~ msgstr "# %.1f variables de media por balde, máximo de %u nun balde.\n"
#~ msgid "# average of %d.%d variables per bucket, max %u in one bucket.\n"
-#~ msgstr "# %d.%d variables de media por balde, máximo de %u nun balde.\n"
+#~ msgstr "# %d.%d variables de media por balde, máximo de %u nun balde.\n"
#~ msgid "the `word' function takes a positive index argument"
-#~ msgstr "a función `word' toma un argumento índice positivo"
-
-#~ msgid " (ignored)"
-#~ msgstr " (ignorado)"
+#~ msgstr "a función `word' toma un argumento índice positivo"
#~ msgid " not"
#~ msgstr " non"
@@ -2185,10 +2418,10 @@ msgstr ""
#~ msgstr "%s rematou."
#~ msgid "%s: unknown signal"
-#~ msgstr "%s: sinal descoñecido"
+#~ msgstr "%s: sinal descoñecido"
#~ msgid "%sGNU Make version %s"
-#~ msgstr "%sGNU Make versión %s"
+#~ msgstr "%sGNU Make versión %s"
#~ msgid "1-minute: %f "
#~ msgstr "1 minuto: %f "
@@ -2200,7 +2433,7 @@ msgstr ""
#~ msgstr "5 minutos: %f "
#~ msgid "?? getopt returned character code 0%o ??\n"
-#~ msgstr "?? getopt devolveu o código do carácter 0%o ??\n"
+#~ msgstr "?? getopt devolveu o código do carácter 0%o ??\n"
#~ msgid "Child"
#~ msgstr "Fillo"
@@ -2245,19 +2478,19 @@ msgstr ""
#~ msgstr "Probando a dependencia %s `%s'.\n"
#~ msgid "Unknown error 12345678901234567890"
-#~ msgstr "Erro 12345678901234567890 descoñecido"
+#~ msgstr "Erro 12345678901234567890 descoñecido"
#~ msgid "Unknown%s job %d"
-#~ msgstr "Traballo%s %d descoñecido"
+#~ msgstr "Traballo%s %d descoñecido"
#~ msgid "User"
#~ msgstr "Usuario"
#~ msgid "arg with white space or doublequotes: %s\n"
-#~ msgstr "argumento con espacios en branco ou comiñas dobres: %s\n"
+#~ msgstr "argumento con espacios en branco ou comiñas dobres: %s\n"
#~ msgid "digits occur in two different argv-elements.\n"
-#~ msgstr "aparecen díxitos en dous elementos de argv distintos.\n"
+#~ msgstr "aparecen díxitos en dous elementos de argv distintos.\n"
#~ msgid "empty string arg: %s\n"
#~ msgstr "argumento de cadea baleiro: %s\n"
@@ -2290,7 +2523,7 @@ msgstr ""
#~ msgstr "getwd: %s"
#~ msgid "implicit"
-#~ msgstr "implícita"
+#~ msgstr "implícita"
#~ msgid "intermediate"
#~ msgstr "intermedia"
@@ -2302,31 +2535,31 @@ msgstr ""
#~ msgstr "nunca"
#~ msgid "newer"
-#~ msgstr "máis novo"
+#~ msgstr "máis novo"
#~ msgid "non-option ARGV-elements: "
-#~ msgstr "elementos ARGV que non son opcións: "
+#~ msgstr "elementos ARGV que non son opcións: "
#~ msgid "older"
-#~ msgstr "máis vello"
+#~ msgstr "máis vello"
#~ msgid "option %c\n"
-#~ msgstr "opción %c\n"
+#~ msgstr "opción %c\n"
#~ msgid "option %s"
-#~ msgstr "opción %s"
+#~ msgstr "opción %s"
#~ msgid "option a\n"
-#~ msgstr "opción a\n"
+#~ msgstr "opción a\n"
#~ msgid "option b\n"
-#~ msgstr "opción b\n"
+#~ msgstr "opción b\n"
#~ msgid "option c with value `%s'\n"
-#~ msgstr "opción c co valor `%s'\n"
+#~ msgstr "opción c co valor `%s'\n"
#~ msgid "option d with value `%s'\n"
-#~ msgstr "opción d co valor `%s'\n"
+#~ msgstr "opción d co valor `%s'\n"
#~ msgid "original arg: %s\n"
#~ msgstr "argumento orixinal: %s\n"
@@ -2359,7 +2592,7 @@ msgstr ""
#~ msgstr "unlink: "
#~ msgid "winning"
-#~ msgstr "que gaña"
+#~ msgstr "que gaña"
#~ msgid "write"
#~ msgstr "escritura"
diff --git a/po/he.gmo b/po/he.gmo
index 5e8d924..64f3603 100644
--- a/po/he.gmo
+++ b/po/he.gmo
Binary files differ
diff --git a/po/he.po b/po/he.po
index 7befe70..57116c8 100644
--- a/po/he.po
+++ b/po/he.po
@@ -6,120 +6,126 @@ msgid ""
msgstr ""
"Project-Id-Version: make 3.79.1\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: 2002-03-30 21:33+0300\n"
"Last-Translator: Eli Zaretskii <eliz@gnu.org>\n"
"Language-Team: Hebrew <eliz@gnu.org>\n"
+"Language: he\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-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 "úëîúð äððéàù `%s' äðåëúá ùåîéù ïåéñð"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
msgstr "VMS úëøòîá ïåéëøàá øáà ìù äòù/êéøàú éåðéùá äëéîú ïéà"
-#: 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 "íéé÷ åðéà `%s' ïåéëøà õáå÷ :touch"
-#: 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 "ïé÷ú ïåéëøà õáå÷ åðéà `%s' :touch"
-#: 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 "`%s' øáà ìéëî åðéà `%s' ïåéëøà :touch"
-#: 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 "`%s' øåáò ïé÷ú-àì ãå÷ äøéæçä ar_member_touch :touch"
-#: arscan.c:69
+#: arscan.c:67
#, fuzzy, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
msgstr "%d ñåèèñ ,lib$rset_module é\"ò ìåãåî ìò òãéî úôéìùá ïåìùë"
-#: arscan.c:175
+#: arscan.c:173
#, fuzzy, c-format
msgid "lbr$ini_control() failed with status = %d"
msgstr "%d ñåèèñ íò ìùëð lbr$ini_control"
-#: 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 "(`%s' äéøôñ) `%s' øáà øåáò äéøôñ úçéúôá äì÷ú"
# These are not translated, since they belong to a test program.
-#: 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 "Member `%s'%s: %ld bytes at %ld (%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr " (name might be truncated)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Date %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d, gid = %d, mode = 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 "*** Break. ***\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] ÷çîéé àì ;ïé÷ú-éúìá úåéäì ìåìò `%s' ïåéëøà øáà ***"
-#: 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 "*** ÷çîéé àì ;ïé÷ú-éúìá úåéäì ìåìò `%s' ïåéëøà øáà ***"
-#: commands.c:638
-#, c-format
-msgid "*** [%s] Deleting file `%s'"
+#: commands.c:646
+#, fuzzy, c-format
+msgid "*** [%s] Deleting file '%s'"
msgstr "*** [%s] `%s' õáå÷ ÷çåî ***"
-#: commands.c:640
-#, c-format
-msgid "*** Deleting file `%s'"
+#: commands.c:648
+#, fuzzy, c-format
+msgid "*** Deleting file '%s'"
msgstr "*** `%s' õáå÷ ÷çåî ***"
# I decided to retain the English text of what Make prints under -p,
# since it is notoriously hard to get right in right-to-left languages,
# and because its primary use is for programmers who write Makefiles.
-#: commands.c:676
+#: commands.c:684
#, fuzzy
msgid "# recipe to execute"
msgstr "# commands to execute"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr " (built-in):"
-#: commands.c:681
-#, c-format
-msgid " (from `%s', line %lu):\n"
+#: commands.c:689
+#, fuzzy, c-format
+msgid " (from '%s', line %lu):\n"
msgstr " (from `%s', line %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -127,224 +133,228 @@ msgstr ""
"\n"
"# Directories\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
msgstr "# %s: could not be stat'd.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
msgstr "# %s (key %s, mtime %d): could not be opened.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
msgstr "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
msgstr "# %s (device %ld, inode %ld): could not be opened.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr "# %s (key %s, mtime %d): "
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
msgstr "# %s (device %d, inode [%d,%d,%d]): "
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
msgstr "# %s (device %ld, inode %ld): "
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "No"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " files, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "no"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
msgstr " impossibilities"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr " so far."
-#: dir.c:1092
+#: dir.c:1085
#, fuzzy, c-format
msgid " impossibilities in %lu directories.\n"
msgstr " impossibilities in %u directories.\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 "(øáã ìù åôåñá) åîöòì äééðôäì íøåâ `%s' éáéñøå÷ø äðúùî"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
msgstr "äëìäë úîééúñî äðéà äðúùîì äééðôä"
-#: 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 ",`%s' õáå÷ øåáò úåãå÷ô åðúéð %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 ",íéùøåôî-éúìá íéììëá ùåôéç é\"ò åàöîð `%s' õáå÷ øåáò úåãå÷ô"
-#: 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 ".õáå÷ åúåàì äúò íéáùçð `%s' ïäå `%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 ".`%s' øåáò åìà ìò úåôéãò `%s' øåáò úåãå÷ô"
-#: file.c:298
-#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
+#: file.c:300
+#, fuzzy, c-format
+msgid "can't rename single-colon '%s' to double-colon '%s'"
msgstr "`%s' íéããåá íééúåãå÷ðî `%s' íéìåôë íééúåãå÷ðì êåôäì ïúéð àì"
-#: file.c:303
-#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
+#: file.c:305
+#, fuzzy, c-format
+msgid "can't rename double-colon '%s' to single-colon '%s'"
msgstr "`%s' íéìåôë íééúåãå÷ðî `%s' íéããåá íééúåãå÷ðì êåôäì ïúéð àì"
-#: file.c:392
-#, c-format
-msgid "*** Deleting intermediate file `%s'"
+#: file.c:396
+#, fuzzy, c-format
+msgid "*** Deleting intermediate file '%s'"
msgstr "*** `%s' íééðéá õáå÷ ÷çåî ***"
-#: file.c:396
+#: file.c:400
#, fuzzy
msgid "Removing intermediate files...\n"
msgstr "*** `%s' íééðéá õáå÷ ÷çåî ***"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
msgstr "øúåîä íåçúì õåçî äðéäù ,%s ìù ïîæä úîéúç úà %s-á óéìçî"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "úëøòî ïåòù"
# See the comment above about translations of text printed under -p.
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
msgstr "# Not a target:"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
msgstr "# Precious file (prerequisite of .PRECIOUS)."
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
msgstr "# Phony target (prerequisite of .PHONY)."
-#: file.c:933
+#: file.c:958
#, fuzzy
msgid "# Command line target."
msgstr "# Command-line target."
-#: file.c:935
+#: file.c:960
#, fuzzy
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
msgstr "# A default or MAKEFILES makefile."
-#: file.c:937
+#: file.c:962
+#, fuzzy
+msgid "# Builtin rule"
+msgstr ""
+"\n"
+"# No implicit rules."
+
+#: file.c:964
msgid "# Implicit rule search has been done."
msgstr "# Implicit rule search has been done."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
msgstr "# Implicit rule search has not been done."
-#: file.c:940
-#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
+#: file.c:967
+#, fuzzy, c-format
+msgid "# Implicit/static pattern stem: '%s'\n"
msgstr "# Implicit/static pattern stem: `%s'\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
msgstr "# File is an intermediate prerequisite."
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
msgstr "# Also makes:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
msgstr "# Modification time never checked."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# File does not exist."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr "# File is very old."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr "# Last modified %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# File has been updated."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# File has not been updated."
-#: file.c:968
+#: file.c:995
#, fuzzy
msgid "# Recipe currently running (THIS IS A BUG)."
msgstr "# Commands currently running (THIS IS A BUG)."
-#: file.c:971
+#: file.c:998
#, fuzzy
msgid "# Dependencies recipe running (THIS IS A BUG)."
msgstr "# Dependencies commands running (THIS IS A BUG)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
msgstr "# Successfully updated."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
msgstr "# Needs to be updated (-q is set)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr "# Failed to be updated."
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# Invalid value in `update_status' member!"
-
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
+#: file.c:1019
+#, fuzzy
+msgid "# Invalid value in 'command_state' member!"
msgstr "# Invalid value in `command_state' member!"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -352,124 +362,182 @@ msgstr ""
"\n"
"# Files"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
"# "
msgstr ""
-#: 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 "øôñî åðéà `word' úééö÷ðåôì ïåùàø èðîåâøà"
-#: 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' úééö÷ðåôì ïåùàø èðîåâøà"
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
+#: function.c:767
+#, fuzzy
+msgid "non-numeric first argument to 'wordlist' function"
msgstr "øôñî åðéà `wordlist' úééö÷ðåôì ïåùàø èðîåâøà"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
+#: function.c:769
+#, fuzzy
+msgid "non-numeric second argument to 'wordlist' function"
msgstr "øôñî åðéà `wordlist' úééö÷ðåôì éðù èðîåâøà"
-#: 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) failed (e=%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) failed (e=%d)\n"
-#: function.c:1474
+#: function.c:1490
#, fuzzy, c-format
msgid "CreatePipe() failed (e=%ld)\n"
msgstr "CreatePipe() failed (e=%d)\n"
-#: function.c:1479
+#: function.c:1498
#, fuzzy
msgid "windows32_openpipe(): process_init_fd() failed\n"
msgstr "windows32_openpipe (): process_init_fd() failed\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr "`%s' éðîæ batch õáå÷ ÷ìñî\n"
-#: function.c:2150
+#: function.c:2151
+#, c-format
+msgid "open: %s: %s"
+msgstr ""
+
+#: function.c:2158
+#, c-format
+msgid "write: %s: %s"
+msgstr ""
+
+#: 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'"
+msgid "insufficient number of arguments (%d) to function '%s'"
msgstr "÷ôñî åðéàù (%d) íéèðîåâøà øôñî íò äàø÷ð `%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 "åæ úëøòîá úùîåîî äðéà `%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 "`%s' äéö÷ðåôì äàéø÷á `%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 úéðëú øåáò éòîùî-ãç åðéà `%s' ïééôàî\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 "÷ôñî åðéàù (%d) íéèðîåâøà øôñî íò äàø÷ð `%s' äéö÷ðåô"
+
+#: function.c:2555
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "÷ôñî åðéàù (%d) íéèðîåâøà øôñî íò äàø÷ð `%s' äéö÷ðåô"
+
+#: getopt.c:659
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s úéðëú øåáò éòîùî-ãç åðéà `%s' ïééôàî\n"
+
+#: getopt.c:683
+#, fuzzy, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr "%s úéðëú øåáò èðîåâøà ìá÷î åðéà `--%s' ïééôàî\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 úéðëú øåáò èðîåâøà ìá÷î åðéà `%c%s' ïééôàî\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 úéðëú øåáò èðîåâøà áééçî `%s' ïééôàî\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 úéðëú øåáò `--%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 úéðëú øåáò `%c%s' ääåæî-éúìá ïééôàî\n"
-#: getopt.c:766
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: é÷åç-éúìá ïééôàî -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s úéðëú øåáò éåâù ïééôàî -- %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: èðîåâøà áééçî ïééôàî -- %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 úéðëú øåáò éòîùî-ãç åðéà `-W %s' ïééôàî\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 úéðëú øåáò èðîåâøà ìá÷î åðéà `-W %s' ïééôàî\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
#, c-format
msgid "can't allocate %lu bytes for hash table: memory exhausted"
@@ -490,134 +558,159 @@ msgstr ""
msgid "Collisions=%ld/%ld=%.0f%%"
msgstr ""
-#: 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 ".`%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 ".`%s' øåáò ïåéëøà éøáàì ùøåôî-éúìá ììë ùôçî\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
msgstr ".úùøåôî-éúìá äéñøå÷øî òðîð\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 ".`%.*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 ".úéøùôà-éúìá äðéäù íåùî `%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 ".úéøùôà-éúìá äðéäù íåùî `%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 ".`%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 ".`%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 "`%s' íã÷ úùéøãë 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 ".`%s' éðîæ õáå÷ íò ììë ùôçî\n"
-#: job.c:335
+#: job.c:361
#, fuzzy
msgid "Cannot create a temporary file\n"
msgstr "fwrite (temporary file)"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] 0x%x äì÷úî éúîìòúä ***"
-
-#: job.c:450
-#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] 0x%x äì÷ú ***"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (core õáå÷á íùøð ïåøëæä ïëåú)"
-#: job.c:454
-#, c-format
-msgid "[%s] Error %d (ignored)"
+#: job.c:487
+#, fuzzy
+msgid " (ignored)"
msgstr "[%s] %d äì÷úî éúîìòúä"
-#: job.c:455
+#: job.c:491 job.c:1994
+#, fuzzy
+msgid "<builtin>"
+msgstr " (built-in):"
+
+#: 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] 0x%x äì÷ú ***"
+
+#: job.c:513
+#, fuzzy, c-format
+msgid "%s[%s] Error %d%s"
msgstr "*** [%s] %d äì÷ú"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (core õáå÷á íùøð ïåøëæä ïëåú)"
+#: job.c:517
+#, c-format
+msgid "%s[%s] %s%s%s"
+msgstr ""
-#: job.c:549
+#: job.c:609
msgid "*** Waiting for unfinished jobs...."
msgstr "*** ...åîééúñð íøèù úåãåáòì ïéúîî"
-#: job.c:579
+#: job.c:639
#, fuzzy, c-format
msgid "Live child %p (%s) PID %s %s\n"
msgstr "äöø 0x%08lx (%s) PID=%ld %s úá-úéðëú\n"
-#: 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 "(ú÷çåøî)"
-#: job.c:758
+#: job.c:829
#, fuzzy, c-format
msgid "Reaping losing child %p PID %s %s\n"
msgstr "äìùëðù 0x%08lx PID=%ld %s úá-úéðëú óñåà\n"
-#: job.c:759
+#: job.c:830
#, fuzzy, c-format
msgid "Reaping winning child %p PID %s %s\n"
msgstr "äçéìöäù 0x%08lx PID=%ld %s úá-úéðëú óñåà\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
msgstr "`%s' éðîæ batch õáå÷ ÷ìñî\n"
-#: job.c:861
+#: job.c:843
+#, fuzzy, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "`%s' éðîæ batch õáå÷ ÷ìñî\n"
+
+#: job.c:949
#, fuzzy, c-format
msgid "Removing child %p PID %s%s from chain.\n"
msgstr ".úåãåáò úøùøùî 0x%08lx PID=%ld %s úá-úéðëú ÷éçøî\n"
-# Here and elsewhere leading strings passed to perror are not translated,
-# since they will be followed by an error message in English.
-#: job.c:920
-msgid "write jobserver"
-msgstr "write jobserver"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr ""
-#: job.c:922
+#: job.c:1011 job.c:1025
#, fuzzy, c-format
msgid "Released token for child %p (%s).\n"
msgstr ".øøçåù 0x%08lx (%s) úá-úéðëú øåáò ïåîéñàä\n"
-#: job.c:1453 job.c:2094
+# Here and elsewhere leading strings passed to perror are not translated,
+# since they will be followed by an error message in English.
+#: job.c:1023
+msgid "write jobserver"
+msgstr "write jobserver"
+
+#: job.c:1612 job.c:2332
#, fuzzy, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
msgstr "(e=%d) úéðëú-úú øåâéùá ìùëð process_easy()\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
@@ -626,281 +719,354 @@ msgstr ""
"\n"
"ìùëðù øåâéùá åðîð íéèðîåâøà %d\n"
-#: job.c:1525
+#: job.c:1685
#, fuzzy, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
msgstr ".úåãåáò úøùøùì 0x%08lx (%s) PID=%ld %s úá-úéðëú óøöî\n"
-#: job.c:1778
+#: job.c:1953
+#, c-format
+msgid "semaphore or child process wait: (Error %ld: %s)"
+msgstr ""
+
+#: job.c:1967
#, fuzzy, c-format
msgid "Obtained token for child %p (%s).\n"
msgstr ".0x%08lx (%s) úá-úéðëú øåáò ïåîéñà ìá÷úä\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
msgstr "read jobs pipe"
-#: 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 "íéé÷ åðéà `%s' ïåéëøà õáå÷ :touch"
-#: job.c:1802
+#: job.c:2005
#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "`%s' äøèî ùãçî úåðáì êøåö ïéà"
+msgid "%s: update target '%s' due to: %s"
+msgstr "%säúééðáì íéììë ïéà êà ,`%s' úùøåã `%s'%s äøèî"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
msgstr "åæ úëøòîá ñîåò úåìáâî úåôëì ïúéð àì"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
msgstr "cannot enforce load limit: "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
msgstr ""
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
msgstr ""
-#: job.c:2015
+#: job.c:2223
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr ""
+
+#: job.c:2238
msgid "Could not restore stdin\n"
msgstr ""
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
msgstr ""
-#: job.c:2127
+#: job.c:2254
+msgid "Could not restore stderr\n"
+msgstr ""
+
+#: job.c:2365
#, fuzzy, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
msgstr "äôñàð pid %d úá-úéðëú ,pid %d-ì äëçî ïééãò\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
msgstr "äàöîð àì åæ äãå÷ô :%s"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr "äàöîð àì shell úãå÷ô :%s"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
msgstr ""
-#: job.c:2461
+#: job.c:2709
#, fuzzy, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
+msgid "$SHELL changed (was '%s', now '%s')\n"
msgstr "(`%s' äéä íãå÷ ,`%s' åéùëò) äðúùä $SHELL ìù åëøò"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr "`%s' éðîæ batch õáå÷ øöåé\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 ""
"(!unixy && !batch_mode_shell) shell-mode úòéá÷á äì÷ú :%s õáå÷ ìù %d äøåù\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 ".åæ úëøòîá êîúð åðéà (-j) éìéá÷î òåöéá"
+
+#: main.c:312
msgid "Options:\n"
msgstr " :íéðééôàî\n"
-#: main.c:304
+#: main.c:313
#, fuzzy
msgid " -b, -m Ignored for compatibility.\n"
msgstr "úåîéàú ïòîì èîùåî"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr ""
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
msgstr ""
-#: main.c:311
+#: main.c:320
#, fuzzy
msgid " -d Print lots of debugging information.\n"
msgstr "úåàéâù éåôéð úáåèì òãéî ìù òôù âöä"
-#: main.c:313
+#: main.c:322
#, fuzzy
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr "úåàéâù éåôéð úáåèì òãéî ìù íéðåù íéâåñ âöä"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
msgstr ""
-#: 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"
msgstr ""
-#: main.c:323
+#: main.c:332
#, fuzzy
msgid " -h, --help Print this message and exit.\n"
msgstr "úéðëúäî àöå äæ äøæò êñî âöä"
-#: main.c:325
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
msgstr ""
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
msgstr ""
-#: main.c:330
+#: main.c:339
#, fuzzy
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
msgstr "äìáâî ïéà èðîåâøà àìì ;úéðîæ-åá úåãåáò N-î øúåé àì"
-#: main.c:332
+#: main.c:341
#, fuzzy
msgid ""
" -k, --keep-going Keep going when some targets can't be made.\n"
msgstr "äéðáì úåðúéð ïðéà úåøèîäî äîë íà åìéôà êùîä"
-#: 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 "
"N.\n"
msgstr ""
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
msgstr ""
-#: main.c:339
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
"them.\n"
msgstr ""
-#: 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 "
"it.\n"
msgstr ""
-#: 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
#, fuzzy
msgid " -p, --print-data-base Print make's internal database.\n"
msgstr "Make ìù éîéðô íéðåúð ñéñá âöä"
-#: main.c:347
+#: main.c:359
#, fuzzy
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
msgstr "úðëãåòî äøèî íàá øîåà äàéöé ãå÷ ;úåãå÷ô õéøú ìà"
-#: main.c:349
+#: main.c:361
#, fuzzy
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr "íéùøåôî-éúìá íéðáåî íéììë ìøèð"
-#: main.c:351
+#: main.c:363
#, fuzzy
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr "íéðúùî ìù úåðáåî úåøãâä ìøèð"
-#: main.c:353
+#: main.c:365
msgid " -s, --silent, --quiet Don't echo recipes.\n"
msgstr ""
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
msgstr ""
-#: main.c:358
+#: main.c:370
#, fuzzy
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr "ïúåðáì íå÷îá úåøèî ìù ïîæ úîéúç ïëãò"
-#: main.c:360
+#: main.c:372
+msgid " --trace Print tracing information.\n"
+msgstr ""
+
+#: main.c:374
#, fuzzy
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr "úéðëúäî àöå Make ìù àñøéâ øôñî âöä"
-#: main.c:362
+#: main.c:376
#, fuzzy
msgid " -w, --print-directory Print the current directory.\n"
msgstr "úéçëåð äé÷éú íù âöä"
-#: main.c:364
+#: main.c:378
#, fuzzy
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
msgstr "ùøåôîá ïéåö àåä íà åìéôà -w ìèá"
-#: 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"
msgstr ""
-#: main.c:369
+#: main.c:383
#, fuzzy
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
msgstr "øãâåä àìù äðúùîì äééðôä äø÷îá äøäæà âöä"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
msgstr "õáå÷ íùë úìá÷úî äðéà ä÷éø úæåøçî"
-#: main.c:650
-#, c-format
-msgid "unknown debug level specification `%s'"
+#: main.c:734
+#, fuzzy, c-format
+msgid "unknown debug level specification '%s'"
msgstr "úåàéâù éåôéðì òãéî ìù `%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 "íéáåøî --jobserver-fds éðééôàî :úéîéðô äðëú úì÷ú"
+
+#: main.c:848
#, fuzzy, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
msgstr "%s úéðëúá (code = 0x%x, addr = 0x%x) äâéøç åà ä÷éñô\n"
-#: main.c:697
+#: main.c:855
#, fuzzy, c-format
msgid ""
"\n"
@@ -915,202 +1081,224 @@ msgstr ""
"ExceptionFlags = %x\n"
"ExceptionAddress = %x\n"
-#: main.c:705
+#: main.c:863
#, fuzzy, c-format
msgid "Access violation: write operation at address 0x%p\n"
msgstr "%x úáåúëì äáéúë :ïåøëæì äùéâ úì÷ú\n"
-#: main.c:706
+#: main.c:864
#, fuzzy, c-format
msgid "Access violation: read operation at address 0x%p\n"
msgstr "%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 setting 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 path search set default_shell = %s\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr ".úåéðù 30 ìù %s úééäùä"
# Pay attention: this is written to the _right_ of the previous string,
# but should look like a single sentence together with it.
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr " äîééúñð\n"
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr ".úçà íòôî øúåé ïúéð éð÷ú èì÷ õåøòî Makefile"
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr "fopen (temporary file)"
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr "fwrite (temporary file)"
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr ".åæ úëøòîá êîúð åðéà (-j) éìéá÷î òåöéá"
-
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
-msgstr ".(-j1) éúøãñ ïôåàá åòöåáé úåãå÷ô"
-
-#: main.c:1719
+#: main.c:1534
msgid "internal error: multiple --jobserver-fds options"
msgstr "íéáåøî --jobserver-fds éðééôàî :úéîéðô äðëú úì÷ú"
-#: main.c:1727
+#: main.c:1544
+#, c-format
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
+msgstr ""
+
+#: main.c:1547
#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
+msgid "Jobserver client (semaphore %s)\n"
+msgstr ""
+
+#: main.c:1551
+#, fuzzy, c-format
+msgid "internal error: invalid --jobserver-fds string '%s'"
msgstr "--jobserver-fds ïééôàîá `%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 "jobserver ïôåà ìèáî ;-jN áééçî Make-úú :äøäæà"
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
msgstr "dup jobserver"
-#: 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 ""
".Make ìù áàä ììëì `+' óñåä .-j1-á ùåîéù äùòéé ;ïéîæ åðéà jobserver :äøäæà"
-#: main.c:1777
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr ".úçà íòôî øúåé ïúéð éð÷ú èì÷ õåøòî Makefile"
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (temporary file)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (temporary file)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr ".åæ úëøòîá êîúð åðéà (-j) éìéá÷î òåöéá"
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr ".(-j1) éúøãñ ïôåàá åòöåáé úåãå÷ô"
+
+#: 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 "creating jobs pipe"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
msgstr "init jobserver pipe"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
msgstr ""
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr "...makefile éöá÷ ïëãòî\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 ".ùãçî åøöééìî òðîð ;úéôåñðéà äàìåì øåöéì ìåìò `%s' Makefile\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 ".`%s' makefile ìù ùãçî-äøéöéá äì÷ú"
-#: 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 ".àöîð àì `%s' ììëåî makefile"
-#: main.c:2018
-#, c-format
-msgid "Makefile `%s' was not found"
+#: main.c:2275
+#, fuzzy, c-format
+msgid "Makefile '%s' was not found"
msgstr "àöîð àì `%s' Makefile"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
msgstr ".úéøå÷îä äé÷éúì øåæçì ïúéð àì"
-#: main.c:2102
+#: main.c:2354
#, fuzzy, c-format
msgid "Re-executing[%u]:"
msgstr "Re-executing:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr "unlink (temporary file): "
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
msgstr ""
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
msgstr "makefile éöá÷ åàöîð àìå úåøèî ïåéö ïéà"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "úåøèî ïéà"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
msgstr "...ãòé úåøèî ïëãòî\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr ".äîìù àì úåéäì äìåìò äéðáä .ïåòù úùéìâ äúìâúð :úåøéäæ"
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
msgstr "%s [íéðééôàî] [äøèî] ... :ùåîéù ïôåà\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
"This program built for %s\n"
msgstr ""
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
"This program built for %s (%s)\n"
msgstr ""
-#: main.c:2481
+#: main.c:2729
#, fuzzy, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
msgstr ""
"\n"
".<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 "éáåéçå íìù èðîåâøà áééçî `-%c' ïééôàî"
-#: 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 "éáåéçå íìù èðîåâøà áééçî `-%c' ïééôàî"
-#: main.c:3054
+#: main.c:3253
#, c-format
msgid "%sBuilt for %s\n"
msgstr ""
-#: main.c:3056
+#: main.c:3255
#, c-format
msgid "%sBuilt for %s (%s)\n"
msgstr ""
-#: main.c:3066
+#: main.c:3266
#, c-format
msgid ""
"%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1119,7 +1307,7 @@ msgid ""
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
@@ -1128,7 +1316,7 @@ msgstr ""
"\n"
"# Make data base, printed on %s"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
@@ -1137,110 +1325,110 @@ msgstr ""
"\n"
"# Finished Make data base on %s\n"
-#: main.c:3237
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "Unknown error %d"
+
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "éìàåèøéåä ïåøëæä øîâð"
+
+#: misc.c:522
+#, fuzzy, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s access: user %lu (real %lu), group %lu (real %lu)\n"
+
+#: misc.c:543
+#, fuzzy
+msgid "Initialized access"
+msgstr "Initialized"
+
+#: misc.c:622
+msgid "User access"
+msgstr ""
+
+#: misc.c:670
+msgid "Make access"
+msgstr ""
+
+#: misc.c:704
+msgid "Child access"
+msgstr ""
+
+#: output.c:128
#, fuzzy, c-format
msgid "%s: Entering an unknown directory\n"
msgstr "an unknown directory"
-#: main.c:3239
+#: output.c:130
#, fuzzy, c-format
msgid "%s: Leaving an unknown directory\n"
msgstr "an unknown directory"
-#: main.c:3242
+#: output.c:133
#, fuzzy, c-format
-msgid "%s: Entering directory `%s'\n"
+msgid "%s: Entering directory '%s'\n"
msgstr "directory `%s'\n"
-#: main.c:3245
+#: output.c:135
#, fuzzy, c-format
-msgid "%s: Leaving directory `%s'\n"
+msgid "%s: Leaving directory '%s'\n"
msgstr "directory `%s'\n"
-#: main.c:3250
+#: output.c:139
#, fuzzy, c-format
msgid "%s[%u]: Entering an unknown directory\n"
msgstr "an unknown directory"
-#: main.c:3253
+#: output.c:141
#, fuzzy, c-format
msgid "%s[%u]: Leaving an unknown directory\n"
msgstr "an unknown directory"
-#: main.c:3257
+#: output.c:144
+#, c-format
+msgid "%s[%u]: Entering directory '%s'\n"
+msgstr ""
+
+#: output.c:146
#, fuzzy, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
+msgid "%s[%u]: Leaving directory '%s'\n"
msgstr "directory `%s'\n"
-#: main.c:3260
+#: output.c:515
#, fuzzy, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
-msgstr "directory `%s'\n"
+msgid "write error: %s"
+msgstr "%s-ì úåàéâù úééðôä\n"
-#: misc.c:316
+# Here and elsewhere leading strings passed to perror are not translated,
+# since they will be followed by an error message in English.
+#: output.c:517
+#, fuzzy
+msgid "write error"
+msgstr "write jobserver"
+
+#: output.c:740
msgid ". Stop.\n"
msgstr ". Stop.\n"
-#: misc.c:337
-#, c-format
-msgid "Unknown error %d"
-msgstr "Unknown error %d"
-
-#: misc.c:347
+#: output.c:751
#, c-format
msgid "%s%s: %s"
msgstr ""
-#: misc.c:355
+#: output.c:759
#, c-format
msgid "%s: %s"
msgstr ""
-#: misc.c:376 misc.c:387 misc.c:402 misc.c:419 misc.c:438 read.c:3118
-msgid "virtual memory exhausted"
-msgstr "éìàåèøéåä ïåøëæä øîâð"
-
-#: misc.c:708
-#, fuzzy, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s access: user %lu (real %lu), group %lu (real %lu)\n"
-
-#: misc.c:729
-#, fuzzy
-msgid "Initialized access"
-msgstr "Initialized"
-
-#: misc.c:808
-msgid "User access"
-msgstr ""
-
-#: misc.c:856
-msgid "Make access"
-msgstr ""
-
-#: misc.c:890
-msgid "Child access"
-msgstr ""
-
-#: misc.c:954
-#, fuzzy, c-format
-msgid "write error: %s"
-msgstr "%s-ì úåàéâù úééðôä\n"
-
-# Here and elsewhere leading strings passed to perror are not translated,
-# since they will be followed by an error message in English.
-#: misc.c:956
-#, fuzzy
-msgid "write error"
-msgstr "write jobserver"
-
-#: read.c:179
+#: read.c:180
msgid "Reading makefiles...\n"
msgstr "...makefile éöá÷ àøå÷\n"
#: read.c:333
-#, c-format
-msgid "Reading makefile `%s'"
+#, fuzzy, c-format
+msgid "Reading makefile '%s'"
msgstr "Reading makefile `%s'"
#: read.c:335
@@ -1263,326 +1451,344 @@ msgstr " (don't care)"
msgid " (no ~ expansion)"
msgstr " (no ~ expansion)"
-#: 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 "éàðú ìù éåâù øéáçú"
-#: 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 "äðåùàø äøèî éðôì úåìéçúî úåãå÷ô"
-#: read.c:940
+#: read.c:1036
#, fuzzy
msgid "missing rule before recipe"
msgstr "ïäéðôì ììë àìì úåãå÷ô"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
msgstr "%sãéøôî øñç"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
msgstr "(?íéçååø 8 íå÷îá TAB-ì úðååëúä íàä) "
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
msgstr "äøèî úéðáú ïéà"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
msgstr "úåáåøî äøèî úåéðáú"
-#: read.c:1169
-#, c-format
-msgid "target pattern contains no `%%'"
+#: read.c:1269
+#, fuzzy, c-format
+msgid "target pattern contains no '%%'"
msgstr "`%%' àìì äøèî úéðáú"
-#: read.c:1293
-msgid "missing `endif'"
+#: read.c:1391
+#, fuzzy
+msgid "missing 'endif'"
msgstr "øñç `endif'"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "÷éø äðúùî íù"
-#: read.c:1367
+#: read.c:1465
#, fuzzy
-msgid "extraneous text after `define' directive"
+msgid "extraneous text after 'define' directive"
msgstr "`endef' úàøåä éøçà øúåéî èñ÷è"
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
+#: read.c:1490
+#, fuzzy
+msgid "missing 'endef', unterminated 'define'"
msgstr "íåéñ àìì `define' úàøåä ,øñç `endef'"
-#: read.c:1420
+#: read.c:1518
#, fuzzy
-msgid "extraneous text after `endef' directive"
+msgid "extraneous text after 'endef' directive"
msgstr "`endef' úàøåä éøçà øúåéî èñ÷è"
-#: read.c:1490
-#, c-format
-msgid "Extraneous text after `%s' directive"
+#: read.c:1589
+#, fuzzy, c-format
+msgid "extraneous text after '%s' directive"
msgstr "`%s' úàøåä éøçà øúåéî èñ÷è"
-#: read.c:1499 read.c:1513
-#, c-format
-msgid "extraneous `%s'"
+#: read.c:1598 read.c:1612
+#, fuzzy, c-format
+msgid "extraneous '%s'"
msgstr "øúåéî `%s'"
-#: read.c:1518
-msgid "only one `else' per conditional"
+#: read.c:1617
+#, fuzzy
+msgid "only one 'else' per conditional"
msgstr "éàðú ìëì ãéçé `else' ÷ø øúåî"
-#: read.c:1797
+#: read.c:1892
#, fuzzy
msgid "Malformed target-specific variable definition"
msgstr "äøèîì éôéöôñ äðúùî ìù äéåâù äøãâä"
-#: read.c:1855
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
msgstr ""
-#: 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 "ãòéä úéðáú úà úîàåú äðéà `%s' äøèî"
-#: 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 ":: ïäå : âåñî ïä íéììë ùé `%s' äøèî õáå÷ì"
-#: 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 ".ììë åúåàá úçà íòôî øúåé äòéôåî `%s' äøèî"
-#: read.c:2006
+#: read.c:2114
#, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
+msgid "warning: overriding recipe for target '%s'"
msgstr "`%s' äøèî øåáò úåãå÷ô ñøåã :úåøéäæ"
-#: 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 "`%s' äøèî øåáò úåîãå÷ úåãå÷ôî íìòúî :úåøéäæ"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
msgstr "äçðæð äøåùä úøúé ;NUL åú éúùâô :äøäæà"
-#: 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 ".`%s øåáò úåùòì äî ïéà"
-#: 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'"
-#: remake.c:306
-#, c-format
-msgid "Pruning file `%s'.\n"
+#: remake.c:305
+#, fuzzy, c-format
+msgid "Pruning file '%s'.\n"
msgstr ".`%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 "%s`%s'%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 "%säúééðáì íéììë ïéà êà ,`%s' úùøåã `%s'%s äøèî"
#: remake.c:413
-#, c-format
-msgid "Considering target file `%s'.\n"
+#, fuzzy, c-format
+msgid "Considering target file '%s'.\n"
msgstr ".`%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 ".`%s' õáå÷ ïåëãòá éúìùëðå éúéñéð ïîæî àì\n"
#: remake.c:432
-#, c-format
-msgid "File `%s' was considered already.\n"
+#, fuzzy, c-format
+msgid "File '%s' was considered already.\n"
msgstr ".ïë-éðôì ïçáð øáë `%s' õáå÷\n"
#: remake.c:442
-#, c-format
-msgid "Still updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Still updating file '%s'.\n"
msgstr ".`%s' õáå÷ ïëãòî ïééãò\n"
#: remake.c:445
-#, c-format
-msgid "Finished updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Finished updating file '%s'.\n"
msgstr ".`%s' õáå÷ ïëãòì éúîééñ\n"
#: remake.c:474
-#, c-format
-msgid "File `%s' does not exist.\n"
+#, fuzzy, c-format
+msgid "File '%s' does not exist.\n"
msgstr ".íéé÷ åðéà `%s' õáå÷\n"
#: remake.c:481
#, 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 ""
-#: 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 ".`%s' øåáò ùøåôî-éúìá ììë éúàöî\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 ".`%s' øåáò íéùøåôî-éúìá íéììë åàöîð àì\n"
#: remake.c:502
#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
+msgid "Using default recipe for '%s'.\n"
msgstr ".`%s' øåáò ìãçî úøéøá úåãå÷ôá ùîúùî\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
msgstr ".%s <- %s úéìâòî ìåìú èéîùî"
-#: 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 ".`%s' äøèî õáå÷ ìù íã÷-úåùéøã íò éúîééñ\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 ".äéðáá `%s' ìù íã÷ä úåùéøã\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 ".`%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 ".úåàéâù á÷ò ùãçî äúðáð àì `%s' äøèî"
-#: remake.c:727
+#: remake.c:731
#, fuzzy, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
msgstr ".`%s' íã÷ä úùéøãî äùãç `%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 ".íéé÷ åðéàù `%s' éàðúë úùøåã `%s' äøèî\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 ".`%s' íã÷ä úùéøãî äðùé `%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 ".`%s' íã÷ä úùéøãî äùãç `%s' äøèî\n"
-#: remake.c:758
-#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
+#: remake.c:762
+#, fuzzy, c-format
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
msgstr ".íã÷ úåùéøã àììå íéìåôë íééúåãå÷ð íò äðéä `%s' äøèî\n"
-#: remake.c:765
+#: remake.c:769
#, fuzzy, 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 ".äùòîì äúðúùä àì íã÷ úùéøã óàå `%s' øåáò úåãå÷ô ïéà\n"
-#: remake.c:770
+#: remake.c:774
#, c-format
-msgid "Making `%s' due to always-make flag.\n"
+msgid "Making '%s' due to always-make flag.\n"
msgstr ""
-#: 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 "`%s' äøèî ùãçî úåðáì êøåö ïéà"
-#: remake.c:780
-#, c-format
-msgid "; using VPATH name `%s'"
+#: remake.c:784
+#, fuzzy, c-format
+msgid "; using VPATH name '%s'"
msgstr " (`%s' :VPATH õáå÷ íù)"
-#: remake.c:800
-#, c-format
-msgid "Must remake target `%s'.\n"
+#: remake.c:804
+#, fuzzy, c-format
+msgid "Must remake target '%s'.\n"
msgstr ".`%s' äøèî ùãçî úåðáì áééç\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 " .`%s' VPATH íùî íìòúî\n"
-#: remake.c:815
+#: remake.c:819
#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
+msgid "Recipe of '%s' is being run.\n"
msgstr ".`%s' øåáò úåãå÷ô õéøî\n"
-#: 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 ".ùãçî `%s' úåðáì ïåéñð ìùëð\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 ".`%s' ùãçî úééðáá äçìöä\n"
-#: remake.c:828
-#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
+#: remake.c:832
+#, fuzzy, c-format
+msgid "Target file '%s' needs to be remade under -q.\n"
msgstr ".-q íò úåðáéäì êéøö `%s' äøèî õáå÷\n"
-#: 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 ".`%s' øåáò ìãçî úøéøá úåãå÷ôá ùîúùî\n"
-#: remake.c:1357
+#: remake.c:1372
#, fuzzy, c-format
-msgid "Warning: File `%s' has modification time in the future"
+msgid "Warning: File '%s' has modification time in the future"
msgstr "*** `%s' õáå÷ øåáò (%s > %s) ãéúòá åðéä ïåøçà éåðéù ïîæ :äøäæà ***"
-#: 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 "*** `%s' õáå÷ øåáò (%s > %s) ãéúòá åðéä ïåøçà éåðéù ïîæ :äøäæà ***"
-#: 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 ìù `%s' èðîìà"
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
msgstr "%s àöééî åðéà Customs\n"
-#: rule.c:499
+#: rule.c:496
#, fuzzy
msgid ""
"\n"
@@ -1591,7 +1797,7 @@ msgstr ""
"\n"
"# No implicit rules."
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
@@ -1599,7 +1805,7 @@ msgstr ""
"\n"
"# No implicit rules."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -1608,241 +1814,258 @@ msgstr ""
"\n"
"# %u implicit rules, %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr " terminal."
-#: rule.c:534
+#: rule.c:531
#, fuzzy, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
msgstr "BUG: num_pattern_rules wrong! %u != %u"
# It's no use to try to translate the signal names.
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "unknown signal"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
msgstr "Hangup"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "Interrupt"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
msgstr "Quit"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
msgstr "Illegal Instruction"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
msgstr "Trace/breakpoint trap"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "Aborted"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
msgstr "IOT trap"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
msgstr "EMT trap"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
msgstr "Floating point exception"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "Killed"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr "Bus error"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "Segmentation fault"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "Bad system call"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr "Broken pipe"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "Alarm clock"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
msgstr "Terminated"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr "User defined signal 1"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr "User defined signal 2"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
msgstr "Child exited"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
msgstr "Power failure"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "Stopped"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
msgstr "Stopped (tty input)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
msgstr "Stopped (tty output)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "Stopped (signal)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
msgstr "CPU time limit exceeded"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
msgstr "File size limit exceeded"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
msgstr "Virtual timer expired"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
msgstr "Profiling timer expired"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
msgstr "Window changed"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "Continued"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
msgstr "Urgent I/O condition"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
msgstr "I/O possible"
-#: 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 "Resource lost"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "Danger signal"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr "Information request"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
msgstr "Floating point co-processor not available"
-#: 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
+#: 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
+msgid ""
+"# hash-table stats:\n"
"# "
msgstr ""
+#: variable.c:1607
+msgid "automatic"
+msgstr "automatic"
+
# These are printed under -p, so they are left in English.
-#: variable.c:1541
+#: variable.c:1610
msgid "default"
msgstr "default"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr "environment"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr "makefile"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
msgstr "environment under -e"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr "command line"
-#: variable.c:1556
-msgid "`override' directive"
+#: variable.c:1625
+#, fuzzy
+msgid "'override' directive"
msgstr "`override' directive"
-#: variable.c:1559
-msgid "automatic"
-msgstr "automatic"
-
-#: variable.c:1570
+#: variable.c:1636
#, fuzzy, c-format
-msgid " (from `%s', line %lu)"
+msgid " (from '%s', line %lu)"
msgstr " (from `%s', line %lu):\n"
-#: variable.c:1612
+#: variable.c:1699
#, fuzzy
msgid "# variable set hash-table stats:\n"
msgstr "# %u variables in %u hash buckets.\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1850,7 +2073,7 @@ msgstr ""
"\n"
"# Variables\n"
-#: variable.c:1627
+#: variable.c:1714
#, fuzzy
msgid ""
"\n"
@@ -1859,7 +2082,7 @@ msgstr ""
"\n"
"# Pattern-specific variable values"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
@@ -1867,7 +2090,7 @@ msgstr ""
"\n"
"# No pattern-specific variable values."
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
@@ -1876,92 +2099,92 @@ msgstr ""
"\n"
"# %u pattern-specific variable values"
-#: variable.h:219
-#, c-format
-msgid "warning: undefined variable `%.*s'"
+#: variable.h:224
+#, fuzzy, c-format
+msgid "warning: undefined variable '%.*s'"
msgstr "`%.*s' øãâåî-éúìá äðúùî :úåøéäæ"
-#: vmsfunctions.c:92
+#: vmsfunctions.c:91
#, fuzzy, c-format
msgid "sys$search() failed with %d\n"
msgstr "%d íò ìùëð sys$search\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr "ä÷éø äééðôä :úåøéäæ\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 "command_state `%s' :úéîéðô äðëú úì÷ú"
-#: vmsjobs.c:289
+#: vmsjobs.c:286
#, c-format
msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
msgstr ".DCL-î CTRL-Y-á ìåôéè øåùôéàá êøåö úåéäì ìåìò :úåøéäæ\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr "BUILTIN [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr "BUILTIN CD %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr "BUILTIN RM %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
msgstr "úøëåî äðéà '%s'úéðáåî äãå÷ô\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr "ä÷éø äãå÷ô :äì÷ú\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr "%s-î èì÷ úééðôä\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr "%s-ì úåàéâù úééðôä\n"
-#: vmsjobs.c:523
+#: vmsjobs.c:518
#, fuzzy, c-format
msgid "Append output to %s\n"
msgstr "%s-ì èìô úééðôä\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
msgstr "%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 "%s õéøî úàæ íå÷îá\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr "%d :úá-úéðëú úìòôäá äì÷ú\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
@@ -1969,37 +2192,43 @@ msgstr ""
"\n"
"# VPATH Search Paths\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
+#: vpath.c:600
+#, fuzzy
+msgid "# No 'vpath' search paths."
msgstr "# No `vpath' search paths."
-#: 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' search paths.\n"
-#: vpath.c:608
+#: vpath.c:605
+#, fuzzy
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
"# No general (`VPATH' variable) search path."
-#: vpath.c:614
+#: vpath.c:611
+#, fuzzy
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
"# General (`VPATH' variable) search path:\n"
"# "
+#~ msgid "# Invalid value in `update_status' member!"
+#~ msgstr "# Invalid value in `update_status' member!"
+
#~ msgid ""
#~ "\n"
#~ "# No files."
@@ -2017,6 +2246,9 @@ msgstr ""
#~ msgid "# average %.3f files per bucket, max %u files in one bucket.\n"
#~ msgstr "# average %.3f files per bucket, max %u files in one bucket.\n"
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] 0x%x äì÷úî éúîìòúä ***"
+
#~ msgid "Syntax error, still inside '\"'\n"
#~ msgstr "'\"' êåúá ïééãò ,øéáçú úàéâù\n"
diff --git a/po/hr.gmo b/po/hr.gmo
index a3d3307..33ffdae 100644
--- a/po/hr.gmo
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index 5806881..5ae7169 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -1,121 +1,130 @@
-# Translation of GNU make.
+# Translation of make to Croatian.
# Copyright (C) 2002 Free Software Foundation, Inc.
+# This file is distributed under the same license as the make package.
# Hrvoje Niksic <hniksic@xemacs.org>, 2002.
+# Tomislav Krznar <tomislav.krznar@gmail.com>, 2012.
#
msgid ""
msgstr ""
-"Project-Id-Version: make 3.80\n"
+"Project-Id-Version: make 3.82\n"
"Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2010-07-28 01:42-0400\n"
-"PO-Revision-Date: 2003-10-12 18:01+0200\n"
-"Last-Translator: Hrvoje Niksic <hniksic@xemacs.org>\n"
+"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"PO-Revision-Date: 2012-10-31 17:32+0100\n"
+"Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
+"Language: hr\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-#: ar.c:48
-#, c-format
-msgid "attempt to use unsupported feature: `%s'"
-msgstr "poku¹aj kori¹tenja nepodr¾ane moguænosti: `%s'"
+#: ar.c:46
+#, fuzzy, c-format
+msgid "attempt to use unsupported feature: '%s'"
+msgstr "pokuÅ¡aj koriÅ¡tenja nepodržane mogućnosti: „%sâ€"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
-msgstr "touch dijela arhive nije rapolo¾iv na VMS-u"
+msgstr "touch elementa arhive nije dostupan na VMS-u"
-#: ar.c:149
-#, c-format
-msgid "touch: Archive `%s' does not exist"
-msgstr "touch: Arhiva `%s' ne postoji"
-
-#: ar.c:152
-#, c-format
-msgid "touch: `%s' is not a valid archive"
-msgstr "touch: `%s' nije valjana arhiva"
-
-#: ar.c:159
-#, c-format
-msgid "touch: Member `%s' does not exist in `%s'"
-msgstr "touch: èlan `%s' ne postoji u `%s'"
+#: ar.c:147
+#, fuzzy, c-format
+msgid "touch: Archive '%s' does not exist"
+msgstr "touch: Arhiva „%s†ne postoji"
-#: ar.c:166
-#, c-format
-msgid "touch: Bad return code from ar_member_touch on `%s'"
-msgstr "touch: Neispravan povratni kod iz ar_member_touch na `%s'"
+#: ar.c:150
+#, fuzzy, c-format
+msgid "touch: '%s' is not a valid archive"
+msgstr "touch: „%s†nije ispravna arhiva"
-#: arscan.c:69
+#: ar.c:157
#, fuzzy, c-format
-msgid "lbr$set_module() failed to extract module info, status = %d"
-msgstr "lbr$set_module nije izdvojio informacije o modulu, status = %d"
+msgid "touch: Member '%s' does not exist in '%s'"
+msgstr "touch: Element „%s†ne postoji u „%sâ€"
-#: arscan.c:175
+#: ar.c:164
#, fuzzy, c-format
-msgid "lbr$ini_control() failed with status = %d"
-msgstr "lbr$ini_control nije uspio sa statusom = %d"
+msgid "touch: Bad return code from ar_member_touch on '%s'"
+msgstr "touch: Neispravan povratni kod iz ar_member_touch na „%sâ€"
-#: arscan.c:187
+#: arscan.c:67
#, c-format
-msgid "unable to open library `%s' to lookup member `%s'"
-msgstr "ne mogu otvoriti biblioteku `%s' da naðem èlan `%s'"
+msgid "lbr$set_module() failed to extract module info, status = %d"
+msgstr "lbr$set_module() nije izdvojio informacije o modulu, status = %d"
-#: arscan.c:850
+#: arscan.c:173
#, c-format
-msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n"
-msgstr "èlan `%s'%s: %ld bajtova na %ld (%ld).\n"
+msgid "lbr$ini_control() failed with status = %d"
+msgstr "lbr$ini_control() nije uspio sa stanjem = %d"
-#: arscan.c:851
+#: arscan.c:185
+#, fuzzy, c-format
+msgid "unable to open library '%s' to lookup member '%s'"
+msgstr "ne mogu otvoriti biblioteku „%s†za traženje elementa „%sâ€"
+
+#: arscan.c:847
+#, fuzzy, c-format
+msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
+msgstr "Älan „%sâ€%s: %ld bajtova na %ld (%ld).\n"
+
+#: arscan.c:848
msgid " (name might be truncated)"
-msgstr " (ime je mo¾da odrezano)"
+msgstr " (ime je možda odsjeÄeno)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Datum %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
-msgstr " uid = %d, gid = %d, mode = 0%o.\n"
+msgstr " uid = %d, gid = %d, mod = 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 "*** Prekid.\n"
-#: commands.c:622
-#, c-format
-msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
-msgstr "*** [%s] Èlan arhive '%s' mogao bi biti bezvezan; nije obrisan"
+#: commands.c:630
+#, fuzzy, c-format
+msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
+msgstr "*** [%s] Element arhive „%s†je možda lažan; nije izbrisan"
-#: commands.c:625
-#, c-format
-msgid "*** Archive member `%s' may be bogus; not deleted"
-msgstr "*** Èlan arhive '%s' mogao bi biti bezvezan; nije obrisan"
+#: commands.c:633
+#, fuzzy, c-format
+msgid "*** Archive member '%s' may be bogus; not deleted"
+msgstr "*** Element arhive „%s†je možda lažan; nije izbrisan"
-#: commands.c:638
-#, c-format
-msgid "*** [%s] Deleting file `%s'"
-msgstr "*** [%s] Bri¹em spis `%s'"
+#: commands.c:646
+#, fuzzy, c-format
+msgid "*** [%s] Deleting file '%s'"
+msgstr "*** [%s] BriÅ¡em datoteku „%sâ€"
-#: commands.c:640
-#, c-format
-msgid "*** Deleting file `%s'"
-msgstr "*** Bri¹em spis `%s'"
+#: commands.c:648
+#, fuzzy, c-format
+msgid "*** Deleting file '%s'"
+msgstr "*** BriÅ¡em datoteku „%sâ€"
-#: commands.c:676
-#, fuzzy
+#: commands.c:684
msgid "# recipe to execute"
-msgstr "# naredbe za izvr¹avanje"
+msgstr "# recept za izvršavanje"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
-msgstr " (ugraðeno):"
+msgstr " (ugrađeno):"
-#: commands.c:681
-#, c-format
-msgid " (from `%s', line %lu):\n"
-msgstr " (iz `%s', redak %lu):\n"
+#: commands.c:689
+#, fuzzy, c-format
+msgid " (from '%s', line %lu):\n"
+msgstr " (iz „%sâ€, redak %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -123,359 +132,417 @@ msgstr ""
"\n"
"# Direktoriji\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
-msgstr "# %s: ne mo¾e se statati.\n"
+msgstr "# %s: ne može se izvršiti stat.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
-msgstr "# %s (tipka %s, mtime %d): nije ga se moglo otvoriti.\n"
+msgstr "# %s (tipka %s, vrijeme uređivanja %d): ne može se otvoriti.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
-msgstr "# %s (device %d, inode [%d,%d,%d]): nije ga se moglo otvoriti.\n"
+msgstr "# %s (ureÄ‘aj %d, indeksni Ävor [%d,%d,%d]): ne može se otvoriti.\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
-msgstr "# %s (device %ld, inode %ld): nije ga se moglo otvoriti.\n"
+msgstr "# %s (ureÄ‘aj %ld, indeksni Ävor %ld): ne može se otvoriti.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
-msgstr "# %s (tipka %s, mtime %d): "
+msgstr "# %s (tipka %s, vrijeme uređivanja %d): "
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
-msgstr "# %s (device %d, inode [%d,%d,%d]): "
+msgstr "# %s (ureÄ‘aj %d, indeksni Ävor [%d,%d,%d]): "
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
-msgstr "# %s (device %ld, inode %ld): "
+msgstr "# %s (ureÄ‘aj %ld, indeksni Ävor %ld): "
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
-msgstr "Nijedan"
+msgstr "Nijedna"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
-msgstr " spis, "
+msgstr " datoteka, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "nijedna"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
-msgstr " nemoguænost"
+msgstr " nemogućnost"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
-msgstr " do sad."
+msgstr " do sada."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
-msgstr " nemoguænosti u %lu direktorija.\n"
+msgstr " nemogućnosti u %lu direktorija.\n"
-#: expand.c:127
-#, c-format
-msgid "Recursive variable `%s' references itself (eventually)"
-msgstr "Rekurzivna varijabla `%s' pokazuje (na kraju) na sebe"
+#: expand.c:125
+#, fuzzy, c-format
+msgid "Recursive variable '%s' references itself (eventually)"
+msgstr "Rekurzivna varijabla „%s†pokazuje (na kraju) na sebe"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
-msgstr "nedovr¹ena referenca na varijablu"
+msgstr "nedovršena referenca na varijablu"
-#: file.c:267
+#: file.c:269
#, fuzzy, c-format
-msgid "Recipe was specified for file `%s' at %s:%lu,"
-msgstr "Naredbe su naznaèene za spis `%s' na %s:%lu,"
+msgid "Recipe was specified for file '%s' at %s:%lu,"
+msgstr "Naveden je recept za datoteku „%s†na %s:%lu,"
-#: file.c:272
+#: file.c:274
#, fuzzy, c-format
-msgid "Recipe for file `%s' was found by implicit rule search,"
-msgstr "Naredbe za spis `%s' naðene su implicitnim pretra¾ivanjem propisa,"
+msgid "Recipe for file '%s' was found by implicit rule search,"
+msgstr "Recept za datoteku „%s†nađen je implicitnim pretraživanjem propisa,"
-#: file.c:275
-#, c-format
-msgid "but `%s' is now considered the same file as `%s'."
-msgstr "ali `%s' se sada smatra istim spisom kao i `%s'."
-
-#: file.c:278
+#: file.c:277
#, fuzzy, c-format
-msgid "Recipe for `%s' will be ignored in favor of the one for `%s'."
-msgstr "Naredbe za `%s' ignorirat æe se u korist onih za `%s'."
+msgid "but '%s' is now considered the same file as '%s'."
+msgstr "ali se „%s†sada smatra istom datotekom kao i „%sâ€."
-#: file.c:298
-#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
-msgstr "ne mogu preimenovati `%s' s jednom dvotoèkom u `%s' s dvije dvotoèke"
+#: file.c:280
+#, fuzzy, c-format
+msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
+msgstr "Recept za „%s†će se zanemariti u korist onog za „%sâ€."
-#: file.c:303
-#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
-msgstr "ne mogu preimenovati `%s' s dvije dvotoèke u `%s' s jednom dvotoèkom"
+#: file.c:300
+#, fuzzy, c-format
+msgid "can't rename single-colon '%s' to double-colon '%s'"
+msgstr "ne mogu preimenovati „%s†s jednim dvotoÄjem u „%s†s dva dvotoÄja"
-#: file.c:392
-#, c-format
-msgid "*** Deleting intermediate file `%s'"
-msgstr "*** Bri¹em posredni spis `%s'"
+#: file.c:305
+#, fuzzy, c-format
+msgid "can't rename double-colon '%s' to single-colon '%s'"
+msgstr "ne mogu preimenovati „%s†s dva dvotoÄja u „%s†s jednim dvotoÄjem"
#: file.c:396
+#, fuzzy, c-format
+msgid "*** Deleting intermediate file '%s'"
+msgstr "*** BriÅ¡em posrednu datoteku „%sâ€"
+
+#: file.c:400
msgid "Removing intermediate files...\n"
-msgstr "Bri¹em posredne spise...\n"
+msgstr "Uklanjam posredne datoteke...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
-msgstr "%s: Vremenska oznaka van granica; zamjenjujem s %s"
+msgstr "%s: Vremenska oznaka izvan granica; zamjenjujem s %s"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "Trenutno vrijeme"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
msgstr "# Nije meta:"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
-msgstr "# Vrijedan spis (prerekvizit mete .PRECIOUS)."
+msgstr "# Vrijedna datoteka (preduvjet mete .PRECIOUS)."
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
-msgstr "# La¾na meta (prerekvizit mete .PHONY)."
+msgstr "# Lažna meta (preduvjet mete .PHONY)."
-#: file.c:933
-#, fuzzy
+#: file.c:958
msgid "# Command line target."
-msgstr "# Meta na komandnoj liniji."
+msgstr "# Meta naredbenog retka."
-#: file.c:935
-#, fuzzy
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
-msgstr "# Podrazumijevani ili MAKEFILES makefile."
+msgstr "# Zadana, MAKEFILES ili -include/sinclude datoteka izrade."
-#: file.c:937
+#: file.c:962
+#, fuzzy
+msgid "# Builtin rule"
+msgstr ""
+"\n"
+"# Nema implicitnih propisa."
+
+#: file.c:964
msgid "# Implicit rule search has been done."
-msgstr "# Implicitna pretraga propisa je izvr¹ena."
+msgstr "# Implicitna pretraga propisa je izvršena."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
-msgstr "# Implicitna pretraga propisa nije izvr¹ena."
+msgstr "# Implicitna pretraga propisa nije izvršena."
-#: file.c:940
-#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
-msgstr "# Korijen implicitnog/statièkog uzorka: `%s'\n"
+#: file.c:967
+#, fuzzy, c-format
+msgid "# Implicit/static pattern stem: '%s'\n"
+msgstr "# Korijen implicitnog/statiÄkog uzorka: „%sâ€\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
-msgstr "# Spis je posredni prerekvizit."
+msgstr "# Datoteka je posredni preduvjet."
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
-msgstr "# Takoðer proizvodi:"
+msgstr "# Također napravi:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
msgstr "# Vrijeme promjene nikada nije provjereno."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
-msgstr "# Spis ne postoji."
+msgstr "# Datoteka ne postoji."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
-msgstr "# Spis je vrlo star."
+msgstr "# Datoteka je vrlo stara."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr "# Zadnja promjena %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
-msgstr "# Spis je a¾uriran."
+msgstr "# Datoteka je ažurirana."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
-msgstr "# Spis nije a¾uriran."
+msgstr "# Datoteka nije ažurirana."
-#: file.c:968
-#, fuzzy
+#: file.c:995
msgid "# Recipe currently running (THIS IS A BUG)."
-msgstr "# Naredbe koje se trenutno izvr¹avaju (OVO JE BUG)."
+msgstr "# Recept koji se trenutno izvršava (OVO JE BUG)."
-#: file.c:971
-#, fuzzy
+#: file.c:998
msgid "# Dependencies recipe running (THIS IS A BUG)."
-msgstr "# Ovisnosti izmeðu naredbi koje se izvr¹avaju (OVO JE BUG)."
+msgstr "# Recept ovisnosti koji se izvršava (OVO JE BUG)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
-msgstr "# Uspje¹no a¾uriran."
+msgstr "# Uspješno ažuriran."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
-msgstr "# Treba ga a¾urirati (-q je postavljen)."
+msgstr "# Treba ga ažurirati (-q je postavljen)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
-msgstr "# Nije ga se a¾uriralo."
+msgstr "# Nije ažuriran."
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# Neispravna vrijednost u elementu `update_status'!"
-
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
-msgstr "# Neispravna vrijednost u elementu `command_state'!"
+#: file.c:1019
+#, fuzzy
+msgid "# Invalid value in 'command_state' member!"
+msgstr "# Neispravna vrijednost u elementu „command_stateâ€!"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
msgstr ""
"\n"
-"# Spisi"
+"# Datoteke"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
"# "
msgstr ""
"\n"
-"# statistike hash tablice spisa\n"
+"# statistike tablice raspršivanja datoteka:\n"
"# "
-#: function.c:758
-msgid "non-numeric first argument to `word' function"
-msgstr "prvi argument funkcije `word' nije broj"
+#: file.c:1051
+#, c-format
+msgid "%s: Field '%s' not cached: %s"
+msgstr ""
-#: function.c:763
-msgid "first argument to `word' function must be greater than 0"
-msgstr "prvi argument funkcije `word' mora biti veæi od 0"
+#: function.c:742
+#, fuzzy
+msgid "non-numeric first argument to 'word' function"
+msgstr "prvi argument funkcije „word†nije broj"
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
-msgstr "drugi argument funkcije `wordllist' nije broj"
+#: function.c:747
+#, fuzzy
+msgid "first argument to 'word' function must be greater than 0"
+msgstr "prvi argument funkcije „word†mora biti veći od 0"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
-msgstr "drugi arument funkcije `wordlist' nije broj"
+#: function.c:767
+#, fuzzy
+msgid "non-numeric first argument to 'wordlist' function"
+msgstr "drugi argument funkcije „wordlist†nije broj"
-#: function.c:1458
-#, fuzzy, c-format
-msgid "windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"
-msgstr "create_child_process: DuplicateHandle(In) je zakazao (e=%d)\n"
+#: function.c:769
+#, fuzzy
+msgid "non-numeric second argument to 'wordlist' function"
+msgstr "drugi argument funkcije „wordlist†nije broj"
-#: function.c:1469
+#: function.c:1460
#, fuzzy, c-format
-msgid "windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr "create_child_process: DuplicateHandle(Err) je zakazao (e=%d)\n"
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
+msgstr "windows32_openpipe(): DuplicateHandle(In) nije uspio (e=%ld)\n"
-#: function.c:1474
+#: function.c:1483
#, fuzzy, c-format
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
+msgstr "windows32_open_pipe(): DuplicateHandle(Err) nije uspio (e=%ld)\n"
+
+#: function.c:1490
+#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
-msgstr "CreatePipe() je zakazao (e=%d)\n"
+msgstr "CreatePipe() nije uspio (e=%ld)\n"
-#: function.c:1479
-#, fuzzy
+#: function.c:1498
msgid "windows32_openpipe(): process_init_fd() failed\n"
-msgstr "windows32_openpipe (): process_init_fd() je zakazao\n"
+msgstr "windows32_openpipe(): process_init_fd() nije uspio\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
-msgstr "Èistim privremeni batch spis %s.\n"
+msgstr "ÄŒistim privremenu skupnu datoteku %s.\n"
-#: function.c:2150
+#: function.c:2151
#, fuzzy, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
-msgstr "Nedovoljan broj argumenata (%d) funkciji `%s'"
+msgid "open: %s: %s"
+msgstr "%s: %s"
-#: function.c:2162
+#: function.c:2158
#, fuzzy, c-format
-msgid "unimplemented on this platform: function `%s'"
-msgstr "Neimplementirano na ovoj platformi: funkcija `%s'"
+msgid "write: %s: %s"
+msgstr "greška pisanja: %s"
-#: function.c:2212
+#: function.c:2164
#, c-format
-msgid "unterminated call to function `%s': missing `%c'"
-msgstr "nedovr¹en poziv funkciji `%s': nedostaje `%c'"
+msgid "Invalid file operation: %s"
+msgstr ""
-#: getopt.c:661
-#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: opcija `%s' je vi¹eznaèna\n"
+#: function.c:2279
+#, fuzzy, c-format
+msgid "insufficient number of arguments (%d) to function '%s'"
+msgstr "nedovoljan broj argumenata (%d) funkciji „%sâ€"
-#: getopt.c:685
-#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: uz opciju `--%s' ne ide argument\n"
+#: function.c:2291
+#, fuzzy, c-format
+msgid "unimplemented on this platform: function '%s'"
+msgstr "neimplementirano na ovoj platformi: funkcija „%sâ€"
-#: getopt.c:690
-#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: opcija `%c%s' ne dopu¹ta argument\n"
+#: function.c:2354
+#, fuzzy, c-format
+msgid "unterminated call to function '%s': missing '%c'"
+msgstr "nedovrÅ¡en poziv funkciji „%sâ€: nedostaje „%câ€"
-#: getopt.c:707 getopt.c:880
-#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: opcija `%s' zahtijeva argument\n"
+#: function.c:2546
+msgid "Empty function name\n"
+msgstr ""
-#: getopt.c:736
+#: function.c:2548
#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: nepoznata opcija `--%s'\n"
+msgid "Invalid function name: %s\n"
+msgstr ""
-#: getopt.c:740
+#: function.c:2550
#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: nepoznata opcija `%c%s'\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 "nedovoljan broj argumenata (%d) funkciji „%sâ€"
+
+#: function.c:2555
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "nedovoljan broj argumenata (%d) funkciji „%sâ€"
+
+#: getopt.c:659
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: opcija „%s†je viÅ¡eznaÄna\n"
+
+#: getopt.c:683
+#, fuzzy, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: opcija „--%s†ne dozvoljava argument\n"
+
+#: getopt.c:688
+#, fuzzy, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: opcija „%c%s†ne dozvoljava argument\n"
+
+#: getopt.c:705 getopt.c:878
+#, fuzzy, c-format
+msgid "%s: option '%s' requires an argument\n"
+msgstr "%s: opcija „%s†zahtijeva argument\n"
-#: getopt.c:766
+#: getopt.c:734
+#, fuzzy, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: neprepoznata opcija „--%sâ€\n"
+
+#: getopt.c:738
+#, fuzzy, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: neprepoznata opcija „%c%sâ€\n"
+
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
-msgstr "%s: nedopu¹tena opcija -- %c\n"
+msgstr "%s: nedozvoljena opcija -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: neispravna opcija -- %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: opcija tra¾i argument -- %c\n"
+msgstr "%s: opcija zahtijeva argument -- %c\n"
-#: getopt.c:846
+#: getopt.c:844
+#, fuzzy, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: opcija „-W %s†je viÅ¡eznaÄna\n"
+
+#: getopt.c:862
+#, fuzzy, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: opcija „-W %s†ne dozvoljava argument\n"
+
+#: guile.c:55
#, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
-msgstr "%s: opcija `-W %s' je vi¹eznaèna\n"
+msgid "guile: Expanding '%s'\n"
+msgstr ""
-#: getopt.c:864
+#: guile.c:71
#, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr "%s: opcija `-W %s' ne dopu¹ta argument\n"
+msgid "guile: Evaluating '%s'\n"
+msgstr ""
#: hash.c:49
-#, fuzzy, c-format
+#, c-format
msgid "can't allocate %lu bytes for hash table: memory exhausted"
-msgstr "ne mogu alocirati %ld bajtova za hash tablicu; memorija iscrpljena"
+msgstr ""
+"ne mogu alocirati %lu bajtova za tablicu raspršivanja: memorija iscrpljena"
#: hash.c:280
#, c-format
msgid "Load=%ld/%ld=%.0f%%, "
-msgstr "Optereæenje=%ld/%ld=%.0f%%, "
+msgstr "Opterećenje=%ld/%ld=%.0f%%, "
#: hash.c:282
#, c-format
@@ -485,445 +552,557 @@ msgstr "Preraspodjela=%d, "
#: hash.c:283
#, c-format
msgid "Collisions=%ld/%ld=%.0f%%"
-msgstr "Kolizije=%ld/%ld=%.0f%%"
+msgstr "Sudari=%ld/%ld=%.0f%%"
-#: implicit.c:40
-#, c-format
-msgid "Looking for an implicit rule for `%s'.\n"
-msgstr "Tra¾im implicitni propis za `%s'.\n"
+#: implicit.c:38
+#, fuzzy, c-format
+msgid "Looking for an implicit rule for '%s'.\n"
+msgstr "Tražim implicitni propis za „%sâ€.\n"
-#: implicit.c:56
-#, c-format
-msgid "Looking for archive-member implicit rule for `%s'.\n"
-msgstr "Tra¾im implicitni propis za `%s' koji pripada elementu arhive.\n"
+#: implicit.c:54
+#, fuzzy, c-format
+msgid "Looking for archive-member implicit rule for '%s'.\n"
+msgstr "Tražim implicitni propis za „%s†koji pripada elementu arhive.\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
msgstr "Izbjegavam rekurziju implicitnog propisa.\n"
-#: implicit.c:491
+#: implicit.c:486
#, c-format
-msgid "Trying pattern rule with stem `%.*s'.\n"
-msgstr "Poku¹avam propis uzorka s korijenom `%.*s'.\n"
+msgid "Stem too long: '%.*s'.\n"
+msgstr ""
-#: implicit.c:674
-#, c-format
-msgid "Rejecting impossible rule prerequisite `%s'.\n"
-msgstr "Odbacujem nemoguæe pravilo prerekvizita `%s'.\n"
+#: implicit.c:491
+#, fuzzy, c-format
+msgid "Trying pattern rule with stem '%.*s'.\n"
+msgstr "PokuÅ¡avam propis uzorka s korijenom „%.*sâ€.\n"
-#: implicit.c:675
-#, c-format
-msgid "Rejecting impossible implicit prerequisite `%s'.\n"
-msgstr "Odbacujem nemoguæ prerekvizit `%s'.\n"
+#: implicit.c:697
+#, fuzzy, c-format
+msgid "Rejecting impossible rule prerequisite '%s'.\n"
+msgstr "Odbacujem nemoguće pravilo preduvjeta „%sâ€.\n"
-#: implicit.c:688
-#, c-format
-msgid "Trying rule prerequisite `%s'.\n"
-msgstr "Poku¹avam s propisom prerekvizita `%s'.\n"
+#: implicit.c:698
+#, fuzzy, c-format
+msgid "Rejecting impossible implicit prerequisite '%s'.\n"
+msgstr "Odbacujem nemoguć implicitni preduvjet „%sâ€.\n"
-#: implicit.c:689
-#, c-format
-msgid "Trying implicit prerequisite `%s'.\n"
-msgstr "Poku¹avam s implicitnim prerekvizitom `%s'.\n"
+#: implicit.c:711
+#, fuzzy, c-format
+msgid "Trying rule prerequisite '%s'.\n"
+msgstr "PokuÅ¡avam s propisom preduvjeta „%sâ€.\n"
-#: implicit.c:728
-#, c-format
-msgid "Found prerequisite `%s' as VPATH `%s'\n"
-msgstr "Na¹ao prerekvizit `%s' kao VPATH `%s'\n"
+#: implicit.c:712
+#, fuzzy, c-format
+msgid "Trying implicit prerequisite '%s'.\n"
+msgstr "PokuÅ¡avam s implicitnim preduvjetom „%sâ€.\n"
-#: implicit.c:742
-#, c-format
-msgid "Looking for a rule with intermediate file `%s'.\n"
-msgstr "Tra¾im propis s posrednim spisom `%s'.\n"
+#: implicit.c:751
+#, fuzzy, c-format
+msgid "Found prerequisite '%s' as VPATH '%s'\n"
+msgstr "NaÅ¡ao preduvjet „%s†kao VPATH „%sâ€\n"
-#: job.c:335
-#, fuzzy
+#: implicit.c:765
+#, fuzzy, c-format
+msgid "Looking for a rule with intermediate file '%s'.\n"
+msgstr "Tražim propis s posrednom datotekom „%sâ€.\n"
+
+#: job.c:361
msgid "Cannot create a temporary file\n"
-msgstr "fwrite(privremeni spis)"
+msgstr "Ne mogu napraviti privremenu datoteku\n"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] Gre¹ka 0x%x (ignorirana)"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (jezgra izbaÄena)"
-#: job.c:450
-#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] Gre¹ka 0x%x"
+#: job.c:487
+#, fuzzy
+msgid " (ignored)"
+msgstr "[%s] Greška %d (zanemarena)"
-#: job.c:454
-#, c-format
-msgid "[%s] Error %d (ignored)"
-msgstr "[%s] Gre¹ka %d (ignorirana)"
+#: job.c:491 job.c:1994
+#, fuzzy
+msgid "<builtin>"
+msgstr " (ugrađeno):"
-#: job.c:455
-#, c-format
-msgid "*** [%s] Error %d"
-msgstr "*** [%s] Gre¹ka %d"
+#: job.c:501
+#, fuzzy, c-format
+msgid "%s: recipe for target '%s' failed"
+msgstr "upozorenje: poniÅ¡tavam recept za metu „%sâ€"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (izbaèen core)"
+#: job.c:510
+#, fuzzy, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "*** [%s] Greška 0x%x"
-#: job.c:549
-msgid "*** Waiting for unfinished jobs...."
-msgstr "*** èekam na nedovr¹ene poslove...."
+#: job.c:513
+#, fuzzy, c-format
+msgid "%s[%s] Error %d%s"
+msgstr "*** [%s] Greška %d"
-#: job.c:579
+#: job.c:517
#, fuzzy, c-format
+msgid "%s[%s] %s%s%s"
+msgstr "%s%s: %s"
+
+#: job.c:609
+msgid "*** Waiting for unfinished jobs...."
+msgstr "*** Čekam nedovršene poslove...."
+
+#: job.c:639
+#, c-format
msgid "Live child %p (%s) PID %s %s\n"
-msgstr "®ivo dijete 0x%08lx (%s) PID %ld %s\n"
+msgstr "Živo dijete %p (%s) PID %s %s\n"
-#: 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 " (udaljen)"
-#: job.c:758
-#, fuzzy, c-format
+#: job.c:829
+#, c-format
msgid "Reaping losing child %p PID %s %s\n"
-msgstr "®anjem proma¹eno dijete 0x%08lx PID %ld %s\n"
+msgstr "Skupljam neuspješno dijete %p PID %s %s\n"
-#: job.c:759
-#, fuzzy, c-format
+#: job.c:830
+#, c-format
msgid "Reaping winning child %p PID %s %s\n"
-msgstr "®anjem uspje¹no dijete 0x%08lx PID %ld %s\n"
+msgstr "Skupljam uspješno dijete %p PID %s %s\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
-msgstr "Èistim privremeni batch spis %s\n"
+msgstr "ÄŒistim privremenu skupnu datoteku %s\n"
-#: job.c:861
+#: job.c:843
#, fuzzy, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "ÄŒistim privremenu skupnu datoteku %s\n"
+
+#: job.c:949
+#, c-format
msgid "Removing child %p PID %s%s from chain.\n"
-msgstr "Uklanjam dijete 0x%08lx PID %ld%s iz lanca.\n"
+msgstr "Uklanjam dijete %p PID %s%s iz lanca.\n"
-# ©to bi ovdje trebalo iæi?
-#: job.c:920
-msgid "write jobserver"
-msgstr "write jobserver"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr ""
-#: job.c:922
-#, fuzzy, c-format
+#: job.c:1011 job.c:1025
+#, c-format
msgid "Released token for child %p (%s).\n"
-msgstr "Otpustio token za dijete 0x%08lx (%s).\n"
+msgstr "Ispušten simbol za dijete %p (%s).\n"
-#: job.c:1453 job.c:2094
-#, fuzzy, c-format
+# Što bi ovdje trebalo ići?
+#: job.c:1023
+msgid "write jobserver"
+msgstr "poslužitelj poslova pisanja"
+
+#: job.c:1612 job.c:2332
+#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
-msgstr "process_easy() nije uspio pokrenuti proces (e=%d)\n"
+msgstr "process_easy() nije uspio pokrenuti proces (e=%ld)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
"Counted %d args in failed launch\n"
msgstr ""
"\n"
-"Prebrojao %d argumenata u neuspjelom pokretanju\n"
+"Izbrojeno %d argumenata u neuspjelom pokretanju\n"
-#: job.c:1525
-#, fuzzy, c-format
+#: job.c:1685
+#, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
-msgstr "Smje¹tam dijete 0x%08lx (%s) PID %ld%s u lanac.\n"
+msgstr "Smještam dijete %p (%s) PID %s%s u lanac.\n"
-#: job.c:1778
-#, fuzzy, c-format
+#: 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 "Preuzeo token za dijete 0x%08lx (%s).\n"
+msgstr "Preuzet simbol za dijete %p (%s).\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
-msgstr "read jobs pipe"
+msgstr "cjevovod poslova Äitanja"
-#: 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: Arhiva „%s†ne postoji"
-#: job.c:1802
+#: job.c:2005
#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "Nema potrebe ponovo izraditi metu `%s'"
+msgid "%s: update target '%s' due to: %s"
+msgstr "%sNema propisa za izradu mete „%sâ€, koji traži „%sâ€%s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
msgstr ""
-"ne mogu silom primijeniti ogranièenje loada na ovom operativnom sustavu"
+"ne mogu silom primijeniti ograniÄenje opterećenja na ovom operacijskom "
+"sustavu"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
-msgstr "ne mogu silom primijeniti ogranièenje loada: "
+msgstr "ne mogu silom primijeniti ograniÄenje opterećenja: "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
msgstr ""
+"nema viÅ¡e upravljaÄa datotekama: ne mogu udvostruÄiti standardni ulaz\n"
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
msgstr ""
+"nema viÅ¡e upravljaÄa datotekama: ne mogu udvostruÄiti standardni izlaz\n"
-#: job.c:2015
-msgid "Could not restore stdin\n"
+#: job.c:2223
+#, fuzzy
+msgid "no more file handles: could not duplicate stderr\n"
msgstr ""
+"nema viÅ¡e upravljaÄa datotekama: ne mogu udvostruÄiti standardni ulaz\n"
+
+#: job.c:2238
+msgid "Could not restore stdin\n"
+msgstr "Ne mogu obnoviti standardni ulaz\n"
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
-msgstr ""
+msgstr "Ne mogu obnoviti standardni izlaz\n"
-#: job.c:2127
-#, fuzzy, c-format
+#: job.c:2254
+#, fuzzy
+msgid "Could not restore stderr\n"
+msgstr "Ne mogu obnoviti standardni ulaz\n"
+
+#: job.c:2365
+#, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
-msgstr "make je po¾njeo dijete pid %d, jo¹ uvijek èeka na pid %d\n"
+msgstr "make je skupio dijete pid %s, joÅ¡ uvijek Äeka pid %s\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
-msgstr "%s: Naredba nije naðena"
+msgstr "%s: Naredba nije pronađena"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
-msgstr "%s: Ljuskin program nije naðen"
+msgstr "%s: Program ljuske nije pronađen"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
-msgstr ""
+msgstr "spawnvpe: prostor okoline je možda iscrpljen"
-#: job.c:2461
+#: job.c:2709
#, fuzzy, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
-msgstr "$SHELL se promijenio (prije `%s', sad `%s')"
+msgid "$SHELL changed (was '%s', now '%s')\n"
+msgstr "$SHELL se promijenio (prije „%sâ€, sada „%sâ€)\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
-msgstr "Stvaram privremeni batch spis %s\n"
+msgstr "Stvaram privremenu skupnu datoteku %s\n"
-#: job.c:2963
+#: job.c:3148
+#, fuzzy
+msgid ""
+"Batch file contents:\n"
+"\t@echo off\n"
+msgstr ""
+"Sadržaj skupne datoteke:%s\n"
+"\t%s\n"
+
+#: job.c:3337
#, c-format
msgid ""
"Batch file contents:%s\n"
"\t%s\n"
msgstr ""
+"Sadržaj skupne datoteke:%s\n"
+"\t%s\n"
-#: job.c:3065
+#: job.c:3444
#, c-format
msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
-msgstr "%s (redak %d) Lo¹ kontekst ljuske (!unixy && !batch_mode_shell)\n"
+msgstr ""
+"%s (redak %d) Neispravan kontekst ljuske (!unixy && !batch_mode_shell)\n"
+
+#: 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 ""
-#: main.c:303
+#: 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 "Paralelni poslovi (-j) nisu podržani na ovoj platformi."
+
+#: main.c:312
msgid "Options:\n"
msgstr "Opcije:\n"
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
-msgstr " -b, -m Ignorira se zbog kompatibilnosti\n"
+msgstr " -b, -m Zanemareno zbog kompatibilnosti.\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
-msgstr " -B, --always-make Bezuvjetno proizvedi sve mete.\n"
+msgstr " -B, --always-make Bezuvjetno izradi sve mete.\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
msgstr ""
-" -C DIRECTORY, --directory=DIRECTORY\n"
-" Prijeði u DIREKTORIJ prije no ¹to i¹ta "
-"obavi¹.\n"
+" -C DIREKTORIJ, --directory=DIREKTORIJ\n"
+" PrijeÄ‘i u DIREKTORIJ prije poÄetka rada.\n"
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
-msgstr " -d Ispi¹i puno podataka za debugiranje.\n"
+msgstr " -d Ispiši puno podataka za debugiranje.\n"
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
-" --debug[=FLAGOVI] Ispi¹i razne vrste informacija za "
+" --debug[=ZASTAVICE] Ispiši razne vrste informacija za "
"debugiranje.\n"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
msgstr ""
" -e, --environment-overrides\n"
-" Varijable iz okoline imaju veæu va¾nost od\n"
-" makefileova.\n"
+" Varijable okoline imaju veću važnost od\n"
+" datoteka izrade.\n"
-#: main.c:318
+#: main.c:327
msgid ""
" --eval=STRING Evaluate STRING as a makefile statement.\n"
msgstr ""
+" --eval=NIZ Postupaj s NIZOM kao naredbom datoteke "
+"izrade.\n"
-#: main.c:320
+#: main.c:329
msgid ""
" -f FILE, --file=FILE, --makefile=FILE\n"
" Read FILE as a makefile.\n"
msgstr ""
-" -f SPIS, --file=SPIS, --makefile=SPIS\n"
-" Proèitaj SPIS kao makefile.\n"
+" -f DATOTEKA, --file=DATOTEKA, --makefile=DATOTEKA\n"
+" ProÄitaj DATOTEKU kao datoteku izrade.\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
-msgstr " -h, --help Ispi¹i ovu poruku i izaði.\n"
+msgstr " -h, --help Ispiši ovu poruku i izađi.\n"
-#: main.c:325
-#, fuzzy
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
-msgstr " -i, --ignore-errors Zanemari gre¹ke od naredbi.\n"
+msgstr " -i, --ignore-errors Zanemari greške iz recepata.\n"
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
msgstr ""
" -I DIREKTORIJ, --include-dir=DIREKTORIJ\n"
-" Potra¾i u DIREKTORIJU ukljuèene makefileove.\n"
+" Traži u DIREKTORIJU ukljuÄene datoteke "
+"izrade.\n"
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
msgstr ""
-" -j [N], --jobs[=N] Dopusti N istovremenih poslova; bez argumenta\n"
-" ih dopusti beskonaèno.\n"
+" -j [N], --jobs[=N] Dozvoli N istovremenih poslova; bez argumenta\n"
+" ih dozvoli beskonaÄno.\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 Nastavi s radom ako se neke mete ne mogu "
"izraditi.\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 "
"N.\n"
msgstr ""
" -l [N], --load-average[=N], --max-load[=N]\n"
-" Ne pokreæi vi¹estruke poslove, osim ako pri\n"
-" optereæenju ispod N.\n"
+" Ne pokreći višestruke poslove, osim ako je\n"
+" opterećenje ispod N.\n"
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
msgstr ""
+" -L, --check-symlink-times Koristi posljednji mtime izmeÄ‘u simboliÄkih "
+"veza i mete.\n"
-#: main.c:339
-#, fuzzy
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
"them.\n"
msgstr ""
" -n, --just-print, --dry-run, --recon\n"
-" Nemoj zapravo pokrenuti nijednu naredbu;\n"
-" samo ih ispi¹i.\n"
+" Nemoj zapravo pokrenuti nijedan recept,\n"
+" samo ih ispiši.\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 "
"it.\n"
msgstr ""
-" -o SPIS, --old-file=SPIS, --assume-old=SPIS\n"
-" Smatraj da je SPIS vrlo star i nemoj ga\n"
+" -o DATOTEKA, --old-file=DATOTEKA, --assume-old=DATOTEKA\n"
+" Smatraj da je DATOTEKA vrlo stara i nemoj ju\n"
" ponovo napraviti.\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 Ispi¹i makeovu internu bazu.\n"
+msgstr " -p, --print-data-base Ispiši „make†internu bazu podataka.\n"
-#: main.c:347
-#, fuzzy
+#: main.c:359
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
msgstr ""
-" -q, --question Ne pokreæi naredbe; izlazni status oznaèava\n"
-" je li sve a¾urirano.\n"
+" -q, --question Ne pokreći recepte; izlazno stanje oznaÄava\n"
+" je li sve ažurirano.\n"
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
-msgstr " -r, --no-builtin-rules Onemoguæi ugraðene implicitne propise.\n"
+msgstr " -r, --no-builtin-rules Onemogući ugrađene implicitne propise.\n"
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr ""
-" -R, --no-builtin-variables Onemoguæi ugraðene vrijednosti varijabli.\n"
+" -R, --no-builtin-variables Onemogući ugrađene vrijednosti varijabli.\n"
-#: main.c:353
-#, fuzzy
+#: main.c:365
msgid " -s, --silent, --quiet Don't echo recipes.\n"
-msgstr " -s, --silent, --quiet Ne ispisuj naredbe.\n"
+msgstr " -s, --silent, --quiet Ne ispisuj recepte.\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
msgstr ""
" -S, --no-keep-going, --stop\n"
-" Iskljuèuje -k.\n"
+" IskljuÄuje -k.\n"
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
-" -t, --touch Dodirni mete umjesto da ih ponovo izraðuje¹.\n"
+" -t, --touch Umjesto ponovne izrade dodirni izgrađene "
+"mete.\n"
+
+#: main.c:372
+#, fuzzy
+msgid " --trace Print tracing information.\n"
+msgstr " -d Ispiši puno podataka za debugiranje.\n"
-#: main.c:360
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
-msgstr " -v, --version Ispi¹i verziju makea i izaði.\n"
+msgstr " -v, --version IspiÅ¡i „make†broj inaÄice i izaÄ‘i.\n"
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
-msgstr " -w, --print-directory Ispi¹i trenutni direktorij.\n"
+msgstr " -w, --print-directory Ispiši trenutni direktorij.\n"
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
msgstr ""
-" --no-print-directory Iskljuèi -w, èak i ako je implicitno "
-"ukljuèen.\n"
+" --no-print-directory IskljuÄi -w, Äak i ako je implicitno "
+"ukljuÄen.\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"
msgstr ""
-" -W SPIS, --what-if=SPIS, --new-file=SPIS, --assume-new=SPIS\n"
-" Smatraj SPIS beskonaèno novim.\n"
+" -W DATOTEKA, --what-if=DATOTEKA, --new-file=DATOTEKA,\n"
+" --assume-new=DATOTEKA\n"
+" Smatraj DATOTEKU beskonaÄno novom.\n"
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
msgstr ""
-" --warn-undefined-variables Upozori kad se referencira nedefinirana "
-"varijabla.\n"
+" --warn-undefined-variables Upozori pri referenciranju nedefinirane "
+"varijable.\n"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
-msgstr "prazan string nije valjan naziv spisa"
+msgstr "prazan niz nije ispravan naziv datoteke"
+
+#: main.c:734
+#, fuzzy, c-format
+msgid "unknown debug level specification '%s'"
+msgstr "nepoznata oznaka razine debugiranja „%sâ€"
-#: main.c:650
+#: main.c:777
#, c-format
-msgid "unknown debug level specification `%s'"
-msgstr "nepoznata naznaka nivoa debuga `%s'"
+msgid "unknown output-sync type '%s'"
+msgstr ""
-#: main.c:690
-#, fuzzy, c-format
+#: main.c:787
+#, fuzzy
+msgid "internal error: multiple --sync-mutex options"
+msgstr "interna greška: višestruko pojavljivanje opcije --jobserver-fds"
+
+#: main.c:848
+#, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
-msgstr "%s: Prekid/Iznimka uhvaæena (code = 0x%x, addr = 0x%x)\n"
+msgstr "%s: Uhvaćen prekid/iznimka (kod = 0x%lx, adr = 0x%p)\n"
-#: main.c:697
-#, fuzzy, c-format
+#: main.c:855
+#, c-format
msgid ""
"\n"
"Unhandled exception filter called from program %s\n"
@@ -932,214 +1111,234 @@ msgid ""
"ExceptionAddress = 0x%p\n"
msgstr ""
"\n"
-"Filter neobraðene iznimke pozvan iz programa %s\n"
-"ExceptionCode = %x\n"
-"ExceptionFlags = %x\n"
-"ExceptionAddress = %x\n"
+"Filtar nekontrolirane iznimke pozvan iz programa %s\n"
+"ExceptionCode = %lx\n"
+"ExceptionFlags = %lx\n"
+"ExceptionAddress = 0x%p\n"
-#: main.c:705
-#, fuzzy, c-format
+#: main.c:863
+#, c-format
msgid "Access violation: write operation at address 0x%p\n"
-msgstr "Pristupni prekr¹aj: operacija pisanja na adresi %x\n"
+msgstr "Pristupni prekršaj: operacija pisanja na adresi 0x%p\n"
-#: main.c:706
-#, fuzzy, c-format
+#: main.c:864
+#, c-format
msgid "Access violation: read operation at address 0x%p\n"
-msgstr "Pristupni prekr¹aj: operacija èitanja na adresi %x\n"
+msgstr "Pristupni prekrÅ¡aj: operacija Äitanja na adresi 0x%p\n"
-#: main.c:781 main.c:792
-#, fuzzy, c-format
+#: main.c:940 main.c:955
+#, c-format
msgid "find_and_set_shell() setting default_shell = %s\n"
-msgstr "find_and_set_shell postavljam default_shell = %s\n"
+msgstr "find_and_set_shell() postavlja default_shell = %s\n"
-#: main.c:834
-#, fuzzy, c-format
+#: main.c:1008
+#, c-format
msgid "find_and_set_shell() path search set default_shell = %s\n"
-msgstr "find_and_set_shell pretraga staze postavljam default_shell = %s\n"
+msgstr "find_and_set_shell() pretraga putanje postavlja default_shell = %s\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr "%s se zaustavlja na 30 sekundi..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr "gotov sa sleep(30). Nastavljam.\n"
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr "Makefile sa standardnog ulaza naveden dvaput."
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr "fopen (privremeni spis)"
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr "fwrite(privremeni spis)"
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "Paralelni poslovi (-j) nisu podr¾ani na ovoj platformi."
-
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
-msgstr "Resetiram na mod jednog posla (-j1)."
-
-#: main.c:1719
+#: main.c:1534
msgid "internal error: multiple --jobserver-fds options"
-msgstr "interna gre¹ja: vi¹estruko pojavljivanje opcije --jobserver-fds"
+msgstr "interna greška: višestruko pojavljivanje opcije --jobserver-fds"
-#: main.c:1727
+#: main.c:1544
#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
-msgstr "interna gre¹ka: neispravan --jobserver-fds string `%s'"
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
+msgstr ""
+
+#: main.c:1547
+#, fuzzy, c-format
+msgid "Jobserver client (semaphore %s)\n"
+msgstr "Klijent poslužitelja poslova (fds %d,%d)\n"
+
+#: main.c:1551
+#, fuzzy, c-format
+msgid "internal error: invalid --jobserver-fds string '%s'"
+msgstr "interna greÅ¡ka: neispravan --jobserver-fds niz „%sâ€"
-#: main.c:1730
+#: main.c:1554
#, c-format
msgid "Jobserver client (fds %d,%d)\n"
-msgstr ""
+msgstr "Klijent poslužitelja poslova (fds %d,%d)\n"
-#: main.c:1740
+#: main.c:1567
msgid "warning: -jN forced in submake: disabling jobserver mode."
-msgstr "upozorenje: -jN se forsira u pod-makeu: onemoguæujem jobserver mod."
+msgstr ""
+"upozorenje: pod-make prisilno postavlja -jN: onemogućujem poslužitelj "
+"poslova."
# Treba li ovo prevesti?
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
-msgstr "dup jobserver"
+msgstr "dup poslužitelj poslova"
-#: 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 ""
+"upozorenje: poslužitelj poslova nedostupan: koristim -j1. Dodaj `+' na "
+"roditeljev propis izrade."
+
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "Datoteka izrade sa standardnog ulaza navedena dvaput."
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (privremena datoteka)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (privremena datoteka)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr "Paralelni poslovi (-j) nisu podržani na ovoj platformi."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "Vraćam naÄin rada s jednim poslom (-j1)."
+
+#: main.c:2006
+#, fuzzy, c-format
+msgid "Jobserver slots limited to %d\n"
+msgstr "Klijent poslužitelja poslova (fds %d,%d)\n"
+
+#: main.c:2012
+#, c-format
+msgid "creating jobserver semaphore: (Error %ld: %s)"
msgstr ""
-"upozorenje: jobserver nedostupan: koristim -j1. Dodaj `+' na roditeljev "
-"make propis."
-#: main.c:1777
+#: main.c:2019
msgid "creating jobs pipe"
-msgstr "kreiram pipe za posao"
+msgstr "stvaram cjevovod poslova"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
-msgstr "prevesti?"
+msgstr "inicijaliziraj cjevovod poslužitelja poslova"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
-msgstr ""
+msgstr "SimboliÄke veze nisu podržane: onemogućujem -L."
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
-msgstr "A¾uriram makefileove....\n"
+msgstr "Ažuriram datoteke izrade....\n"
-#: main.c:1917
-#, c-format
-msgid "Makefile `%s' might loop; not remaking it.\n"
-msgstr "Makefile `%s' bi mogao upasti u petlju; ne izgraðujem ga ponovo.\n"
+#: main.c:2174
+#, fuzzy, c-format
+msgid "Makefile '%s' might loop; not remaking it.\n"
+msgstr "Datoteka izrade „%s†bi mogla ući u petlju; ne izgrađujem ponovo.\n"
-#: main.c:1996
-#, c-format
-msgid "Failed to remake makefile `%s'."
-msgstr "Nisam uspio ponovo izgraditi makefile `%s'."
+#: main.c:2253
+#, fuzzy, c-format
+msgid "Failed to remake makefile '%s'."
+msgstr "Nisam uspio ponovo izgraditi datoteku izrade „%sâ€."
-#: main.c:2013
-#, c-format
-msgid "Included makefile `%s' was not found."
-msgstr "Ukljuèeni makefile `%s' ne mo¾e se naæi."
+#: main.c:2270
+#, fuzzy, c-format
+msgid "Included makefile '%s' was not found."
+msgstr "UkljuÄeni datoteka izrade „%s†nije pronaÄ‘ena."
-#: main.c:2018
-#, c-format
-msgid "Makefile `%s' was not found"
-msgstr "Makefile `%s' ne mo¾e se naæi"
+#: main.c:2275
+#, fuzzy, c-format
+msgid "Makefile '%s' was not found"
+msgstr "Datoteka izrade „%s†nije pronađena"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
-msgstr "Nisam se mogao vratiti u prvotni direktorij."
+msgstr "Ne mogu se vratiti u izvorni direktorij."
-#: main.c:2102
-#, fuzzy, c-format
+#: main.c:2354
+#, c-format
msgid "Re-executing[%u]:"
-msgstr "Ponovo izvr¹avam:"
+msgstr "Ponovo izvršavam[%u]:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
-msgstr "unlink (privremeni spis): "
+msgstr "unlink (privremena datoteka): "
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
-msgstr ""
+msgstr ".DEFAULT_GOAL sadrži više od jedne mete"
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
-msgstr "Nijedna meta nije navedena, niti je ijedan makefile pronaðen"
+msgstr "Nijedna meta nije navedena, niti je pronađena ijedna datoteka izrade"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "Nema meta"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
-msgstr "A¾uriram ciljne mete....\n"
+msgstr "Ažuriram ciljne mete....\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr ""
-"upozorenje: uoèena je nepravilnost sata. Izgradnja bi mogla biti nedovr¹ena."
+"upozorenje: UoÄena je nepravilnost sata. Izgradnja bi mogla biti nedovrÅ¡ena."
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
msgstr "Uporaba: %s [opcije] [meta] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
"This program built for %s\n"
msgstr ""
"\n"
-"Program sastavljen za %s\n"
+"Program izgrađen za %s\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
"This program built for %s (%s)\n"
msgstr ""
"\n"
-"Program sastavljen za %s (%s)\n"
+"Program izgrađen za %s (%s)\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
-msgstr "Uoèene gre¹ke prijavite na adresu <bug-make@gnu.org>.\n"
+msgstr "Prijavite greške na <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"
-msgstr "opcija `-%c' tra¾i pozitivan cjelobrojni argument"
-
-#: main.c:2617
-#, c-format
-msgid "the `-%c' option requires a positive integral argument"
-msgstr "opcija `-%c' tra¾i pozitivan cjelobrojni argument"
+msgid "the '%s%s' option requires a non-empty string argument"
+msgstr "opcija „%s%s†zahtijeva neprazan znakovni niz kao argument"
-#: main.c:3054
+#: main.c:2864
#, fuzzy, c-format
+msgid "the '-%c' option requires a positive integer argument"
+msgstr "opcija „-%c†zahtijeva pozitivan cjelobrojni argument"
+
+#: main.c:3253
+#, c-format
msgid "%sBuilt for %s\n"
-msgstr ""
-"\n"
-"Program sastavljen za %s\n"
+msgstr "%sIzgrađen za %s\n"
-#: main.c:3056
-#, fuzzy, c-format
+#: main.c:3255
+#, c-format
msgid "%sBuilt for %s (%s)\n"
-msgstr ""
-"\n"
-"Program sastavljen za %s (%s)\n"
+msgstr "%sIzgrađen za %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."
@@ -1147,482 +1346,501 @@ msgid ""
"%sThis is free software: you are free to change and redistribute it.\n"
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
+"%sLicenca GPLv3+: GNU GPL inaÄica 3 ili kasnija <http://gnu.org/licenses/gpl."
+"html>\n"
+"%sOvo je slobodan softver: slobodno ga smijete mijenjati i dijeliti.\n"
+"%sNEMA JAMSTAVA, do krajnje mjere dozvoljene zakonom.\n"
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
"# Make data base, printed on %s"
msgstr ""
"\n"
-"# Makeova baza, ispisana na %s"
+"# Make baza podataka, ispisana na %s"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
"# Finished Make data base on %s\n"
msgstr ""
"\n"
-"# Kraj Makeove baze na %s\n"
+"# Kraj Make baze podataka na %s\n"
-#: main.c:3237
-#, fuzzy, c-format
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "Nepoznata greška %d"
+
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "virtualna memorija iscrpljena"
+
+# Da prevedem ovo?
+#: misc.c:522
+#, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s: korisnik %lu (stvarno %lu), grupa %lu (stvarno %lu)\n"
+
+#: misc.c:543
+msgid "Initialized access"
+msgstr "Inicijaliziran pristup"
+
+#: misc.c:622
+msgid "User access"
+msgstr "KorisniÄki pristup"
+
+#: misc.c:670
+msgid "Make access"
+msgstr "Make pristup"
+
+#: misc.c:704
+msgid "Child access"
+msgstr "Pristup djeteta"
+
+#: output.c:128
+#, c-format
msgid "%s: Entering an unknown directory\n"
-msgstr "%s: Ulazim u nepoznat direktorij"
+msgstr "%s: Ulazim u nepoznat direktorij\n"
-#: main.c:3239
-#, fuzzy, c-format
+#: output.c:130
+#, c-format
msgid "%s: Leaving an unknown directory\n"
-msgstr "%s: Izlazim iz nepoznatog direktorija"
+msgstr "%s: Izlazim iz nepoznatog direktorija\n"
-#: main.c:3242
+#: output.c:133
+#, fuzzy, c-format
+msgid "%s: Entering directory '%s'\n"
+msgstr "%s: Ulazim u direktorij „%sâ€\n"
+
+#: output.c:135
+#, fuzzy, c-format
+msgid "%s: Leaving directory '%s'\n"
+msgstr "%s: Izlazim iz direktorija „%sâ€\n"
+
+#: output.c:139
#, c-format
-msgid "%s: Entering directory `%s'\n"
-msgstr "%s: Ulazim u direktorij `%s'\n"
+msgid "%s[%u]: Entering an unknown directory\n"
+msgstr "%s[%u]: Ulazim u nepoznat direktorij\n"
-#: main.c:3245
+#: output.c:141
#, c-format
-msgid "%s: Leaving directory `%s'\n"
-msgstr "%s: Izlazim iz direktorija `%s'\n"
+msgid "%s[%u]: Leaving an unknown directory\n"
+msgstr "%s[%u]: Izlazim iz nepoznatog direktorija\n"
-#: main.c:3250
+#: output.c:144
#, fuzzy, c-format
-msgid "%s[%u]: Entering an unknown directory\n"
-msgstr "%s[%u]: Ulazim u nepoznat direktorij"
+msgid "%s[%u]: Entering directory '%s'\n"
+msgstr "%s[%u]: Ulazim u direktorij „%sâ€\n"
-#: main.c:3253
+#: output.c:146
#, fuzzy, c-format
-msgid "%s[%u]: Leaving an unknown directory\n"
-msgstr "%s[%u]: Izlazim iz nepoznatog direktorija"
+msgid "%s[%u]: Leaving directory '%s'\n"
+msgstr "%s[%u]: Izlazim iz direktorija „%sâ€\n"
-#: main.c:3257
+#: output.c:515
#, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
-msgstr "%s[%u]: Ulazim u direktorij `%s'\n"
+msgid "write error: %s"
+msgstr "greška pisanja: %s"
-#: main.c:3260
-#, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
-msgstr "%s[%u]: Izlazim iz direktorija `%s'\n"
+# Što bi ovdje trebalo ići?
+#: output.c:517
+msgid "write error"
+msgstr "gresÌŒka pisanja"
-#: misc.c:316
+#: output.c:740
msgid ". Stop.\n"
msgstr ". Zaustavi.\n"
-#: misc.c:337
-#, c-format
-msgid "Unknown error %d"
-msgstr "Nepoznata gre¹ka %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 "prividna memorija potro¹ena"
-
-# Da prevedem ovo?
-#: misc.c:708
-#, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s: user %lu (real %lu), group %lu (real %lu)\n"
-
-#: misc.c:729
-msgid "Initialized access"
-msgstr "Inicijaliziran pristup"
-
-#: misc.c:808
-msgid "User access"
-msgstr "Korisnièki pristup"
-
-#: misc.c:856
-msgid "Make access"
-msgstr "Makeov pristup"
-
-#: misc.c:890
-msgid "Child access"
-msgstr "Pristup djeteta"
-
-#: misc.c:954
-#, fuzzy, c-format
-msgid "write error: %s"
-msgstr "Preusmjerio gre¹ke u %s\n"
-
-# ©to bi ovdje trebalo iæi?
-#: misc.c:956
-#, fuzzy
-msgid "write error"
-msgstr "write jobserver"
-
-#: read.c:179
+#: read.c:180
msgid "Reading makefiles...\n"
-msgstr "Èitam makefileove...\n"
+msgstr "ÄŒitam datoteke izrade...\n"
#: read.c:333
-#, c-format
-msgid "Reading makefile `%s'"
-msgstr "Èitam makefile `%s'"
+#, fuzzy, c-format
+msgid "Reading makefile '%s'"
+msgstr "ÄŒitam datoteku izrade „%sâ€"
#: read.c:335
#, c-format
msgid " (no default goal)"
-msgstr " (nema podrazumijevanog cilja)"
+msgstr " (nema zadane mete)"
#: read.c:337
#, c-format
msgid " (search path)"
-msgstr " (staza za pretra¾ivanje)"
+msgstr " (putanja pretraživanja)"
#: read.c:339
#, c-format
msgid " (don't care)"
-msgstr " (nije va¾no)"
+msgstr " (nije važno)"
#: read.c:341
#, c-format
msgid " (no ~ expansion)"
-msgstr " (bez ekspanzije ~)"
+msgstr " (bez proširenja ~)"
-#: 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 "neispravna sintaksa uvjeta"
-#: read.c:891
-#, fuzzy
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr ""
+
+#: read.c:987
msgid "recipe commences before first target"
-msgstr "naredbe poèinju prije prve mete"
+msgstr "recept poÄinje prije prve mete"
-#: read.c:940
-#, fuzzy
+#: read.c:1036
msgid "missing rule before recipe"
-msgstr "nedostaje propis prije naredbi"
+msgstr "nedostaje propis prije recepta"
-# Grr, ¾ivjela engleska mno¾ina! I ¹to sad da radim s onim %s-om?
-#: read.c:1027
+# Grr, živjela engleska množina! I što sad da radim s onim %s-om?
+#: read.c:1123
#, c-format
msgid "missing separator%s"
-msgstr "nedostaju separatori-%s"
+msgstr "nedostaju znakovi razdvajanja (%s)"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
-msgstr " (jeste li mislili na TAB umjesto 8 razmaka?)"
+msgstr " (jeste li htjeli TAB umjesto 8 razmaka?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
msgstr "nedostaje uzorak mete"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
-msgstr "vi¹estruki uzorci meta"
+msgstr "višestruki uzorci meta"
-#: read.c:1169
-#, c-format
-msgid "target pattern contains no `%%'"
-msgstr "uzorak mete ne sadr¾i `%%'"
+#: read.c:1269
+#, fuzzy, c-format
+msgid "target pattern contains no '%%'"
+msgstr "uzorak mete ne sadrži „%%â€"
-#: read.c:1293
-msgid "missing `endif'"
-msgstr "nedostaje `endif'"
+#: read.c:1391
+#, fuzzy
+msgid "missing 'endif'"
+msgstr "nedostaje „endifâ€"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "prazno ime varijable"
-#: read.c:1367
+#: read.c:1465
#, fuzzy
-msgid "extraneous text after `define' directive"
-msgstr "Suvi¹an tekst nakon direktive `endef'"
-
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
-msgstr "nedostaje `endef', nedovr¹en `define'"
+msgid "extraneous text after 'define' directive"
+msgstr "suviÅ¡an tekst nakon direktive „defineâ€"
-#: read.c:1420
+#: read.c:1490
#, fuzzy
-msgid "extraneous text after `endef' directive"
-msgstr "Suvi¹an tekst nakon direktive `endef'"
+msgid "missing 'endef', unterminated 'define'"
+msgstr "nedostaje „endefâ€, nedovrÅ¡en „defineâ€"
-#: read.c:1490
-#, c-format
-msgid "Extraneous text after `%s' directive"
-msgstr "Suvi¹an tekst nakon direktive `%s'"
+#: read.c:1518
+#, fuzzy
+msgid "extraneous text after 'endef' directive"
+msgstr "suviÅ¡an tekst nakon direktive „endefâ€"
-#: read.c:1499 read.c:1513
-#, c-format
-msgid "extraneous `%s'"
-msgstr "suvi¹an `%s'"
+#: read.c:1589
+#, fuzzy, c-format
+msgid "extraneous text after '%s' directive"
+msgstr "suviÅ¡an tekst nakon direktive „%sâ€"
-#: read.c:1518
-msgid "only one `else' per conditional"
-msgstr "samo jedan `else' po uvjetu"
+#: read.c:1598 read.c:1612
+#, fuzzy, c-format
+msgid "extraneous '%s'"
+msgstr "suviÅ¡an „%sâ€"
-#: read.c:1797
+#: read.c:1617
#, fuzzy
+msgid "only one 'else' per conditional"
+msgstr "samo jedan „else†po uvjetu"
+
+#: read.c:1892
msgid "Malformed target-specific variable definition"
-msgstr "Izoblièena definicija o meti ovisne varijable"
+msgstr "IzobliÄena definicija o meti ovisne varijable"
-#: read.c:1855
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
-msgstr ""
+msgstr "preduvjeti ne mogu biti definirani u receptima"
-#: read.c:1908
+#: read.c:2009
msgid "mixed implicit and static pattern rules"
-msgstr "pomije¹ani implicitni i statièki propisi uzorka"
+msgstr "pomijeÅ¡ani implicitni i statiÄki propisi uzoraka"
-#: read.c:1931 read.c:2112
+#: read.c:2032 read.c:2220
msgid "mixed implicit and normal rules"
-msgstr "pomije¹ani implicitni i normalni propisi"
+msgstr "pomiješani implicitni i normalni propisi"
-#: read.c:1976
-#, c-format
-msgid "target `%s' doesn't match the target pattern"
-msgstr "meta `%s' ne odgovara uzorku mete"
+#: read.c:2084
+#, fuzzy, c-format
+msgid "target '%s' doesn't match the target pattern"
+msgstr "meta „%s†ne odgovara uzorku mete"
-#: read.c:1991 read.c:2036
-#, c-format
-msgid "target file `%s' has both : and :: entries"
-msgstr "spis meta `%s' ima unose i kod : i kod ::"
+#: read.c:2099 read.c:2144
+#, fuzzy, c-format
+msgid "target file '%s' has both : and :: entries"
+msgstr "datoteka mete „%s†ima unose i kod : i kod ::"
-#: read.c:1997
-#, c-format
-msgid "target `%s' given more than once in the same rule."
-msgstr "meta `%s' zadan vi¹e nego jednom u istom propisu."
+#: read.c:2105
+#, fuzzy, c-format
+msgid "target '%s' given more than once in the same rule"
+msgstr "meta „%s†je navedena više nego jednom u istom propisu."
-#: read.c:2006
+#: read.c:2114
#, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
-msgstr "upozorenje: poni¹tavam postojeæe naredbe za metu `%s'"
+msgid "warning: overriding recipe for target '%s'"
+msgstr "upozorenje: poniÅ¡tavam recept za metu „%sâ€"
-#: read.c:2009
+#: read.c:2117
#, fuzzy, c-format
-msgid "warning: ignoring old recipe for target `%s'"
-msgstr "upozorenje: ignoriram stare naredbe za metu `%s'"
+msgid "warning: ignoring old recipe for target '%s'"
+msgstr "upozorenje: zanemarujem stari recept za metu „%sâ€"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
-msgstr "upozorenje: NUL znak uoèen; ostatak retka se zanemaruje"
+msgstr "upozorenje: uoÄen je NUL znak; ostatak retka se zanemaruje"
-#: remake.c:234
-#, c-format
-msgid "Nothing to be done for `%s'."
-msgstr "Ni¹ta za napraviti za `%s'."
+#: remake.c:232
+#, fuzzy, c-format
+msgid "Nothing to be done for '%s'."
+msgstr "NiÅ¡ta za napraviti za „%sâ€."
-#: remake.c:235
-#, c-format
-msgid "`%s' is up to date."
-msgstr "`%s' je a¾uriran."
+#: remake.c:233
+#, fuzzy, c-format
+msgid "'%s' is up to date."
+msgstr "„%s†je ažuriran."
-#: remake.c:306
-#, c-format
-msgid "Pruning file `%s'.\n"
-msgstr "Èistim spis `%s'.\n"
+#: remake.c:305
+#, fuzzy, c-format
+msgid "Pruning file '%s'.\n"
+msgstr "ÄŒistim datoteku „%sâ€.\n"
-#: remake.c:359
-#, c-format
-msgid "%sNo rule to make target `%s'%s"
-msgstr "%sNema propisa za izradu mete `%s'%s"
+#: remake.c:377
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sNema propisa za izradu mete „%sâ€%s"
-#: remake.c:361
-#, c-format
-msgid "%sNo rule to make target `%s', needed by `%s'%s"
-msgstr "%sNema propisa za izradu mete `%s', kojeg tra¾i `%s'%s"
+#: remake.c:379
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s', needed by '%s'%s"
+msgstr "%sNema propisa za izradu mete „%sâ€, koji traži „%sâ€%s"
#: remake.c:413
-#, c-format
-msgid "Considering target file `%s'.\n"
-msgstr "Uzimam u razmatranje spis metu `%s'.\n"
+#, fuzzy, c-format
+msgid "Considering target file '%s'.\n"
+msgstr "Razmatram datoteku mete „%sâ€.\n"
#: remake.c:420
-#, c-format
-msgid "Recently tried and failed to update file `%s'.\n"
-msgstr "Nedavno bezuspje¹no poku¹ao a¾urirati spis `%s'\n"
+#, fuzzy, c-format
+msgid "Recently tried and failed to update file '%s'.\n"
+msgstr "Nedavno bezuspjeÅ¡no pokuÅ¡ao ažurirati datoteku „%sâ€.\n"
#: remake.c:432
-#, c-format
-msgid "File `%s' was considered already.\n"
-msgstr "Spis `%s' veæ je bio uzet u razmatranje.\n"
+#, fuzzy, c-format
+msgid "File '%s' was considered already.\n"
+msgstr "Datoteka „%s†je već razmatrana.\n"
#: remake.c:442
-#, c-format
-msgid "Still updating file `%s'.\n"
-msgstr "Jo¹ uvijek a¾uriram spis `%s'.\n"
+#, fuzzy, c-format
+msgid "Still updating file '%s'.\n"
+msgstr "JoÅ¡ uvijek ažuriram datoteku „%sâ€.\n"
#: remake.c:445
-#, c-format
-msgid "Finished updating file `%s'.\n"
-msgstr "Zavr¹io s a¾uriranjem spisa `%s'.\n"
+#, fuzzy, c-format
+msgid "Finished updating file '%s'.\n"
+msgstr "ZavrÅ¡io s ažuriranjem datoteke „%sâ€.\n"
#: remake.c:474
-#, c-format
-msgid "File `%s' does not exist.\n"
-msgstr "Spis `%s' ne postoji.\n"
+#, fuzzy, c-format
+msgid "File '%s' does not exist.\n"
+msgstr "Datoteka „%s†ne postoji.\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 ""
-"*** Upozorenje: .LOW_RESOLUTION_TIME spis `%s' ima vremensku oznaku visoke "
-"rezolucije"
+"*** Upozorenje: .LOW_RESOLUTION_TIME datoteka „%s†ima vremensku oznaku "
+"visoke rezolucije"
-#: remake.c:494 remake.c:1016
-#, c-format
-msgid "Found an implicit rule for `%s'.\n"
-msgstr "Na¹ao implicitni propis za `%s'.\n"
+#: remake.c:494 remake.c:1019
+#, fuzzy, c-format
+msgid "Found an implicit rule for '%s'.\n"
+msgstr "PronaÄ‘en implicitni propis za „%sâ€.\n"
-#: remake.c:496 remake.c:1018
-#, c-format
-msgid "No implicit rule found for `%s'.\n"
-msgstr "Nijedan implicitni propis nisam na¹ao za `%s'.\n"
+#: remake.c:496 remake.c:1021
+#, fuzzy, c-format
+msgid "No implicit rule found for '%s'.\n"
+msgstr "Nisam naÅ¡ao nijedan implicitni propis za „%sâ€.\n"
#: remake.c:502
#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
-msgstr "Koristim podrazumijevane naredbe za `%s'.\n"
+msgid "Using default recipe for '%s'.\n"
+msgstr "Koristim zadani recept za „%sâ€.\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
-msgstr "Kru¾na ovisnost %s <- %s ispu¹tena."
+msgstr "Kružna ovisnost %s <- %s ispuštena."
-#: remake.c:651
-#, c-format
-msgid "Finished prerequisites of target file `%s'.\n"
-msgstr "Zavr¹eni prerekviziti spisa mete `%s'.\n"
+#: remake.c:655
+#, fuzzy, c-format
+msgid "Finished prerequisites of target file '%s'.\n"
+msgstr "ZavrÅ¡eni preduvjeti datoteke mete „%sâ€.\n"
-#: remake.c:657
-#, c-format
-msgid "The prerequisites of `%s' are being made.\n"
-msgstr "Prerekviziti `%s' su u izradi.\n"
+#: remake.c:661
+#, fuzzy, c-format
+msgid "The prerequisites of '%s' are being made.\n"
+msgstr "Preduvjeti „%s†se izrađuju.\n"
-#: remake.c:670
-#, c-format
-msgid "Giving up on target file `%s'.\n"
-msgstr "Odustajem od spisa mete `%s'.\n"
+#: remake.c:674
+#, fuzzy, c-format
+msgid "Giving up on target file '%s'.\n"
+msgstr "Odustajem od datoteke mete „%sâ€.\n"
-#: remake.c:675
-#, c-format
-msgid "Target `%s' not remade because of errors."
-msgstr "Meta `%s' nije ponovo izraðen zbog gre¹aka."
+#: remake.c:679
+#, fuzzy, c-format
+msgid "Target '%s' not remade because of errors."
+msgstr "Meta „%s†nije ponovo izrađena zbog grešaka."
# Nisam siguran da sam ovo ispravno shvatio.
-#: remake.c:727
-#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
-msgstr "Prerekvizit `%s' slu¾i samo za redosljed pri meti `%s'.\n"
+#: remake.c:731
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
+msgstr "Preduvjet „%s†služi samo za redoslijed za metu „%sâ€.\n"
-#: remake.c:732
-#, c-format
-msgid "Prerequisite `%s' of target `%s' does not exist.\n"
-msgstr "Prerekvizit `%s' mete `%s' ne postoji.\n"
+#: remake.c:736
+#, fuzzy, c-format
+msgid "Prerequisite '%s' of target '%s' does not exist.\n"
+msgstr "Preduvjet „%s†mete „%s†ne postoji.\n"
-#: remake.c:737
-#, c-format
-msgid "Prerequisite `%s' is newer than target `%s'.\n"
-msgstr "Prerekvizit `%s' noviji je od mete `%s':\n"
+#: remake.c:741
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is newer than target '%s'.\n"
+msgstr "Preduvjet „%s†noviji je od mete „%sâ€.\n"
-#: remake.c:740
-#, c-format
-msgid "Prerequisite `%s' is older than target `%s'.\n"
-msgstr "Prerekvizit `%s' stariji je od mete `%s'.\n"
+#: remake.c:744
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is older than target '%s'.\n"
+msgstr "Preduvjet „%s†stariji je od mete „%sâ€.\n"
-#: remake.c:758
-#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
-msgstr "Meta `%s' je dvotoèka, a nema prerekvizita.\n"
+#: remake.c:762
+#, fuzzy, c-format
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
+msgstr "Meta „%s†je dvotoÄje, a nema preduvjete.\n"
-#: remake.c:765
+#: remake.c:769
#, fuzzy, c-format
-msgid "No recipe for `%s' and no prerequisites actually changed.\n"
-msgstr "Nema naredbi za `%s', a nijedan prerekvizit nije promijenjen.\n"
+msgid "No recipe for '%s' and no prerequisites actually changed.\n"
+msgstr "Nema recepta za „%sâ€, a nijedan preduvjet nije promijenjen.\n"
-#: remake.c:770
-#, c-format
-msgid "Making `%s' due to always-make flag.\n"
-msgstr "Proizvodim `%s' zbog opcije always-make.\n"
+#: remake.c:774
+#, fuzzy, c-format
+msgid "Making '%s' due to always-make flag.\n"
+msgstr "Izrađujem „%s†zbog zastavice always-make.\n"
-#: remake.c:778
-#, c-format
-msgid "No need to remake target `%s'"
-msgstr "Nema potrebe ponovo izraditi metu `%s'"
+#: remake.c:782
+#, fuzzy, c-format
+msgid "No need to remake target '%s'"
+msgstr "Ponovna izrada mete „%s†nije potrebna"
-#: remake.c:780
-#, c-format
-msgid "; using VPATH name `%s'"
-msgstr "; koristim VPATH imena `%s'"
+#: remake.c:784
+#, fuzzy, c-format
+msgid "; using VPATH name '%s'"
+msgstr "; koristim VPATH ime „%sâ€"
-#: remake.c:800
-#, c-format
-msgid "Must remake target `%s'.\n"
-msgstr "Moram ponovo izgraditi metu `%s'.\n"
+#: remake.c:804
+#, fuzzy, c-format
+msgid "Must remake target '%s'.\n"
+msgstr "Moram ponovo izraditi metu „%sâ€.\n"
-#: remake.c:806
-#, c-format
-msgid " Ignoring VPATH name `%s'.\n"
-msgstr " Ignoriram VPATH imena `%s'.\n"
+#: remake.c:810
+#, fuzzy, c-format
+msgid " Ignoring VPATH name '%s'.\n"
+msgstr " Zanemarujem VPATH ime „%sâ€.\n"
-#: remake.c:815
+#: remake.c:819
#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
-msgstr "Naredbe od `%s' se izvr¹avaju.\n"
+msgid "Recipe of '%s' is being run.\n"
+msgstr "Recept za „%s†se izvršava.\n"
-#: remake.c:822
-#, c-format
-msgid "Failed to remake target file `%s'.\n"
-msgstr "Nije uspjela ponovna izrada spisa mete `%s'.\n"
+#: remake.c:826
+#, fuzzy, c-format
+msgid "Failed to remake target file '%s'.\n"
+msgstr "Nisam uspio ponovo izraditi datoteku mete „%sâ€.\n"
-#: remake.c:825
-#, c-format
-msgid "Successfully remade target file `%s'.\n"
-msgstr "Uspje¹no ponovno izradio spis metu `%s'.\n"
+#: remake.c:829
+#, fuzzy, c-format
+msgid "Successfully remade target file '%s'.\n"
+msgstr "UspjeÅ¡no ponovo izraÄ‘ena datoteka mete „%sâ€.\n"
-#: remake.c:828
-#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
-msgstr "Spis meta `%s' treba ponovnu izradu zbog -q.\n"
+#: remake.c:832
+#, fuzzy, c-format
+msgid "Target file '%s' needs to be remade under -q.\n"
+msgstr "Datoteku mete „%s†treba ponovo izraditi zbog -q.\n"
-#: remake.c:1024
-#, c-format
-msgid "Using default commands for `%s'.\n"
-msgstr "Koristim podrazumijevane naredbe za `%s'.\n"
+#: remake.c:1027
+#, fuzzy, c-format
+msgid "Using default commands for '%s'.\n"
+msgstr "Koristim zadane naredbe za „%sâ€.\n"
-#: remake.c:1357
-#, c-format
-msgid "Warning: File `%s' has modification time in the future"
-msgstr "Upozorenje: Spis `%s' ima vrijeme promjene u buduænosti"
+#: remake.c:1372
+#, fuzzy, c-format
+msgid "Warning: File '%s' has modification time in the future"
+msgstr "Upozorenje: Vrijeme uređivanja datoteke „%s†je u budućnosti"
-#: remake.c:1370
+#: remake.c:1385
#, fuzzy, c-format
-msgid "Warning: File `%s' has modification time %s s in the future"
-msgstr "Upozorenje: Spis `%s' ima vrijeme promjene %.2g s u buduænosti"
+msgid "Warning: File '%s' has modification time %s s in the future"
+msgstr ""
+"Upozorenje: Vrijeme uređivanja datoteke „%s†je %s sekundi u budućnosti"
-#: remake.c:1569
-#, c-format
-msgid ".LIBPATTERNS element `%s' is not a pattern"
-msgstr "Element .LIBPATTERNS `%s' nije uzorak"
+#: remake.c:1583
+#, fuzzy, c-format
+msgid ".LIBPATTERNS element '%s' is not a pattern"
+msgstr "Element „%s†iz .LIBPATTERNS nije uzorak"
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
-msgstr "Customs neæe eksportirati: %s\n"
+msgstr "Customs neće izvesti: %s\n"
-#: rule.c:499
+#: rule.c:496
msgid ""
"\n"
"# Implicit Rules"
msgstr ""
"\n"
-"# Implicitni Propisi"
+"# Implicitni propisi"
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
@@ -1630,7 +1848,7 @@ msgstr ""
"\n"
"# Nema implicitnih propisa."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -1639,246 +1857,270 @@ msgstr ""
"\n"
"# %u implicitnih propisa, %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
-msgstr " zavr¹ni."
+msgstr " završni."
-#: rule.c:534
-#, fuzzy, c-format
+#: rule.c:531
+#, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
-msgstr "BUG: pogre¹an num_pattern_rules! %u != %u"
+msgstr "BUG: neispravan num_pattern_rules! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "nepoznat signal"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
-msgstr "Izgubljena veza"
+msgstr "Završetak"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "Prekid"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
-msgstr "Prestanak"
+msgstr "Izlaz"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
-msgstr "Nedopu¹tena instrukcija"
+msgstr "Nedozvoljena instrukcija"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
-msgstr "Zamka za slijed/prekidnu toèku"
+msgstr "Zamka za praćenje/prekidnu toÄku"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
-msgstr "Otkazan"
+msgstr "Prekinut"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
msgstr "IOT zamka"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
-msgstr "EMT zamja"
+msgstr "EMT zamka"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
-msgstr "Iznimka floating pointa"
+msgstr "Iznimka pomiÄnog zareza"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
-msgstr "Ubijen"
+msgstr "Prekinut"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
-msgstr "Sabirnièka gre¹ka"
+msgstr "SabirniÄka greÅ¡ka"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
-msgstr "Segmentacijska gre¹ka"
+msgstr "Segmentacijska greška"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
-msgstr "Nevaljan sistemski poziv"
+msgstr "Neispravan sustavski poziv"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
-msgstr "Prekinut kanal"
+msgstr "Prekinut cjevovod"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "Budilica"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
-msgstr "Terminiran"
+msgstr "Završen"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
-msgstr "Korisnièki definiran signal 1"
+msgstr "KorisniÄki definiran signal 1"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
-msgstr "Korisnièki definiran signal 2"
+msgstr "KorisniÄki definiran signal 2"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
-msgstr "Dijete iza¹lo"
+msgstr "Dijete je završilo"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
-msgstr "Nestalo struje"
+msgstr "Prekid napajanja"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "Zaustavljen"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
-msgstr "Zaustavljen (unosom s TTY-ja)"
+msgstr "Zaustavljen (tty ulaz)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
-msgstr "Zaustavljen (outputom s TTY-ja)"
+msgstr "Zaustavljen (tty izlaz)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "Zaustavljen (signalom)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
-msgstr "prekoraèeno ogranièenje CPU vremena"
+msgstr "PrekoraÄeno ograniÄenje procesorskog vremena"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
-msgstr "Prekoraèeno ogranièenje velièine spisa"
+msgstr "PrekoraÄeno ograniÄenje veliÄine datoteke"
# Kako prevesti "virtual timer"?
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
-msgstr "Virtualna ¹toperica istekla"
+msgstr "Virtualna Å¡toperica istekla"
# Kako prevesti "profiling timer"?
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
-msgstr "Profajlerska ¹toperica istekla"
+msgstr "Å toperica profiliranja istekla"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
msgstr "Promijenjen prozor"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "Nastavljen"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
-msgstr "Hitno stanje I/O-a"
+msgstr "Hitno U/I stanje"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
-msgstr "I/O moguæ"
+msgstr "U/I moguć"
-# Jesu li ova dva signala vic ili ¹to? U svakom sluèaju, ovo su samo
-# descriptioni. Za svaki sluèaj, nisam ih dirao.
-#: signame.c:204
+# Jesu li ova dva signala vic ili Å¡to? U svakom sluÄaju, ovo su samo
+# descriptioni. Za svaki sluÄaj, nisam ih dirao.
+#: 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 "Izgubljen resurs"
+msgstr "Resurs izgubljen"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "Signal za opasnost"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr "Zahtjev za informacijom"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
-msgstr "Aritmetièki koprocesor nije dostupan."
+msgstr "Koprocesor za rad s pomiÄnim zarezom nije dostupan"
-#: 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
-#, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+#: strcache.c:266
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
msgstr ""
+"%s strcache korišteno: ukupno = %d (%d) / max = %d / min = %d / prosjek = "
+"%d\n"
-#: 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
-#, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+#: strcache.c:280
+#, fuzzy, c-format
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
msgstr ""
+"%s strcache korišteno: ukupno = %d (%d) / max = %d / min = %d / prosjek = "
+"%d\n"
-#: strcache.c:244
-#, fuzzy
+#: strcache.c:283
+#, fuzzy, c-format
msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
+msgstr ""
+"%s strcache slobodno: ukupno = %d (%d) / max = %d / min = %d / prosjek = %d\n"
+
+#: strcache.c:287
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
+msgstr ""
"\n"
-"# strcache hash-table stats:\n"
+"%s # nizova u strcache: %d / pretrage = %lu / pronalasci = %lu\n"
+
+#: strcache.c:289
+#, fuzzy
+msgid ""
+"# hash-table stats:\n"
"# "
msgstr ""
"\n"
-"# statistike hash tablice spisa\n"
+"# statistike tablice raspršivanja datoteka:\n"
"# "
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "automatsko"
+
+#: variable.c:1610
msgid "default"
-msgstr "podrazumijevano"
+msgstr "zadano"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
-msgstr "okoli¹"
+msgstr "okolina"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
-msgstr "makefile"
+msgstr "datoteka izrade"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
-msgstr "okoli¹ pod -e"
+msgstr "okolina pod -e"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
-msgstr "komandna linija"
-
-#: variable.c:1556
-msgid "`override' directive"
-msgstr "direktiva `override'"
+msgstr "naredbeni redak"
-#: variable.c:1559
-msgid "automatic"
-msgstr "automatsko"
+#: variable.c:1625
+#, fuzzy
+msgid "'override' directive"
+msgstr "direktiva „overrideâ€"
-#: variable.c:1570
-#, c-format
-msgid " (from `%s', line %lu)"
-msgstr " (iz `%s', redak %lu):"
+#: variable.c:1636
+#, fuzzy, c-format
+msgid " (from '%s', line %lu)"
+msgstr " (iz „%sâ€, redak %lu)"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
-msgstr "# hash table statistike varijabli:\n"
+msgstr "# statistike tablice raspršivanja skupova varijabli:\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1886,8 +2128,7 @@ msgstr ""
"\n"
"# Varijable\n"
-#: variable.c:1627
-#, fuzzy
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
@@ -1895,7 +2136,7 @@ msgstr ""
"\n"
"# Uzorcima svojstvene vrijednosti varijabli"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
@@ -1903,7 +2144,7 @@ msgstr ""
"\n"
"# Nema uzorcima svojstvenih vrijednosti varijabli."
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
@@ -1912,140 +2153,168 @@ msgstr ""
"\n"
"# %u uzorcima svojstvenih vrijednosti varijabli"
-#: variable.h:219
-#, c-format
-msgid "warning: undefined variable `%.*s'"
-msgstr "upozorenje: nedefinirana varijabla `%.*s'"
-
-#: vmsfunctions.c:92
+#: variable.h:224
#, fuzzy, c-format
+msgid "warning: undefined variable '%.*s'"
+msgstr "upozorenje: nedefinirana varijabla „%.*sâ€"
+
+#: vmsfunctions.c:91
+#, c-format
msgid "sys$search() failed with %d\n"
-msgstr "sys$search je zatajila s %d\n"
+msgstr "sys$search() nije uspio s %d\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr "Upozorenje: Prazno preusmjeravanje\n"
-#: vmsjobs.c:184
-#, c-format
-msgid "internal error: `%s' command_state"
-msgstr "unutra¹nja gre¹ka: `%s' command_state"
+#: vmsjobs.c:178
+#, fuzzy, c-format
+msgid "internal error: '%s' command_state"
+msgstr "interna greška: „%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 ""
-"-upozorenje, mo¾da æete morati ponovo omoguæiti obradu CTRL-Y iz DCL-a.\n"
+"-upozorenje, možda ćete morati ponovo omogućiti upravljanje s CTRL-Y iz DCL-"
+"a.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
-msgstr "UGRAÐEN [%s][%s]\n"
+msgstr "UGRAÄEN [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
-msgstr "UGRAÐEN CD %s\n"
+msgstr "UGRAÄEN CD %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
-msgstr "UGRAÐEN RM %s\n"
+msgstr "UGRAÄEN RM %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
-msgstr "Nepoznata ugraðena naredba `%s'\n"
+msgstr "Nepoznata ugraÄ‘ena naredba „%sâ€\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
-msgstr "Gre¹ka, prazna naredba\n"
+msgstr "Greška, prazna naredba\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
-msgstr "Preusmjerio ulaz iz %s\n"
+msgstr "Preusmjeren ulaz iz %s\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
-msgstr "Preusmjerio gre¹ke u %s\n"
+msgstr "Preusmjerene greške u %s\n"
-#: vmsjobs.c:523
-#, fuzzy, c-format
+#: vmsjobs.c:518
+#, c-format
msgid "Append output to %s\n"
-msgstr "Preusmjerio izlaz u %s\n"
+msgstr "Dodaj izlaz na %s\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
-msgstr "Preusmjerio izlaz u %s\n"
+msgstr "Preusmjeren izlaz u %s\n"
-#: vmsjobs.c:599
+#: vmsjobs.c:593
#, c-format
msgid "Append %.*s and cleanup\n"
-msgstr ""
+msgstr "Dodaj %.*s i poÄisti\n"
-#: vmsjobs.c:606
+#: vmsjobs.c:600
#, c-format
msgid "Executing %s instead\n"
-msgstr "Umjesto toga, izvr¹avam %s\n"
+msgstr "Umjesto toga, izvršavam %s\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
-msgstr "Gre¹ka pri pokretanju, %d\n"
+msgstr "Greška pri pokretanju, %d\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
msgstr ""
"\n"
-"# VPATH staze za pretra¾ivanje\n"
+"# VPATH putanje za pretraživanje\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
-msgstr "# Nema `vpath' staza za pretra¾ivanje."
+#: vpath.c:600
+#, fuzzy
+msgid "# No 'vpath' search paths."
+msgstr "# Nema „vpath†putanja za pretraživanje."
-#: 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' staza za pretra¾ivanje.\n"
+"# %u „vpath†putanja za pretraživanje.\n"
-#: vpath.c:608
+#: vpath.c:605
+#, fuzzy
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
-"# Nema opæe (iz varijable `VPATH') staze za pretra¾ivanje."
+"# Nema općenite putanje za pretraživanje (varijabla „VPATHâ€)."
-#: vpath.c:614
+#: vpath.c:611
+#, fuzzy
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
-"# Opæa (iz varijable `VPATH') staza za pretra¾ivanje:\n"
+"# Općenita putanja za pretraživanje (varijabla „VPATHâ€):\n"
"# "
+#~ msgid "# Invalid value in `update_status' member!"
+#~ msgstr "# Neispravna vrijednost u elementu „update_statusâ€!"
+
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] Greška 0x%x (zanemarena)"
+
+#~ msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
+#~ msgstr "Pozivam recept iz %s:%lu za ažuriranje mete „%sâ€.\n"
+
+#~ msgid "Invoking builtin recipe to update target `%s'.\n"
+#~ msgstr "Pozivam ugraÄ‘eni recept za ažuriranje mete „%sâ€.\n"
+
+#~ msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+#~ msgstr "%s # strcache međuspremnika: %d (* %d B/međuspremniku = %d B)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "# strcache hash-table stats:\n"
+#~ "# "
+#~ msgstr ""
+#~ "\n"
+#~ "# statistike strcache tablice raspršivanja:\n"
+#~ "# "
+
#~ msgid "Syntax error, still inside '\"'\n"
-#~ msgstr "Gre¹ka u sintaksi, jo¹ uvijek unutar '\"'\n"
+#~ msgstr "Greška u sintaksi, još uvijek unutar '\"'\n"
-# Nepo¾etene ili nepo¾njete?
+# Nepožetene ili nepožnjete?
#~ msgid "Got a SIGCHLD; %u unreaped children.\n"
-#~ msgstr "Dobio SIGCHLD; %u nepo¾etene djece.\n"
+#~ msgstr "Dobio SIGCHLD; %u nepožetene djece.\n"
#~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
-#~ msgstr "-upozorenje, CTRL-Y æe ostaviti potproces(e) na ¾ivotu.\n"
+#~ msgstr "-upozorenje, CTRL-Y će ostaviti potproces(e) na životu.\n"
#~ msgid "Do not specify -j or --jobs if sh.exe is not available."
#~ msgstr "Nemojte koristiti -j ili --jobs ako sh.exe nije dostupan."
@@ -2059,11 +2328,11 @@ msgstr ""
#~ "%sPARTICULAR PURPOSE.\n"
#~ msgstr ""
#~ "%sOvaj program je slobodan; u izvornom kodu nalaze se uvjeti kopiranja.\n"
-#~ "%sNema NIKAKVOG jamstva, èak ni za PROIZVODNOST ili UPOTREBLJIVOST ZA\n"
+#~ "%sNema NIKAKVOG jamstva, Äak ni za PROIZVODNOST ili UPOTREBLJIVOST ZA\n"
#~ "%sPOJEDINU SVRHU.\n"
#~ msgid "extraneous `endef'"
-#~ msgstr "suvi¹an `endef'"
+#~ msgstr "suvišan `endef'"
#~ msgid "empty `override' directive"
#~ msgstr "prazna direktiva `ovverride'"
@@ -2089,40 +2358,40 @@ msgstr ""
#~ "# %u files in %u hash buckets.\n"
#~ msgstr ""
#~ "\n"
-#~ "# %u spisa u %u raspr¹enih d¾epova.\n"
+#~ "# %u spisa u %u raspršenih džepova.\n"
#~ msgid "# average %.3f files per bucket, max %u files in one bucket.\n"
-#~ msgstr "# prosjeèno %.3f spisa po d¾epu, maks. %u spisa u jednom d¾epu.\n"
+#~ msgstr "# prosjeÄno %.3f spisa po džepu, maks. %u spisa u jednom džepu.\n"
#~ msgid "DIRECTORY"
#~ msgstr "DIREKTORIJ"
#~ msgid "Change to DIRECTORY before doing anything"
-#~ msgstr "Promijeni u DIREKTORIJ prije nego ¹to i¹ta napravi¹"
+#~ msgstr "Promijeni u DIREKTORIJ prije nego što išta napraviš"
#~ msgid "FLAGS"
#~ msgstr "ZASTAVICE"
#~ msgid "Suspend process to allow a debugger to attach"
-#~ msgstr "Zaustavi proces tako da se debugger mo¾e zakaèiti"
+#~ msgstr "Zaustavi proces tako da se debugger može zakaÄiti"
#~ msgid "Environment variables override makefiles"
-#~ msgstr "Varijable iz okoli¹a imaju veæu va¾nost od makefilea"
+#~ msgstr "Varijable iz okoliša imaju veću važnost od makefilea"
#~ msgid "FILE"
#~ msgstr "SPIS"
#~ msgid "Read FILE as a makefile"
-#~ msgstr "Proèitaj SPIS kao makefile"
+#~ msgstr "ProÄitaj SPIS kao makefile"
#~ msgid "Search DIRECTORY for included makefiles"
-#~ msgstr "Pretra¾i DIREKTORIJ za ukljuèenim makefileovima"
+#~ msgstr "Pretraži DIREKTORIJ za ukljuÄenim makefileovima"
#~ msgid "Don't start multiple jobs unless load is below N"
-#~ msgstr "Ne pokreæi vi¹estruke poslove osim ako je optereæenje ispod N"
+#~ msgstr "Ne pokreći višestruke poslove osim ako je opterećenje ispod N"
#~ msgid "Don't actually run any commands; just print them"
-#~ msgstr "Nemoj zapravo pokrenuti nijednu naredbu; samo ih ispi¹i"
+#~ msgstr "Nemoj zapravo pokrenuti nijednu naredbu; samo ih ispiši"
#~ msgid "Consider FILE to be very old and don't remake it"
#~ msgstr "Pretpostavi da je SPIS vrlo star i nemoj ga ponovo napraviti"
@@ -2131,10 +2400,10 @@ msgstr ""
#~ msgstr "Ne ispisuj naredbe"
#~ msgid "Turns off -k"
-#~ msgstr "Iskljuèuje -k"
+#~ msgstr "IskljuÄuje -k"
#~ msgid "Consider FILE to be infinitely new"
-#~ msgstr "Smatraj SPIS beskonaèno novim"
+#~ msgstr "Smatraj SPIS beskonaÄno novim"
#~ msgid "Entering"
#~ msgstr "Ulazim u"
@@ -2146,7 +2415,7 @@ msgstr ""
#~ msgstr "# Nema varijabli."
#~ msgid "# average of %.1f variables per bucket, max %u in one bucket.\n"
-#~ msgstr "# prosjeèno %.1f varijabli po d¾epu, maks. %u u jednom d¾epu.\n"
+#~ msgstr "# prosjeÄno %.1f varijabli po džepu, maks. %u u jednom džepu.\n"
#~ msgid "# average of %d.%d variables per bucket, max %u in one bucket.\n"
-#~ msgstr "# prosjeèno %d.%d varijabli po d¾epu, maks. %u u jednom d¾epu.\n"
+#~ msgstr "# prosjeÄno %d.%d varijabli po džepu, maks. %u u jednom džepu.\n"
diff --git a/po/id.gmo b/po/id.gmo
index 5ef2ce3..d052d6c 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index 3ccb143..7adf238 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,116 +7,122 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU make 3.81\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: 2009-01-31 18:30+0700\n"
"Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
+"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\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 "usaha untuk menggunakan layanan yang tidak didukung: `%s'"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
msgstr "touch anggota archive tidak tersedia di VMS"
-#: 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: Archive `%s' tidak ada"
-#: 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' bukan archive yang valid"
-#: 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: Anggota `%s' tidak terdapat dalam `%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: Kode kembali tidak baik dari ar_member_touch pada `%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 gagal untuk mengekstrak info module, status = %d"
-#: arscan.c:175
+#: arscan.c:173
#, fuzzy, c-format
msgid "lbr$ini_control() failed with status = %d"
msgstr "lbr$ini_control gagal dengan status = %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 "tidak dapat membuka perpustakaan `%s' untuk melihat anggota `%s'"
-#: 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 "Anggota `%s'%s: %ld bytes pada %ld (%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr " (nama mungkin akan di potong)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Tanggal %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d, gid = %d, mode = 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 "*** Berhenti.\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] Anggota archive `%s' mungkin palsu: tidak dihapus"
-#: 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 "*** Anggota archive `%s' mungkin palsu; tidak dihapus"
-#: commands.c:638
-#, c-format
-msgid "*** [%s] Deleting file `%s'"
+#: commands.c:646
+#, fuzzy, c-format
+msgid "*** [%s] Deleting file '%s'"
msgstr "*** [%s] Menghapus berkas `%s'"
-#: commands.c:640
-#, c-format
-msgid "*** Deleting file `%s'"
+#: commands.c:648
+#, fuzzy, c-format
+msgid "*** Deleting file '%s'"
msgstr "*** Menghapus berkas `%s'"
-#: commands.c:676
+#: commands.c:684
#, fuzzy
msgid "# recipe to execute"
msgstr "# perintah untuk dijalankan"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr " (bawaan):"
-#: commands.c:681
-#, c-format
-msgid " (from `%s', line %lu):\n"
+#: commands.c:689
+#, fuzzy, c-format
+msgid " (from '%s', line %lu):\n"
msgstr " (dari `%s', baris %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -124,222 +130,226 @@ msgstr ""
"\n"
"# Direktori\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
msgstr "# %s: tidak dapat melihat statistik.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
msgstr "# %s (kunci %s, mtime %d): tidak dapat dibuka.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
msgstr "# %s (perangkat %d, inode [%d,%d,%d]): tidak dapat dibuka.\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
msgstr "# %s (perangkat %ld, inode %ld): tidak dapat dibuka.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr "# %s (kunci %s, mtime %d): "
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
msgstr "# %s (perangkat %d, inode [%d,%d,%d]): "
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
msgstr "# %s (perangkat %ld, inode %ld): "
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "Tidak"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " berkas, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "tidak"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
msgstr " tidak mungkin"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr " sejauh ini."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
msgstr " tidak mungkin dalam direktori %lu.\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 "Variabel rekursif `%s' menunjuk pada dirinya sendiri"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
msgstr "referensi variabel tidak diselesaikan"
-#: 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 "Perintah di spesifikasikan untuk berkas `%s' di %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 "Perintah untuk berkas `%s' ditemukan dalam pencarian aturan implisit,"
-#: 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 ""
"tetapi `%s' sekarang dipertimbangkan sebagai berkas yang sama dengan `%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 "Perintah untuk `%s' akan diabaikan untuk menghargai `%s'."
-#: file.c:298
-#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
+#: file.c:300
+#, fuzzy, c-format
+msgid "can't rename single-colon '%s' to double-colon '%s'"
msgstr "tidak dapat mengubah nama dari kolon-tunggal `%s' ke kolon-ganda `%s'"
-#: file.c:303
-#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
+#: file.c:305
+#, fuzzy, c-format
+msgid "can't rename double-colon '%s' to single-colon '%s'"
msgstr "tidak dapat mengubah nama kolon-ganda `%s' menjadi kolon-tunggal `%s'"
-#: file.c:392
-#, c-format
-msgid "*** Deleting intermediate file `%s'"
+#: file.c:396
+#, fuzzy, c-format
+msgid "*** Deleting intermediate file '%s'"
msgstr "*** Menghapus berkas sementara `%s'"
-#: file.c:396
+#: file.c:400
msgid "Removing intermediate files...\n"
msgstr "Menghapus berkas sementara...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
msgstr "%s: Timestamp diluar jangkauan; digantikan dengan %s"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "Waktu saat ini"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
msgstr "# Bukan sebuah target:"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
msgstr "# Berkas sebelumnya (dibutuhkan oleh .PRECIOUS)."
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
msgstr "# Phony target (dibutuhkan oleh .PHONY)."
-#: file.c:933
+#: file.c:958
#, fuzzy
msgid "# Command line target."
msgstr "# Baris-perintah target."
-#: file.c:935
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
msgstr "# Merupakan baku, MAKEFILES atau -include/sinclude makefile."
-#: file.c:937
+#: file.c:962
+#, fuzzy
+msgid "# Builtin rule"
+msgstr ""
+"\n"
+"# Tidak ada aturan implisit."
+
+#: file.c:964
msgid "# Implicit rule search has been done."
msgstr "# Pencarian aturan implisit sudah selesai."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
msgstr "# Pencarian aturan implisit belum selesai."
-#: file.c:940
-#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
+#: file.c:967
+#, fuzzy, c-format
+msgid "# Implicit/static pattern stem: '%s'\n"
msgstr "# Pola implisit atau statis stem: `%s'\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
msgstr "# Berkas merupakan dibutuhkan untuk sementara."
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
msgstr "# Juga membuat:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
msgstr "# Waktu ubah sudah diperiksa."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# Berkas tidak ada."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr "# Berkas sudah sangat tua."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr "# Terakhir dimodifikasi %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# Berkas sudah diperbarui."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# Berkas belum diperbarui."
-#: file.c:968
+#: file.c:995
#, fuzzy
msgid "# Recipe currently running (THIS IS A BUG)."
msgstr "# Perintah sedang berjalan (INI MERUPAKAN SEBUAH BUG)."
-#: file.c:971
+#: file.c:998
#, fuzzy
msgid "# Dependencies recipe running (THIS IS A BUG)."
msgstr "# Perintah ketergantungan sedang berjalan (INI MERUPAKAN SEBUAH BUG)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
msgstr "# Sukses memperbarui."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
msgstr "# Perlu untuk diupdate (-q diset)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr "# Gagal untuk mengupdate."
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# Nilai yang salah dalam anggota `update_status' !"
-
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
+#: file.c:1019
+#, fuzzy
+msgid "# Invalid value in 'command_state' member!"
msgstr "# Nilai yang salah dalam anggota `command_state' !"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -347,7 +357,7 @@ msgstr ""
"\n"
"# Berksa"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
@@ -357,117 +367,175 @@ msgstr ""
"# berkas statistik hash-table:\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 "argumen pertama untuk fungsi `word' bukan numerik"
-#: 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 "argumen pertama untuk fungsi `word' harus lebih besar dari 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 "argumen pertama untuk fungsi `wordlist' bukan numerik"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
+#: function.c:769
+#, fuzzy
+msgid "non-numeric second argument to 'wordlist' function"
msgstr "argumen kedua dari fungsi `wordlist' bukan numerik"
-#: 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) gagal (e=%ld)\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) gagal (e=%ld)\n"
-#: function.c:1474
+#: function.c:1490
#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
msgstr "CreatePipe() gagal (e=%ld)\n"
-#: function.c:1479
+#: function.c:1498
#, fuzzy
msgid "windows32_openpipe(): process_init_fd() failed\n"
msgstr "windows32_openpipe (): process_init_fd() gagal\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr "Membersihkan berkas batch sementara %s\n"
-#: function.c:2150
+#: function.c:2151
+#, fuzzy, c-format
+msgid "open: %s: %s"
+msgstr "%s: %s"
+
+#: function.c:2158
+#, fuzzy, c-format
+msgid "write: %s: %s"
+msgstr "error menulis: %s"
+
+#: function.c:2164
#, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
+msgid "Invalid file operation: %s"
+msgstr ""
+
+#: function.c:2279
+#, fuzzy, c-format
+msgid "insufficient number of arguments (%d) to function '%s'"
msgstr "Jumlah dari argumen (%d) untuk fungsi `%s' tidak mencukupi"
-#: function.c:2162
-#, c-format
-msgid "unimplemented on this platform: function `%s'"
+#: function.c:2291
+#, fuzzy, c-format
+msgid "unimplemented on this platform: function '%s'"
msgstr "Tidak terimplementasi dalam platform ini: fungsi `%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 "fungsi `%s' tidak diselesaikan: hilang `%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: opsi `%s' merupakan ambigu\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 "Jumlah dari argumen (%d) untuk fungsi `%s' tidak mencukupi"
+
+#: function.c:2555
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "Jumlah dari argumen (%d) untuk fungsi `%s' tidak mencukupi"
+
+#: getopt.c:659
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: opsi `%s' merupakan ambigu\n"
+
+#: getopt.c:683
+#, fuzzy, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr "%s: opsi `--%s' tidak memperbolehkan argumen\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: opsi `%c%s' tidak memperbolehkan argumen\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: opsi `%s' membutuhkan sebuah argumen\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: opsi tidak dikenali `--%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: opsi tidak dikenali `%c%s'\n"
-#: getopt.c:766
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: opsi tidak legal -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: opsi tidak valid -- %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: opsi membutuhkan sebuah argumen -- %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: opsi `-W %s' merupakan opsi ambigu\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: opsi `-W %s' tidak memperbolehkan sebuah argumen\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"
@@ -489,131 +557,156 @@ msgstr "Rehash=%d, "
msgid "Collisions=%ld/%ld=%.0f%%"
msgstr "Tabrakan=%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 "Mencari aturan implisit untuk `%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 "Mencari aturan implisit untuk anggota-archive pada `%s'.\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
msgstr "Menghindari aturan implisit rekursi.\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 "Mencoba aturan pola dengan stem `%.*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 "Menolak persyaratan aturan yang tidak mungkin `%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 "Menolak persyaratan implisit yang tidak mungkin `%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 "Mencoba persyaratan dari aturan `%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 "Mencoba persyaratan implisit `%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 "Menemukan persyaratan `%s' sebagai 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 "Mencari aturan dengan berkas sementara `%s'.\n"
-#: job.c:335
+#: job.c:361
msgid "Cannot create a temporary file\n"
msgstr "Tidak dapat membuat berkas sementara\n"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] Error 0x%x (diabaikan)"
-
-#: job.c:450
-#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] Error 0x%x"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (core di-dump)"
-#: job.c:454
-#, c-format
-msgid "[%s] Error %d (ignored)"
+#: job.c:487
+#, fuzzy
+msgid " (ignored)"
msgstr "[%s] Error %d (diabaikan)"
-#: job.c:455
+#: job.c:491 job.c:1994
+#, fuzzy
+msgid "<builtin>"
+msgstr " (bawaan):"
+
+#: 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] Error 0x%x"
+
+#: job.c:513
+#, fuzzy, c-format
+msgid "%s[%s] Error %d%s"
msgstr "*** [%s] Error %d"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (core di-dump)"
+#: 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 "*** Menunggu pekerjaan yang belum selesai...."
-#: job.c:579
+#: job.c:639
#, fuzzy, c-format
msgid "Live child %p (%s) PID %s %s\n"
msgstr "Proses anak yang masih berjalan 0x%08lx (%s) PID %ld %s\n"
-#: 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 " (remote)"
-#: job.c:758
+#: job.c:829
#, fuzzy, c-format
msgid "Reaping losing child %p PID %s %s\n"
msgstr "Reaping anak hilang 0x%08lx PID %ld %s\n"
-#: job.c:759
+#: job.c:830
#, fuzzy, c-format
msgid "Reaping winning child %p PID %s %s\n"
msgstr "Reaping winning child 0x%08lx PID %ld %s\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
msgstr "Membersihkan berkas batch sementara %s\n"
-#: job.c:861
+#: job.c:843
+#, fuzzy, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "Membersihkan berkas batch sementara %s\n"
+
+#: job.c:949
#, fuzzy, c-format
msgid "Removing child %p PID %s%s from chain.\n"
msgstr "Menghilangkan proses anak 0x%08lx PID %ld%s dari rantai.\n"
-#: job.c:920
-msgid "write jobserver"
-msgstr "menulis jobserver"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr ""
-#: job.c:922
+#: job.c:1011 job.c:1025
#, fuzzy, c-format
msgid "Released token for child %p (%s).\n"
msgstr "Melepaskan token dari proses anak 0x%08lx (%s).\n"
-#: job.c:1453 job.c:2094
+#: job.c:1023
+msgid "write jobserver"
+msgstr "menulis jobserver"
+
+#: job.c:1612 job.c:2332
#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
msgstr "process_easy() gagal untuk menjalankan proses (e=%ld)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
@@ -622,110 +715,166 @@ msgstr ""
"\n"
"Terhitung %d argumen gagal untuk dijalankan\n"
-#: job.c:1525
+#: job.c:1685
#, fuzzy, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
msgstr "Meletakkan proses anak 0x%08lx (%s) PID %ld%s pada rantai proses.\n"
-#: job.c:1778
+#: job.c:1953
+#, c-format
+msgid "semaphore or child process wait: (Error %ld: %s)"
+msgstr ""
+
+#: job.c:1967
#, fuzzy, c-format
msgid "Obtained token for child %p (%s).\n"
msgstr "Memperoleh token untuk proses anak 0x%08lx (%s).\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
msgstr "membaca pipa pekerjaan"
-#: 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: Archive `%s' tidak ada"
-#: job.c:1802
+#: job.c:2005
#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "Tidak perlu membuat lagi target `%s'"
+msgid "%s: update target '%s' due to: %s"
+msgstr ""
+"%sTidak terdapat aturan untuk membuat target `%s', dibutuhkan oleh `%s'%s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
msgstr "tidak dapat memaksa mencapai batas beban pada sistem operasi ini"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
msgstr "tidak dapat memaksa mencapai batas beban: "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
msgstr "tidak ada lagi file handles: tidak dapat menggandakan stdin\n"
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
msgstr "tidak ada lagi file handles: tidak dapat menggandakan stdout\n"
-#: job.c:2015
+#: job.c:2223
+#, fuzzy
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr "tidak ada lagi file handles: tidak dapat menggandakan stdin\n"
+
+#: job.c:2238
msgid "Could not restore stdin\n"
msgstr "Tidak dapat mengembalikan stdin\n"
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
msgstr "Tidak dapat mengembalikan stdout\n"
-#: job.c:2127
+#: job.c:2254
+#, fuzzy
+msgid "Could not restore stderr\n"
+msgstr "Tidak dapat mengembalikan stdin\n"
+
+#: job.c:2365
#, fuzzy, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
msgstr "make reaped child pid %ld, tetap menunggu untuk pid %ld\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
msgstr "%s: Perintah tidak ada"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr "%s: Shell program tidak ditemukan"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
msgstr "spawnvpe: mungkin kehabisan ruang environment"
-#: 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 berubah (sebelumnya `%s', sekarang `%s')\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr "Membuat berkas batch sementara %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 (baris %d) shell context tidak baik (!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 "Parallel jobs (-j) tidak didukung dalam platform ini."
+
+#: main.c:312
msgid "Options:\n"
msgstr "Opsi:\n"
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
msgstr " -b, -m Diabaikan untuk kompatibilitas.\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr ""
" -B, --always-make Membuat semua target secara tidak "
"kondisional.\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
@@ -733,17 +882,17 @@ msgstr ""
" -C DIRECTORI, --directory=DIREKTORI\n"
" Pindah ke DIREKTORI sebelum melakukan apapun.\n"
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
msgstr " -d Menampilkan banyak informasi debug.\n"
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
" --debug[=FLAGS] Menampilkan berbagai tipe informasi debug.\n"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
@@ -751,12 +900,12 @@ msgstr ""
" -e, --environment-overrides\n"
" Variabel lingkungan memaksa makefiles.\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"
@@ -764,18 +913,18 @@ msgstr ""
" -f BERKAS, --file=BERKAS, --makefile=BERKAS\n"
" Baca BERKAS sebagai sebuah makefile.\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
msgstr " -h, --help Tampilkan pesan ini dan keluar.\n"
-#: main.c:325
+#: main.c:334
#, fuzzy
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
msgstr ""
" -i, --ignore-errors Abaikan kesalahan dari perintah yang "
"dijalankan.\n"
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
@@ -784,7 +933,7 @@ msgstr ""
" Cari di DIREKTORI untuk makefile yang "
"disertakan.\n"
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
@@ -792,13 +941,13 @@ msgstr ""
" -j [N], --jobs[=N] Ijinkan N kerja secara bersamaan. Kerja tidak "
"terhingga jika tidak diberikan argumen.\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 Tetap jalan ketika target tidak dapat dibuat.\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 "
@@ -808,7 +957,7 @@ msgstr ""
" Jangan menjalankan multiple pekerjaan kecuali "
"beban dibawah N.\n"
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
@@ -816,7 +965,7 @@ msgstr ""
" -L, --check-symlink-times Gunakan waktu mtime terbaru diantara symlinks "
"dan target.\n"
-#: main.c:339
+#: main.c:348
#, fuzzy
msgid ""
" -n, --just-print, --dry-run, --recon\n"
@@ -827,7 +976,7 @@ msgstr ""
" Jangan menjalankan perintah apapun; tampilkan "
"saja apa yang akan dikerjakan.\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 "
@@ -837,11 +986,17 @@ msgstr ""
" Pertimbangkan BERKAS sudah sangat tua dan "
"jangan membuatnya lagi.\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 Tampilkan basis data internal make.\n"
-#: main.c:347
+#: main.c:359
#, fuzzy
msgid ""
" -q, --question Run no recipe; exit status says if up to "
@@ -850,22 +1005,22 @@ msgstr ""
" -q, --question Tidak menjalankan perintah. Mengeluarkan "
"status saja dan mengatakan up to date.\n"
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr ""
" -r, --no-builtin-rules Aturan implisit bawaan tidak digunakan.\n"
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr ""
" -R, --no-builtin-variables Non-aktifkan konfigurasi variabel bawaan.\n"
-#: main.c:353
+#: main.c:365
#, fuzzy
msgid " -s, --silent, --quiet Don't echo recipes.\n"
msgstr " -s, --silent, --quiet Jangan menampilkan perintah.\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
@@ -873,21 +1028,26 @@ msgstr ""
" -S, --no-keep-going, --stop\n"
" Matikan opsi -k.\n"
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
" -t, --touch Sentuh target dari pada membuat kembali.\n"
-#: main.c:360
+#: main.c:372
+#, fuzzy
+msgid " --trace Print tracing information.\n"
+msgstr " -d Menampilkan banyak informasi debug.\n"
+
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr " -v, --version Tampilkan versi dari make dan keluar.\n"
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
msgstr " -w, --print-directory Tampilkan directory saat ini.\n"
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
@@ -895,7 +1055,7 @@ msgstr ""
" --no-print-directory Matikan opsi -w, walaupun opsi ini diaktifkan "
"secara implisit.\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"
@@ -904,7 +1064,7 @@ msgstr ""
" Pertimbangkan BERKAS sebagai sebuah berkas "
"baru.\n"
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
@@ -912,21 +1072,31 @@ msgstr ""
" --warn-undefined-variables Peringatkan akan adanya variabel yang tidak "
"terdefinisi yang direferensikan.\n"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
msgstr "`string' kosong tidak valid sebagai nama file"
-#: main.c:650
-#, c-format
-msgid "unknown debug level specification `%s'"
+#: main.c:734
+#, fuzzy, c-format
+msgid "unknown debug level specification '%s'"
msgstr "spesifikasi tingkat debug tidak diketahui `%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 "internal error: opsi --jobserver-fds lebih dari satu"
+
+#: main.c:848
#, fuzzy, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
msgstr "%s: Interupsi/Exception diterima (kode = 0x%lx, alamat = 0x%lx)\n"
-#: main.c:697
+#: main.c:855
#, fuzzy, c-format
msgid ""
"\n"
@@ -941,162 +1111,184 @@ msgstr ""
"ExceptionFlags = %lx\n"
"ExceptionAddress = %lx\n"
-#: main.c:705
+#: main.c:863
#, fuzzy, c-format
msgid "Access violation: write operation at address 0x%p\n"
msgstr "Akses dilanggar: operasi tulis pada alamat %lx\n"
-#: main.c:706
+#: main.c:864
#, fuzzy, c-format
msgid "Access violation: read operation at address 0x%p\n"
msgstr "Akses dilanggar: operasi baca pada alamat %lx\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 diset pada 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 jalur pencarian di set pada default_shell = %s\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr "%s dihentikan selama 30 detik..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr "selesai tidur(30). Melanjutkan.\n"
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr "Makefile dari standard input dispesifikasikan dua kali."
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr "fopen (berkas sementara)"
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr "fwrite (berkas sementara)"
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "Parallel jobs (-j) tidak didukung dalam platform ini."
-
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
-msgstr "Mereset kembali ke mode satu job (-j1)."
-
-#: main.c:1719
+#: main.c:1534
msgid "internal error: multiple --jobserver-fds options"
msgstr "internal error: opsi --jobserver-fds lebih dari satu"
-#: main.c:1727
+#: main.c:1544
+#, c-format
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
+msgstr ""
+
+#: main.c:1547
#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
+msgid "Jobserver client (semaphore %s)\n"
+msgstr ""
+
+#: main.c:1551
+#, fuzzy, c-format
+msgid "internal error: invalid --jobserver-fds string '%s'"
msgstr "internal error: tidak valid --jobserver-fds string `%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 ""
"Peringatan: -jN dipaksakan dalam submake: non-aktifkan mode server pekerja."
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
msgstr "dup server pekerja"
-#: 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 ""
"Peringatan: server pekerja tidak ada: menggunakan -j1. Tambahkan `+' pada "
"aturan make paling atas."
-#: main.c:1777
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "Makefile dari standard input dispesifikasikan dua kali."
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (berkas sementara)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (berkas sementara)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr "Parallel jobs (-j) tidak didukung dalam platform ini."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "Mereset kembali ke mode satu job (-j1)."
+
+#: 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 "membuat pipa pekerjaan"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
msgstr "inisiasi pipa server pekerja"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
msgstr "Symbolic links tidak didukung: menonaktifkan opsi -L."
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr "Memperbarui makefiles....\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 "Makefile `%s' mungkin berupa loop; tidak membuat lagi.\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 "Gagal membuat lagi makefile `%s'."
-#: 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 "Makefile yang dimasukan `%s' tidak ditemukan."
-#: 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 `%s' tidak ditemukan"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
msgstr "Tidak dapat kembali ke direktori asal."
-#: main.c:2102
+#: main.c:2354
#, c-format
msgid "Re-executing[%u]:"
msgstr "Menjalankan kembali[%u]:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr "unlink (berkas sementara): "
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
msgstr ".DEFAULT_GOAL berisi lebih dari satu target"
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
msgstr "Target tidak dispesifikasikan dan tidak ditemukan makefile"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "Tidak ada targets"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
msgstr "Memperbarui tujuan target....\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr ""
"Peringatan: Clock skew terdeteksi. Pembuatan anda mungkin tidak sempurna"
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
msgstr "Penggunaan: %s [opsi] [target] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
@@ -1105,7 +1297,7 @@ msgstr ""
"\n"
"Program ini dibuat untuk %s\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
@@ -1114,36 +1306,36 @@ msgstr ""
"\n"
"Program ini dibuat untuk %s (%s)\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
msgstr "Laporkan bugs kepada <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 "opsi `-%c' membutuhkan sebuah argument string yang tidak kosong"
-#: 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 "opsi `-%c' membutuhkan sebuah argument `string' yang tidak kosong"
-#: main.c:3054
+#: main.c:3253
#, fuzzy, c-format
msgid "%sBuilt for %s\n"
msgstr ""
"\n"
"%sAplikasi ini dibuat untuk %s\n"
-#: main.c:3056
+#: main.c:3255
#, fuzzy, c-format
msgid "%sBuilt for %s (%s)\n"
msgstr ""
"\n"
"%sAplikasi ini dibuat untuk %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."
@@ -1152,7 +1344,7 @@ msgid ""
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
@@ -1161,7 +1353,7 @@ msgstr ""
"\n"
"# Membuat basis data, ditampilkan %s"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
@@ -1170,106 +1362,106 @@ msgstr ""
"\n"
"# Selesai membuat basis data %s\n"
-#: main.c:3237
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "Kesalahan tidak diketahui %d"
+
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "Kehabisan memori maya"
+
+#: misc.c:522
+#, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s: pengguna %lu (ril %lu), grup %lu (ril %lu)\n"
+
+#: misc.c:543
+msgid "Initialized access"
+msgstr "Akses terinisialisasi"
+
+#: misc.c:622
+msgid "User access"
+msgstr "Akses pengguna"
+
+#: misc.c:670
+msgid "Make access"
+msgstr "Buat akses"
+
+#: misc.c:704
+msgid "Child access"
+msgstr "Akses anak"
+
+#: output.c:128
#, c-format
msgid "%s: Entering an unknown directory\n"
msgstr "%s: Memasuki sebuah direktori yang tidak diketahui\n"
-#: main.c:3239
+#: output.c:130
#, c-format
msgid "%s: Leaving an unknown directory\n"
msgstr "%s: Meninggalkan sebuah direktori yang tidak diketahui\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: Memasuki direktori `%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: Meninggalkan direktori `%s'\n"
-#: main.c:3250
+#: output.c:139
#, c-format
msgid "%s[%u]: Entering an unknown directory\n"
msgstr "%s[%u]: Memasuki sebuah direktori yang tidak diketahui\n"
-#: main.c:3253
+#: output.c:141
#, c-format
msgid "%s[%u]: Leaving an unknown directory\n"
msgstr "%s[%u]: Meninggalkan sebuah direktori yang tidak diketahui\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]: Memasuki direktori `%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]: Meninggalkan direktori `%s'\n"
-#: misc.c:316
+#: output.c:515
+#, c-format
+msgid "write error: %s"
+msgstr "error menulis: %s"
+
+#: output.c:517
+msgid "write error"
+msgstr "error menulis"
+
+#: output.c:740
msgid ". Stop.\n"
msgstr ". Berhenti.\n"
-#: misc.c:337
-#, c-format
-msgid "Unknown error %d"
-msgstr "Kesalahan tidak diketahui %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 "Kehabisan memori maya"
-
-#: misc.c:708
-#, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s: pengguna %lu (ril %lu), grup %lu (ril %lu)\n"
-
-#: misc.c:729
-msgid "Initialized access"
-msgstr "Akses terinisialisasi"
-
-#: misc.c:808
-msgid "User access"
-msgstr "Akses pengguna"
-
-#: misc.c:856
-msgid "Make access"
-msgstr "Buat akses"
-
-#: misc.c:890
-msgid "Child access"
-msgstr "Akses anak"
-
-#: misc.c:954
-#, c-format
-msgid "write error: %s"
-msgstr "error menulis: %s"
-
-#: misc.c:956
-msgid "write error"
-msgstr "error menulis"
-
-#: read.c:179
+#: read.c:180
msgid "Reading makefiles...\n"
msgstr "Membaca makefiles...\n"
#: read.c:333
-#, c-format
-msgid "Reading makefile `%s'"
+#, fuzzy, c-format
+msgid "Reading makefile '%s'"
msgstr "Membaca makefile `%s'"
#: read.c:335
@@ -1292,329 +1484,347 @@ msgstr " (tidak peduli)"
msgid " (no ~ expansion)"
msgstr " (tidak terdapat ekspansi tilde ~)"
-#: 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 "sintak salah dalam kondisional"
-#: 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 "perintah dijalankan sebelum target pertama"
-#: read.c:940
+#: read.c:1036
#, fuzzy
msgid "missing rule before recipe"
msgstr "hilang aturan sebelum menjalankan perintah"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
msgstr "pemisah %s hilang"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
msgstr " (apakah yang anda maksud TAB dari pada 8 buah spasi?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
msgstr "pola target hilang"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
msgstr "pola target banyak"
-#: read.c:1169
-#, c-format
-msgid "target pattern contains no `%%'"
+#: read.c:1269
+#, fuzzy, c-format
+msgid "target pattern contains no '%%'"
msgstr "pola target tidak memiliki `%%'"
-#: read.c:1293
-msgid "missing `endif'"
+#: read.c:1391
+#, fuzzy
+msgid "missing 'endif'"
msgstr "hilang `endif'"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "nama variabel kosong"
-#: read.c:1367
+#: read.c:1465
#, fuzzy
-msgid "extraneous text after `define' directive"
+msgid "extraneous text after 'define' directive"
msgstr "Kelebihan text sesudah `endef' directive"
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
+#: read.c:1490
+#, fuzzy
+msgid "missing 'endef', unterminated 'define'"
msgstr "hilang `endef', tidak diselesaikan `define'"
-#: read.c:1420
+#: read.c:1518
#, fuzzy
-msgid "extraneous text after `endef' directive"
+msgid "extraneous text after 'endef' directive"
msgstr "Kelebihan text sesudah `endef' directive"
-#: read.c:1490
-#, c-format
-msgid "Extraneous text after `%s' directive"
+#: read.c:1589
+#, fuzzy, c-format
+msgid "extraneous text after '%s' directive"
msgstr "Kelebihan text sesudah `%s' directive"
-#: read.c:1499 read.c:1513
-#, c-format
-msgid "extraneous `%s'"
+#: read.c:1598 read.c:1612
+#, fuzzy, c-format
+msgid "extraneous '%s'"
msgstr "kelebihan `%s'"
-#: read.c:1518
-msgid "only one `else' per conditional"
+#: read.c:1617
+#, fuzzy
+msgid "only one 'else' per conditional"
msgstr "hanya satu `else' dalam setiap kondisi"
-#: read.c:1797
+#: read.c:1892
msgid "Malformed target-specific variable definition"
msgstr "Definisi variable target-specific memiliki format yang salah"
-#: read.c:1855
+#: read.c:1951
#, fuzzy
msgid "prerequisites cannot be defined in recipes"
msgstr "persyaratan tidak dapat didefinisikan dalam script perintah"
-#: read.c:1908
+#: read.c:2009
msgid "mixed implicit and static pattern rules"
msgstr "aturan pola implisit dan static tercampur"
-#: read.c:1931 read.c:2112
+#: read.c:2032 read.c:2220
msgid "mixed implicit and normal rules"
msgstr "aturan implisit dan aturan normal tercampur"
-#: 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 "target `%s' tidak cocok dengan pola target"
-#: 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 "target berkas `%s' keduanya memiliki masukan : dan ::"
-#: 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 "target `%s' memberikan lebih dari sekali dalam aturan sama."
-#: read.c:2006
+#: read.c:2114
#, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
+msgid "warning: overriding recipe for target '%s'"
msgstr "Peringatan: memaksa perintah untuk target `%s'"
-#: 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 "Peringatan: menghiraukan perintah lama untuk target `%s'"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
msgstr "Peringatan: karakter NUL terlihat; baris selanjutnya dihiraukan"
-#: 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 "Tidak ada yang harus dilakukan untuk `%s'."
-#: 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' sudah baru."
-#: remake.c:306
-#, c-format
-msgid "Pruning file `%s'.\n"
+#: remake.c:305
+#, fuzzy, c-format
+msgid "Pruning file '%s'.\n"
msgstr "Pruning file `%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 "%sTidak terdapat aturan untuk membuat target `%s'%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 ""
"%sTidak terdapat aturan untuk membuat target `%s', dibutuhkan oleh `%s'%s"
#: remake.c:413
-#, c-format
-msgid "Considering target file `%s'.\n"
+#, fuzzy, c-format
+msgid "Considering target file '%s'.\n"
msgstr "Mempertimbangkan berkas target `%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 "Baru saja dicoba dan gagal untuk memperbarui berkas `%s'.\n"
#: remake.c:432
-#, c-format
-msgid "File `%s' was considered already.\n"
+#, fuzzy, c-format
+msgid "File '%s' was considered already.\n"
msgstr "Berkas `%s' baru saja dipertimbangkan.\n"
#: remake.c:442
-#, c-format
-msgid "Still updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Still updating file '%s'.\n"
msgstr "Sedang memperbarui berkas `%s'.\n"
#: remake.c:445
-#, c-format
-msgid "Finished updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Finished updating file '%s'.\n"
msgstr "Selesai memperbarui berkas `%s'.\n"
#: remake.c:474
-#, c-format
-msgid "File `%s' does not exist.\n"
+#, fuzzy, c-format
+msgid "File '%s' does not exist.\n"
msgstr "Berkas `%s' tidak ada.\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 ""
"*** Peringatan: .LOW_RESOLUTION_TIME berkas `%s' memiliki sebuah penanda "
"waktu dengan resolusi tinggi"
-#: 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 "Ditemukan sebuah aturan implisit untuk `%s'.\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 "Tidak terdapat aturan implisit untuk membuat `%s'.\n"
#: remake.c:502
#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
+msgid "Using default recipe for '%s'.\n"
msgstr "Menggunakan perintah baku untuk `%s'.\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
msgstr "Ketergantungan %s <- %s melingkar dijatuhkan."
-#: 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 "Selesai melakukan semua persyaratan untuk berkas target `%s'.\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 "Persyaratan untuk membuat `%s' sedang dibuat.\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 "Menyerah untuk membuat target berkas `%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 "Target `%s' tidak dibuat lagi karena ada errors."
-#: remake.c:727
-#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
+#: remake.c:731
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
msgstr "Persyaratan untuk `%s' adalah order-only untuk target `%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 "Persyaratan untuk `%s' untuk target `%s' tidak ada.\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 "Persyaratan untuk `%s' lebih baru dari pada target `%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 "Persyaratan untuk `%s' lebih tua dari pada target `%s'.\n"
-#: remake.c:758
-#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
+#: remake.c:762
+#, fuzzy, c-format
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
msgstr "Target `%s' merupakan kolon-ganda dan tidak memiliki syarat.\n"
-#: remake.c:765
+#: remake.c:769
#, fuzzy, 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 "Tidak ada perintah untuk `%s' dan persyaratan tidak berubah.\n"
-#: 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 "Membuat `%s' karena adanya tanda always-make.\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 "Tidak perlu membuat lagi target `%s'"
-#: remake.c:780
-#, c-format
-msgid "; using VPATH name `%s'"
+#: remake.c:784
+#, fuzzy, c-format
+msgid "; using VPATH name '%s'"
msgstr "; menggunakan nama VPATH `%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 "Harus membuat lagi target `%s'.\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 " Mengabaikan nama VPATH `%s'.\n"
-#: remake.c:815
+#: remake.c:819
#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
+msgid "Recipe of '%s' is being run.\n"
msgstr "Perintah dari `%s' sedang dijalankan.\n"
-#: 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 "Gagal membuat lagi target berkas `%s'.\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 "Sukses membuat kembali target berkas `%s'.\n"
-#: remake.c:828
-#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
+#: remake.c:832
+#, fuzzy, c-format
+msgid "Target file '%s' needs to be remade under -q.\n"
msgstr "Target berkas `%s' dibutuhkan untuk membuat kembali dengan opsi -q.\n"
-#: 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 "Menggunakan perintah baku untuk `%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 "Peringatan: Berkas `%s' memiliki waktu modifikasi dimasa depan"
-#: 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 "Peringatan: Berkas `%s' memiliki waktu modifikasi %.2g s kedepan"
-#: 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 elemen `%s' bukan merupakan sebuah pattern"
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
msgstr "Custom tidak akan men-export: %s\n"
-#: rule.c:499
+#: rule.c:496
msgid ""
"\n"
"# Implicit Rules"
@@ -1622,7 +1832,7 @@ msgstr ""
"\n"
"# Aturan implisit."
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
@@ -1630,7 +1840,7 @@ msgstr ""
"\n"
"# Tidak ada aturan implisit."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -1639,244 +1849,259 @@ msgstr ""
"\n"
"# %u aturan implisit, %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr " terminal."
-#: rule.c:534
+#: rule.c:531
#, fuzzy, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
msgstr "BUG: num_pattern_rules salah! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "sinyal tidak diketahui"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
msgstr "Hangup"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "Interupsi"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
msgstr "Berhenti"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
msgstr "Instruksi Tidak Legal"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
msgstr "Penangkap trace/breakpoint"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "Dibatalkan"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
msgstr "Penangkap IOT"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
msgstr "Penangkap EMT"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
msgstr "Eksepsi titik pecahan"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "Terbunuh"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr "Bus error"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "Kesalahan segmentasi"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "Panggilan sistem buruk"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr "Pipa rusak"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "Alarm"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
msgstr "Dimatikan"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr "Sinyal definisi pengguna 1"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr "Sinyal definisi pengguna 2"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
msgstr "Proses anak berakhir"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
msgstr "Listrik bermasalah"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "Dihentikkan"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
msgstr "Dihentikan (masukkan tty)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
msgstr "Dihentikan (keluaran tty)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "Dihentikan (sinyal)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
msgstr "Batas waktu CPU telah terlampaui"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
msgstr "Batas maksimal ukuran berkas terlampaui"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
msgstr "Pewaktu maya habis"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
msgstr "Pewaktu profiling habis"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
msgstr "Jendela berubah"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "Dilanjutkan"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
msgstr "Kondisi I/O penting"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
msgstr "I/O mungkin"
-#: 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 "Resource hilang"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "Sinyal bahaya"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr "Permintaan informasi"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
msgstr "co-processor titik pecahan tidak tersedia"
-#: strcache.c:235
+#: strcache.c:236
#, fuzzy, c-format
msgid ""
"\n"
-"%s # of strings in strcache: %d / lookups = %lu / hits = %lu\n"
-msgstr ""
-"\n"
-"%s # dari string dalam strcache: %d\n"
+"%s No strcache buffers\n"
+msgstr "%s # dari buffer strcache: %d\n"
-#: strcache.c:237
+#: strcache.c:266
#, fuzzy, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
-msgstr "%s # dari buffer strcache: %d\n"
+msgid ""
+"\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
+msgstr "%s strcache free: total = %d / mak = %d / min = %d / rata-rata = %d\n"
+
+#: strcache.c:270
+#, c-format
+msgid ""
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
+msgstr ""
-#: strcache.c:239
+#: strcache.c:280
#, fuzzy, c-format
-msgid "%s strcache used: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
msgstr "besar %s strcache: total = %d / mak = %d / min = %d / rata-rata = %d\n"
-#: strcache.c:241
+#: strcache.c:283
#, fuzzy, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
msgstr "%s strcache free: total = %d / mak = %d / min = %d / rata-rata = %d\n"
-#: strcache.c:244
-#, fuzzy
+#: 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"
"# berkas statistik hash-table:\n"
"# "
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "otomatis"
+
+#: variable.c:1610
msgid "default"
msgstr "baku"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr "lingkungan"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr "makefile"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
msgstr "lingkungan dibawah opsi -e"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr "baris perintah"
-#: variable.c:1556
-msgid "`override' directive"
+#: variable.c:1625
+#, fuzzy
+msgid "'override' directive"
msgstr "`override' direktif"
-#: variable.c:1559
-msgid "automatic"
-msgstr "otomatis"
-
-#: variable.c:1570
-#, c-format
-msgid " (from `%s', line %lu)"
+#: variable.c:1636
+#, fuzzy, c-format
+msgid " (from '%s', line %lu)"
msgstr " (dari `%s', baris %lu)"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
msgstr "# statistik variable set hash-table:\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1884,7 +2109,7 @@ msgstr ""
"\n"
"# Variabel\n"
-#: variable.c:1627
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
@@ -1892,7 +2117,7 @@ msgstr ""
"\n"
"# Nilai Variabel Pola-Spesifik"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
@@ -1900,7 +2125,7 @@ msgstr ""
"\n"
"# Tidak terdapat nilai variabel pola-spesifik"
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
@@ -1909,93 +2134,93 @@ msgstr ""
"\n"
"# %u nilai variabel pola-spesifik"
-#: variable.h:219
-#, c-format
-msgid "warning: undefined variable `%.*s'"
+#: variable.h:224
+#, fuzzy, c-format
+msgid "warning: undefined variable '%.*s'"
msgstr "peringatan: variabel `%.*s' tidak terdefinisi"
-#: vmsfunctions.c:92
+#: vmsfunctions.c:91
#, fuzzy, c-format
msgid "sys$search() failed with %d\n"
msgstr "sys$search gagal dengan kode %d\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr "Peringatan: redirection kosong\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 "kesalahan internal: `%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 ""
"-warning, kamu mungkin telah mengaktifkan pengontrolan CTRL-Y dari DCL.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr "BAWAAN [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr "BAWAAN CD %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr "BAWAAN RM %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
msgstr "Perintah bawaan '%s' tidak diketahui\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr "Error, perintah kosong\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr "Meneruskan masukan dari %s\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr "Meneruskan error ke %s\n"
-#: vmsjobs.c:523
+#: vmsjobs.c:518
#, fuzzy, c-format
msgid "Append output to %s\n"
msgstr "Meneruskan output ke %s\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
msgstr "Meneruskan output ke %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 "Menjalankan perintah %s\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr "Gagal spawning, %d\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
@@ -2003,37 +2228,46 @@ msgstr ""
"\n"
"# VPATH Jalur Pencarian\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
+#: vpath.c:600
+#, fuzzy
+msgid "# No 'vpath' search paths."
msgstr "# Tidak ada `vpath' dalam jalur pencarian."
-#: 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' jalur pencarian.\n"
-#: vpath.c:608
+#: vpath.c:605
+#, fuzzy
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
"# Tidak ada (`VPATH' variabel) umum dalam jalur pencarian."
-#: vpath.c:614
+#: vpath.c:611
+#, fuzzy
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
"# Jalur pencarian umum untuk variabel `VPATH':\n"
"# "
+#~ msgid "# Invalid value in `update_status' member!"
+#~ msgstr "# Nilai yang salah dalam anggota `update_status' !"
+
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] Error 0x%x (diabaikan)"
+
#~ msgid "process_easy() failed failed to launch process (e=%ld)\n"
#~ msgstr "process_easy() gagal untuk menjalankan proses (e=%ld)\n"
@@ -2056,6 +2290,13 @@ msgstr ""
#~ msgid "invalid `override' directive"
#~ msgstr "directive `override' tidak valid"
+#~ msgid ""
+#~ "\n"
+#~ "%s # of strings in strcache: %d\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s # dari string dalam strcache: %d\n"
+
#~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
#~ msgstr "-warning, CTRL-Y akan meninggalkan sub-process(es).\n"
diff --git a/po/it.gmo b/po/it.gmo
index f232b0c..3430cc8 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index df0ce15..9e21bd4 100644
--- a/po/it.po
+++ b/po/it.po
@@ -1,124 +1,132 @@
-# Italian messages for GNU Make.
+# Italian messages for GNU make.
# Copyright (C) 2009 Free Software Foundation, Inc.
# This file is distributed under the same license as the make package.
-# Francesco Groccia <fgr@anche.no>, 2009.
+# Francesco Groccia <frgroccia@gmail.com>, 2010-2013.
#
msgid ""
msgstr ""
-"Project-Id-Version: make 3.81\n"
+"Project-Id-Version: make 3.99.93\n"
"Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2010-07-28 01:42-0400\n"
-"PO-Revision-Date: 2009-07-23 12:54+0200\n"
-"Last-Translator: Francesco Groccia <fgr@anche.no>\n"
+"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"PO-Revision-Date: 2013-10-02 18:34+0200\n"
+"Last-Translator: Francesco Groccia <frgroccia@gmail.com>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
+"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ar.c:48
+#: ar.c:46
#, c-format
-msgid "attempt to use unsupported feature: `%s'"
-msgstr "tentativo di usare una funzionalità non supportata: «%s»"
+msgid "attempt to use unsupported feature: '%s'"
+msgstr "tentativo di usare una funzionalità non supportata: \"%s\""
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
-msgstr "impossibile modificare la data di un membro di un archivio su VMS"
+msgstr "touch del membro di archivio non disponibile su VMS"
-#: ar.c:149
+#: ar.c:147
#, c-format
-msgid "touch: Archive `%s' does not exist"
-msgstr "touch: l'archivio «%s» non esiste"
+msgid "touch: Archive '%s' does not exist"
+msgstr "touch: l'archivio \"%s\" non esiste"
-#: ar.c:152
+#: ar.c:150
#, c-format
-msgid "touch: `%s' is not a valid archive"
-msgstr "touch: «%s» non è un archivio valido"
+msgid "touch: '%s' is not a valid archive"
+msgstr "touch: \"%s\" non è un archivio valido"
-#: ar.c:159
+#: ar.c:157
#, c-format
-msgid "touch: Member `%s' does not exist in `%s'"
-msgstr "touch: il membro «%s» non esiste in «%s»"
+msgid "touch: Member '%s' does not exist in '%s'"
+msgstr "touch: il membro \"%s\" non esiste in \"%s\""
-#: ar.c:166
+#: ar.c:164
#, c-format
-msgid "touch: Bad return code from ar_member_touch on `%s'"
-msgstr "touch: codice di ritorno errato da ar_member_touch su «%s»"
+msgid "touch: Bad return code from ar_member_touch on '%s'"
+msgstr "touch: codice di uscita errato da ar_member_touch su \"%s\""
-#: arscan.c:69
-#, fuzzy, c-format
+#: arscan.c:67
+#, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
msgstr ""
-"lbr$set_module fallito per estrarre informazioni del modulo, stato = %d"
+"lbr$set_module() non è riuscita a estrarre informazioni sul modulo, stato = "
+"%d"
-#: arscan.c:175
-#, fuzzy, c-format
+#: arscan.c:173
+#, c-format
msgid "lbr$ini_control() failed with status = %d"
-msgstr "lbr$ini_control fallito con lo stato = %d"
+msgstr "lbr$ini_control() non riuscita con lo stato = %d"
-#: arscan.c:187
+#: arscan.c:185
#, c-format
-msgid "unable to open library `%s' to lookup member `%s'"
-msgstr "impossibile aprire la libreria «%s» per cercare il membro «%s»"
+msgid "unable to open library '%s' to lookup member '%s'"
+msgstr "impossibile aprire la libreria \"%s\" per cercare il membro \"%s\""
-#: arscan.c:850
+#: arscan.c:847
#, c-format
-msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n"
-msgstr "Membro «%s»%s: %ld byte a %ld (%ld).\n"
+msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
+msgstr "Membro \"%s\"%s: %ld byte a %ld (%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr " (il nome potrebbe essere troncato)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Data %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d, gid = %d, modo = 0%o.\n"
-#: commands.c:499
+#: commands.c:406
+#, c-format
+msgid "Recipe has too many lines (%ud)"
+msgstr "Il set di istruzioni ha troppe righe (%ud)"
+
+#: commands.c:507
msgid "*** Break.\n"
msgstr "*** Interruzione.\n"
-#: commands.c:622
+#: commands.c:630
#, c-format
-msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
+msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
msgstr ""
-"*** [%s] L'archivio membro «%s» potrebbe essere inesistente; non eliminato"
+"*** [%s] Il membro di archivio \"%s\" potrebbe essere inesistente; non "
+"eliminato"
-#: commands.c:625
+#: commands.c:633
#, c-format
-msgid "*** Archive member `%s' may be bogus; not deleted"
-msgstr "*** L'archivio membro «%s» potrebbe essere inesistente; non eliminarlo"
+msgid "*** Archive member '%s' may be bogus; not deleted"
+msgstr ""
+"*** Il membro di archivio \"%s\" potrebbe essere inesistente; non eliminato"
-#: commands.c:638
+#: commands.c:646
#, c-format
-msgid "*** [%s] Deleting file `%s'"
-msgstr "*** [%s] Eliminazione del file «%s»"
+msgid "*** [%s] Deleting file '%s'"
+msgstr "*** [%s] Eliminazione del file \"%s\""
-#: commands.c:640
+#: commands.c:648
#, c-format
-msgid "*** Deleting file `%s'"
-msgstr "*** Eliminazione del file «%s»"
+msgid "*** Deleting file '%s'"
+msgstr "*** Eliminazione del file \"%s\""
-#: commands.c:676
-#, fuzzy
+#: commands.c:684
msgid "# recipe to execute"
-msgstr "# comandi da eseguire"
+msgstr "# set di istruzioni da eseguire"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr " (comando interno):"
-#: commands.c:681
+#: commands.c:689
#, c-format
-msgid " (from `%s', line %lu):\n"
-msgstr " (da «%s», riga %lu):\n"
+msgid " (from '%s', line %lu):\n"
+msgstr " (da \"%s\", riga %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -126,227 +134,226 @@ msgstr ""
"\n"
"# Directory\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
msgstr "# %s: impossibile eseguire stat.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
-msgstr "# %s (key %s, mtime %d): impossibile aprirlo.\n"
+msgstr "# %s (key %s, mtime %d) non può essere aperto.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
-msgstr "# %s (device %d, inode [%d,%d,%d]): impossibile aprirlo.\n"
+msgstr "# %s (device %d, inode [%d,%d,%d]) non può essere aperto.\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
-msgstr "# %s (device %ld, inode %ld): impossibile aprirlo.\n"
+msgstr "# %s (device %ld, inode %ld) non può essere aperto.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr "# %s (key %s, mtime %d): "
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
msgstr "# %s (device %d, inode [%d,%d,%d]): "
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
msgstr "# %s (device %ld, inode %ld): "
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "No"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " file, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "no"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
msgstr " impossibilità"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr " finora."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
msgstr " impossibilità nelle directory %lu.\n"
-#: expand.c:127
+#: expand.c:125
#, c-format
-msgid "Recursive variable `%s' references itself (eventually)"
-msgstr "La variabile ricorsiva «%s» si autoreferenzia (finalmente)"
+msgid "Recursive variable '%s' references itself (eventually)"
+msgstr "La variabile ricorsiva \"%s\" si autoreferenzia (alla fine)"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
-msgstr "riferimento della variabile non terminato"
+msgstr "riferimento alla variabile non terminato"
-#: file.c:267
-#, fuzzy, c-format
-msgid "Recipe was specified for file `%s' at %s:%lu,"
-msgstr "Sono stati specificati dei comandi per il file «%s» a %s:%lu,"
+#: file.c:269
+#, c-format
+msgid "Recipe was specified for file '%s' at %s:%lu,"
+msgstr "È stato specificato un set di istruzioni per il file \"%s\" a %s:%lu,"
-#: file.c:272
-#, fuzzy, c-format
-msgid "Recipe for file `%s' was found by implicit rule search,"
+#: file.c:274
+#, c-format
+msgid "Recipe for file '%s' was found by implicit rule search,"
msgstr ""
-"Sono stati trovati dei comandi per il file «%s» mediante una regola di "
-"ricerca implicita,"
+"È stato trovato un set di istruzioni per il file \"%s\" mediante una regola "
+"di ricerca implicita,"
-#: file.c:275
+#: file.c:277
#, c-format
-msgid "but `%s' is now considered the same file as `%s'."
-msgstr "ma il file «%s» adesso viene considerato lo stesso di «%s»."
-
-#: file.c:278
-#, fuzzy, c-format
-msgid "Recipe for `%s' will be ignored in favor of the one for `%s'."
-msgstr "I comandi per «%s» saranno ignorati in favore di quelli per «%s»."
+msgid "but '%s' is now considered the same file as '%s'."
+msgstr "ma ora \"%s\" viene considerato lo stesso file di \"%s\"."
-#: file.c:298
+#: file.c:280
#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
+msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
msgstr ""
-"impossibile rinominare la regola \"single-colon\" «%s» con la regola \"double-"
-"colon\" «%s»"
+"Il set di istruzioni per \"%s\" verrà ignorato in favore di quello per \"%s"
+"\"."
-#: file.c:303
+#: file.c:300
#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
+msgid "can't rename single-colon '%s' to double-colon '%s'"
msgstr ""
-"impossibile rinominare la regola \"double-colon\" «%s» con la regola \"single-"
-"colon\" «%s»"
+"impossibile rinominare la regola \"due punti\" \"%s\" con la regola \"doppio "
+"due punti\" \"%s\""
-#: file.c:392
+#: file.c:305
#, c-format
-msgid "*** Deleting intermediate file `%s'"
-msgstr "*** Eliminazione del file intermedio «%s»"
+msgid "can't rename double-colon '%s' to single-colon '%s'"
+msgstr ""
+"impossibile rinominare la regola \"doppio due punti\" \"%s\" con la regola "
+"\"due punti\" \"%s\""
#: file.c:396
+#, c-format
+msgid "*** Deleting intermediate file '%s'"
+msgstr "*** Eliminazione del file intermedio \"%s\""
+
+#: file.c:400
msgid "Removing intermediate files...\n"
msgstr "Rimozione dei file intermedi...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
-msgstr "%s: Intervallo errato per la marcatura temporale; sostituzione di %s"
+msgstr "%s: intervallo errato per la marcatura temporale; sostituzione di %s"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "Ora corrente"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
msgstr "# Non è un obiettivo:"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
msgstr "# File \"precious\" (prerequisito di .PRECIOUS)."
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
msgstr "# Obiettivo \"phony\" (prerequisito di .PHONY)."
-#: file.c:933
-#, fuzzy
+#: file.c:958
msgid "# Command line target."
msgstr "# Obiettivo a riga di comando."
-#: file.c:935
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
-msgstr "# Makefile predefiniti oppure un makefile -include/sinclude."
+msgstr "# Un makefile predefinito, da MAKEFILES, o da -include/sinclude."
-#: file.c:937
+#: file.c:962
+msgid "# Builtin rule"
+msgstr "# Regola incorporata"
+
+#: file.c:964
msgid "# Implicit rule search has been done."
-msgstr "# Regola di ricerca implicita completate."
+msgstr "# Regola di ricerca implicita completata."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
-msgstr "# Regola di ricerca implicita non completate."
+msgstr "# Regola di ricerca implicita non completata."
-#: file.c:940
+#: file.c:967
#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
-msgstr "# Radice del pattern implicita/statica: «%s»\n"
+msgid "# Implicit/static pattern stem: '%s'\n"
+msgstr "# Stem implicito/statico del modello: \"%s\"\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
msgstr "# Il file è un prerequisito intermedio."
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
msgstr "# Inoltre, genera:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
msgstr "# Ora di modifica mai controllata."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# Il file non esiste."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr "# Il file è molto vecchio."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr "# Ultima modifica %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# Il file è stato aggiornato."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# Il file non è stato aggiornato."
-#: file.c:968
-#, fuzzy
+#: file.c:995
msgid "# Recipe currently running (THIS IS A BUG)."
-msgstr "# Comandi correntemente in esecuzione (QUESTO È UN BUG)."
+msgstr "# Set di istruzioni attualmente in esecuzione (QUESTO È UN BUG)."
-#: file.c:971
-#, fuzzy
+#: file.c:998
msgid "# Dependencies recipe running (THIS IS A BUG)."
-msgstr "# Dipendenze dei comandi in esecuzione (QUESTO È UN BUG)."
+msgstr "# Dipendenze del set di istruzioni in esecuzione (QUESTO È UN BUG)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
msgstr "# Aggiornato con successo."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
msgstr "# Richiede di essere aggiornato (-q è impostato)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr "# Aggiornamento non riuscito."
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# Valore non valido nel membro «update_status»"
+#: file.c:1019
+msgid "# Invalid value in 'command_state' member!"
+msgstr "# Valore illecito nel membro \"command_state\"!"
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
-msgstr "# Valore non valido nel membro «command_state»"
-
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -354,136 +361,189 @@ msgstr ""
"\n"
"# File"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
"# "
msgstr ""
"\n"
-"# statistiche della tabella di hash dei file:\n"
+"# statistiche tabella hash dei file:\n"
"# "
-#: function.c:758
-msgid "non-numeric first argument to `word' function"
-msgstr "primo argomento non numerico per la funzione word"
+#: file.c:1051
+#, c-format
+msgid "%s: Field '%s' not cached: %s"
+msgstr "%s: Campo \"%s\" non memorizzato: %s"
-#: function.c:763
-msgid "first argument to `word' function must be greater than 0"
-msgstr "il primo argomento per la funzione word deve essere maggiore di 0"
+#: function.c:742
+msgid "non-numeric first argument to 'word' function"
+msgstr "primo argomento non numerico per la funzione \"word\""
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
-msgstr "primo argomento non numerico per la funzione wordlist"
+#: function.c:747
+msgid "first argument to 'word' function must be greater than 0"
+msgstr "il primo argomento per la funzione \"word\" deve essere maggiore di 0"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
-msgstr "secondo argomento non numerico per la funzione wordlist"
+#: function.c:767
+msgid "non-numeric first argument to 'wordlist' function"
+msgstr "primo argomento non numerico per la funzione \"wordlist\""
-#: function.c:1458
-#, fuzzy, c-format
-msgid "windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"
-msgstr "create_child_process: DuplicateHandle(In) fallita (e=%ld)\n"
+#: function.c:769
+msgid "non-numeric second argument to 'wordlist' function"
+msgstr "secondo argomento non numerico per la funzione \"wordlist\""
-#: function.c:1469
-#, fuzzy, c-format
-msgid "windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr "create_child_process: DuplicateHandle(Err) fallita (e=%ld)\n"
+#: function.c:1460
+#, c-format
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
+msgstr "windows32_openpipe: DuplicateHandle(In) non riuscita (e=%ld)\n"
-#: function.c:1474
+#: function.c:1483
+#, c-format
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
+msgstr "windows32_open_pipe: DuplicateHandle(Err) non riuscita (e=%ld)\n"
+
+#: function.c:1490
#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
-msgstr "CreatePipe() fallita (e=%ld)\n"
+msgstr "CreatePipe() non riuscita (e=%ld)\n"
-#: function.c:1479
-#, fuzzy
+#: function.c:1498
msgid "windows32_openpipe(): process_init_fd() failed\n"
-msgstr "windows32_openpipe (): process_init_fd() fallita\n"
+msgstr "windows32_openpipe(): process_init_fd() non riuscita\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr "Pulitura del file batch temporaneo %s\n"
-#: function.c:2150
+#: function.c:2151
#, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
-msgstr "numero di argomenti non sufficienti (%d) per la funzione «%s»"
+msgid "open: %s: %s"
+msgstr "apertura: %s: %s"
-#: function.c:2162
+#: function.c:2158
#, c-format
-msgid "unimplemented on this platform: function `%s'"
-msgstr "non implementata su questa architettura: funzione «%s»"
+msgid "write: %s: %s"
+msgstr "scrittura: %s: %s"
-#: function.c:2212
+#: function.c:2164
#, c-format
-msgid "unterminated call to function `%s': missing `%c'"
-msgstr "chiamata non terminata per la funzione «%s»: «%c» mancante"
+msgid "Invalid file operation: %s"
+msgstr "Operazione sui file non valida: %s"
-#: getopt.c:661
+#: function.c:2279
#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: l'opzione «%s» è ambigua\n"
+msgid "insufficient number of arguments (%d) to function '%s'"
+msgstr "numero di argomenti non sufficienti (%d) per la funzione \"%s\""
-#: getopt.c:685
+#: function.c:2291
#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: l'opzione «--%s» non ammette un argomento\n"
+msgid "unimplemented on this platform: function '%s'"
+msgstr "non implementata su questa piattaforma: funzione \"%s\""
-#: getopt.c:690
+#: function.c:2354
#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: l'opzione «%c%s» non ammette un argomento\n"
+msgid "unterminated call to function '%s': missing '%c'"
+msgstr "chiamata non terminata alla funzione \"%s\": \"%c\" mancante"
+
+#: function.c:2546
+msgid "Empty function name\n"
+msgstr ""
+
+#: function.c:2548
+#, fuzzy, c-format
+msgid "Invalid function name: %s\n"
+msgstr "Operazione sui file non valida: %s"
-#: getopt.c:707 getopt.c:880
+#: function.c:2550
#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: l'opzione «%s» richiede un argomento\n"
+msgid "Function name too long: %s\n"
+msgstr "Nome della funzione troppo lungo: %s\n"
-#: getopt.c:736
+#: function.c:2552
#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: «--%s» opzione sconosciuta\n"
+msgid "Invalid minimum argument count (%d) for function %s\n"
+msgstr "numero di argomenti non sufficienti (%d) per la funzione \"%s\"\n"
-#: getopt.c:740
+#: function.c:2555
#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: «%c%s» opzione sconosciuta\n"
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "numero di argomenti non sufficienti (%d) per la funzione \"%s\"\n"
-#: getopt.c:766
+#: getopt.c:659
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: l'opzione \"%s\" è ambigua\n"
+
+#: getopt.c:683
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: l'opzione \"--%s\" non ammette argomenti\n"
+
+#: getopt.c:688
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: l'opzione \"%c%s\" non ammette argomenti\n"
+
+#: getopt.c:705 getopt.c:878
+#, c-format
+msgid "%s: option '%s' requires an argument\n"
+msgstr "%s: l'opzione \"%s\" richiede un argomento\n"
+
+#: getopt.c:734
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: opzione \"--%s\" sconosciuta\n"
+
+#: getopt.c:738
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: opzione \"%c%s\" sconosciuta\n"
+
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
-msgstr "%s: opzione non valida -- %c\n"
+msgstr "%s: opzione illecita -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
-msgstr "%s: opzione non valida -- %c\n"
+msgstr "%s: opzione illecita -- %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: l'opzione richiede un argomento -- %c\n"
-#: getopt.c:846
+#: getopt.c:844
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: l'opzione \"-W %s\" è ambigua\n"
+
+#: getopt.c:862
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: l'opzione \"-W %s\" non ammette argomenti\n"
+
+#: guile.c:55
#, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
-msgstr "%s: l'opzione «-W %s» è ambigua\n"
+msgid "guile: Expanding '%s'\n"
+msgstr "guile: Espansione di \"%s\"\n"
-#: getopt.c:864
+#: guile.c:71
#, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr "%s: l'opzione «-W %s» non ammette un argomento\n"
+msgid "guile: Evaluating '%s'\n"
+msgstr "guile: Valutazione di \"%s\"\n"
#: hash.c:49
-#, fuzzy, c-format
+#, c-format
msgid "can't allocate %lu bytes for hash table: memory exhausted"
-msgstr "impossibile allocare %ld byte per la tabella hash: memoria esaurita"
+msgstr "impossibile allocare %lu byte per la tabella hash: memoria esaurita"
#: hash.c:280
#, c-format
msgid "Load=%ld/%ld=%.0f%%, "
-msgstr "Load=%ld/%ld=%.0f%%, "
+msgstr "Carico=%ld/%ld=%.0f%%, "
#: hash.c:282
#, c-format
@@ -495,134 +555,156 @@ msgstr "Rehash=%d, "
msgid "Collisions=%ld/%ld=%.0f%%"
msgstr "Collisioni=%ld/%ld=%.0f%%"
-#: implicit.c:40
+#: implicit.c:38
#, c-format
-msgid "Looking for an implicit rule for `%s'.\n"
-msgstr "Ricerca di una regola implicita per «%s».\n"
+msgid "Looking for an implicit rule for '%s'.\n"
+msgstr "Ricerca di una regola implicita per \"%s\".\n"
-#: implicit.c:56
+#: implicit.c:54
#, c-format
-msgid "Looking for archive-member implicit rule for `%s'.\n"
+msgid "Looking for archive-member implicit rule for '%s'.\n"
msgstr ""
-"Ricerca di una regola implicita per «%s» usando il nome dell'archivio "
-"membro.\n"
+"Ricerca di una regola implicita per il membro di archivio per \"%s\".\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
-msgstr "Viene evitata la ricorsione della regola implicita.\n"
+msgstr "Evitata la ricorsione della regola implicita.\n"
+
+#: implicit.c:486
+#, c-format
+msgid "Stem too long: '%.*s'.\n"
+msgstr "Stem troppo lungo: \"%.*s\".\n"
#: implicit.c:491
#, c-format
-msgid "Trying pattern rule with stem `%.*s'.\n"
-msgstr "Viene tentata la regola del pattern con radice «%.*s».\n"
+msgid "Trying pattern rule with stem '%.*s'.\n"
+msgstr "Tentativo di usare la regola del modello con stem \"%.*s\".\n"
-#: implicit.c:674
+#: implicit.c:697
#, c-format
-msgid "Rejecting impossible rule prerequisite `%s'.\n"
-msgstr "Viene rifiutata la regola prerequisita \"impossible\" «%s».\n"
+msgid "Rejecting impossible rule prerequisite '%s'.\n"
+msgstr "Prerequisito impossibile \"%s\" della regola rifiutato.\n"
-#: implicit.c:675
+#: implicit.c:698
#, c-format
-msgid "Rejecting impossible implicit prerequisite `%s'.\n"
-msgstr "Viene rifiutato il prerequisito implicito \"impossible\" «%s».\n"
+msgid "Rejecting impossible implicit prerequisite '%s'.\n"
+msgstr "Prerequisito implicito impossibile \"%s\" rifiutato.\n"
-#: implicit.c:688
+#: implicit.c:711
#, c-format
-msgid "Trying rule prerequisite `%s'.\n"
-msgstr "Viene tentata la regola prerequisita «%s».\n"
+msgid "Trying rule prerequisite '%s'.\n"
+msgstr "Tentativo di usare il prerequisito della regola \"%s\".\n"
-#: implicit.c:689
+#: implicit.c:712
#, c-format
-msgid "Trying implicit prerequisite `%s'.\n"
-msgstr "Viene tentato il prerequisito implicito «%s».\n"
+msgid "Trying implicit prerequisite '%s'.\n"
+msgstr "Tentativo di usare il prerequisito implicito \"%s\".\n"
-#: implicit.c:728
+#: implicit.c:751
#, c-format
-msgid "Found prerequisite `%s' as VPATH `%s'\n"
-msgstr "Trovato il prerequisito «%s» come VPATH «%s»\n"
+msgid "Found prerequisite '%s' as VPATH '%s'\n"
+msgstr "Trovato il prerequisito \"%s\" come VPATH \"%s\"\n"
-#: implicit.c:742
+#: implicit.c:765
#, c-format
-msgid "Looking for a rule with intermediate file `%s'.\n"
-msgstr "Ricerca di una regola con il \"file intermedio\" «%s».\n"
+msgid "Looking for a rule with intermediate file '%s'.\n"
+msgstr "Ricerca di una regola con il file intermedio \"%s\".\n"
-#: job.c:335
+#: job.c:361
msgid "Cannot create a temporary file\n"
-msgstr "Impossibile creare il file temporaneo\n"
+msgstr "Impossibile creare un file temporaneo\n"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] Errore 0x%x (ignorato)"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (creato dump del core)"
-#: job.c:450
+#: job.c:487
+msgid " (ignored)"
+msgstr " (ignorato)"
+
+#: job.c:491 job.c:1994
+msgid "<builtin>"
+msgstr "<incorporato>"
+
+#: job.c:501
#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] Errore 0x%x"
+msgid "%s: recipe for target '%s' failed"
+msgstr "%s: set di istruzioni per l'obiettivo \"%s\" non riuscito"
-#: job.c:454
+#: job.c:510
#, c-format
-msgid "[%s] Error %d (ignored)"
-msgstr "[%s] Errore %d (ignorato)"
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Errore 0x%x%s"
-#: job.c:455
+#: job.c:513
#, c-format
-msgid "*** [%s] Error %d"
-msgstr "*** [%s] Errore %d"
+msgid "%s[%s] Error %d%s"
+msgstr "%s[%s] Errore %d%s"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (core dumped)"
+#: job.c:517
+#, c-format
+msgid "%s[%s] %s%s%s"
+msgstr "%s[%s] %s%s%s"
-#: job.c:549
+#: job.c:609
msgid "*** Waiting for unfinished jobs...."
-msgstr "*** Attesa dei processi non terminati...."
+msgstr "*** Attesa per i processi non terminati...."
-#: job.c:579
-#, fuzzy, c-format
+#: job.c:639
+#, c-format
msgid "Live child %p (%s) PID %s %s\n"
-msgstr "Processo figlio vivo 0x%08lx (%s) PID %ld %s\n"
+msgstr "Processo figlio vivo %p (%s) con PID %s %s\n"
-#: 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 " (remoto)"
-#: job.c:758
-#, fuzzy, c-format
+#: job.c:829
+#, c-format
msgid "Reaping losing child %p PID %s %s\n"
-msgstr "Interruzione del processo figlio perdente 0x%08lx PID %ld %s\n"
+msgstr "Interruzione del processo figlio perdente %p con PID %s %s\n"
-#: job.c:759
-#, fuzzy, c-format
+#: job.c:830
+#, c-format
msgid "Reaping winning child %p PID %s %s\n"
-msgstr "Interruzione del processo figlio vincente 0x%08lx PID %ld %s\n"
+msgstr "Interruzione del processo figlio vincente %p con PID %s %s\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
msgstr "Pulitura del file batch temporaneo %s\n"
-#: job.c:861
-#, fuzzy, c-format
+#: job.c:843
+#, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "Pulitura del file batch temporaneo %s non riuscita (%d)\n"
+
+#: job.c:949
+#, c-format
msgid "Removing child %p PID %s%s from chain.\n"
msgstr ""
-"Rimozione del processo figlio 0x%08lx PID %ld%s dalla catena di esecuzione.\n"
+"Rimozione del processo figlio %p con PID %s%s dalla catena di esecuzione.\n"
-#: job.c:920
-msgid "write jobserver"
-msgstr "write jobserver"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr "rilascio del semaforo del jobserver: (Errore %ld: %s)"
-#: job.c:922
-#, fuzzy, c-format
+#: job.c:1011 job.c:1025
+#, c-format
msgid "Released token for child %p (%s).\n"
-msgstr "Token rilasciato per il processo figlio 0x%08lx (%s).\n"
+msgstr "Token rilasciato per il processo figlio %p (%s).\n"
-#: job.c:1453 job.c:2094
+#: job.c:1023
+msgid "write jobserver"
+msgstr "scrittura del jobserver"
+
+#: job.c:1612 job.c:2332
#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
-msgstr "process_easy() fallita all'avvio del processo (e=%ld)\n"
+msgstr "process_easy() non riuscita all'avvio del processo (e=%ld)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
@@ -631,148 +713,209 @@ msgstr ""
"\n"
"Contati %d argomenti nell'avvio fallito\n"
-#: job.c:1525
-#, fuzzy, c-format
+#: job.c:1685
+#, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
msgstr ""
-"Inserimento del processo figlio 0x%08lx (%s) PID %ld%s sulla catena di "
+"Inserimento del processo figlio %p (%s) con PID %s%s nella catena di "
"esecuzione.\n"
-#: job.c:1778
-#, fuzzy, c-format
+#: job.c:1953
+#, c-format
+msgid "semaphore or child process wait: (Error %ld: %s)"
+msgstr "attendere semaforo o processo figlio (Errore %ld: %s)"
+
+#: job.c:1967
+#, c-format
msgid "Obtained token for child %p (%s).\n"
-msgstr "Token ottenuto per il processo figlio 0x%08lx (%s).\n"
+msgstr "Token ottenuto per il processo figlio %p (%s).\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
msgstr "lettura della pipe dei processi"
-#: job.c:1798
+#: job.c:2003
#, c-format
-msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
-msgstr ""
+msgid "%s: target '%s' does not exist"
+msgstr "%s: l'obbiettivo \"%s\" non esiste"
-#: job.c:1802
-#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "L'obiettivo «%s» non necessita di essere rigenerato"
+#: job.c:2005
+#, c-format
+msgid "%s: update target '%s' due to: %s"
+msgstr "%s: aggiorna l'obbiettivo \"%s\" a causa di: %s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
-msgstr "impossibile applicare i limiti di carico su questo sistema operativo"
+msgstr ""
+"impossibile far rispettare i limiti di carico su questo sistema operativo"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
-msgstr "impossibile applicare il limite di carico: "
+msgstr "impossibile far rispettare il limite di carico: "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
-msgstr "nessun altro file gestito: impossibile duplicare lo standard input\n"
+msgstr ""
+"nessun'altra gestione del file: impossibile duplicare lo standard input\n"
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
-msgstr "nessun altro file gestito: impossibile duplicare lo standard output\n"
+msgstr ""
+"nessun'altra gestione del file: impossibile duplicare lo standard output\n"
-#: job.c:2015
+#: job.c:2223
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr ""
+"nessun'altra gestione del file: impossibile duplicare lo standard error\n"
+
+#: job.c:2238
msgid "Could not restore stdin\n"
msgstr "Impossibile ripristinare lo standard input\n"
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
msgstr "Impossibile ripristinare lo standard output\n"
-#: job.c:2127
-#, fuzzy, c-format
+#: job.c:2254
+msgid "Could not restore stderr\n"
+msgstr "Impossibile ripristinare lo standard error\n"
+
+#: job.c:2365
+#, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
msgstr ""
-"make ha interrotto il processo figlio con pid %ld, in attesa ancora del "
-"processo con pid %ld\n"
+"make ha interrotto il processo figlio con pid %s, è ancora in attesa del "
+"processo con pid %s\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
msgstr "%s: comando non trovato"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr "%s: shell non trovata"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
msgstr "spawnvpe: lo spazio dell'ambiente potrebbe essere esaurito"
-#: job.c:2461
+#: job.c:2709
#, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
-msgstr "$SHELL cambiata (era «%s», adesso è «%s»)\n"
+msgid "$SHELL changed (was '%s', now '%s')\n"
+msgstr "$SHELL cambiata (era \"%s\", adesso è \"%s\")\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr "Creazione del file batch temporaneo %s\n"
-#: job.c:2963
+#: job.c:3148
+msgid ""
+"Batch file contents:\n"
+"\t@echo off\n"
+msgstr ""
+"Contenuti del file batch:\n"
+"\t@echo off\n"
+
+#: job.c:3337
#, c-format
msgid ""
"Batch file contents:%s\n"
"\t%s\n"
msgstr ""
+"Contenuti del file batch:%s\n"
+"\t%s\n"
-#: job.c:3065
+#: job.c:3444
#, c-format
msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
msgstr ""
-"%s (riga %d) Contesto della shell errato (!unixy && !batch_mode_shell)\n"
+"%s (riga %d) contesto della shell errato (!unixy && !batch_mode_shell)\n"
+
+#: job.h:43
+msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
+msgstr "-O[TIPO] (--output-sync[=TIPO]) non è configurato per questa versione."
+
+#: load.c:53
+#, c-format
+msgid "Failed to open global symbol table: %s"
+msgstr "Apertura della tabella dei simboli globale non riuscita: %s"
+
+#: load.c:87
+#, c-format
+msgid "Loaded object %s is not declared to be GPL compatible"
+msgstr "L'oggetto caricato %s non è dichiarato compatibile con la licenza GPL"
+
+#: load.c:92
+#, c-format
+msgid "Failed to load symbol %s from %s: %s"
+msgstr "Caricamento del simbolo %s da %s non riuscito: %s"
-#: main.c:303
+#: load.c:136
+#, c-format
+msgid "Empty symbol name for load: %s"
+msgstr "Nome del simbolo vuoto per il caricamento: %s"
+
+#: load.c:191
+#, c-format
+msgid "Loading symbol %s from %s\n"
+msgstr "Caricamento del simbolo %s da %s\n"
+
+#: load.c:229
+msgid "The 'load' operation is not supported on this platform."
+msgstr "L'operazione \"load\" non è supportata su questa piattaforma."
+
+#: main.c:312
msgid "Options:\n"
msgstr "Opzioni:\n"
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
msgstr " -b, -m Ignorato per compatibilità.\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr ""
-" -B, --always-make Genera tutti gli obbiettivi "
-"incondizionatamente\n"
+" -B, --always-make Genera tutti gli obiettivi "
+"incondizionatamente.\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
msgstr ""
" -C DIRECTORY, --directory=DIRECTORY\n"
-" Cambia in DIRECTORY prima di fare qualunque "
+" Cambia DIRECTORY prima di fare qualunque "
"cosa.\n"
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
-msgstr " -d Mostra informazioni di debug.\n"
+msgstr " -d Mostra molte informazioni di debug.\n"
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
" --debug[=FLAGS] Mostra diversi tipi di informazioni di debug.\n"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
msgstr ""
" -e, --environment-overrides\n"
-" Le variabili d'ambiente sovrascrivono i "
+" Le variabili ambiente sovrascrivono i "
"makefile.\n"
-#: main.c:318
+#: main.c:327
msgid ""
" --eval=STRING Evaluate STRING as a makefile statement.\n"
msgstr ""
+" --eval=TESTO Analizza STRINGA come estratta dal makefile.\n"
-#: main.c:320
+#: main.c:329
msgid ""
" -f FILE, --file=FILE, --makefile=FILE\n"
" Read FILE as a makefile.\n"
@@ -780,39 +923,39 @@ msgstr ""
" -f FILE, --file=FILE, --makefile=FILE\n"
" Legge FILE come un makefile.\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
msgstr " -h, --help Mostra questo messaggio ed esce.\n"
-#: main.c:325
-#, fuzzy
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
-msgstr " -i, --ignore-errors Ignora gli errori dei comandi.\n"
+msgstr ""
+" -i, --ignore-errors Ignora gli errori dai set di istruzioni.\n"
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
msgstr ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
-" Cerca DIRECTORY per i makefile inclusi.\n"
+" Cerca nella DIRECTORY per i makefile inclusi.\n"
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
msgstr ""
-" -j [N], --jobs[=N] Permette N processi in una volta; infiniti "
-"processi senza argomento.\n"
+" -j [N], --jobs[=N] Permette N processi alla volta; infiniti se "
+"non viene specificato l'argomento.\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 Continua l'esecuzione quando alcuni obbiettivi "
-"non possono essere creati.\n"
+" -k, --keep-going Continua l'esecuzione quando non è possibile "
+"creare alcuni obiettivi.\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 "
@@ -820,9 +963,9 @@ msgid ""
msgstr ""
" -l [N], --load-average[=N], --max-load[=N]\n"
" Non avvia processi multipli a meno che il "
-"carico di lavoro è sotto N.\n"
+"carico di lavoro non sia sotto N.\n"
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
@@ -830,57 +973,63 @@ msgstr ""
" -L, --check-symlink-times Usa il più recente mtime tra i collegamenti "
"simbolici e l'obiettivo.\n"
-#: main.c:339
-#, fuzzy
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
"them.\n"
msgstr ""
" -n, --just-print, --dry-run, --recon\n"
-" Non esegue alcun comando; li mostra "
+" Non esegue alcun set di istruzioni; lo stampa "
"solamente.\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 "
"it.\n"
msgstr ""
" -o FILE, --old-file=FILE, --assume-old=FILE\n"
-" Considera FILE come molto vecchio e non "
+" Considera il FILE come molto vecchio e non "
"riesegue make.\n"
-#: main.c:345
+#: main.c:354
+msgid ""
+" -O[TYPE], --output-sync[=TYPE]\n"
+" Synchronize output of parallel jobs by TYPE.\n"
+msgstr ""
+" -O[TIPO], --output-sync[=TIPO]\n"
+" Sincronizza l'output dei processi paralleli "
+"dal TIPO.\n"
+
+#: main.c:357
msgid " -p, --print-data-base Print make's internal database.\n"
-msgstr " -p, --print-data-base Mostra il database interno di make.\n"
+msgstr " -p, --print-data-base Stampa il database interno di make.\n"
-#: main.c:347
-#, fuzzy
+#: main.c:359
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
msgstr ""
-" -q, --question Non avvia alcun comando; lo stato di uscita "
-"dice se è aggiornato.\n"
+" -q, --question Non avvia alcun set di istruzioni; lo stato di "
+"uscita indica se è aggiornato.\n"
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr ""
-" -r, --no-builtin-rules Disabilita le regole implicite integrate.\n"
+" -r, --no-builtin-rules Disabilita le regole implicite interne.\n"
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr ""
-" -R, --no-builtin-variables Dsabilita le impostazioni delle variabili "
-"integrate.\n"
+" -R, --no-builtin-variables Disabilita le impostazioni delle variabili "
+"interne.\n"
-#: main.c:353
-#, fuzzy
+#: main.c:365
msgid " -s, --silent, --quiet Don't echo recipes.\n"
-msgstr " -s, --silent, --quiet Non visualizza i comandi.\n"
+msgstr " -s, --silent, --quiet Non visualizza i set di istruzioni.\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
@@ -888,64 +1037,77 @@ msgstr ""
" -S, --no-keep-going, --stop\n"
" Disattiva l'opzione -k.\n"
-# # touch = in questo contesto è simile alla funzione del comando 'touch'
-#: main.c:358
+# ## touch = in questo contesto è simile alla funzione del comando 'touch'
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
-" -t, --touch Aggiorna la marcatura temporale degli "
-"obbiettivi senza ricrearli.\n"
+" -t, --touch Esegue il touch degli obiettivi invece di "
+"ricrearli.\n"
-#: main.c:360
+#: main.c:372
+msgid " --trace Print tracing information.\n"
+msgstr " --trace Stampa informazioni di tracciamento.\n"
+
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr ""
-" -v, --version Mostra il numero di versione di make ed esce.\n"
+" -v, --version Stampa il numero di versione di make ed esce.\n"
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
-msgstr " -w, --print-directory Mostra la directory corrente.\n"
+msgstr " -w, --print-directory Stampa la directory corrente.\n"
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
msgstr ""
-" --no-print-directory Disattiva l'opzione -w, anche se è stata "
+" --no-print-directory Disattiva l'opzione -w, anche se era stata "
"attivata implicitamente.\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"
msgstr ""
" -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
-" Considera FILE come infinitamente nuovo.\n"
+" Considera il FILE come nuovo di zecca.\n"
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
msgstr ""
-" --warn-undefined-variables Avvisa quando una variabile non definita viene "
-"referenziata.\n"
+" --warn-undefined-variables Avvisa quando viene referenziata una variabile "
+"non definita.\n"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
-msgstr "testo vuoto non valido come nome di file"
+msgstr "una stringa vuota non è valida come nome di file"
-#: main.c:650
+#: main.c:734
#, c-format
-msgid "unknown debug level specification `%s'"
-msgstr "livello di debug specificato sconosciuto «%s»"
+msgid "unknown debug level specification '%s'"
+msgstr "livello di debug specificato sconosciuto \"%s\""
-#: main.c:690
-#, fuzzy, c-format
+#: main.c:777
+#, c-format
+msgid "unknown output-sync type '%s'"
+msgstr "tipo di output-sync (sincronizzazione dell'output) sconosciuto \"%s\""
+
+#: main.c:787
+msgid "internal error: multiple --sync-mutex options"
+msgstr "errore interno: opzioni multiple per --sync-mutex"
+
+#: main.c:848
+#, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
msgstr ""
-"%s: interruzione/eccezione ricevuta (codice = 0x%lx, indirizzo = 0x%lx)\n"
+"%s: catturata una interruzione/eccezione (codice = 0x%lx, indirizzo = 0x%p)\n"
-#: main.c:697
-#, fuzzy, c-format
+#: main.c:855
+#, c-format
msgid ""
"\n"
"Unhandled exception filter called from program %s\n"
@@ -957,167 +1119,192 @@ msgstr ""
"Filtro eccezione non gestita chiamata dal programma %s\n"
"ExceptionCode = %lx\n"
"ExceptionFlags = %lx\n"
-"ExceptionAddress = %lx\n"
+"ExceptionAddress = 0x%p\n"
-#: main.c:705
-#, fuzzy, c-format
+#: main.c:863
+#, c-format
msgid "Access violation: write operation at address 0x%p\n"
-msgstr "Violazione accesso: operazione di scrittura all'indirizzo %lx\n"
+msgstr "Violazione accesso: operazione di scrittura all'indirizzo 0x%p\n"
-#: main.c:706
-#, fuzzy, c-format
+#: main.c:864
+#, c-format
msgid "Access violation: read operation at address 0x%p\n"
-msgstr "Violazione accesso: operazione di lettura all'indirizzo %lx\n"
+msgstr "Violazione accesso: operazione di lettura all'indirizzo 0x%p\n"
-#: main.c:781 main.c:792
-#, fuzzy, c-format
+#: main.c:940 main.c:955
+#, c-format
msgid "find_and_set_shell() setting default_shell = %s\n"
-msgstr "find_and_set_shell impostazione default_shell = %s\n"
+msgstr "find_and_set_shell() impostazione default_shell = %s\n"
-#: main.c:834
-#, fuzzy, c-format
+#: main.c:1008
+#, c-format
msgid "find_and_set_shell() path search set default_shell = %s\n"
msgstr ""
-"find_and_set_shell impostazione del percorso di ricerca default_shell = %s\n"
+"find_and_set_shell() impostazione del percorso di ricerca default_shell = "
+"%s\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr "%s viene sospeso per 30 secondi..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr "sleep(30) eseguito. Continuazione.\n"
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr "Il Makefile dallo standard input è stato specificato due volte."
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr "fopen (file temporaneo)"
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr "fwrite (file temporaneo)"
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "Processi paralleli (-j) non supportati su questa piattaforma."
-
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
-msgstr "Reimposto alla modalità a singolo processo (-j1)."
-
-#: main.c:1719
+#: main.c:1534
msgid "internal error: multiple --jobserver-fds options"
msgstr "errore interno: opzioni multiple per --jobserver-fds"
-#: main.c:1727
+#: main.c:1544
#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
-msgstr "errore interno: testo non valido per --jobserver-fds «%s»"
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
+msgstr ""
+"errore interno: impossibile aprire il semaforo del jobserver \"%s\": (Errore "
+"%ld: %s)"
+
+#: main.c:1547
+#, c-format
+msgid "Jobserver client (semaphore %s)\n"
+msgstr "Client del jobserver (semaforo %s)\n"
+
+#: main.c:1551
+#, c-format
+msgid "internal error: invalid --jobserver-fds string '%s'"
+msgstr "errore interno: stringa illecita per --jobserver-fds \"%s\""
-#: main.c:1730
+#: main.c:1554
#, c-format
msgid "Jobserver client (fds %d,%d)\n"
-msgstr ""
+msgstr "Client del jobserver (fds %d,%d)\n"
-#: main.c:1740
+#: main.c:1567
msgid "warning: -jN forced in submake: disabling jobserver mode."
msgstr ""
"attenzione: -jN forzata nel submake: disattivazione della modalità jobserver."
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
msgstr "jobserver duplicato"
-#: main.c:1753
+#: main.c:1586
msgid ""
-"warning: jobserver unavailable: using -j1. Add `+' to parent make rule."
+"warning: jobserver unavailable: using -j1. Add '+' to parent make rule."
msgstr ""
-"attenzione: jobserver non disponibile: viene usato -j1. Aggiungere «+» alla "
-"regola make superiore."
+"attenzione: jobserver non disponibile, viene usato -j1. Aggiungere \"+\" "
+"alla regola make superiore."
+
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "Il Makefile dallo standard input è stato specificato due volte."
-#: main.c:1777
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (file temporaneo)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (file temporaneo)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr "I processi paralleli (-j) non sono supportati su questa piattaforma."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "Reimpostazione alla modalità a singolo processo (-j1)."
+
+#: main.c:2006
+#, c-format
+msgid "Jobserver slots limited to %d\n"
+msgstr "Slot del jobserver limitati a %d\n"
+
+#: main.c:2012
+#, c-format
+msgid "creating jobserver semaphore: (Error %ld: %s)"
+msgstr "Creazione del semaforo del jobserver: (Errore %ld: %s)"
+
+#: main.c:2019
msgid "creating jobs pipe"
-msgstr "creazione pipe dei processi"
+msgstr "creazione della pipe dei processi"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
-msgstr "inizializzazione della pipe della modalità jobserver"
+msgstr "inizializzazione nella pipe della modalità jobserver"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
-msgstr ""
-"Collegamenti simbolici non supportati: disabilitazione dell'opzione -L."
+msgstr "Collegamenti simbolici non supportati: opzione -L disabilitata."
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr "Aggiornamento dei makefile....\n"
-#: main.c:1917
+#: main.c:2174
#, c-format
-msgid "Makefile `%s' might loop; not remaking it.\n"
-msgstr "Il makefile «%s» potrebbe ciclare all'infinito; non viene ricreato.\n"
+msgid "Makefile '%s' might loop; not remaking it.\n"
+msgstr ""
+"Il makefile \"%s\" potrebbe entrare in un ciclo all'infinito; make non "
+"rieseguito.\n"
-#: main.c:1996
+#: main.c:2253
#, c-format
-msgid "Failed to remake makefile `%s'."
-msgstr "Riesecuzione del makefile «%s» non riuscita."
+msgid "Failed to remake makefile '%s'."
+msgstr "Riesecuzione del makefile \"%s\" non riuscita."
-#: main.c:2013
+#: main.c:2270
#, c-format
-msgid "Included makefile `%s' was not found."
-msgstr "Il makefile «%s» incluso non è stato trovato."
+msgid "Included makefile '%s' was not found."
+msgstr "Il makefile \"%s\" incluso non è stato trovato."
-#: main.c:2018
+#: main.c:2275
#, c-format
-msgid "Makefile `%s' was not found"
-msgstr "Il makefile «%s» non è stato trovato."
+msgid "Makefile '%s' was not found"
+msgstr "Il makefile \"%s\" non è stato trovato"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
msgstr "Impossibile ritornare alla directory originale."
-#: main.c:2102
+#: main.c:2354
#, c-format
msgid "Re-executing[%u]:"
msgstr "Riesecuzione[%u]:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr "unlink (file temporaneo): "
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
msgstr ".DEFAULT_GOAL contiene più di un obiettivo"
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
msgstr "Nessun obiettivo specificato e nessun makefile trovato"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "Nessun obiettivo"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
-msgstr "Aggiornamento degli obbiettivi....\n"
+msgstr "Aggiornamento degli obiettivi....\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr ""
-"attenzione: Rilevato un tempo alterato. La costruzione potrebbe essere "
+"attenzione: rilevato un tempo alterato. La creazione potrebbe essere "
"incompleta."
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
msgstr "Uso: %s [opzioni] [obiettivo] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
@@ -1126,7 +1313,7 @@ msgstr ""
"\n"
"Questo programma è stato compilato per %s\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
@@ -1135,37 +1322,32 @@ msgstr ""
"\n"
"Questo programma è stato compilato per %s (%s)\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
-msgstr "Segnalare i bug all'indirizzo <bug-make@gnu.org>\n"
+msgstr "Segnalare i bug a <bug-make@gnu.org>\n"
-#: main.c:2562
-#, fuzzy, c-format
-msgid "the `%s%s' option requires a non-empty string argument"
-msgstr "l'opzione «-%c» richiede un argomento di testo non vuoto"
+#: main.c:2810
+#, c-format
+msgid "the '%s%s' option requires a non-empty string argument"
+msgstr "l'opzione \"%s%s\" richiede un argomento stringa non vuoto"
-#: main.c:2617
+#: main.c:2864
#, c-format
-msgid "the `-%c' option requires a positive integral argument"
-msgstr "l'opzione «-%c» richiede un argomento intero positivo"
+msgid "the '-%c' option requires a positive integer argument"
+msgstr "l'opzione \"-%c\" richiede un argomento intero positivo"
-# # anche se manca il verbo "to be" per la forma passiva inglese, traduco in italiano come ci fosse
-#: main.c:3054
-#, fuzzy, c-format
+#: main.c:3253
+#, c-format
msgid "%sBuilt for %s\n"
-msgstr ""
-"\n"
-"%sQuesto programma è stato compilato per %s\n"
+msgstr "%sCompilato per %s\n"
-#: main.c:3056
-#, fuzzy, c-format
+#: main.c:3255
+#, c-format
msgid "%sBuilt for %s (%s)\n"
-msgstr ""
-"\n"
-"%s Questo programma è stato compilato per %s (%s)\n"
+msgstr "%sCompilato per %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."
@@ -1173,9 +1355,13 @@ msgid ""
"%sThis is free software: you are free to change and redistribute it.\n"
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
+"%s Licenza GPLv3+: GNU GPL versione 3 o successiva <http://gnu.org/licenses/"
+"gpl.html>.\n"
+"%s Questo programma è software libero: siete liberi di modificarlo e "
+"ridistribuirlo.\n"
+"%s Non c'è ALCUNA GARANZIA, per quanto consentito dalle vigenti normative.\n"
-# # «%s» è un tipo ctime(3)
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
@@ -1184,116 +1370,116 @@ msgstr ""
"\n"
"# Generazione del database delle informazioni, creato il %s"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
"# Finished Make data base on %s\n"
msgstr ""
"\n"
-"# Fine generazione del database il %s\n"
-
-#: main.c:3237
-#, fuzzy, c-format
-msgid "%s: Entering an unknown directory\n"
-msgstr "%s: entrata directory sconosciuta\n"
-
-#: main.c:3239
-#, fuzzy, c-format
-msgid "%s: Leaving an unknown directory\n"
-msgstr "%s: uscita directory sconosciuta\n"
-
-#: main.c:3242
-#, fuzzy, c-format
-msgid "%s: Entering directory `%s'\n"
-msgstr "%s: entrato nella directory «%s»\n"
-
-#: main.c:3245
-#, fuzzy, c-format
-msgid "%s: Leaving directory `%s'\n"
-msgstr "%s: uscito dalla directory «%s»\n"
+"# Generazione del database completata il %s\n"
-#: main.c:3250
-#, fuzzy, c-format
-msgid "%s[%u]: Entering an unknown directory\n"
-msgstr "%s[%u]: entrata nella directory sconosciuta\n"
-
-#: main.c:3253
-#, fuzzy, c-format
-msgid "%s[%u]: Leaving an unknown directory\n"
-msgstr "%s[%u]: uscita dalla directory sconosciuta"
-
-#: main.c:3257
-#, fuzzy, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
-msgstr "%s[%u]: entrata nella directory «%s»\n"
-
-#: main.c:3260
-#, fuzzy, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
-msgstr "%s[%u]: uscita dalla directory «%s»\n"
-
-#: misc.c:316
-msgid ". Stop.\n"
-msgstr ". Stop.\n"
-
-#: misc.c:337
+#: misc.c:201
#, c-format
msgid "Unknown error %d"
msgstr "Errore %d sconosciuto"
-#: misc.c:347
-#, c-format
-msgid "%s%s: %s"
-msgstr "%s%s: %s"
-
-#: misc.c:355
-#, 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
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
msgid "virtual memory exhausted"
msgstr "memoria virtuale esaurita"
-#: misc.c:708
+#: misc.c:522
#, c-format
msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
msgstr "%s: utente %lu (reale %lu), gruppo %lu (reale %lu)\n"
-#: misc.c:729
+#: misc.c:543
msgid "Initialized access"
msgstr "Accesso inizializzato"
-#: misc.c:808
+#: misc.c:622
msgid "User access"
msgstr "Accesso utente"
-#: misc.c:856
+#: misc.c:670
msgid "Make access"
-msgstr "Accesso Make"
+msgstr "Accesso make"
-#: misc.c:890
+#: misc.c:704
msgid "Child access"
msgstr "Accesso processo figlio"
-#: misc.c:954
+#: output.c:128
+#, c-format
+msgid "%s: Entering an unknown directory\n"
+msgstr "%s: ingresso in una directory sconosciuta\n"
+
+#: output.c:130
+#, c-format
+msgid "%s: Leaving an unknown directory\n"
+msgstr "%s: uscita dalla directory sconosciuta\n"
+
+#: output.c:133
+#, c-format
+msgid "%s: Entering directory '%s'\n"
+msgstr "%s: ingresso nella directory \"%s\"\n"
+
+#: output.c:135
+#, c-format
+msgid "%s: Leaving directory '%s'\n"
+msgstr "%s: uscita dalla directory \"%s\"\n"
+
+#: output.c:139
+#, c-format
+msgid "%s[%u]: Entering an unknown directory\n"
+msgstr "%s[%u]: ingresso in una directory sconosciuta\n"
+
+#: output.c:141
+#, c-format
+msgid "%s[%u]: Leaving an unknown directory\n"
+msgstr "%s[%u]: uscita dalla directory sconosciuta\n"
+
+#: output.c:144
+#, c-format
+msgid "%s[%u]: Entering directory '%s'\n"
+msgstr "%s[%u]: ingresso nella directory \"%s\"\n"
+
+#: output.c:146
+#, c-format
+msgid "%s[%u]: Leaving directory '%s'\n"
+msgstr "%s[%u]: uscita dalla directory \"%s\"\n"
+
+#: output.c:515
#, c-format
msgid "write error: %s"
msgstr "errore in scrittura: %s"
-#: misc.c:956
+#: output.c:517
msgid "write error"
msgstr "errore in scrittura"
-#: read.c:179
+#: output.c:740
+msgid ". Stop.\n"
+msgstr ". Arresto.\n"
+
+#: output.c:751
+#, c-format
+msgid "%s%s: %s"
+msgstr "%s%s: %s"
+
+#: output.c:759
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: read.c:180
msgid "Reading makefiles...\n"
msgstr "Lettura dei makefile...\n"
#: read.c:333
#, c-format
-msgid "Reading makefile `%s'"
-msgstr "Lettura del makefile «%s»"
+msgid "Reading makefile '%s'"
+msgstr "Lettura del makefile \"%s\""
#: read.c:335
#, c-format
@@ -1313,334 +1499,352 @@ msgstr " (ignora)"
#: read.c:341
#, c-format
msgid " (no ~ expansion)"
-msgstr " (nessuna sostituzione per il carattere «~»)"
+msgstr " (nessuna espansione per \"~\")"
-#: read.c:759
+#: read.c:652
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile '%s'\n"
+msgstr "UTF-8 BOM nel makefile \"%s\" saltato\n"
+
+#: read.c:655
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile buffer\n"
+msgstr "UTF-8 BOM nel makefile buffer saltato\n"
+
+#: read.c:786
msgid "invalid syntax in conditional"
-msgstr "sintassi non valida nella condizione"
+msgstr "sintassi illecita nel condizionale"
+
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr "%s: caricamento non riuscito"
-#: read.c:891
-#, fuzzy
+#: read.c:987
msgid "recipe commences before first target"
-msgstr "i comandi iniziano prima del primo obiettivo"
+msgstr "il set di istruzioni inizia prima del primo obiettivo"
-#: read.c:940
-#, fuzzy
+#: read.c:1036
msgid "missing rule before recipe"
-msgstr "regola assente prima dei comandi"
+msgstr "regola mancante prima del set di istruzioni"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
-msgstr "separatore %s assente"
+msgstr "separatore %s mancante"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
-msgstr " (si intendeva dire un carattere tabulatore invece di otto spazi?)"
+msgstr " (si intendeva TAB invece di 8 spazi?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
-msgstr "obiettivo del pattern assente"
+msgstr "modello mancante per l'obiettivo"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
-msgstr "obiettivo dei pattern multiplo"
+msgstr "modelli multipli per l'obiettivo"
-#: read.c:1169
+#: read.c:1269
#, c-format
-msgid "target pattern contains no `%%'"
-msgstr "obiettivo del pattern non contiene «%%»"
+msgid "target pattern contains no '%%'"
+msgstr "il modello dell'obiettivo non contiene alcun \"%%\""
-#: read.c:1293
-msgid "missing `endif'"
-msgstr "«endif» assente"
+#: read.c:1391
+msgid "missing 'endif'"
+msgstr "\"endif\" mancante"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
-msgstr "nome della variabile vuoto"
+msgstr "nome vuoto della variabile"
-#: read.c:1367
-#, fuzzy
-msgid "extraneous text after `define' directive"
-msgstr "Testo estraneo dopo la direttiva «endef»"
+#: read.c:1465
+msgid "extraneous text after 'define' directive"
+msgstr "testo non pertinente dopo la direttiva \"define\""
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
-msgstr "«endef» assente, «define» non terminato"
+#: read.c:1490
+msgid "missing 'endef', unterminated 'define'"
+msgstr "\"endef\" mancante, \"define\" non terminato"
-#: read.c:1420
-#, fuzzy
-msgid "extraneous text after `endef' directive"
-msgstr "Testo estraneo dopo la direttiva «endef»"
+#: read.c:1518
+msgid "extraneous text after 'endef' directive"
+msgstr "testo non pertinente dopo la direttiva \"endef\""
-#: read.c:1490
+#: read.c:1589
#, c-format
-msgid "Extraneous text after `%s' directive"
-msgstr "Testo estraneo dopo la direttiva «%s»"
+msgid "extraneous text after '%s' directive"
+msgstr "testo non pertinente dopo la direttiva \"%s\""
-#: read.c:1499 read.c:1513
+#: read.c:1598 read.c:1612
#, c-format
-msgid "extraneous `%s'"
-msgstr "«%s» estraneo"
+msgid "extraneous '%s'"
+msgstr "\"%s\" non pertinente"
-#: read.c:1518
-msgid "only one `else' per conditional"
-msgstr "un solo «else» per condizione"
+#: read.c:1617
+msgid "only one 'else' per conditional"
+msgstr "un solo \"else\" per condizionale"
-#: read.c:1797
+#: read.c:1892
msgid "Malformed target-specific variable definition"
-msgstr "Definizione della variabile \"target-specific\""
+msgstr "Definizione malformata della variabile specifica per l'obiettivo"
-#: read.c:1855
-#, fuzzy
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
-msgstr "i prerequisiti non possono essere definiti nei comandi degli script"
+msgstr "i prerequisiti non possono essere definiti nei set di istruzioni"
-#: read.c:1908
+#: read.c:2009
msgid "mixed implicit and static pattern rules"
-msgstr "regole del pattern implicite e statiche miste"
+msgstr "regole del modello implicite e statiche miste"
-#: read.c:1931 read.c:2112
+#: read.c:2032 read.c:2220
msgid "mixed implicit and normal rules"
msgstr "regole implicite e normali miste"
-#: read.c:1976
+#: read.c:2084
#, c-format
-msgid "target `%s' doesn't match the target pattern"
-msgstr "l'obiettivo «%s» non coincide con l'obiettivo pattern"
+msgid "target '%s' doesn't match the target pattern"
+msgstr ""
+"il \"%s\" dell'obiettivo non corrisponde al modello dell'obiettivo stesso"
-#: read.c:1991 read.c:2036
+#: read.c:2099 read.c:2144
#, c-format
-msgid "target file `%s' has both : and :: entries"
-msgstr "l'obiettivo file «%s» ha entrambe le voci : e ::"
+msgid "target file '%s' has both : and :: entries"
+msgstr "Il file dell'obiettivo \"%s\" contiene sia : che ::"
-#: read.c:1997
+#: read.c:2105
#, c-format
-msgid "target `%s' given more than once in the same rule."
-msgstr "l'obiettivo «%s» è stato passato più di una volta nella stessa regola."
+msgid "target '%s' given more than once in the same rule"
+msgstr ""
+"l'obiettivo \"%s\" è stato fornito più di una volta nella stessa regola"
-#: read.c:2006
-#, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
-msgstr "attenzione: sovrascrittura dei comandi per l'obiettivo «%s»"
+#: read.c:2114
+#, c-format
+msgid "warning: overriding recipe for target '%s'"
+msgstr ""
+"attenzione: sovrascrittura del set di istruzioni per l'obiettivo \"%s\""
-#: read.c:2009
-#, fuzzy, c-format
-msgid "warning: ignoring old recipe for target `%s'"
-msgstr "attenzione: scarto dei vecchi comandi per l'obiettivo «%s»"
+#: read.c:2117
+#, c-format
+msgid "warning: ignoring old recipe for target '%s'"
+msgstr ""
+"attenzione: ignorato il set di istruzioni obsoleto per l'obiettivo \"%s\""
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
msgstr ""
-"attenzione: è stato letto il carattere NUL; il resto della riga viene "
+"attenzione: è stato rilevato il carattere NUL; il resto della riga viene "
"ignorato"
-#: remake.c:234
+#: remake.c:232
#, c-format
-msgid "Nothing to be done for `%s'."
-msgstr "Nessuna operazione da eseguire per «%s»."
+msgid "Nothing to be done for '%s'."
+msgstr "Nessuna operazione da eseguire per \"%s\"."
-#: remake.c:235
+#: remake.c:233
#, c-format
-msgid "`%s' is up to date."
-msgstr "«%s» è aggiornato."
+msgid "'%s' is up to date."
+msgstr "\"%s\" è aggiornato."
-#: remake.c:306
+#: remake.c:305
#, c-format
-msgid "Pruning file `%s'.\n"
-msgstr "Il file «%s» è stato tagliato.\n"
+msgid "Pruning file '%s'.\n"
+msgstr "Pulizia del file \"%s\".\n"
-#: remake.c:359
+#: remake.c:377
#, c-format
-msgid "%sNo rule to make target `%s'%s"
-msgstr "%sNessuna regola per generare l'obiettivo «%s»%s"
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%s Nessuna regola per generare l'obiettivo \"%s\"%s"
-#: remake.c:361
+#: remake.c:379
#, c-format
-msgid "%sNo rule to make target `%s', needed by `%s'%s"
-msgstr "%sNessuna regola per generare l'obiettivo «%s», necessario per «%s»%s"
+msgid "%sNo rule to make target '%s', needed by '%s'%s"
+msgstr ""
+"%s Nessuna regola per generare l'obiettivo \"%s\", necessario per \"%s\"%s"
#: remake.c:413
#, c-format
-msgid "Considering target file `%s'.\n"
-msgstr "Considerato il file obiettivo «%s».\n"
+msgid "Considering target file '%s'.\n"
+msgstr "Considerato il file obiettivo \"%s\".\n"
#: remake.c:420
#, c-format
-msgid "Recently tried and failed to update file `%s'.\n"
-msgstr ""
-"L'aggiornamento del file «%s» è stato provato recentemente e non è riuscito.\n"
+msgid "Recently tried and failed to update file '%s'.\n"
+msgstr "Tentativo recente di aggiornamento del file \"%s\" non riuscito.\n"
#: remake.c:432
#, c-format
-msgid "File `%s' was considered already.\n"
-msgstr "Il file «%s» è stato già esaminato.\n"
+msgid "File '%s' was considered already.\n"
+msgstr "Il file \"%s\" è già stato esaminato.\n"
#: remake.c:442
#, c-format
-msgid "Still updating file `%s'.\n"
-msgstr "Aggiornamento ancora in corso del file «%s».\n"
+msgid "Still updating file '%s'.\n"
+msgstr "L'aggiornamento del file \"%s\" è ancora in corso.\n"
#: remake.c:445
#, c-format
-msgid "Finished updating file `%s'.\n"
-msgstr "Aggiornamento del file «%s» terminato.\n"
+msgid "Finished updating file '%s'.\n"
+msgstr "Aggiornamento del file \"%s\" terminato.\n"
#: remake.c:474
#, c-format
-msgid "File `%s' does not exist.\n"
-msgstr "Il file «%s» non esiste.\n"
+msgid "File '%s' does not exist.\n"
+msgstr "Il file \"%s\" non esiste.\n"
#: remake.c:481
#, 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 ""
-"*** Attenzione: il file .LOW_RESOLUTION_TIME «%s» ha un'alta risoluzione "
-"della marcatura temporale"
+"*** Attenzione: il file .LOW_RESOLUTION_TIME \"%s\" ha una marcatura "
+"temporale ad alta risoluzione"
-#: remake.c:494 remake.c:1016
+#: remake.c:494 remake.c:1019
#, c-format
-msgid "Found an implicit rule for `%s'.\n"
-msgstr "Trovata una regola implicita per «%s».\n"
+msgid "Found an implicit rule for '%s'.\n"
+msgstr "Trovata una regola implicita per \"%s\".\n"
-#: remake.c:496 remake.c:1018
+#: remake.c:496 remake.c:1021
#, c-format
-msgid "No implicit rule found for `%s'.\n"
-msgstr "Nessuna regola implicita trovata per «%s».\n"
+msgid "No implicit rule found for '%s'.\n"
+msgstr "Nessuna regola implicita trovata per \"%s\".\n"
#: remake.c:502
-#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
-msgstr "Uso dei comandi predefiniti per «%s».\n"
+#, c-format
+msgid "Using default recipe for '%s'.\n"
+msgstr "Uso del set di istruzioni predefinito per \"%s\".\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
msgstr "Dipendenza circolare %s <- %s scartata."
-#: remake.c:651
+#: remake.c:655
#, c-format
-msgid "Finished prerequisites of target file `%s'.\n"
-msgstr "Prerequisiti del file obiettivo «%s» terminati.\n"
+msgid "Finished prerequisites of target file '%s'.\n"
+msgstr "Prerequisiti del file obiettivo \"%s\" terminati.\n"
-#: remake.c:657
+#: remake.c:661
#, c-format
-msgid "The prerequisites of `%s' are being made.\n"
-msgstr "I prerequisiti di «%s» vengono generati.\n"
+msgid "The prerequisites of '%s' are being made.\n"
+msgstr "Generazione dei prerequisiti di \"%s\" in corso.\n"
-#: remake.c:670
+#: remake.c:674
#, c-format
-msgid "Giving up on target file `%s'.\n"
-msgstr "Abbandono del file obiettivo «%s».\n"
+msgid "Giving up on target file '%s'.\n"
+msgstr "Abbandono sul file obiettivo \"%s\".\n"
-#: remake.c:675
+#: remake.c:679
#, c-format
-msgid "Target `%s' not remade because of errors."
-msgstr "L'obiettivo «%s» non è stato rigenerato a causa degli errori."
+msgid "Target '%s' not remade because of errors."
+msgstr "L'obiettivo \"%s\" non è stato rigenerato a causa di errori."
-#: remake.c:727
+#: remake.c:731
#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
-msgstr "Il prerequisito «%s» è solo per l'obiettivo «%s».\n"
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
+msgstr "Il prerequisito \"%s\" è solo per l'obiettivo \"%s\".\n"
-#: remake.c:732
+#: remake.c:736
#, c-format
-msgid "Prerequisite `%s' of target `%s' does not exist.\n"
-msgstr "Il prerequisito «%s» dell'obiettivo «%s» non esiste.\n"
+msgid "Prerequisite '%s' of target '%s' does not exist.\n"
+msgstr "Il prerequisito \"%s\" dell'obiettivo \"%s\" non esiste.\n"
-#: remake.c:737
+#: remake.c:741
#, c-format
-msgid "Prerequisite `%s' is newer than target `%s'.\n"
-msgstr "Il prerequisito di «%s» è più nuovo dell'obiettivo «%s».\n"
+msgid "Prerequisite '%s' is newer than target '%s'.\n"
+msgstr "Il prerequisito \"%s\" è più nuovo di quello dell'obiettivo \"%s\".\n"
-#: remake.c:740
+#: remake.c:744
#, c-format
-msgid "Prerequisite `%s' is older than target `%s'.\n"
-msgstr "Il prerequisito «%s» è più vecchio dell'obiettivo «%s».\n"
+msgid "Prerequisite '%s' is older than target '%s'.\n"
+msgstr ""
+"Il prerequisito \"%s\" è più vecchio di quello dell'obiettivo \"%s\".\n"
-#: remake.c:758
+#: remake.c:762
#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
-msgstr "L'obiettivo «%s» è \"double-colon\" e non ha alcun prerequisito.\n"
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
+msgstr ""
+"L'obiettivo \"%s\" è \"doppio due punti\" e non ha alcun prerequisito.\n"
-#: remake.c:765
-#, fuzzy, c-format
-msgid "No recipe for `%s' and no prerequisites actually changed.\n"
-msgstr "Nessun comando per «%s» e nessun prerequisito attualmente cambiato.\n"
+#: remake.c:769
+#, c-format
+msgid "No recipe for '%s' and no prerequisites actually changed.\n"
+msgstr ""
+"Nessun set di istruzioni per \"%s\" e nessun prerequisito effettivamente "
+"cambiato.\n"
-#: remake.c:770
+#: remake.c:774
#, c-format
-msgid "Making `%s' due to always-make flag.\n"
-msgstr "Generazione di «%s» a causa dell'opzione \"always-make\".\n"
+msgid "Making '%s' due to always-make flag.\n"
+msgstr "Generazione di \"%s\" a causa del flag \"always-make\".\n"
-#: remake.c:778
+#: remake.c:782
#, c-format
-msgid "No need to remake target `%s'"
-msgstr "L'obiettivo «%s» non necessita di essere rigenerato"
+msgid "No need to remake target '%s'"
+msgstr "Non è necessario rigenerare l'obiettivo \"%s\""
-#: remake.c:780
+#: remake.c:784
#, c-format
-msgid "; using VPATH name `%s'"
-msgstr "; uso del nome VPATH «%s»"
+msgid "; using VPATH name '%s'"
+msgstr "; uso del nome VPATH \"%s\""
-#: remake.c:800
+#: remake.c:804
#, c-format
-msgid "Must remake target `%s'.\n"
-msgstr "L'obiettivo «%s» deve essere rigenerato.\n"
+msgid "Must remake target '%s'.\n"
+msgstr "L'obiettivo \"%s\" deve essere rigenerato.\n"
-#: remake.c:806
+#: remake.c:810
#, c-format
-msgid " Ignoring VPATH name `%s'.\n"
-msgstr " Ignoro il nome VPATH «%s».\n"
+msgid " Ignoring VPATH name '%s'.\n"
+msgstr " nome VPATH \"%s\" ignorato.\n"
-#: remake.c:815
-#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
-msgstr "I comandi di «%s» vengono eseguiti.\n"
+#: remake.c:819
+#, c-format
+msgid "Recipe of '%s' is being run.\n"
+msgstr "Esecuzione del set di istruzioni per \"%s\" in corso.\n"
-#: remake.c:822
+#: remake.c:826
#, c-format
-msgid "Failed to remake target file `%s'.\n"
-msgstr "Rigenerazione del file obiettivo «%s» non riuscita.\n"
+msgid "Failed to remake target file '%s'.\n"
+msgstr "Rigenerazione del file obiettivo \"%s\" non riuscita.\n"
-#: remake.c:825
+#: remake.c:829
#, c-format
-msgid "Successfully remade target file `%s'.\n"
-msgstr "File obiettivo «%s» rigenerato correttamente.\n"
+msgid "Successfully remade target file '%s'.\n"
+msgstr "File obiettivo \"%s\" rigenerato correttamente.\n"
-#: remake.c:828
+#: remake.c:832
#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
-msgstr "Il file obiettivo «%s» deve essere rigenerato con l'opzione -q.\n"
+msgid "Target file '%s' needs to be remade under -q.\n"
+msgstr ""
+"Il file obiettivo \"%s\" necessita di essere rigenerato con l'opzione -q.\n"
-#: remake.c:1024
+#: remake.c:1027
#, c-format
-msgid "Using default commands for `%s'.\n"
-msgstr "Uso dei comandi predefiniti per «%s».\n"
+msgid "Using default commands for '%s'.\n"
+msgstr "Uso dei comandi predefiniti per \"%s\".\n"
-#: remake.c:1357
+#: remake.c:1372
#, c-format
-msgid "Warning: File `%s' has modification time in the future"
-msgstr "Attenzione: il file «%s» ha il tempo di modifica nel futuro"
+msgid "Warning: File '%s' has modification time in the future"
+msgstr "Attenzione: il file \"%s\" ha un orario di modifica nel futuro"
-# # penso che la stringa "%.2g s" sia "%.2g is"
-#: remake.c:1370
-#, fuzzy, c-format
-msgid "Warning: File `%s' has modification time %s s in the future"
-msgstr "Attenzione: il file «%s» ha il tempo di modifica %.2g per il futuro"
+#: remake.c:1385
+#, c-format
+msgid "Warning: File '%s' has modification time %s s in the future"
+msgstr "Attenzione: il file \"%s\" ha un orario di modifica %s nel futuro"
-#: remake.c:1569
+#: remake.c:1583
#, c-format
-msgid ".LIBPATTERNS element `%s' is not a pattern"
-msgstr "l'elemento .LIBPATTERNS «%s» non è un pattern"
+msgid ".LIBPATTERNS element '%s' is not a pattern"
+msgstr "l'elemento .LIBPATTERNS \"%s\" non è un modello"
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
-msgstr "Le personalizzazioni non saranno esportate: %s\n"
+msgstr "Le personalizzazioni non verranno esportate: %s\n"
-#: rule.c:499
+#: rule.c:496
msgid ""
"\n"
"# Implicit Rules"
@@ -1648,15 +1852,15 @@ msgstr ""
"\n"
"# Regole implicite"
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
msgstr ""
"\n"
-"# Nessuna regola implicita."
+"# Regole non implicite."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -1665,247 +1869,266 @@ msgstr ""
"\n"
"# %u regole implicite, %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr " terminale."
-#: rule.c:534
-#, fuzzy, c-format
+#: rule.c:531
+#, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
-msgstr "BUG: num_pattern_rules errato! %u != %u"
+msgstr "BUG: num_pattern_rules è errato! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "segnale sconosciuto"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
-msgstr "Riaggancia"
+msgstr "Chiusura"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
-msgstr "Interrompi"
+msgstr "Interruzione"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
-msgstr "Esci"
+msgstr "Uscita (con core dump)"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
-msgstr "Istruzione illegale"
+msgstr "Istruzione illecita"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
-msgstr "Intercetta traccia/punto di rottura"
+msgstr "Rilevato trace/breakpoint"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "Annullato"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
-msgstr "IOT trap"
+msgstr "Rilevato IOT"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
-msgstr "EMT trap"
+msgstr "Rilevato EMT"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
-msgstr "Eccezione virgola mobile"
+msgstr "Eccezione in virgola mobile"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "Ucciso"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
-msgstr "Errore del bus"
+msgstr "Errore di bus"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "Errore di segmentazione"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "Chiamata di sistema errata"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr "Pipe interrotta"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
-msgstr "Allarme"
+msgstr "Sveglia"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
msgstr "Terminato"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr "Segnale 1 definito dall'utente"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr "Segnale 2 definito dall'utente"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
msgstr "Processo figlio uscito"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
-msgstr "Blackout"
+msgstr "Mancanza di alimentazione elettrica"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
-msgstr "Fermato"
+msgstr "Fermato (da terminale)"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
-msgstr "Fermato (tty input)"
+msgstr "Fermato (input tty)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
-msgstr "Fermato (tty output)"
+msgstr "Fermato (output tty)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
-msgstr "Fermato (segnale)"
+msgstr "Fermato"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
-msgstr "Limite di tempo della CPU superato"
+msgstr "Limite di tempo CPU superato"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
-msgstr "Limite della dimensione dei file superato"
+msgstr "Superato il limite di dimensione file"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
-msgstr "Timer virtuale scaduto"
+msgstr "Timer virtuale terminato"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
-msgstr "Profiling timer scaduto"
+msgstr "Timer di profiling terminato"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
-msgstr "Finestra cambiata"
+msgstr "Finestra modificata"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
-msgstr "Continua"
+msgstr "Continuato"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
-msgstr "Condizioni I/O urgenti"
+msgstr "Condizioni di I/O urgente"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
-msgstr "I/O possibile"
+msgstr "I/O consentito"
-#: 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 "Risorsa persa"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "Segnale di pericolo"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr "Richiesta informazioni"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
-msgstr "Co-processore virgola mobile non disponibile"
+msgstr "Co-processore a virgola mobile non disponibile"
-#: strcache.c:235
-#, fuzzy, c-format
+#: strcache.c:236
+#, c-format
msgid ""
"\n"
-"%s # of strings in strcache: %d / lookups = %lu / hits = %lu\n"
+"%s No strcache buffers\n"
msgstr ""
"\n"
-"%s # di stringhe in strcache: %d\n"
+"%s buffer strcache assenti\n"
-#: strcache.c:237
-#, fuzzy, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
-msgstr "%s # di buffer strcache: %d\n"
+#: strcache.c:266
+#, c-format
+msgid ""
+"\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
+msgstr ""
+"\n"
+"%s buffer strcache: %lu (%lu) / stringhe = %lu / memorizzazione = %lu B / "
+"media = %lu B\n"
-#: strcache.c:239
-#, fuzzy, c-format
-msgid "%s strcache used: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+#: strcache.c:270
+#, c-format
+msgid ""
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
msgstr ""
-"%s dimensione strcache: totale = %d / massima = %d / minima = %d / media = %"
-"d\n"
+"%s buffer corrente: dimensione = %hu B / usato = %hu B / count = %hu / media "
+"= %hu B\n"
-#: strcache.c:241
-#, fuzzy, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+#: strcache.c:280
+#, c-format
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
+msgstr "%s altra usata: totale = %lu B / count = %lu / media = %lu B\n"
+
+#: strcache.c:283
+#, c-format
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
msgstr ""
-"%s strcache libera: totale = %d / massima = %d / minima = %d / media = %d\n"
+"%s altra libera: totale = %lu B / max = %lu B / min = %lu B / media = %hu B\n"
-#: strcache.c:244
-#, fuzzy
+#: strcache.c:287
+#, c-format
msgid ""
"\n"
-"# strcache hash-table stats:\n"
-"# "
+"%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
msgstr ""
"\n"
-"# statistiche della tabella di hash dei file:\n"
+"%s prestazioni strcache: lookups = %lu / hit rate = %lu%%\n"
+
+#: strcache.c:289
+msgid ""
+"# hash-table stats:\n"
+"# "
+msgstr ""
+"# statistiche della tabella hash:\n"
"# "
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "automatico"
+
+#: variable.c:1610
msgid "default"
msgstr "predefinito"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr "ambiente"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr "makefile"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
-msgstr "ambiente sotto l'opzione -e"
+msgstr "ambiente con l'opzione -e"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr "riga di comando"
-#: variable.c:1556
-msgid "`override' directive"
-msgstr "direttiva «override»"
-
-#: variable.c:1559
-msgid "automatic"
-msgstr "automatico"
+#: variable.c:1625
+msgid "'override' directive"
+msgstr "direttiva \"override\""
-#: variable.c:1570
+#: variable.c:1636
#, c-format
-msgid " (from `%s', line %lu)"
-msgstr " (da «%s», riga %lu)"
+msgid " (from '%s', line %lu)"
+msgstr " (da \"%s\", riga %lu)"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
-msgstr "# impostazione variabile delle statistiche della tabella di hash:\n"
+msgstr "# statistiche tabella di hash del set di variabili:\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1913,15 +2136,15 @@ msgstr ""
"\n"
"# Variabili\n"
-#: variable.c:1627
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
msgstr ""
"\n"
-"# Valori variabile \"pattern-specific\""
+"# Valori di variabile non specifici per il modello."
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
@@ -1929,101 +2152,103 @@ msgstr ""
"\n"
"# Nessun valore per la variabile \"pattern-specific\"."
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
"# %u pattern-specific variable values"
msgstr ""
"\n"
-"# %u valori della variabile \"pattern-specific\""
+"# %u valori di variabile specifici per il modello."
-#: variable.h:219
+#: variable.h:224
#, c-format
-msgid "warning: undefined variable `%.*s'"
-msgstr "attenzione: variabile «%.*s» non definita"
+msgid "warning: undefined variable '%.*s'"
+msgstr "attenzione: variabile \"%.*s\" non definita"
-#: vmsfunctions.c:92
-#, fuzzy, c-format
+#: vmsfunctions.c:91
+#, c-format
msgid "sys$search() failed with %d\n"
-msgstr "sys$search fallita con %d\n"
+msgstr "sys$search() non riuscita con %d\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
-msgstr "Attenzione: Redirezione vuota\n"
+msgstr "Attenzione: redirezione vuota\n"
-#: vmsjobs.c:184
+#: vmsjobs.c:178
#, c-format
-msgid "internal error: `%s' command_state"
-msgstr "errore interno: «%s» command_state"
+msgid "internal error: '%s' command_state"
+msgstr "errore interno: command_state \"%s\""
-#: vmsjobs.c:289
+#: vmsjobs.c:286
#, c-format
msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
-msgstr "-attenzione, potresti riabilitare la gestione di CTRL+Y dalla DCL.\n"
+msgstr ""
+"-attenzione, potrebbe essere necessario riabilitare la gestione di CTRL+Y da "
+"DCL.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
-msgstr "BUILTIN [%s][%s]\n"
+msgstr "[%s] INTERNO [%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
-msgstr "BUILTIN CD %s\n"
+msgstr "CD INTERNO %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
-msgstr "BUILTIN RM %s\n"
+msgstr "RM INTERNO %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
-msgstr "Comando interno «%s» sconosciuto\n"
+msgstr "Comando interno \"%s\" sconosciuto\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr "Errore, comando vuoto\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr "Input rediretto da %s\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr "Errore rediretto a %s\n"
-#: vmsjobs.c:523
-#, fuzzy, c-format
+#: vmsjobs.c:518
+#, c-format
msgid "Append output to %s\n"
-msgstr "Output rediretto a %s\n"
+msgstr "Accoda output a %s\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
msgstr "Output rediretto a %s\n"
-#: vmsjobs.c:599
+#: vmsjobs.c:593
#, c-format
msgid "Append %.*s and cleanup\n"
-msgstr ""
+msgstr "Accoda %.*s e pulisce\n"
-#: vmsjobs.c:606
+#: vmsjobs.c:600
#, c-format
msgid "Executing %s instead\n"
-msgstr "%s verrà invece eseguito\n"
+msgstr "Verrà invece eseguito %s\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
-msgstr "Error spawning, %d\n"
+msgstr "Errore nella generazione, %d\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
@@ -2031,59 +2256,64 @@ msgstr ""
"\n"
"# Percorsi di ricerca VPATH\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
-msgstr "# Nessun percorso di ricerca «vpath»."
+#: vpath.c:600
+msgid "# No 'vpath' search paths."
+msgstr "# Percorsi di ricerca \"vpath\" assenti."
-#: vpath.c:605
+#: vpath.c:602
#, c-format
msgid ""
"\n"
-"# %u `vpath' search paths.\n"
+"# %u 'vpath' search paths.\n"
msgstr ""
"\n"
-"# percorsi di ricerca «vpath» %u.\n"
+"# %u 'vpath' percorsi di ricerca.\n"
-#: vpath.c:608
+#: vpath.c:605
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
-"# Nessun percorso di ricerca generale (variabile \"VPATH\")."
+"# Percorso di ricerca non generale (variabile \"VPATH\")."
-#: vpath.c:614
+#: vpath.c:611
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
"# Percorso di ricerca generale (variabile \"VPATH\"):\n"
"# "
-#~ msgid "process_easy() failed failed to launch process (e=%ld)\n"
-#~ msgstr "process_easy() fallita all'avvio del processo (e=%ld)\n"
+#~ msgid "# Invalid value in 'update_status' member!"
+#~ msgstr "# Valore illecito nel membro \"update_status\"!"
-#~ msgid ""
-#~ "%sThis is free software; see the source for copying conditions.\n"
-#~ "%sThere is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
-#~ "%sPARTICULAR PURPOSE.\n"
-#~ msgstr ""
-#~ "%sQuesto è software libero; vedere il codice sorgente per le condizioni "
-#~ "di utilizzo.\n"
-#~ "%sNON c'è garanzia; neanche di COMMERCIABILITÀ o IDONEITÀ\n"
-#~ "%sPER UN PARTICOLARE SCOPO.\n"
+#~ msgid "unknown trace mode '%s'"
+#~ msgstr "modo di tracciamento \"%s\" sconosciuto"
-#~ msgid "extraneous `endef'"
-#~ msgstr "«endef» estraneo"
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] Errore 0x%x (ignorato)"
-#~ msgid "empty `override' directive"
-#~ msgstr "direttiva «override» vuota"
+#~ msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
+#~ msgstr ""
+#~ "Chiamata del set di istruzioni da %s:%lu per aggiornare l'obiettivo \"%s"
+#~ "\".\n"
-#~ msgid "invalid `override' directive"
-#~ msgstr "direttiva «override» non valida"
+#~ msgid "Invoking builtin recipe to update target `%s'.\n"
+#~ msgstr ""
+#~ "Chiamata del set di istruzioni interno per aggiornare l'obiettivo \"%s"
+#~ "\".\n"
-#~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
+#~ msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+#~ msgstr "%s # di buffer strcache: %d (* %d B/buffer = %d B)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "# strcache hash-table stats:\n"
+#~ "# "
#~ msgstr ""
-#~ "-attenzione, CTRL+Y lascierà il sottoprocesso (o i sottoprocessi).\n"
+#~ "\n"
+#~ "# statistiche tabella hash di strcache:\n"
+#~ "# "
diff --git a/po/ja.gmo b/po/ja.gmo
index 990a70f..7d94d20 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 1791f48..5e98fa6 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -1,123 +1,131 @@
-# Japanese message for make 3.80
-# Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
+# Japanese message catalog for make 3.82
+# Copyright (C) 2001, 2003, 2004, 2011 Free Software Foundation, Inc.
+# This file is distributed under the same license as the make package.
# GOTO Masanori <gotom@debian.or.jp>, 2003-2004.
# Daisuke Yamashita <yamad@mb.infoweb.ne.jp>, 2001.
# Thanks to NISHIJIMA Takanori
+# Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>, 2011
#
msgid ""
msgstr ""
-"Project-Id-Version: make 3.80\n"
+"Project-Id-Version: make 3.82\n"
"Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2010-07-28 01:42-0400\n"
-"PO-Revision-Date: 2004-05-18 00:47+0900\n"
-"Last-Translator: GOTO Masanori <gotom@debian.or.jp>\n"
+"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"PO-Revision-Date: 2011-08-28 01:14+0900\n"
+"Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
+"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=EUC-JP\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Basepath: /factory/ja-po/make/make-3.82\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 "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤µ¡Ç½¤ò»È¤ª¤¦¤È¤·¤Æ¤¤¤Þ¤¹: `%s'"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
msgstr "VMS ¤Ç¤Ï½ñ¸Ë¤Î¥á¥ó¥Ð¤ò touch ¤¹¤ëµ¡Ç½¤¬¤¢¤ê¤Þ¤»¤ó"
-#: 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: ½ñ¸Ë `%s' ¤¬¤¢¤ê¤Þ¤»¤ó"
-#: 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' ¤ÏÀµ¾ï¤Ê½ñ¸Ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: 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: ¥á¥ó¥Ð `%s' ¤Ï `%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: `%s' ¤Ø¤Î ar_member_touch ¤«¤é°Û¾ï¤ÊÃͤ¬ÊÖ¤ê¤Þ¤·¤¿"
-#: arscan.c:69
-#, fuzzy, c-format
+#: arscan.c:67
+#, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
-msgstr "lbr$set_module ¤¬¥â¥¸¥å¡¼¥ë¾ðÊó¤ÎÃê½Ð¤Ë¼ºÇÔ¤·¤Þ¤·¤¿. ¾õÂÖ = %d"
+msgstr "lbr$set_module() ¤¬¥â¥¸¥å¡¼¥ë¾ðÊó¤ÎÃê½Ð¤Ë¼ºÇÔ¤·¤Þ¤·¤¿. ¾õÂÖ = %d"
-#: arscan.c:175
-#, fuzzy, c-format
+#: arscan.c:173
+#, c-format
msgid "lbr$ini_control() failed with status = %d"
-msgstr "lbr$ini_control ¤¬¼ºÇÔ¤·¤Þ¤·¤¿. ¾õÂÖ = %d"
+msgstr "lbr$ini_control() ¤¬¼ºÇÔ¤·¤Þ¤·¤¿. ¾õÂÖ = %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 "¥é¥¤¥Ö¥é¥ê `%s' ¤ò³«¤±¤º, ¥á¥ó¥Ð `%s' ¤Î¸¡º÷¤¬¤Ç¤­¤Þ¤»¤ó"
-#: 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 "¥á¥ó¥Ð `%s'%s: %ld ¥Ð¥¤¥È at %ld (%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr " (̾Á°¤¬ÀÚ¤êµÍ¤á¤é¤ì¤¿¤«¤â)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " ÆüÉÕ %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d, gid = %d, mode = 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 "*** ̾̂.\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] ½ñ¸Ë¥á¥ó¥Ð `%s' ¤Ï¿ʬµ¶Êª¤Ç¤¹ ¡½ ºï½ü¤·¤Þ¤»¤ó¤Ç¤·¤¿"
-#: 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 "*** ½ñ¸Ë¥á¥ó¥Ð `%s' ¤Ï¿ʬµ¶Êª¤Ç¤¹ ¡½ ºï½ü¤·¤Þ¤»¤ó¤Ç¤·¤¿"
-#: commands.c:638
-#, c-format
-msgid "*** [%s] Deleting file `%s'"
+#: commands.c:646
+#, fuzzy, c-format
+msgid "*** [%s] Deleting file '%s'"
msgstr "*** [%s] ¥Õ¥¡¥¤¥ë `%s' ¤òºï½ü¤·¤Þ¤¹"
-#: commands.c:640
-#, c-format
-msgid "*** Deleting file `%s'"
+#: commands.c:648
+#, fuzzy, c-format
+msgid "*** Deleting file '%s'"
msgstr "*** ¥Õ¥¡¥¤¥ë `%s' ¤òºï½ü¤·¤Þ¤¹"
-#: commands.c:676
-#, fuzzy
+#: commands.c:684
msgid "# recipe to execute"
-msgstr "# ¼Â¹Ô¤¹¤ë¥³¥Þ¥ó¥É"
+msgstr "# ¼Â¹Ô¤¹¤ë¥ì¥·¥Ô"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr " (¥Ó¥ë¥È¥¤¥ó):"
-#: commands.c:681
-#, c-format
-msgid " (from `%s', line %lu):\n"
+#: commands.c:689
+#, fuzzy, c-format
+msgid " (from '%s', line %lu):\n"
msgstr " (`%s', %lu ¹ÔÌܤ«¤é):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -125,222 +133,222 @@ msgstr ""
"\n"
"# ¥Ç¥£¥ì¥¯¥È¥ê\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
msgstr "# %s: ¾õÂÖ¤òÄ´¤Ù¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
msgstr "# %s (key %s, mtime %d): ³«¤±¤Þ¤»¤ó¤Ç¤·¤¿.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
msgstr "# %s (device %d, inode [%d,%d,%d]): ³«¤±¤Þ¤»¤ó¤Ç¤·¤¿.\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
msgstr "# %s (device %ld, inode %ld): ³«¤±¤Þ¤»¤ó¤Ç¤·¤¿.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr "# %s (key %s, mtime %d): "
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
msgstr "# %s (device %d, inode [%d,%d,%d]): "
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
msgstr "# %s (device %ld, inode %ld): "
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "0"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " ¸Ä¤Î¥Õ¥¡¥¤¥ë, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "0"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
msgstr " ¸Ä¤ÎŬÍÑÉÔǽ¥Õ¥¡¥¤¥ë̾"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr " (¤³¤³¤Þ¤Ç¤Ë)."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
msgstr " ¸Ä¤ÎŬÍÑÉÔǽ¥Õ¥¡¥¤¥ë̾ (%lu ¸Ä¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ).\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 "ºÆµ¢ÅªÊÑ¿ô `%s' ¤¬(ºÇ½ªÅª¤Ë)¤½¤ì¼«¿È¤ò»²¾È¤·¤Æ¤¤¤Þ¤¹"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
msgstr "½ªÃ¼¤Î¤Ê¤¤ÊÑ¿ô»²¾È"
-#: file.c:267
+#: file.c:269
#, fuzzy, c-format
-msgid "Recipe was specified for file `%s' at %s:%lu,"
-msgstr "¥Õ¥¡¥¤¥ë `%s' ¤Ø¤Î¥³¥Þ¥ó¥É¤¬ %s:%lu ¤Ç»ØÄꤵ¤ì¤Þ¤·¤¿."
+msgid "Recipe was specified for file '%s' at %s:%lu,"
+msgstr "¥Õ¥¡¥¤¥ë `%s' ¤Î¤¿¤á¤Î¤Î¥ì¥·¥Ô¤¬ %s:%lu ¤Ç»ØÄꤵ¤ì¤Þ¤·¤¿,"
-#: file.c:272
+#: file.c:274
#, fuzzy, c-format
-msgid "Recipe for file `%s' was found by implicit rule search,"
-msgstr "¥Õ¥¡¥¤¥ë `%s' ¤Ø¤Î¥³¥Þ¥ó¥É¤Ï°ÅÌۥ롼¥ë¤Îõº÷¤Ç¸«¤Ä¤«¤ê¤Þ¤·¤¿,"
+msgid "Recipe for file '%s' was found by implicit rule search,"
+msgstr "¥Õ¥¡¥¤¥ë `%s' ¤Î¤¿¤á¤Î¥ì¥·¥Ô¤¬°ÅÌۥ롼¥ë¤Îõº÷¤Ç¸«¤Ä¤«¤ê¤Þ¤·¤¿,"
-#: 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 "¤·¤«¤·º£¤Ï `%s' ¤È `%s' ¤ÏƱ¤¸¥Õ¥¡¥¤¥ë¤È¸«¤Ê¤µ¤ì¤Þ¤¹."
-#: file.c:278
+#: file.c:280
#, fuzzy, c-format
-msgid "Recipe for `%s' will be ignored in favor of the one for `%s'."
-msgstr "`%s' ¤Ø¤Î¥³¥Þ¥ó¥É¤Ï, `%s' ¤òÁª¤Ö¤³¤È¤Çº£¸å̵»ë¤µ¤ì¤Þ¤¹."
+msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
+msgstr "`%s' ¤Î¤¿¤á¤Î¥ì¥·¥Ô¤Ï, `%s' ¤Î¤¿¤á¤Î¤â¤Î¤òÍ¥À褹¤ë¤¿¤á̵»ë¤µ¤ì¤Þ¤¹."
-#: file.c:298
-#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
+#: file.c:300
+#, fuzzy, c-format
+msgid "can't rename single-colon '%s' to double-colon '%s'"
msgstr "¥·¥ó¥°¥ë¥³¥í¥ó `%s' ¤«¤é¥À¥Ö¥ë¥³¥í¥ó `%s' ¤Ë̾Á°¤òÊѤ¨¤é¤ì¤Þ¤»¤ó"
-#: file.c:303
-#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
+#: file.c:305
+#, fuzzy, c-format
+msgid "can't rename double-colon '%s' to single-colon '%s'"
msgstr "¥À¥Ö¥ë¥³¥í¥ó `%s' ¤«¤é¥·¥ó¥°¥ë¥³¥í¥ó `%s' ¤Ë̾Á°¤òÊѤ¨¤é¤ì¤Þ¤»¤ó"
-#: file.c:392
-#, c-format
-msgid "*** Deleting intermediate file `%s'"
+#: file.c:396
+#, fuzzy, c-format
+msgid "*** Deleting intermediate file '%s'"
msgstr "*** Ãæ´Ö¥Õ¥¡¥¤¥ë `%s' ¤òºï½ü¤·¤Þ¤¹"
-#: file.c:396
+#: file.c:400
msgid "Removing intermediate files...\n"
msgstr "Ãæ´Ö¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Æ¤¤¤Þ¤¹...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
msgstr "%s: ¥¿¥¤¥à¥¹¥¿¥ó¥×¤¬Èϰϳ°¤Ç¤¹ -- Âå¤ê¤Ë %s ¤È¤·¤Þ¤¹"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "¸½ºß»þ¹ï"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
msgstr "# ¥¿¡¼¥²¥Ã¥È¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó:"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
msgstr "# ÆÃÊÌ°·¤¤¤Î¥Õ¥¡¥¤¥ë (.PRECIOUS ¤ÎɬÍ×¾ò·ï)"
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
msgstr "# µ¿»÷¥¿¡¼¥²¥Ã¥È (.PHONY ¤ÎɬÍ×¾ò·ï)"
-#: file.c:933
-#, fuzzy
+#: file.c:958
msgid "# Command line target."
msgstr "# ¥³¥Þ¥ó¥É¥é¥¤¥ó¥¿¡¼¥²¥Ã¥È."
-#: file.c:935
-#, fuzzy
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
-msgstr "# ¥Ç¥Õ¥©¥ë¥È¤Þ¤¿¤Ï MAKEFILES ¥á¥¤¥¯¥Õ¥¡¥¤¥ë."
+msgstr "# ¥Ç¥Õ¥©¥ë¥È¤Þ¤¿¤Ï MAKEFILES, -include/sinclude Makefile."
+
+#: file.c:962
+#, fuzzy
+msgid "# Builtin rule"
+msgstr ""
+"\n"
+"# °ÅÌۥ롼¥ë¤Ê¤·."
-#: file.c:937
+#: file.c:964
msgid "# Implicit rule search has been done."
msgstr "# °ÅÌۥ롼¥ë¤Îõº÷¤¬¹Ô¤ï¤ì¤Þ¤·¤¿."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
msgstr "# °ÅÌۥ롼¥ë¤Îõº÷¤Ï¹Ô¤ï¤ì¤Þ¤»¤ó¤Ç¤·¤¿."
-#: file.c:940
-#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
+#: file.c:967
+#, fuzzy, c-format
+msgid "# Implicit/static pattern stem: '%s'\n"
msgstr "# °ÅÌÛ/ÀÅŪ¥Ñ¥¿¡¼¥ó¸ì´´: `%s'\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
msgstr "# ¥Õ¥¡¥¤¥ë¤ÏÃæ´ÖɬÍ×¾ò·ï¤Ç¤¹."
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
msgstr "# ¤µ¤é¤Ë make:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
msgstr "# ½¤Àµ»þ¹ï¤¬¥Á¥§¥Ã¥¯¤µ¤ì¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# ¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Þ¤»¤ó."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr "# ¥Õ¥¡¥¤¥ë¤¬Èó¾ï¤Ë¸Å¤¤¤Ç¤¹."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr "# ºÇ½ª½¤Àµ %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# ¥Õ¥¡¥¤¥ë¤Ï¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤¹."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# ¥Õ¥¡¥¤¥ë¤Ï¹¹¿·¤µ¤ì¤Æ¤¤¤Þ¤»¤ó."
-#: file.c:968
-#, fuzzy
+#: file.c:995
msgid "# Recipe currently running (THIS IS A BUG)."
-msgstr "# ¥³¥Þ¥ó¥É¤¬¸½ºß¼Â¹ÔÃæ¤Ç¤¹ (*¤³¤ì¤Ï¥Ð¥°¤Ç¤¹*)."
+msgstr "# ¥ì¥·¥Ô¤ò¸½ºß¼Â¹ÔÃæ¤Ç¤¹ (*¤³¤ì¤Ï¥Ð¥°¤Ç¤¹*)."
-#: file.c:971
-#, fuzzy
+#: file.c:998
msgid "# Dependencies recipe running (THIS IS A BUG)."
-msgstr "# °Í¸´Ø·¸¥³¥Þ¥ó¥É¤¬¼Â¹ÔÃæ¤Ç¤¹ (*¤³¤ì¤Ï¥Ð¥°¤Ç¤¹*)."
+msgstr "# °Í¸´Ø·¸¥ì¥·¥Ô¤ò¼Â¹ÔÃæ¤Ç¤¹ (*¤³¤ì¤Ï¥Ð¥°¤Ç¤¹*)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
msgstr "# ¹¹¿·¤ËÀ®¸ù¤·¤Þ¤·¤¿."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
msgstr "# ¹¹¿·¤¬É¬ÍפǤ¹ (-q ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Þ¤¹)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr "# ¹¹¿·¤Ë¼ºÇÔ¤·¤Þ¤·¤¿."
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# `update_status' ¥á¥ó¥Ð¤Ë̵¸ú¤ÊÃÍ!"
-
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
+#: file.c:1019
+#, fuzzy
+msgid "# Invalid value in 'command_state' member!"
msgstr "# `command_state' ¥á¥ó¥Ð¤Ë̵¸ú¤ÊÃÍ!"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -348,7 +356,7 @@ msgstr ""
"\n"
"# ¥Õ¥¡¥¤¥ë"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
@@ -358,122 +366,179 @@ msgstr ""
"# ¥Õ¥¡¥¤¥ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¾õÂÖ:\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 "Èó¿ôÃͤÎÂè°ì°ú¿ô¤¬ `word' ´Ø¿ô¤ËÍ¿¤¨¤é¤ì¤Þ¤·¤¿"
-#: 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' ´Ø¿ô¤Ø¤ÎÂè°ì°ú¿ô¤Ï 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 "Èó¿ôÃͤÎÂè°ì°ú¿ô¤¬ `wordlist' ´Ø¿ô¤ËÍ¿¤¨¤é¤ì¤Þ¤·¤¿"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
+#: function.c:769
+#, fuzzy
+msgid "non-numeric second argument to 'wordlist' function"
msgstr "Èó¿ôÃͤÎÂèÆó°ú¿ô¤¬ `wordlist' ´Ø¿ô¤ËÍ¿¤¨¤é¤ì¤Þ¤·¤¿"
-#: function.c:1458
+#: function.c:1460
#, fuzzy, c-format
-msgid "windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"
-msgstr "create_child_process: DuplicateHandle(In) ¤¬¼ºÇÔ (e=%d)\n"
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
+msgstr "windows32_openpipe(): DuplicateHandle(In) ¤¬¼ºÇÔ (e=%ld)\n"
-#: function.c:1469
+#: function.c:1483
#, fuzzy, c-format
-msgid "windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr "create_child_process: DuplicateHandle(Err) ¤¬¼ºÇÔ (e=%d)\n"
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
+msgstr "windows32_openpipe(): DuplicateHandle(Err) ¤¬¼ºÇÔ (e=%ld)\n"
-#: function.c:1474
-#, fuzzy, c-format
+#: function.c:1490
+#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
-msgstr "CreatePipe() ¤¬¼ºÇÔ (e=%d)\n"
+msgstr "CreatePipe() ¤¬¼ºÇÔ (e=%ld)\n"
-#: function.c:1479
-#, fuzzy
+#: function.c:1498
msgid "windows32_openpipe(): process_init_fd() failed\n"
msgstr "windows32_openpipe (): process_init_fd() ¤¬¼ºÇÔ\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr "°ì»þŪ¤Ê¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë %s ¤ò¾Ãµî¤·¤Þ¤¹\n"
-#: function.c:2150
+#: function.c:2151
+#, fuzzy, c-format
+msgid "open: %s: %s"
+msgstr "%s: %s"
+
+#: function.c:2158
#, fuzzy, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
+msgid "write: %s: %s"
+msgstr "½ñ¤­¹þ¤ß¥¨¥é¡¼: %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 "°ú¿ô¤Î¿ô(%d)¤¬´Ø¿ô `%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 "¤³¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó: ´Ø¿ô `%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 "½ªÃ¼¤¬¤Ê¤¤´Ø¿ô¸Æ¤Ó½Ð¤· `%s': `%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: ¥ª¥×¥·¥ç¥ó `%s' ¤ÏÛ£Ëæ¤Ç¤¹\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 "°ú¿ô¤Î¿ô(%d)¤¬´Ø¿ô `%s' ¤Ë¤È¤Ã¤ÆÉÔ½½Ê¬¤Ç¤¹"
+
+#: function.c:2555
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "°ú¿ô¤Î¿ô(%d)¤¬´Ø¿ô `%s' ¤Ë¤È¤Ã¤ÆÉÔ½½Ê¬¤Ç¤¹"
+
+#: getopt.c:659
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: ¥ª¥×¥·¥ç¥ó `%s' ¤ÏÛ£Ëæ¤Ç¤¹\n"
+
+#: getopt.c:683
+#, fuzzy, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr "%s: ¥ª¥×¥·¥ç¥ó `--%s' ¤Ï°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó\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: ¥ª¥×¥·¥ç¥ó `%c%s' ¤Ï°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó\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: ¥ª¥×¥·¥ç¥ó `%s' ¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹\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: ǧ¼±¤Ç¤­¤Ê¤¤¥ª¥×¥·¥ç¥ó `--%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: ǧ¼±¤Ç¤­¤Ê¤¤¥ª¥×¥·¥ç¥ó `%c%s'\n"
-#: getopt.c:766
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: ÉÔÀµ¤Ê¥ª¥×¥·¥ç¥ó ¡½ %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: ̵¸ú¤Ê¥ª¥×¥·¥ç¥ó ¡½ %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: ¥ª¥×¥·¥ç¥ó¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹ ¡½ %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: ¥ª¥×¥·¥ç¥ó `-W %s' ¤ÏÛ£Ëæ¤Ç¤¹\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: ¥ª¥×¥·¥ç¥ó `-W %s' ¤Ï°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó\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
+#, c-format
msgid "can't allocate %lu bytes for hash table: memory exhausted"
msgstr ""
-"¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ëÍÑ %ld ¥Ð¥¤¥È¤Î³ä¤êÅö¤Æ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: ¥á¥â¥ê¤ò»È¤¤²Ì¤¿¤·¤Þ¤·"
+"¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ëÍÑ %lu ¥Ð¥¤¥È¤Î³ä¤êÅö¤Æ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: ¥á¥â¥ê¤ò»È¤¤²Ì¤¿¤·¤Þ¤·"
"¤¿"
#: hash.c:280
@@ -491,132 +556,155 @@ msgstr "Rehash=%d, "
msgid "Collisions=%ld/%ld=%.0f%%"
msgstr "Collisions=%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 "`%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 "`%s' ¤Î¤¿¤á¤Î½ñ¸Ë¥á¥ó¥Ð°ÅÌۥ롼¥ë¤òõ¤·¤Þ¤¹.\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
msgstr "°ÅÌۥ롼¥ë¤ÎºÆµ¢¤ò²óÈò¤·¤Þ¤¹.\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 "¸ì´´ `%.*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 "ŬÍÑÉÔǽ¤Ê¥ë¡¼¥ë¤ÎɬÍ×¾ò·ï `%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 "ŬÍÑÉÔǽ¤Ê°ÅÌÛ¤ÎɬÍ×¾ò·ï `%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 "¥ë¡¼¥ë¤ÎɬÍ×¾ò·ï `%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 "°ÅÌÛ¤ÎɬÍ×¾ò·ï `%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 "VPATH `%2$s' ¤È¤·¤ÆɬÍ×¾ò·ï `%1$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 "Ãæ´Ö¥Õ¥¡¥¤¥ë `%s' ¤Î¥ë¡¼¥ë¤òõ¤·¤Þ¤¹.\n"
-#: job.c:335
-#, fuzzy
+#: job.c:361
msgid "Cannot create a temporary file\n"
-msgstr "fwrite (°ì»þ¥Õ¥¡¥¤¥ë)"
+msgstr "°ì»þ¥Õ¥¡¥¤¥ë¤òºîÀ®¤Ç¤­¤Þ¤»¤ó\n"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] ¥¨¥é¡¼ 0x%x (̵»ë¤µ¤ì¤Þ¤·¤¿)"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (¥³¥¢¥À¥ó¥×¤·¤Þ¤·¤¿)"
-#: job.c:450
-#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] ¥¨¥é¡¼ 0x%x"
+#: job.c:487
+msgid " (ignored)"
+msgstr " (̵»ë¤µ¤ì¤Þ¤·¤¿)"
-#: job.c:454
-#, c-format
-msgid "[%s] Error %d (ignored)"
-msgstr "[%s] ¥¨¥é¡¼ %d (̵»ë¤µ¤ì¤Þ¤·¤¿)"
+#: job.c:491 job.c:1994
+#, fuzzy
+msgid "<builtin>"
+msgstr " (¥Ó¥ë¥È¥¤¥ó):"
-#: job.c:455
-#, c-format
-msgid "*** [%s] Error %d"
+#: job.c:501
+#, fuzzy, c-format
+msgid "%s: recipe for target '%s' failed"
+msgstr "·Ù¹ð: ¥¿¡¼¥²¥Ã¥È `%s' ¤Î¤¿¤á¤Î¥ì¥·¥Ô¤òÃÖ¤­´¹¤¨¤Þ¤¹"
+
+#: job.c:510
+#, fuzzy, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "*** [%s] ¥¨¥é¡¼ 0x%x"
+
+#: job.c:513
+#, fuzzy, c-format
+msgid "%s[%s] Error %d%s"
msgstr "*** [%s] ¥¨¥é¡¼ %d"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (¥³¥¢¥À¥ó¥×¤·¤Þ¤·¤¿)"
+#: 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 "*** ̤´°Î»¤Î¥¸¥ç¥Ö¤òÂԤäƤ¤¤Þ¤¹...."
-#: job.c:579
-#, fuzzy, c-format
+#: job.c:639
+#, c-format
msgid "Live child %p (%s) PID %s %s\n"
-msgstr "À¸Â¸»Ò¥×¥í¥»¥¹ 0x%08lx (%s) PID %ld %s\n"
+msgstr "À¸Â¸»Ò¥×¥í¥»¥¹ %p (%s) PID %s %s\n"
-#: job.c: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 " (¥ê¥â¡¼¥È)"
-#: job.c:758
-#, fuzzy, c-format
+#: job.c:829
+#, c-format
msgid "Reaping losing child %p PID %s %s\n"
-msgstr "¼º¤Ã¤¿»Ò¥×¥í¥»¥¹ 0x%08lx PID %ld %s ¤ò²ó¼ý¤·¤Þ¤¹\n"
+msgstr "¼ºÇÔ¤·¤¿»Ò¥×¥í¥»¥¹ %p PID %s %s ¤ò²ó¼ý¤·¤Þ¤¹\n"
-#: job.c:759
-#, fuzzy, c-format
+#: job.c:830
+#, c-format
msgid "Reaping winning child %p PID %s %s\n"
-msgstr "À®¸ù¤·¤¿»Ò¥×¥í¥»¥¹ 0x%08lx PID %ld %s ¤ò²ó¼ý¤·¤Þ¤¹\n"
+msgstr "À®¸ù¤·¤¿»Ò¥×¥í¥»¥¹ %p PID %s %s ¤ò²ó¼ý¤·¤Þ¤¹\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
-msgstr "°ì»þŪ¤Ê¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë %s ¤òÊÒÉÕ¤±¤Þ¤¹\n"
+msgstr "°ì»þŪ¤Ê¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë %s ¤ò¾Ãµî¤·¤Þ¤¹\n"
-#: job.c:861
+#: job.c:843
#, fuzzy, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "°ì»þŪ¤Ê¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë %s ¤ò¾Ãµî¤·¤Þ¤¹\n"
+
+#: job.c:949
+#, c-format
msgid "Removing child %p PID %s%s from chain.\n"
-msgstr "¥Á¥§¥¤¥ó¤«¤é»Ò¥×¥í¥»¥¹ 0x%08lx PID %ld%s ¤òºï½ü¤·¤Þ¤¹.\n"
+msgstr "¥Á¥§¥¤¥ó¤«¤é»Ò¥×¥í¥»¥¹ %p PID %s%s ¤òºï½ü¤·¤Þ¤¹.\n"
-#: job.c:920
-msgid "write jobserver"
-msgstr "¥¸¥ç¥Ö¥µ¡¼¥Ð¤Ø¤Î write"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr ""
-#: job.c:922
-#, fuzzy, c-format
+#: job.c:1011 job.c:1025
+#, c-format
msgid "Released token for child %p (%s).\n"
-msgstr "»Ò¥×¥í¥»¥¹ 0x%08lx (%s) ¤Î°õ¤ò²òÊü¤·¤Þ¤·¤¿.\n"
+msgstr "»Ò¥×¥í¥»¥¹ %p (%s) ¤Î°õ¤ò²òÊü¤·¤Þ¤·¤¿.\n"
-#: job.c:1453 job.c:2094
-#, fuzzy, c-format
+#: job.c:1023
+msgid "write jobserver"
+msgstr "¥¸¥ç¥Ö¥µ¡¼¥Ð¤Ø¤Î write"
+
+#: job.c:1612 job.c:2332
+#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
-msgstr "process_easy() ¤¬¼ºÇÔ¤·¥×¥í¥»¥¹µ¯Æ°¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ (e=%d)\n"
+msgstr "process_easy() ¤¬¼ºÇÔ¤·¥×¥í¥»¥¹¤¬µ¯Æ°¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ (e=%ld)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
@@ -625,108 +713,169 @@ msgstr ""
"\n"
"µ¯Æ°¤Î¼ºÇÔ¤Ç %d ¸Ä¤Î°ú¿ô¤¬¥«¥¦¥ó¥È¤µ¤ì¤Þ¤·¤¿\n"
-#: job.c:1525
-#, fuzzy, c-format
+#: job.c:1685
+#, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
-msgstr "¥Á¥§¥¤¥ó¤Ë»Ò¥×¥í¥»¥¹ 0x%08lx (%s) PID %ld%s ¤ò¼è¤ê¹þ¤ß¤Þ¤·¤¿.\n"
+msgstr "¥Á¥§¥¤¥ó¤Ë»Ò¥×¥í¥»¥¹ %p (%s) PID %s%s ¤ò¼è¤ê¹þ¤ß¤Þ¤·¤¿.\n"
-#: job.c:1778
-#, fuzzy, c-format
+#: 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 "»Ò¥×¥í¥»¥¹ 0x%08lx (%s) ¤Ë°õ¤¬¤Ä¤±¤é¤ì¤Þ¤·¤¿.\n"
+msgstr "»Ò¥×¥í¥»¥¹ %p (%s) ¤Ë°õ¤ò¤Ä¤±¤Þ¤·¤¿.\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
msgstr "¥¸¥ç¥Ö¤Î¥Ñ¥¤¥×¤Î read"
-#: 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: ½ñ¸Ë `%s' ¤¬¤¢¤ê¤Þ¤»¤ó"
-#: job.c:1802
+#: job.c:2005
#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "¥¿¡¼¥²¥Ã¥È `%s' ¤òºÆ make ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó"
+msgid "%s: update target '%s' due to: %s"
+msgstr ""
+"%1$s`%3$s' ¤ËɬÍפʥ¿¡¼¥²¥Ã¥È `%2$s' ¤ò make ¤¹¤ë¥ë¡¼¥ë¤¬¤¢¤ê¤Þ¤»¤ó%4$s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
msgstr "¤³¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ç¤Ï¥·¥¹¥Æ¥àÉé²ÙÀ©¸Â¤ò²Ã¤¨¤é¤ì¤Þ¤»¤ó"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
-msgstr "¥·¥¹¥Æ¥àÉé²ÙÀ©¸Â¤Î²Ý¤¹¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿: "
+msgstr "¥·¥¹¥Æ¥àÉé²ÙÀ©¸Â¤ò²Ý¤¹¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿: "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
-msgstr ""
+msgstr "¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤ò»È¤¤¿Ô¤¯¤·¤Þ¤·¤¿: ɸ½àÆþÎϤòÊ£À½¤Ç¤­¤Þ¤»¤ó\n"
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
-msgstr ""
+msgstr "¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤ò»È¤¤¿Ô¤¯¤·¤Þ¤·¤¿: ɸ½à½ÐÎϤòÊ£À½¤Ç¤­¤Þ¤»¤ó\n"
+
+#: job.c:2223
+#, fuzzy
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr "¥Õ¥¡¥¤¥ë¥Ï¥ó¥É¥ë¤ò»È¤¤¿Ô¤¯¤·¤Þ¤·¤¿: ɸ½àÆþÎϤòÊ£À½¤Ç¤­¤Þ¤»¤ó\n"
-#: job.c:2015
+#: job.c:2238
msgid "Could not restore stdin\n"
-msgstr ""
+msgstr "ɸ½àÆþÎϤòÉü¸µ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿\n"
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
-msgstr ""
+msgstr "ɸ½à½ÐÎϤòÉü¸µ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿\n"
-#: job.c:2127
-#, fuzzy, c-format
+#: job.c:2254
+#, fuzzy
+msgid "Could not restore stderr\n"
+msgstr "ɸ½àÆþÎϤòÉü¸µ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿\n"
+
+#: job.c:2365
+#, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
-msgstr "make ¤Ï pid %d ¤Î»Ò¥×¥í¥»¥¹¤ò²ó¼ý¤·, pid %d ¤òÂÔ¤Á³¤±¤Þ¤¹\n"
+msgstr "make ¤Ï pid %s ¤Î»Ò¥×¥í¥»¥¹¤ò²ó¼ý¤·, pid %s ¤òÂÔ¤Á³¤±¤Þ¤¹\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
msgstr "%s: ¥³¥Þ¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr "%s: ¥·¥§¥ë¥×¥í¥°¥é¥à¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
-msgstr ""
+msgstr "spawnvpe:´Ä¶­ÀßÄê¤Î¤¿¤á¤Î¥á¥â¥ê¤ò»È¤¤¿Ô¤¯¤¹¤«¤â¤·¤ì¤Þ¤»¤ó"
-#: job.c:2461
+#: job.c:2709
#, fuzzy, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
-msgstr "$SHELL ¤¬Êѹ¹¤µ¤ì¤Þ¤·¤¿ (Á°¤Ï `%s', º£¤Ï `%s')"
+msgid "$SHELL changed (was '%s', now '%s')\n"
+msgstr "$SHELL ¤¬Êѹ¹¤µ¤ì¤Þ¤·¤¿ (Á°¤Ï `%s', º£¤Ï `%s')\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr "°ì»þŪ¤Ê¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤·¤Þ¤¹\n"
-#: job.c:2963
+#: job.c:3148
+#, fuzzy
+msgid ""
+"Batch file contents:\n"
+"\t@echo off\n"
+msgstr ""
+"¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ :%s\n"
+"\t%s\n"
+
+#: job.c:3337
#, c-format
msgid ""
"Batch file contents:%s\n"
"\t%s\n"
msgstr ""
+"¥Ð¥Ã¥Á¥Õ¥¡¥¤¥ë¤ÎÆâÍÆ :%s\n"
+"\t%s\n"
-#: job.c:3065
+#: job.c:3444
#, c-format
msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
msgstr "%s (%d ¹ÔÌÜ) ÉÔÀµ¤Ê¥·¥§¥ë¥³¥ó¥Æ¥­¥¹¥È (!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 "ÊÂÎ󥸥ç¥Ö (-j) ¤Ï¤³¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó."
+
+#: main.c:312
msgid "Options:\n"
msgstr "¥ª¥×¥·¥ç¥ó:\n"
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
msgstr " -b, -m ¸ß´¹À­¤Î¤¿¤á¤Î¤â¤Î¤Ç, ̵»ë¤µ¤ì¤ë.\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr " -B, --always-make ̵¾ò·ï¤ËÁ´¥¿¡¼¥²¥Ã¥È¤ò make ¤¹¤ë.\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
@@ -735,16 +884,16 @@ msgstr ""
" make ³«»ÏÁ°¤Ë¥Ç¥£¥ì¥¯¥È¥ê DIRECTORY ¤Ø°ÜÆ°¤¹"
"¤ë.\n"
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
msgstr " -d ¥Ç¥Ð¥Ã¥°¾ðÊó¤òÂçÎ̤Ëɽ¼¨¤¹¤ë.\n"
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr " --debug[=FLAGS] ÍÍ¡¹¤Ê¥¿¥¤¥×¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òɽ¼¨¤¹¤ë.\n"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
@@ -752,12 +901,12 @@ msgstr ""
" -e, --environment-overrides\n"
" ´Ä¶­ÊÑ¿ô¤¬ makefile Ãæ¤Îµ­½Ò¤ËÍ¥À褹¤ë\n"
-#: main.c:318
+#: main.c:327
msgid ""
" --eval=STRING Evaluate STRING as a makefile statement.\n"
-msgstr ""
+msgstr " --eval=STRING STRING ¤ò makefile ¤Îʸ¤È¤·¤Æɾ²Á¤¹¤ë.\n"
-#: main.c:320
+#: main.c:329
msgid ""
" -f FILE, --file=FILE, --makefile=FILE\n"
" Read FILE as a makefile.\n"
@@ -765,16 +914,15 @@ msgstr ""
" -f FILE, --file=FILE, --makefile=FILE\n"
" FILE ¤ò makefile ¤È¤·¤ÆÆɤ߹þ¤à\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
msgstr " -h, --help ¤³¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë.\n"
-#: main.c:325
-#, fuzzy
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
-msgstr " -i, --ignore-errors ¥³¥Þ¥ó¥É¤«¤éÊÖ¤µ¤ì¤¿¥¨¥é¡¼¤ò̵»ë¤¹¤ë.\n"
+msgstr " -i, --ignore-errors ¥ì¥·¥Ô¤«¤éÊ֤ä¿¥¨¥é¡¼¤ò̵»ë¤¹¤ë.\n"
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
@@ -784,7 +932,7 @@ msgstr ""
" ¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë makefile ¤òõº÷¤¹¤ë "
"DIRECTORY.\n"
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
@@ -792,14 +940,14 @@ msgstr ""
" -j [N], --jobs[=N] °ìÅÙ¤Ë 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 ¤¢¤ë¥¿¡¼¥²¥Ã¥È¤¬ make ¤Ç¤­¤Ê¤¯¤Æ¤â¼Â¹Ô¤ò³¤±"
"¤ë.\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 "
@@ -809,23 +957,24 @@ msgstr ""
" Éé²Ù ¤¬ N ̤Ëþ¤Ç¤Ê¤¤¸Â¤êÊ£¿ô¤Î¥¸¥ç¥Ö¤ò³«»Ï¤·¤Ê"
"¤¤.\n"
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
msgstr ""
+" -L, --check-symlink-times ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤È¥¿¡¼¥²¥Ã¥È¤ÎÃæ¤Ç°ìÈÖ¿·¤·¤¤ "
+"mtime ¤ò»È¤¦.\n"
-#: main.c:339
-#, fuzzy
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
"them.\n"
msgstr ""
" -n, --just-print, --dry-run, --recon\n"
-" ¥³¥Þ¥ó¥É¤ò¼ÂºÝ¤Ë¼Â¹Ô¤·¤Ê¤¤; ɽ¼¨¤¹¤ë¤Î¤ß.\n"
+" ¥ì¥·¥Ô¤ò¼ÂºÝ¤Ë¼Â¹Ô¤·¤Ê¤¤; ɽ¼¨¤¹¤ë¤Î¤ß.\n"
-#: main.c:342
+#: main.c:351
msgid ""
" -o FILE, --old-file=FILE, --assume-old=FILE\n"
" Consider FILE to be very old and don't remake "
@@ -835,33 +984,37 @@ msgstr ""
" FILE ¤ò¤È¤Æ¤â¸Å¤¤¤â¤Î¤È¸«¤Ê¤·¤Æ, ºÆ make ¤·¤Ê"
"¤¤.\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 make ¤ÎÆâÉô¥Ç¡¼¥¿¥Ù¡¼¥¹¤òɽ¼¨¤¹¤ë.\n"
-#: main.c:347
-#, fuzzy
+#: main.c:359
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
msgstr ""
-" -q, --question ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Ê¤¤; ¹¹¿·ºÑ¤Ç¤¢¤ë¤«¤É¤¦¤«¤ò½ª"
-"λ¥¹¥Æ¡¼¥¿¥¹¤ÇÄÌÃÎ.\n"
+" -q, --question ¥ì¥·¥Ô¤ò¼Â¹Ô¤·¤Ê¤¤; ¹¹¿·ºÑ¤Ç¤¢¤ë¤«¤É¤¦¤«¤ò½ªÎ»"
+"¥¹¥Æ¡¼¥¿¥¹¤ÇÄÌÃÎ.\n"
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr " -r, --no-builtin-rules ¥Ó¥ë¥È¥¤¥ó¤Î°ÅÌۥ롼¥ë¤ò̵¸ú¤Ë¤¹¤ë.\n"
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr " -R, --no-builtin-variables ¥Ó¥ë¥È¥¤¥ó¤ÎÊÑ¿ôÀßÄê¤ò̵¸ú¤Ë¤¹¤ë.\n"
-#: main.c:353
-#, fuzzy
+#: main.c:365
msgid " -s, --silent, --quiet Don't echo recipes.\n"
-msgstr " -s, --silent, --quiet ¥³¥Þ¥ó¥Éɽ¼¨¤ò¥¨¥³¡¼¤·¤Ê¤¤.\n"
+msgstr " -s, --silent, --quiet ¥ì¥·¥Ô¤òɽ¼¨¤·¤Ê¤¤.\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
@@ -869,22 +1022,27 @@ msgstr ""
" -S, --no-keep-going, --stop\n"
" -k ¥ª¥×¥·¥ç¥ó¤ò¥ª¥Õ¤Ë¤¹¤ë.\n"
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
" -t, --touch ¥¿¡¼¥²¥Ã¥È¤òºÆ make ¤¹¤ëÂå¤ï¤ê¤Ë¥¿¥Ã¥Á¤¹¤ë.\n"
-#: main.c:360
+#: main.c:372
+#, fuzzy
+msgid " --trace Print tracing information.\n"
+msgstr " -d ¥Ç¥Ð¥Ã¥°¾ðÊó¤òÂçÎ̤Ëɽ¼¨¤¹¤ë.\n"
+
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr ""
" -v, --version make ¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨¤·¤Æ½ªÎ»¤¹¤ë.\n"
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
msgstr " -w, --print-directory ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤òɽ¼¨¤¹¤ë.\n"
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
@@ -892,7 +1050,7 @@ msgstr ""
" --no-print-directory -w ¤ò¥ª¥Õ¤Ë¤¹¤ë. °ÅÌÛ¤ËÍ­¸ú¤Ê¾ì¹ç¤Ç¤â¥ª¥Õ¤Ë¤¹"
"¤ë.\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"
@@ -900,29 +1058,39 @@ msgstr ""
" -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
" FILE ¤ò¤¤¤Ä¤Ç¤âºÇ¿·¤È¤·¤Æ¸«¤Ê¤¹.\n"
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
msgstr ""
" --warn-undefined-variables ̤ÄêµÁ¤ÎÊÑ¿ô¤¬»²¾È¤µ¤ì¤¿¤È¤­¤Ë·Ù¹ð¤òȯ¤¹¤ë.\n"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
msgstr "¶õ¤Îʸ»úÎó¤Ï¥Õ¥¡¥¤¥ë̾¤È¤·¤Æ¤Ï̵¸ú¤Ç¤¹"
-#: main.c:650
-#, c-format
-msgid "unknown debug level specification `%s'"
+#: main.c:734
+#, fuzzy, c-format
+msgid "unknown debug level specification '%s'"
msgstr "ÉÔÌÀ¤Ê¥Ç¥Ð¥Ã¥°¥ì¥Ù¥ë»ØÄê `%s'"
-#: main.c:690
-#, fuzzy, c-format
+#: main.c:777
+#, c-format
+msgid "unknown output-sync type '%s'"
+msgstr ""
+
+#: main.c:787
+#, fuzzy
+msgid "internal error: multiple --sync-mutex options"
+msgstr "ÆâÉô¥¨¥é¡¼: Ê£¿ô¤Î --jobserver-fds ¥ª¥×¥·¥ç¥ó"
+
+#: main.c:848
+#, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
-msgstr "%s: ³ä¤ê¹þ¤ß/Îã³°¤òÊ᪤·¤Þ¤·¤¿ (code = 0x%x, addr = 0x%x)\n"
+msgstr "%s: ³ä¤ê¹þ¤ß/Îã³°¤òÊ᪤·¤Þ¤·¤¿ (code = 0x%lx, addr = 0x%p)\n"
-#: main.c:697
-#, fuzzy, c-format
+#: main.c:855
+#, c-format
msgid ""
"\n"
"Unhandled exception filter called from program %s\n"
@@ -931,165 +1099,188 @@ msgid ""
"ExceptionAddress = 0x%p\n"
msgstr ""
"\n"
-"¥Ï¥ó¥É¥ë¤µ¤ì¤Ê¤«¤Ã¤¿Îã³°¥Õ¥£¥ë¥¿¤¬¥×¥í¥°¥é¥à %s ¤«¤é¸Æ¤Ð¤ì¤Þ¤·¤¿\n"
-"Îã³°¥³¡¼¥É = %x\n"
-"Îã³°¥Õ¥é¥° = %x\n"
-"Îã³°¥¢¥É¥ì¥¹ = %x\n"
+"½èÍý¤µ¤ì¤Ê¤¤Îã³°¤Î¤¿¤á¤Î¥Õ¥£¥ë¥¿¤¬¥×¥í¥°¥é¥à %s ¤«¤é¸Æ¤Ð¤ì¤Þ¤·¤¿\n"
+"Îã³°¥³¡¼¥É = %lx\n"
+"Îã³°¥Õ¥é¥° = %lx\n"
+"Îã³°¥¢¥É¥ì¥¹ = 0x%p\n"
-#: main.c:705
-#, fuzzy, c-format
+#: main.c:863
+#, c-format
msgid "Access violation: write operation at address 0x%p\n"
-msgstr "¥¢¥¯¥»¥¹Êݸî°ãÈ¿: ¥¢¥É¥ì¥¹ %x ¤Ç¤Î½ñ¤­¹þ¤ßÁàºî\n"
+msgstr "¥¢¥¯¥»¥¹Êݸî°ãÈ¿: ¥¢¥É¥ì¥¹ 0x%p ¤Ç¤Î½ñ¤­¹þ¤ßÁàºî\n"
-#: main.c:706
-#, fuzzy, c-format
+#: main.c:864
+#, c-format
msgid "Access violation: read operation at address 0x%p\n"
-msgstr "¥¢¥¯¥»¥¹Êݸî°ãÈ¿: ¥¢¥É¥ì¥¹ %x ¤Ç¤ÎÆɤ߹þ¤ßÁàºî\n"
+msgstr "¥¢¥¯¥»¥¹Êݸî°ãÈ¿: ¥¢¥É¥ì¥¹ 0x%p ¤Ç¤ÎÆɤ߹þ¤ßÁàºî\n"
-#: main.c:781 main.c:792
-#, fuzzy, c-format
+#: main.c:940 main.c:955
+#, c-format
msgid "find_and_set_shell() setting default_shell = %s\n"
-msgstr "find_and_set_shell ¤Ï default_shell = %s ¤ËÀßÄꤷ¤Þ¤¹\n"
+msgstr "find_and_set_shell() ¤Ï default_shell = %s ¤ËÀßÄꤷ¤Þ¤¹\n"
-#: main.c:834
-#, fuzzy, c-format
+#: main.c:1008
+#, c-format
msgid "find_and_set_shell() path search set default_shell = %s\n"
-msgstr "find_and_set_shell ¥Ñ¥¹Ãµº÷¤Ç default_shell = %s ¤Ë¥»¥Ã¥È¤·¤Þ¤·¤¿\n"
+msgstr "find_and_set_shell() ¥Ñ¥¹Ãµº÷¤Ç default_shell = %s ¤Ë¥»¥Ã¥È¤·¤Þ¤·¤¿\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr "%s ¤Ï 30 ÉôÖÄä»ß¤·¤Þ¤¹..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr "sleep(30) ¤¬½ª¤ï¤ê¤Þ¤·¤¿. ³¤±¤Þ¤¹.\n"
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr "ɸ½àÆþÎϤ«¤é¤Î makefile ¤¬Æó²ó»ØÄꤵ¤ì¤Þ¤·¤¿."
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr "fopen (°ì»þ¥Õ¥¡¥¤¥ë)"
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr "fwrite (°ì»þ¥Õ¥¡¥¤¥ë)"
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "ÊÂÎ󥸥ç¥Ö (-j) ¤Ï¤³¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó."
-
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
-msgstr "ñ°ì¥¸¥ç¥Ö (-j1) ¥â¡¼¥É¤Ë¥ê¥»¥Ã¥È¤·¤Þ¤¹."
-
-#: main.c:1719
+#: main.c:1534
msgid "internal error: multiple --jobserver-fds options"
msgstr "ÆâÉô¥¨¥é¡¼: Ê£¿ô¤Î --jobserver-fds ¥ª¥×¥·¥ç¥ó"
-#: 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
+#, fuzzy, c-format
+msgid "Jobserver client (semaphore %s)\n"
+msgstr "jobserver ¥¯¥é¥¤¥¢¥ó¥È (fds %d,%d)\n"
+
+#: main.c:1551
+#, fuzzy, c-format
+msgid "internal error: invalid --jobserver-fds string '%s'"
msgstr "ÆâÉô¥¨¥é¡¼: ̵¸ú¤Ê --jobserver-fds ʸ»úÎó `%s'"
-#: main.c:1730
+#: main.c:1554
#, c-format
msgid "Jobserver client (fds %d,%d)\n"
-msgstr ""
+msgstr "jobserver ¥¯¥é¥¤¥¢¥ó¥È (fds %d,%d)\n"
-#: main.c:1740
+#: main.c:1567
msgid "warning: -jN forced in submake: disabling jobserver mode."
msgstr ""
"·Ù¹ð: Éû¼¡ make ¤Ç -jN ¤ò¶¯À©»ØÄꤷ¤Þ¤·¤¿: jobserver ¥â¡¼¥É¤ò̵¸ú¤Ë¤·¤Þ¤¹."
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
msgstr "dup jobserver"
-#: 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 ""
+"·Ù¹ð: jobserver ¤¬ÍøÍÑÉÔ²Ä: º£²ó¤Ï -j1 ¤ò»È¤¤¤Þ¤¹. ¿Æ make ¥ë¡¼¥ë¤Ë `+' ¤òÄÉ"
+"²Ã¤·¤Þ¤·¤ç¤¦."
+
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "ɸ½àÆþÎϤ«¤é¤Î makefile ¤¬Æó²ó»ØÄꤵ¤ì¤Þ¤·¤¿."
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (°ì»þ¥Õ¥¡¥¤¥ë)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (°ì»þ¥Õ¥¡¥¤¥ë)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr "ÊÂÎ󥸥ç¥Ö (-j) ¤Ï¤³¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "ñ°ì¥¸¥ç¥Ö (-j1) ¥â¡¼¥É¤Ë¥ê¥»¥Ã¥È¤·¤Þ¤¹."
+
+#: main.c:2006
+#, fuzzy, c-format
+msgid "Jobserver slots limited to %d\n"
+msgstr "jobserver ¥¯¥é¥¤¥¢¥ó¥È (fds %d,%d)\n"
+
+#: main.c:2012
+#, c-format
+msgid "creating jobserver semaphore: (Error %ld: %s)"
msgstr ""
-"·Ù¹ð: jobserver ¤¬ÍøÍÑÉÔ²Ä: -j1 ¤ò»È¤¤, ¿Æ make ¥ë¡¼¥ë¤Ë `+' ¤òÄɲä·¤Þ¤·¤ç¤¦"
-#: main.c:1777
+#: main.c:2019
msgid "creating jobs pipe"
msgstr "¥¸¥ç¥Ö¥Ñ¥¤¥×ºîÀ®Ãæ"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
msgstr "jobserver ¥Ñ¥¤¥×¤Î½é´ü²½"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
-msgstr ""
+msgstr "¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó: -L ¤Ï̵¸ú¤Ç¤¹."
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr "makefile ¤Î¹¹¿·Ãæ....\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 "makefile `%s' ¼«¸ÊºÆµ¢¤Î¤ª¤½¤ì ¡½ ºÆ make ¤·¤Þ¤»¤ó.\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 `%s' ¤ÎºÆ make ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿."
-#: 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 "¥¤¥ó¥¯¥ë¡¼¥É¤µ¤ì¤ë makefile `%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿."
-#: 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 `%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
msgstr "¸µ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÌá¤ì¤Þ¤»¤ó¤Ç¤·¤¿."
-#: main.c:2102
-#, fuzzy, c-format
+#: main.c:2354
+#, c-format
msgid "Re-executing[%u]:"
-msgstr "ºÆ¼Â¹Ô¤·¤Þ¤¹:"
+msgstr "ºÆ¼Â¹Ô¤·¤Þ¤¹[%u]:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr "unlink (°ì»þ¥Õ¥¡¥¤¥ë): "
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
-msgstr ""
+msgstr ".DEFAULT_GOAL ¤¬Æó¤Ä°Ê¾å¤Î¥¿¡¼¥²¥Ã¥È¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹"
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
msgstr "¥¿¡¼¥²¥Ã¥È¤¬»ØÄꤵ¤ì¤Æ¤ª¤é¤º, makefile ¤â¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "¥¿¡¼¥²¥Ã¥È¤¬¤¢¤ê¤Þ¤»¤ó"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
msgstr "ºÇ½ª¥¿¡¼¥²¥Ã¥È¤ò¹¹¿·Ãæ....\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr "·Ù¹ð: »þ¹ï¤Î¤º¤ì¤ò¸¡½Ð. ÉÔ´°Á´¤Ê¥Ó¥ë¥É·ë²Ì¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Þ¤»¤ó."
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó] [¥¿¡¼¥²¥Ã¥È] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
@@ -1098,7 +1289,7 @@ msgstr ""
"\n"
"¤³¤Î¥×¥í¥°¥é¥à¤Ï %s ÍѤ˥ӥë¥É¤µ¤ì¤Þ¤·¤¿\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
@@ -1107,36 +1298,32 @@ msgstr ""
"\n"
"¤³¤Î¥×¥í¥°¥é¥à¤Ï %s (%s) ÍѤ˥ӥë¥É¤µ¤ì¤Þ¤·¤¿\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤Ï <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"
-msgstr "`-%c' ¥ª¥×¥·¥ç¥ó¤ÏÀµ¤ÎÀ°¿ô°ú¿ô¤òÍ׵ᤷ¤Þ¤¹"
+msgid "the '%s%s' option requires a non-empty string argument"
+msgstr "`%s%s' ¥ª¥×¥·¥ç¥ó¤Ï¶õ¤Ç¤Ê¤¤Ê¸»úÎó°ú¿ô¤òÍ׵ᤷ¤Þ¤¹"
-#: 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 "`-%c' ¥ª¥×¥·¥ç¥ó¤ÏÀµ¤ÎÀ°¿ô°ú¿ô¤òÍ׵ᤷ¤Þ¤¹"
-#: main.c:3054
-#, fuzzy, c-format
+#: main.c:3253
+#, c-format
msgid "%sBuilt for %s\n"
-msgstr ""
-"\n"
-"¤³¤Î¥×¥í¥°¥é¥à¤Ï %s ÍѤ˥ӥë¥É¤µ¤ì¤Þ¤·¤¿\n"
+msgstr "%s¤³¤Î¥×¥í¥°¥é¥à¤Ï %s ÍѤ˥ӥë¥É¤µ¤ì¤Þ¤·¤¿\n"
-#: main.c:3056
-#, fuzzy, c-format
+#: main.c:3255
+#, c-format
msgid "%sBuilt for %s (%s)\n"
-msgstr ""
-"\n"
-"¤³¤Î¥×¥í¥°¥é¥à¤Ï %s (%s) ÍѤ˥ӥë¥É¤µ¤ì¤Þ¤·¤¿\n"
+msgstr "%s¤³¤Î¥×¥í¥°¥é¥à¤Ï %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."
@@ -1144,8 +1331,12 @@ msgid ""
"%sThis is free software: you are free to change and redistribute it.\n"
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
+"%s¥é¥¤¥»¥ó¥¹ GPLv3+: GNU GPL ¥Ð¡¼¥¸¥ç¥ó 3 °Ê¹ß <http://gnu.org/licenses/gpl."
+"html>\n"
+"%s¤³¤ì¤Ï¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤Ç¤¹: ¼«Í³¤ËÊѹ¹¤ª¤è¤ÓÇÛÉۤǤ­¤Þ¤¹.\n"
+"%sˡΧ¤Îµö¤¹¸Â¤ê¡¢¡¡ÌµÊݾڡ¡¤Ç¤¹.\n"
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
@@ -1154,7 +1345,7 @@ msgstr ""
"\n"
"# Make ¥Ç¡¼¥¿¥Ù¡¼¥¹½ÐÎÏ %s"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
@@ -1163,107 +1354,106 @@ msgstr ""
"\n"
"# Make ¥Ç¡¼¥¿¥Ù¡¼¥¹½ªÎ» %s\n"
-#: main.c:3237
-#, fuzzy, c-format
-msgid "%s: Entering an unknown directory\n"
-msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê(¥Ç¥£¥ì¥¯¥È¥ê̾ÉÔÌÀ)¤ËÆþ¤ê¤Þ¤¹"
-
-#: main.c:3239
-#, fuzzy, c-format
-msgid "%s: Leaving an unknown directory\n"
-msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê(¥Ç¥£¥ì¥¯¥È¥ê̾ÉÔÌÀ)¤«¤é½Ð¤Þ¤¹"
-
-#: main.c:3242
-#, c-format
-msgid "%s: Entering directory `%s'\n"
-msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê `%s' ¤ËÆþ¤ê¤Þ¤¹\n"
-
-#: main.c:3245
-#, c-format
-msgid "%s: Leaving directory `%s'\n"
-msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê `%s' ¤«¤é½Ð¤Þ¤¹\n"
-
-#: main.c:3250
-#, fuzzy, c-format
-msgid "%s[%u]: Entering an unknown directory\n"
-msgstr "%s[%u]: ¥Ç¥£¥ì¥¯¥È¥ê(¥Ç¥£¥ì¥¯¥È¥ê̾ÉÔÌÀ)¤ËÆþ¤ê¤Þ¤¹"
-
-#: main.c:3253
-#, fuzzy, c-format
-msgid "%s[%u]: Leaving an unknown directory\n"
-msgstr "%s[%u]: ¥Ç¥£¥ì¥¯¥È¥ê(¥Ç¥£¥ì¥¯¥È¥ê̾ÉÔÌÀ)¤«¤é½Ð¤Þ¤¹"
-
-#: main.c:3257
-#, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
-msgstr "%s[%u]: ¥Ç¥£¥ì¥¯¥È¥ê `%s' ¤ËÆþ¤ê¤Þ¤¹\n"
-
-#: main.c:3260
-#, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
-msgstr "%s[%u]: ¥Ç¥£¥ì¥¯¥È¥ê `%s' ¤«¤é½Ð¤Þ¤¹\n"
-
-#: misc.c:316
-msgid ". Stop.\n"
-msgstr ". ̾ȧ.\n"
-
-#: misc.c:337
+#: misc.c:201
#, c-format
msgid "Unknown error %d"
msgstr "̤ÃΤΥ¨¥é¡¼ %d"
-#: misc.c:347
-#, c-format
-msgid "%s%s: %s"
-msgstr "%s%s: %s"
-
-#: misc.c:355
-#, 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
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
msgid "virtual memory exhausted"
msgstr "²¾ÁÛ¥á¥â¥ê¤ò»È¤¤²Ì¤¿¤·¤Þ¤·¤¿"
-#: misc.c:708
+#: misc.c:522
#, c-format
msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
msgstr "%s: ¥æ¡¼¥¶ %lu (¼Â¸ú %lu), ¥°¥ë¡¼¥× %lu (¼Â¸ú %lu)\n"
-#: misc.c:729
+#: misc.c:543
msgid "Initialized access"
msgstr "¥¢¥¯¥»¥¹¸¢¸Â¤ò½é´ü²½"
-#: misc.c:808
+#: misc.c:622
msgid "User access"
msgstr "¥æ¡¼¥¶¥¢¥¯¥»¥¹"
-#: misc.c:856
+#: misc.c:670
msgid "Make access"
msgstr "make ¥¢¥¯¥»¥¹"
-#: misc.c:890
+#: misc.c:704
msgid "Child access"
msgstr "»Ò¥×¥í¥»¥¹¥¢¥¯¥»¥¹"
-#: misc.c:954
+#: output.c:128
+#, c-format
+msgid "%s: Entering an unknown directory\n"
+msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê(¥Ç¥£¥ì¥¯¥È¥ê̾ÉÔÌÀ)¤ËÆþ¤ê¤Þ¤¹\n"
+
+#: output.c:130
+#, c-format
+msgid "%s: Leaving an unknown directory\n"
+msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê(¥Ç¥£¥ì¥¯¥È¥ê̾ÉÔÌÀ)¤«¤é½Ð¤Þ¤¹\n"
+
+#: output.c:133
+#, fuzzy, c-format
+msgid "%s: Entering directory '%s'\n"
+msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê `%s' ¤ËÆþ¤ê¤Þ¤¹\n"
+
+#: output.c:135
+#, fuzzy, c-format
+msgid "%s: Leaving directory '%s'\n"
+msgstr "%s: ¥Ç¥£¥ì¥¯¥È¥ê `%s' ¤«¤é½Ð¤Þ¤¹\n"
+
+#: output.c:139
+#, c-format
+msgid "%s[%u]: Entering an unknown directory\n"
+msgstr "%s[%u]: ¥Ç¥£¥ì¥¯¥È¥ê(¥Ç¥£¥ì¥¯¥È¥ê̾ÉÔÌÀ)¤ËÆþ¤ê¤Þ¤¹\n"
+
+#: output.c:141
+#, c-format
+msgid "%s[%u]: Leaving an unknown directory\n"
+msgstr "%s[%u]: ¥Ç¥£¥ì¥¯¥È¥ê(¥Ç¥£¥ì¥¯¥È¥ê̾ÉÔÌÀ)¤«¤é½Ð¤Þ¤¹\n"
+
+#: output.c:144
#, fuzzy, c-format
+msgid "%s[%u]: Entering directory '%s'\n"
+msgstr "%s[%u]: ¥Ç¥£¥ì¥¯¥È¥ê `%s' ¤ËÆþ¤ê¤Þ¤¹\n"
+
+#: output.c:146
+#, fuzzy, c-format
+msgid "%s[%u]: Leaving directory '%s'\n"
+msgstr "%s[%u]: ¥Ç¥£¥ì¥¯¥È¥ê `%s' ¤«¤é½Ð¤Þ¤¹\n"
+
+#: output.c:515
+#, c-format
msgid "write error: %s"
-msgstr "%s ¤Ø¥¨¥é¡¼¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤Þ¤·¤¿\n"
+msgstr "½ñ¤­¹þ¤ß¥¨¥é¡¼: %s"
-#: misc.c:956
-#, fuzzy
+#: output.c:517
msgid "write error"
-msgstr "¥¸¥ç¥Ö¥µ¡¼¥Ð¤Ø¤Î write"
+msgstr "½ñ¤­¹þ¤ß¥¨¥é¡¼"
-#: read.c:179
+#: output.c:740
+msgid ". Stop.\n"
+msgstr ". ̾ȧ.\n"
+
+#: output.c:751
+#, c-format
+msgid "%s%s: %s"
+msgstr "%s%s: %s"
+
+#: output.c:759
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: read.c:180
msgid "Reading makefiles...\n"
msgstr "makefile ¤òÆɤ߹þ¤ß¤Þ¤¹...\n"
#: read.c:333
-#, c-format
-msgid "Reading makefile `%s'"
+#, fuzzy, c-format
+msgid "Reading makefile '%s'"
msgstr "makefile `%s' ¤ÎÆɤ߹þ¤ßÃæ"
#: read.c:335
@@ -1286,329 +1476,344 @@ msgstr " (µ¤¤Ë¤·¤Ê¤¯¤Æ¤è¤¤)"
msgid " (no ~ expansion)"
msgstr " (~ ¤ÎŸ³«¤Ê¤·)"
-#: 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 "¾ò·ïÉô¤Îʸˡ¤¬Ìµ¸ú¤Ç¤¹"
-#: read.c:891
-#, fuzzy
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr ""
+
+#: read.c:987
msgid "recipe commences before first target"
-msgstr "ºÇ½é¤Î¥¿¡¼¥²¥Ã¥È¤è¤êÁ°¤Ë¥³¥Þ¥ó¥É¤òµ¯Æ°"
+msgstr "ºÇ½é¤Î¥¿¡¼¥²¥Ã¥È¤è¤êÁ°¤Ë¥ì¥·¥Ô¤¬¤¢¤ê¤Þ¤¹"
-#: read.c:940
-#, fuzzy
+#: read.c:1036
msgid "missing rule before recipe"
-msgstr "¥³¥Þ¥ó¥É¤è¤êÁ°¤Ç¥ë¡¼¥ë¤¬»Ø¼¨¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+msgstr "¥ì¥·¥Ô¤ÎÁ°¤Î¥ë¡¼¥ë¤¬ÉÔ­¤·¤Æ¤¤¤Þ¤¹"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
msgstr "ʬΥµ­¹æ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹%s"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
msgstr " (8 ¸Ä¤Î¶õÇò¤Ç¤·¤¿¤¬, TAB ¤Î¤Ä¤â¤ê¤Ç¤·¤¿¤«?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
msgstr "¥¿¡¼¥²¥Ã¥È¥Ñ¥¿¡¼¥ó¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
msgstr "Ê£¿ô¤Î¥¿¡¼¥²¥Ã¥È¥Ñ¥¿¡¼¥ó¤Ç¤¹"
-#: read.c:1169
-#, c-format
-msgid "target pattern contains no `%%'"
+#: read.c:1269
+#, fuzzy, c-format
+msgid "target pattern contains no '%%'"
msgstr "¥¿¡¼¥²¥Ã¥È¥Ñ¥¿¡¼¥ó¤¬ `%%' ¤ò´Þ¤ó¤Ç¤¤¤Þ¤»¤ó"
-#: read.c:1293
-msgid "missing `endif'"
+#: read.c:1391
+#, fuzzy
+msgid "missing 'endif'"
msgstr "`endif' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "¶õ¤ÎÊÑ¿ô̾"
-#: read.c:1367
+#: read.c:1465
#, fuzzy
-msgid "extraneous text after `define' directive"
-msgstr "`endef' µ¿»÷Ì¿Îá¤Î¸å¤í¤Ë̵´Ø·¸¤Êʸ»úÎ󤬤¢¤ê¤Þ¤¹"
+msgid "extraneous text after 'define' directive"
+msgstr "`define' µ¿»÷Ì¿Îá¤Î¸å¤í¤Ë̵´Ø·¸¤Êʸ»úÎ󤬤¢¤ê¤Þ¤¹"
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
+#: read.c:1490
+#, fuzzy
+msgid "missing 'endef', unterminated 'define'"
msgstr "`endef' ¤ò·ç¤¤¤Æ¤ª¤ê, `define' ¤¬½ªÎ»¤µ¤ì¤Þ¤»¤ó"
-#: read.c:1420
+#: read.c:1518
#, fuzzy
-msgid "extraneous text after `endef' directive"
+msgid "extraneous text after 'endef' directive"
msgstr "`endef' µ¿»÷Ì¿Îá¤Î¸å¤í¤Ë̵´Ø·¸¤Êʸ»úÎ󤬤¢¤ê¤Þ¤¹"
-#: read.c:1490
-#, c-format
-msgid "Extraneous text after `%s' directive"
+#: read.c:1589
+#, fuzzy, c-format
+msgid "extraneous text after '%s' directive"
msgstr "`%s' µ¿»÷Ì¿Îá¤Î¸å¤í¤Ë̵´Ø·¸¤Êʸ»úÎ󤬤¢¤ê¤Þ¤¹"
-#: read.c:1499 read.c:1513
-#, c-format
-msgid "extraneous `%s'"
+#: read.c:1598 read.c:1612
+#, fuzzy, c-format
+msgid "extraneous '%s'"
msgstr "̵´Ø·¸¤Ê `%s'"
-#: read.c:1518
-msgid "only one `else' per conditional"
+#: read.c:1617
+#, fuzzy
+msgid "only one 'else' per conditional"
msgstr "°ì¤Ä¤Î¾ò·ïÉô¤Ë¤Ä¤­°ì¤Ä¤·¤« `else' ¤ò»È¤¨¤Þ¤»¤ó"
-#: read.c:1797
-#, fuzzy
+#: read.c:1892
msgid "Malformed target-specific variable definition"
-msgstr "¥¿¡¼¥²¥Ã¥ÈËè¤ÎÊÑ¿ôÄêµÁ¤¬°Û¾ï¤Ç¤¹"
+msgstr "¥¿¡¼¥²¥Ã¥ÈÆÃÍ­¤ÎÊÑ¿ôÄêµÁ¤¬°Û¾ï¤Ç¤¹"
-#: read.c:1855
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
-msgstr ""
+msgstr "ɬÍ×¾ò·ï¤ò¥ì¥·¥ÔÆâ¤ÇÄêµÁ¤Ç¤­¤Þ¤»¤ó"
-#: 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 "¥¿¡¼¥²¥Ã¥È `%s' ¤Ï¥¿¡¼¥²¥Ã¥È¥Ñ¥¿¡¼¥ó¤È°ìÃפ·¤Þ¤»¤ó"
-#: 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 "¥¿¡¼¥²¥Ã¥È¥Õ¥¡¥¤¥ë `%s' ¤¬ : ¤È :: ¹àÌܤÎξÊý¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹"
-#: 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 "Ʊ°ì¥ë¡¼¥ëÆâ¤Ç¥¿¡¼¥²¥Ã¥È `%s' ¤¬Ê£¿ô²óÍ¿¤¨¤é¤ì¤Þ¤·¤¿."
-#: read.c:2006
+#: read.c:2114
#, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
-msgstr "·Ù¹ð: ¥¿¡¼¥²¥Ã¥È `%s' ¤Ø¤Î¥³¥Þ¥ó¥É¤òÃÖ¤­´¹¤¨¤Þ¤¹"
+msgid "warning: overriding recipe for target '%s'"
+msgstr "·Ù¹ð: ¥¿¡¼¥²¥Ã¥È `%s' ¤Î¤¿¤á¤Î¥ì¥·¥Ô¤òÃÖ¤­´¹¤¨¤Þ¤¹"
-#: read.c:2009
+#: read.c:2117
#, fuzzy, c-format
-msgid "warning: ignoring old recipe for target `%s'"
-msgstr "·Ù¹ð: ¥¿¡¼¥²¥Ã¥È `%s' ¤Ø¤Î¸Å¤¤¥³¥Þ¥ó¥É¤Ï̵»ë¤µ¤ì¤Þ¤¹"
+msgid "warning: ignoring old recipe for target '%s'"
+msgstr "·Ù¹ð: ¥¿¡¼¥²¥Ã¥È `%s' ¤Î¤¿¤á¤Î¸Å¤¤¥ì¥·¥Ô¤Ï̵»ë¤µ¤ì¤Þ¤¹"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
msgstr "·Ù¹ð: NUL ʸ»ú¤¬¤¢¤ê¤Þ¤¹; ¹Ô¤Î»Ä¤ê¤Ï̵»ë¤µ¤ì¤Þ¤¹"
-#: 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 "`%s' ¤ËÂФ·¤Æ¹Ô¤¦¤Ù¤­»ö¤Ï¤¢¤ê¤Þ¤»¤ó."
-#: remake.c:235
-#, c-format
-msgid "`%s' is up to date."
-msgstr "`%s' ¤Ï¹¹¿·ºÑ¤ß¤Ç¤¹"
+#: remake.c:233
+#, fuzzy, c-format
+msgid "'%s' is up to date."
+msgstr "`%s' ¤Ï¹¹¿·ºÑ¤ß¤Ç¤¹."
-#: remake.c:306
-#, c-format
-msgid "Pruning file `%s'.\n"
+#: remake.c:305
+#, fuzzy, c-format
+msgid "Pruning file '%s'.\n"
msgstr "¥Õ¥¡¥¤¥ë `%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 "%s¥¿¡¼¥²¥Ã¥È `%s' ¤ò make ¤¹¤ë¥ë¡¼¥ë¤¬¤¢¤ê¤Þ¤»¤ó%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' ¤ËɬÍפʥ¿¡¼¥²¥Ã¥È `%2$s' ¤ò make ¤¹¤ë¥ë¡¼¥ë¤¬¤¢¤ê¤Þ¤»¤ó%4$s"
#: remake.c:413
-#, c-format
-msgid "Considering target file `%s'.\n"
+#, fuzzy, c-format
+msgid "Considering target file '%s'.\n"
msgstr "¥¿¡¼¥²¥Ã¥È¥Õ¥¡¥¤¥ë `%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 "ºÇ¶á»î¤·¤Æ¹¹¿·¤Ë¼ºÇÔ¤·¤¿¥Õ¥¡¥¤¥ë `%s'.\n"
#: remake.c:432
-#, c-format
-msgid "File `%s' was considered already.\n"
+#, fuzzy, c-format
+msgid "File '%s' was considered already.\n"
msgstr "¥Õ¥¡¥¤¥ë `%s' ¤Ï¸¡Æ¤ºÑ¤ß¤Ç¤¹.\n"
#: remake.c:442
-#, c-format
-msgid "Still updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Still updating file '%s'.\n"
msgstr "¤Þ¤À¥Õ¥¡¥¤¥ë `%s' ¤Î¹¹¿·Ãæ¤Ç¤¹.\n"
#: remake.c:445
-#, c-format
-msgid "Finished updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Finished updating file '%s'.\n"
msgstr "¥Õ¥¡¥¤¥ë `%s' ¤Î¹¹¿·¤¬½ªÎ»¤·¤Þ¤·¤¿.\n"
#: remake.c:474
-#, c-format
-msgid "File `%s' does not exist.\n"
+#, fuzzy, c-format
+msgid "File '%s' does not exist.\n"
msgstr "¥Õ¥¡¥¤¥ë `%s' ¤¬Â¸ºß¤·¤Þ¤»¤ó.\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 ""
"*** ·Ù¹ð: .LOW_RESOLUTION_TIME ¥Õ¥¡¥¤¥ë `%s' ¤¬¹â²òÁüÅÙ¥¿¥¤¥à¥¹¥¿¥ó¥×¤ò»ý¤Ã¤Æ"
"¤¤¤Þ¤¹"
-#: 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 "`%s' ¤Î¤¿¤á¤Î°ÅÌۥ롼¥ë¤ò¸«¤Ä¤±¤Þ¤·¤¿.\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 "`%s' ¤Î¤¿¤á¤Î°ÅÌۥ롼¥ë¤¬¤¢¤ê¤Þ¤»¤ó.\n"
#: remake.c:502
#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
-msgstr "`%s' ÍѤΥǥե©¥ë¥È¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Þ¤¹.\n"
+msgid "Using default recipe for '%s'.\n"
+msgstr "`%s' ÍѤΥǥե©¥ë¥È¥ì¥·¥Ô¤ò»ÈÍѤ·¤Þ¤¹.\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
msgstr "½Û´Ä %s <- %s °Í¸´Ø·¸¤¬ÇË´þ¤µ¤ì¤Þ¤·¤¿."
-#: 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 "¥¿¡¼¥²¥Ã¥È¥Õ¥¡¥¤¥ë `%s' ¤ÎɬÍ×¾ò·ï¤òËþ¤¿¤·¤Þ¤·¤¿.\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 "`%s' ¤ÎɬÍ×¾ò·ï¤ò make ¤·¤Þ¤¹.\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 "¥¿¡¼¥²¥Ã¥È¥Õ¥¡¥¤¥ë `%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 "¥¿¡¼¥²¥Ã¥È `%s' ¤Ï¥¨¥é¡¼¤Ë¤è¤êºÆ make ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿."
-#: remake.c:727
-#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
+#: remake.c:731
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
msgstr "ɬÍ×¾ò·ï `%s' ¤Ï¥¿¡¼¥²¥Ã¥È `%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 "¥¿¡¼¥²¥Ã¥È `%2$s' ¤ÎɬÍ×¾ò·ï `%1$s' ¤¬Â¸ºß¤·¤Þ¤»¤ó.\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 "ɬÍ×¾ò·ï `%s' ¤Ï¥¿¡¼¥²¥Ã¥È `%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 "ɬÍ×¾ò·ï `%s' ¤Ï¥¿¡¼¥²¥Ã¥È `%s' ¤è¤ê¤â¸Å¤¤.\n"
-#: remake.c:758
-#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
+#: remake.c:762
+#, fuzzy, c-format
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
msgstr "¥¿¡¼¥²¥Ã¥È `%s' ¤Ï¥À¥Ö¥ë¥³¥í¥ó¤Ç, ¤«¤ÄɬÍ×¾ò·ï¤ò»ý¤¿¤Ê¤¤.\n"
-#: remake.c:765
+#: remake.c:769
#, fuzzy, c-format
-msgid "No recipe for `%s' and no prerequisites actually changed.\n"
-msgstr "`%s' ¤Î¤¿¤á¤Î¥³¥Þ¥ó¥É¤¬Ìµ¤¯, ¤«¤Ä¼ÂºÝ¤ËÊѹ¹¤µ¤ì¤¿É¬Í×¾ò·ï¤¬¤Ê¤¤.\n"
+msgid "No recipe for '%s' and no prerequisites actually changed.\n"
+msgstr "`%s' ¤Î¤¿¤á¤Î¥ì¥·¥Ô¤¬Ìµ¤¯, ɬÍ×¾ò·ï¤Ï¼ÂºÝ¤Ë¤ÏÊѹ¹¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿.\n"
-#: remake.c:770
-#, c-format
-msgid "Making `%s' due to always-make flag.\n"
-msgstr "akways-make ¥Õ¥é¥°¤¬¤¿¤Ã¤Æ¤¤¤ë¤Î¤Ç `%s' ¤ò make ¤·¤Þ¤¹.\n"
+#: remake.c:774
+#, fuzzy, c-format
+msgid "Making '%s' due to always-make flag.\n"
+msgstr "always-make ¥Õ¥é¥°¤¬¤¿¤Ã¤Æ¤¤¤ë¤Î¤Ç `%s' ¤ò make ¤·¤Þ¤¹.\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 "¥¿¡¼¥²¥Ã¥È `%s' ¤òºÆ make ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó"
-#: remake.c:780
-#, c-format
-msgid "; using VPATH name `%s'"
+#: remake.c:784
+#, fuzzy, c-format
+msgid "; using VPATH name '%s'"
msgstr "; VPATH ̾ `%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 "¥¿¡¼¥²¥Ã¥È `%s' ¤ÎºÆ make ¤¬É¬ÍפǤ¹.\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 " VPATH ̾ `%s' ¤ò̵»ë¤·¤Þ¤¹.\n"
-#: remake.c:815
+#: remake.c:819
#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
-msgstr "`%s' ¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Þ¤¹.\n"
+msgid "Recipe of '%s' is being run.\n"
+msgstr "`%s' ¤Î¥ì¥·¥Ô¤ò¼Â¹ÔÃæ¤Ç¤¹.\n"
-#: 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 "¥¿¡¼¥²¥Ã¥È¥Õ¥¡¥¤¥ë `%s' ¤ÎºÆ make ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿.\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 "¥¿¡¼¥²¥Ã¥È¥Õ¥¡¥¤¥ë `%s' ¤ÎºÆ make ¤ËÀ®¸ù¤·¤Þ¤·¤¿.\n"
-#: remake.c:828
-#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
+#: remake.c:832
+#, fuzzy, c-format
+msgid "Target file '%s' needs to be remade under -q.\n"
msgstr "¥¿¡¼¥²¥Ã¥È¥Õ¥¡¥¤¥ë `%s' ¤Ï -q ¥ª¥×¥·¥ç¥óÉÕ¤Ç¤ÎºÆ make ¤¬É¬ÍפǤ¹.\n"
-#: 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 "`%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 "·Ù¹ð: ¥Õ¥¡¥¤¥ë `%s' ¤Î½¤Àµ»þ¹ï¤¬Ì¤Íè¤Î»þ¹ï¤Ç¤¹"
-#: remake.c:1370
+#: remake.c:1385
#, fuzzy, c-format
-msgid "Warning: File `%s' has modification time %s s in the future"
-msgstr "·Ù¹ð: ¥Õ¥¡¥¤¥ë `%s' ¤Î½¤Àµ»þ¹ï¤¬ %.2g ÉÃʬ̤Íè¤Î»þ¹ï¤Ç¤¹"
+msgid "Warning: File '%s' has modification time %s s in the future"
+msgstr "·Ù¹ð: ¥Õ¥¡¥¤¥ë `%s' ¤Î½¤Àµ»þ¹ï %s ¤Ï̤Íè¤Î¤â¤Î¤Ç¤¹"
-#: 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 Í×ÁÇ `%s' ¤¬¥Ñ¥¿¡¼¥ó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
msgstr "Customs ¤¬¥¨¥¯¥¹¥Ý¡¼¥È¤·¤Æ¤¯¤ì¤Þ¤»¤ó: %s\n"
-#: rule.c:499
+#: rule.c:496
msgid ""
"\n"
"# Implicit Rules"
@@ -1616,7 +1821,7 @@ msgstr ""
"\n"
"# °ÅÌۥ롼¥ë"
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
@@ -1624,7 +1829,7 @@ msgstr ""
"\n"
"# °ÅÌۥ롼¥ë¤Ê¤·."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -1633,242 +1838,264 @@ msgstr ""
"\n"
"# %u ¸Ä¤Î°ÅÌۥ롼¥ë, %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr " °Ê¾å."
-#: rule.c:534
-#, fuzzy, c-format
+#: rule.c:531
+#, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
msgstr "¥Ð¥°: num_pattern_rules ¤¬´Ö°ã¤Ã¤Æ¤¤¤ë! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "̤ÃΤΥ·¥°¥Ê¥ë"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
msgstr "¥Ï¥ó¥°¥¢¥Ã¥×"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "³ä¤ê¹þ¤ß"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
msgstr "½ªÎ»"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
msgstr "ÉÔÀµ¤Ê¥Ï¡¼¥É¥¦¥§¥¢Ì¿Îá"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
msgstr "¥È¥ì¡¼¥¹/¥Ö¥ì¥¤¥¯¥Ý¥¤¥ó¥È¥È¥é¥Ã¥×"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "Abort ¤·¤Þ¤·¤¿"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
msgstr "IOT ¥È¥é¥Ã¥×"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
msgstr "EMT ¥È¥é¥Ã¥×"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
msgstr "ÉâÆ°¾®¿ôÅÀÎã³°"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "Kill ¤µ¤ì¤Þ¤·¤¿"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr "¥Ð¥¹¥¨¥é¡¼"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "¥á¥â¥ê°ãÈ¿"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "ÉÔÀµ¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr "Æɤ߼ê¤Î¤Ê¤¤¥Ñ¥¤¥×¤Ø¤Î½ñ¤­¹þ¤ß"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "¥¢¥é¡¼¥à¥¯¥í¥Ã¥¯"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
msgstr "¶¯À©½ªÎ»"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr "¥æ¡¼¥¶ÄêµÁ¥·¥°¥Ê¥ë 1"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr "¥æ¡¼¥¶ÄêµÁ¥·¥°¥Ê¥ë 2"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
msgstr "»Ò¥×¥í¥»¥¹½ªÎ»"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
msgstr "ÅŸ»¾ã³²"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "°ì»þÄä»ß"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
msgstr "°ì»þÄä»ß (tty ÆþÎÏ)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
msgstr "°ì»þÄä»ß (tty ½ÐÎÏ)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "°ì»þÄä»ß (¥·¥°¥Ê¥ë)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
msgstr "CPU »þ´Ö¤¬À©¸Â¤ò±Û¤¨¤Þ¤·¤¿"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
msgstr "¥Õ¥¡¥¤¥ë¥µ¥¤¥ºÀ©¸Â¤ò±Û¤¨¤Þ¤·¤¿"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
msgstr "²¾ÁÛ¥¿¥¤¥ÞËþλ"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
msgstr "¥×¥í¥Õ¥¡¥¤¥ë¥¿¥¤¥ÞËþλ"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
msgstr "¥¦¥£¥ó¥É¥¦¥µ¥¤¥ºÊѹ¹"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "ºÆ³«¤µ¤ì¤Þ¤·¤¿"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
msgstr "¶ÛµÞ I/O ¾ò·ï"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
-msgstr "ÈóƱ´ü I/O ²ÄǽÀ­"
+msgstr "Æþ½ÐÎϲÄǽ"
-#: 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 "¥ê¥½¡¼¥¹¤¬¼º¤ï¤ì¤Þ¤·¤¿"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "´í¸±¥·¥°¥Ê¥ë"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr "¾ðÊóÍ×µá"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
msgstr "ÉâÆ°¾®¿ôÅÀ¥³¥×¥í¥»¥Ã¥µ¤¬ÍøÍÑÉÔǽ"
-#: 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
-#, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+#: strcache.c:266
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
msgstr ""
+"%s »ÈÍѤµ¤ì¤¿ strcache : ¹ç·× = %d (%d) / ºÇÂç = %d / ºÇ¾® = %d / Ê¿¶Ñ = %d\n"
-#: 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
-#, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+#: strcache.c:280
+#, fuzzy, c-format
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
msgstr ""
+"%s »ÈÍѤµ¤ì¤¿ strcache : ¹ç·× = %d (%d) / ºÇÂç = %d / ºÇ¾® = %d / Ê¿¶Ñ = %d\n"
-#: strcache.c:244
-#, fuzzy
+#: strcache.c:283
+#, fuzzy, c-format
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
+msgstr ""
+"%s ̤»ÈÍѤΡ¡ strcache: ¹ç·× = %d (%d) / ºÇÂç = %d / ºÇ¾® = %d / Ê¿¶Ñ = %d\n"
+
+#: strcache.c:287
+#, fuzzy, c-format
msgid ""
"\n"
-"# strcache hash-table stats:\n"
+"%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
+msgstr ""
+"\n"
+"%s # strcache Æâ¤Î %d ¸Ä¤Îʸ»úÎó¤Î¤¦¤Á: õº÷ = %lu / ¥Ò¥Ã¥È = %lu\n"
+
+#: strcache.c:289
+#, fuzzy
+msgid ""
+"# hash-table stats:\n"
"# "
msgstr ""
"\n"
"# ¥Õ¥¡¥¤¥ë¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¾õÂÖ:\n"
"# "
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "¼«Æ°ÊÑ¿ô"
+
+#: variable.c:1610
msgid "default"
msgstr "¥Ç¥Õ¥©¥ë¥È"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr "´Ä¶­ÊÑ¿ô"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr "makefile ÊÑ¿ô"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
-msgstr "-e ¥ª¥×¥·¥ç¥ó¤Ç¤Î´Ä¶­ÊÑ¿ô"
+msgstr "-e ¥ª¥×¥·¥ç¥ó¤Ç»ØÄꤷ¤¿´Ä¶­ÊÑ¿ô"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr "¥³¥Þ¥ó¥É¥é¥¤¥óÊÑ¿ô"
-#: variable.c:1556
-msgid "`override' directive"
+#: variable.c:1625
+#, fuzzy
+msgid "'override' directive"
msgstr "`override' µ¿»÷Ì¿Îá"
-#: variable.c:1559
-msgid "automatic"
-msgstr "¼«Æ°ÊÑ¿ô"
-
-#: variable.c:1570
-#, c-format
-msgid " (from `%s', line %lu)"
-msgstr " (`%s', %lu ¹ÔÌܤ«¤é)"
+#: variable.c:1636
+#, fuzzy, c-format
+msgid " (from '%s', line %lu)"
+msgstr " (`%s', %lu ¹ÔÌÜ)"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
msgstr "# ÊÑ¿ô¥»¥Ã¥È¤Î¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤Î¾õÂÖ:\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1876,16 +2103,15 @@ msgstr ""
"\n"
"# ÊÑ¿ô\n"
-#: variable.c:1627
-#, fuzzy
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
msgstr ""
"\n"
-"# ¥Ñ¥¿¡¼¥ó»ØÄêÊÑ¿ô¤ÎÃÍ"
+"# ¥Ñ¥¿¡¼¥ó»ØÄê ÊÑ¿ô ÃÍ"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
@@ -1893,7 +2119,7 @@ msgstr ""
"\n"
"# ¥Ñ¥¿¡¼¥ó»ØÄêÊÑ¿ô¤ÎÃͤʤ·."
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
@@ -1902,93 +2128,93 @@ msgstr ""
"\n"
"# %u ¸Ä¤Î¥Ñ¥¿¡¼¥ó»ØÄêÊÑ¿ô¤ÎÃÍ"
-#: variable.h:219
-#, c-format
-msgid "warning: undefined variable `%.*s'"
+#: variable.h:224
+#, fuzzy, c-format
+msgid "warning: undefined variable '%.*s'"
msgstr "·Ù¹ð: ̤ÄêµÁ¤ÎÊÑ¿ô `%.*s'"
-#: vmsfunctions.c:92
-#, fuzzy, c-format
+#: vmsfunctions.c:91
+#, c-format
msgid "sys$search() failed with %d\n"
-msgstr "sys$search ¤¬ %d ¤Ç¼ºÇÔ¤·¤Þ¤·¤¿\n"
+msgstr "sys$search() ¤¬ %d ¤Ç¼ºÇÔ¤·¤Þ¤·¤¿\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr "·Ù¹ð: ¶õ¤Î¥ê¥À¥¤¥ì¥¯¥È\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 "ÆâÉô¥¨¥é¡¼: `%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 ""
"-·Ù¹ð, DCL ¤«¤é¤Î CTRL-Y Áàºî¤òºÆ¤ÓÍ­¸ú¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¤«¤âÃΤì¤Þ¤»¤ó.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr "¥Ó¥ë¥È¥¤¥ó [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr "¥Ó¥ë¥È¥¤¥ó CD %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr "¥Ó¥ë¥È¥¤¥ó RM %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
msgstr "ÉÔÌÀ¤Ê¥Ó¥ë¥È¥¤¥ó¥³¥Þ¥ó¥É '%s'\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr "¥¨¥é¡¼, ¶õ¤Î¥³¥Þ¥ó¥É\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr "%s ¤«¤éÆþÎÏ¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤Þ¤·¤¿\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr "%s ¤Ø¥¨¥é¡¼¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤Þ¤·¤¿\n"
-#: vmsjobs.c:523
-#, fuzzy, c-format
+#: vmsjobs.c:518
+#, c-format
msgid "Append output to %s\n"
-msgstr "%s ¤Ø½ÐÎÏ¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤Þ¤·¤¿\n"
+msgstr "½ÐÎϤò %s ¤ØÄɲÃ\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
msgstr "%s ¤Ø½ÐÎÏ¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤Þ¤·¤¿\n"
-#: vmsjobs.c:599
+#: vmsjobs.c:593
#, c-format
msgid "Append %.*s and cleanup\n"
-msgstr ""
+msgstr "Äɲà %.*s ¤È¸åÊÒÉÕ¤±\n"
-#: vmsjobs.c:606
+#: vmsjobs.c:600
#, c-format
msgid "Executing %s instead\n"
msgstr "Âå¤ï¤ê¤Ë %s ¤ò¼Â¹Ô¤·¤Þ¤¹\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr "spawn ¤Î¥¨¥é¡¼, %d\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
@@ -1996,37 +2222,67 @@ msgstr ""
"\n"
"# VPATH õº÷¥Ñ¥¹\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
-msgstr "# `vpath' õº÷¥Ñ¥¹¤Ï¤¢¤ê¤Þ¤»¤ó"
+#: vpath.c:600
+#, fuzzy
+msgid "# No 'vpath' search paths."
+msgstr "# `vpath' õº÷¥Ñ¥¹¤Ï¤¢¤ê¤Þ¤»¤ó."
-#: 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' õº÷¥Ñ¥¹\n"
+"# %u ¸Ä¤Î `vpath' õº÷¥Ñ¥¹¤¬¤¢¤ê¤Þ¤¹.\n"
-#: vpath.c:608
+#: vpath.c:605
+#, fuzzy
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
"# °ìÈ̤Π(`VPATH' ÊÑ¿ô) õº÷¥Ñ¥¹¤Ê¤·."
-#: vpath.c:614
+#: vpath.c:611
+#, fuzzy
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
"# °ìÈ̤Π(`VPATH' ÊÑ¿ô) õº÷¥Ñ¥¹:\n"
"# "
+#~ msgid "# Invalid value in `update_status' member!"
+#~ msgstr "# `update_status' ¥á¥ó¥Ð¤Ë̵¸ú¤ÊÃÍ!"
+
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] ¥¨¥é¡¼ 0x%x (̵»ë¤µ¤ì¤Þ¤·¤¿)"
+
+#~ msgid "[%s] Error %d (ignored)"
+#~ msgstr "[%s] ¥¨¥é¡¼ %d (̵»ë¤µ¤ì¤Þ¤·¤¿)"
+
+#~ msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
+#~ msgstr "¥ì¥·¥Ô¤ò %s:%lu ¤«¤é¸Æ¤Ó½Ð¤·¤Æ¥¿¡¼¥²¥Ã¥È `%s' ¤ò¹¹¿·¤·¤Þ¤¹.\n"
+
+#~ msgid "Invoking builtin recipe to update target `%s'.\n"
+#~ msgstr "¥¿¡¼¥²¥Ã¥È `%s' ¤ò¹¹¿·¤¹¤ë¤¿¤áÆ⢥쥷¥Ô¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤Þ¤¹.\n"
+
+#~ msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+#~ msgstr "%s # strcache ¥Ð¥Ã¥Õ¥¡ %d ¤Î¤¦¤Á: (* %d B/¥Ð¥Ã¥Õ¥¡ = %d B)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "# strcache hash-table stats:\n"
+#~ "# "
+#~ msgstr ""
+#~ "\n"
+#~ "# strcache ¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤ÎÅý·×:\n"
+#~ "# "
+
#~ msgid "Syntax error, still inside '\"'\n"
#~ msgstr "ʸˡ¥¨¥é¡¼, '\"' Æâ¤Î¤Þ¤Þ¤Ç¤¹\n"
@@ -2081,6 +2337,3 @@ msgstr ""
#~ msgid "the `word' function takes a positive index argument"
#~ msgstr "`word' ´Ø¿ô¤ÏÈóÉé¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹°ú¿ô¤ò¤È¤ê¤Þ¤¹"
-
-#~ msgid " (ignored)"
-#~ msgstr " (̵»ë¤µ¤ì¤Þ¤·¤¿)"
diff --git a/po/ko.gmo b/po/ko.gmo
index a00dcfc..bf0cf9c 100644
--- a/po/ko.gmo
+++ b/po/ko.gmo
Binary files differ
diff --git a/po/ko.po b/po/ko.po
index 939e2a8..256ffb1 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -6,117 +6,123 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU make 3.79.1\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: 2001-06-08 01:30+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: Korean <ko@li.org>\n"
+"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=EUC-KR\n"
"Content-Transfer-Encoding: 8-bit\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 "Áö¿øµÇÁö ¾Ê´Â ±â´ÉÀ» »ç¿ëÇÏ·Á°í ÇÔ: `%s'"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
msgstr "¾ÆÄ«ÀÌºê ¸â¹ö touch´Â VMS¿¡¼­ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù"
-#: 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: ¹®¼­ `%s'°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù"
-#: 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'´Â Àû¹ýÇÑ ¹®¼­°¡ ¾Æ´Õ´Ï´Ù"
-#: 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: ¸â¹ö `%s'°¡ `%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: `%s'¿¡ ´ëÇÏ¿© ar_member_touch¿¡¼­ ½ÇÆÐ ¸®ÅÏ ÄÚµå"
-#: arscan.c:69
+#: arscan.c:67
#, fuzzy, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
msgstr "lbr$set_moduleÀÌ ¸ðµâÁ¤º¸¸¦ ÃßÃâÇÏ´Â µ¥ ½ÇÆÐ, »óÅ = %d"
-#: arscan.c:175
+#: arscan.c:173
#, fuzzy, c-format
msgid "lbr$ini_control() failed with status = %d"
msgstr "lbr$ini_controlÀÌ »óÅ = %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 "¸â¹ö `%2$s'¸¦ ÂüÁ¶Çϱâ À§ÇØ ¶óÀ̺귯¸® `%1$s'¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù"
-#: 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 "¸â¹ö `%s'%s: %ld¹ÙÀÌÆ®, %ld (%ld) ¿¡¼­.\n"
# ÀÌ¹Ì Àß·ÁÁø À̸§À» Ç¥½ÃÇϸ鼭 À̸§ÀÌ Àß·ÁÁ³À» ¼öµµ ÀÖÀ¸´Ï À¯ÀÇÇ϶ó´Â ¶æ
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr " (À̸§ÀÌ Àß·Á³ª°¬À» ¼öµµ ÀÖ½À´Ï´Ù)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " ³¯Â¥ %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d, gid = %d, ¸ðµå = 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 "*** ÁßÁö.\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] ¾ÆÄ«ÀÌºê ¸â¹ö `%s'´Â °¡Â¥ÀÏ ¼ö ÀÖ½À´Ï´Ù; Áö¿ìÁö ¾Ê½À´Ï´Ù"
-#: 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 "*** ¾ÆÄ«ÀÌºê ¸â¹ö `%s'´Â °¡Â¥ÀÏ ¼ö ÀÖ½À´Ï´Ù; Áö¿ìÁö ¾Ê½À´Ï´Ù"
-#: commands.c:638
-#, c-format
-msgid "*** [%s] Deleting file `%s'"
+#: commands.c:646
+#, fuzzy, c-format
+msgid "*** [%s] Deleting file '%s'"
msgstr "*** [%s] ÆÄÀÏ `%s'À»(¸¦) ÁÖÀÔ´Ï´Ù"
-#: commands.c:640
-#, c-format
-msgid "*** Deleting file `%s'"
+#: commands.c:648
+#, fuzzy, c-format
+msgid "*** Deleting file '%s'"
msgstr "*** ÆÄÀÏ `%s'À»(¸¦) Áö¿ó´Ï´Ù"
-#: commands.c:676
+#: commands.c:684
#, fuzzy
msgid "# recipe to execute"
msgstr "# ½ÇÇàÇÒ ¸í·É¾î"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr " (³»Àå):"
-#: commands.c:681
-#, c-format
-msgid " (from `%s', line %lu):\n"
+#: commands.c:689
+#, fuzzy, c-format
+msgid " (from '%s', line %lu):\n"
msgstr " (`%s'¿¡¼­, %lu¹ø° ÁÙ):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -124,225 +130,229 @@ msgstr ""
"\n"
"# µð·ºÅ丮\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
msgstr "# %s: statÀ» ÇÒ ¼ö ¾ø¾ú½À´Ï´Ù.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
msgstr "# %s (Å° %s, º¯°æ½Ã°¢ %d): ¿­ ¼ö ¾ø½À´Ï´Ù.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
msgstr "# %s (ÀåÄ¡ %d, ¾ÆÀ̳ëµå [%d,%d,%d]): ¿­ ¼ö ¾ø½À´Ï´Ù.\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
msgstr "# %s (ÀåÄ¡ %ld, ¾ÆÀ̳ëµå %ld): ¿­ ¼ö ¾ø½À´Ï´Ù.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr "# %s (Å° %s, º¯°æ½Ã°¢ %d): "
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
msgstr "# %s (ÀåÄ¡ %d, ¾ÆÀ̳ëµå [%d,%d,%d]): "
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
msgstr "# %s (ÀåÄ¡ %ld, ¾ÆÀ̳ëµå %ld): "
# ¿©±â¼­ No´Â "No files"¶ó°í ¾²ÀδÙ. ±Ã±ØÀûÀ¸·Î msgid°¡ °íÃÄÁ®¾ß ÇÔ
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "0°³"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " ÆÄÀÏ, "
# ¿©±â¼­ no´Â "no impossibilities"¶ó°í ¾²ÀδÙ. ±Ã±ØÀûÀ¸·Î msgid°¡ °íÃÄÁ®¾ß ÇÔ
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "0°³"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
msgstr " ºÒ°¡´É"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr " Áö±Ý±îÁö."
-#: dir.c:1092
+#: dir.c:1085
#, fuzzy, c-format
msgid " impossibilities in %lu directories.\n"
msgstr " %u°³ÀÇ µð·ºÅ丮¿¡¼­ ºÒ°¡´É.\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 "Àç±Í º¯¼ö `%s'´Â ÀÚ±â ÀÚ½ÅÀ» ÂüÁ¶ÇÏ°í ÀÖ½À´Ï´Ù (°á±¹)"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
msgstr "Á¾°áµÇÁö ¾ÊÀº º¯¼ö ÂüÁ¶"
-#: 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 "ÆÄÀÏ `%s'ÀÇ %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 "ÆÄÀÏ `%s'¸¦ À§ÇÑ ¸í·ÉÀ» ¹¬½ÃÀû ±ÔÄ¢ Ž»öÀ¸·Î ã¾Ò½À´Ï´Ù."
-#: 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 "ÇÏÁö¸¸ `%s'´Â ÀÌÁ¦ `%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 "`%s'¿¡ ´ëÇÑ ¸í·É¾î´Â `%s'¿¡ ´ëÇÑ ¸í·É¾î°¡ ¿ì¼±ÇϹǷΠ¹«½ÃµË´Ï´Ù.."
-#: file.c:298
-#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
+#: file.c:300
+#, fuzzy, c-format
+msgid "can't rename single-colon '%s' to double-colon '%s'"
msgstr "´ÜÀÏ ÄÝ·Ð `%s'¸¦ ÀÌÁß ÄÝ·Ð `%s'·Î À̸§¹Ù²Ü ¼ö ¾ø½À´Ï´Ù"
-#: file.c:303
-#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
+#: file.c:305
+#, fuzzy, c-format
+msgid "can't rename double-colon '%s' to single-colon '%s'"
msgstr "ÀÌÁß ÄÝ·Ð `%s'¸¦ ´ÜÀÏ ÄÝ·Ð `%s'·Î À̸§¹Ù²Ü ¼ö ¾ø½À´Ï´Ù"
-#: file.c:392
-#, c-format
-msgid "*** Deleting intermediate file `%s'"
+#: file.c:396
+#, fuzzy, c-format
+msgid "*** Deleting intermediate file '%s'"
msgstr "*** Áß°£ ÆÄÀÏ `%s'À»(¸¦) ÁÖÀÔ´Ï´Ù"
-#: file.c:396
+#: file.c:400
#, fuzzy
msgid "Removing intermediate files...\n"
msgstr "*** Áß°£ ÆÄÀÏ `%s'À»(¸¦) ÁÖÀÔ´Ï´Ù"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
msgstr "%s: ŸÀÓ½ºÅÆÇÁ°¡ ¹üÀ§¸¦ ¹þ¾î³³´Ï´Ù; %sÀ»(¸¦) ´ëüÇÕ´Ï´Ù"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "ÇöÀç ½Ã°¢"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
msgstr "# Ÿ°ÙÀÌ ¾Æ´Ô:"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
msgstr "# ÇÁ·¹½Ã¾î½º ÆÄÀÏ (.PRECIOUSÀÇ ¼±ÇàÁ¶°Ç)."
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
msgstr "# Æ÷´Ï Ÿ°Ù (.PHONYÀÇ ¼±ÇàÁ¶°Ç)."
-#: file.c:933
+#: file.c:958
#, fuzzy
msgid "# Command line target."
msgstr "# ¸í·ÉÇà Ÿ°Ù."
-#: file.c:935
+#: file.c:960
#, fuzzy
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
msgstr "# ±âº» ¸ÞÀÌÅ©ÆÄÀÏ È¤Àº MAKEFILES ¸ÞÀÌÅ©ÆÄÀÏ."
-#: file.c:937
+#: file.c:962
+#, fuzzy
+msgid "# Builtin rule"
+msgstr ""
+"\n"
+"# ¹¬½ÃÀû ±ÔÄ¢ ¾øÀ½."
+
+#: file.c:964
msgid "# Implicit rule search has been done."
msgstr "# ¹¬½ÃÀû ±ÔÄ¢ Ž»öÀÌ ¿Ï·áµÇ¾ú½À´Ï´Ù."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
msgstr "# ¹¬½ÃÀû ±ÔÄ¢ Ž»öÀÌ ¿Ï·áµÇÁö ¾Ê¾Ò½À´Ï´Ù."
-#: file.c:940
-#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
+#: file.c:967
+#, fuzzy, c-format
+msgid "# Implicit/static pattern stem: '%s'\n"
msgstr "# ¹¬½ÃÀû/°íÁ¤ ÆÐÅÏ ½ºÅÛ: `%s'\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
msgstr "# ÆÄÀÏÀÌ Áß°£´Ü°èÀÇ ¼±ÇàÁ¶°ÇÀÔ´Ï´Ù."
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
msgstr "# ´ÙÀ½µµ ¸¸µì´Ï´Ù:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
msgstr "# º¯°æ ½Ã°¢ÀÌ °áÄÚ °Ë»çµÇÁö ¾Ê¾ÒÀ½."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr "# ÆÄÀÏÀÌ ¸Å¿ì ¿À·¡µÇ¾ú½À´Ï´Ù."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr "# ¸¶Áö¸· º¯°æ %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# ÆÄÀÏÀÌ °»½ÅµÇ¾ú½À´Ï´Ù."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# ÆÄÀÏÀÌ °»½ÅµÇÁö ¾Ê¾Ò½À´Ï´Ù."
-#: file.c:968
+#: file.c:995
#, fuzzy
msgid "# Recipe currently running (THIS IS A BUG)."
msgstr "# ÇöÀç ½ÇÇàÁßÀÎ ¸í·É (ÀÌ°ÍÀº ¹ö±×ÀÔ´Ï´Ù)."
-#: file.c:971
+#: file.c:998
#, fuzzy
msgid "# Dependencies recipe running (THIS IS A BUG)."
msgstr "# ÇöÀç ½ÇÇàÁßÀÎ ÀÇÁ¸¼º (ÀÌ°ÍÀº ¹ö±×ÀÔ´Ï´Ù)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
msgstr "# ¼º°øÀûÀ¸·Î °»½ÅµÊ."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
msgstr "# °»½ÅµÉ ÇÊ¿ä°¡ ÀÖÀ½ (-q ¼³Á¤µÊ)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr "# °»½Å¿¡ ½ÇÆÐÇÔ."
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# `update_status' ¸â¹ö¿¡ °ªÀÌ À߸øµÇ¾ú½À´Ï´Ù!"
-
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
+#: file.c:1019
+#, fuzzy
+msgid "# Invalid value in 'command_state' member!"
msgstr "# `command_status' ¸â¹ö¿¡ °ªÀÌ À߸øµÇ¾ú½À´Ï´Ù!"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -350,124 +360,182 @@ msgstr ""
"\n"
"# ÆÄÀÏ"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
"# "
msgstr ""
-#: 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 "`word' ÇÔ¼öÀÇ Ã¹¹ø° ÀÎÀÚ°¡ ¼ýÀÚ°¡ ¾Æ´Õ´Ï´Ù"
-#: 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' ÇÔ¼öÀÇ Ã¹¹ø° ÀÎÀÚ´Â 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 "`wordlist' ÇÔ¼öÀÇ Ã¹¹ø° ÀÎÀÚ°¡ ¼ýÀÚ°¡ ¾Æ´Õ´Ï´Ù"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
+#: function.c:769
+#, fuzzy
+msgid "non-numeric second argument to 'wordlist' function"
msgstr "`wordlist' ÇÔ¼öÀÇ µÎ¹ø° ÀÎÀÚ°¡ ¼ýÀÚ°¡ ¾Æ´Õ´Ï´Ù"
-#: 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) ½ÇÆÐ (e=%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) ½ÇÆÐ (e=%d)\n"
-#: function.c:1474
+#: function.c:1490
#, fuzzy, c-format
msgid "CreatePipe() failed (e=%ld)\n"
msgstr "CreatePipe() ½ÇÆÐ (e=%d)\n"
-#: function.c:1479
+#: function.c:1498
#, fuzzy
msgid "windows32_openpipe(): process_init_fd() failed\n"
msgstr "windows32_openpipe (): process_init_fd() ½ÇÆÐ\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr "Àӽà ¹èÄ¡ ÆÄÀÏ %sÀ»(¸¦) Áö¿ó´Ï´Ù\n"
-#: function.c:2150
+#: function.c:2151
+#, c-format
+msgid "open: %s: %s"
+msgstr ""
+
+#: function.c:2158
+#, c-format
+msgid "write: %s: %s"
+msgstr ""
+
+#: 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'"
+msgid "insufficient number of arguments (%d) to function '%s'"
msgstr "ÇÔ¼ö `%2$s'¿¡ ÀÎÀÚ °¹¼ö(%1$d)°¡ ºÎÁ·ÇÕ´Ï´Ù "
-#: function.c:2162
+#: function.c:2291
#, fuzzy, c-format
-msgid "unimplemented on this platform: function `%s'"
+msgid "unimplemented on this platform: function '%s'"
msgstr "ÀÌ Ç÷§Æû¿¡¼­´Â ±¸ÇöµÇÁö ¾Ê¾Ò½À´Ï´Ù: `%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 "ÇÔ¼ö `%s'¿¡ ´ëÇØ Á¾·áµÇÁö ¾ÊÀº È£Ãâ: `%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: `%s'´Â ¾Ö¸ÅÇÑ ¿É¼ÇÀÔ´Ï´Ù\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 "ÇÔ¼ö `%2$s'¿¡ ÀÎÀÚ °¹¼ö(%1$d)°¡ ºÎÁ·ÇÕ´Ï´Ù "
+
+#: function.c:2555
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "ÇÔ¼ö `%2$s'¿¡ ÀÎÀÚ °¹¼ö(%1$d)°¡ ºÎÁ·ÇÕ´Ï´Ù "
+
+#: getopt.c:659
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: `%s'´Â ¾Ö¸ÅÇÑ ¿É¼ÇÀÔ´Ï´Ù\n"
+
+#: getopt.c:683
+#, fuzzy, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr "%s: `--%s' ¿É¼ÇÀº Àμö¸¦ Çã¿ëÇÏÁö ¾Ê½À´Ï´Ù\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: `%c%s' ¿É¼ÇÀº Àμö¸¦ Çã¿ëÇÏÁö ¾Ê½À´Ï´Ù\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: `%s' ¿É¼ÇÀº Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù\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: ÀνÄÇÒ ¼ö ¾ø´Â ¿É¼Ç `--%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: ÀνÄÇÒ ¼ö ¾ø´Â ¿É¼Ç `%c%s'\n"
-#: getopt.c:766
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: À߸øµÈ ¿É¼Ç -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: ºÎÀûÀýÇÑ ¿É¼Ç -- %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: ÀÌ ¿É¼ÇÀº Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù -- %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: `-W %s' ¿É¼ÇÀº ¾Ö¸ÅÇÑ ¿É¼ÇÀÔ´Ï´Ù\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: `-W %s' ¿É¼ÇÀº Àμö¸¦ Çã¿ëÇÏÁö ¾Ê½À´Ï´Ù\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
#, c-format
msgid "can't allocate %lu bytes for hash table: memory exhausted"
@@ -488,135 +556,160 @@ msgstr ""
msgid "Collisions=%ld/%ld=%.0f%%"
msgstr ""
-#: 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 "`%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 "`%s'¿¡ ´ëÇÑ ¾ÆÄ«À̺ê¸â¹ö ¹¬½ÃÀû ±ÔÄ¢À» ã°í ÀÖ½À´Ï´Ù.\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
msgstr "¹¬½ÃÀû ±ÔÄ¢ÀÇ Àç±Í¸¦ ÇÇÇÔ.\n"
+#: implicit.c:486
+#, c-format
+msgid "Stem too long: '%.*s'.\n"
+msgstr ""
+
# ½ºÅÛstemÀ̶õ ÆÐÅÏ ·ê¿¡¼­ prefix/suffix¸¦ Á¦¿ÜÇÑ ³ª¸ÓÁö¸¦ ¸»ÇÑ´Ù.
# ¿¹¸¦ µé¾î `%.c'¶ó´Â ÆÐÅÏ¿¡ `hello.c'°¡ µé¾î ¸Â¾ÒÀ» °æ¿ì stemÀº `hello'ÀÌ´Ù.
#: implicit.c:491
-#, c-format
-msgid "Trying pattern rule with stem `%.*s'.\n"
+#, fuzzy, c-format
+msgid "Trying pattern rule with stem '%.*s'.\n"
msgstr "½ºÅÛ `%.*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 "ºÒ°¡´ÉÇÑ ±ÔÄ¢ ¼±ÇàÁ¶°Ç `%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 "ºÒ°¡´ÉÇÑ ¹¬½ÃÀû ¼±ÇàÁ¶°Ç `%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 "±ÔÄ¢ ¼±ÇàÁ¶°Ç `%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 "¹¬½ÃÀû ¼±ÇàÁ¶°Ç `%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 "VPATH `%2$s'¿¡¼­ ¼±ÇàÁ¶°Ç `%1$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 "Áß°£ ÆÄÀÏ `%s'¿¡ ´ëÇÑ ¹¬½ÃÀû ±ÔÄ¢À» ã°í ÀÖ½À´Ï´Ù.\n"
-#: job.c:335
+#: job.c:361
#, fuzzy
msgid "Cannot create a temporary file\n"
msgstr "fwrite (Àӽà ÆÄÀÏ)"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] ¿À·ù 0x%x (¹«½ÃµÊ)"
-
-#: job.c:450
-#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] ¿À·ù 0x%x"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (¸Þ¸ð¸® ´ýÇÁµÊ)"
-#: job.c:454
-#, c-format
-msgid "[%s] Error %d (ignored)"
+#: job.c:487
+#, fuzzy
+msgid " (ignored)"
msgstr "[%s] ¿À·ù %d (¹«½ÃµÊ)"
-#: job.c:455
+#: job.c:491 job.c:1994
+#, fuzzy
+msgid "<builtin>"
+msgstr " (³»Àå):"
+
+#: 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] ¿À·ù 0x%x"
+
+#: job.c:513
+#, fuzzy, c-format
+msgid "%s[%s] Error %d%s"
msgstr "*** [%s] ¿À·ù %d"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (¸Þ¸ð¸® ´ýÇÁµÊ)"
+#: job.c:517
+#, c-format
+msgid "%s[%s] %s%s%s"
+msgstr ""
-#: job.c:549
+#: job.c:609
msgid "*** Waiting for unfinished jobs...."
msgstr "*** ³¡³ªÁö ¾ÊÀº ÀÛ¾÷À» ±â´Ù¸®°í ÀÖ½À´Ï´Ù...."
-#: job.c:579
+#: job.c:639
#, fuzzy, c-format
msgid "Live child %p (%s) PID %s %s\n"
msgstr "»ì¾ÆÀÖ´Â ÀÚ½Ä ÇÁ·Î¼¼½º 0x%08lx (%s) PID %ld %s\n"
-#: 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 " (¿ø°Ý)"
-#: job.c:758
+#: job.c:829
#, fuzzy, c-format
msgid "Reaping losing child %p PID %s %s\n"
msgstr "½ÇÆÐÇÑ ÀÚ½Ä ÇÁ·Î¼¼½º 0x%08lx PID %ld %sÀ»(¸¦) °ÅµÖµéÀÔ´Ï´Ù\n"
-#: job.c:759
+#: job.c:830
#, fuzzy, c-format
msgid "Reaping winning child %p PID %s %s\n"
msgstr "¼º°øÇÑ ÀÚ½Ä ÇÁ·Î¼¼½º 0x%08lx PID %ld %sÀ»(¸¦) °ÅµÖµéÀÔ´Ï´Ù\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
msgstr "Àӽà ¹èÄ¡ ÆÄÀÏ %sÀ»(¸¦) Áö¿ó´Ï´Ù\n"
-#: job.c:861
+#: job.c:843
+#, fuzzy, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "Àӽà ¹èÄ¡ ÆÄÀÏ %sÀ»(¸¦) Áö¿ó´Ï´Ù\n"
+
+#: job.c:949
#, fuzzy, c-format
msgid "Removing child %p PID %s%s from chain.\n"
msgstr "üÀο¡¼­ ÀÚ½ÄÇÁ·Î¼¼½º 0x%08lx PID %ld %sÀ»(¸¦) Áö¿ó´Ï´Ù.\n"
-# ??? µð¹ö±ë ¸Þ¼¼Áö
-#: job.c:920
-msgid "write jobserver"
-msgstr "ÀÛ¾÷¼­¹ö ¾²±â"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr ""
-#: job.c:922
+#: job.c:1011 job.c:1025
#, fuzzy, c-format
msgid "Released token for child %p (%s).\n"
msgstr "ÀÚ½ÄÇÁ·Î¼¼½º child 0x%08lx (%s) ¿¡ ÅäÅ«À» ³»¾î ÁÝ´Ï´Ù.\n"
-#: job.c:1453 job.c:2094
+# ??? µð¹ö±ë ¸Þ¼¼Áö
+#: job.c:1023
+msgid "write jobserver"
+msgstr "ÀÛ¾÷¼­¹ö ¾²±â"
+
+#: job.c:1612 job.c:2332
#, fuzzy, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
msgstr "process_easy()°¡ ÇÁ·Î¼¼½º¸¦ ½ÃÀÛÇÏ´Â µ¥ ½ÇÆÐÇß½À´Ï´Ù (e=%d)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
@@ -625,85 +718,104 @@ msgstr ""
"\n"
"½ÇÇà ½ÇÆп¡¼­ %d°³ÀÇ Àμö\n"
-#: job.c:1525
+#: job.c:1685
#, fuzzy, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
msgstr "ÀÚ½ÄÇÁ·Î¼¼½º 0x%08lx (%s) PID %ld%sÀ»(¸¦) üÀο¡ ³Ö½À´Ï´Ù.\n"
-#: job.c:1778
+#: job.c:1953
+#, c-format
+msgid "semaphore or child process wait: (Error %ld: %s)"
+msgstr ""
+
+#: job.c:1967
#, fuzzy, c-format
msgid "Obtained token for child %p (%s).\n"
msgstr "ÀÚ½Ä ÇÁ·Î¼¼½º 0x%08lx (%s)¿¡¼­ ÅäÅ«À» ¹Þ¾Ò½À´Ï´Ù.\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
msgstr "ÀÛ¾÷ ÆÄÀÌÇÁ Àбâ"
-#: 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: ¹®¼­ `%s'°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù"
-#: job.c:1802
+#: job.c:2005
#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "Ÿ°Ù `%s'À»(¸¦) ´Ù½Ã ¸¸µé ÇÊ¿ä°¡ ¾ø½À´Ï´Ù."
+msgid "%s: update target '%s' due to: %s"
+msgstr "%1$s`%3$s'¿¡¼­ ÇÊ¿ä·Î Çϴ Ÿ°Ù `%2$s'¸¦ ¸¸µé ±ÔÄ¢ÀÌ ¾ø½À´Ï´Ù%4$s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
msgstr "ÀÌ ¿î¿µ üÁ¦¿¡¼­´Â ºÎÇÏ Á¦ÇÑÀ» °­Á¦ÇÒ ¼ö ¾ø½À´Ï´Ù"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
msgstr "ºÎÇÏ Á¦ÇÑÀ» °­Á¦ÇÒ ¼ö ¾ø½À´Ï´Ù: "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
msgstr ""
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
msgstr ""
-#: job.c:2015
+#: job.c:2223
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr ""
+
+#: job.c:2238
msgid "Could not restore stdin\n"
msgstr ""
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
msgstr ""
-#: job.c:2127
+#: job.c:2254
+msgid "Could not restore stderr\n"
+msgstr ""
+
+#: job.c:2365
#, fuzzy, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
msgstr ""
"ÀÚ½ÄÇÁ·Î¼¼½º pid %d¸¦ °ÅµÖµéÀÌ°í, ¾ÆÁ÷ pid %dÀ»(¸¦) ±â´Ù¸®°í ÀÖ½À´Ï´Ù\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
msgstr "%s: ¸í·ÉÀ» ãÁö ¸øÇßÀ½"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr "%s: ¼Ð ÇÁ·Î±×·¥À» ãÁö ¸øÇßÀ½"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
msgstr ""
-#: job.c:2461
+#: job.c:2709
#, fuzzy, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
+msgid "$SHELL changed (was '%s', now '%s')\n"
msgstr "$SHELLÀÌ ¹Ù²î¾ú½À´Ï´Ù (°ú°Å `%s', ÇöÀç `%s')"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr "Àӽà ¹èÄ¡ ÆÄÀÏ %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"
@@ -711,196 +823,250 @@ msgid ""
msgstr ""
# ??? µð¹ö±ë ¸Þ¼¼Áö
-#: job.c:3065
+#: job.c:3444
#, c-format
msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
msgstr "%s (%d¹ø° ÁÙ) À߸øµÈ ½© ÄÁÅؽºÆ® (!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 "ÀÌ Ç÷§Æû¿¡¼­´Â º´·Ä ÀÛ¾÷(-j)ÀÌ Áö¿øµÇÁö ¾Ê½À´Ï´Ù."
+
+#: main.c:312
msgid "Options:\n"
msgstr "¿É¼Ç:\n"
-#: main.c:304
+#: main.c:313
#, fuzzy
msgid " -b, -m Ignored for compatibility.\n"
msgstr "ȣȯ¼ºÀ» À§ÇØ ¹«½ÃµÊ"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr ""
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
msgstr ""
-#: main.c:311
+#: main.c:320
#, fuzzy
msgid " -d Print lots of debugging information.\n"
msgstr "¿©·¯ °¡Áö µð¹ö±ë Á¤º¸¸¦ Ãâ·ÂÇÕ´Ï´Ù"
-#: main.c:313
+#: main.c:322
#, fuzzy
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr "¿©·¯ °¡Áö Á¾·ùÀÇ µð¹ö±ë Á¤º¸¸¦ Ãâ·ÂÇÕ´Ï´Ù"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
msgstr ""
-#: 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"
msgstr ""
-#: main.c:323
+#: main.c:332
#, fuzzy
msgid " -h, --help Print this message and exit.\n"
msgstr "ÀÌ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ°í ³¡³À´Ï´Ù"
-#: main.c:325
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
msgstr ""
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
msgstr ""
-#: main.c:330
+#: main.c:339
#, fuzzy
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
msgstr "µ¿½Ã¿¡ N°³ÀÇ ÀÛ¾÷À» Çã¿ëÇÕ´Ï´Ù; ÀÎÀÚ°¡ ¾øÀ¸¸é ¹«ÇÑ´ë·Î Çã¿ëÇÕ´Ï´Ù"
-#: main.c:332
+#: main.c:341
#, fuzzy
msgid ""
" -k, --keep-going Keep going when some targets can't be made.\n"
msgstr "¸î¸î Ÿ°ÙÀ» ¸¸µé ¼ö ¾ø´õ¶óµµ °è¼Ó ÁøÇàÇÕ´Ï´Ù"
-#: 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 "
"N.\n"
msgstr ""
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
msgstr ""
-#: main.c:339
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
"them.\n"
msgstr ""
-#: 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 "
"it.\n"
msgstr ""
-#: 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
#, fuzzy
msgid " -p, --print-data-base Print make's internal database.\n"
msgstr "makeÀÇ ³»ºÎ µ¥ÀÌŸº£À̽º¸¦ Ãâ·ÂÇÕ´Ï´Ù"
-#: main.c:347
+#: main.c:359
#, fuzzy
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
msgstr "¸í·ÉÀ» ½ÇÇàÇÏÁö ¾Ê½À´Ï´Ù; Á¾·á »óȲÀÌ °»½Å ¿©ºÎ¸¦ ¸»ÇØ ÁÝ´Ï´Ù"
-#: main.c:349
+#: main.c:361
#, fuzzy
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr "³»Àå ¹¬½ÃÀû ±ÔÄ¢À» »ç¿ë ºÒ°¡´ÉÇÏ°Ô ÇÕ´Ï´Ù"
-#: main.c:351
+#: main.c:363
#, fuzzy
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr "³»Àå º¯¼ö¸¦ ÁöÁ¤ÇÏÁö ¸øÇÏ°Ô ÇÕ´Ï´Ù"
-#: main.c:353
+#: main.c:365
msgid " -s, --silent, --quiet Don't echo recipes.\n"
msgstr ""
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
msgstr ""
-#: main.c:358
+#: main.c:370
#, fuzzy
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr "Ÿ°ÙÀ» ´Ù½Ã ¸¸µéÁö ¾Ê°í touch¸¸ ÇÕ´Ï´Ù"
-#: main.c:360
+#: main.c:372
+msgid " --trace Print tracing information.\n"
+msgstr ""
+
+#: main.c:374
#, fuzzy
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr "makeÀÇ ¹öÀü ¹øÈ£¸¦ Ãâ·ÂÇÏ°í ³¡³À´Ï´Ù"
-#: main.c:362
+#: main.c:376
#, fuzzy
msgid " -w, --print-directory Print the current directory.\n"
msgstr "ÇöÀç µð·ºÅ丮¸¦ Ãâ·ÂÇÕ´Ï´Ù"
-#: main.c:364
+#: main.c:378
#, fuzzy
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
msgstr "¹¬½ÃÀûÀ¸·Î ÄÑÁ® ÀÖ´õ¶óµµ -w¸¦ ²ü´Ï´Ù"
-#: 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"
msgstr ""
-#: main.c:369
+#: main.c:383
#, fuzzy
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
msgstr "Á¤ÀǵÇÁö ¾ÊÀº º¯¼ö¸¦ ÂüÁ¶ÇÒ ¶§ °æ°í¸¦ ³À´Ï´Ù"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
msgstr "ºó ¹®ÀÚ¿­Àº ÆÄÀÏ À̸§À¸·Î ºÎÀûÀýÇÕ´Ï´Ù"
-#: main.c:650
-#, c-format
-msgid "unknown debug level specification `%s'"
+#: main.c:734
+#, fuzzy, c-format
+msgid "unknown debug level specification '%s'"
msgstr "µð¹ö±ë ´Ü°è ÁöÁ¤ `%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 "³»ºÎ ¿À·ù: ¿©·¯ °³ÀÇ -jobserver-fds ¿É¼Ç"
+
+#: main.c:848
#, fuzzy, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
msgstr "%s: ÀÎÅÍ·´Æ®/¿¹¿Ü°¡ ¹ß°ßµÇ¾ú½À´Ï´Ù (ÄÚ¤§ = 0x%x, ÁÖ¼Ò = 0x%x)\n"
-#: main.c:697
+#: main.c:855
#, fuzzy, c-format
msgid ""
"\n"
@@ -915,204 +1081,226 @@ msgstr ""
"¿¹¿ÜÇ÷¡±× = %x\n"
"¿¹¿ÜÁÖ¼Ò = %x\n"
-#: main.c:705
+#: main.c:863
#, fuzzy, c-format
msgid "Access violation: write operation at address 0x%p\n"
msgstr "Á¢±Ù±ÇÇÑ À§¹Ý: ÁÖ¼Ò %x¿¡ ¾²±â\n"
-#: main.c:706
+#: main.c:864
#, fuzzy, c-format
msgid "Access violation: read operation at address 0x%p\n"
msgstr "Á¢±Ù±ÇÇÑ À§¹Ý: ÁÖ¼Ò %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ÀÌ 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 °æ·Î Ž»öÀÌ default_shell = %s À¸·Î(·Î) ¼¼ÆÃÇÕ´Ï´Ù.\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr "%sÀÌ(°¡) 30Ãʵ¿¾È ÀϽà ÁßÁöµË´Ï´Ù..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr "¿Ï·á sleep(30). °è¼Ó.\n"
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr "Ç¥ÁØÀԷ¿¡¼­ ¹Þ¾ÆµéÀÌ´Â ¸ÞÀÌÅ©ÆÄÀÏÀÌ µÎ ¹ø ÀÌ»ó ÁöÁ¤µÇ¾ú½À´Ï´Ù."
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr "fopen (Àӽà ÆÄÀÏ)"
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr "fwrite (Àӽà ÆÄÀÏ)"
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "ÀÌ Ç÷§Æû¿¡¼­´Â º´·Ä ÀÛ¾÷(-j)ÀÌ Áö¿øµÇÁö ¾Ê½À´Ï´Ù."
-
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
-msgstr "´ÜÀÏ ÀÛ¾÷ (-j1) ¸ðµå·Î µ¹¾Æ°©´Ï´Ù."
-
-#: main.c:1719
+#: main.c:1534
msgid "internal error: multiple --jobserver-fds options"
msgstr "³»ºÎ ¿À·ù: ¿©·¯ °³ÀÇ -jobserver-fds ¿É¼Ç"
-#: main.c:1727
+#: main.c:1544
+#, c-format
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
+msgstr ""
+
+#: main.c:1547
#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
+msgid "Jobserver client (semaphore %s)\n"
+msgstr ""
+
+#: main.c:1551
+#, fuzzy, c-format
+msgid "internal error: invalid --jobserver-fds string '%s'"
msgstr "³»ºÎ ¿À·ù: À߸øµÈ -jobserver-fds ¹®ÀÚ¿­ `%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 "°æ°í: ÆÄ»ýµÈ ¸ÞÀÌÅ©¿¡¼­ -jNÀÌ °­Á¦µÇ¾ú½À´Ï´Ù: ÀÛ¾÷¼­¹ö ¸ðµå¸¦ ²ü´Ï´Ù."
# ??? µð¹ö±ë ¸Þ¼¼Áö
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
msgstr "dup ÀÛ¾÷¼­¹ö"
-#: 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 ""
"°æ°í: ÀÛ¾÷¼­¹ö¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù: -j1À» »ç¿ëÇÕ´Ï´Ù. ºÎ¸ð ¸ÞÀÌÅ© ±ÔÄ¢¿¡ `"
"+'¸¦ Ãß°¡ÇÕ´Ï´Ù."
-#: main.c:1777
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "Ç¥ÁØÀԷ¿¡¼­ ¹Þ¾ÆµéÀÌ´Â ¸ÞÀÌÅ©ÆÄÀÏÀÌ µÎ ¹ø ÀÌ»ó ÁöÁ¤µÇ¾ú½À´Ï´Ù."
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (Àӽà ÆÄÀÏ)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (Àӽà ÆÄÀÏ)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr "ÀÌ Ç÷§Æû¿¡¼­´Â º´·Ä ÀÛ¾÷(-j)ÀÌ Áö¿øµÇÁö ¾Ê½À´Ï´Ù."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "´ÜÀÏ ÀÛ¾÷ (-j1) ¸ðµå·Î µ¹¾Æ°©´Ï´Ù."
+
+#: 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 "ÀÛ¾÷ ÆÄÀÌÇÁ »ý¼º"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
msgstr "ÀÛ¾÷¼­¹ö ÆÄÀÌÇÁ ÃʱâÈ­"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
msgstr ""
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr "¸ÞÀÌÅ©ÆÄÀÏÀ» ¾÷µ¥ÀÌÆ®ÇÏ°í ÀÖ½À´Ï´Ù....\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 "¸ÞÀÌÅ©ÆÄÀÏ `%s'Àº(´Â) ¹Ýº¹ÇÒ ¼ö ÀÖ½À´Ï´Ù; ´Ù½Ã ¸¸µéÁö ¾Ê½À´Ï´Ù.\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 "¸ÞÀÌÅ©ÆÄÀÏ `%s'À» ´Ù½Ã ¸¸µå´Âµ¥ ½ÇÆÐÇÔ."
-#: 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 "Æ÷ÇÔµÈ ¸ÞÀÌÅ©ÆÄÀÏ `%s'¸¦ ãÁö ¸øÇß½À´Ï´Ù."
-#: main.c:2018
-#, c-format
-msgid "Makefile `%s' was not found"
+#: main.c:2275
+#, fuzzy, c-format
+msgid "Makefile '%s' was not found"
msgstr "¸ÞÀÌÅ©ÆÄÀÏ `%s'À» ãÁö ¸øÇß½À´Ï´Ù"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
msgstr "¿ø·¡ µð·ºÅ丮·Î µ¹¾Æ°¥ ¼ö ¾ø½À´Ï´Ù."
-#: main.c:2102
+#: main.c:2354
#, fuzzy, c-format
msgid "Re-executing[%u]:"
msgstr "Àç½ÇÇà:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr "unlink (Àӽà ÆÄÀÏ): "
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
msgstr ""
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
msgstr "Ÿ°ÙÀÌ ÁöÁ¤µÇÁö ¾Ê¾Ò°í ¸ÞÀÌÅ©ÆÄÀÏÀÌ ¾ø½À´Ï´Ù"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "Ÿ°Ù ¾øÀ½"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
msgstr "ÃÖÁ¾ Ÿ°ÙÀ» °»½ÅÇÕ´Ï´Ù....\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr ""
"°æ°í: ½Ã°è°¡ À߸øµÇ¾úÀ½ÀÌ ¹ß°ßµÇ¾ú½À´Ï´Ù. ºôµå°¡ ºÒ¿ÏÀüÇÒ ¼ö ÀÖ½À´Ï´Ù."
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
msgstr "»ç¿ë¹ý: %s [¿É¼Ç] [Ÿ°Ù] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
"This program built for %s\n"
msgstr ""
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
"This program built for %s (%s)\n"
msgstr ""
-#: main.c:2481
+#: main.c:2729
#, fuzzy, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
msgstr ""
"\n"
"¹®Á¦Á¡À» <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 "`-%c' ¿É¼ÇÀº ¾çÀÇ ÀûºÐ Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù"
-#: 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 "`-%c' ¿É¼ÇÀº ¾çÀÇ ÀûºÐ Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù"
-#: main.c:3054
+#: main.c:3253
#, c-format
msgid "%sBuilt for %s\n"
msgstr ""
-#: main.c:3056
+#: main.c:3255
#, c-format
msgid "%sBuilt for %s (%s)\n"
msgstr ""
-#: main.c:3066
+#: main.c:3266
#, c-format
msgid ""
"%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1121,7 +1309,7 @@ msgid ""
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
@@ -1130,7 +1318,7 @@ msgstr ""
"\n"
"# ¸ÞÀÌÅ© µ¥ÀÌŸº£À̽º, %s¿¡ Ç¥½Ã"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
@@ -1139,109 +1327,109 @@ msgstr ""
"\n"
"# ¸ÞÀÌÅ© µ¥ÀÌŸ º£À̽º ¸¶Ä§, %s¿¡¼­\n"
-#: main.c:3237
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "¾Ë ¼ö ¾ø´Â ¿À·ù %d"
+
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "°¡»ó ¸Þ¸ð¸®°¡ °í°¥µÊ"
+
+#: misc.c:522
+#, fuzzy, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s Á¢±Ù: »ç¿ëÀÚ %lu (½ÇÁ¦ %lu), ±×·ì %lu (½ÇÁ¦ %lu)\n"
+
+#: misc.c:543
+#, fuzzy
+msgid "Initialized access"
+msgstr "ÃʱâÈ­µÊ"
+
+#: misc.c:622
+msgid "User access"
+msgstr ""
+
+#: misc.c:670
+msgid "Make access"
+msgstr ""
+
+#: misc.c:704
+msgid "Child access"
+msgstr ""
+
+#: output.c:128
#, fuzzy, c-format
msgid "%s: Entering an unknown directory\n"
msgstr "¾Ë ¼ö ¾ø´Â µð·ºÅ丮"
-#: main.c:3239
+#: output.c:130
#, fuzzy, c-format
msgid "%s: Leaving an unknown directory\n"
msgstr "¾Ë ¼ö ¾ø´Â µð·ºÅ丮"
-#: main.c:3242
+#: output.c:133
#, fuzzy, c-format
-msgid "%s: Entering directory `%s'\n"
+msgid "%s: Entering directory '%s'\n"
msgstr "`%s' µð·ºÅ丮\n"
-#: main.c:3245
+#: output.c:135
#, fuzzy, c-format
-msgid "%s: Leaving directory `%s'\n"
+msgid "%s: Leaving directory '%s'\n"
msgstr "`%s' µð·ºÅ丮\n"
-#: main.c:3250
+#: output.c:139
#, fuzzy, c-format
msgid "%s[%u]: Entering an unknown directory\n"
msgstr "¾Ë ¼ö ¾ø´Â µð·ºÅ丮"
-#: main.c:3253
+#: output.c:141
#, fuzzy, c-format
msgid "%s[%u]: Leaving an unknown directory\n"
msgstr "¾Ë ¼ö ¾ø´Â µð·ºÅ丮"
-#: main.c:3257
+#: output.c:144
+#, c-format
+msgid "%s[%u]: Entering directory '%s'\n"
+msgstr ""
+
+#: output.c:146
#, fuzzy, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
+msgid "%s[%u]: Leaving directory '%s'\n"
msgstr "`%s' µð·ºÅ丮\n"
-#: main.c:3260
+#: output.c:515
#, fuzzy, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
-msgstr "`%s' µð·ºÅ丮\n"
+msgid "write error: %s"
+msgstr "¿À·ù¸¦ %sÀ¸·Î(·Î) ¸®´ÙÀÌ·ºÆ®ÇÕ´Ï´Ù\n"
+
+# ??? µð¹ö±ë ¸Þ¼¼Áö
+#: output.c:517
+#, fuzzy
+msgid "write error"
+msgstr "ÀÛ¾÷¼­¹ö ¾²±â"
-#: misc.c:316
+#: output.c:740
msgid ". Stop.\n"
msgstr ". ¸ØÃã.\n"
-#: misc.c:337
-#, c-format
-msgid "Unknown error %d"
-msgstr "¾Ë ¼ö ¾ø´Â ¿À·ù %d"
-
-#: misc.c:347
+#: output.c:751
#, c-format
msgid "%s%s: %s"
msgstr ""
-#: misc.c:355
+#: output.c:759
#, c-format
msgid "%s: %s"
msgstr ""
-#: misc.c:376 misc.c:387 misc.c:402 misc.c:419 misc.c:438 read.c:3118
-msgid "virtual memory exhausted"
-msgstr "°¡»ó ¸Þ¸ð¸®°¡ °í°¥µÊ"
-
-#: misc.c:708
-#, fuzzy, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s Á¢±Ù: »ç¿ëÀÚ %lu (½ÇÁ¦ %lu), ±×·ì %lu (½ÇÁ¦ %lu)\n"
-
-#: misc.c:729
-#, fuzzy
-msgid "Initialized access"
-msgstr "ÃʱâÈ­µÊ"
-
-#: misc.c:808
-msgid "User access"
-msgstr ""
-
-#: misc.c:856
-msgid "Make access"
-msgstr ""
-
-#: misc.c:890
-msgid "Child access"
-msgstr ""
-
-#: misc.c:954
-#, fuzzy, c-format
-msgid "write error: %s"
-msgstr "¿À·ù¸¦ %sÀ¸·Î(·Î) ¸®´ÙÀÌ·ºÆ®ÇÕ´Ï´Ù\n"
-
-# ??? µð¹ö±ë ¸Þ¼¼Áö
-#: misc.c:956
-#, fuzzy
-msgid "write error"
-msgstr "ÀÛ¾÷¼­¹ö ¾²±â"
-
-#: read.c:179
+#: read.c:180
msgid "Reading makefiles...\n"
msgstr "¸ÞÀÌÅ©ÆÄÀÏÀ» Àаí ÀÖ½À´Ï´Ù\n"
#: read.c:333
-#, c-format
-msgid "Reading makefile `%s'"
+#, fuzzy, c-format
+msgid "Reading makefile '%s'"
msgstr "¸ÞÀÌÅ©ÆÄÀÏ `%s'¸¦ Àаí ÀÖ½À´Ï´Ù"
#: read.c:335
@@ -1264,328 +1452,346 @@ msgstr " (»ó°ü ¾ÈÇÔ)"
msgid " (no ~ expansion)"
msgstr " (~ È®Àå ¾øÀ½)"
-#: 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 "Á¶°Ç¹®¿¡ ºÎÀûÀýÇÑ ¹®¹ýÀÌ ¾²ÀÓ"
-#: 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 "ù¹ø° Ÿ°Ùº¸´Ù ¾Õ¿¡¼­ ¸í·É¾î°¡ ½ÃÀ۵Ǿú½À´Ï´Ù"
-#: read.c:940
+#: read.c:1036
#, fuzzy
msgid "missing rule before recipe"
msgstr "¸í·É ¾Õ¿¡ ±ÔÄ¢ÀÌ ºüÁ³À½"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
msgstr "ºÐ¸®±âÈ£ %sÀÌ(°¡) ºüÁ³À½"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
msgstr " (8°³ÀÇ °ø¹é ¸»°í ÅÇÀ» ¾²·Á°í ÇÑ °Í ¾Æ´Ï¾ú½À´Ï±î?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
msgstr "Ÿ°Ù ÆÐÅÏÀÌ ºüÁ³À½"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
msgstr "´ÙÁß Å¸°Ù ÆÐÅÏ"
-#: read.c:1169
-#, c-format
-msgid "target pattern contains no `%%'"
+#: read.c:1269
+#, fuzzy, c-format
+msgid "target pattern contains no '%%'"
msgstr "Ÿ°Ù ÆÐÅÏ¿¡ `%%'°¡ ¾ø½À´Ï´Ù."
-#: read.c:1293
-msgid "missing `endif'"
+#: read.c:1391
+#, fuzzy
+msgid "missing 'endif'"
msgstr "`endif'°¡ ºüÁ³À½"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "ºó º¯¼ö À̸§"
-#: read.c:1367
+#: read.c:1465
#, fuzzy
-msgid "extraneous text after `define' directive"
+msgid "extraneous text after 'define' directive"
msgstr "`endef' Áö½ÃÀÚ µÚ¿¡ ¿©ºÐÀÇ ±ÛÀÌ ÀÖÀ½"
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
+#: read.c:1490
+#, fuzzy
+msgid "missing 'endef', unterminated 'define'"
msgstr "`endef'°¡ ºüÁ³À½. Á¾·áµÇÁö ¾ÊÀº `define'"
-#: read.c:1420
+#: read.c:1518
#, fuzzy
-msgid "extraneous text after `endef' directive"
+msgid "extraneous text after 'endef' directive"
msgstr "`endef' Áö½ÃÀÚ µÚ¿¡ ¿©ºÐÀÇ ±ÛÀÌ ÀÖÀ½"
-#: read.c:1490
-#, c-format
-msgid "Extraneous text after `%s' directive"
+#: read.c:1589
+#, fuzzy, c-format
+msgid "extraneous text after '%s' directive"
msgstr "`%s' Áö½ÃÀÚ µÚ¿¡ ¿©ºÐÀÇ ¹®ÀåÀÌ ÀÖÀ½"
-#: read.c:1499 read.c:1513
-#, c-format
-msgid "extraneous `%s'"
+#: read.c:1598 read.c:1612
+#, fuzzy, c-format
+msgid "extraneous '%s'"
msgstr "¿©ºÐÀÇ `%s'"
-#: read.c:1518
-msgid "only one `else' per conditional"
+#: read.c:1617
+#, fuzzy
+msgid "only one 'else' per conditional"
msgstr "ÇÑ °³ÀÇ Á¶°Ç¿¡´Â ÇÑ °³ÀÇ `else'¸¸ ÀÖ¾î¾ß ÇÕ´Ï´Ù"
-#: read.c:1797
+#: read.c:1892
#, fuzzy
msgid "Malformed target-specific variable definition"
msgstr "Ÿ°Ùº° º¯¼ö Á¤ÀÇ Çü½ÄÀÌ Æ²·È½À´Ï´Ù"
-#: read.c:1855
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
msgstr ""
-#: 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 "Ÿ°Ù `%s'Àº(´Â) Ÿ°Ù ÆÐÅÏ¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù"
-#: 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 "Ÿ°Ù ÆÄÀÏ `%s'Àº(´Â) :¿Í :: Ç׸ñÀ» µ¿½Ã¿¡ °®°í ÀÖ½À´Ï´Ù"
-#: 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 "Ÿ°Ù `%s'ÀÌ(°¡) °°Àº ±ÔÄ¢¿¡¼­ ¿©·¯ ¹ø ÁÖ¾îÁ³½À´Ï´Ù"
-#: read.c:2006
+#: read.c:2114
#, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
+msgid "warning: overriding recipe for target '%s'"
msgstr "°æ°í: Ÿ°Ù `%s'¿¡ ´ëÇÑ ¸í·É¾îº¸´Ù ´Ù¸¥ °ÍÀÌ ¿ì¼±ÇÕ´Ï´Ù"
-#: 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 "°æ°í: Ÿ°Ù `%s'¿¡ ´ëÇÑ °ú°Å ¸í·É¾îµéÀ» ¹«½ÃÇÕ´Ï´Ù"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
msgstr "°æ°í: NUL ¹®ÀÚ°¡ ¹ß°ßµÇ¾ú½À´Ï´Ù; ÁÙÀÇ ³ª¸ÓÁö´Â ¹«½ÃµË´Ï´Ù"
-#: 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 "`%s'¸¦ À§ÇØ ÇÒ ÀÏÀÌ ¾ø½À´Ï´Ù"
-#: 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'´Â ÀÌ¹Ì °»½ÅµÇ¾ú½À´Ï´Ù."
# pruneÀÌ truncateÀÇ ÀǹÌÀΰ¡ Áö¿î´Ù´Â ÀǹÌÀΰ¡??
-#: remake.c:306
-#, c-format
-msgid "Pruning file `%s'.\n"
+#: remake.c:305
+#, fuzzy, c-format
+msgid "Pruning file '%s'.\n"
msgstr "`%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 "%sŸ°Ù `%s'¸¦ ¸¸µé ±ÔÄ¢ÀÌ ¾øÀ½%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'¿¡¼­ ÇÊ¿ä·Î Çϴ Ÿ°Ù `%2$s'¸¦ ¸¸µé ±ÔÄ¢ÀÌ ¾ø½À´Ï´Ù%4$s"
#: remake.c:413
-#, c-format
-msgid "Considering target file `%s'.\n"
+#, fuzzy, c-format
+msgid "Considering target file '%s'.\n"
msgstr "Ÿ°Ù ÆÄÀÏ `%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 "ÃÖ±Ù¿¡ `%s' ÆÄÀÏÀ» °»½ÅÇÏ·Á°í ½ÃµµÇÏ¿´°í ½ÇÆÐÇÏ¿´½À´Ï´Ù.\n"
#: remake.c:432
-#, c-format
-msgid "File `%s' was considered already.\n"
+#, fuzzy, c-format
+msgid "File '%s' was considered already.\n"
msgstr "ÆÄÀÏ `%s'´Â ÀÌ¹Ì °ËÅäµÇ¾ú½À´Ï´Ù.\n"
#: remake.c:442
-#, c-format
-msgid "Still updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Still updating file '%s'.\n"
msgstr "¾ÆÁ÷ `%s' ÆÄÀÏÀ» °»½ÅÇÏ°í ÀÖ½À´Ï´Ù.\n"
#: remake.c:445
-#, c-format
-msgid "Finished updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Finished updating file '%s'.\n"
msgstr "`%s' ÆÄÀÏÀÇ °»½ÅÀ» ¸¶ÃƽÀ´Ï´Ù.\n"
#: remake.c:474
-#, c-format
-msgid "File `%s' does not exist.\n"
+#, fuzzy, c-format
+msgid "File '%s' does not exist.\n"
msgstr "`%s' ÆÄÀÏÀº Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù.\n"
#: remake.c:481
#, 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 ""
-#: 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 "`%s'¿¡ ´ëÇÑ ¹¬½ÃÀû ±ÔÄ¢À» ã¾Ò½À´Ï´Ù.\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 "`%s'¿¡ ´ëÇÑ ¹¬½ÃÀû ±ÔÄ¢À» ãÁö ¸øÇß½À´Ï´Ù.\n"
#: remake.c:502
#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
+msgid "Using default recipe for '%s'.\n"
msgstr "`%s'¿¡ ´ëÇØ ³»Á¤µÈ ¸í·ÉÀ» »ç¿ëÇÔ.\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
msgstr "%s <- %s »óÈ£ ÀÇÁ¸¼ºÀº ¹«½ÃµË´Ï´Ù."
-#: 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 "Ÿ°Ù ÆÄÀÏ `%s'ÀÇ ¼±ÇàÁ¶°ÇÀ» ¸¶ÃƽÀ´Ï´Ù.\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 "`%s'ÀÇ ¼±ÇàÁ¶°ÇÀÌ ¸¸µé¾îÁö°í ÀÖ½À´Ï´Ù.\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 "Ÿ°Ù ÆÄÀÏ `%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 "¿À·ù·Î ÀÎÇØ Å¸°Ù `%s'¸¦ ´Ù½Ã ¸¸µéÁö ¸øÇß½À´Ï´Ù."
-#: remake.c:727
+#: remake.c:731
#, fuzzy, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
msgstr "¼±ÇàÁ¶°Ç `%s'ÀÌ(°¡) Ÿ°Ù `%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 "Ÿ°Ù `%2$s'ÀÇ ¼±ÇàÁ¶°Ç %1$sÀº(´Â) Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù.\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 "¼±ÇàÁ¶°Ç `%s'ÀÌ(°¡) Ÿ°Ù `%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 "¼±ÇàÁ¶°Ç `%s'ÀÌ(°¡) Ÿ°Ù `%s'º¸´Ù ¸ÕÀú ¸¸µé¾îÁ³½À´Ï´Ù.\n"
-#: remake.c:758
-#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
+#: remake.c:762
+#, fuzzy, c-format
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
msgstr "Ÿ°Ù `%s'ÀÌ(°¡) µÎ °³ÀÇ ÄÝ·ÐÀÌ ºÙ¿©Á³Áö¸¸ ¼±ÇàÁ¶°ÇÀÌ ¾ø½À´Ï´Ù.\n"
-#: remake.c:765
+#: remake.c:769
#, fuzzy, 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 "`%s'¿¡ ´ëÇÑ ¸í·É¾î°¡ ¾ø°í ¾î¶² ¼±ÇàÁ¶°Çµµ º¯°æµÇÁö ¾Ê¾Ò½À´Ï´Ù.\n"
-#: remake.c:770
+#: remake.c:774
#, c-format
-msgid "Making `%s' due to always-make flag.\n"
+msgid "Making '%s' due to always-make flag.\n"
msgstr ""
-#: 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 "Ÿ°Ù `%s'À»(¸¦) ´Ù½Ã ¸¸µé ÇÊ¿ä°¡ ¾ø½À´Ï´Ù."
-#: remake.c:780
-#, c-format
-msgid "; using VPATH name `%s'"
+#: remake.c:784
+#, fuzzy, c-format
+msgid "; using VPATH name '%s'"
msgstr "; VPATH À̸§ `%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 "Ÿ°Ù `%s'¸¦ ´Ù½Ã ¸¸µé¾î¾ß ÇÕ´Ï´Ù.\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 " VPATH À̸§ `%s'À»(¸¦) ¹«½ÃÇÕ´Ï´Ù.\n"
-#: remake.c:815
+#: remake.c:819
#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
+msgid "Recipe of '%s' is being run.\n"
msgstr "`%s'¶ó´Â ¸í·ÉÀÌ ½ÇÇà ÁßÀÔ´Ï´Ù.\n"
-#: 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 "Ÿ°Ù ÆÄÀÏ `%s'¸¦ ´Ù½Ã ¸¸µå´Â µ¥ ½ÇÆÐÇß½À´Ï´Ù.\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 "Ÿ°Ù ÆÄÀÏ `%s'¸¦ ¼º°øÀûÀ¸·Î ´Ù½Ã ¸¸µé¾ú½À´Ï´Ù.\n"
-#: remake.c:828
-#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
+#: remake.c:832
+#, fuzzy, c-format
+msgid "Target file '%s' needs to be remade under -q.\n"
msgstr "Ÿ°Ù ÆÄÀÏ `%s'ÀÌ(°¡) -q ÇÏ¿¡ ´Ù½Ã ¸¸µé¾îÁ®¾ß ÇÕ´Ï´Ù.\n"
-#: 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 "`%s'¿¡ ´ëÇØ ³»Á¤µÈ ¸í·ÉÀ» »ç¿ëÇÔ.\n"
-#: remake.c:1357
+#: remake.c:1372
#, fuzzy, c-format
-msgid "Warning: File `%s' has modification time in the future"
+msgid "Warning: File '%s' has modification time in the future"
msgstr "*** ÆÄÀÏ `%s'°¡ ¹Ì·¡ÀÇ º¯°æ ½Ã°¢À» °¡Áö°í ÀÖ½À´Ï´Ù (%s > %s)"
-#: 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 "*** ÆÄÀÏ `%s'°¡ ¹Ì·¡ÀÇ º¯°æ ½Ã°¢À» °¡Áö°í ÀÖ½À´Ï´Ù (%s > %s)"
-#: 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ÀÇ ¿ø¼Ò `%s'ÀÌ(°¡) ÆÐÅÏÀÌ ¾Æ´Õ´Ï´Ù"
# ??? µð¹ö±ë ¸Þ¼¼Áö -- ¹ºÁö ¾Ë±â ¾î·Á¿ò
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
msgstr "CustomsÀº exportµÇÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù: %s\n"
-#: rule.c:499
+#: rule.c:496
#, fuzzy
msgid ""
"\n"
@@ -1594,7 +1800,7 @@ msgstr ""
"\n"
"# ¹¬½ÃÀû ±ÔÄ¢ ¾øÀ½."
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
@@ -1602,7 +1808,7 @@ msgstr ""
"\n"
"# ¹¬½ÃÀû ±ÔÄ¢ ¾øÀ½."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -1611,239 +1817,256 @@ msgstr ""
"\n"
"# %u°³ÀÇ ¹¬½ÃÀû ±ÔÄ¢, %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 "¹ö±×: num_pattern_rules ¿À·ù! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "¾Ë ¼ö ¾ø´Â ½ÅÈ£"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
msgstr "²÷¾îÁü"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "ÀÎÅÍ·´Æ®"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
msgstr "Á¾·á"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
msgstr "À߸øµÈ ¸í·É"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
msgstr "ÃßÀû/Áß´ÜÁ¡ Æ®·¦"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "ÁߴܵÊ"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
msgstr "IOT Æ®·¦"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
msgstr "EMT Æ®·¦"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
msgstr "ºÎµ¿ ¼Ò¼öÁ¡ ¿¹¿Ü"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "Á×¾úÀ½"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr "¹ö½º ¿À·ù"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "¼¼±×¸àÅ×ÀÌ¼Ç ¿À·ù"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "À߸øµÈ ½Ã½ºÅÛ È£Ãâ"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr "±ú¾îÁø ÆÄÀÌÇÁ"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "ÀÚ¸íÁ¾ ½Ã°è"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
msgstr "Á¾·áµÊ"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr "»ç¿ëÀÚ Á¤ÀÇ ½ÅÈ£ 1"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr "»ç¿ëÀÚ Á¤ÀÇ ½ÅÈ£ 2"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
msgstr "ÀÚ½ÄÀÌ Á¾·áµÇ¾úÀ½"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
msgstr "Àü·Â Áß´Ü"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "ÁßÁöµÊ"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
msgstr "ÁßÁöµÊ (tty ÀÔ·Â)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
msgstr "ÁßÁöµÊ (tty Ãâ·Â)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "ÁßÁöµÊ (½Ã±×³Î)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
msgstr "CPU ½Ã°£ Á¦ÇÑ ÃÊ°úµÊ"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
msgstr "ÆÄÀÏ Å©±â Á¦ÇÑ ÃÊ°úµÊ"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
msgstr "°¡»ó ŸÀÌ¸Ó ½Ã°£ ÃÊ°úµÊ"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
msgstr "ÇÁ·ÎÆÄÀϸµ ŸÀÌ¸Ó ½Ã°£ ÃÊ°úµÊ"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
msgstr "âÀÌ ¹Ù²î¾úÀ½"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "°è¼ÓµÊ"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
msgstr "±ä±ÞÇÑ ÀÔÃâ·Â »óȲ"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
msgstr "ÀÔÃâ·Â °¡´É"
-#: 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 "ÀÚ¿ø ¼Õ½Ç"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "À§Çè ½ÅÈ£"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr "Á¤º¸ ¿äû"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
msgstr "ºÎµ¿¼Ò¼öÁ¡ ¿¬»ê º¸Á¶ÇÁ·Î¼¼¼­°¡ ¾ø½À´Ï´Ù"
-#: strcache.c:235
+#: strcache.c:236
+#, c-format
+msgid ""
+"\n"
+"%s No strcache buffers\n"
+msgstr ""
+
+#: strcache.c:266
#, c-format
msgid ""
"\n"
-"%s # of strings in strcache: %d / lookups = %lu / hits = %lu\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
msgstr ""
-#: strcache.c:237
+#: strcache.c:270
#, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+msgid ""
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
msgstr ""
-#: strcache.c:239
+#: strcache.c:280
#, c-format
-msgid "%s strcache used: 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:241
+#: strcache.c:283
#, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
msgstr ""
-#: strcache.c:244
+#: 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
+msgid ""
+"# hash-table stats:\n"
"# "
msgstr ""
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "ÀÚµ¿"
+
+#: variable.c:1610
msgid "default"
msgstr "±âº»°ª"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr "ȯ°æ"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr "¸ÞÀÌÅ©ÆÄÀÏ"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
msgstr "-e ÇÏÀÇ È¯°æ"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr "¸í·ÉÇà"
-#: variable.c:1556
-msgid "`override' directive"
+#: variable.c:1625
+#, fuzzy
+msgid "'override' directive"
msgstr "`override' Áö½ÃÀÚ"
-#: variable.c:1559
-msgid "automatic"
-msgstr "ÀÚµ¿"
-
-#: variable.c:1570
+#: variable.c:1636
#, fuzzy, c-format
-msgid " (from `%s', line %lu)"
+msgid " (from '%s', line %lu)"
msgstr " (`%s'¿¡¼­, %lu¹ø° ÁÙ):\n"
-#: variable.c:1612
+#: variable.c:1699
#, fuzzy
msgid "# variable set hash-table stats:\n"
msgstr "# %2$u°³ÀÇ Çؽ¬ ¹öŶ¿¡ %1$u°³ÀÇ º¯¼ö.\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1851,7 +2074,7 @@ msgstr ""
"\n"
"# º¯¼ö\n"
-#: variable.c:1627
+#: variable.c:1714
#, fuzzy
msgid ""
"\n"
@@ -1860,7 +2083,7 @@ msgstr ""
"\n"
"# ÆÐÅÏÀ» À§ÇÑ º¯¼ö °ªµé"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
@@ -1868,7 +2091,7 @@ msgstr ""
"\n"
"# ÆÐÅÏÀ» À§ÇÑ º¯¼ö °ªµéÀÌ ¾ø½À´Ï´Ù."
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
@@ -1877,93 +2100,93 @@ msgstr ""
"\n"
"# %u°³ÀÇ ÆÐÅÏÀ» À§ÇÑ º¯¼ö °ªµé"
-#: variable.h:219
-#, c-format
-msgid "warning: undefined variable `%.*s'"
+#: variable.h:224
+#, fuzzy, c-format
+msgid "warning: undefined variable '%.*s'"
msgstr "°æ°í: Á¤ÀǵÇÁö ¾ÊÀº º¯¼ö `%.*s'"
-#: vmsfunctions.c:92
+#: vmsfunctions.c:91
#, fuzzy, c-format
msgid "sys$search() failed with %d\n"
msgstr "sys$search°¡ %d¸¦ ¸®ÅÏÇÏ¸ç ½ÇÆÐÇß½À´Ï´Ù\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr "°æ°í: ºñ¾î ÀÖ´Â ¸®´ÙÀÌ·º¼Ç\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 "³»ºÎ ¿À·ù: `%s' command_state"
# DCL - Digital Command Language, VMS¿¡¼­¸¸ Á¸ÀçÇÏ´Â shell languageÀÇ ÀÏÁ¾
-#: vmsjobs.c:289
+#: vmsjobs.c:286
#, c-format
msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
msgstr "-°æ°í, DCL¿¡¼­ CTRL-Y¸¦ ´Ù½Ã »ç¿ë°¡´ÉÇϵµ·Ï ÇØ¾ß ÇÒ °ÍÀÔ´Ï´Ù.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr "³»Àå [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr "³»Àå CD %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr "³»Àå RM %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
msgstr "¾Ë ¼ö ¾ø´Â ³»Àå ¸í·É¾î `%s'\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr "¿À·ù, ºó ¸í·É¾î\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr "ÀÔ·ÂÀ» %s¿¡¼­ ¸®´ÙÀÌ·ºÆ®ÇÕ´Ï´Ù\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr "¿À·ù¸¦ %sÀ¸·Î(·Î) ¸®´ÙÀÌ·ºÆ®ÇÕ´Ï´Ù\n"
-#: vmsjobs.c:523
+#: vmsjobs.c:518
#, fuzzy, c-format
msgid "Append output to %s\n"
msgstr "Ãâ·ÂÀ» %s¿¡¼­ ¸®´ÙÀÌ·ºÆ®ÇÕ´Ï´Ù\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
msgstr "Ãâ·ÂÀ» %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 "´ë½Å %s¸¦ ½ÇÇàÇÔ\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr "½ÇÇà ¿À·ù, %d\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
@@ -1971,37 +2194,43 @@ msgstr ""
"\n"
"# VPATH Ž»ö °æ·Î\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
+#: vpath.c:600
+#, fuzzy
+msgid "# No 'vpath' search paths."
msgstr "# `vpath' Ž»ö °æ·Î°¡ ¾øÀ½."
-#: 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' Ž»ö °æ·Î.\n"
-#: vpath.c:608
+#: vpath.c:605
+#, fuzzy
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
"# ÀϹÝÀûÀÎ (`VPATH' º¯¼ö) Ž»ö °æ·Î°¡ ¾øÀ½."
-#: vpath.c:614
+#: vpath.c:611
+#, fuzzy
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
"# ÀϹÝÀûÀÎ (`VPATH' º¯¼ö) Ž»ö °æ·Î:\n"
"# "
+#~ msgid "# Invalid value in `update_status' member!"
+#~ msgstr "# `update_status' ¸â¹ö¿¡ °ªÀÌ À߸øµÇ¾ú½À´Ï´Ù!"
+
#~ msgid ""
#~ "\n"
#~ "# No files."
@@ -2019,6 +2248,9 @@ msgstr ""
#~ msgid "# average %.3f files per bucket, max %u files in one bucket.\n"
#~ msgstr "# ¹öŶ´ç %.3f°³ÀÇ ÆÄÀÏ, ÇÑ °³ÀÇ ¹öŶ¿¡ ÃÖ´ë %u°³ÀÇ ÆÄÀÏ.\n"
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] ¿À·ù 0x%x (¹«½ÃµÊ)"
+
#~ msgid "Syntax error, still inside '\"'\n"
#~ msgstr "¹®¹ý ¿À·ù, ¾ÆÁ÷ '\"' ¾È¿¡ ÀÖ½À´Ï´Ù\n"
diff --git a/po/lt.gmo b/po/lt.gmo
index a956d85..aa293e5 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index 3b337bd..02e43f3 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,119 +7,125 @@ msgid ""
msgstr ""
"Project-Id-Version: make-3.81\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: 2008-05-17 21:42+0300\n"
"Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
+"Language: lt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%"
-"100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
+"%100<10 || n%100>=20) ? 1 : 2);\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 "bandymas naudoti nepalaikomą funkcionalumą: „%s“"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
msgstr ""
-#: 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: Archyvas „%s“ neegzistuoja"
-#: 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“ nėra taisyklingas archyvas"
-#: ar.c:159
-#, c-format
-msgid "touch: Member `%s' does not exist in `%s'"
-msgstr ""
+#: ar.c:157
+#, fuzzy, c-format
+msgid "touch: Member '%s' does not exist in '%s'"
+msgstr "touch: Archyvas „%s“ neegzistuoja"
-#: ar.c:166
+#: ar.c:164
#, c-format
-msgid "touch: Bad return code from ar_member_touch on `%s'"
+msgid "touch: Bad return code from ar_member_touch on '%s'"
msgstr ""
-#: arscan.c:69
+#: arscan.c:67
#, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
msgstr ""
-#: arscan.c:175
+#: arscan.c:173
#, c-format
msgid "lbr$ini_control() failed with status = %d"
msgstr ""
-#: 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 "nepavyko atverti bibliotekos „%s“ bandant surasti narį „%s“"
-#: 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 "Narys „%s“%s: %ld baitų pozicijoje %ld (%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr " (pavadinimas gali būti sutrumpintas)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Data %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d, gid = %d, mode = 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 ""
-#: commands.c:622
+#: commands.c:630
#, c-format
-msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
+msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
msgstr ""
-#: commands.c:625
+#: commands.c:633
#, c-format
-msgid "*** Archive member `%s' may be bogus; not deleted"
+msgid "*** Archive member '%s' may be bogus; not deleted"
msgstr ""
-#: commands.c:638
-#, c-format
-msgid "*** [%s] Deleting file `%s'"
+#: commands.c:646
+#, fuzzy, c-format
+msgid "*** [%s] Deleting file '%s'"
msgstr "*** [%s] Trinamas failas „%s“"
-#: commands.c:640
-#, c-format
-msgid "*** Deleting file `%s'"
+#: commands.c:648
+#, fuzzy, c-format
+msgid "*** Deleting file '%s'"
msgstr "*** Trinamas failas „%s“"
-#: commands.c:676
+#: commands.c:684
#, fuzzy
msgid "# recipe to execute"
msgstr "# vykdytinos komandos"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr " (integruota)"
-#: commands.c:681
-#, c-format
-msgid " (from `%s', line %lu):\n"
+#: commands.c:689
+#, fuzzy, c-format
+msgid " (from '%s', line %lu):\n"
msgstr " (nuo „%s“, %lu eilutė):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -127,224 +133,228 @@ msgstr ""
"\n"
"# Aplankai\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
msgstr "# %s: negalėjo būti stat'intas.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
msgstr "# %s (key %s, mtime %d): nepavyko atverti.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
msgstr ""
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
msgstr ""
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr ""
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
msgstr ""
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
msgstr ""
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "Ne"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " failai, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "ne"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
msgstr " negalimybÄ—s"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr " kol kas."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
msgstr " negalimybÄ—s %lu aplankuose.\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 "Rekursyvus kintamasis „%s“ nukreipia į save (anksÄiau ar vÄ—liau)"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
msgstr "neterminuota nuoroda į kintamąjį"
-#: 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 "Komandos nurodytos failui „%s“ %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 "Komandos failui „%s“ rastos pagal neišreikštinę taisyklių paiešką"
-#: 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 "bet „%s“ dabar laikomas tuo paÄiu failu kaip „%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 "Komandos „%s“ bus ignoruojamos „%s“ komandų naudai."
-#: 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 "*** Trinamas tarpinis failas „%s“"
-#: file.c:396
+#: file.c:400
msgid "Removing intermediate files...\n"
msgstr "Å alinami tarpiniai failai...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
msgstr "%s: Laiko žymÄ— už rėžių; keiÄiama į %s"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "Dabartinis laikas"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
msgstr "# Ne tikslas:"
-#: file.c:929
+#: file.c:954
#, fuzzy
msgid "# Precious file (prerequisite of .PRECIOUS)."
msgstr "# Brangus failas (reikalingas .PRECIOUS)"
-#: file.c:931
+#: file.c:956
#, fuzzy
msgid "# Phony target (prerequisite of .PHONY)."
msgstr "# Keistas tikslas (reikalingas .PHONY)."
-#: file.c:933
+#: file.c:958
#, fuzzy
msgid "# Command line target."
msgstr "# KomandinÄ—s eilutÄ—s tikslas"
-#: file.c:935
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
msgstr "# Numatytoji reikšmė, MAKEFILES, arba -include/sinclude „make“ failas"
-#: file.c:937
+#: file.c:962
+#, fuzzy
+msgid "# Builtin rule"
+msgstr ""
+"\n"
+"# Nėra neišreikštinių taisyklių."
+
+#: file.c:964
msgid "# Implicit rule search has been done."
msgstr "# Neišreikštinių taisyklių paieška atlikta."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
msgstr "# Neišreikštinių taisyklių paieška neatlikta."
-#: file.c:940
-#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
+#: file.c:967
+#, fuzzy, c-format
+msgid "# Implicit/static pattern stem: '%s'\n"
msgstr "# Išreikštinis/statinis šablono kamienas: „%s“\n"
-#: file.c:942
+#: file.c:969
#, fuzzy
msgid "# File is an intermediate prerequisite."
msgstr "# Failas yra tarpinÄ— sÄ…lyga"
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
msgstr "# Taip pat sukuria:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
msgstr "# Modifikacijos laikas niekada netikrintas."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# Failas neegzistuoja."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr "# Failas labai senas."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr "# Paskutinį kartą pakeista %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# Failas atnaujintas."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# Failas nebuvo atnaujintas."
-#: file.c:968
+#: file.c:995
#, fuzzy
msgid "# Recipe currently running (THIS IS A BUG)."
msgstr "# Dabar vykdomos komandos (TAI KLAIDA)."
-#: file.c:971
+#: file.c:998
#, fuzzy
msgid "# Dependencies recipe running (THIS IS A BUG)."
msgstr "# Vykdomos priklausomybių komandos (TAI KLAIDA)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
msgstr "# SÄ—kmingai atnaujinta."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
msgstr "# Turi būti atnaujinta (-q nustatyta)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr "# Nepavyko atnaujinti."
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# Netaisyklinga reikšmė „update_status“ naryje!"
-
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
+#: file.c:1019
+#, fuzzy
+msgid "# Invalid value in 'command_state' member!"
msgstr "# Netaisyklinga reikšmė „command_state“ naryje!"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -352,7 +362,7 @@ msgstr ""
"\n"
"# Failai"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
@@ -362,116 +372,170 @@ msgstr ""
"# failų maišos lentelės statistika:\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
+msgid "non-numeric first argument to 'word' function"
msgstr ""
-#: function.c:763
-msgid "first argument to `word' function must be greater than 0"
+#: function.c:747
+msgid "first argument to 'word' function must be greater than 0"
msgstr ""
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
+#: function.c:767
+msgid "non-numeric first argument to 'wordlist' function"
msgstr ""
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
+#: function.c:769
+msgid "non-numeric second argument to 'wordlist' function"
msgstr ""
-#: function.c:1458
+#: function.c:1460
#, c-format
-msgid "windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
msgstr ""
-#: function.c:1469
+#: function.c:1483
#, c-format
-msgid "windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
msgstr ""
-#: function.c:1474
+#: function.c:1490
#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
msgstr ""
-#: function.c:1479
+#: function.c:1498
msgid "windows32_openpipe(): process_init_fd() failed\n"
msgstr ""
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr ""
-#: function.c:2150
+#: function.c:2151
+#, fuzzy, c-format
+msgid "open: %s: %s"
+msgstr "%s: %s"
+
+#: function.c:2158
+#, fuzzy, c-format
+msgid "write: %s: %s"
+msgstr "rašymo klaida: %s"
+
+#: function.c:2164
#, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
+msgid "Invalid file operation: %s"
msgstr ""
-#: function.c:2162
+#: function.c:2279
#, c-format
-msgid "unimplemented on this platform: function `%s'"
+msgid "insufficient number of arguments (%d) to function '%s'"
msgstr ""
-#: function.c:2212
+#: function.c:2291
#, c-format
-msgid "unterminated call to function `%s': missing `%c'"
+msgid "unimplemented on this platform: function '%s'"
msgstr ""
-#: getopt.c:661
+#: function.c:2354
#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: parametras `%s' dviprasmis\n"
+msgid "unterminated call to function '%s': missing '%c'"
+msgstr ""
-#: getopt.c:685
+#: function.c:2546
+msgid "Empty function name\n"
+msgstr ""
+
+#: function.c:2548
#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: argumentas „--%s“ neleidžia parametro\n"
+msgid "Invalid function name: %s\n"
+msgstr ""
-#: getopt.c:690
+#: function.c:2550
#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: argumentas „%c%s“ neleidžia parametro\n"
+msgid "Function name too long: %s\n"
+msgstr ""
-#: getopt.c:707 getopt.c:880
+#: function.c:2552
#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: parametrui „%s“ reikia argumento\n"
+msgid "Invalid minimum argument count (%d) for function %s\n"
+msgstr ""
-#: getopt.c:736
+#: function.c:2555
#, c-format
-msgid "%s: unrecognized option `--%s'\n"
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr ""
+
+#: getopt.c:659
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: parametras `%s' dviprasmis\n"
+
+#: getopt.c:683
+#, fuzzy, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: argumentas „--%s“ neleidžia parametro\n"
+
+#: getopt.c:688
+#, fuzzy, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: argumentas „%c%s“ neleidžia parametro\n"
+
+#: getopt.c:705 getopt.c:878
+#, fuzzy, c-format
+msgid "%s: option '%s' requires an argument\n"
+msgstr "%s: parametrui „%s“ reikia argumento\n"
+
+#: getopt.c:734
+#, fuzzy, c-format
+msgid "%s: unrecognized option '--%s'\n"
msgstr "%s: neatpažintas argumentas „--%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: neatpažintas argumentas „%c%s“\n"
-#: getopt.c:766
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: neleistinas parametras -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: netaisyklingas argumentas -- %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: parametrui reikia argumento -- %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: parametras „-W %s“ dviprasmis\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: parametras „-W %s“ neleidžia argumento\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
#, c-format
msgid "can't allocate %lu bytes for hash table: memory exhausted"
@@ -492,398 +556,493 @@ msgstr ""
msgid "Collisions=%ld/%ld=%.0f%%"
msgstr ""
-#: implicit.c:40
-#, c-format
-msgid "Looking for an implicit rule for `%s'.\n"
-msgstr ""
+#: implicit.c:38
+#, fuzzy, c-format
+msgid "Looking for an implicit rule for '%s'.\n"
+msgstr "Rasta neišreikštinė taisyklė tikslui „%s“.\n"
-#: implicit.c:56
-#, c-format
-msgid "Looking for archive-member implicit rule for `%s'.\n"
-msgstr ""
+#: implicit.c:54
+#, fuzzy, c-format
+msgid "Looking for archive-member implicit rule for '%s'.\n"
+msgstr "Rasta neišreikštinė taisyklė tikslui „%s“.\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
msgstr ""
-#: 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:674
+#: implicit.c:491
#, c-format
-msgid "Rejecting impossible rule prerequisite `%s'.\n"
+msgid "Trying pattern rule with stem '%.*s'.\n"
msgstr ""
-#: implicit.c:675
+#: implicit.c:697
#, c-format
-msgid "Rejecting impossible implicit prerequisite `%s'.\n"
+msgid "Rejecting impossible rule prerequisite '%s'.\n"
msgstr ""
-#: implicit.c:688
+#: implicit.c:698
#, c-format
-msgid "Trying rule prerequisite `%s'.\n"
+msgid "Rejecting impossible implicit prerequisite '%s'.\n"
msgstr ""
-#: implicit.c:689
+#: implicit.c:711
#, c-format
-msgid "Trying implicit prerequisite `%s'.\n"
+msgid "Trying rule prerequisite '%s'.\n"
msgstr ""
-#: implicit.c:728
+#: implicit.c:712
#, c-format
-msgid "Found prerequisite `%s' as VPATH `%s'\n"
+msgid "Trying implicit prerequisite '%s'.\n"
msgstr ""
-#: implicit.c:742
+#: implicit.c:751
#, c-format
-msgid "Looking for a rule with intermediate file `%s'.\n"
+msgid "Found prerequisite '%s' as VPATH '%s'\n"
msgstr ""
-#: job.c:335
+#: implicit.c:765
+#, fuzzy, c-format
+msgid "Looking for a rule with intermediate file '%s'.\n"
+msgstr "Å alinami tarpiniai failai...\n"
+
+#: job.c:361
msgid "Cannot create a temporary file\n"
msgstr ""
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
+#: job.c:482
+msgid " (core dumped)"
msgstr ""
-#: job.c:450
-#, c-format
-msgid "*** [%s] Error 0x%x"
+#: job.c:487
+msgid " (ignored)"
msgstr ""
-#: job.c:454
+#: job.c:491 job.c:1994
+#, fuzzy
+msgid "<builtin>"
+msgstr " (integruota)"
+
+#: job.c:501
#, c-format
-msgid "[%s] Error %d (ignored)"
+msgid "%s: recipe for target '%s' failed"
msgstr ""
-#: job.c:455
+#: job.c:510
#, c-format
-msgid "*** [%s] Error %d"
+msgid "%s[%s] Error 0x%x%s"
msgstr ""
-#: job.c:460
-msgid " (core dumped)"
+#: job.c:513
+#, c-format
+msgid "%s[%s] Error %d%s"
msgstr ""
-#: job.c:549
+#: job.c:517
+#, fuzzy, c-format
+msgid "%s[%s] %s%s%s"
+msgstr "%s%s: %s"
+
+#: job.c:609
msgid "*** Waiting for unfinished jobs...."
msgstr ""
-#: 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 ""
-#: 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
#, fuzzy, c-format
msgid "Cleaning up temp batch file %s\n"
msgstr "%s: nepavyko atverti laikinojo failo: %s"
-#: job.c:861
+#: job.c:843
+#, fuzzy, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "%s: nepavyko atverti laikinojo failo: %s"
+
+#: job.c:949
#, c-format
msgid "Removing child %p PID %s%s from chain.\n"
msgstr ""
-#: job.c:920
-#, fuzzy
-msgid "write jobserver"
-msgstr "rašymo klaida: %s"
+#: 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
+#, fuzzy
+msgid "write jobserver"
+msgstr "rašymo klaida: %s"
+
+#: job.c:1612 job.c:2332
#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
msgstr ""
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
"Counted %d args in failed launch\n"
msgstr ""
-#: job.c:1525
+#: job.c:1685
#, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
msgstr ""
-#: 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 ""
-#: 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: Archyvas „%s“ neegzistuoja"
-#: job.c:1802
+#: job.c:2005
#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "Nereikia atnaujinti taikinio „%s“"
+msgid "%s: update target '%s' due to: %s"
+msgstr "%sNėra taisyklės pasiekti tikslui „%s“, kurio reikia „%s“%s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
msgstr ""
-#: job.c:1912
+#: job.c:2120
#, fuzzy
msgid "cannot enforce load limit: "
msgstr "%s: nepayko pakeisti limito: %s"
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
msgstr ""
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
msgstr ""
-#: job.c:2015
+#: job.c:2223
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr ""
+
+#: job.c:2238
msgid "Could not restore stdin\n"
msgstr ""
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
msgstr ""
-#: job.c:2127
+#: job.c:2254
+msgid "Could not restore stderr\n"
+msgstr ""
+
+#: 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: Komanda nerasta"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr "%s: Kevalo programa nerasta"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
msgstr ""
-#: 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 pakeistas (buvo „%s“, dabar „%s“)\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr ""
-#: 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 ""
-#: 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
+msgid "The 'load' operation is not supported on this platform."
+msgstr ""
+
+#: main.c:312
msgid "Options:\n"
msgstr ""
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
msgstr ""
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr ""
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
msgstr ""
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
msgstr ""
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
msgstr ""
-#: 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"
msgstr ""
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
msgstr ""
-#: main.c:325
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
msgstr ""
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
msgstr ""
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
msgstr ""
-#: main.c:332
+#: main.c:341
msgid ""
" -k, --keep-going Keep going when some targets can't be made.\n"
msgstr ""
-#: 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 "
"N.\n"
msgstr ""
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
msgstr ""
-#: main.c:339
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
"them.\n"
msgstr ""
-#: 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 "
"it.\n"
msgstr ""
-#: 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 ""
-#: main.c:347
+#: main.c:359
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
msgstr ""
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr ""
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr ""
-#: main.c:353
+#: main.c:365
msgid " -s, --silent, --quiet Don't echo recipes.\n"
msgstr ""
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
msgstr ""
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
-#: main.c:360
+#: main.c:372
+msgid " --trace Print tracing information.\n"
+msgstr ""
+
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr ""
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
msgstr ""
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
msgstr ""
-#: 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"
msgstr ""
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
msgstr ""
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
msgstr "negalimas tuÅ¡Äias failo pavadinimas"
-#: main.c:650
-#, c-format
-msgid "unknown debug level specification `%s'"
+#: main.c:734
+#, fuzzy, c-format
+msgid "unknown debug level specification '%s'"
msgstr "nežinomas debug lygio specifikacija „%s“"
-#: main.c:690
+#: main.c:777
+#, c-format
+msgid "unknown output-sync type '%s'"
+msgstr ""
+
+#: main.c:787
+msgid "internal error: multiple --sync-mutex options"
+msgstr ""
+
+#: main.c:848
#, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
msgstr ""
-#: main.c:697
+#: main.c:855
#, c-format
msgid ""
"\n"
@@ -893,158 +1052,179 @@ msgid ""
"ExceptionAddress = 0x%p\n"
msgstr ""
-#: main.c:705
+#: main.c:863
#, c-format
msgid "Access violation: write operation at address 0x%p\n"
msgstr ""
-#: main.c:706
+#: main.c:864
#, c-format
msgid "Access violation: read operation at address 0x%p\n"
msgstr ""
-#: main.c:781 main.c:792
+#: main.c:940 main.c:955
#, c-format
msgid "find_and_set_shell() setting default_shell = %s\n"
msgstr ""
-#: main.c:834
+#: main.c:1008
#, c-format
msgid "find_and_set_shell() path search set default_shell = %s\n"
msgstr ""
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr ""
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr ""
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr ""
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr ""
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr ""
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
+#: main.c:1534
+msgid "internal error: multiple --jobserver-fds options"
msgstr ""
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
+#: main.c:1544
+#, c-format
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
msgstr ""
-#: main.c:1719
-msgid "internal error: multiple --jobserver-fds options"
+#: main.c:1547
+#, c-format
+msgid "Jobserver client (semaphore %s)\n"
msgstr ""
-#: main.c:1727
+#: main.c:1551
#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
+msgid "internal error: invalid --jobserver-fds string '%s'"
msgstr ""
-#: 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 ""
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
msgstr ""
-#: main.c:1753
+#: main.c:1586
msgid ""
-"warning: jobserver unavailable: using -j1. Add `+' to parent make rule."
+"warning: jobserver unavailable: using -j1. Add '+' to parent make rule."
+msgstr ""
+
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr ""
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr ""
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr ""
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr ""
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr ""
+
+#: main.c:2006
+#, c-format
+msgid "Jobserver slots limited to %d\n"
msgstr ""
-#: main.c:1777
+#: main.c:2012
+#, c-format
+msgid "creating jobserver semaphore: (Error %ld: %s)"
+msgstr ""
+
+#: main.c:2019
msgid "creating jobs pipe"
msgstr ""
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
msgstr ""
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
msgstr ""
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr "Atnaujinami „make“ failai....\n"
-#: main.c:1917
+#: main.c:2174
#, c-format
-msgid "Makefile `%s' might loop; not remaking it.\n"
+msgid "Makefile '%s' might loop; not remaking it.\n"
msgstr ""
-#: main.c:1996
-#, c-format
-msgid "Failed to remake makefile `%s'."
-msgstr ""
+#: main.c:2253
+#, fuzzy, c-format
+msgid "Failed to remake makefile '%s'."
+msgstr "Nereikia atnaujinti taikinio „%s“"
-#: main.c:2013
-#, c-format
-msgid "Included makefile `%s' was not found."
-msgstr ""
+#: main.c:2270
+#, fuzzy, c-format
+msgid "Included makefile '%s' was not found."
+msgstr "„Make“ failas „%s“ nerastas"
-#: main.c:2018
+#: main.c:2275
#, fuzzy, c-format
-msgid "Makefile `%s' was not found"
+msgid "Makefile '%s' was not found"
msgstr "„Make“ failas „%s“ nerastas"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
msgstr "Nepavyko grįžti į pirminį aplanką."
-#: main.c:2102
+#: main.c:2354
#, c-format
msgid "Re-executing[%u]:"
msgstr ""
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr ""
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
msgstr ""
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
msgstr "Nenurodyta tikslų ir nerasta „make“ failų"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "Nėra tikslų"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
msgstr "Atnaujinami tikslai...\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr ""
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
msgstr "Naudojimas: %s [argumentai] [tikslas] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
@@ -1053,7 +1233,7 @@ msgstr ""
"\n"
"Å i programa sukompiliuota %s sistemai\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
@@ -1062,36 +1242,36 @@ msgstr ""
"\n"
"Å i programa sukompiliuota %s (%s) sistemai\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
msgstr "Praneškite apie klaidas adresu <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 "parametrui „-%c“ reikia netuÅ¡Äio argumento"
-#: main.c:2617
+#: main.c:2864
#, fuzzy, c-format
-msgid "the `-%c' option requires a positive integral argument"
+msgid "the '-%c' option requires a positive integer argument"
msgstr "parametrui „-%c“ reikia teigiamo sveiko argumento"
-#: main.c:3054
+#: main.c:3253
#, fuzzy, c-format
msgid "%sBuilt for %s\n"
msgstr ""
"\n"
"%sÅ i programa sukompiliuota %s sistemai\n"
-#: main.c:3056
+#: main.c:3255
#, fuzzy, c-format
msgid "%sBuilt for %s (%s)\n"
msgstr ""
"\n"
"%sÅ i programa sukompiliuota %s (%s) sistemai\n"
-#: main.c:3066
+#: main.c:3266
#, c-format
msgid ""
"%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1100,120 +1280,120 @@ msgid ""
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
"# Make data base, printed on %s"
msgstr ""
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
"# Finished Make data base on %s\n"
msgstr ""
-#: main.c:3237
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "Nežinoma klaida %d"
+
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "baigÄ—si virtuali atmintis"
+
+#: misc.c:522
+#, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s: user %lu (real %lu), group %lu (real %lu)\n"
+
+#: misc.c:543
+msgid "Initialized access"
+msgstr ""
+
+#: misc.c:622
+msgid "User access"
+msgstr ""
+
+#: misc.c:670
+msgid "Make access"
+msgstr ""
+
+#: misc.c:704
+msgid "Child access"
+msgstr ""
+
+#: output.c:128
#, c-format
msgid "%s: Entering an unknown directory\n"
msgstr "%s: Įeinama į nežinomą aplanką\n"
-#: main.c:3239
+#: output.c:130
#, c-format
msgid "%s: Leaving an unknown directory\n"
msgstr "%s: Išeinama iš nežinomo aplanko\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: Įeinama į aplanką „%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: Išeinama iš aplanko „%s“\n"
-#: main.c:3250
+#: output.c:139
#, c-format
msgid "%s[%u]: Entering an unknown directory\n"
msgstr "%s[%u]: Įeinama į nežinomą aplanką\n"
-#: main.c:3253
+#: output.c:141
#, c-format
msgid "%s[%u]: Leaving an unknown directory\n"
msgstr "%s[%u]: Išeinama iš nežinomo aplanko\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]: Įeinama į aplanką „%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]: Išeinama iš aplanko „%s“\n"
-#: misc.c:316
+#: output.c:515
+#, c-format
+msgid "write error: %s"
+msgstr "rašymo klaida: %s"
+
+#: output.c:517
+msgid "write error"
+msgstr "rašymo klaida"
+
+#: output.c:740
msgid ". Stop.\n"
msgstr ". Pabaiga.\n"
-#: misc.c:337
-#, c-format
-msgid "Unknown error %d"
-msgstr "Nežinoma klaida %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 "baigÄ—si virtuali atmintis"
-
-#: misc.c:708
-#, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s: user %lu (real %lu), group %lu (real %lu)\n"
-
-#: misc.c:729
-msgid "Initialized access"
-msgstr ""
-
-#: misc.c:808
-msgid "User access"
-msgstr ""
-
-#: misc.c:856
-msgid "Make access"
-msgstr ""
-
-#: misc.c:890
-msgid "Child access"
-msgstr ""
-
-#: misc.c:954
-#, c-format
-msgid "write error: %s"
-msgstr "rašymo klaida: %s"
-
-#: misc.c:956
-msgid "write error"
-msgstr "rašymo klaida"
-
-#: read.c:179
+#: read.c:180
msgid "Reading makefiles...\n"
msgstr "Skaitomi „make“ failai...\n"
#: read.c:333
-#, c-format
-msgid "Reading makefile `%s'"
+#, fuzzy, c-format
+msgid "Reading makefile '%s'"
msgstr "Skaitomas „make“ failas „%s“"
#: read.c:335
@@ -1236,325 +1416,342 @@ msgstr " (nesvarbu)"
msgid " (no ~ expansion)"
msgstr " (nėra ~ išplėtimo)"
-#: 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 "netaisyklinga sÄ…lygos sintaksÄ—"
-#: 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 "komandos prasideda prieš pirmąjį tikslą"
-#: read.c:940
+#: read.c:1036
#, fuzzy
msgid "missing rule before recipe"
msgstr "trūksta taisyklės prieš komandas"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
msgstr "trūksta skirtuko%s"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
msgstr " (ar norėjote padėti TAB simbolį vietoje 8 tarpų?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
msgstr "trūksta tikslo šablono"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
msgstr "keli tikslo Å¡ablonai"
-#: read.c:1169
-#, c-format
-msgid "target pattern contains no `%%'"
+#: read.c:1269
+#, fuzzy, c-format
+msgid "target pattern contains no '%%'"
msgstr "tikslo šablone nėra „%%“"
-#: read.c:1293
-msgid "missing `endif'"
+#: read.c:1391
+#, fuzzy
+msgid "missing 'endif'"
msgstr "trūksta „endif“"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "tuÅ¡Äias kintamojo pavadinimas"
-#: read.c:1367
+#: read.c:1465
#, fuzzy
-msgid "extraneous text after `define' directive"
+msgid "extraneous text after 'define' directive"
msgstr "Perteklinis tekstas po „endef“ direktyvos"
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
+#: read.c:1490
+#, fuzzy
+msgid "missing 'endef', unterminated 'define'"
msgstr "trūksta „endef“, nebaigtas „define“"
-#: read.c:1420
+#: read.c:1518
#, fuzzy
-msgid "extraneous text after `endef' directive"
+msgid "extraneous text after 'endef' directive"
msgstr "Perteklinis tekstas po „endef“ direktyvos"
-#: read.c:1490
-#, c-format
-msgid "Extraneous text after `%s' directive"
+#: read.c:1589
+#, fuzzy, c-format
+msgid "extraneous text after '%s' directive"
msgstr "Perteklinis tekstas po „%s“ direktyvos"
-#: read.c:1499 read.c:1513
-#, c-format
-msgid "extraneous `%s'"
+#: read.c:1598 read.c:1612
+#, fuzzy, c-format
+msgid "extraneous '%s'"
msgstr "perteklinis „%s“"
-#: read.c:1518
-msgid "only one `else' per conditional"
+#: read.c:1617
+msgid "only one 'else' per conditional"
msgstr ""
-#: read.c:1797
+#: read.c:1892
msgid "Malformed target-specific variable definition"
msgstr ""
-#: read.c:1855
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
msgstr ""
-#: 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
+#: read.c:2084
#, c-format
-msgid "target `%s' doesn't match the target pattern"
+msgid "target '%s' doesn't match the target pattern"
msgstr ""
-#: read.c:1991 read.c:2036
+#: read.c:2099 read.c:2144
#, c-format
-msgid "target file `%s' has both : and :: entries"
+msgid "target file '%s' has both : and :: entries"
msgstr ""
-#: read.c:1997
+#: read.c:2105
#, c-format
-msgid "target `%s' given more than once in the same rule."
+msgid "target '%s' given more than once in the same rule"
msgstr ""
-#: read.c:2006
+#: read.c:2114
#, c-format
-msgid "warning: overriding recipe for target `%s'"
+msgid "warning: overriding recipe for target '%s'"
msgstr ""
-#: read.c:2009
+#: read.c:2117
#, c-format
-msgid "warning: ignoring old recipe for target `%s'"
+msgid "warning: ignoring old recipe for target '%s'"
msgstr ""
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
msgstr ""
-#: 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 "Nėra ką daryti su „%s“."
-#: 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“ atnaujinti nereikia."
-#: remake.c:306
-#, c-format
-msgid "Pruning file `%s'.\n"
-msgstr ""
+#: remake.c:305
+#, fuzzy, c-format
+msgid "Pruning file '%s'.\n"
+msgstr "Vis dar atnaujinamas failas „%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 "%sNėra taisyklės pasiekti tikslui „%s“%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 "%sNėra taisyklės pasiekti tikslui „%s“, kurio reikia „%s“%s"
#: remake.c:413
-#, c-format
-msgid "Considering target file `%s'.\n"
+#, fuzzy, c-format
+msgid "Considering target file '%s'.\n"
msgstr "Svarstomas tikslo failas „%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 "Neseniai bandyta ir nepavyko atnaujinti failo „%s“.\n"
#: remake.c:432
-#, c-format
-msgid "File `%s' was considered already.\n"
+#, fuzzy, c-format
+msgid "File '%s' was considered already.\n"
msgstr "Failas „%s“ jau apsvarstytas.\n"
#: remake.c:442
-#, c-format
-msgid "Still updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Still updating file '%s'.\n"
msgstr "Vis dar atnaujinamas failas „%s“.\n"
#: remake.c:445
-#, c-format
-msgid "Finished updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Finished updating file '%s'.\n"
msgstr "Baigtas atnaujinti failas „%s“.\n"
#: remake.c:474
-#, c-format
-msgid "File `%s' does not exist.\n"
+#, fuzzy, c-format
+msgid "File '%s' does not exist.\n"
msgstr "Failas „%s“ neegzistuoja.\n"
#: remake.c:481
#, 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 ""
-#: 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 "Rasta neišreikštinė taisyklė tikslui „%s“.\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 "Nerasta neišreikštinių taisyklių tikslui „%s“.\n"
#: remake.c:502
-#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
-msgstr "Nėra ką daryti su „%s“."
-
-#: remake.c:535 remake.c:1057
#, c-format
-msgid "Circular %s <- %s dependency dropped."
+msgid "Using default recipe for '%s'.\n"
msgstr ""
-#: remake.c:651
+#: remake.c:535 remake.c:1067
#, c-format
-msgid "Finished prerequisites of target file `%s'.\n"
+msgid "Circular %s <- %s dependency dropped."
msgstr ""
-#: remake.c:657
-#, c-format
-msgid "The prerequisites of `%s' are being made.\n"
-msgstr ""
+#: remake.c:655
+#, fuzzy, c-format
+msgid "Finished prerequisites of target file '%s'.\n"
+msgstr "Svarstomas tikslo failas „%s“.\n"
-#: remake.c:670
+#: remake.c:661
#, c-format
-msgid "Giving up on target file `%s'.\n"
+msgid "The prerequisites of '%s' are being made.\n"
msgstr ""
-#: remake.c:675
-#, c-format
-msgid "Target `%s' not remade because of errors."
+#: remake.c:674
+#, fuzzy, c-format
+msgid "Giving up on target file '%s'.\n"
+msgstr "Svarstomas tikslo failas „%s“.\n"
+
+#: remake.c:679
+#, fuzzy, c-format
+msgid "Target '%s' not remade because of errors."
msgstr "Tikslas „%s“ neatnaujintas dėl klaidų."
-#: remake.c:727
+#: remake.c:731
#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
msgstr ""
-#: remake.c:732
-#, c-format
-msgid "Prerequisite `%s' of target `%s' does not exist.\n"
-msgstr ""
+#: remake.c:736
+#, fuzzy, c-format
+msgid "Prerequisite '%s' of target '%s' does not exist.\n"
+msgstr "Failas „%s“ neegzistuoja.\n"
-#: remake.c:737
+#: remake.c:741
#, c-format
-msgid "Prerequisite `%s' is newer than target `%s'.\n"
+msgid "Prerequisite '%s' is newer than target '%s'.\n"
msgstr ""
-#: remake.c:740
+#: remake.c:744
#, c-format
-msgid "Prerequisite `%s' is older than target `%s'.\n"
+msgid "Prerequisite '%s' is older than target '%s'.\n"
msgstr ""
-#: 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
+#: remake.c:774
#, c-format
-msgid "Making `%s' due to always-make flag.\n"
+msgid "Making '%s' due to always-make flag.\n"
msgstr ""
-#: 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 "Nereikia atnaujinti taikinio „%s“"
-#: remake.c:780
+#: remake.c:784
#, c-format
-msgid "; using VPATH name `%s'"
+msgid "; using VPATH name '%s'"
msgstr ""
-#: remake.c:800
-#, c-format
-msgid "Must remake target `%s'.\n"
+#: remake.c:804
+#, fuzzy, c-format
+msgid "Must remake target '%s'.\n"
msgstr "Būtina atnaujinti taikinį „%s“.\n"
-#: remake.c:806
+#: remake.c:810
#, c-format
-msgid " Ignoring VPATH name `%s'.\n"
+msgid " Ignoring VPATH name '%s'.\n"
msgstr ""
-#: remake.c:815
+#: remake.c:819
#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
+msgid "Recipe of '%s' is being run.\n"
msgstr "Vykdomos „%s“ komandos.\n"
-#: remake.c:822
-#, c-format
-msgid "Failed to remake target file `%s'.\n"
-msgstr ""
+#: remake.c:826
+#, fuzzy, c-format
+msgid "Failed to remake target file '%s'.\n"
+msgstr "Nereikia atnaujinti taikinio „%s“"
-#: remake.c:825
-#, c-format
-msgid "Successfully remade target file `%s'.\n"
-msgstr ""
+#: remake.c:829
+#, fuzzy, c-format
+msgid "Successfully remade target file '%s'.\n"
+msgstr "Būtina atnaujinti taikinį „%s“.\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"
-msgstr ""
+#: remake.c:1027
+#, fuzzy, c-format
+msgid "Using default commands for '%s'.\n"
+msgstr "paskutinÄ— komanda: %s\n"
-#: remake.c:1357
+#: remake.c:1372
#, c-format
-msgid "Warning: File `%s' has modification time in the future"
+msgid "Warning: File '%s' has modification time in the future"
msgstr ""
-#: remake.c:1370
+#: remake.c:1385
#, 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 ""
-#: remake.c:1569
+#: remake.c:1583
#, c-format
-msgid ".LIBPATTERNS element `%s' is not a pattern"
+msgid ".LIBPATTERNS element '%s' is not a pattern"
msgstr ""
-#: 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"
@@ -1562,7 +1759,7 @@ msgstr ""
"\n"
"# Neišreikštinės taisyklės"
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
@@ -1570,7 +1767,7 @@ msgstr ""
"\n"
"# Nėra neišreikštinių taisyklių."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -1579,393 +1776,411 @@ msgstr ""
"\n"
"# %u neišreikštinių taisyklių, %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr ""
-#: rule.c:534
+#: rule.c:531
#, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
msgstr ""
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "nežinomas signalas"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
msgstr ""
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "Pertraukimas"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
msgstr "IÅ¡eita"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
msgstr "Neleistina instrukcija"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
msgstr ""
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr ""
-#: signame.c:114
+#: signame.c:112
#, fuzzy
msgid "IOT trap"
msgstr "EMT gaudyklÄ—"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
msgstr "EMT gaudyklÄ—"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
msgstr "Slankaus kablelio klaida"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "Nutraukta"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr "MagistralÄ—s klaida"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "Segmentacijos klaida"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "Blogas sisteminis kvietimas"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr ""
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "Žadintuvas"
-#: signame.c:141
+#: signame.c:139
#, fuzzy
msgid "Terminated"
msgstr "apribota"
-#: signame.c:144
+#: signame.c:142
#, fuzzy
msgid "User defined signal 1"
msgstr "%s: nutrauktas signalo %d"
-#: signame.c:147
+#: signame.c:145
#, fuzzy
msgid "User defined signal 2"
msgstr "%s: nutrauktas signalo %d"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
#, fuzzy
msgid "Child exited"
msgstr "Failas jau egzistuoja"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
msgstr "Elektros maitinimo sutrikimas"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "Sustabdyta"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
msgstr "Sustabdyta (tty įvedimas)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
msgstr "Sustabdyta (tty išvedimas)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "Sustabdyta (signalas)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
msgstr "Viršytas CPU laiko limitas"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
msgstr "Viršytas failo dydžio limitas"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
msgstr ""
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
msgstr ""
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
msgstr "Langas pakeistas"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "Pratęsta"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
msgstr ""
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
msgstr "Galimas įvedimas/išvedimas"
-#: 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 "IÅ¡teklius prarastas"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "Pavojaus signalas"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr "Informacijos užklausa"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
msgstr "Slankaus kablelio koprocesorius neprieinamas"
-#: 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"
"# failų maišos lentelės statistika:\n"
"# "
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr ""
+
+#: variable.c:1610
msgid "default"
msgstr ""
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr ""
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr ""
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
msgstr ""
-#: variable.c:1553
+#: variable.c:1622
#, fuzzy
msgid "command line"
msgstr "%s: komanda nerasta"
-#: variable.c:1556
-msgid "`override' directive"
-msgstr ""
-
-#: variable.c:1559
-msgid "automatic"
-msgstr ""
+#: variable.c:1625
+#, fuzzy
+msgid "'override' directive"
+msgstr "tuÅ¡Äia „override“ direktyva"
-#: variable.c:1570
-#, c-format
-msgid " (from `%s', line %lu)"
-msgstr ""
+#: variable.c:1636
+#, fuzzy, c-format
+msgid " (from '%s', line %lu)"
+msgstr " (nuo „%s“, %lu eilutė):\n"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
msgstr ""
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
msgstr ""
-#: variable.c:1627
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
msgstr ""
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
msgstr ""
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
"# %u pattern-specific variable values"
msgstr ""
-#: variable.h:219
+#: variable.h:224
#, fuzzy, c-format
-msgid "warning: undefined variable `%.*s'"
+msgid "warning: undefined variable '%.*s'"
msgstr "%s: neatpažintas argumentas „%c%s“\n"
-#: vmsfunctions.c:92
+#: vmsfunctions.c:91
#, c-format
msgid "sys$search() failed with %d\n"
msgstr ""
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr ""
-#: vmsjobs.c:184
+#: vmsjobs.c:178
#, c-format
-msgid "internal error: `%s' command_state"
+msgid "internal error: '%s' command_state"
msgstr ""
-#: vmsjobs.c:289
+#: vmsjobs.c:286
#, c-format
msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
msgstr ""
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr ""
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr ""
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr ""
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, fuzzy, c-format
msgid "Unknown builtin command '%s'\n"
msgstr "paskutinÄ— komanda: %s\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr ""
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr ""
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, fuzzy, c-format
msgid "Redirected error to %s\n"
msgstr "skaitymo klaida: %d: %s"
-#: vmsjobs.c:523
+#: vmsjobs.c:518
#, c-format
msgid "Append output to %s\n"
msgstr ""
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
msgstr ""
-#: 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 ""
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr ""
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
msgstr ""
-#: vpath.c:603
-msgid "# No `vpath' search paths."
-msgstr ""
+#: vpath.c:600
+#, fuzzy
+msgid "# No 'vpath' search paths."
+msgstr " (paieškos kelias)"
-#: vpath.c:605
+#: vpath.c:602
#, c-format
msgid ""
"\n"
-"# %u `vpath' search paths.\n"
+"# %u 'vpath' search paths.\n"
msgstr ""
-#: vpath.c:608
+#: vpath.c:605
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
-#: vpath.c:614
+#: vpath.c:611
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
+#~ msgid "# Invalid value in `update_status' member!"
+#~ msgstr "# Netaisyklinga reikšmė „update_status“ naryje!"
+
#~ msgid "extraneous `endef'"
#~ msgstr "perteklinis „endef“"
-#~ msgid "empty `override' directive"
-#~ msgstr "tuÅ¡Äia „override“ direktyva"
-
#, fuzzy
#~ msgid "invalid `override' directive"
#~ msgstr "netaisyklinga „override“ direktyva"
diff --git a/po/make.pot b/po/make.pot
index 175984e..d2ff216 100644
--- a/po/make.pot
+++ b/po/make.pot
@@ -6,454 +6,514 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: GNU make 4.0\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: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ar.c:48
+#: ar.c:46
#, c-format
-msgid "attempt to use unsupported feature: `%s'"
+msgid "attempt to use unsupported feature: '%s'"
msgstr ""
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
msgstr ""
-#: ar.c:149
+#: ar.c:147
#, c-format
-msgid "touch: Archive `%s' does not exist"
+msgid "touch: Archive '%s' does not exist"
msgstr ""
-#: ar.c:152
+#: ar.c:150
#, c-format
-msgid "touch: `%s' is not a valid archive"
+msgid "touch: '%s' is not a valid archive"
msgstr ""
-#: ar.c:159
+#: ar.c:157
#, c-format
-msgid "touch: Member `%s' does not exist in `%s'"
+msgid "touch: Member '%s' does not exist in '%s'"
msgstr ""
-#: ar.c:166
+#: ar.c:164
#, c-format
-msgid "touch: Bad return code from ar_member_touch on `%s'"
+msgid "touch: Bad return code from ar_member_touch on '%s'"
msgstr ""
-#: arscan.c:69
+#: arscan.c:67
#, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
msgstr ""
-#: arscan.c:175
+#: arscan.c:173
#, c-format
msgid "lbr$ini_control() failed with status = %d"
msgstr ""
-#: arscan.c:187
+#: arscan.c:185
#, c-format
-msgid "unable to open library `%s' to lookup member `%s'"
+msgid "unable to open library '%s' to lookup member '%s'"
msgstr ""
-#: arscan.c:850
+#: arscan.c:847
#, c-format
-msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n"
+msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
msgstr ""
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr ""
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr ""
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr ""
-#: commands.c:499
+#: commands.c:406
+#, c-format
+msgid "Recipe has too many lines (%ud)"
+msgstr ""
+
+#: commands.c:507
msgid "*** Break.\n"
msgstr ""
-#: commands.c:622
+#: commands.c:630
#, c-format
-msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
+msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
msgstr ""
-#: commands.c:625
+#: commands.c:633
#, c-format
-msgid "*** Archive member `%s' may be bogus; not deleted"
+msgid "*** Archive member '%s' may be bogus; not deleted"
msgstr ""
-#: commands.c:638
+#: commands.c:646
#, c-format
-msgid "*** [%s] Deleting file `%s'"
+msgid "*** [%s] Deleting file '%s'"
msgstr ""
-#: commands.c:640
+#: commands.c:648
#, c-format
-msgid "*** Deleting file `%s'"
+msgid "*** Deleting file '%s'"
msgstr ""
-#: commands.c:676
+#: commands.c:684
msgid "# recipe to execute"
msgstr ""
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr ""
-#: commands.c:681
+#: commands.c:689
#, c-format
-msgid " (from `%s', line %lu):\n"
+msgid " (from '%s', line %lu):\n"
msgstr ""
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
msgstr ""
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
msgstr ""
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
msgstr ""
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
msgstr ""
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
msgstr ""
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr ""
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
msgstr ""
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
msgstr ""
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr ""
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr ""
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr ""
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
msgstr ""
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr ""
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
msgstr ""
-#: expand.c:127
+#: expand.c:125
#, c-format
-msgid "Recursive variable `%s' references itself (eventually)"
+msgid "Recursive variable '%s' references itself (eventually)"
msgstr ""
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
msgstr ""
-#: file.c:267
+#: file.c:269
#, c-format
-msgid "Recipe was specified for file `%s' at %s:%lu,"
+msgid "Recipe was specified for file '%s' at %s:%lu,"
msgstr ""
-#: file.c:272
+#: file.c:274
#, 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 ""
-#: file.c:275
+#: file.c:277
#, c-format
-msgid "but `%s' is now considered the same file as `%s'."
+msgid "but '%s' is now considered the same file as '%s'."
msgstr ""
-#: file.c:278
+#: file.c:280
#, 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 ""
-#: 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
+#: file.c:396
#, c-format
-msgid "*** Deleting intermediate file `%s'"
+msgid "*** Deleting intermediate file '%s'"
msgstr ""
-#: file.c:396
+#: file.c:400
msgid "Removing intermediate files...\n"
msgstr ""
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
msgstr ""
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr ""
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
msgstr ""
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
msgstr ""
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
msgstr ""
-#: file.c:933
+#: file.c:958
msgid "# Command line target."
msgstr ""
-#: file.c:935
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
msgstr ""
-#: file.c:937
+#: file.c:962
+msgid "# Builtin rule"
+msgstr ""
+
+#: file.c:964
msgid "# Implicit rule search has been done."
msgstr ""
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
msgstr ""
-#: 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 ""
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
msgstr ""
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
msgstr ""
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr ""
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr ""
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr ""
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr ""
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr ""
-#: file.c:968
+#: file.c:995
msgid "# Recipe currently running (THIS IS A BUG)."
msgstr ""
-#: file.c:971
+#: file.c:998
msgid "# Dependencies recipe running (THIS IS A BUG)."
msgstr ""
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
msgstr ""
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
msgstr ""
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr ""
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr ""
-
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
+#: file.c:1019
+msgid "# Invalid value in 'command_state' member!"
msgstr ""
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
msgstr ""
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
"# "
msgstr ""
-#: 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
+msgid "non-numeric first argument to 'word' function"
msgstr ""
-#: function.c:763
-msgid "first argument to `word' function must be greater than 0"
+#: function.c:747
+msgid "first argument to 'word' function must be greater than 0"
msgstr ""
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
+#: function.c:767
+msgid "non-numeric first argument to 'wordlist' function"
msgstr ""
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
+#: function.c:769
+msgid "non-numeric second argument to 'wordlist' function"
msgstr ""
-#: function.c:1458
+#: function.c:1460
#, c-format
-msgid "windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
msgstr ""
-#: function.c:1469
+#: function.c:1483
#, c-format
-msgid "windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
msgstr ""
-#: function.c:1474
+#: function.c:1490
#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
msgstr ""
-#: function.c:1479
+#: function.c:1498
msgid "windows32_openpipe(): process_init_fd() failed\n"
msgstr ""
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr ""
-#: function.c:2150
+#: function.c:2151
+#, c-format
+msgid "open: %s: %s"
+msgstr ""
+
+#: function.c:2158
+#, c-format
+msgid "write: %s: %s"
+msgstr ""
+
+#: function.c:2164
+#, c-format
+msgid "Invalid file operation: %s"
+msgstr ""
+
+#: function.c:2279
+#, c-format
+msgid "insufficient number of arguments (%d) to function '%s'"
+msgstr ""
+
+#: function.c:2291
+#, c-format
+msgid "unimplemented on this platform: function '%s'"
+msgstr ""
+
+#: function.c:2354
+#, c-format
+msgid "unterminated call to function '%s': missing '%c'"
+msgstr ""
+
+#: function.c:2546
+msgid "Empty function name\n"
+msgstr ""
+
+#: function.c:2548
#, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
+msgid "Invalid function name: %s\n"
msgstr ""
-#: function.c:2162
+#: function.c:2550
#, c-format
-msgid "unimplemented on this platform: function `%s'"
+msgid "Function name too long: %s\n"
msgstr ""
-#: function.c:2212
+#: function.c:2552
#, c-format
-msgid "unterminated call to function `%s': missing `%c'"
+msgid "Invalid minimum argument count (%d) for function %s\n"
msgstr ""
-#: getopt.c:661
+#: function.c:2555
#, c-format
-msgid "%s: option `%s' is ambiguous\n"
+msgid "Invalid maximum argument count (%d) for function %s\n"
msgstr ""
-#: getopt.c:685
+#: getopt.c:659
#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
+msgid "%s: option '%s' is ambiguous\n"
msgstr ""
-#: getopt.c:690
+#: getopt.c:683
#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr ""
-#: getopt.c:707 getopt.c:880
+#: getopt.c:688
#, c-format
-msgid "%s: option `%s' requires an argument\n"
+msgid "%s: option '%c%s' doesn't allow an argument\n"
msgstr ""
-#: getopt.c:736
+#: getopt.c:705 getopt.c:878
#, c-format
-msgid "%s: unrecognized option `--%s'\n"
+msgid "%s: option '%s' requires an argument\n"
msgstr ""
-#: getopt.c:740
+#: getopt.c:734
#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
+msgid "%s: unrecognized option '--%s'\n"
msgstr ""
-#: getopt.c:766
+#: getopt.c:738
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr ""
+
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr ""
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr ""
-#: getopt.c:799 getopt.c:929
+#: getopt.c:797 getopt.c:927
#, c-format
msgid "%s: option requires an argument -- %c\n"
msgstr ""
-#: getopt.c:846
+#: getopt.c:844
#, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
+msgid "%s: option '-W %s' is ambiguous\n"
msgstr ""
-#: getopt.c:864
+#: getopt.c:862
#, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#: 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
@@ -476,396 +536,490 @@ msgstr ""
msgid "Collisions=%ld/%ld=%.0f%%"
msgstr ""
-#: implicit.c:40
+#: implicit.c:38
#, c-format
-msgid "Looking for an implicit rule for `%s'.\n"
+msgid "Looking for an implicit rule for '%s'.\n"
msgstr ""
-#: implicit.c:56
+#: implicit.c:54
#, c-format
-msgid "Looking for archive-member implicit rule for `%s'.\n"
+msgid "Looking for archive-member implicit rule for '%s'.\n"
msgstr ""
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
msgstr ""
+#: implicit.c:486
+#, c-format
+msgid "Stem too long: '%.*s'.\n"
+msgstr ""
+
#: implicit.c:491
#, c-format
-msgid "Trying pattern rule with stem `%.*s'.\n"
+msgid "Trying pattern rule with stem '%.*s'.\n"
msgstr ""
-#: implicit.c:674
+#: implicit.c:697
#, c-format
-msgid "Rejecting impossible rule prerequisite `%s'.\n"
+msgid "Rejecting impossible rule prerequisite '%s'.\n"
msgstr ""
-#: implicit.c:675
+#: implicit.c:698
#, c-format
-msgid "Rejecting impossible implicit prerequisite `%s'.\n"
+msgid "Rejecting impossible implicit prerequisite '%s'.\n"
msgstr ""
-#: implicit.c:688
+#: implicit.c:711
#, c-format
-msgid "Trying rule prerequisite `%s'.\n"
+msgid "Trying rule prerequisite '%s'.\n"
msgstr ""
-#: implicit.c:689
+#: implicit.c:712
#, c-format
-msgid "Trying implicit prerequisite `%s'.\n"
+msgid "Trying implicit prerequisite '%s'.\n"
msgstr ""
-#: implicit.c:728
+#: implicit.c:751
#, c-format
-msgid "Found prerequisite `%s' as VPATH `%s'\n"
+msgid "Found prerequisite '%s' as VPATH '%s'\n"
msgstr ""
-#: implicit.c:742
+#: implicit.c:765
#, c-format
-msgid "Looking for a rule with intermediate file `%s'.\n"
+msgid "Looking for a rule with intermediate file '%s'.\n"
msgstr ""
-#: job.c:335
+#: job.c:361
msgid "Cannot create a temporary file\n"
msgstr ""
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
+#: job.c:482
+msgid " (core dumped)"
+msgstr ""
+
+#: job.c:487
+msgid " (ignored)"
msgstr ""
-#: job.c:450
+#: job.c:491 job.c:1994
+msgid "<builtin>"
+msgstr ""
+
+#: job.c:501
#, c-format
-msgid "*** [%s] Error 0x%x"
+msgid "%s: recipe for target '%s' failed"
msgstr ""
-#: job.c:454
+#: job.c:510
#, c-format
-msgid "[%s] Error %d (ignored)"
+msgid "%s[%s] Error 0x%x%s"
msgstr ""
-#: job.c:455
+#: job.c:513
#, c-format
-msgid "*** [%s] Error %d"
+msgid "%s[%s] Error %d%s"
msgstr ""
-#: job.c:460
-msgid " (core dumped)"
+#: job.c:517
+#, c-format
+msgid "%s[%s] %s%s%s"
msgstr ""
-#: job.c:549
+#: job.c:609
msgid "*** Waiting for unfinished jobs...."
msgstr ""
-#: 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 ""
-#: 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 ""
-#: job.c:861
+#: job.c:843
+#, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr ""
+
+#: job.c:949
#, c-format
msgid "Removing child %p PID %s%s from chain.\n"
msgstr ""
-#: job.c:920
-msgid "write jobserver"
+#: 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 ""
+
+#: job.c:1612 job.c:2332
#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
msgstr ""
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
"Counted %d args in failed launch\n"
msgstr ""
-#: job.c:1525
+#: job.c:1685
#, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
msgstr ""
-#: 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 ""
-#: job.c:1798
+#: job.c:2003
#, c-format
-msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
+msgid "%s: target '%s' does not exist"
msgstr ""
-#: job.c:1802
+#: job.c:2005
#, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
+msgid "%s: update target '%s' due to: %s"
msgstr ""
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
msgstr ""
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
msgstr ""
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
msgstr ""
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
msgstr ""
-#: job.c:2015
+#: job.c:2223
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr ""
+
+#: job.c:2238
msgid "Could not restore stdin\n"
msgstr ""
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
msgstr ""
-#: job.c:2127
+#: job.c:2254
+msgid "Could not restore stderr\n"
+msgstr ""
+
+#: 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 ""
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr ""
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
msgstr ""
-#: job.c:2461
+#: job.c:2709
#, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
+msgid "$SHELL changed (was '%s', now '%s')\n"
msgstr ""
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr ""
-#: 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 ""
-#: 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
+msgid "The 'load' operation is not supported on this platform."
+msgstr ""
+
+#: main.c:312
msgid "Options:\n"
msgstr ""
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
msgstr ""
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr ""
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
msgstr ""
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
msgstr ""
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
msgstr ""
-#: 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"
msgstr ""
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
msgstr ""
-#: main.c:325
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
msgstr ""
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
msgstr ""
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
msgstr ""
-#: main.c:332
+#: main.c:341
msgid ""
" -k, --keep-going Keep going when some targets can't be made.\n"
msgstr ""
-#: 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 "
"N.\n"
msgstr ""
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
msgstr ""
-#: main.c:339
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
"them.\n"
msgstr ""
-#: 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 "
"it.\n"
msgstr ""
-#: 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 ""
-#: main.c:347
+#: main.c:359
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
msgstr ""
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr ""
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr ""
-#: main.c:353
+#: main.c:365
msgid " -s, --silent, --quiet Don't echo recipes.\n"
msgstr ""
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
msgstr ""
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
-#: main.c:360
+#: main.c:372
+msgid " --trace Print tracing information.\n"
+msgstr ""
+
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr ""
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
msgstr ""
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
msgstr ""
-#: 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"
msgstr ""
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
msgstr ""
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
msgstr ""
-#: main.c:650
+#: main.c:734
#, c-format
-msgid "unknown debug level specification `%s'"
+msgid "unknown debug level specification '%s'"
msgstr ""
-#: main.c:690
+#: main.c:777
+#, c-format
+msgid "unknown output-sync type '%s'"
+msgstr ""
+
+#: main.c:787
+msgid "internal error: multiple --sync-mutex options"
+msgstr ""
+
+#: main.c:848
#, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
msgstr ""
-#: main.c:697
+#: main.c:855
#, c-format
msgid ""
"\n"
@@ -875,197 +1029,218 @@ msgid ""
"ExceptionAddress = 0x%p\n"
msgstr ""
-#: main.c:705
+#: main.c:863
#, c-format
msgid "Access violation: write operation at address 0x%p\n"
msgstr ""
-#: main.c:706
+#: main.c:864
#, c-format
msgid "Access violation: read operation at address 0x%p\n"
msgstr ""
-#: main.c:781 main.c:792
+#: main.c:940 main.c:955
#, c-format
msgid "find_and_set_shell() setting default_shell = %s\n"
msgstr ""
-#: main.c:834
+#: main.c:1008
#, c-format
msgid "find_and_set_shell() path search set default_shell = %s\n"
msgstr ""
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr ""
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr ""
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr ""
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr ""
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr ""
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
+#: main.c:1534
+msgid "internal error: multiple --jobserver-fds options"
msgstr ""
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
+#: main.c:1544
+#, c-format
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
msgstr ""
-#: main.c:1719
-msgid "internal error: multiple --jobserver-fds options"
+#: main.c:1547
+#, c-format
+msgid "Jobserver client (semaphore %s)\n"
msgstr ""
-#: main.c:1727
+#: main.c:1551
#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
+msgid "internal error: invalid --jobserver-fds string '%s'"
msgstr ""
-#: 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 ""
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
msgstr ""
-#: main.c:1753
+#: main.c:1586
msgid ""
-"warning: jobserver unavailable: using -j1. Add `+' to parent make rule."
+"warning: jobserver unavailable: using -j1. Add '+' to parent make rule."
+msgstr ""
+
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr ""
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr ""
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr ""
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
msgstr ""
-#: main.c:1777
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr ""
+
+#: 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 ""
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
msgstr ""
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
msgstr ""
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr ""
-#: main.c:1917
+#: main.c:2174
#, c-format
-msgid "Makefile `%s' might loop; not remaking it.\n"
+msgid "Makefile '%s' might loop; not remaking it.\n"
msgstr ""
-#: main.c:1996
+#: main.c:2253
#, c-format
-msgid "Failed to remake makefile `%s'."
+msgid "Failed to remake makefile '%s'."
msgstr ""
-#: main.c:2013
+#: main.c:2270
#, c-format
-msgid "Included makefile `%s' was not found."
+msgid "Included makefile '%s' was not found."
msgstr ""
-#: main.c:2018
+#: main.c:2275
#, c-format
-msgid "Makefile `%s' was not found"
+msgid "Makefile '%s' was not found"
msgstr ""
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
msgstr ""
-#: main.c:2102
+#: main.c:2354
#, c-format
msgid "Re-executing[%u]:"
msgstr ""
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr ""
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
msgstr ""
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
msgstr ""
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr ""
-#: 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 ""
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
msgstr ""
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
"This program built for %s\n"
msgstr ""
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
"This program built for %s (%s)\n"
msgstr ""
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
msgstr ""
-#: main.c:2562
+#: main.c:2810
#, 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 ""
-#: main.c:2617
+#: main.c:2864
#, c-format
-msgid "the `-%c' option requires a positive integral argument"
+msgid "the '-%c' option requires a positive integer argument"
msgstr ""
-#: main.c:3054
+#: main.c:3253
#, c-format
msgid "%sBuilt for %s\n"
msgstr ""
-#: main.c:3056
+#: main.c:3255
#, c-format
msgid "%sBuilt for %s (%s)\n"
msgstr ""
-#: main.c:3066
+#: main.c:3266
#, c-format
msgid ""
"%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1074,120 +1249,120 @@ msgid ""
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
"# Make data base, printed on %s"
msgstr ""
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
"# Finished Make data base on %s\n"
msgstr ""
-#: main.c:3237
+#: misc.c:201
#, c-format
-msgid "%s: Entering an unknown directory\n"
+msgid "Unknown error %d"
msgstr ""
-#: main.c:3239
-#, c-format
-msgid "%s: Leaving an unknown directory\n"
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
msgstr ""
-#: main.c:3242
+#: misc.c:522
#, c-format
-msgid "%s: Entering directory `%s'\n"
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
msgstr ""
-#: main.c:3245
-#, c-format
-msgid "%s: Leaving directory `%s'\n"
+#: misc.c:543
+msgid "Initialized access"
msgstr ""
-#: main.c:3250
-#, c-format
-msgid "%s[%u]: Entering an unknown directory\n"
+#: misc.c:622
+msgid "User access"
msgstr ""
-#: main.c:3253
-#, c-format
-msgid "%s[%u]: Leaving an unknown directory\n"
+#: misc.c:670
+msgid "Make access"
msgstr ""
-#: main.c:3257
-#, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
+#: misc.c:704
+msgid "Child access"
msgstr ""
-#: main.c:3260
+#: output.c:128
#, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
+msgid "%s: Entering an unknown directory\n"
msgstr ""
-#: misc.c:316
-msgid ". Stop.\n"
+#: output.c:130
+#, c-format
+msgid "%s: Leaving an unknown directory\n"
msgstr ""
-#: misc.c:337
+#: output.c:133
#, c-format
-msgid "Unknown error %d"
+msgid "%s: Entering directory '%s'\n"
msgstr ""
-#: misc.c:347
+#: output.c:135
#, c-format
-msgid "%s%s: %s"
+msgid "%s: Leaving directory '%s'\n"
msgstr ""
-#: misc.c:355
+#: output.c:139
#, c-format
-msgid "%s: %s"
+msgid "%s[%u]: Entering an unknown directory\n"
msgstr ""
-#: misc.c:376 misc.c:387 misc.c:402 misc.c:419 misc.c:438 read.c:3118
-msgid "virtual memory exhausted"
+#: output.c:141
+#, c-format
+msgid "%s[%u]: Leaving an unknown directory\n"
msgstr ""
-#: misc.c:708
+#: output.c:144
#, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgid "%s[%u]: Entering directory '%s'\n"
msgstr ""
-#: misc.c:729
-msgid "Initialized access"
+#: output.c:146
+#, c-format
+msgid "%s[%u]: Leaving directory '%s'\n"
msgstr ""
-#: misc.c:808
-msgid "User access"
+#: output.c:515
+#, c-format
+msgid "write error: %s"
msgstr ""
-#: misc.c:856
-msgid "Make access"
+#: output.c:517
+msgid "write error"
msgstr ""
-#: misc.c:890
-msgid "Child access"
+#: output.c:740
+msgid ". Stop.\n"
msgstr ""
-#: misc.c:954
+#: output.c:751
#, c-format
-msgid "write error: %s"
+msgid "%s%s: %s"
msgstr ""
-#: misc.c:956
-msgid "write error"
+#: output.c:759
+#, c-format
+msgid "%s: %s"
msgstr ""
-#: read.c:179
+#: read.c:180
msgid "Reading makefiles...\n"
msgstr ""
#: read.c:333
#, c-format
-msgid "Reading makefile `%s'"
+msgid "Reading makefile '%s'"
msgstr ""
#: read.c:335
@@ -1210,706 +1385,737 @@ msgstr ""
msgid " (no ~ expansion)"
msgstr ""
-#: 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 ""
-#: read.c:891
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr ""
+
+#: read.c:987
msgid "recipe commences before first target"
msgstr ""
-#: read.c:940
+#: read.c:1036
msgid "missing rule before recipe"
msgstr ""
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
msgstr ""
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
msgstr ""
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
msgstr ""
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
msgstr ""
-#: read.c:1169
+#: read.c:1269
#, c-format
-msgid "target pattern contains no `%%'"
+msgid "target pattern contains no '%%'"
msgstr ""
-#: read.c:1293
-msgid "missing `endif'"
+#: read.c:1391
+msgid "missing 'endif'"
msgstr ""
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr ""
-#: read.c:1367
-msgid "extraneous text after `define' directive"
+#: read.c:1465
+msgid "extraneous text after 'define' directive"
msgstr ""
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
+#: read.c:1490
+msgid "missing 'endef', unterminated 'define'"
msgstr ""
-#: read.c:1420
-msgid "extraneous text after `endef' directive"
+#: read.c:1518
+msgid "extraneous text after 'endef' directive"
msgstr ""
-#: read.c:1490
+#: read.c:1589
#, c-format
-msgid "Extraneous text after `%s' directive"
+msgid "extraneous text after '%s' directive"
msgstr ""
-#: read.c:1499 read.c:1513
+#: read.c:1598 read.c:1612
#, c-format
-msgid "extraneous `%s'"
+msgid "extraneous '%s'"
msgstr ""
-#: read.c:1518
-msgid "only one `else' per conditional"
+#: read.c:1617
+msgid "only one 'else' per conditional"
msgstr ""
-#: read.c:1797
+#: read.c:1892
msgid "Malformed target-specific variable definition"
msgstr ""
-#: read.c:1855
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
msgstr ""
-#: 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
+#: read.c:2084
#, c-format
-msgid "target `%s' doesn't match the target pattern"
+msgid "target '%s' doesn't match the target pattern"
msgstr ""
-#: read.c:1991 read.c:2036
+#: read.c:2099 read.c:2144
#, c-format
-msgid "target file `%s' has both : and :: entries"
+msgid "target file '%s' has both : and :: entries"
msgstr ""
-#: read.c:1997
+#: read.c:2105
#, c-format
-msgid "target `%s' given more than once in the same rule."
+msgid "target '%s' given more than once in the same rule"
msgstr ""
-#: read.c:2006
+#: read.c:2114
#, c-format
-msgid "warning: overriding recipe for target `%s'"
+msgid "warning: overriding recipe for target '%s'"
msgstr ""
-#: read.c:2009
+#: read.c:2117
#, c-format
-msgid "warning: ignoring old recipe for target `%s'"
+msgid "warning: ignoring old recipe for target '%s'"
msgstr ""
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
msgstr ""
-#: remake.c:234
+#: remake.c:232
#, c-format
-msgid "Nothing to be done for `%s'."
+msgid "Nothing to be done for '%s'."
msgstr ""
-#: remake.c:235
+#: remake.c:233
#, c-format
-msgid "`%s' is up to date."
+msgid "'%s' is up to date."
msgstr ""
-#: remake.c:306
+#: remake.c:305
#, c-format
-msgid "Pruning file `%s'.\n"
+msgid "Pruning file '%s'.\n"
msgstr ""
-#: remake.c:359
+#: remake.c:377
#, c-format
-msgid "%sNo rule to make target `%s'%s"
+msgid "%sNo rule to make target '%s'%s"
msgstr ""
-#: remake.c:361
+#: remake.c:379
#, c-format
-msgid "%sNo rule to make target `%s', needed by `%s'%s"
+msgid "%sNo rule to make target '%s', needed by '%s'%s"
msgstr ""
#: remake.c:413
#, c-format
-msgid "Considering target file `%s'.\n"
+msgid "Considering target file '%s'.\n"
msgstr ""
#: remake.c:420
#, c-format
-msgid "Recently tried and failed to update file `%s'.\n"
+msgid "Recently tried and failed to update file '%s'.\n"
msgstr ""
#: remake.c:432
#, c-format
-msgid "File `%s' was considered already.\n"
+msgid "File '%s' was considered already.\n"
msgstr ""
#: remake.c:442
#, c-format
-msgid "Still updating file `%s'.\n"
+msgid "Still updating file '%s'.\n"
msgstr ""
#: remake.c:445
#, c-format
-msgid "Finished updating file `%s'.\n"
+msgid "Finished updating file '%s'.\n"
msgstr ""
#: remake.c:474
#, c-format
-msgid "File `%s' does not exist.\n"
+msgid "File '%s' does not exist.\n"
msgstr ""
#: remake.c:481
#, 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 ""
-#: remake.c:494 remake.c:1016
+#: remake.c:494 remake.c:1019
#, c-format
-msgid "Found an implicit rule for `%s'.\n"
+msgid "Found an implicit rule for '%s'.\n"
msgstr ""
-#: remake.c:496 remake.c:1018
+#: remake.c:496 remake.c:1021
#, c-format
-msgid "No implicit rule found for `%s'.\n"
+msgid "No implicit rule found for '%s'.\n"
msgstr ""
#: remake.c:502
#, c-format
-msgid "Using default recipe for `%s'.\n"
+msgid "Using default recipe for '%s'.\n"
msgstr ""
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
msgstr ""
-#: remake.c:651
+#: remake.c:655
#, c-format
-msgid "Finished prerequisites of target file `%s'.\n"
+msgid "Finished prerequisites of target file '%s'.\n"
msgstr ""
-#: remake.c:657
+#: remake.c:661
#, c-format
-msgid "The prerequisites of `%s' are being made.\n"
+msgid "The prerequisites of '%s' are being made.\n"
msgstr ""
-#: remake.c:670
+#: remake.c:674
#, c-format
-msgid "Giving up on target file `%s'.\n"
+msgid "Giving up on target file '%s'.\n"
msgstr ""
-#: remake.c:675
+#: remake.c:679
#, c-format
-msgid "Target `%s' not remade because of errors."
+msgid "Target '%s' not remade because of errors."
msgstr ""
-#: remake.c:727
+#: remake.c:731
#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
msgstr ""
-#: remake.c:732
+#: remake.c:736
#, c-format
-msgid "Prerequisite `%s' of target `%s' does not exist.\n"
+msgid "Prerequisite '%s' of target '%s' does not exist.\n"
msgstr ""
-#: remake.c:737
+#: remake.c:741
#, c-format
-msgid "Prerequisite `%s' is newer than target `%s'.\n"
+msgid "Prerequisite '%s' is newer than target '%s'.\n"
msgstr ""
-#: remake.c:740
+#: remake.c:744
#, c-format
-msgid "Prerequisite `%s' is older than target `%s'.\n"
+msgid "Prerequisite '%s' is older than target '%s'.\n"
msgstr ""
-#: 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
+#: remake.c:774
#, c-format
-msgid "Making `%s' due to always-make flag.\n"
+msgid "Making '%s' due to always-make flag.\n"
msgstr ""
-#: remake.c:778
+#: remake.c:782
#, c-format
-msgid "No need to remake target `%s'"
+msgid "No need to remake target '%s'"
msgstr ""
-#: remake.c:780
+#: remake.c:784
#, c-format
-msgid "; using VPATH name `%s'"
+msgid "; using VPATH name '%s'"
msgstr ""
-#: remake.c:800
+#: remake.c:804
#, c-format
-msgid "Must remake target `%s'.\n"
+msgid "Must remake target '%s'.\n"
msgstr ""
-#: remake.c:806
+#: remake.c:810
#, c-format
-msgid " Ignoring VPATH name `%s'.\n"
+msgid " Ignoring VPATH name '%s'.\n"
msgstr ""
-#: 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
+#: remake.c:826
#, c-format
-msgid "Failed to remake target file `%s'.\n"
+msgid "Failed to remake target file '%s'.\n"
msgstr ""
-#: remake.c:825
+#: remake.c:829
#, c-format
-msgid "Successfully remade target file `%s'.\n"
+msgid "Successfully remade target file '%s'.\n"
msgstr ""
-#: 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
+#: remake.c:1027
#, c-format
-msgid "Using default commands for `%s'.\n"
+msgid "Using default commands for '%s'.\n"
msgstr ""
-#: remake.c:1357
+#: remake.c:1372
#, c-format
-msgid "Warning: File `%s' has modification time in the future"
+msgid "Warning: File '%s' has modification time in the future"
msgstr ""
-#: remake.c:1370
+#: remake.c:1385
#, 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 ""
-#: remake.c:1569
+#: remake.c:1583
#, c-format
-msgid ".LIBPATTERNS element `%s' is not a pattern"
+msgid ".LIBPATTERNS element '%s' is not a pattern"
msgstr ""
-#: 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"
msgstr ""
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
msgstr ""
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
"# %u implicit rules, %u"
msgstr ""
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr ""
-#: rule.c:534
+#: rule.c:531
#, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
msgstr ""
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr ""
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
msgstr ""
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr ""
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
msgstr ""
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
msgstr ""
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
msgstr ""
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr ""
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
msgstr ""
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
msgstr ""
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
msgstr ""
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr ""
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr ""
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr ""
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr ""
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr ""
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr ""
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
msgstr ""
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr ""
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr ""
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
msgstr ""
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
msgstr ""
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr ""
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
msgstr ""
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
msgstr ""
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr ""
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
msgstr ""
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
msgstr ""
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
msgstr ""
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
msgstr ""
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
msgstr ""
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr ""
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
msgstr ""
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
msgstr ""
-#: signame.c:204
+#: signame.c:202
msgid "SIGWIND"
msgstr ""
-#: signame.c:207
+#: signame.c:205
msgid "SIGPHONE"
msgstr ""
-#: signame.c:213
+#: signame.c:211
msgid "Resource lost"
msgstr ""
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr ""
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr ""
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
msgstr ""
-#: strcache.c:235
+#: strcache.c:236
+#, c-format
+msgid ""
+"\n"
+"%s No strcache buffers\n"
+msgstr ""
+
+#: strcache.c:266
#, c-format
msgid ""
"\n"
-"%s # of strings in strcache: %d / lookups = %lu / hits = %lu\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
msgstr ""
-#: strcache.c:237
+#: strcache.c:270
#, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+msgid ""
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
msgstr ""
-#: strcache.c:239
+#: strcache.c:280
#, c-format
-msgid "%s strcache used: 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:241
+#: strcache.c:283
#, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
msgstr ""
-#: strcache.c:244
+#: 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
+msgid ""
+"# hash-table stats:\n"
"# "
msgstr ""
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr ""
+
+#: variable.c:1610
msgid "default"
msgstr ""
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr ""
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr ""
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
msgstr ""
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr ""
-#: variable.c:1556
-msgid "`override' directive"
+#: variable.c:1625
+msgid "'override' directive"
msgstr ""
-#: variable.c:1559
-msgid "automatic"
-msgstr ""
-
-#: variable.c:1570
+#: variable.c:1636
#, c-format
-msgid " (from `%s', line %lu)"
+msgid " (from '%s', line %lu)"
msgstr ""
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
msgstr ""
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
msgstr ""
-#: variable.c:1627
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
msgstr ""
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
msgstr ""
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
"# %u pattern-specific variable values"
msgstr ""
-#: variable.h:219
+#: variable.h:224
#, c-format
-msgid "warning: undefined variable `%.*s'"
+msgid "warning: undefined variable '%.*s'"
msgstr ""
-#: vmsfunctions.c:92
+#: vmsfunctions.c:91
#, c-format
msgid "sys$search() failed with %d\n"
msgstr ""
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr ""
-#: vmsjobs.c:184
+#: vmsjobs.c:178
#, c-format
-msgid "internal error: `%s' command_state"
+msgid "internal error: '%s' command_state"
msgstr ""
-#: vmsjobs.c:289
+#: vmsjobs.c:286
#, c-format
msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
msgstr ""
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr ""
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr ""
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr ""
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
msgstr ""
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr ""
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr ""
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr ""
-#: vmsjobs.c:523
+#: vmsjobs.c:518
#, c-format
msgid "Append output to %s\n"
msgstr ""
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
msgstr ""
-#: 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 ""
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr ""
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
msgstr ""
-#: vpath.c:603
-msgid "# No `vpath' search paths."
+#: vpath.c:600
+msgid "# No 'vpath' search paths."
msgstr ""
-#: vpath.c:605
+#: vpath.c:602
#, c-format
msgid ""
"\n"
-"# %u `vpath' search paths.\n"
+"# %u 'vpath' search paths.\n"
msgstr ""
-#: vpath.c:608
+#: vpath.c:605
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
-#: vpath.c:614
+#: vpath.c:611
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
diff --git a/po/nl.gmo b/po/nl.gmo
index 1f15184..3961e79 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 5235d0c..44e81e0 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,125 +1,133 @@
-# Dutch translations for make.
-# Copyright (C) 2010 Free Software Foundation, Inc.
+# Dutch translations for GNU make.
+# Copyright (C) 2013 Free Software Foundation, Inc.
# This file is distributed under the same license as the make package.
#
+# "Eĉ en Arkadio mi estas."
+#
# Taco Witte <tcwitte@cs.uu.nl>, 2004.
-# Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2010.
+# Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2010, 2013.
msgid ""
msgstr ""
-"Project-Id-Version: make-3.81.91\n"
+"Project-Id-Version: make-3.99.93\n"
"Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2010-07-28 01:42-0400\n"
-"PO-Revision-Date: 2010-07-24 11:28+0200\n"
+"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"PO-Revision-Date: 2013-10-02 22:07+0200\n"
"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
+"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 1.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: ar.c:48
+#: ar.c:46
#, c-format
-msgid "attempt to use unsupported feature: `%s'"
+msgid "attempt to use unsupported feature: '%s'"
msgstr "poging tot gebruik van niet-ondersteunde functie: '%s'"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
msgstr "het 'touchen' van een archiefonderdeel is niet mogelijk op VMS"
-#: ar.c:149
+#: ar.c:147
#, c-format
-msgid "touch: Archive `%s' does not exist"
-msgstr "touch: Archief '%s' bestaat niet"
+msgid "touch: Archive '%s' does not exist"
+msgstr "touch: archief '%s' bestaat niet"
-#: ar.c:152
+#: ar.c:150
#, c-format
-msgid "touch: `%s' is not a valid archive"
+msgid "touch: '%s' is not a valid archive"
msgstr "touch: '%s' is geen geldig archief"
-#: ar.c:159
+#: ar.c:157
#, c-format
-msgid "touch: Member `%s' does not exist in `%s'"
-msgstr "touch: Onderdeel '%s' bestaat niet in '%s'"
+msgid "touch: Member '%s' does not exist in '%s'"
+msgstr "touch: onderdeel '%s' bestaat niet in '%s'"
-#: ar.c:166
+#: ar.c:164
#, c-format
-msgid "touch: Bad return code from ar_member_touch on `%s'"
-msgstr "touch: ar_member_touch van '%s' is mislukt"
+msgid "touch: Bad return code from ar_member_touch on '%s'"
+msgstr "touch: ar_member_touch() van '%s' is mislukt"
-#: arscan.c:69
+#: arscan.c:67
#, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
msgstr ""
"uitpakken van module-info door lbr$set_module() is mislukt, afsluitwaarde= %d"
-#: arscan.c:175
+#: arscan.c:173
#, c-format
msgid "lbr$ini_control() failed with status = %d"
msgstr "lbr$ini_control() is mislukt, afsluitwaarde = %d"
-#: arscan.c:187
+#: arscan.c:185
#, c-format
-msgid "unable to open library `%s' to lookup member `%s'"
+msgid "unable to open library '%s' to lookup member '%s'"
msgstr "kan bibliotheek '%s' niet openen om onderdeel '%s' op te zoeken"
-#: arscan.c:850
+#: arscan.c:847
#, c-format
-msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n"
+msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
msgstr "Onderdeel '%s'%s: %ld bytes bij %ld (%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr " (naam kan afgekapt zijn)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Datum %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d, gid = %d, modus = 0%o.\n"
-#: commands.c:499
+#: commands.c:406
+#, c-format
+msgid "Recipe has too many lines (%ud)"
+msgstr "Recept bevat te veel regels (%ud)"
+
+#: commands.c:507
msgid "*** Break.\n"
msgstr "*** Afgebroken.\n"
-#: commands.c:622
+#: commands.c:630
#, c-format
-msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
-msgstr "*** [%s] Archiefonderdeel '%s' kan verkeerd zijn; niet verwijderd"
+msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
+msgstr "*** [%s] Archiefonderdeel '%s' kan onecht zijn; niet verwijderd"
-#: commands.c:625
+#: commands.c:633
#, c-format
-msgid "*** Archive member `%s' may be bogus; not deleted"
-msgstr "*** Archiefonderdeel '%s' kan verkeerd zijn; niet verwijderd"
+msgid "*** Archive member '%s' may be bogus; not deleted"
+msgstr "*** Archiefonderdeel '%s' kan onecht zijn; niet verwijderd"
-#: commands.c:638
+#: commands.c:646
#, c-format
-msgid "*** [%s] Deleting file `%s'"
+msgid "*** [%s] Deleting file '%s'"
msgstr "*** [%s] Verwijderen van bestand '%s'"
-#: commands.c:640
+#: commands.c:648
#, c-format
-msgid "*** Deleting file `%s'"
+msgid "*** Deleting file '%s'"
msgstr "*** Verwijderen van bestand '%s'"
-#: commands.c:676
+#: commands.c:684
msgid "# recipe to execute"
msgstr "# uit te voeren recept"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr " (ingebouwd):"
-#: commands.c:681
+#: commands.c:689
#, c-format
-msgid " (from `%s', line %lu):\n"
-msgstr " (van '%s', regel %lu):\n"
+msgid " (from '%s', line %lu):\n"
+msgstr " (uit '%s', regel %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -127,218 +135,219 @@ msgstr ""
"\n"
"# Mappen\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
msgstr "# kan status van %s niet opvragen.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
msgstr "# %s (sleutel %s, wijzigingstijd %d): kan niet worden geopend.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
msgstr "# %s (apparaat %d, inode [%d,%d,%d]): kan niet worden geopend.\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
msgstr "# %s (apparaat %ld, inode %ld): kan niet worden geopend.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr "# %s (sleutel %s, wijzigingstijd %d): "
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
msgstr "# %s (apparaat %d, inode [%d,%d,%d]): "
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
msgstr "# %s (apparaat %ld, inode %ld): "
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "Geen"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " bestanden, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "geen"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
msgstr " onmogelijkheden"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr " tot nu toe."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
msgstr " onmogelijkheden in %lu mappen.\n"
-#: expand.c:127
+#: expand.c:125
#, c-format
-msgid "Recursive variable `%s' references itself (eventually)"
-msgstr "Recursieve variabele '%s' verwijst naar zichzelf, uiteindelijk"
+msgid "Recursive variable '%s' references itself (eventually)"
+msgstr "Recursieve variabele '%s' verwijst naar zichzelf (uiteindelijk)"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
msgstr "onafgemaakte verwijzing naar variabele"
-#: file.c:267
+#: file.c:269
#, c-format
-msgid "Recipe was specified for file `%s' at %s:%lu,"
+msgid "Recipe was specified for file '%s' at %s:%lu,"
msgstr "Recept voor bestand '%s' is opgegeven in %s:%lu,"
-#: file.c:272
+#: file.c:274
#, 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 "Recept voor bestand '%s' werd gevonden via impliciet zoeken,"
-#: file.c:275
+#: file.c:277
#, c-format
-msgid "but `%s' is now considered the same file as `%s'."
+msgid "but '%s' is now considered the same file as '%s'."
msgstr "maar '%s' wordt nu als hetzelfde bestand beschouwd als '%s'."
-#: file.c:278
+#: file.c:280
#, 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 "Recept voor '%s' zal worden genegeerd ten gunste van die voor '%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 "kan enkeldubbelpunts '%s' niet hernoemen tot dubbeldubbelpunts '%s'"
-#: 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 "kan dubbeldubbelpunts '%s' niet hernoemen tot enkeldubbelpunts '%s'"
-#: file.c:392
+#: file.c:396
#, c-format
-msgid "*** Deleting intermediate file `%s'"
+msgid "*** Deleting intermediate file '%s'"
msgstr "*** Verwijderen van tussentijds bestand '%s'"
-#: file.c:396
+#: file.c:400
msgid "Removing intermediate files...\n"
msgstr "Verwijderen van tussentijdse bestanden...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
msgstr "%s: Tijdsstempel ligt buiten bereik; wordt vervangen door %s"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "Huidige tijd"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
msgstr "# Is geen doel:"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
msgstr "# Waardevol bestand (vereiste van .PRECIOUS)."
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
msgstr "# Nepdoel (vereiste van .PHONY)."
-#: file.c:933
+#: file.c:958
msgid "# Command line target."
msgstr "# Doel afkomstig van opdrachtregel."
-#: file.c:935
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
-msgstr "# Een standaard, of MAKEFILES, of -include/sinclude makefile."
+msgstr ""
+"# Een standaard Makefile, of eentje via MAKEFILES of '-include/sinclude'."
-#: file.c:937
+#: file.c:962
+msgid "# Builtin rule"
+msgstr "# Ingebouwde regel"
+
+#: file.c:964
msgid "# Implicit rule search has been done."
msgstr "# Impliciete regel-zoekopdracht is uitgevoerd."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
msgstr "# Impliciete regel-zoekopdracht is niet uitgevoerd."
-#: file.c:940
+#: file.c:967
#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
+msgid "# Implicit/static pattern stem: '%s'\n"
msgstr "# Impliciete/statische patroonstam: '%s'\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
msgstr "# Bestand is een tussentijds vereiste."
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
msgstr "# Maakt ook:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
msgstr "# Wijzigingstijd is nooit gecontroleerd."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# Bestand bestaat niet."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr "# Bestand is erg oud."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr "# Laatst gewijzigd %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# Bestand is bijgewerkt."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# Bestand is niet bijgewerkt."
-#: file.c:968
+#: file.c:995
msgid "# Recipe currently running (THIS IS A BUG)."
msgstr "# Nog lopend recept (DIT IS EEN PROGRAMMAFOUT)."
-#: file.c:971
+#: file.c:998
msgid "# Dependencies recipe running (THIS IS A BUG)."
msgstr "# Nog lopende receptafhankelijkheden (DIT IS EEN PROGRAMMAFOUT)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
-msgstr "# Succesvol bijgewerkt."
+msgstr "# Met succes bijgewerkt."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
-msgstr "# Moet worden bijgewerkt (-q is ingesteld)."
+msgstr "# Moet worden bijgewerkt ('-q' is ingesteld)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr "# Bijwerken is mislukt."
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# Ongeldige waarde in 'update_status'-onderdeel!"
-
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
+#: file.c:1019
+msgid "# Invalid value in 'command_state' member!"
msgstr "# Ongeldige waarde in 'command_state'-onderdeel!"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -346,7 +355,7 @@ msgstr ""
"\n"
"# Bestanden"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
@@ -356,116 +365,170 @@ msgstr ""
"# hashtabel-statistieken van bestanden:\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 "%s: Veld '%s' is niet gecached: %s"
+
+#: function.c:742
+msgid "non-numeric first argument to 'word' function"
msgstr "niet-numeriek eerste argument van 'word'-functie"
-#: function.c:763
-msgid "first argument to `word' function must be greater than 0"
+#: function.c:747
+msgid "first argument to 'word' function must be greater than 0"
msgstr "eerste argument van 'word'-functie moet groter zijn dan 0"
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
+#: function.c:767
+msgid "non-numeric first argument to 'wordlist' function"
msgstr "niet-numeriek eerste argument van 'wordlist'-functie"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
+#: function.c:769
+msgid "non-numeric second argument to 'wordlist' function"
msgstr "niet-numeriek tweede argument van 'wordlist'-functie"
-#: function.c:1458
+#: function.c:1460
#, c-format
-msgid "windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
msgstr "windows32_openpipe(): DuplicateHandle(In) is mislukt (e=%ld)\n"
-#: function.c:1469
+#: function.c:1483
#, c-format
-msgid "windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
msgstr "windows32_openpipe(): DuplicateHandle(Err) is mislukt (e=%ld)\n"
-#: function.c:1474
+#: function.c:1490
#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
msgstr "CreatePipe() is mislukt (e=%ld)\n"
-#: function.c:1479
+#: function.c:1498
msgid "windows32_openpipe(): process_init_fd() failed\n"
msgstr "windows32_openpipe(): process_init_fd() is mislukt\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr "Opschonen van tijdelijk batch-bestand %s\n"
-#: function.c:2150
+#: function.c:2151
+#, c-format
+msgid "open: %s: %s"
+msgstr "open(): %s: %s"
+
+#: function.c:2158
+#, c-format
+msgid "write: %s: %s"
+msgstr "write(): %s: %s"
+
+#: function.c:2164
+#, c-format
+msgid "Invalid file operation: %s"
+msgstr "Ongeldige bestandsbewerking: %s"
+
+#: function.c:2279
#, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
+msgid "insufficient number of arguments (%d) to function '%s'"
msgstr "onvoldoende aantal argumenten (%d) voor functie '%s'"
-#: function.c:2162
+#: function.c:2291
#, c-format
-msgid "unimplemented on this platform: function `%s'"
+msgid "unimplemented on this platform: function '%s'"
msgstr "niet-geïmplementeerd op dit platform: functie '%s'"
-#: function.c:2212
+#: function.c:2354
#, c-format
-msgid "unterminated call to function `%s': missing `%c'"
+msgid "unterminated call to function '%s': missing '%c'"
msgstr "onafgemaakte aanroep van functie '%s': '%c' ontbreekt"
-#: getopt.c:661
+#: function.c:2546
+msgid "Empty function name\n"
+msgstr ""
+
+#: function.c:2548
+#, fuzzy, c-format
+msgid "Invalid function name: %s\n"
+msgstr "Ongeldige bestandsbewerking: %s"
+
+#: function.c:2550
+#, c-format
+msgid "Function name too long: %s\n"
+msgstr "Functienaam is te lang: %s\n"
+
+#: function.c:2552
#, c-format
-msgid "%s: option `%s' is ambiguous\n"
+msgid "Invalid minimum argument count (%d) for function %s\n"
+msgstr "Ongeldig minimumaantal argumenten (%d) voor functie '%s'\n"
+
+#: function.c:2555
+#, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "Ongeldig maximumaantal argumenten (%d) voor functie '%s'\n"
+
+#: getopt.c:659
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
msgstr "%s: optie '%s' is niet eenduidig\n"
-#: getopt.c:685
+#: getopt.c:683
#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
+msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr "%s: optie '--%s' staat geen argument toe\n"
-#: getopt.c:690
+#: getopt.c:688
#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgid "%s: option '%c%s' doesn't allow an argument\n"
msgstr "%s: optie '%c%s' staat geen argument toe\n"
-#: getopt.c:707 getopt.c:880
+#: getopt.c:705 getopt.c:878
#, c-format
-msgid "%s: option `%s' requires an argument\n"
+msgid "%s: option '%s' requires an argument\n"
msgstr "%s: optie '%s' vereist een argument\n"
-#: getopt.c:736
+#: getopt.c:734
#, c-format
-msgid "%s: unrecognized option `--%s'\n"
+msgid "%s: unrecognized option '--%s'\n"
msgstr "%s: onbekende optie '--%s'\n"
-#: getopt.c:740
+#: getopt.c:738
#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
+msgid "%s: unrecognized option '%c%s'\n"
msgstr "%s: onbekende optie '%c%s'\n"
-#: getopt.c:766
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: ongeldige optie -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: ongeldige optie -- %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: optie vereist een argument -- %c\n"
-#: getopt.c:846
+#: getopt.c:844
#, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
+msgid "%s: option '-W %s' is ambiguous\n"
msgstr "%s: optie '-W %s' is niet eenduidig\n"
-#: getopt.c:864
+#: getopt.c:862
#, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgid "%s: option '-W %s' doesn't allow an argument\n"
msgstr "%s: optie '-W %s' staat geen argument toe\n"
+#: guile.c:55
+#, c-format
+msgid "guile: Expanding '%s'\n"
+msgstr "guile: Expanderen van '%s'\n"
+
+#: guile.c:71
+#, c-format
+msgid "guile: Evaluating '%s'\n"
+msgstr "guile: Evalueren van '%s'\n"
+
#: hash.c:49
#, c-format
msgid "can't allocate %lu bytes for hash table: memory exhausted"
@@ -488,131 +551,154 @@ msgstr "Herhash=%d, "
msgid "Collisions=%ld/%ld=%.0f%%"
msgstr "Botsingen=%ld/%ld=%.0f%%"
-#: implicit.c:40
+#: implicit.c:38
#, c-format
-msgid "Looking for an implicit rule for `%s'.\n"
+msgid "Looking for an implicit rule for '%s'.\n"
msgstr "Zoeken naar impliciete regel voor '%s'.\n"
-#: implicit.c:56
+#: implicit.c:54
#, c-format
-msgid "Looking for archive-member implicit rule for `%s'.\n"
+msgid "Looking for archive-member implicit rule for '%s'.\n"
msgstr "Zoeken naar archiefonderdeel-impliciete regel voor '%s'.\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
msgstr "Impliciete regelrecursie wordt ontweken.\n"
+#: implicit.c:486
+#, c-format
+msgid "Stem too long: '%.*s'.\n"
+msgstr "Stam is te lang: '%.*s'.\n"
+
#: implicit.c:491
#, c-format
-msgid "Trying pattern rule with stem `%.*s'.\n"
+msgid "Trying pattern rule with stem '%.*s'.\n"
msgstr "Patroonregel wordt geprobeerd met stam '%.*s'.\n"
-#: implicit.c:674
+#: implicit.c:697
#, c-format
-msgid "Rejecting impossible rule prerequisite `%s'.\n"
+msgid "Rejecting impossible rule prerequisite '%s'.\n"
msgstr "Onmogelijke regelvereiste '%s' wordt verworpen.\n"
-#: implicit.c:675
+#: implicit.c:698
#, c-format
-msgid "Rejecting impossible implicit prerequisite `%s'.\n"
+msgid "Rejecting impossible implicit prerequisite '%s'.\n"
msgstr "Onmogelijke impliciete vereiste '%s' wordt verworpen.\n"
-#: implicit.c:688
+#: implicit.c:711
#, c-format
-msgid "Trying rule prerequisite `%s'.\n"
+msgid "Trying rule prerequisite '%s'.\n"
msgstr "Proberen van regelvereiste '%s'.\n"
-#: implicit.c:689
+#: implicit.c:712
#, c-format
-msgid "Trying implicit prerequisite `%s'.\n"
+msgid "Trying implicit prerequisite '%s'.\n"
msgstr "Proberen van impliciete vereiste '%s'.\n"
-#: implicit.c:728
+#: implicit.c:751
#, c-format
-msgid "Found prerequisite `%s' as VPATH `%s'\n"
+msgid "Found prerequisite '%s' as VPATH '%s'\n"
msgstr "Vereiste '%s' gevonden als VPATH '%s'.\n"
-#: implicit.c:742
+#: implicit.c:765
#, c-format
-msgid "Looking for a rule with intermediate file `%s'.\n"
+msgid "Looking for a rule with intermediate file '%s'.\n"
msgstr "Zoeken naar een regel met tussentijds bestand '%s'.\n"
-#: job.c:335
+#: job.c:361
msgid "Cannot create a temporary file\n"
msgstr "Kan geen tijdelijk bestand aanmaken\n"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] Fout 0x%x (genegeerd)"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (geheugendump gemaakt)"
+
+#: job.c:487
+msgid " (ignored)"
+msgstr " (genegeerd)"
-#: job.c:450
+#: job.c:491 job.c:1994
+msgid "<builtin>"
+msgstr "<ingebouwd>"
+
+#: job.c:501
#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] Fout 0x%x"
+msgid "%s: recipe for target '%s' failed"
+msgstr "%s: recept voor doel '%s' is mislukt"
-#: job.c:454
+#: job.c:510
#, c-format
-msgid "[%s] Error %d (ignored)"
-msgstr "[%s] Fout %d (genegeerd)"
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Fout 0x%x%s"
-#: job.c:455
+#: job.c:513
#, c-format
-msgid "*** [%s] Error %d"
-msgstr "*** [%s] Fout %d"
+msgid "%s[%s] Error %d%s"
+msgstr "%s[%s] Fout %d%s"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (geheugendump gemaakt)"
+#: job.c:517
+#, c-format
+msgid "%s[%s] %s%s%s"
+msgstr "%s[%s] %s%s%s"
-#: job.c:549
+#: job.c:609
msgid "*** Waiting for unfinished jobs...."
msgstr "*** Wachten op onvoltooide taken..."
-#: job.c:579
+#: job.c:639
#, c-format
msgid "Live child %p (%s) PID %s %s\n"
-msgstr "Levend kind %p (%s) PID %s %s\n"
+msgstr "Levend dochterproces %p (%s) PID %s %s\n"
-#: 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 " (ginds)"
-#: job.c:758
+#: job.c:829
#, c-format
msgid "Reaping losing child %p PID %s %s\n"
-msgstr "Beëindigen van verliezend kind %p PID %s %s\n"
+msgstr "Beëindigen van verliezend dochterproces %p PID %s %s\n"
-#: job.c:759
+#: job.c:830
#, c-format
msgid "Reaping winning child %p PID %s %s\n"
-msgstr "Beëindigen van winnend kind %p PID %s %s\n"
+msgstr "Beëindigen van winnend dochterproces %p PID %s %s\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
msgstr "Opschonen van tijdelijk batch-bestand %s\n"
-#: job.c:861
+#: job.c:843
+#, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "Opschonen van tijdelijk batch-bestand %s is mislukt (%d)\n"
+
+#: job.c:949
#, c-format
msgid "Removing child %p PID %s%s from chain.\n"
-msgstr "Verwijderen van kind %p PID %s%s uit de ketting.\n"
+msgstr "Verwijderen van dochterproces %p PID %s%s uit de ketting.\n"
-#: job.c:920
-msgid "write jobserver"
-msgstr "schrijven naar taakserver"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr "vrijgeven van taakserver-semafoor: (Fout %ld: %s)"
-#: job.c:922
+#: job.c:1011 job.c:1025
#, c-format
msgid "Released token for child %p (%s).\n"
-msgstr "Token vrijgegeven voor kind %p (%s).\n"
+msgstr "Token vrijgegeven voor dochterproces %p (%s).\n"
-#: job.c:1453 job.c:2094
+#: job.c:1023
+msgid "write jobserver"
+msgstr "schrijven naar taakserver"
+
+#: job.c:1612 job.c:2332
#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
msgstr "process_easy() kan geen proces starten (e=%ld)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
@@ -621,88 +707,112 @@ msgstr ""
"\n"
"%d argumenten geteld bij mislukte start\n"
-#: job.c:1525
+#: job.c:1685
#, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
-msgstr "Opname van kind %p (%s) PID %s%s in de ketting.\n"
+msgstr "Opname van dochterproces %p (%s) PID %s%s in de ketting.\n"
+
+#: job.c:1953
+#, c-format
+msgid "semaphore or child process wait: (Error %ld: %s)"
+msgstr "wachten op semafoor of dochterproces: (Fout %ld: %s)"
-#: job.c:1778
+#: job.c:1967
#, c-format
msgid "Obtained token for child %p (%s).\n"
-msgstr "Token verkregen voor kind %p (%s).\n"
+msgstr "Token verkregen voor dochterproces %p (%s).\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
msgstr "lezen van taken-pijp"
-#: job.c:1798
+#: job.c:2003
#, c-format
-msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
-msgstr "Recept uit %s:%lu wordt aangeroepen om doel '%s' bij te werken.\n"
+msgid "%s: target '%s' does not exist"
+msgstr "%s: doel '%s' bestaat niet"
-#: job.c:1802
+#: job.c:2005
#, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "Ingebouwd recept wordt aangeroepen om doel '%s' bij te werken.\n"
+msgid "%s: update target '%s' due to: %s"
+msgstr "%s: bijwerken van doel '%s' vanwege: %s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
msgstr "kan belastingsgrenzen niet afdwingen op dit besturingssysteem"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
msgstr "kan belastingsgrens niet afdwingen: "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
msgstr ""
"geen bestandshandvatten meer beschikbaar: kan standaardinvoer niet "
"dupliceren\n"
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
msgstr ""
"geen bestandshandvatten meer beschikbaar: kan standaarduitvoer niet "
"dupliceren\n"
-#: job.c:2015
+#: job.c:2223
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr ""
+"geen bestandshandvatten meer beschikbaar: kan standaardfoutuitvoer niet "
+"dupliceren\n"
+
+#: job.c:2238
msgid "Could not restore stdin\n"
msgstr "Kan standaardinvoer niet herstellen\n"
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
msgstr "Kan standaarduitvoer niet herstellen\n"
-#: job.c:2127
+#: job.c:2254
+msgid "Could not restore stderr\n"
+msgstr "Kan standaardfoutuitvoer niet herstellen\n"
+
+#: job.c:2365
#, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
-msgstr "'make' heeft kind met PID %s verwerkt, maar wacht nog op PID %s\n"
+msgstr ""
+"'make' heeft dochterproces met PID %s verwerkt, maar wacht nog op PID %s\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
msgstr "%s: Opdracht niet gevonden"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr "%s: Shell-programma niet gevonden"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
msgstr "spawnvpe: mogelijk geen omgevingsruimte meer beschikbaar"
-#: job.c:2461
+#: job.c:2709
#, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
+msgid "$SHELL changed (was '%s', now '%s')\n"
msgstr "$SHELL is gewijzigd (was '%s', is nu '%s')\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr "Maken van tijdelijk batch-bestand %s\n"
-#: job.c:2963
+#: job.c:3148
+msgid ""
+"Batch file contents:\n"
+"\t@echo off\n"
+msgstr ""
+"Inhoud van batch-bestand:\n"
+"\t@echo off\n"
+
+#: job.c:3337
#, c-format
msgid ""
"Batch file contents:%s\n"
@@ -711,60 +821,93 @@ msgstr ""
"Inhoud van batch-bestand:%s\n"
"\t%s\n"
-#: job.c:3065
+#: job.c:3444
#, c-format
msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
msgstr "%s (regel %d) Onjuiste shell-context (!unixy && !batch_mode_shell)\n"
-#: main.c:303
-msgid "Options:\n"
+#: job.h:43
+msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
msgstr ""
-" \n"
-"Opties:\n"
+"Optie '-O[TYPE]' (--output-sync[=TYPE]) is niet meegecompileerd in dit "
+"programma."
+
+#: load.c:53
+#, c-format
+msgid "Failed to open global symbol table: %s"
+msgstr "Openen van globale symbolentabel is mislukt: %s"
+
+#: load.c:87
+#, c-format
+msgid "Loaded object %s is not declared to be GPL compatible"
+msgstr "Geladen object %s is niet gedeclareerd als GPL-compatibel"
+
+#: load.c:92
+#, c-format
+msgid "Failed to load symbol %s from %s: %s"
+msgstr "Laden van symbool %s uit %s is mislukt: %s"
+
+#: load.c:136
+#, c-format
+msgid "Empty symbol name for load: %s"
+msgstr "Lege symboolnaam om te laden: %s"
+
+#: load.c:191
+#, c-format
+msgid "Loading symbol %s from %s\n"
+msgstr "Laden van symbool %s uit %s\n"
-#: main.c:304
+#: load.c:229
+msgid "The 'load' operation is not supported on this platform."
+msgstr "De 'load'-operatie wordt op dit platform niet ondersteund."
+
+#: main.c:312
+msgid "Options:\n"
+msgstr "Opties:\n"
+
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
msgstr ""
" -b, -m (genegeerd, maar herkend wegens "
"compatibiliteit)\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr " -B, --always-make onvoorwaardelijk alle doelen maken\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
msgstr ""
" -C MAP, --directory=MAP naar deze map gaan alvorens iets te doen\n"
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
msgstr ""
" -d veel informatie weergeven voor het debuggen\n"
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
" --debug[=VLAGGEN] verschillende soorten debuginformatie "
"weergeven\n"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
msgstr ""
" -e, --environment-overrides omgevingsvariabelen gaan boven Makefiles\n"
-#: main.c:318
+#: main.c:327
msgid ""
" --eval=STRING Evaluate STRING as a makefile statement.\n"
msgstr ""
" --eval=TEKST deze TEKST als Makefile-statement evalueren\n"
-#: main.c:320
+#: main.c:329
msgid ""
" -f FILE, --file=FILE, --makefile=FILE\n"
" Read FILE as a makefile.\n"
@@ -773,23 +916,23 @@ msgstr ""
" het gegeven bestand als Makefile gebruiken\n"
"\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
msgstr " -h, --help deze hulptekst tonen en stoppen\n"
-#: main.c:325
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
msgstr " -i, --ignore-errors alle fouten in recepten negeren\n"
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
msgstr ""
-" -I MAP, --include-dir=MAP deze map doorzoeken naar ingevoegde "
+" -I MAP, --include-dir=MAP deze map doorzoeken naar ingesloten "
"Makefiles\n"
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
@@ -797,14 +940,14 @@ msgstr ""
" -j [N], --jobs[=N] het uitvoeren van N taken tegelijk toestaan;\n"
" zonder N is het aantal onbeperkt\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 doorgaan als een doel niet gemaakt kan "
"worden\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 "
@@ -814,17 +957,16 @@ msgstr ""
" alleen extra taken starten als de\n"
" systeembelasting lager is dan N\n"
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
msgstr ""
-" -L, --check-symlink-times van een symbolische koppeling en zijn doel "
-"de\n"
-" laatste wijzigingstijd gebruiken\n"
+" -L, --check-symlink-times van een symbolische koppeling en zijn doel\n"
+" de laatste wijzigingstijd gebruiken\n"
"\n"
-#: main.c:339
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
@@ -833,7 +975,7 @@ msgstr ""
" -n, --just-print, --dry-run, --recon\n"
" recepten niet uitvoeren, alleen weergeven\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 "
@@ -843,12 +985,21 @@ msgstr ""
" BESTAND als oud beschouwen, niet opnieuw "
"maken\n"
-#: main.c:345
+#: main.c:354
+msgid ""
+" -O[TYPE], --output-sync[=TYPE]\n"
+" Synchronize output of parallel jobs by TYPE.\n"
+msgstr ""
+" -O[TYPE], --output-sync[=TYPE]\n"
+" uitvoer van parallelle taken synchroniseren "
+"op TYPE\n"
+
+#: main.c:357
msgid " -p, --print-data-base Print make's internal database.\n"
msgstr ""
" -p, --print-data-base interne gegevensbank van 'make' weergeven\n"
-#: main.c:347
+#: main.c:359
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
@@ -856,43 +1007,47 @@ msgstr ""
" -q, --question geen recepten uitvoeren; de afsluitwaarde\n"
" geeft aan of alles bijgewerkt is\n"
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr ""
" -r, --no-builtin-rules ingebouwde impliciete regels uitzetten\n"
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr ""
" -R, --no-builtin-variables ingebouwde instellingen van variabelen "
"uitzetten\n"
"\n"
-#: main.c:353
+#: main.c:365
msgid " -s, --silent, --quiet Don't echo recipes.\n"
msgstr " -s, --silent, --quiet recepten niet weergeven\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
msgstr " -S, --no-keep-going, --stop optie '-k' uitzetten\n"
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
" -t, --touch doelen aanraken in plaats van opnieuw maken\n"
-#: main.c:360
+#: main.c:372
+msgid " --trace Print tracing information.\n"
+msgstr " --trace tracing-informatie weergeven\n"
+
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
-msgstr " -v, --version versienummer tonen en stoppen\n"
+msgstr " -v, --version programmaversie tonen en stoppen\n"
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
msgstr " -w, --print-directory de huidige map weergeven\n"
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
@@ -900,7 +1055,7 @@ msgstr ""
" --no-print-directory optie '-w' uitzetten, ook als deze impliciet\n"
" was aangezet\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"
@@ -908,7 +1063,7 @@ msgstr ""
" -W BESTAND, --what-if=BESTAND, --new-file=BESTAND, --assume-new=BESTAND\n"
" BESTAND als oneindig nieuw beschouwen\n"
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
@@ -916,21 +1071,30 @@ msgstr ""
" --warn-undefined-variables waarschuwen als naar een ongedefinieerde\n"
" variabele wordt verwezen\n"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
msgstr "lege tekenreeks is ongeldig als bestandsnaam"
-#: main.c:650
+#: main.c:734
#, c-format
-msgid "unknown debug level specification `%s'"
+msgid "unknown debug level specification '%s'"
msgstr "onbekende aanduiding '%s' voor debug-niveau"
-#: main.c:690
+#: main.c:777
+#, c-format
+msgid "unknown output-sync type '%s'"
+msgstr "onbekend uitvoersynchronisatie-type: '%s'"
+
+#: main.c:787
+msgid "internal error: multiple --sync-mutex options"
+msgstr "*interne fout*: meerdere opties '--sync-mutex'"
+
+#: main.c:848
#, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
msgstr "%s: Onderbreking/uitzondering gekregen (code = 0x%lx, adres = 0x%p)\n"
-#: main.c:697
+#: main.c:855
#, c-format
msgid ""
"\n"
@@ -945,211 +1109,233 @@ msgstr ""
"ExceptionFlags = %lx\n"
"ExceptionAddress = 0x%p\n"
-#: main.c:705
+#: main.c:863
#, c-format
msgid "Access violation: write operation at address 0x%p\n"
msgstr "Toegangsrechtenovertreding: schrijfopdracht op adres 0x%p\n"
-#: main.c:706
+#: main.c:864
#, c-format
msgid "Access violation: read operation at address 0x%p\n"
msgstr "Toegangsrechtenovertreding: leesopdracht op adres 0x%p\n"
-#: main.c:781 main.c:792
+#: main.c:940 main.c:955
#, c-format
msgid "find_and_set_shell() setting default_shell = %s\n"
msgstr "find_and_set_shell() stelt default_shell = %s in\n"
-#: main.c:834
+#: main.c:1008
#, c-format
msgid "find_and_set_shell() path search set default_shell = %s\n"
msgstr ""
"find_and_set_shell() stelt na doorzoeken van pad default_shell = %s in\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr "%s slaapt gedurende 30 seconden..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr "klaar met 30 seconden slapen. Make gaat verder.\n"
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr "Makefile op standaardinvoer is dubbel opgegeven."
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr "fopen (tijdelijk bestand)"
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr "fwrite (tijdelijk bestand)"
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "Parallele taken (-j) worden op dit platform niet ondersteund."
-
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
-msgstr "Opnieuw instellen op enkele-taakmodus (-j1)."
-
-#: main.c:1719
+#: main.c:1534
msgid "internal error: multiple --jobserver-fds options"
msgstr "*interne fout*: meerdere opties '--jobserver-fds'"
-#: 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 ""
+"*interne fout*: kan taakserver-semafoor '%s' niet openen: (Fout %ld: %s)"
+
+#: main.c:1547
+#, c-format
+msgid "Jobserver client (semaphore %s)\n"
+msgstr "Taakservercliënt (semafoor %s)\n"
+
+#: main.c:1551
+#, c-format
+msgid "internal error: invalid --jobserver-fds string '%s'"
msgstr "*interne fout*: ongeldige tekenreeks '%s' voor '--jobserver-fds'"
-#: main.c:1730
+#: main.c:1554
#, c-format
msgid "Jobserver client (fds %d,%d)\n"
msgstr "Taakservercliënt (bestandsdescriptor %d,%d)\n"
-#: main.c:1740
+#: main.c:1567
msgid "warning: -jN forced in submake: disabling jobserver mode."
msgstr ""
"Waarschuwing: '-jN' is afgedwongen in een deelproces: taakserver-modus "
"uitgezet."
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
msgstr "dubbele taakserver"
-#: main.c:1753
+#: main.c:1586
msgid ""
-"warning: jobserver unavailable: using -j1. Add `+' to parent make rule."
+"warning: jobserver unavailable: using -j1. Add '+' to parent make rule."
msgstr ""
"Waarschuwing: taakserver is onbeschikbaar: '-j1' wordt gebruikt. Voeg '+' "
"toe aan de ouderregel."
-#: main.c:1777
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "Makefile op standaardinvoer is dubbel opgegeven."
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (tijdelijk bestand)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (tijdelijk bestand)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr "Parallelle taken (-j) worden op dit platform niet ondersteund."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "Opnieuw instellen op enkele-taakmodus (-j1)."
+
+#: main.c:2006
+#, c-format
+msgid "Jobserver slots limited to %d\n"
+msgstr "Taakserver-plaatsen zijn beperkt tot %d\n"
+
+#: main.c:2012
+#, c-format
+msgid "creating jobserver semaphore: (Error %ld: %s)"
+msgstr "aanmaken van taakserver-semafoor: (Fout %ld: %s)"
+
+#: main.c:2019
msgid "creating jobs pipe"
-msgstr "maken van taken-pijp"
+msgstr "aanmaken van taken-pijp"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
msgstr "initialiseren van taakserver-pijp"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
msgstr ""
"Symbolische koppelingen worden niet ondersteund: '-L' wordt uitgeschakeld."
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
-msgstr "Bijwerken van makefiles...\n"
+msgstr "Bijwerken van Makefiles...\n"
-#: main.c:1917
+#: main.c:2174
#, c-format
-msgid "Makefile `%s' might loop; not remaking it.\n"
+msgid "Makefile '%s' might loop; not remaking it.\n"
msgstr "Makefile '%s' bevat mogelijk een lus; wordt niet opnieuw gemaakt.\n"
-#: main.c:1996
+#: main.c:2253
#, c-format
-msgid "Failed to remake makefile `%s'."
-msgstr "Opnieuw maken van makefile '%s' is mislukt."
+msgid "Failed to remake makefile '%s'."
+msgstr "Opnieuw maken van Makefile '%s' is mislukt."
-#: main.c:2013
+#: main.c:2270
#, c-format
-msgid "Included makefile `%s' was not found."
-msgstr "Ingesloten makefile '%s' is niet gevonden."
+msgid "Included makefile '%s' was not found."
+msgstr "Ingesloten Makefile '%s' is niet gevonden."
-#: main.c:2018
+#: main.c:2275
#, c-format
-msgid "Makefile `%s' was not found"
+msgid "Makefile '%s' was not found"
msgstr "Makefile '%s' is niet gevonden."
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
msgstr "Kan niet terugkeren naar oorspronkelijke map."
-#: main.c:2102
+#: main.c:2354
#, c-format
msgid "Re-executing[%u]:"
msgstr "Opnieuw uitvoeren[%u]:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr "verwijderen (van tijdelijk bestand): "
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
msgstr ".DEFAULT_GOAL bevat meer dan één doel"
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
-msgstr "Geen doelen opgegeven en geen makefile gevonden"
+msgstr "Geen doelen opgegeven en geen Makefile gevonden"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "Geen doelen"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
msgstr "Bijwerken van doelen...\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr ""
"Waarschuwing: Klokafwijking geconstateerd. Het maken is mogelijk "
"onvolledig gebeurd."
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
msgstr "Gebruik: %s [OPTIES] [DOEL]...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
"This program built for %s\n"
msgstr ""
"\n"
-"Dit programma is gemaakt voor %s.\n"
+"Dit programma is gecompileerd voor %s.\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
"This program built for %s (%s)\n"
msgstr ""
"\n"
-"Dit programma is gemaakt voor %s (%s).\n"
+"Dit programma is gecompileerd voor %s (%s).\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
msgstr ""
"Rapporteer programmafouten aan <bug-make@gnu.org>,\n"
"meld gebreken in de vertaling aan <vertaling@vrijschrift.org>.\n"
-#: main.c:2562
+#: main.c:2810
#, 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 "de optie '%s%sc' vereist een niet-lege tekenreeks als argument"
-#: main.c:2617
+#: main.c:2864
#, c-format
-msgid "the `-%c' option requires a positive integral argument"
-msgstr "de optie '-%c' vereist een positief, geheel argument"
+msgid "the '-%c' option requires a positive integer argument"
+msgstr "de optie '-%c' vereist een positief geheel getal als argument"
-#: main.c:3054
+#: main.c:3253
#, c-format
msgid "%sBuilt for %s\n"
-msgstr "%sDit programma is gemaakt voor %s.\n"
+msgstr "%sDit programma is gecompileerd voor %s.\n"
-#: main.c:3056
+#: main.c:3255
#, c-format
msgid "%sBuilt for %s (%s)\n"
-msgstr "%sDit programma is gemaakt voor %s (%s).\n"
+msgstr "%sDit programma is gecompileerd voor %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."
@@ -1163,7 +1349,7 @@ msgstr ""
"verspreiden.\n"
"%sEr is GEEN GARANTIE, voor zover de wet dit toestaat.\n"
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
@@ -1172,7 +1358,7 @@ msgstr ""
"\n"
"# Make-gegevensbank, weergegeven op %s"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
@@ -1181,107 +1367,107 @@ msgstr ""
"\n"
"# Make-gegevensbank voltooid op %s\n"
-#: main.c:3237
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "Onbekende fout %d"
+
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "onvoldoende geheugen beschikbaar"
+
+#: misc.c:522
+#, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s: gebruiker %lu (echt %lu), groep %lu (echt %lu)\n"
+
+#: misc.c:543
+msgid "Initialized access"
+msgstr "Toegang geïnitialiseerd"
+
+#: misc.c:622
+msgid "User access"
+msgstr "Gebruikerstoegang"
+
+#: misc.c:670
+msgid "Make access"
+msgstr "Make-toegang"
+
+#: misc.c:704
+msgid "Child access"
+msgstr "Dochterprocestoegang"
+
+#: output.c:128
#, c-format
msgid "%s: Entering an unknown directory\n"
msgstr "%s: Een onbekende map wordt binnengegaan\n"
-#: main.c:3239
+#: output.c:130
#, c-format
msgid "%s: Leaving an unknown directory\n"
msgstr "%s: Een onbekende map wordt verlaten\n"
-#: main.c:3242
+#: output.c:133
#, c-format
-msgid "%s: Entering directory `%s'\n"
+msgid "%s: Entering directory '%s'\n"
msgstr "%s: Map '%s' wordt binnengegaan\n"
-#: main.c:3245
+#: output.c:135
#, c-format
-msgid "%s: Leaving directory `%s'\n"
+msgid "%s: Leaving directory '%s'\n"
msgstr "%s: Map '%s' wordt verlaten\n"
-#: main.c:3250
+#: output.c:139
#, c-format
msgid "%s[%u]: Entering an unknown directory\n"
msgstr "%s[%u]: Een onbekende map wordt binnengegaan\n"
-#: main.c:3253
+#: output.c:141
#, c-format
msgid "%s[%u]: Leaving an unknown directory\n"
msgstr "%s[%u]: Een onbekende map wordt verlaten\n"
-#: main.c:3257
+#: output.c:144
#, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
+msgid "%s[%u]: Entering directory '%s'\n"
msgstr "%s[%u]: Map '%s' wordt binnengegaan\n"
-#: main.c:3260
+#: output.c:146
#, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
+msgid "%s[%u]: Leaving directory '%s'\n"
msgstr "%s[%u]: Map '%s' wordt verlaten\n"
-#: misc.c:316
+#: output.c:515
+#, c-format
+msgid "write error: %s"
+msgstr "schrijffout: %s"
+
+#: output.c:517
+msgid "write error"
+msgstr "schrijffout"
+
+#: output.c:740
msgid ". Stop.\n"
msgstr ". Gestopt.\n"
-#: misc.c:337
-#, c-format
-msgid "Unknown error %d"
-msgstr "Onbekende fout %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 "onvoldoende geheugen beschikbaar"
-
-#: misc.c:708
-#, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s: gebruiker %lu (echt %lu), groep %lu (echt %lu)\n"
-
-#: misc.c:729
-msgid "Initialized access"
-msgstr "Toegang geïnitialiseerd"
-
-#: misc.c:808
-msgid "User access"
-msgstr "Gebruikerstoegang"
-
-#: misc.c:856
-msgid "Make access"
-msgstr "Make-toegang"
-
-#: misc.c:890
-msgid "Child access"
-msgstr "Kindtoegang"
-
-#: misc.c:954
-#, c-format
-msgid "write error: %s"
-msgstr "schrijffout: %s"
-
-#: misc.c:956
-msgid "write error"
-msgstr "schrijffout"
-
-#: read.c:179
+#: read.c:180
msgid "Reading makefiles...\n"
-msgstr "Lezen van makefiles...\n"
+msgstr "Lezen van Makefiles...\n"
#: read.c:333
#, c-format
-msgid "Reading makefile `%s'"
-msgstr "Lezen van makefile '%s'"
+msgid "Reading makefile '%s'"
+msgstr "Lezen van Makefile '%s'"
#: read.c:335
#, c-format
@@ -1303,325 +1489,340 @@ msgstr " (maakt niet uit)"
msgid " (no ~ expansion)"
msgstr " (geen expansie van ~)"
-#: read.c:759
+#: read.c:652
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile '%s'\n"
+msgstr "UTF-8 BOM in Makefile '%s' wordt overgeslagen\n"
+
+#: read.c:655
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile buffer\n"
+msgstr "UTF-8 BOM in Makefile-buffer wordt overgeslagen\n"
+
+#: read.c:786
msgid "invalid syntax in conditional"
msgstr "ongeldige syntaxis in voorwaardelijk deel"
-#: read.c:891
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr "%s: laden is mislukt"
+
+#: read.c:987
msgid "recipe commences before first target"
msgstr "recept begint voor eerste doel"
-#: read.c:940
+#: read.c:1036
msgid "missing rule before recipe"
-msgstr "ontbrekende regel voor recept"
+msgstr "ontbrekende regel vóór recept"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
msgstr "ontbrekend scheidingsteken%s"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
msgstr " (bedoelde u TAB in plaats van 8 spaties?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
msgstr "ontbrekend doelpatroon"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
msgstr "meerdere doelpatronen"
-#: read.c:1169
+#: read.c:1269
#, c-format
-msgid "target pattern contains no `%%'"
+msgid "target pattern contains no '%%'"
msgstr "doelpatroon bevat geen '%%'"
-#: read.c:1293
-msgid "missing `endif'"
+#: read.c:1391
+msgid "missing 'endif'"
msgstr "ontbrekende 'endif'"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "lege naam van variabele"
-#: read.c:1367
-msgid "extraneous text after `define' directive"
+#: read.c:1465
+msgid "extraneous text after 'define' directive"
msgstr "extra tekst na 'define'-opdracht"
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
+#: read.c:1490
+msgid "missing 'endef', unterminated 'define'"
msgstr "ontbrekende 'endef', onafgemaakte 'define'"
-#: read.c:1420
-msgid "extraneous text after `endef' directive"
+#: read.c:1518
+msgid "extraneous text after 'endef' directive"
msgstr "extra tekst na 'endef'-opdracht"
-#: read.c:1490
+#: read.c:1589
#, c-format
-msgid "Extraneous text after `%s' directive"
+msgid "extraneous text after '%s' directive"
msgstr "extra tekst na '%s'-opdracht"
-#: read.c:1499 read.c:1513
+#: read.c:1598 read.c:1612
#, c-format
-msgid "extraneous `%s'"
+msgid "extraneous '%s'"
msgstr "extra '%s'"
-#: read.c:1518
-msgid "only one `else' per conditional"
+#: read.c:1617
+msgid "only one 'else' per conditional"
msgstr "slechts één 'else' per voorwaardelijk deel"
-#: read.c:1797
+#: read.c:1892
msgid "Malformed target-specific variable definition"
msgstr "Onjuiste doelspecifieke variabele-definitie"
-#: read.c:1855
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
msgstr "vereisten kunnen niet in recepten gedefinieerd worden"
-#: read.c:1908
+#: read.c:2009
msgid "mixed implicit and static pattern rules"
msgstr "gemengde impliciete en statische patroonregels"
-#: read.c:1931 read.c:2112
+#: read.c:2032 read.c:2220
msgid "mixed implicit and normal rules"
msgstr "gemengde impliciete en normale regels"
-#: read.c:1976
+#: read.c:2084
#, c-format
-msgid "target `%s' doesn't match the target pattern"
+msgid "target '%s' doesn't match the target pattern"
msgstr "doel '%s' komt niet overeen met doelpatroon"
-#: read.c:1991 read.c:2036
+#: read.c:2099 read.c:2144
#, c-format
-msgid "target file `%s' has both : and :: entries"
+msgid "target file '%s' has both : and :: entries"
msgstr "doelbestand '%s' heeft zowel ':'- als '::'-items"
-#: read.c:1997
+#: read.c:2105
#, c-format
-msgid "target `%s' given more than once in the same rule."
-msgstr "doel '%s' is meerdere keren gegeven in dezelfde regel."
+msgid "target '%s' given more than once in the same rule"
+msgstr "doel '%s' is meerdere keren gegeven in dezelfde regel"
-#: read.c:2006
+#: read.c:2114
#, c-format
-msgid "warning: overriding recipe for target `%s'"
+msgid "warning: overriding recipe for target '%s'"
msgstr "Waarschuwing: er wordt voorbijgegaan aan recept voor doel '%s'"
-#: read.c:2009
+#: read.c:2117
#, c-format
-msgid "warning: ignoring old recipe for target `%s'"
+msgid "warning: ignoring old recipe for target '%s'"
msgstr "Waarschuwing: oud recept voor doel '%s' wordt genegeerd"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
msgstr "Waarschuwing: NUL-teken gezien; de rest van de regel wordt genegeerd"
-#: remake.c:234
+#: remake.c:232
#, c-format
-msgid "Nothing to be done for `%s'."
+msgid "Nothing to be done for '%s'."
msgstr "Er hoeft niets gedaan te worden voor '%s'."
-#: remake.c:235
+#: remake.c:233
#, c-format
-msgid "`%s' is up to date."
-msgstr "'%s' is bijgewerkt."
+msgid "'%s' is up to date."
+msgstr "'%s' is up-to-date."
-#: remake.c:306
+#: remake.c:305
#, c-format
-msgid "Pruning file `%s'.\n"
-msgstr "Bijknippen van bestand '%s'.\n"
+msgid "Pruning file '%s'.\n"
+msgstr "Snoeien van bestand '%s'.\n"
-#: remake.c:359
+#: remake.c:377
#, c-format
-msgid "%sNo rule to make target `%s'%s"
+msgid "%sNo rule to make target '%s'%s"
msgstr "%sEr is geen regel om doel '%s' te maken%s"
-#: remake.c:361
+#: remake.c:379
#, c-format
-msgid "%sNo rule to make target `%s', needed by `%s'%s"
+msgid "%sNo rule to make target '%s', needed by '%s'%s"
msgstr "%sEr is geen regel om doel '%s' te maken, nodig voor '%s'%s"
#: remake.c:413
#, c-format
-msgid "Considering target file `%s'.\n"
+msgid "Considering target file '%s'.\n"
msgstr "Doelbestand '%s' wordt overwogen.\n"
#: remake.c:420
#, c-format
-msgid "Recently tried and failed to update file `%s'.\n"
+msgid "Recently tried and failed to update file '%s'.\n"
msgstr "Bijwerken van bestand '%s' is recent geprobeerd en mislukt.\n"
#: remake.c:432
#, c-format
-msgid "File `%s' was considered already.\n"
+msgid "File '%s' was considered already.\n"
msgstr "Bestand '%s' was al overwogen.\n"
#: remake.c:442
#, c-format
-msgid "Still updating file `%s'.\n"
+msgid "Still updating file '%s'.\n"
msgstr "Bestand '%s' wordt nog bijgewerkt.\n"
#: remake.c:445
#, c-format
-msgid "Finished updating file `%s'.\n"
+msgid "Finished updating file '%s'.\n"
msgstr "Bijwerken van bestand '%s' is voltooid.\n"
#: remake.c:474
#, c-format
-msgid "File `%s' does not exist.\n"
+msgid "File '%s' does not exist.\n"
msgstr "Bestand '%s' bestaat niet.\n"
#: remake.c:481
#, 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 ""
"*** Waarschuwing: .LOW_RESOLUTION_TIME-bestand '%s' heeft een hoge-resolutie "
"tijdsstempel"
-#: remake.c:494 remake.c:1016
+#: remake.c:494 remake.c:1019
#, c-format
-msgid "Found an implicit rule for `%s'.\n"
+msgid "Found an implicit rule for '%s'.\n"
msgstr "Impliciete regel voor '%s' gevonden.\n"
-#: remake.c:496 remake.c:1018
+#: remake.c:496 remake.c:1021
#, c-format
-msgid "No implicit rule found for `%s'.\n"
+msgid "No implicit rule found for '%s'.\n"
msgstr "Geen impliciete regel voor '%s' gevonden.\n"
#: remake.c:502
#, c-format
-msgid "Using default recipe for `%s'.\n"
+msgid "Using default recipe for '%s'.\n"
msgstr "Standaardrecept wordt gebruikt voor '%s'.\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
msgstr "Circulaire afhankelijkheid %s <- %s is verworpen."
-#: remake.c:651
+#: remake.c:655
#, c-format
-msgid "Finished prerequisites of target file `%s'.\n"
+msgid "Finished prerequisites of target file '%s'.\n"
msgstr "Vereisten van doelbestand '%s' zijn voltooid.\n"
-#: remake.c:657
+#: remake.c:661
#, c-format
-msgid "The prerequisites of `%s' are being made.\n"
+msgid "The prerequisites of '%s' are being made.\n"
msgstr "De vereisten van '%s' worden nu gemaakt.\n"
-#: remake.c:670
+#: remake.c:674
#, c-format
-msgid "Giving up on target file `%s'.\n"
+msgid "Giving up on target file '%s'.\n"
msgstr "Pogingen voor doelbestand '%s' worden gestaakt.\n"
-#: remake.c:675
+#: remake.c:679
#, c-format
-msgid "Target `%s' not remade because of errors."
+msgid "Target '%s' not remade because of errors."
msgstr "Doel '%s' is niet opnieuw gemaakt vanwege fouten."
-#: remake.c:727
+#: remake.c:731
#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
msgstr "Vereiste '%s' is alleen-ordenen voor doel '%s'.\n"
-#: remake.c:732
+#: remake.c:736
#, c-format
-msgid "Prerequisite `%s' of target `%s' does not exist.\n"
+msgid "Prerequisite '%s' of target '%s' does not exist.\n"
msgstr "Vereiste '%s' van doel '%s' bestaat niet.\n"
-#: remake.c:737
+#: remake.c:741
#, c-format
-msgid "Prerequisite `%s' is newer than target `%s'.\n"
+msgid "Prerequisite '%s' is newer than target '%s'.\n"
msgstr "Vereiste '%s' is nieuwer dan doel '%s'.\n"
-#: remake.c:740
+#: remake.c:744
#, c-format
-msgid "Prerequisite `%s' is older than target `%s'.\n"
+msgid "Prerequisite '%s' is older than target '%s'.\n"
msgstr "Vereiste '%s' is ouder dan doel '%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 "Doel '%s' is dubbeldubbelpunts en heeft geen vereisten.\n"
-#: remake.c:765
+#: remake.c:769
#, c-format
-msgid "No recipe for `%s' and no prerequisites actually changed.\n"
-msgstr "Er is geen recept voor '%s' en geen van de vereisten zijn veranderd.\n"
+msgid "No recipe for '%s' and no prerequisites actually changed.\n"
+msgstr "Er is geen recept voor '%s', en geen van de vereisten is veranderd.\n"
-#: remake.c:770
+#: remake.c:774
#, c-format
-msgid "Making `%s' due to always-make flag.\n"
+msgid "Making '%s' due to always-make flag.\n"
msgstr "Maken van '%s' vanwege 'always-make'-vlag.\n"
-#: remake.c:778
+#: remake.c:782
#, c-format
-msgid "No need to remake target `%s'"
+msgid "No need to remake target '%s'"
msgstr "Doel '%s' hoeft niet opnieuw gemaakt te worden"
-#: remake.c:780
+#: remake.c:784
#, c-format
-msgid "; using VPATH name `%s'"
+msgid "; using VPATH name '%s'"
msgstr "; VPATH-naam '%s' wordt gebruikt"
-#: remake.c:800
+#: remake.c:804
#, c-format
-msgid "Must remake target `%s'.\n"
-msgstr "'%s' moet opnieuw gemaakt worden.\n"
+msgid "Must remake target '%s'.\n"
+msgstr "Doel '%s' moet opnieuw gemaakt worden.\n"
-#: remake.c:806
+#: remake.c:810
#, c-format
-msgid " Ignoring VPATH name `%s'.\n"
+msgid " Ignoring VPATH name '%s'.\n"
msgstr " VPATH-naam '%s' wordt genegeerd.\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 "Recept van '%s' wordt nu uitgevoerd.\n"
-#: remake.c:822
+#: remake.c:826
#, c-format
-msgid "Failed to remake target file `%s'.\n"
+msgid "Failed to remake target file '%s'.\n"
msgstr "Opnieuw maken van doelbestand '%s' is mislukt.\n"
-#: remake.c:825
+#: remake.c:829
#, c-format
-msgid "Successfully remade target file `%s'.\n"
-msgstr "Doelbestand '%s' is succesvol opnieuw gemaakt.\n"
+msgid "Successfully remade target file '%s'.\n"
+msgstr "Doelbestand '%s' is met succes opnieuw gemaakt.\n"
-#: remake.c:828
+#: remake.c:832
#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
-msgstr "Doelbestand '%s' moet opnieuw worden gemaakt onder -q.\n"
+msgid "Target file '%s' needs to be remade under -q.\n"
+msgstr "Doelbestand '%s' moet opnieuw worden gemaakt onder '-q'.\n"
-#: remake.c:1024
+#: remake.c:1027
#, c-format
-msgid "Using default commands for `%s'.\n"
+msgid "Using default commands for '%s'.\n"
msgstr "Standaardopdrachten worden gebruikt voor '%s'.\n"
-#: remake.c:1357
+#: remake.c:1372
#, c-format
-msgid "Warning: File `%s' has modification time in the future"
+msgid "Warning: File '%s' has modification time in the future"
msgstr "Waarschuwing: bestand '%s' heeft een wijzigingstijd in de toekomst"
-#: remake.c:1370
+#: remake.c:1385
#, 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 ""
"Waarschuwing: bestand '%s' heeft een wijzigingstijd %s seconden in de "
"toekomst"
-#: remake.c:1569
+#: remake.c:1583
#, c-format
-msgid ".LIBPATTERNS element `%s' is not a pattern"
+msgid ".LIBPATTERNS element '%s' is not a pattern"
msgstr ".LIBPATTERNS-element '%s' is geen patroon"
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
msgstr "Customs kan niet exporteren: %s\n"
-#: rule.c:499
+#: rule.c:496
msgid ""
"\n"
"# Implicit Rules"
@@ -1629,7 +1830,7 @@ msgstr ""
"\n"
"# Impliciete regels"
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
@@ -1637,7 +1838,7 @@ msgstr ""
"\n"
"# Geen impliciete regels."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -1646,246 +1847,271 @@ msgstr ""
"\n"
"# %u impliciete regels, %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr " terminal."
-#: rule.c:534
+#: rule.c:531
#, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
-msgstr "PROGRAMMAFOUT: num_pattern_rules is verkeerd! %u != %u"
+msgstr "PROGRAMMAFOUT: num_pattern_rules() is verkeerd! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "onbekend signaal"
-#: signame.c:94
+# Vroeger ging dit over het afsluiten van een modemverbinding,
+# tegenwoordig over het afsluiten van een pseudoterminal.
+#: signame.c:92
msgid "Hangup"
msgstr "Opgehangen"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "Onderbroken"
-#: signame.c:100
+# Verleden tijd, "Afgesloten", net als de andere actiesignaalnamen.
+#: signame.c:98
msgid "Quit"
msgstr "Afgesloten"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
-msgstr "Onjuiste bewerking"
+msgstr "Ongeldige instructie"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
msgstr "Traceer/breekpunt-instructie"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "Afgebroken"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
msgstr "IOT-instructie"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
msgstr "EMT-instructie"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
msgstr "Drijvendekomma-berekeningsfout"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "Geëlimineerd"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr "Busfout"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "Segmentatiefout"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "Onjuiste systeemaanroep"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr "Gebroken pijp"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "Wekker"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
msgstr "Beëindigd"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr "Gebruikergedefinieerd signaal 1"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr "Gebruikergedefinieerd signaal 2"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
-msgstr "Dochter is afgesloten"
+msgstr "Dochterproces is afgesloten"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
msgstr "Stroomstoring"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "Gepauzeerd"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
msgstr "Gepauzeerd (terminalinvoer)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
msgstr "Gepauzeerd (terminaluitvoer)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "Gepauzeerd (signaal)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
msgstr "Limiet op processortijd is overschreden"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
msgstr "Limiet op bestandsgrootte is overschreden"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
-msgstr "Virtuele tijdopnemer is verlopen"
+msgstr "Virtuele timer is afgelopen"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
-msgstr "Tijdopnemer voor analyse is verlopen"
+msgstr "Timer voor profilering is afgelopen"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
msgstr "Venster is veranderd"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "Doorgegaan"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
msgstr "Urgente in-/uitvoertoestand"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
msgstr "In-/uitvoer is mogelijk"
-#: 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 "Hulpbron verloren"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "Gevaarsignaal"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr "Verzoek om informatie"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
msgstr "Drijvendekomma-coprocessor is niet beschikbaar"
-#: 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 ""
"\n"
-"%s Aantal tekenreeksen in strcache: %d / lookups = %lu / treffers = %lu\n"
+"%s Geen 'strcache'-buffers\n"
-#: strcache.c:237
+#: strcache.c:266
#, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
-msgstr "%s Aantal strcache-buffers: %d (* %d bytes/buffer = %d bytes)\n"
+msgid ""
+"\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
+msgstr ""
+"\n"
+"%s 'strcache'-buffers: %lu (%lu) / strings = %lu / opslag = %lu B / "
+"gemiddeld = %lu B\n"
+
+#: strcache.c:270
+#, c-format
+msgid ""
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
+msgstr ""
+"%s huidig buffer: grootte = %hu B / gebruikt = %hu B / aantal = %hu / "
+"gemiddeld = %hu B\n"
-#: strcache.c:239
+#: strcache.c:280
#, c-format
-msgid "%s strcache used: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
msgstr ""
-"%s Gebruikte strcache: totaal = %d (%d) / max = %d / min = %d / gemiddeld = %"
-"d\n"
+"%s andere gebruikte: totaal = %lu B / aantal = %lu / gemiddeld = %lu B\n"
-#: strcache.c:241
+#: strcache.c:283
#, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
msgstr ""
-"%s Vrije strcache: totaal = %d (%d) / max = %d / min = %d / gemiddeld = %d\n"
+"%s andere vrij: totaal = %lu B / max = %lu B / min = %lu B / gemiddeld = %hu "
+"B\n"
-#: strcache.c:244
+#: strcache.c:287
+#, c-format
msgid ""
"\n"
-"# strcache hash-table stats:\n"
-"# "
+"%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
msgstr ""
"\n"
-"# strcache-hashtabel-statistieken:\n"
+"%s 'strcache'-prestatie: lookups = %lu / treffersverhouding = %lu%%\n"
+
+#: strcache.c:289
+msgid ""
+"# hash-table stats:\n"
+"# "
+msgstr ""
+"# hashtabel-statistieken van bestanden:\n"
"# "
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "automatisch"
+
+#: variable.c:1610
msgid "default"
msgstr "standaard"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr "omgeving"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
-msgstr "makefile"
+msgstr "Makefile"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
msgstr "omgeving onder -e"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr "opdrachtregel"
-#: variable.c:1556
-msgid "`override' directive"
+#: variable.c:1625
+msgid "'override' directive"
msgstr "'override'-opdracht"
-#: variable.c:1559
-msgid "automatic"
-msgstr "automatisch"
-
-#: variable.c:1570
+#: variable.c:1636
#, c-format
-msgid " (from `%s', line %lu)"
-msgstr " (van '%s', regel %lu)"
+msgid " (from '%s', line %lu)"
+msgstr " (uit '%s', regel %lu)"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
msgstr "# Statistieken van hashtabel van variabelenverzameling:\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1893,7 +2119,7 @@ msgstr ""
"\n"
"# Variabelen\n"
-#: variable.c:1627
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
@@ -1901,7 +2127,7 @@ msgstr ""
"\n"
"# Patroonspecifieke variabelewaarden"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
@@ -1909,7 +2135,7 @@ msgstr ""
"\n"
"# Geen patroonspecifieke variabelewaarden"
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
@@ -1918,94 +2144,94 @@ msgstr ""
"\n"
"# %u patroonspecifieke variabelewaarden"
-#: variable.h:219
+#: variable.h:224
#, c-format
-msgid "warning: undefined variable `%.*s'"
+msgid "warning: undefined variable '%.*s'"
msgstr "Waarschuwing: ongedefinieerde variabele '%.*s'"
-#: vmsfunctions.c:92
+#: vmsfunctions.c:91
#, c-format
msgid "sys$search() failed with %d\n"
msgstr "sys$search() is mislukt met afsluitwaarde %d\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr "Waarschuwing: lege omleiding\n"
-#: vmsjobs.c:184
+#: vmsjobs.c:178
#, c-format
-msgid "internal error: `%s' command_state"
+msgid "internal error: '%s' command_state"
msgstr "*interne fout*: '%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 ""
"-waarschuwing: mogelijk dient u CTRL-Y-afhandeling opnieuw aan te zetten "
"vanuit DCL.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr "INGEBOUWD [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr "INGEBOUWDE CD %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr "INGEBOUWDE RM %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
msgstr "Onbekende ingebouwde opdracht '%s'\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr "Fout: lege opdracht\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr "Invoer wordt omgeleid van %s\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr "Foutuitvoer wordt omgeleid naar %s\n"
-#: vmsjobs.c:523
+#: vmsjobs.c:518
#, c-format
msgid "Append output to %s\n"
msgstr "Uitvoer wordt toegevoegd aan %s\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
msgstr "Uitvoer wordt omgeleid naar %s\n"
-#: vmsjobs.c:599
+#: vmsjobs.c:593
#, c-format
msgid "Append %.*s and cleanup\n"
msgstr "Toevoegen van %.*s en opschoning\n"
-#: vmsjobs.c:606
+#: vmsjobs.c:600
#, c-format
msgid "Executing %s instead\n"
msgstr "In plaats daarvan wordt %s uitgevoerd\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr "Fout bij proces-start, %d\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
@@ -2013,37 +2239,64 @@ msgstr ""
"\n"
"# VPATH-zoekpaden\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
+#: vpath.c:600
+msgid "# No 'vpath' search paths."
msgstr "# Geen 'vpath'-zoekpaden."
-#: vpath.c:605
+#: vpath.c:602
#, c-format
msgid ""
"\n"
-"# %u `vpath' search paths.\n"
+"# %u 'vpath' search paths.\n"
msgstr ""
"\n"
"# %u 'vpath'-zoekpaden.\n"
-#: vpath.c:608
+#: vpath.c:605
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
"# Geen algemeen zoekpad ('VPATH'-variabele)."
-#: vpath.c:614
+#: vpath.c:611
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
"# Algemeen zoekpad ('VPATH'-variabele):\n"
"# "
+#~ msgid "# Invalid value in 'update_status' member!"
+#~ msgstr "# Ongeldige waarde in 'update_status'-onderdeel!"
+
+#~ msgid "unknown trace mode '%s'"
+#~ msgstr "onbekende trace-modus '%s'"
+
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] Fout 0x%x (genegeerd)"
+
+#~ msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
+#~ msgstr "Recept uit %s:%lu wordt aangeroepen om doel '%s' bij te werken.\n"
+
+#~ msgid "Invoking builtin recipe to update target `%s'.\n"
+#~ msgstr "Ingebouwd recept wordt aangeroepen om doel '%s' bij te werken.\n"
+
+#~ msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+#~ msgstr "%s Aantal strcache-buffers: %d (* %d bytes/buffer = %d bytes)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "# strcache hash-table stats:\n"
+#~ "# "
+#~ msgstr ""
+#~ "\n"
+#~ "# strcache-hashtabel-statistieken:\n"
+#~ "# "
+
#~ msgid "process_easy() failed failed to launch process (e=%ld)\n"
#~ msgstr "process_easy() kan geen proces starten (e=%ld)\n"
diff --git a/po/pl.gmo b/po/pl.gmo
index a054031..b0a83e8 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index e81ac11..785b182 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,124 +1,130 @@
# Polish translation for GNU make.
-# Copyright (C) 1996, 2002, 2005, 2006, 2010 Free Software Foundation, Inc.
+# Copyright (C) 1996, 2002, 2005, 2006, 2010, 2013 Free Software Foundation, Inc.
# This file is distributed under the same license as the make package.
-# Pawe³ Krawczyk <kravietz@ceti.pl>, 1996.
-# Jakub Bogusz <qboosh@pld-linux.org>, 2002-2010.
+# Paweł Krawczyk <kravietz@ceti.pl>, 1996.
+# Jakub Bogusz <qboosh@pld-linux.org>, 2002-2013.
#
msgid ""
msgstr ""
-"Project-Id-Version: make 3.81.91\n"
+"Project-Id-Version: make 3.99.93\n"
"Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2010-07-28 01:42-0400\n"
-"PO-Revision-Date: 2010-07-25 22:15+0200\n"
+"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"PO-Revision-Date: 2013-10-02 20:47+0200\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
+"Language: pl\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ar.c:48
+#: ar.c:46
#, c-format
-msgid "attempt to use unsupported feature: `%s'"
-msgstr "próba u¿ycia nieistniej±cej funkcji: `%s'"
+msgid "attempt to use unsupported feature: '%s'"
+msgstr "próba użycia nieistniejącej funkcji: '%s'"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
-msgstr "element biblioteki `touch' jest niedostêpny pod VMS"
+msgstr "element biblioteki `touch' jest niedostępny pod VMS"
-#: ar.c:149
+#: ar.c:147
#, c-format
-msgid "touch: Archive `%s' does not exist"
-msgstr "touch: Archiwum `%s' nie istnieje"
+msgid "touch: Archive '%s' does not exist"
+msgstr "touch: Archiwum '%s' nie istnieje"
-#: ar.c:152
+#: ar.c:150
#, c-format
-msgid "touch: `%s' is not a valid archive"
-msgstr "touch: `%s' nie jest poprawnym archiwum"
+msgid "touch: '%s' is not a valid archive"
+msgstr "touch: '%s' nie jest poprawnym archiwum"
-#: ar.c:159
+#: ar.c:157
#, c-format
-msgid "touch: Member `%s' does not exist in `%s'"
-msgstr "touch: Brak elementu `%s' w `%s'"
+msgid "touch: Member '%s' does not exist in '%s'"
+msgstr "touch: Brak elementu '%s' w '%s'"
-#: ar.c:166
+#: ar.c:164
#, c-format
-msgid "touch: Bad return code from ar_member_touch on `%s'"
-msgstr "touch: B³êdny kod powrotu z ar_member_touch w `%s'"
+msgid "touch: Bad return code from ar_member_touch on '%s'"
+msgstr "touch: Błędny kod powrotu z ar_member_touch w '%s'"
-#: arscan.c:69
+#: arscan.c:67
#, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
msgstr ""
-"Uzyskanie informacji o module przez lnr$set_module() nie uda³o siê, status = "
+"Uzyskanie informacji o module przez lnr$set_module() nie udało się, status = "
"%d"
-#: arscan.c:175
+#: arscan.c:173
#, c-format
msgid "lbr$ini_control() failed with status = %d"
-msgstr "lbr$ini_control() nie powiod³o siê, status = %d"
+msgstr "lbr$ini_control() nie powiodło się, status = %d"
-#: arscan.c:187
+#: arscan.c:185
#, c-format
-msgid "unable to open library `%s' to lookup member `%s'"
-msgstr "b³±d otwarcia biblioteki `%s' podczas szukania elementu `%s'"
+msgid "unable to open library '%s' to lookup member '%s'"
+msgstr "błąd otwarcia biblioteki '%s' podczas szukania elementu '%s'"
-#: arscan.c:850
+#: arscan.c:847
#, c-format
-msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n"
-msgstr "Element `%s'%s: %ld bajtów pod %ld (%ld).\n"
+msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
+msgstr "Element '%s'%s: %ld bajtów pod %ld (%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
-msgstr " (nazwa mo¿e zostaæ okrojona)"
+msgstr " (nazwa może zostać okrojona)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Data %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d, gid = %d, mode = 0%o.\n"
-#: commands.c:499
+#: commands.c:406
+#, c-format
+msgid "Recipe has too many lines (%ud)"
+msgstr "Polecenia mają za dużo linii (%ud)"
+
+#: commands.c:507
msgid "*** Break.\n"
msgstr "*** Przerwano.\n"
-#: commands.c:622
+#: commands.c:630
#, c-format
-msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
-msgstr "*** [%s] Element archiwum `%s' mo¿e byæ fa³szywy; nie usuniêty"
+msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
+msgstr "*** [%s] Element archiwum '%s' może być fałszywy; nie usunięty"
-#: commands.c:625
+#: commands.c:633
#, c-format
-msgid "*** Archive member `%s' may be bogus; not deleted"
-msgstr "*** Element archiwum `%s' mo¿e byæ fa³szywy; nie usuniêty"
+msgid "*** Archive member '%s' may be bogus; not deleted"
+msgstr "*** Element archiwum '%s' może być fałszywy; nie usunięty"
-#: commands.c:638
+#: commands.c:646
#, c-format
-msgid "*** [%s] Deleting file `%s'"
-msgstr "*** [%s] Kasujê plik `%s'"
+msgid "*** [%s] Deleting file '%s'"
+msgstr "*** [%s] KasujÄ™ plik '%s'"
-#: commands.c:640
+#: commands.c:648
#, c-format
-msgid "*** Deleting file `%s'"
-msgstr "*** Kasujê plik `%s'"
+msgid "*** Deleting file '%s'"
+msgstr "*** KasujÄ™ plik '%s'"
-#: commands.c:676
+#: commands.c:684
msgid "# recipe to execute"
msgstr "# polecenia do wykonania"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr " (wbudowane):"
-#: commands.c:681
+#: commands.c:689
#, c-format
-msgid " (from `%s', line %lu):\n"
-msgstr " (z `%s', linia %lu):\n"
+msgid " (from '%s', line %lu):\n"
+msgstr " (z '%s', linia %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -126,221 +132,221 @@ msgstr ""
"\n"
"# Katalogi\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
-msgstr "# %s: stat() zwraca b³±d.\n"
+msgstr "# %s: stat() zwraca błąd.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
-msgstr "# %s (klucz %s, czas modyfikacji %d): otwarcie by³o niemo¿liwe.\n"
+msgstr "# %s (klucz %s, czas modyfikacji %d): otwarcie było niemożliwe.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
-msgstr "# %s (urz±dzenie %d, i-wêze³ [%d,%d,%d]): otwarcie by³o niemo¿liwe.\n"
+msgstr "# %s (urządzenie %d, i-węzeł [%d,%d,%d]): otwarcie było niemożliwe.\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
-msgstr "# %s (urz±dzenie %ld, i-wêze³ %ld): otwarcie by³o niemo¿liwe.\n"
+msgstr "# %s (urządzenie %ld, i-węzeł %ld): otwarcie było niemożliwe.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr "# %s (klucz %s, czas modyfikacji %d): "
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
-msgstr "# %s (urz±dzenie %d, i-wêze³ [%d,%d,%d]): "
+msgstr "# %s (urządzenie %d, i-węzeł [%d,%d,%d]): "
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
-msgstr "# %s (urz±dzenie %ld, i-wêze³ %ld): "
+msgstr "# %s (urządzenie %ld, i-węzeł %ld): "
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "Nie"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " pliki, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "nie"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
-msgstr " niemo¿liwo¶ci"
+msgstr " niemożliwości"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
-msgstr " jak dot±d."
+msgstr " jak dotÄ…d."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
-msgstr " niemo¿liwo¶ci w %lu katalogach.\n"
+msgstr " niemożliwości w %lu katalogach.\n"
-#: expand.c:127
+#: expand.c:125
#, c-format
-msgid "Recursive variable `%s' references itself (eventually)"
-msgstr "Rekurencyjna zmienna `%s' wskazuje na sam± siebie"
+msgid "Recursive variable '%s' references itself (eventually)"
+msgstr "Rekurencyjna zmienna '%s' wskazuje na samÄ… siebie"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
-msgstr "niezakoñczone odwo³anie do zmiennej"
+msgstr "niezakończone odwołanie do zmiennej"
-#: file.c:267
+#: file.c:269
#, c-format
-msgid "Recipe was specified for file `%s' at %s:%lu,"
-msgstr "Polecenia dla pliku `%s' podano w %s:%lu,"
+msgid "Recipe was specified for file '%s' at %s:%lu,"
+msgstr "Polecenia dla pliku '%s' podano w %s:%lu,"
-#: file.c:272
+#: file.c:274
#, 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 ""
-"Polecenia dla pliku `%s' zosta³y wyznaczone na podstawie regu³ standardowych,"
+"Polecenia dla pliku '%s' zostały wyznaczone na podstawie reguł standardowych,"
-#: file.c:275
+#: file.c:277
#, c-format
-msgid "but `%s' is now considered the same file as `%s'."
-msgstr "ale `%s' jest teraz uznawany za ten sam plik co `%s'."
+msgid "but '%s' is now considered the same file as '%s'."
+msgstr "ale '%s' jest teraz uznawany za ten sam plik co '%s'."
-#: file.c:278
+#: file.c:280
#, c-format
-msgid "Recipe for `%s' will be ignored in favor of the one for `%s'."
-msgstr "Polecenia dla `%s' zosta³y zignorowane na rzecz poleceñ dla `%s'."
+msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
+msgstr "Polecenia dla '%s' zostaną zignorowane na rzecz poleceń dla '%s'."
-#: file.c: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 ""
-"nie mo¿na przemianowaæ `%s' z pojedynczym dwukropkiem na `%s' z podwójnym"
+"nie można przemianować '%s' z pojedynczym dwukropkiem na '%s' z podwójnym"
-#: 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 ""
-"nie mo¿na przemianowaæ `%s' z podwójnym dwukropkiem na `%s' z pojedynczym"
+"nie można przemianować '%s' z podwójnym dwukropkiem na '%s' z pojedynczym"
-#: file.c:392
+#: file.c:396
#, c-format
-msgid "*** Deleting intermediate file `%s'"
-msgstr "*** Kasowanie pliku po¶redniego `%s'"
+msgid "*** Deleting intermediate file '%s'"
+msgstr "*** Kasowanie pliku pośredniego '%s'"
-#: file.c:396
+#: file.c:400
msgid "Removing intermediate files...\n"
-msgstr "Kasowanie plików po¶rednich...\n"
+msgstr "Kasowanie plików pośrednich...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
-msgstr "%s: Oznaczenie czasu spoza zakresu; zast±piono %s"
+msgstr "%s: Oznaczenie czasu spoza zakresu; zastÄ…piono %s"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "Aktualny czas"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
msgstr "# To nie jest obiekt:"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
-msgstr "# Cenny plik (zale¿no¶æ .PRECIOUS)."
+msgstr "# Cenny plik (zależność .PRECIOUS)."
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
-msgstr "# Obiekt niejawny (zale¿no¶æ .PHONY)."
+msgstr "# Obiekt niejawny (zależność .PHONY)."
-#: file.c:933
+#: file.c:958
msgid "# Command line target."
-msgstr "# Obiekt podany w linii poleceñ."
+msgstr "# Obiekt podany w linii poleceń."
-#: file.c:935
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
-msgstr "# Makefile domy¶lny, wymieniony w MAKEFILES lub -include/sinclude."
+msgstr "# Makefile domyślny, wymieniony w MAKEFILES lub -include/sinclude."
-#: file.c:937
+#: file.c:962
+msgid "# Builtin rule"
+msgstr "# Reguła wbudowana"
+
+#: file.c:964
msgid "# Implicit rule search has been done."
-msgstr "# Szukanie regu³ domy¶lnych zosta³o wykonane."
+msgstr "# Szukanie reguł domyślnych zostało wykonane."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
-msgstr "# Szukanie regu³ domy¶lnych nie zosta³o wykonane."
+msgstr "# Szukanie reguł domyślnych nie zostało wykonane."
-#: file.c:940
+#: file.c:967
#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
-msgstr "# Ga³±¼ wzorców domy¶lnych/statycznych: `%s'\n"
+msgid "# Implicit/static pattern stem: '%s'\n"
+msgstr "# Gałąź wzorców domyślnych/statycznych: '%s'\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
-msgstr "# Plik jest zale¿no¶ci± przej¶ciow±."
+msgstr "# Plik jest zależnością przejściową."
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
-msgstr "# Robi równie¿:"
+msgstr "# Robi również:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
-msgstr "# Czas modyfikacji nie by³ sprawdzany."
+msgstr "# Czas modyfikacji nie był sprawdzany."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# Plik nie istnieje."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr "# Plik jest bardzo stary."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr "# Ostatnio modyfikowany %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
-msgstr "# Plik zosta³ uaktualniony."
+msgstr "# Plik został uaktualniony."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
-msgstr "# Plik nie zosta³ uaktualniony."
+msgstr "# Plik nie został uaktualniony."
-#: file.c:968
+#: file.c:995
msgid "# Recipe currently running (THIS IS A BUG)."
-msgstr "# Aktualnie uruchamiane polecenia (TO JEST B£¡D)."
+msgstr "# Aktualnie uruchamiane polecenia (TO JEST BÅÄ„D)."
-#: file.c:971
+#: file.c:998
msgid "# Dependencies recipe running (THIS IS A BUG)."
-msgstr "# Aktualnie uruchamiane polecenia zale¿no¶ci (TO JEST B£¡D)."
+msgstr "# Aktualnie uruchamiane polecenia zależnoÅ›ci (TO JEST BÅÄ„D)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
-msgstr "# Uaktualnienie powiod³o siê."
+msgstr "# Uaktualnienie powiodło się."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
-msgstr "# Powinien byæ uaktualniony (-q jest w³±czone)."
+msgstr "# Powinien być uaktualniony (-q jest włączone)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
-msgstr "# Uaktualnianie nie powiod³o siê."
-
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# B³êdna warto¶æ w elemencie `update_status'!"
+msgstr "# Uaktualnianie nie powiodło się."
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
-msgstr "# B³êdna warto¶æ w elemencie `command_state'!"
+#: file.c:1019
+msgid "# Invalid value in 'command_state' member!"
+msgstr "# Błędna wartość w elemencie 'command_state'!"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -348,136 +354,190 @@ msgstr ""
"\n"
"# Pliki"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
"# "
msgstr ""
"\n"
-"# statystyki tablic haszuj±cych plików:\n"
+"# statystyki tablic haszujących plików:\n"
"# "
-#: function.c:758
-msgid "non-numeric first argument to `word' function"
-msgstr "pierwszy argument funkcji `word' nie jest numeryczny"
+#: file.c:1051
+#, c-format
+msgid "%s: Field '%s' not cached: %s"
+msgstr "%s: Pole '%s' nie zapamiętane w pamięci podręcznej: %s"
+
+#: function.c:742
+msgid "non-numeric first argument to 'word' function"
+msgstr "pierwszy argument funkcji 'word' nie jest liczbowy"
-#: function.c:763
-msgid "first argument to `word' function must be greater than 0"
-msgstr "pierwszy argument funkcji `word' musi byæ wiêkszy od 0"
+#: function.c:747
+msgid "first argument to 'word' function must be greater than 0"
+msgstr "pierwszy argument funkcji 'word' musi być większy od 0"
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
-msgstr "pierwszy argument funkcji `wordlist' nie jest numeryczny"
+#: function.c:767
+msgid "non-numeric first argument to 'wordlist' function"
+msgstr "pierwszy argument funkcji 'wordlist' nie jest liczbowy"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
-msgstr "drugi argument funkcji `wordlist' nie jest numeryczny"
+#: function.c:769
+msgid "non-numeric second argument to 'wordlist' function"
+msgstr "drugi argument funkcji 'wordlist' nie jest liczbowy"
-#: function.c:1458
+#: function.c:1460
#, c-format
-msgid "windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"
-msgstr "windows32_openpipe(): DuplicateHandle(In) nie powiod³o siê (e=%ld)\n"
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
+msgstr "windows32_openpipe: DuplicateHandle(In) nie powiodło się (e=%ld)\n"
-#: function.c:1469
+#: function.c:1483
#, c-format
-msgid "windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr "windows32_open_pipe(): DuplicateHandle(Err) nie powiod³o siê (e=%ld)\n"
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
+msgstr "windows32_openpipe: DuplicateHandle(Err) nie powiodło się (e=%ld)\n"
-#: function.c:1474
+#: function.c:1490
#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
-msgstr "CreatePipe() nie powiod³o siê (e=%ld)\n"
+msgstr "CreatePipe() nie powiodło się (e=%ld)\n"
-#: function.c:1479
+#: function.c:1498
msgid "windows32_openpipe(): process_init_fd() failed\n"
-msgstr "windows32_openpipe(): process_init_fd() nie powiod³o siê\n"
+msgstr "windows32_openpipe(): process_init_fd() nie powiodło się\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
-msgstr "Czyszczê tymczasowy plik wsadowy %s\n"
+msgstr "CzyszczÄ™ tymczasowy plik wsadowy %s\n"
+
+#: function.c:2151
+#, c-format
+msgid "open: %s: %s"
+msgstr "otwarcie: %s: %s"
+
+#: function.c:2158
+#, c-format
+msgid "write: %s: %s"
+msgstr "zapis: %s: %s"
+
+#: function.c:2164
+#, c-format
+msgid "Invalid file operation: %s"
+msgstr "Błędna operacja na pliku: %s"
+
+#: function.c:2279
+#, c-format
+msgid "insufficient number of arguments (%d) to function '%s'"
+msgstr "niewystarczająca liczba argumentów (%d) dla funkcji '%s'"
-#: function.c:2150
+#: function.c:2291
#, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
-msgstr "niewystarczaj±ca liczba argumentów (%d) dla funkcji `%s'"
+msgid "unimplemented on this platform: function '%s'"
+msgstr "funkcja '%s' nie jest zaimplementowana na tej platformie"
-#: function.c:2162
+#: function.c:2354
#, c-format
-msgid "unimplemented on this platform: function `%s'"
-msgstr "funkcja `%s' nie jest zaimplementowana na tej platformie"
+msgid "unterminated call to function '%s': missing '%c'"
+msgstr "nie dokończone wywołanie funkcji '%s': brak '%c'"
+
+#: function.c:2546
+msgid "Empty function name\n"
+msgstr ""
+
+#: function.c:2548
+#, fuzzy, c-format
+msgid "Invalid function name: %s\n"
+msgstr "Błędna operacja na pliku: %s"
-#: function.c:2212
+#: function.c:2550
#, c-format
-msgid "unterminated call to function `%s': missing `%c'"
-msgstr "nie dokoñczone wywo³anie funkcji `%s': brak `%c'"
+msgid "Function name too long: %s\n"
+msgstr "Zbyt długa nazwa funkcji: %s\n"
-#: getopt.c:661
+#: function.c:2552
#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: opcja `%s' jest niejednoznaczna\n"
+msgid "Invalid minimum argument count (%d) for function %s\n"
+msgstr "Błędna minimalna liczba argumentów (%d) dla funkcji %s\n"
-#: getopt.c:685
+#: function.c:2555
#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: opcja `--%s' nie przyjmuje argumentów\n"
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "Błędna maksymalna liczba argumentów (%d) dla funkcji %s\n"
-#: getopt.c:690
+#: getopt.c:659
#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: opcja `%c%s' nie przyjmuje argumentów\n"
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: opcja '%s' jest niejednoznaczna\n"
-#: getopt.c:707 getopt.c:880
+#: getopt.c:683
#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: opcja `%s' wymaga argumentu\n"
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: opcja '--%s' nie przyjmuje argumentów\n"
-#: getopt.c:736
+#: getopt.c:688
#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: nierozpoznana opcja `--%s'\n"
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: opcja '%c%s' nie może mieć argumentów\n"
-#: getopt.c:740
+#: getopt.c:705 getopt.c:878
#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: nierozpoznan opcja `%c%s'\n"
+msgid "%s: option '%s' requires an argument\n"
+msgstr "%s: opcja '%s' musi mieć argument\n"
-#: getopt.c:766
+#: getopt.c:734
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: nieznana opcja '--%s'\n"
+
+#: getopt.c:738
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: nieznana opcja '%c%s'\n"
+
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: niedozwolona opcja -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
-msgstr "%s: b³êdna opcja -- %c\n"
+msgstr "%s: błędna opcja -- %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: opcja wymaga argumentu -- %c\n"
+msgstr "%s: opcja musi mieć argument -- %c\n"
+
+#: getopt.c:844
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: opcja '-W %s' jest niejednoznaczna\n"
-#: getopt.c:846
+#: getopt.c:862
#, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
-msgstr "%s: opcja `-W %s' jest niejednoznaczna\n"
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: opcja '-W %s' nie może mieć argumentów\n"
-#: getopt.c:864
+#: guile.c:55
#, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr "%s: opcja `-W %s' nie przyjmuje argumentów\n"
+msgid "guile: Expanding '%s'\n"
+msgstr "guile: Rozwijanie '%s'\n"
+
+#: guile.c:71
+#, c-format
+msgid "guile: Evaluating '%s'\n"
+msgstr "guile: Wyliczanie '%s'\n"
#: hash.c:49
#, c-format
msgid "can't allocate %lu bytes for hash table: memory exhausted"
msgstr ""
-"nie mo¿na przydzieliæ %lu bajtów na tablicê haszuj±c±: pamiêæ wyczerpana"
+"nie można przydzielić %lu bajtów na tablicę haszującą: pamięć wyczerpana"
#: hash.c:280
#, c-format
msgid "Load=%ld/%ld=%.0f%%, "
-msgstr "Wype³nienie=%ld/%ld=%.0f%%, "
+msgstr "Wypełnienie=%ld/%ld=%.0f%%, "
#: hash.c:282
#, c-format
@@ -489,280 +549,358 @@ msgstr "Przehaszowania=%d, "
msgid "Collisions=%ld/%ld=%.0f%%"
msgstr "Kolizje=%ld/%ld=%.0f%%"
-#: implicit.c:40
+#: implicit.c:38
#, c-format
-msgid "Looking for an implicit rule for `%s'.\n"
-msgstr "Szukanie standardowej regu³y dla `%s'.\n"
+msgid "Looking for an implicit rule for '%s'.\n"
+msgstr "Szukanie standardowej reguły dla '%s'.\n"
-#: implicit.c:56
+#: implicit.c:54
#, c-format
-msgid "Looking for archive-member implicit rule for `%s'.\n"
-msgstr "Szukanie standardowej regu³y typu archive-member dla `%s'.\n"
+msgid "Looking for archive-member implicit rule for '%s'.\n"
+msgstr "Szukanie standardowej reguły typu archive-member dla '%s'.\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
-msgstr "Pomijanie rekurencyjnego wywo³ania regu³y standardowej.\n"
+msgstr "Pomijanie rekurencyjnego wywołania reguły standardowej.\n"
+
+#: implicit.c:486
+#, c-format
+msgid "Stem too long: '%.*s'.\n"
+msgstr "Gałąź zbyt długa: '%.*s'.\n"
#: implicit.c:491
#, c-format
-msgid "Trying pattern rule with stem `%.*s'.\n"
-msgstr "Próbowanie regu³y wzorcowej z ga³êzi± `%.*s'.\n"
+msgid "Trying pattern rule with stem '%.*s'.\n"
+msgstr "Próbowanie reguły wzorcowej z gałęzią '%.*s'.\n"
-#: implicit.c:674
+#: implicit.c:697
#, c-format
-msgid "Rejecting impossible rule prerequisite `%s'.\n"
-msgstr "Odrzucenie niemo¿liwej zale¿no¶ci regu³y `%s'.\n"
+msgid "Rejecting impossible rule prerequisite '%s'.\n"
+msgstr "Odrzucenie niemożliwej zależności reguły '%s'.\n"
-#: implicit.c:675
+#: implicit.c:698
#, c-format
-msgid "Rejecting impossible implicit prerequisite `%s'.\n"
-msgstr "Odrzucenie niemo¿liwej zale¿no¶ci domy¶lnej `%s'.\n"
+msgid "Rejecting impossible implicit prerequisite '%s'.\n"
+msgstr "Odrzucenie niemożliwej zależności domyślnej '%s'.\n"
-#: implicit.c:688
+#: implicit.c:711
#, c-format
-msgid "Trying rule prerequisite `%s'.\n"
-msgstr "Próbowanie zale¿no¶ci regu³y `%s'.\n"
+msgid "Trying rule prerequisite '%s'.\n"
+msgstr "Próbowanie zależności reguły '%s'.\n"
-#: implicit.c:689
+#: implicit.c:712
#, c-format
-msgid "Trying implicit prerequisite `%s'.\n"
-msgstr "Próbowanie zale¿no¶ci domy¶lnej `%s'.\n"
+msgid "Trying implicit prerequisite '%s'.\n"
+msgstr "Próbowanie zależności domyślnej '%s'.\n"
-#: implicit.c:728
+#: implicit.c:751
#, c-format
-msgid "Found prerequisite `%s' as VPATH `%s'\n"
-msgstr "Znaleziono zale¿no¶æ `%s' jako VPATH `%s'\n"
+msgid "Found prerequisite '%s' as VPATH '%s'\n"
+msgstr "Znaleziono zależność '%s' jako VPATH '%s'\n"
-#: implicit.c:742
+#: implicit.c:765
#, c-format
-msgid "Looking for a rule with intermediate file `%s'.\n"
-msgstr "Szukanie regu³y zawieraj±cej plik przej¶ciowy `%s'.\n"
+msgid "Looking for a rule with intermediate file '%s'.\n"
+msgstr "Szukanie reguły zawierającej plik przejściowy '%s'.\n"
-#: job.c:335
+#: job.c:361
msgid "Cannot create a temporary file\n"
-msgstr "Nie mo¿na utworzyæ pliku tymczasowego\n"
+msgstr "Nie można utworzyć pliku tymczasowego\n"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] B³±d 0x%x (zignorowany)"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (zrzut pamięci)"
+
+#: job.c:487
+msgid " (ignored)"
+msgstr " (zignorowano)"
-#: job.c:450
+#: job.c:491 job.c:1994
+msgid "<builtin>"
+msgstr "<wbudowane>"
+
+#: job.c:501
#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] B³±d 0x%x"
+msgid "%s: recipe for target '%s' failed"
+msgstr "%s: polecenia dla obiektu '%s' nie powiodły się"
-#: job.c:454
+#: job.c:510
#, c-format
-msgid "[%s] Error %d (ignored)"
-msgstr "[%s] B³±d %d (zignorowany)"
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] BÅ‚Ä…d 0x%x%s"
-#: job.c:455
+#: job.c:513
#, c-format
-msgid "*** [%s] Error %d"
-msgstr "*** [%s] B³±d %d"
+msgid "%s[%s] Error %d%s"
+msgstr "%s[%s] BÅ‚Ä…d %d%s"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (zrzut pamiêci)"
+#: job.c:517
+#, c-format
+msgid "%s[%s] %s%s%s"
+msgstr "%s[%s]: %s%s%s"
-#: job.c:549
+#: job.c:609
msgid "*** Waiting for unfinished jobs...."
-msgstr "*** Oczekiwanie na niezakoñczone zadania...."
+msgstr "*** Oczekiwanie na niezakończone zadania...."
-#: job.c:579
+#: job.c:639
#, c-format
msgid "Live child %p (%s) PID %s %s\n"
-msgstr "¯yj±cy potomek %p (%s) PID %s %s\n"
+msgstr "Żyjący potomek %p (%s) PID %s %s\n"
-#: 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 " (zdalne)"
-#: job.c:758
+#: job.c:829
#, c-format
msgid "Reaping losing child %p PID %s %s\n"
-msgstr "Zbieranie przegrywaj±cego potomka %p PID %s %s\n"
+msgstr "Zbieranie przegrywajÄ…cego potomka %p PID %s %s\n"
-#: job.c:759
+#: job.c:830
#, c-format
msgid "Reaping winning child %p PID %s %s\n"
-msgstr "Zbieranie wygrywaj±cego potomka %p PID %s %s\n"
+msgstr "Zbieranie wygrywajÄ…cego potomka %p PID %s %s\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
msgstr "Czyszczenie tymczasowego pliku wsadowego %s\n"
-#: job.c:861
+#: job.c:843
+#, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "Czyszczenie tymczasowego pliku wsadowego %s nie powiodło się (%d)\n"
+
+#: job.c:949
#, c-format
msgid "Removing child %p PID %s%s from chain.\n"
msgstr "Usuwanie potomka %p PID %s%s z kolejki.\n"
-#: job.c:920
-msgid "write jobserver"
-msgstr "pisz±cy serwer zadañ"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr "zwalnianie semafora serwera zadań: (Błąd %ld: %s)"
-#: job.c:922
+#: job.c:1011 job.c:1025
#, c-format
msgid "Released token for child %p (%s).\n"
msgstr "Zwolniony token dla potomka %p (%s).\n"
-#: job.c:1453 job.c:2094
+#: job.c:1023
+msgid "write jobserver"
+msgstr "piszący serwer zadań"
+
+#: job.c:1612 job.c:2332
#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
-msgstr "process_easy() nie móg³ uruchomiæ procesu (e=%ld)\n"
+msgstr "process_easy() nie mógł uruchomić procesu (e=%ld)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
"Counted %d args in failed launch\n"
msgstr ""
"\n"
-"Naliczono %d parametrów nieudanego uruchomienia\n"
+"Naliczono %d parametrów nieudanego uruchomienia\n"
-#: job.c:1525
+#: job.c:1685
#, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
msgstr "Wstawianie potomka %p (%s) PID %s%s do kolejki.\n"
-#: job.c:1778
+#: job.c:1953
+#, c-format
+msgid "semaphore or child process wait: (Error %ld: %s)"
+msgstr "oczekiwanie na semafor lub proces potomny: (BÅ‚Ä…d %ld: %s)"
+
+#: job.c:1967
#, c-format
msgid "Obtained token for child %p (%s).\n"
msgstr "Otrzymano token dla potomka %p (%s).\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
-msgstr "strumieñ czytaj±cy zadania"
+msgstr "strumień czytający zadania"
-#: job.c:1798
+#: job.c:2003
#, c-format
-msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
-msgstr "Wykonywanie poleceñ z %s:%lu dla uaktualnienia obiektu `%s'.\n"
+msgid "%s: target '%s' does not exist"
+msgstr "%s: obiekt '%s' nie istnieje"
-#: job.c:1802
+#: job.c:2005
#, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "Wykonywanie wbudowanych poleceñ dla uaktualnienia obiektu `%s'.\n"
+msgid "%s: update target '%s' due to: %s"
+msgstr "%s: uaktualnianie obiektu '%s' z powodu: %s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
-msgstr "niemo¿liwe wymuszenie limitów obci±¿enia w tym systemie"
+msgstr "niemożliwe wymuszenie limitów obciążenia w tym systemie"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
-msgstr "niemo¿liwe wymuszenie limitu obci±¿enia: "
+msgstr "niemożliwe wymuszenie limitu obciążenia: "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
-msgstr "nie ma wiêcej uchwytów plików: nie mo¿na powieliæ stdin\n"
+msgstr "nie ma więcej uchwytów plików: nie można powielić stdin\n"
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
-msgstr "nie ma wiêcej uchwytów plików: nie mo¿na powieliæ stdout\n"
+msgstr "nie ma więcej uchwytów plików: nie można powielić stdout\n"
-#: job.c:2015
+#: job.c:2223
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr "nie ma więcej uchwytów plików: nie można powielić stderr\n"
+
+#: job.c:2238
msgid "Could not restore stdin\n"
-msgstr "Nie mo¿na odtworzyæ stdin\n"
+msgstr "Nie można odtworzyć stdin\n"
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
-msgstr "Nie mo¿na odtworzyæ stdout\n"
+msgstr "Nie można odtworzyć stdout\n"
+
+#: job.c:2254
+msgid "Could not restore stderr\n"
+msgstr "Nie można odtworzyć stderr\n"
-#: job.c:2127
+#: job.c:2365
#, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
-msgstr "make usun±³ potomka pid %s, nadal czeka na pid %s\n"
+msgstr "make usunÄ…Å‚ potomka pid %s, nadal czeka na pid %s\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
msgstr "%s: Polecenie nie znalezione"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
-msgstr "%s: Nie znaleziono programu pow³oki"
+msgstr "%s: Nie znaleziono programu powłoki"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
-msgstr "spawnvpe: mog³o zabrakn±æ miejsca na ¶rodowisko"
+msgstr "spawnvpe: mogło zabraknąć miejsca na środowisko"
-#: job.c:2461
+#: job.c:2709
#, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
-msgstr "$SHELL siê zmieni³ (by³ `%s', jest `%s')\n"
+msgid "$SHELL changed (was '%s', now '%s')\n"
+msgstr "$SHELL się zmienił (był '%s', jest '%s')\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr "Tworzenie tymczasowego pliku wsadowego %s\n"
-#: job.c:2963
+#: job.c:3148
+msgid ""
+"Batch file contents:\n"
+"\t@echo off\n"
+msgstr ""
+"Zawartość pliku wsadowego:\n"
+"\t@echo off\n"
+
+#: job.c:3337
#, c-format
msgid ""
"Batch file contents:%s\n"
"\t%s\n"
msgstr ""
-"Zawarto¶æ pliku wsadowego:%s\n"
+"Zawartość pliku wsadowego:%s\n"
"\t%s\n"
-#: job.c:3065
+#: job.c:3444
#, c-format
msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
-msgstr "%s (linia %d) Z³y kontekst pow³oki (!unixy && !batch_mode_shell)\n"
+msgstr "%s (linia %d) Zły kontekst powłoki (!unixy && !batch_mode_shell)\n"
+
+#: job.h:43
+msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
+msgstr ""
+"-O[TYP] (--output-sync[=TYP]) nie zostało skonfigurowane przy tym budowaniu."
+
+#: load.c:53
+#, c-format
+msgid "Failed to open global symbol table: %s"
+msgstr "Nie udało się otworzyć tablicy symboli globalnych: %s"
+
+#: load.c:87
+#, c-format
+msgid "Loaded object %s is not declared to be GPL compatible"
+msgstr "Wczytany obiekt %s nie jest zadeklarowany jako kompatybilny z GPL"
-#: main.c:303
+#: load.c:92
+#, c-format
+msgid "Failed to load symbol %s from %s: %s"
+msgstr "Nie udało się wczytać symbolu %s z %s: %s"
+
+#: load.c:136
+#, c-format
+msgid "Empty symbol name for load: %s"
+msgstr "Pusta nazwa symbolu do wczytania: %s"
+
+#: load.c:191
+#, c-format
+msgid "Loading symbol %s from %s\n"
+msgstr "Wczytywanie symbolu %s z %s\n"
+
+#: load.c:229
+msgid "The 'load' operation is not supported on this platform."
+msgstr "Operacja 'load' nie jest obsługiwana na tej platformie"
+
+#: main.c:312
msgid "Options:\n"
msgstr "Opcje:\n"
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
-msgstr " -b, -m Ignorowane dla kompatybilno¶ci.\n"
+msgstr " -b, -m Ignorowane dla kompatybilności.\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr ""
-" -B, --always-make Bezwarunkowe utworzenie wszystkich obiektów.\n"
+" -B, --always-make Bezwarunkowe utworzenie wszystkich obiektów.\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
msgstr ""
" -C KATALOG, --directory=KATALOG\n"
-" Przej¶cie do KATALOGu przed robieniem\n"
+" Przejście do KATALOGu przed robieniem\n"
" czegokolwiek.\n"
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
msgstr ""
-" -d Wy¶wietla du¿o informacji diagnostycznych.\n"
+" -d Wyświetla dużo informacji diagnostycznych.\n"
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
-" --debug[=FLAGI] Wy¶wietla ró¿ne rodzaje informacji\n"
+" --debug[=FLAGI] Wyświetla różne rodzaje informacji\n"
" diagnostycznych.\n"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
msgstr ""
" -e, --environment-overrides\n"
-" Zmienne ¶rodowiska przykrywaj± makefile.\n"
+" Zmienne środowiska przykrywają makefile.\n"
-#: main.c:318
+#: main.c:327
msgid ""
" --eval=STRING Evaluate STRING as a makefile statement.\n"
msgstr ""
-" --eval=£AÑCUCH Wyznacza £AÑCUCH jako instrukcjê pliku "
+" --eval=ÅAŃCUCH Wyznacza ÅAŃCUCH jako instrukcjÄ™ pliku "
"makefile.\n"
-#: main.c:320
+#: main.c:329
msgid ""
" -f FILE, --file=FILE, --makefile=FILE\n"
" Read FILE as a makefile.\n"
@@ -770,67 +908,67 @@ msgstr ""
" -f PLIK, --file=PLIK, --makefile=PLIK\n"
" Czyta PLIK jako makefile.\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
msgstr ""
-" -h, --help Wy¶wietla ten komunikat i koñczy dzia³anie.\n"
+" -h, --help Wyświetla ten komunikat i kończy działanie.\n"
-#: main.c:325
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
-msgstr " -i, --ignore-errors Ignoruje b³êdy poleceñ.\n"
+msgstr " -i, --ignore-errors Ignoruje błędy poleceń.\n"
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
msgstr ""
" -I KATALOG, --include-dir=KATALOG\n"
-" Szuka do³±czanych makefile w KATALOGu.\n"
+" Szuka dołączanych makefile w KATALOGu.\n"
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
msgstr ""
-" -j [N], --jobs[=N] Dopuszcza N zadañ naraz; brak N oznacza brak\n"
-" ograniczeñ.\n"
+" -j [N], --jobs[=N] Dopuszcza N zadań naraz; brak N oznacza brak\n"
+" ograniczeń.\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 Kontynuuj je¶li nie da siê zrobiæ jakich¶\n"
-" obiektów.\n"
+" -k, --keep-going Kontynuuj jeśli nie da się zrobić jakichś\n"
+" obiektów.\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 "
"N.\n"
msgstr ""
" -l [N], --load-average[=N], --max-load[=N]\n"
-" Nie uruchamiaj wielu zadañ je¶li load nie "
+" Nie uruchamiaj wielu zadań jeśli load nie "
"jest\n"
-" poni¿ej N.\n"
+" poniżej N.\n"
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
msgstr ""
-" -L, --check-symlink-times U¿ywanie ostatniego mtime miêdzy dowi±zaniem a "
+" -L, --check-symlink-times Używanie ostatniego mtime między dowiązaniem a "
"celem.\n"
-#: main.c:339
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
"them.\n"
msgstr ""
" -n, --just-print, --dry-run, --recon\n"
-" Nie wykonuje poleceñ; jedynie je wy¶wietla.\n"
+" Nie wykonuje poleceń; jedynie je wyświetla.\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 "
@@ -841,93 +979,115 @@ msgstr ""
"go\n"
" ponownie.\n"
-#: main.c:345
+#: main.c:354
+msgid ""
+" -O[TYPE], --output-sync[=TYPE]\n"
+" Synchronize output of parallel jobs by TYPE.\n"
+msgstr ""
+" -O[SPOSÓB], --output-sync[=SPOSÓB]\n"
+" Sposób synchronizacji wyjścia zadań "
+"równoległych.\n"
+
+#: main.c:357
msgid " -p, --print-data-base Print make's internal database.\n"
-msgstr " -p, --print-data-base Wy¶wietla wewnêtrzn± bazê danych make.\n"
+msgstr " -p, --print-data-base Wyświetla wewnętrzną bazę danych make.\n"
-#: main.c:347
+#: main.c:359
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
msgstr ""
-" -q, --question Nie uruchamia ¿adnych poleceñ; status powrotu\n"
-" wskazuje aktualno¶æ.\n"
+" -q, --question Nie uruchamia żadnych poleceń; status powrotu\n"
+" wskazuje aktualność.\n"
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
-msgstr " -r, --no-builtin-rules Wy³±cza wbudowane regu³y standardowe.\n"
+msgstr " -r, --no-builtin-rules Wyłącza wbudowane reguły standardowe.\n"
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr ""
-" -R, --no-builtin-variables Wy³±cza ustawianie wbudowanych zmiennych.\n"
+" -R, --no-builtin-variables Wyłącza ustawianie wbudowanych zmiennych.\n"
-#: main.c:353
+#: main.c:365
msgid " -s, --silent, --quiet Don't echo recipes.\n"
-msgstr " -s, --silent, --quiet Nie wypisuje poleceñ.\n"
+msgstr " -s, --silent, --quiet Nie wypisuje poleceń.\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
msgstr ""
" -S, --no-keep-going, --stop\n"
-" Wy³±cza -k.\n"
+" Wyłącza -k.\n"
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
-msgstr " -t, --touch Uaktualnia obiekty zamiast je robiæ.\n"
+msgstr " -t, --touch Uaktualnia obiekty zamiast je robić.\n"
-#: main.c:360
+#: main.c:372
+msgid " --trace Print tracing information.\n"
+msgstr " --trace Wypisywanie informacji ze śledzenia.\n"
+
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr ""
-" -v, --version Wy¶wietla wersjê make i koñczy dzia³anie.\n"
+" -v, --version Wyświetla wersję make i kończy działanie.\n"
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
-msgstr " -w, --print-directory Wy¶wietla aktualny katalog.\n"
+msgstr " -w, --print-directory Wyświetla aktualny katalog.\n"
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
msgstr ""
-" --no-print-directory Wy³±cza -w, nawet je¶li by³o ono w³±czone\n"
-" domy¶lnie.\n"
+" --no-print-directory Wyłącza -w, nawet jeśli było ono włączone\n"
+" domyślnie.\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"
msgstr ""
" -W PLIK, --what-if=PLIK, --new-file=PLIK, --assume-new=PLIK\n"
-" Uznaje PLIK za nieskoñczenie nowy.\n"
+" Uznaje PLIK za nieskończenie nowy.\n"
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
msgstr ""
-" --warn-undefined-variables Ostrzega przy odwo³aniach do "
+" --warn-undefined-variables Ostrzega przy odwołaniach do "
"niezdefiniowanych\n"
" zmiennych.\n"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
-msgstr "pusty ³añcuch nie mo¿e byæ nazw± pliku"
+msgstr "pusty łańcuch nie może być nazwą pliku"
+
+#: main.c:734
+#, c-format
+msgid "unknown debug level specification '%s'"
+msgstr "nieznany poziom diagnostyki '%s'"
-#: main.c:650
+#: main.c:777
#, c-format
-msgid "unknown debug level specification `%s'"
-msgstr "nieznany poziom diagnostyki `%s'"
+msgid "unknown output-sync type '%s'"
+msgstr "nieznany sposób synchronizacji wyjścia '%s'"
+
+#: main.c:787
+msgid "internal error: multiple --sync-mutex options"
+msgstr "błąd wewnętrzny: wiele opcji --sync-mutex"
-#: main.c:690
+#: main.c:848
#, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
-msgstr "%s: z³apano przerwanie/wyj±tek (kod = 0x%lx, adres = 0x%p)\n"
+msgstr "%s: złapano przerwanie/wyjątek (kod = 0x%lx, adres = 0x%p)\n"
-#: main.c:697
+#: main.c:855
#, c-format
msgid ""
"\n"
@@ -937,208 +1097,231 @@ msgid ""
"ExceptionAddress = 0x%p\n"
msgstr ""
"\n"
-"Nieobs³ugiwany filtr wyj±tku wywo³any z programu %s\n"
+"Nieobsługiwany filtr wyjątku wywołany z programu %s\n"
"ExceptionCode = %lx\n"
"ExceptionFlags = %lx\n"
"ExceptionAddress = 0x%p\n"
-#: main.c:705
+#: main.c:863
#, c-format
msgid "Access violation: write operation at address 0x%p\n"
-msgstr "Naruszenie praw dostêpu: zapis pod adresem 0x%p\n"
+msgstr "Naruszenie praw dostępu: zapis pod adresem 0x%p\n"
-#: main.c:706
+#: main.c:864
#, c-format
msgid "Access violation: read operation at address 0x%p\n"
-msgstr "Naruszenie praw dostêpu: odczyt spod adresu 0x%p\n"
+msgstr "Naruszenie praw dostępu: odczyt spod adresu 0x%p\n"
-#: main.c:781 main.c:792
+#: main.c:940 main.c:955
#, c-format
msgid "find_and_set_shell() setting default_shell = %s\n"
msgstr "find_and_set_shell() ustawia default_shell = %s\n"
-#: main.c:834
+#: main.c:1008
#, c-format
msgid "find_and_set_shell() path search set default_shell = %s\n"
-msgstr "find_and_set_shell() ustawia ¶cie¿kê wyszukiwania default_shell = %s\n"
+msgstr "find_and_set_shell() ustawia ścieżkę wyszukiwania default_shell = %s\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr "%s jest zawieszony na 30 sekund..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
-msgstr "zakoñczono sleep(30). Kontynuacja.\n"
+msgstr "zakończono sleep(30). Kontynuacja.\n"
+
+#: main.c:1534
+msgid "internal error: multiple --jobserver-fds options"
+msgstr "błąd wewnętrzny: wiele opcji --jobserver-fds"
+
+#: main.c:1544
+#, c-format
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
+msgstr ""
+"błąd wewnętrzny: nie udało się otworzyć semafora serwera zadań '%s': (Błąd "
+"%ld: %s)"
+
+#: main.c:1547
+#, c-format
+msgid "Jobserver client (semaphore %s)\n"
+msgstr "Klient serwera zadań (semafor %s)\n"
+
+#: main.c:1551
+#, c-format
+msgid "internal error: invalid --jobserver-fds string '%s'"
+msgstr "błąd wewnętrzny: błędny łańcuch --jobserver-fds '%s'"
+
+#: main.c:1554
+#, c-format
+msgid "Jobserver client (fds %d,%d)\n"
+msgstr "Klient serwera zadań (fds %d,%d)\n"
-#: main.c:1501
+#: main.c:1567
+msgid "warning: -jN forced in submake: disabling jobserver mode."
+msgstr "uwaga: -jN wymuszone w podzadaniu: wyłączanie trybu serwera zadań."
+
+#: main.c:1583
+msgid "dup jobserver"
+msgstr "duplikacja serwera zadań"
+
+#: main.c:1586
+msgid ""
+"warning: jobserver unavailable: using -j1. Add '+' to parent make rule."
+msgstr ""
+"uwaga: serwer zadań niedostępny: użycie -j1. Należy dodać `+' do nadrzędnej "
+"reguły make."
+
+#: main.c:1752
msgid "Makefile from standard input specified twice."
-msgstr "Makefile ze standardowego wej¶cia podano dwukrotnie."
+msgstr "Makefile ze standardowego wejścia podano dwukrotnie."
-#: main.c:1539 vmsjobs.c:500
+#: main.c:1790 vmsjobs.c:496
msgid "fopen (temporary file)"
msgstr "fopen (plik tymczasowy)"
-#: main.c:1545
+#: main.c:1796
msgid "fwrite (temporary file)"
msgstr "fwrite (plik tymczasowy)"
-#: main.c:1703
+#: main.c:1984
msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "Równoleg³e zadania (-j) nie s± obs³ugiwane na tej platformie"
+msgstr "Równoległe zadania (-j) nie są obsługiwane na tej platformie"
-#: main.c:1704
+#: main.c:1985
msgid "Resetting to single job (-j1) mode."
-msgstr "Prze³±czanie w tryb jednozadaniowy (-j1)."
-
-#: main.c:1719
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "b³±d wewnêtrzny: wiele opcji --jobserver-fds"
+msgstr "Przełączanie w tryb jednozadaniowy (-j1)."
-#: main.c:1727
+#: main.c:2006
#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
-msgstr "b³±d wewnêtrzny: b³êdny ³añcuch --jobserver-fds `%s'"
+msgid "Jobserver slots limited to %d\n"
+msgstr "Pojemność serwera zadań ograniczona do %d\n"
-#: main.c:1730
+#: main.c:2012
#, c-format
-msgid "Jobserver client (fds %d,%d)\n"
-msgstr "Klient serwera zadañ (fds %d,%d)\n"
-
-#: main.c:1740
-msgid "warning: -jN forced in submake: disabling jobserver mode."
-msgstr "uwaga: -jN wymuszone w podzadaniu: wy³±czanie trybu serwera zadañ."
+msgid "creating jobserver semaphore: (Error %ld: %s)"
+msgstr "tworzenie semafora serwera zadań: (Błąd %ld: %s)"
-#: main.c:1750
-msgid "dup jobserver"
-msgstr "duplikacja serwera zadañ"
-
-#: main.c:1753
-msgid ""
-"warning: jobserver unavailable: using -j1. Add `+' to parent make rule."
-msgstr ""
-"uwaga: serwer zadañ niedostêpny: u¿ywanie -j1. Nale¿y dodaæ `+' do "
-"nadrzêdnej regu³y make."
-
-#: main.c:1777
+#: main.c:2019
msgid "creating jobs pipe"
-msgstr "tworzenie potoku zadañ"
+msgstr "tworzenie potoku zadań"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
-msgstr "inicjowanie potoku serwera zadañ"
+msgstr "inicjowanie potoku serwera zadań"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
-msgstr "Dowi±zania symboliczne nie s± obs³ugiwane: wy³±czono -L."
+msgstr "Dowiązania symboliczne nie są obsługiwane: wyłączono -L."
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
-msgstr "Uaktualnianie plików makefile....\n"
+msgstr "Uaktualnianie plików makefile....\n"
-#: main.c:1917
+#: main.c:2174
#, c-format
-msgid "Makefile `%s' might loop; not remaking it.\n"
-msgstr "Makefile `%s' mo¿e siê zapêtliæ; nie przetwarzam go.\n"
+msgid "Makefile '%s' might loop; not remaking it.\n"
+msgstr "Plik makefile '%s' może się zapętlić; bez ponownego przetwarzania.\n"
-#: main.c:1996
+#: main.c:2253
#, c-format
-msgid "Failed to remake makefile `%s'."
-msgstr "Nie uda³o siê zrobiæ makefile `%s'."
+msgid "Failed to remake makefile '%s'."
+msgstr "Nie udało się ponownie przetworzyć pliku makefile '%s'."
-#: main.c:2013
+#: main.c:2270
#, c-format
-msgid "Included makefile `%s' was not found."
-msgstr "Nie znaleziono w³±czanych makefile `%s'."
+msgid "Included makefile '%s' was not found."
+msgstr "Nie znaleziono włączanego pliku makefile '%s'."
-#: main.c:2018
+#: main.c:2275
#, c-format
-msgid "Makefile `%s' was not found"
-msgstr "Nie znaleziono makefile `%s'"
+msgid "Makefile '%s' was not found"
+msgstr "Nie znaleziono pliku makefile '%s'"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
-msgstr "Niemo¿liwy powrót do katalogu startowego."
+msgstr "Niemożliwy powrót do katalogu startowego."
-#: main.c:2102
+#: main.c:2354
#, c-format
msgid "Re-executing[%u]:"
msgstr "Ponowne uruchamianie[%u]:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr "unlink (plik tymczasowy): "
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
-msgstr ".DEFAULT_GOAL zawiera wiêcej ni¿ jeden cel"
+msgstr ".DEFAULT_GOAL zawiera więcej niż jeden cel"
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
-msgstr "Nie podano obiektów i nie znaleziono makefile"
+msgstr "Nie podano obiektów i nie znaleziono makefile"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
-msgstr "Brak obiektów"
+msgstr "Brak obiektów"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
-msgstr "Uaktualnianie obiektów docelowych....\n"
+msgstr "Uaktualnianie obiektów docelowych....\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
-msgstr "uwaga: Wykryto przestawienie zegara. Budowanie mo¿e byæ niekompletne."
+msgstr "uwaga: Wykryto przestawienie zegara. Budowanie może być niekompletne."
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
-msgstr "Sk³adnia: %s [opcje] [obiekt] ...\n"
+msgstr "Składnia: %s [opcje] [obiekt] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
"This program built for %s\n"
msgstr ""
"\n"
-"Ten program zosta³ zbudowany dla %s\n"
+"Ten program został zbudowany dla %s\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
"This program built for %s (%s)\n"
msgstr ""
"\n"
-"Ten program zosta³ zbudowany dla %s (%s)\n"
+"Ten program został zbudowany dla %s (%s)\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
-msgstr "B³êdy proszê zg³aszaæ na adres <bug-make@gnu.org>\n"
+msgstr "Błędy proszę zgłaszać na adres <bug-make@gnu.org>\n"
-#: main.c:2562
+#: main.c:2810
#, c-format
-msgid "the `%s%s' option requires a non-empty string argument"
-msgstr "opcja `%s%s' wymaga niepustego ³añcucha jako argumentu"
+msgid "the '%s%s' option requires a non-empty string argument"
+msgstr "opcja '%s%s' wymaga niepustego łańcucha jako argumentu"
-#: main.c:2617
+#: main.c:2864
#, c-format
-msgid "the `-%c' option requires a positive integral argument"
-msgstr "opcja `-%c' wymaga argumentu ca³kowitego dodatniego"
+msgid "the '-%c' option requires a positive integer argument"
+msgstr "opcja '-%c' wymaga argumentu będącego liczbą całkowitą dodatnią"
-#: main.c:3054
+#: main.c:3253
#, c-format
msgid "%sBuilt for %s\n"
-msgstr "%sTen program zosta³ zbudowany dla systemu %s\n"
+msgstr "%sTen program został zbudowany dla systemu %s\n"
-#: main.c:3056
+#: main.c:3255
#, c-format
msgid "%sBuilt for %s (%s)\n"
-msgstr "%sTen program zosta³ zbudowany dla systemu %s (%s)\n"
+msgstr "%sTen program został zbudowany dla systemu %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."
@@ -1148,730 +1331,766 @@ msgid ""
msgstr ""
"%sLicencja GPLv3+: GNU GPL wersja 3 lub nowsza <http://gnu.org/licenses/gpl."
"html>\n"
-"%sTo oprogramowanie jest wolnodostêpne: mo¿na je swobodnie zmieniaæ i "
-"rozpowszechniaæ.\n"
-"%sNie ma ¯ADNEJ GWARANCJI w zakresie dopuszczalnym przez prawo.\n"
+"%sTo oprogramowanie jest wolnodostępne: można je swobodnie zmieniać i "
+"rozpowszechniać.\n"
+"%sNie ma ŻADNEJ GWARANCJI w zakresie dopuszczalnym przez prawo.\n"
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
"# Make data base, printed on %s"
msgstr ""
"\n"
-"# Baza danych Make, wy¶wietlana na %s"
+"# Baza danych Make, wyświetlana na %s"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
"# Finished Make data base on %s\n"
msgstr ""
"\n"
-"# Zakoñczono tworzenie bazy danych Make na %s\n"
+"# Zakończono tworzenie bazy danych Make na %s\n"
+
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "Nieznany błąd %d"
+
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "brak pamięci wirtualnej"
+
+#: misc.c:522
+#, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s: użytkownik %lu (rzeczywisty %lu), grupa %lu (rzeczywista %lu)\n"
+
+#: misc.c:543
+msgid "Initialized access"
+msgstr "Zainicjalizowany dostęp"
+
+#: misc.c:622
+msgid "User access"
+msgstr "Dostęp użytkownika"
+
+#: misc.c:670
+msgid "Make access"
+msgstr "Dostęp make"
+
+#: misc.c:704
+msgid "Child access"
+msgstr "Dostęp potomka"
-#: main.c:3237
+#: output.c:128
#, c-format
msgid "%s: Entering an unknown directory\n"
-msgstr "%s: Wej¶cie do nieznanego katalogu\n"
+msgstr "%s: Wejście do nieznanego katalogu\n"
-#: main.c:3239
+#: output.c:130
#, c-format
msgid "%s: Leaving an unknown directory\n"
msgstr "%s: Opuszczenie nieznanego katalogu\n"
-#: main.c:3242
+#: output.c:133
#, c-format
-msgid "%s: Entering directory `%s'\n"
-msgstr "%s: Wej¶cie do katalogu `%s'\n"
+msgid "%s: Entering directory '%s'\n"
+msgstr "%s: Wejście do katalogu '%s'\n"
-#: main.c:3245
+#: output.c:135
#, c-format
-msgid "%s: Leaving directory `%s'\n"
-msgstr "%s: Opuszczenie katalogu `%s'\n"
+msgid "%s: Leaving directory '%s'\n"
+msgstr "%s: Opuszczenie katalogu '%s'\n"
-#: main.c:3250
+#: output.c:139
#, c-format
msgid "%s[%u]: Entering an unknown directory\n"
-msgstr "%s[%u]: Wej¶cie do nieznanego katalogu\n"
+msgstr "%s[%u]: Wejście do nieznanego katalogu\n"
-#: main.c:3253
+#: output.c:141
#, c-format
msgid "%s[%u]: Leaving an unknown directory\n"
msgstr "%s[%u]: Opuszczenie nieznanego katalogu\n"
-#: main.c:3257
+#: output.c:144
+#, c-format
+msgid "%s[%u]: Entering directory '%s'\n"
+msgstr "%s[%u]: Wejście do katalogu '%s'\n"
+
+#: output.c:146
#, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
-msgstr "%s[%u]: Wej¶cie do katalogu `%s'\n"
+msgid "%s[%u]: Leaving directory '%s'\n"
+msgstr "%s[%u]: Opuszczenie katalogu '%s'\n"
-#: main.c:3260
+#: output.c:515
#, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
-msgstr "%s[%u]: Opuszczenie katalogu `%s'\n"
+msgid "write error: %s"
+msgstr "błąd zapisu: %s"
+
+#: output.c:517
+msgid "write error"
+msgstr "błąd zapisu"
-#: misc.c:316
+#: output.c:740
msgid ". Stop.\n"
msgstr ". Stop.\n"
-#: misc.c:337
-#, c-format
-msgid "Unknown error %d"
-msgstr "Nieznany b³±d %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 "brak pamiêci wirtualnej"
-
-#: misc.c:708
-#, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s: u¿ytkownik %lu (rzeczywisty %lu), grupa %lu (rzeczywista %lu)\n"
-
-#: misc.c:729
-msgid "Initialized access"
-msgstr "Zainicjalizowany dostêp"
-
-#: misc.c:808
-msgid "User access"
-msgstr "Dostêp u¿ytkownika"
-
-#: misc.c:856
-msgid "Make access"
-msgstr "Dostêp make"
-
-#: misc.c:890
-msgid "Child access"
-msgstr "Dostêp potomka"
-
-#: misc.c:954
-#, c-format
-msgid "write error: %s"
-msgstr "b³±d zapisu: %s"
-
-#: misc.c:956
-msgid "write error"
-msgstr "b³±d zapisu"
-
-#: read.c:179
+#: read.c:180
msgid "Reading makefiles...\n"
msgstr "Czytanie makefile...\n"
#: read.c:333
#, c-format
-msgid "Reading makefile `%s'"
-msgstr "Czytanie makefile `%s'"
+msgid "Reading makefile '%s'"
+msgstr "Czytanie pliku makefile '%s'"
#: read.c:335
#, c-format
msgid " (no default goal)"
-msgstr " (brak celu domy¶lnego)"
+msgstr " (brak celu domyślnego)"
#: read.c:337
#, c-format
msgid " (search path)"
-msgstr " (przeszukiwana ¶cie¿ka)"
+msgstr " (przeszukiwana ścieżka)"
#: read.c:339
#, c-format
msgid " (don't care)"
-msgstr " (niewa¿ne)"
+msgstr " (nieważne)"
#: read.c:341
#, c-format
msgid " (no ~ expansion)"
msgstr " (brak rozszerzenia ~)"
-#: read.c:759
+#: read.c:652
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile '%s'\n"
+msgstr "Pominięto BOM UTF-8 w pliku makefile '%s'\n"
+
+#: read.c:655
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile buffer\n"
+msgstr "Pominięto BOM UTF-8 w buforze pliku makefile\n"
+
+#: read.c:786
msgid "invalid syntax in conditional"
-msgstr "b³êdna sk³adnia wyra¿enia warunkowego"
+msgstr "błędna składnia wyrażenia warunkowego"
-#: read.c:891
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr "%s: nie udało się załadować"
+
+#: read.c:987
msgid "recipe commences before first target"
-msgstr "polecenia zaczynaj± siê przed pierwszym obiektem"
+msgstr "polecenia zaczynajÄ… siÄ™ przed pierwszym obiektem"
-#: read.c:940
+#: read.c:1036
msgid "missing rule before recipe"
-msgstr "brakuje regu³y przed poleceniami"
+msgstr "brakuje reguły przed poleceniami"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
-msgstr "brakuj±cy separator%s"
+msgstr "brakujÄ…cy separator%s"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
-msgstr " (czy¿by mia³ byæ TAB zamiast 8 spacji?)"
+msgstr " (czyżby miał być TAB zamiast 8 spacji?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
-msgstr "brakuj±cy wzorzec obiektu"
+msgstr "brakujÄ…cy wzorzec obiektu"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
msgstr "wielokrotne wzorce obiektu"
-#: read.c:1169
+#: read.c:1269
#, c-format
-msgid "target pattern contains no `%%'"
-msgstr "wzorzec obiektu nie zawiera `%%'"
+msgid "target pattern contains no '%%'"
+msgstr "wzorzec obiektu nie zawiera '%%'"
-#: read.c:1293
-msgid "missing `endif'"
-msgstr "brakuj±cy `endif'"
+#: read.c:1391
+msgid "missing 'endif'"
+msgstr "brakujÄ…cy 'endif'"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "pusta nazwa zmiennej"
-#: read.c:1367
-msgid "extraneous text after `define' directive"
-msgstr "nadmiarowy tekst po dyrektywie `define'"
+#: read.c:1465
+msgid "extraneous text after 'define' directive"
+msgstr "nadmiarowy tekst po dyrektywie 'define'"
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
-msgstr "brakuj±cy `endef', niezakoñczone `define'"
+#: read.c:1490
+msgid "missing 'endef', unterminated 'define'"
+msgstr "brakujący 'endef', niezakończone 'define'"
-#: read.c:1420
-msgid "extraneous text after `endef' directive"
-msgstr "nadmiarowy tekst po dyrektywie `endef'"
+#: read.c:1518
+msgid "extraneous text after 'endef' directive"
+msgstr "nadmiarowy tekst po dyrektywie 'endef'"
-#: read.c:1490
+#: read.c:1589
#, c-format
-msgid "Extraneous text after `%s' directive"
-msgstr "Niezwi±zany tekst po dyrektywie `%s'"
+msgid "extraneous text after '%s' directive"
+msgstr "niezwiÄ…zany tekst po dyrektywie '%s'"
-#: read.c:1499 read.c:1513
+#: read.c:1598 read.c:1612
#, c-format
-msgid "extraneous `%s'"
-msgstr "niezwi±zany `%s'"
+msgid "extraneous '%s'"
+msgstr "nadmiarowy '%s'"
-#: read.c:1518
-msgid "only one `else' per conditional"
-msgstr "tylko jedno `else' w wyra¿eniu warunkowym"
+#: read.c:1617
+msgid "only one 'else' per conditional"
+msgstr "tylko jedno 'else' w wyrażeniu warunkowym"
-#: read.c:1797
+#: read.c:1892
msgid "Malformed target-specific variable definition"
-msgstr "¬le sformu³owana definicja zmiennej dla celu"
+msgstr "Źle sformułowana definicja zmiennej dla celu"
-#: read.c:1855
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
-msgstr "wymagania nie mog± byæ definiowane w opisach poleceñ"
+msgstr "wymagania nie mogą być definiowane w opisach poleceń"
-#: read.c:1908
+#: read.c:2009
msgid "mixed implicit and static pattern rules"
-msgstr "pomieszane standardowe i statyczne regu³y wzorców"
+msgstr "pomieszane standardowe i statyczne reguły wzorców"
-#: read.c:1931 read.c:2112
+#: read.c:2032 read.c:2220
msgid "mixed implicit and normal rules"
-msgstr "pomieszane standardowe i normalne regu³y"
+msgstr "pomieszane standardowe i normalne reguły"
-#: read.c:1976
+#: read.c:2084
#, c-format
-msgid "target `%s' doesn't match the target pattern"
-msgstr "obiekt `%s' nie pasuje do wzorca obiektu"
+msgid "target '%s' doesn't match the target pattern"
+msgstr "obiekt '%s' nie pasuje do wzorca obiektu"
-#: read.c:1991 read.c:2036
+#: read.c:2099 read.c:2144
#, c-format
-msgid "target file `%s' has both : and :: entries"
-msgstr "plik obiektowy `%s' ma pozycje i : i ::"
+msgid "target file '%s' has both : and :: entries"
+msgstr "plik obiektu '%s' ma pozycje i : i ::"
-#: read.c:1997
+#: read.c:2105
#, c-format
-msgid "target `%s' given more than once in the same rule."
-msgstr "obiekt `%s' wyspecyfikowany wielokrotnie w tej samej regule"
+msgid "target '%s' given more than once in the same rule"
+msgstr "obiekt '%s' podany wielokrotnie w tej samej regule"
-#: read.c:2006
+#: read.c:2114
#, c-format
-msgid "warning: overriding recipe for target `%s'"
-msgstr "uwaga: polecenia zakrywaj±ce dla obiektu `%s'"
+msgid "warning: overriding recipe for target '%s'"
+msgstr "uwaga: polecenia zakrywajÄ…ce dla obiektu '%s'"
-#: read.c:2009
+#: read.c:2117
#, c-format
-msgid "warning: ignoring old recipe for target `%s'"
-msgstr "uwaga: ignorujê stare polecenia dla obiektu `%s'"
+msgid "warning: ignoring old recipe for target '%s'"
+msgstr "uwaga: ignorujÄ™ stare polecenia dla obiektu '%s'"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
-msgstr "uwaga: napotka³em na znak NUL; reszta linii zignorowana"
+msgstr "uwaga: napotkałem na znak NUL; reszta linii zignorowana"
-#: remake.c:234
+#: remake.c:232
#, c-format
-msgid "Nothing to be done for `%s'."
-msgstr "Nie ma nic do zrobienia w `%s'."
+msgid "Nothing to be done for '%s'."
+msgstr "Nie ma nic do zrobienia w '%s'."
-#: remake.c:235
+#: remake.c:233
#, c-format
-msgid "`%s' is up to date."
-msgstr "`%s' jest aktualne."
+msgid "'%s' is up to date."
+msgstr "'%s' jest aktualne."
-#: remake.c:306
+#: remake.c:305
#, c-format
-msgid "Pruning file `%s'.\n"
-msgstr "Czyszczenie pliku `%s'.\n"
+msgid "Pruning file '%s'.\n"
+msgstr "Czyszczenie pliku '%s'.\n"
-#: remake.c:359
+#: remake.c:377
#, c-format
-msgid "%sNo rule to make target `%s'%s"
-msgstr "%sBrak regu³ do wykonania obiektu `%s'%s"
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sBrak reguł do wykonania obiektu '%s'%s"
-#: remake.c:361
+#: remake.c:379
#, c-format
-msgid "%sNo rule to make target `%s', needed by `%s'%s"
-msgstr "%sBrak regu³ do zrobienia obiektu `%s', wymaganego przez `%s'%s"
+msgid "%sNo rule to make target '%s', needed by '%s'%s"
+msgstr "%sBrak reguł do zrobienia obiektu '%s', wymaganego przez '%s'%s"
#: remake.c:413
#, c-format
-msgid "Considering target file `%s'.\n"
-msgstr "Przetwarzanie pliku obiektowego `%s'.\n"
+msgid "Considering target file '%s'.\n"
+msgstr "Przetwarzanie pliku obiektowego '%s'.\n"
#: remake.c:420
#, c-format
-msgid "Recently tried and failed to update file `%s'.\n"
-msgstr "Ju¿ bez powodzenia próbowa³em uaktualniæ plik `%s'.\n"
+msgid "Recently tried and failed to update file '%s'.\n"
+msgstr "Już bez powodzenia próbowałem uaktualnić plik '%s'.\n"
#: remake.c:432
#, c-format
-msgid "File `%s' was considered already.\n"
-msgstr "Plik `%s' by³ ju¿ przetwarzany.\n"
+msgid "File '%s' was considered already.\n"
+msgstr "Plik '%s' był już przetwarzany.\n"
#: remake.c:442
#, c-format
-msgid "Still updating file `%s'.\n"
-msgstr "Wci±¿ uaktualniam plik `%s'.\n"
+msgid "Still updating file '%s'.\n"
+msgstr "Wciąż uaktualniam plik '%s'.\n"
#: remake.c:445
#, c-format
-msgid "Finished updating file `%s'.\n"
-msgstr "Skoñczy³em uaktualniaæ plik `%s'.\n"
+msgid "Finished updating file '%s'.\n"
+msgstr "Skończyłem uaktualniać plik '%s'.\n"
#: remake.c:474
#, c-format
-msgid "File `%s' does not exist.\n"
-msgstr "Plik `%s' nie istnieje.\n"
+msgid "File '%s' does not exist.\n"
+msgstr "Plik '%s' nie istnieje.\n"
#: remake.c:481
#, 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 ""
-"*** Uwaga: plik .LOW_RESOLUTION_TIME `%s' ma du¿± rozdzielczo¶æ znacznika "
+"*** Uwaga: plik .LOW_RESOLUTION_TIME '%s' ma dużą rozdzielczość znacznika "
"czasu"
-#: remake.c:494 remake.c:1016
+#: remake.c:494 remake.c:1019
#, c-format
-msgid "Found an implicit rule for `%s'.\n"
-msgstr "Znaleziono standardow± regu³ê dla `%s'.\n"
+msgid "Found an implicit rule for '%s'.\n"
+msgstr "Znaleziono standardową regułę dla '%s'.\n"
-#: remake.c:496 remake.c:1018
+#: remake.c:496 remake.c:1021
#, c-format
-msgid "No implicit rule found for `%s'.\n"
-msgstr "Brak standardowych regu³ dla `%s'.\n"
+msgid "No implicit rule found for '%s'.\n"
+msgstr "Brak standardowych reguł dla '%s'.\n"
#: remake.c:502
#, c-format
-msgid "Using default recipe for `%s'.\n"
-msgstr "Stosowanie standardowych poleceñ dla `%s'.\n"
+msgid "Using default recipe for '%s'.\n"
+msgstr "Stosowanie standardowych poleceń dla '%s'.\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
-msgstr "Okrê¿na dyrektywa %s <- %s porzucona."
+msgstr "Okrężna dyrektywa %s <- %s porzucona."
-#: remake.c:651
+#: remake.c:655
#, c-format
-msgid "Finished prerequisites of target file `%s'.\n"
-msgstr "Zakoñczono zale¿no¶ci pliku obiektu `%s'.\n"
+msgid "Finished prerequisites of target file '%s'.\n"
+msgstr "Zakończono zależności pliku obiektu '%s'.\n"
-#: remake.c:657
+#: remake.c:661
#, c-format
-msgid "The prerequisites of `%s' are being made.\n"
-msgstr "Zale¿no¶ci `%s' s± wykonywane.\n"
+msgid "The prerequisites of '%s' are being made.\n"
+msgstr "Zależności '%s' są wykonywane.\n"
-#: remake.c:670
+#: remake.c:674
#, c-format
-msgid "Giving up on target file `%s'.\n"
-msgstr "Zaniechany plik obiektowy `%s'.\n"
+msgid "Giving up on target file '%s'.\n"
+msgstr "Zaniechany plik obiektowy '%s'.\n"
-#: remake.c:675
+#: remake.c:679
#, c-format
-msgid "Target `%s' not remade because of errors."
-msgstr "Obiekt `%s' nie zosta³ wykonany z powodu b³êdów."
+msgid "Target '%s' not remade because of errors."
+msgstr "Obiekt '%s' nie został ponownie wykonany z powodu błędów."
-#: remake.c:727
+#: remake.c:731
#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
-msgstr "Zale¿no¶æ `%s' dotyczy tylko kolejno¶ci dla obiektu `%s'.\n"
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
+msgstr "Zależność '%s' dotyczy tylko kolejności dla obiektu '%s'.\n"
-#: remake.c:732
+#: remake.c:736
#, c-format
-msgid "Prerequisite `%s' of target `%s' does not exist.\n"
-msgstr "Zale¿no¶æ `%s' obiektu `%s' nie istnieje.\n"
+msgid "Prerequisite '%s' of target '%s' does not exist.\n"
+msgstr "Zależność '%s' obiektu '%s' nie istnieje.\n"
-#: remake.c:737
+#: remake.c:741
#, c-format
-msgid "Prerequisite `%s' is newer than target `%s'.\n"
-msgstr "Zale¿no¶æ `%s' jest nowsza od obiektu `%s'.\n"
+msgid "Prerequisite '%s' is newer than target '%s'.\n"
+msgstr "Zależność '%s' jest nowsza od obiektu '%s'.\n"
-#: remake.c:740
+#: remake.c:744
#, c-format
-msgid "Prerequisite `%s' is older than target `%s'.\n"
-msgstr "Zale¿no¶æ `%s' jest starsza od obiektu `%s'.\n"
+msgid "Prerequisite '%s' is older than target '%s'.\n"
+msgstr "Zależność '%s' jest starsza od obiektu '%s'.\n"
-#: remake.c:758
+#: remake.c:762
#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
-msgstr "Obiekt `%s' jest typu double-colon i nie ma ¿adnych zale¿no¶ci.\n"
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
+msgstr ""
+"Obiekt '%s' jest z podwójnym dwukropkiem i nie ma żadnych zależności.\n"
-#: remake.c:765
+#: remake.c:769
#, c-format
-msgid "No recipe for `%s' and no prerequisites actually changed.\n"
-msgstr "Brak poleceñ dla `%s' i brak zmienionych zale¿no¶ci.\n"
+msgid "No recipe for '%s' and no prerequisites actually changed.\n"
+msgstr "Brak poleceń dla '%s' i brak zmienionych zależności.\n"
-#: remake.c:770
+#: remake.c:774
#, c-format
-msgid "Making `%s' due to always-make flag.\n"
-msgstr "Tworzenie `%s' z powodu flagi always-make.\n"
+msgid "Making '%s' due to always-make flag.\n"
+msgstr "Tworzenie '%s' z powodu flagi always-make.\n"
-#: remake.c:778
+#: remake.c:782
#, c-format
-msgid "No need to remake target `%s'"
-msgstr "Nie ma potrzeby przerabiaæ obiektu `%s'"
+msgid "No need to remake target '%s'"
+msgstr "Nie ma potrzeby ponownego robienia obiektu '%s'"
-#: remake.c:780
+#: remake.c:784
#, c-format
-msgid "; using VPATH name `%s'"
-msgstr "; u¿yto nazwy VPATH `%s'"
+msgid "; using VPATH name '%s'"
+msgstr "; użyto nazwy VPATH '%s'"
-#: remake.c:800
+#: remake.c:804
#, c-format
-msgid "Must remake target `%s'.\n"
-msgstr "Konieczne przerobienie obiektu `%s'.\n"
+msgid "Must remake target '%s'.\n"
+msgstr "Konieczne ponowne wykonanie obiektu '%s'.\n"
-#: remake.c:806
+#: remake.c:810
#, c-format
-msgid " Ignoring VPATH name `%s'.\n"
-msgstr " Zignorowano nazwê VPATH `%s'.\n"
+msgid " Ignoring VPATH name '%s'.\n"
+msgstr " Zignorowano nazwÄ™ VPATH '%s'.\n"
-#: remake.c:815
+#: remake.c:819
#, c-format
-msgid "Recipe of `%s' is being run.\n"
-msgstr "Uruchomiono polecenia dla `%s'.\n"
+msgid "Recipe of '%s' is being run.\n"
+msgstr "Uruchomiono polecenia dla '%s'.\n"
-#: remake.c:822
+#: remake.c:826
#, c-format
-msgid "Failed to remake target file `%s'.\n"
-msgstr "Przerabianie pliku obiektowego `%s' nie powiod³o siê.\n"
+msgid "Failed to remake target file '%s'.\n"
+msgstr "Ponowne tworzenie pliku obiektu '%s' nie powiodło się.\n"
-#: remake.c:825
+#: remake.c:829
#, c-format
-msgid "Successfully remade target file `%s'.\n"
-msgstr "Przerabianie pliku obiektowego `%s' powiod³o siê.\n"
+msgid "Successfully remade target file '%s'.\n"
+msgstr "Ponowne tworzenie pliku obiektu '%s' powiodło się.\n"
-#: remake.c:828
+#: remake.c:832
#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
-msgstr "Plik obiektowy `%s' powinien byæ przerobiony z opcj± -q.\n"
+msgid "Target file '%s' needs to be remade under -q.\n"
+msgstr "Plik obiektu '%s' powinien być ponownie tworzony z opcją -q.\n"
-#: remake.c:1024
+#: remake.c:1027
#, c-format
-msgid "Using default commands for `%s'.\n"
-msgstr "Stosowanie standardowych poleceñ dla `%s'.\n"
+msgid "Using default commands for '%s'.\n"
+msgstr "Stosowanie standardowych poleceń dla '%s'.\n"
-#: remake.c:1357
+#: remake.c:1372
#, c-format
-msgid "Warning: File `%s' has modification time in the future"
-msgstr "Uwaga: Plik `%s' ma czas modyfikacji z przysz³o¶ci"
+msgid "Warning: File '%s' has modification time in the future"
+msgstr "Uwaga: Plik '%s' ma czas modyfikacji z przyszłości"
-#: remake.c:1370
+#: remake.c:1385
#, c-format
-msgid "Warning: File `%s' has modification time %s s in the future"
-msgstr "Uwaga: Plik `%s' ma czas modyfikacji %s s w przysz³o¶ci"
+msgid "Warning: File '%s' has modification time %s s in the future"
+msgstr "Uwaga: Plik '%s' ma czas modyfikacji %s s w przyszłości"
-#: remake.c:1569
+#: remake.c:1583
#, c-format
-msgid ".LIBPATTERNS element `%s' is not a pattern"
-msgstr "element .LIBPATTERNS `%s' nie jest wzorcem"
+msgid ".LIBPATTERNS element '%s' is not a pattern"
+msgstr "Element .LIBPATTERNS '%s' nie jest wzorcem"
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
msgstr "Zasady nie eksportowane: %s\n"
-#: rule.c:499
+#: rule.c:496
msgid ""
"\n"
"# Implicit Rules"
msgstr ""
"\n"
-"# Regu³y stadardowe"
+"# Reguły stadardowe"
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
msgstr ""
"\n"
-"# Brak standardowych regu³."
+"# Brak standardowych reguł."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
"# %u implicit rules, %u"
msgstr ""
"\n"
-"# %u standardowych regu³, %u"
+"# %u standardowych reguł, %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr " terminal."
-#: rule.c:534
+#: rule.c:531
#, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
-msgstr "B£¡D: z³e num_pattern_rules! %u != %u"
+msgstr "BÅÄ„D: zÅ‚e num_pattern_rules! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
-msgstr "nieznany sygna³"
+msgstr "nieznany sygnał"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
-msgstr "Roz³±czenie"
+msgstr "Rozłączenie"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "Przerwanie"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
-msgstr "Wyj¶cie"
+msgstr "Wyjście"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
-msgstr "B³êdna instrukcja"
+msgstr "Błędna instrukcja"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
-msgstr "Pu³apka ¶ledzenia"
+msgstr "Pułapka śledzenia"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "Przerwany"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
-msgstr "Pu³apka IOT"
+msgstr "Pułapka IOT"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
-msgstr "Pu³apka EMT"
+msgstr "Pułapka EMT"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
-msgstr "Wyj±tek zmiennoprzecinkowy"
+msgstr "WyjÄ…tek zmiennoprzecinkowy"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "Zabity"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
-msgstr "B³±d szyny"
+msgstr "BÅ‚Ä…d szyny"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
-msgstr "Naruszenie ochrony pamiêci"
+msgstr "Naruszenie ochrony pamięci"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
-msgstr "B³êdne wywo³anie systemowe"
+msgstr "Błędne wywołanie systemowe"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr "Przerwany potok"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "Budzik"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
-msgstr "Zakoñczony"
+msgstr "Zakończony"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
-msgstr "Sygna³ u¿ytkownika 1"
+msgstr "Sygnał użytkownika 1"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
-msgstr "Sygna³ u¿ytkownika 2"
+msgstr "Sygnał użytkownika 2"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
-msgstr "Potomek powróci³"
+msgstr "Potomek powrócił"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
msgstr "Przerwa w zasilaniu"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "Zatrzymany"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
-msgstr "Zatrzymany (wej¶cie z tty)"
+msgstr "Zatrzymany (wejście z tty)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
-msgstr "Zatrzymany (wyj¶cie na tty)"
+msgstr "Zatrzymany (wyjście na tty)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
-msgstr "Zatrzymany (sygna³)"
+msgstr "Zatrzymany (sygnał)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
msgstr "Przekroczony czas CPU"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
-msgstr "Przekroczony limit wielko¶ci pliku"
+msgstr "Przekroczony limit wielkości pliku"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
msgstr "Wyczerpany stoper wirtualny"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
-msgstr "Wyczerpany stoper profiluj±cy"
+msgstr "Wyczerpany stoper profilujÄ…cy"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
msgstr "Zmienione okno"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "Kontynuowany"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
-msgstr "Nag³a sytuacja I/O"
+msgstr "Nagła sytuacja I/O"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
-msgstr "I/O mo¿liwe"
+msgstr "I/O możliwe"
-#: 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 "Zaginione zasoby"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
-msgstr "Sygna³ niebezpieczeñstwa"
+msgstr "Sygnał niebezpieczeństwa"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
-msgstr "¯±danie informacji"
+msgstr "Żądanie informacji"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
-msgstr "Koprocesor obliczeñ zmiennoprzecinkowych niedostêpny"
+msgstr "Koprocesor obliczeń zmiennoprzecinkowych niedostępny"
-#: 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 ""
"\n"
-"%s liczba ³añcuchów w strcache: %d / wyszukiwañ = %lu / trafieñ = %lu\n"
+"%s Brak buforów strcache\n"
-#: strcache.c:237
+#: strcache.c:266
#, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
-msgstr "%s liczba buforów strcache: %d (* %d B/bufor = %d B)\n"
+msgid ""
+"\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
+msgstr ""
+"\n"
+"%s bufory strcache: %lu (%lu) / łańcuchów = %lu / miejsce = %lu B / śr = %lu "
+"B\n"
-#: 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 ""
-"%s rozmiar strcache: ca³kowity = %d (%d) / maks = %d / min = %d / ¶r = %d\n"
+"%s bieżący buf: rozmiar = %hu B / użyty = %hu B / liczba = %hu / śr = %hu B\n"
+
+#: strcache.c:280
+#, c-format
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
+msgstr "%s pozostałe użyte: razem = %lu B / liczba = %lu / śr = %lu B\n"
-#: strcache.c:241
+#: strcache.c:283
#, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
msgstr ""
-"%s wolne strcache: ca³kowite = %d (%d) / maks = %d / min = %d / ¶r = %d\n"
+"%s pozostałe wolne: razem = %lu B / maks = %lu B / min = %lu B / śr = %hu B\n"
-#: strcache.c:244
+#: strcache.c:287
+#, c-format
msgid ""
"\n"
-"# strcache hash-table stats:\n"
-"# "
+"%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
msgstr ""
"\n"
-"# statystyki tablic haszuj±cych strcache:\n"
+"%s wydajność strcache: wyszukiwań = %lu / wsp. trafień = %lu%%\n"
+
+#: strcache.c:289
+msgid ""
+"# hash-table stats:\n"
+"# "
+msgstr ""
+"# statystyki tablic haszujÄ…cych:\n"
"# "
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "automatyczna"
+
+#: variable.c:1610
msgid "default"
-msgstr "domy¶lna"
+msgstr "domyślna"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
-msgstr "¶rodowiskowa"
+msgstr "środowiskowa"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr "makefile"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
-msgstr "¶rodowisko pod -e"
+msgstr "środowisko pod -e"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
-msgstr "z linii poleceñ"
-
-#: variable.c:1556
-msgid "`override' directive"
-msgstr "dyrektywa `override'"
+msgstr "z linii poleceń"
-#: variable.c:1559
-msgid "automatic"
-msgstr "automatyczna"
+#: variable.c:1625
+msgid "'override' directive"
+msgstr "dyrektywa 'override'"
-#: variable.c:1570
+#: variable.c:1636
#, c-format
-msgid " (from `%s', line %lu)"
-msgstr " (z `%s', linia %lu)"
+msgid " (from '%s', line %lu)"
+msgstr " (z '%s', linia %lu)"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
-msgstr "# statystyki tablic haszuj±cych ustawionych zmiennych:\n"
+msgstr "# statystyki tablic haszujÄ…cych ustawionych zmiennych:\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1879,151 +2098,151 @@ msgstr ""
"\n"
"# Zmienne\n"
-#: variable.c:1627
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
msgstr ""
"\n"
-"# Warto¶ci zmiennych dla wzorca"
+"# Wartości zmiennych dla wzorca"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
msgstr ""
"\n"
-"# Brak warto¶ci zmiennych dla wzorca."
+"# Brak wartości zmiennych dla wzorca."
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
"# %u pattern-specific variable values"
msgstr ""
"\n"
-"# %u warto¶ci zmiennych dla wzorca"
+"# %u wartości zmiennych dla wzorca"
-#: variable.h:219
+#: variable.h:224
#, c-format
-msgid "warning: undefined variable `%.*s'"
-msgstr "uwaga: niezdefiniowana zmienna `%.*s'"
+msgid "warning: undefined variable '%.*s'"
+msgstr "uwaga: niezdefiniowana zmienna '%.*s'"
-#: vmsfunctions.c:92
+#: vmsfunctions.c:91
#, c-format
msgid "sys$search() failed with %d\n"
-msgstr "sys$search() nie powiod³o siê - %d\n"
+msgstr "sys$search() nie powiodło się - %d\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr "Uwaga: Puste przekierowanie\n"
-#: vmsjobs.c:184
+#: vmsjobs.c:178
#, c-format
-msgid "internal error: `%s' command_state"
-msgstr "b³±d wewnêtrzny: `%s' command_state"
+msgid "internal error: '%s' command_state"
+msgstr "błąd wewnętrzny: command_state '%s'"
-#: vmsjobs.c:289
+#: vmsjobs.c:286
#, c-format
msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
-msgstr "-uwaga, bêdzie trzeba ponownie umo¿liwiæ obs³ugê CTRL-Y z DCL.\n"
+msgstr "-uwaga, będzie trzeba ponownie umożliwić obsługę CTRL-Y z DCL.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr "WBUDOWANE [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr "WBUDOWANE CD %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr "WBUDOWANE RM %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
msgstr "Nieznane polecenie wbudowane '%s'\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
-msgstr "B³±d, puste polecenie\n"
+msgstr "BÅ‚Ä…d, puste polecenie\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
-msgstr "Przekierowane wej¶cie z %s\n"
+msgstr "Przekierowane wejście z %s\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
-msgstr "Przekierowane wyj¶cie diagnostyczne do %s\n"
+msgstr "Przekierowane wyjście diagnostyczne do %s\n"
-#: vmsjobs.c:523
+#: vmsjobs.c:518
#, c-format
msgid "Append output to %s\n"
-msgstr "Do³±czanie wyj¶cia do %s\n"
+msgstr "Dołączanie wyjścia do %s\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
-msgstr "Przekierowane wyj¶cie do %s\n"
+msgstr "Przekierowane wyjście do %s\n"
-#: vmsjobs.c:599
+#: vmsjobs.c:593
#, c-format
msgid "Append %.*s and cleanup\n"
-msgstr "Do³±czanie %.*s i czyszczenie\n"
+msgstr "Dołączanie %.*s i czyszczenie\n"
-#: vmsjobs.c:606
+#: vmsjobs.c:600
#, c-format
msgid "Executing %s instead\n"
msgstr "Zamiast tego wykonywanie %s\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
-msgstr "B³±d podczas uruchamiania, %d\n"
+msgstr "BÅ‚Ä…d podczas uruchamiania, %d\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
msgstr ""
"\n"
-"# ¦cie¿ki przeszukiwania VPATH\n"
+"# Ścieżki przeszukiwania VPATH\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
-msgstr "# Brak ¶cie¿ek przeszukiwania `vpath'"
+#: vpath.c:600
+msgid "# No 'vpath' search paths."
+msgstr "# Brak ścieżek przeszukiwania 'vpath'"
-#: vpath.c:605
+#: vpath.c:602
#, c-format
msgid ""
"\n"
-"# %u `vpath' search paths.\n"
+"# %u 'vpath' search paths.\n"
msgstr ""
"\n"
-"# %u ¶cie¿ek przeszukiwania `vpath'.\n"
+"# %u ścieżek przeszukiwania 'vpath'.\n"
-#: vpath.c:608
+#: vpath.c:605
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
-"# Brak ogólnej (zmienna `VPATH') ¶cie¿ki przeszukiwania."
+"# Brak ogólnej (zmienna 'VPATH') ścieżki przeszukiwania."
-#: vpath.c:614
+#: vpath.c:611
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
-"# Ogólna (zmienna `VPATH') ¶cie¿ka przeszukiwania:\n"
+"# Ogólna (zmienna 'VPATH') ścieżka przeszukiwania:\n"
"# "
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 28ced11..c19c8c5 100644
--- a/po/pt_BR.gmo
+++ b/po/pt_BR.gmo
Binary files differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
index e734c06..95f25c9 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -1,128 +1,135 @@
-# translation of make-3.80.po to portugues
# Mensagem do GNU make em Português (Brasil)
-# Copyright (C) 2000, 2008 Free Software Foundation, Inc.
-#
-# Caso você encontre alguma mensagem que não está bem traduzida, por
-# favor me informe dando sua sugestão.
+# Copyright (C) 2000 Free Software Foundation, Inc.
#
+# This file is distributed under the same license as the make package.
# Fábio Henrique F. Silva <fabiohfs@mail.com>, 2000.
-# Fábio Henrique F. Silva <fabiohfs@netscape.net>, 2008.
+# Fábio Henrique F. Silva <fabiohfs@netscape.net>, 2008, 2009, 2010, 2011, 2012, 2013.
+#
msgid ""
msgstr ""
-"Project-Id-Version: make-3.80\n"
+"Project-Id-Version: GNU make 3.82\n"
"Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2010-07-28 01:42-0400\n"
-"PO-Revision-Date: 2008-01-22 00:45-0200\n"
+"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"PO-Revision-Date: 2013-01-09 23:04-0300\n"
"Last-Translator: Fábio Henrique F. Silva <fabiohfs@netscape.net>\n"
-"Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
+"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
+"net>\n"
+"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 1.5.4\n"
+"X-Poedit-SourceCharset: iso-8859-1\n"
-#: ar.c:48
-#, c-format
-msgid "attempt to use unsupported feature: `%s'"
+# Caso você encontre alguma mensagem que não está bem traduzida, por
+# favor me informe dando sua sugestão.
+#: ar.c:46
+#, fuzzy, c-format
+msgid "attempt to use unsupported feature: '%s'"
msgstr "característica não suportada: `%s'"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
msgstr "o touch não está disponível no VMS"
-#: 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: Arquivo `%s' não existe"
-#: 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' não é um arquivo válido"
-#: 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: O membro `%s' não existe em `%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: O ar_member_touch retornou um código de erro inválido em `%s'"
-#: arscan.c:69
-#, fuzzy, c-format
+#: arscan.c:67
+#, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
-msgstr "o lbr$set_module falhou ao obter informações do módulo, estado = %d"
+msgstr "o lbr$set_module() falhou ao obter informações do módulo, estado = %d"
-#: arscan.c:175
-#, fuzzy, c-format
+#: arscan.c:173
+#, c-format
msgid "lbr$ini_control() failed with status = %d"
-msgstr "lbr$ini_control falhou com estado = %d"
+msgstr "lbr$ini_control() falhou com estado = %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 "erro na abertura da biblioteca `%s' para localizar o membro `%s'"
-#: 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 "Membro `%s'%s: %ld bytes de %ld (%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr " (o nome pode estar truncado)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Data %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d, gid = %d, modo = 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 "*** Quebra.\n"
-#: commands.c:622
-#, c-format
-msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
-msgstr "*** [%s] O arquivo membro `%s' pode ser falso. Não foi apagado"
+#: commands.c:630
+#, fuzzy, c-format
+msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
+msgstr "** [%s] O arquivo membro `%s' pode ser falso. Não foi apagado."
-#: commands.c:625
-#, c-format
-msgid "*** Archive member `%s' may be bogus; not deleted"
-msgstr "*** O arquivo membro `%s' pode ser falso. Não foi apagado"
+#: commands.c:633
+#, fuzzy, c-format
+msgid "*** Archive member '%s' may be bogus; not deleted"
+msgstr "** O arquivo membro `%s' pode ser falso. Não foi apagado."
-#: commands.c:638
-#, c-format
-msgid "*** [%s] Deleting file `%s'"
-msgstr "** [%s] Apagando o arquivo `%s'"
+#: commands.c:646
+#, fuzzy, c-format
+msgid "*** [%s] Deleting file '%s'"
+msgstr "** [%s] Apagando arquivo `%s'"
-#: commands.c:640
-#, c-format
-msgid "*** Deleting file `%s'"
-msgstr "** Apagando o arquivo `%s'"
+#: commands.c:648
+#, fuzzy, c-format
+msgid "*** Deleting file '%s'"
+msgstr "** Apagando arquivo `%s'"
-#: commands.c:676
-#, fuzzy
+#: commands.c:684
msgid "# recipe to execute"
-msgstr "# comandos para executar"
+msgstr "# comandos a executar"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr " (embutido):"
-#: commands.c:681
-#, c-format
-msgid " (from `%s', line %lu):\n"
+#: commands.c:689
+#, fuzzy, c-format
+msgid " (from '%s', line %lu):\n"
msgstr " (de `%s', linha %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -130,222 +137,223 @@ msgstr ""
"\n"
"# Diretórios\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
msgstr "# %s: não pôde ser estabelecido.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
msgstr "# %s (chave %s, mtime %d): não pôde ser aberto.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
msgstr "# %s (dispositivo %d, inode [%d,%d,%d]): não pôde ser aberto.\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
msgstr "# %s (dispositivo %ld, inode %ld): não pôde ser aberto.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr "# %s (chave %s, mtime %d): "
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
msgstr "# %s (dispositivo %d, inode [%d,%d,%d]): "
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
msgstr "# %s (dispositivo %ld, inode %ld): "
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "Não"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " arquivos, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "não"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
msgstr " impossibilidades"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr " até agora."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
msgstr " impossibilidades em %lu diretórios.\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 "Variável recursiva `%s' faz referência a ela mesma (eventualmente)"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
-msgstr "referência a uma variável não finalizada"
+msgstr "referência a variável não finalizada"
-#: file.c:267
+#: file.c:269
#, fuzzy, c-format
-msgid "Recipe was specified for file `%s' at %s:%lu,"
-msgstr "Comandos especificados para o arquivo `%s' em %s:%lu,"
+msgid "Recipe was specified for file '%s' at %s:%lu,"
+msgstr "Os comandos especificados para o arquivo `%s' em %s:%lu,"
-#: file.c:272
+#: file.c:274
#, fuzzy, c-format
-msgid "Recipe for file `%s' was found by implicit rule search,"
-msgstr "Comandos para o arquivo `%s' encontrados por regra implícita,"
+msgid "Recipe for file '%s' was found by implicit rule search,"
+msgstr ""
+"Os comandos para o arquivo `%s' foram encontrados por uma regra implícita,"
-#: 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 "mas `%s' é considerado o mesmo arquivo que `%s'."
-#: file.c:278
+#: file.c:280
#, fuzzy, c-format
-msgid "Recipe for `%s' will be ignored in favor of the one for `%s'."
-msgstr "Comandos para `%s' serão ignorados em favor daqueles para `%s'."
+msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
+msgstr "Os comandos para `%s' serão ignorados em favor daqueles para `%s'."
-#: file.c:298
-#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
+#: file.c:300
+#, fuzzy, c-format
+msgid "can't rename single-colon '%s' to double-colon '%s'"
msgstr "não pôde renomear de dois-pontos `%s' para dois-pontos duplos `%s'"
-#: file.c:303
-#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
-msgstr "não pôde renomear de dois-pontos duplos `%s' para dois-pontos `%s'"
-
-#: file.c:392
-#, c-format
-msgid "*** Deleting intermediate file `%s'"
-msgstr "** Apagando o arquivo intermediário `%s'"
+#: file.c:305
+#, fuzzy, c-format
+msgid "can't rename double-colon '%s' to single-colon '%s'"
+msgstr "não pôde renomer de dois-pontos duplos `%s' para dois-pontos `%s'"
#: file.c:396
+#, fuzzy, c-format
+msgid "*** Deleting intermediate file '%s'"
+msgstr "** Apagando arquivo intermediário `%s'"
+
+#: file.c:400
msgid "Removing intermediate files...\n"
msgstr "Apagando arquivo intermediário...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
msgstr "%s: Data/Hora fora de faixa; substituindo %s"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "Hora atual"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
msgstr "# Não é um alvo:"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
-msgstr "# Arquivo importante (pre-requisito de .PRECIOUS)."
+msgstr "# Arquivo importante (prerequisito de .PRECIOUS)."
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
-msgstr "# Alvo Falso (pre-requisito de .PHONY)."
+msgstr "# Alvo Falso (prerequisito de .PHONY)."
-#: file.c:933
-#, fuzzy
+#: file.c:958
msgid "# Command line target."
msgstr "# Linha de Comando do Alvo."
-#: file.c:935
-#, fuzzy
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
-msgstr "# Um Padrão ou arquivo MAKEFILES."
+msgstr "# Um Padrão, arquivo MAKEFILES ou -include/sinclude makefile."
+
+#: file.c:962
+#, fuzzy
+msgid "# Builtin rule"
+msgstr ""
+"\n"
+"# Faltam as regras implícitas."
-#: file.c:937
+#: file.c:964
msgid "# Implicit rule search has been done."
-msgstr "# A pesquisa por regra implícita foi concluida."
+msgstr "# Pesquisa por regra implícita concluida."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
-msgstr "# A pesquisa por regra implícita não foi concluida."
+msgstr "# Pesquisa por regra implícita não concluida."
-#: file.c:940
-#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
+#: file.c:967
+#, fuzzy, c-format
+msgid "# Implicit/static pattern stem: '%s'\n"
msgstr "# Derivação padrão implícita/estática: `%s'\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
msgstr "# O arquivo é um pré-requisito intermediário."
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
msgstr "# Também faz:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
msgstr "# O Período da modificação nunca foi verificado."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# O Arquivo não existe."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr "# O Arquivo está desatualizado."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr "# Última modificação %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# O Arquivo foi atualizado."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# O Arquivo não foi atualizado."
-#: file.c:968
-#, fuzzy
+#: file.c:995
msgid "# Recipe currently running (THIS IS A BUG)."
msgstr "# Comandos em execução (ISTO É UMA FALHA)."
-#: file.c:971
-#, fuzzy
+#: file.c:998
msgid "# Dependencies recipe running (THIS IS A BUG)."
msgstr "# Comandos de dependências em execução (ISTO É UMA FALHA)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
msgstr "# Atualizado com sucesso."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
msgstr "# Precisa ser atualizado (-q está definido)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr "# Problemas com a atualização."
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# Valor inválido no membro `update_status' !"
-
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
+#: file.c:1019
+#, fuzzy
+msgid "# Invalid value in 'command_state' member!"
msgstr "# Valor inválido no membro `command_state' !"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -353,7 +361,7 @@ msgstr ""
"\n"
"# Arquivos"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
@@ -363,121 +371,178 @@ msgstr ""
"# tabela hash de arquivos:\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 "primeiro argumento não numérico para a função `word'"
-#: 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 "o primeiro argumento para a função `word' deve ser maior que 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 "primeiro argumento não numérico para a função `wordlist'"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
+#: function.c:769
+#, fuzzy
+msgid "non-numeric second argument to 'wordlist' function"
msgstr "segundo argumento não numérico para a função `wordlist'"
-#: function.c:1458
+#: function.c:1460
#, fuzzy, c-format
-msgid "windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"
-msgstr "create_child_process: DuplicateHandle(In) falhou (e=%d)\n"
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
+msgstr "windows32_openpipe(): DuplicateHandle(In) falhou (e=%ld)\n"
-#: function.c:1469
+#: function.c:1483
#, fuzzy, c-format
-msgid "windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr "create_child_process: DuplicateHandle(Err) falhou (e=%d)\n"
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
+msgstr "windows32_open_pipe(): DuplicateHandle(Err) falhou (e=%ld)\n"
-#: function.c:1474
-#, fuzzy, c-format
+#: function.c:1490
+#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
-msgstr "CreatePipe() falhou (e=%d)\n"
+msgstr "CreatePipe() falhou (e=%ld)\n"
-#: function.c:1479
-#, fuzzy
+#: function.c:1498
msgid "windows32_openpipe(): process_init_fd() failed\n"
-msgstr "windows32_openpipe (): process_init_fd() falhou\n"
+msgstr "windows32_openpipe(): process_init_fd() falhou\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr "Apagando o arquivo de lote temporário %s\n"
-#: function.c:2150
+#: function.c:2151
#, fuzzy, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
-msgstr "O número de argumentos é insuficiente (%d) para a função `%s'"
+msgid "open: %s: %s"
+msgstr "%s: %s"
-#: function.c:2162
+#: function.c:2158
#, fuzzy, c-format
-msgid "unimplemented on this platform: function `%s'"
-msgstr "A função `%s' não foi implementada nesta plataforma"
+msgid "write: %s: %s"
+msgstr "Erro de gravação: %s"
-#: function.c:2212
+#: function.c:2164
#, c-format
-msgid "unterminated call to function `%s': missing `%c'"
+msgid "Invalid file operation: %s"
+msgstr ""
+
+#: function.c:2279
+#, fuzzy, c-format
+msgid "insufficient number of arguments (%d) to function '%s'"
+msgstr "O número de argumentos é insuficiente (%d) para a função `%s' "
+
+#: function.c:2291
+#, fuzzy, c-format
+msgid "unimplemented on this platform: function '%s'"
+msgstr "A função `%s' não foi implementada nesta plataforma "
+
+#: function.c:2354
+#, fuzzy, c-format
+msgid "unterminated call to function '%s': missing '%c'"
msgstr "Chamada não terminada para a função `%s': faltando `%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: a opção `%s' é ambigua\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 "O número de argumentos é insuficiente (%d) para a função `%s' "
+
+#: function.c:2555
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "O número de argumentos é insuficiente (%d) para a função `%s' "
+
+#: getopt.c:659
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: a opção `%s' é ambigua\n"
+
+#: getopt.c:683
+#, fuzzy, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr "%s: a opção `--%s' não permite um argumento\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: a opção `%c%s' não permite um argumento\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: a opção `%s' requer um argumento\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: a opção é desconhecida `--%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: a opção é desconhecida `%c%s'\n"
-#: getopt.c:766
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: a opção é ilegal -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: a opção é inválida -- %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: a opção requer um argumento -- %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: a opção `-W %s' é ambigua\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: a opção `-W %s' não permite um argumento\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
+#, c-format
msgid "can't allocate %lu bytes for hash table: memory exhausted"
-msgstr "não foi possível alocar %ld bytes para a tabela hash: memória cheia"
+msgstr "não foi possível alocar %lu bytes para a tabela hash: memória cheia"
#: hash.c:280
#, c-format
@@ -494,132 +559,156 @@ msgstr "Rehash=%d, "
msgid "Collisions=%ld/%ld=%.0f%%"
msgstr "Colisões=%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 "Procurando por uma regra implícita para `%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 "Procurando por uma regra implícita de arquivo-membro para `%s'.\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
msgstr "Evitando recursão em regra implícita.\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 "Tentando padrão para regra com `%.*s'.\n"
-#: implicit.c:674
-#, c-format
-msgid "Rejecting impossible rule prerequisite `%s'.\n"
-msgstr "Rejeitando o pré-requisito para regra `%s'.\n"
+#: implicit.c:697
+#, fuzzy, c-format
+msgid "Rejecting impossible rule prerequisite '%s'.\n"
+msgstr "Rejeitando pré-requisito para regra `%s'.\n"
-#: implicit.c:675
-#, c-format
-msgid "Rejecting impossible implicit prerequisite `%s'.\n"
-msgstr "Rejeitando os pré-requisitos implícitos `%s'.\n"
+#: implicit.c:698
+#, fuzzy, c-format
+msgid "Rejecting impossible implicit prerequisite '%s'.\n"
+msgstr "Rejeitando pré-requisitos implícitos `%s'.\n"
-#: implicit.c:688
-#, c-format
-msgid "Trying rule prerequisite `%s'.\n"
-msgstr "Tentando o pré-requisito para a regra `%s'.\n"
+#: implicit.c:711
+#, fuzzy, c-format
+msgid "Trying rule prerequisite '%s'.\n"
+msgstr "Tentanto pré-requisito para a regra `%s'.\n"
-#: implicit.c:689
-#, c-format
-msgid "Trying implicit prerequisite `%s'.\n"
-msgstr "Tentando o pré-requisito implícito `%s'.\n"
+#: implicit.c:712
+#, fuzzy, c-format
+msgid "Trying implicit prerequisite '%s'.\n"
+msgstr "Tentando pré-requisito implícito `%s'.\n"
-#: implicit.c:728
-#, c-format
-msgid "Found prerequisite `%s' as VPATH `%s'\n"
-msgstr "O pré-requisito `%s' foi encontrado como VPATH `%s'\n"
+#: implicit.c:751
+#, fuzzy, c-format
+msgid "Found prerequisite '%s' as VPATH '%s'\n"
+msgstr "Pré-requisito `%s' encontrado como 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 "Procurando uma regra com o arquivo intermediário `%s'.\n"
-#: job.c:335
-#, fuzzy
+#: job.c:361
msgid "Cannot create a temporary file\n"
-msgstr "fwrite (arquivo temporário)"
+msgstr "Não foi possível criar um arquivos temporário\n"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] Erro 0x%x (ignorado)"
-
-#: job.c:450
-#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] Erro 0x%x"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (arquivo core criado)"
-#: job.c:454
-#, c-format
-msgid "[%s] Error %d (ignored)"
+#: job.c:487
+#, fuzzy
+msgid " (ignored)"
msgstr "[%s] Erro %d (ignorado)"
-#: job.c:455
-#, c-format
-msgid "*** [%s] Error %d"
+#: job.c:491 job.c:1994
+#, fuzzy
+msgid "<builtin>"
+msgstr " (embutido):"
+
+#: job.c:501
+#, fuzzy, c-format
+msgid "%s: recipe for target '%s' failed"
+msgstr "aviso: sobreescrevendo os comandos para o alvo `%s'"
+
+#: job.c:510
+#, fuzzy, c-format
+msgid "%s[%s] Error 0x%x%s"
+msgstr "*** [%s] Erro 0x%x"
+
+#: job.c:513
+#, fuzzy, c-format
+msgid "%s[%s] Error %d%s"
msgstr "** [%s] Erro %d"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (arquivo core criado)"
+#: 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 "*** Esperando que os outros processos terminem...."
+msgstr "** Esperando que outros processos terminem."
-#: job.c:579
-#, fuzzy, c-format
+#: job.c:639
+#, c-format
msgid "Live child %p (%s) PID %s %s\n"
-msgstr "Filho ativo 0x%08lx (%s) PID %ld %s\n"
+msgstr "Filho ativo %p (%s) PID %s %s\n"
-#: 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 " (remoto)"
-#: job.c:758
-#, fuzzy, c-format
+#: job.c:829
+#, c-format
msgid "Reaping losing child %p PID %s %s\n"
-msgstr "Descarregando processo filho 0x%08lx PID %ld %s\n"
+msgstr "Descarregando processo filho %p PID %s %s\n"
-#: job.c:759
-#, fuzzy, c-format
+#: job.c:830
+#, c-format
msgid "Reaping winning child %p PID %s %s\n"
-msgstr "Descarregando processo filho 0x%08lx PID %ld %s\n"
+msgstr "Descarregando processo filho %p PID %s %s\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
msgstr "Apagando o arquivo de lote temporário: %s\n"
-#: job.c:861
+#: job.c:843
#, fuzzy, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "Apagando o arquivo de lote temporário: %s\n"
+
+#: job.c:949
+#, c-format
msgid "Removing child %p PID %s%s from chain.\n"
-msgstr "Removendo o processo filho 0x%08lx PID %ld%s da cadeia.\n"
+msgstr "Removendo o processo filho %p PID %s%s da cadeia.\n"
-#: job.c:920
-msgid "write jobserver"
-msgstr "gravar jobserver"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr ""
-#: job.c:922
-#, fuzzy, c-format
+#: job.c:1011 job.c:1025
+#, c-format
msgid "Released token for child %p (%s).\n"
-msgstr "Liberado sinalizador para o processo filho 0x%08lx (%s).\n"
+msgstr "Liberado sinalizador para o processo filho %p (%s).\n"
-#: job.c:1453 job.c:2094
-#, fuzzy, c-format
+#: job.c:1023
+msgid "write jobserver"
+msgstr "gravar jobserver"
+
+#: job.c:1612 job.c:2332
+#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
-msgstr "process_easy() falhou ao executar o processo (e=%d)\n"
+msgstr "process_easy() falhou ao executar o processo (e=%ld)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
@@ -628,182 +717,243 @@ msgstr ""
"\n"
"Contados %d args na falha de execução\n"
-#: job.c:1525
-#, fuzzy, c-format
+#: job.c:1685
+#, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
-msgstr "Colocando o processo filho 0x%08lx (%s) PID %ld%s na cadeia.\n"
+msgstr "Colocando o processo filho %p (%s) PID %s%s na cadeia.\n"
-#: job.c:1778
-#, fuzzy, c-format
+#: 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 "Obtido o sinalizador para o processo filho 0x%08lx (%s).\n"
+msgstr "Obtido o sinalizador para o processo filho %p (%s).\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
msgstr "tarefas canalizadas lidas"
-#: 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: Arquivo `%s' não existe"
-#: job.c:1802
+#: job.c:2005
#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "Não é necessário reprocessar o alvo `%s'"
+msgid "%s: update target '%s' due to: %s"
+msgstr "%sSem regra para processar o alvo `%s', necessário por `%s'%s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
msgstr "não pôde forçar os limites de carga neste sistema operacional"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
msgstr "não pôde forçar a carga limite:"
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
-msgstr ""
+msgstr "sem manipuladores de arquivos: não é possível duplicar stdin\n"
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
-msgstr ""
+msgstr "sem manipuladores de arquivos: não é possível duplicar stdout\n"
+
+#: job.c:2223
+#, fuzzy
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr "sem manipuladores de arquivos: não é possível duplicar stdin\n"
-#: job.c:2015
+#: job.c:2238
msgid "Could not restore stdin\n"
-msgstr ""
+msgstr "Não é possível restaurar stdin\n"
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
-msgstr ""
+msgstr "Não é possível restaurar stdout\n"
-#: job.c:2127
-#, fuzzy, c-format
+#: job.c:2254
+#, fuzzy
+msgid "Could not restore stderr\n"
+msgstr "Não é possível restaurar stdin\n"
+
+#: job.c:2365
+#, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
-msgstr "processo filho descarregado: pid %d, aguardando pelo pid %d\n"
+msgstr "processo filho descarregado: pid %s, aguardando pelo pid %s\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
msgstr "%s: Comando não encontrado"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr "%s: Interpretador de comandos não encontrado"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
-msgstr ""
+msgstr "spawnvpe: o espaço de ambiente pode estar cheio"
-#: job.c:2461
+#: job.c:2709
#, fuzzy, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
-msgstr "$SHELL alterado (era `%s' e agora é `%s')"
+msgid "$SHELL changed (was '%s', now '%s')\n"
+msgstr "$SHELL alterado (era `%s' e agora é `%s')\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr "Criando arquivo de lote temporário %s\n"
-#: job.c:2963
+#: job.c:3148
+#, fuzzy
+msgid ""
+"Batch file contents:\n"
+"\t@echo off\n"
+msgstr ""
+"Conteúdo do arquivo de lote:%s\n"
+"\t%s\n"
+
+#: job.c:3337
#, c-format
msgid ""
"Batch file contents:%s\n"
"\t%s\n"
msgstr ""
+"Conteúdo do arquivo de lote:%s\n"
+"\t%s\n"
-#: job.c:3065
+#: job.c:3444
#, c-format
msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
msgstr "%s (linha %d) contexto inválido (!unixy && !batch_mode_shell)\n"
-#: 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 "Tarefas paralelas (-j) não são suportadas nesta plataforma."
+
+#: main.c:312
msgid "Options:\n"
msgstr "Opções:\n"
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
msgstr " -b, -m Ignorado para compatibilidade.\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr ""
" -B, --always-make Processa todos os alvos incondicionalmente.\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
msgstr ""
-"-C DIRETÓRIO, --directory= DIRETÓRIO\n"
-" muda para o DIRETÓRIO antes de fazer algo.\n"
+" -C DIRETÓRIO, --directory=DIRETÓRIO\n"
+" Muda para o DIRETÓRIO antes de fazer algo.\n"
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
msgstr " -d Imprime muita informação de depuração.\n"
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
-" --debug[=OPÇÕES] Imprime vários tipos de informações de "
+" --debug[=OPÇÕES] Imprime vários tipos de informações de "
"depuração.\n"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
msgstr ""
-" -e,--envrionment-overrides\n"
-" As variáveis de ambiente sobrescrevem os "
-"arquivos make.\n"
+" -e, --environment-overrides\n"
+" Assume os valores das variáveis de ambiente.\n"
-#: main.c:318
+#: main.c:327
msgid ""
" --eval=STRING Evaluate STRING as a makefile statement.\n"
msgstr ""
+" --eval=STRING Avalia a STRING como uma declaração para um "
+"makefile.\n"
-#: main.c:320
+#: main.c:329
msgid ""
" -f FILE, --file=FILE, --makefile=FILE\n"
" Read FILE as a makefile.\n"
msgstr ""
-" -f ARQUIVO, --file=ARQUIVO --makefile=ARQUIVO\n"
-" Lê o ARQUIVO com um arquivo make.\n"
+" -f ARQUIVO, --file=ARQUIVO, --makefile=ARQUIVO\n"
+" Lê o ARQUIVO como se fosse um arquivo make.\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
msgstr " -h, --help Imprime esta mensagem e sai.\n"
-#: main.c:325
-#, fuzzy
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
msgstr " -i, --ignore-errors Ignora os erros dos comandos.\n"
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
msgstr ""
-".. -l DIRETÓRIO, --include-dir= DIRETÓRIO\n"
-" Procura no DIRETÓRIO por arquivos make.\n"
+" -I DIRETÓRIO, --include-dir=DIRETÓRIO\n"
+" Pesquisa o DIRETÒRIO por arquivos make a "
+"incluir.\n"
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
msgstr ""
-" -j [N], --jobs[=N] Permite N tarefas de uma vez ou várias sem o "
-"argumento.\n"
+" -j [N], --jobs[=N] Permite N tarefas de uma vez; tarefas infinitas "
+"sem argumentos.\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 Continua mesmo que alguns alvos não possam ser "
"processados.\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 "
@@ -813,14 +963,15 @@ msgstr ""
" Não inicia múltiplas tarefas a menos que a "
"carga seja menor que N.\n"
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
msgstr ""
+"-L, --check-symlink-times Usa o tempo mais antigo entre o vínculo simbólico "
+"e o alvo.\n"
-#: main.c:339
-#, fuzzy
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
@@ -830,87 +981,95 @@ msgstr ""
" Não executa quaisquer comandos; apenas imprime-"
"os.\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 "
"it.\n"
msgstr ""
-" -o ARQUIVO, --old-file= ARQUIVO, --assume-old ARQUIVO\n"
-" Considera o ARQUIVO muito velho e não o "
-"refaz.\n"
+" -o ARQUIVO, --old-file=ARQUIVO, --assume-old=ARQUIVO\n"
+" Considera o ARQUIVO como muito antigo e não "
+"reprocessá-o.\n"
+
+#: main.c:354
+msgid ""
+" -O[TYPE], --output-sync[=TYPE]\n"
+" Synchronize output of parallel jobs by TYPE.\n"
+msgstr ""
-#: main.c:345
+#: main.c:357
msgid " -p, --print-data-base Print make's internal database.\n"
msgstr ""
" -p, --print-data-base Imprime o banco de dados interno do make.\n"
-#: main.c:347
-#, fuzzy
+#: main.c:359
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
msgstr ""
-" -q, --question Executa sem comandos, o código de saída "
-"informa se está atualizado.\n"
+" -q, --question Não executa os comandos; O código de saida "
+"indica se está atualizado.\n"
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
-msgstr ""
-" -r, --no-builtin-rules Desabilita as regras implícitas embutidas.\n"
+msgstr " -r, --no-builtin-rules Desabilita as regras implícitas.\n"
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr ""
-" -R, --no-builtin-variables Desabilita as configurações das variávies "
+" -R, --no-builtin-variables Desabilita a configuração das variáveis "
"embutidas.\n"
-#: main.c:353
-#, fuzzy
+#: main.c:365
msgid " -s, --silent, --quiet Don't echo recipes.\n"
msgstr " -s, --silent, --quiet Não ecoa os comandos.\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
msgstr ""
" -S, --no-keep-going, --stop\n"
-" Desativa a opção -k.\n"
+" Desativa a opção -k.\n"
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
" -t, --touch Executa um `touch' nos alvos ao invés de "
"reprocessá-los.\n"
-#: main.c:360
+#: main.c:372
+#, fuzzy
+msgid " --trace Print tracing information.\n"
+msgstr " -d Imprime muita informação de depuração.\n"
+
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr ""
" -v, --version Imprime o número de versão do make e sai.\n"
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
msgstr " -w, --print-directory Imprime o diretório atual.\n"
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
msgstr ""
-" --no-print-directory Desativa a opção -w, mesmo que tenha sido "
-"ativada implicitamente.\n"
+" --no-print-directory Desativa a opção -w, mesmo que ela esteja "
+"implicitamente ativada.\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"
msgstr ""
-" -W ARQUIVO, --what-if= ARQUIVO, --new-file=ARQUIVO, --assume-new=ARQUIVO\n"
-" Considera o ARQUIVO muito novo.\n"
+" -W ARQUIVO, --what-if=ARQUIVO, --new-file=ARQUIVO, --assume-new=ARQUIVO\n"
+" Considera o ARQUIVO infinitamente novo.\n"
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
@@ -918,22 +1077,32 @@ msgstr ""
" --warn-undefined-variables Avisa quando um variável não definida for "
"referenciada.\n"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
msgstr "Cadeia de caracteres vazia não é válida como nome de arquivo"
-#: main.c:650
-#, c-format
-msgid "unknown debug level specification `%s'"
+#: main.c:734
+#, fuzzy, c-format
+msgid "unknown debug level specification '%s'"
msgstr "nível de depuração desconhecido: `%s'"
-#: main.c:690
-#, fuzzy, c-format
+#: main.c:777
+#, c-format
+msgid "unknown output-sync type '%s'"
+msgstr ""
+
+#: main.c:787
+#, fuzzy
+msgid "internal error: multiple --sync-mutex options"
+msgstr "erro interno: múltiplas opções --jobserver-fds"
+
+#: main.c:848
+#, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
-msgstr "%s: Interrupção/Exceção capturada (código = 0x%x, endereço = 0x%x)\n"
+msgstr "%s: Interrupção/Exceção capturada (código = 0x%lx, endereço = 0x%p)\n"
-#: main.c:697
-#, fuzzy, c-format
+#: main.c:855
+#, c-format
msgid ""
"\n"
"Unhandled exception filter called from program %s\n"
@@ -943,162 +1112,184 @@ msgid ""
msgstr ""
"\n"
"Não pôde tratar o filtro de exceção chamado por %s\n"
-"CódigoExceção = %x\n"
-"SinalExceção = %x\n"
-"EndereçoExceção = %x\n"
+"CódigoExceção = %lx\n"
+"SinalExceção = %lx\n"
+"EndereçoExceção = 0x%p\n"
-#: main.c:705
-#, fuzzy, c-format
+#: main.c:863
+#, c-format
msgid "Access violation: write operation at address 0x%p\n"
-msgstr "Violação de acesso: operação de escrita no endereço %x\n"
+msgstr "Violação de acesso: operação de escrita no endereço 0x%p\n"
-#: main.c:706
-#, fuzzy, c-format
+#: main.c:864
+#, c-format
msgid "Access violation: read operation at address 0x%p\n"
-msgstr "Violação de acesso: operação de leitura no endereço %x\n"
+msgstr "Violação de acesso: operação de leitura no endereço 0x%p\n"
-#: main.c:781 main.c:792
-#, fuzzy, c-format
+#: main.c:940 main.c:955
+#, c-format
msgid "find_and_set_shell() setting default_shell = %s\n"
-msgstr "find_and_set_shell definiu o default_shell = %s\n"
+msgstr "find_and_set_shell() definiu o default_shell = %s\n"
-#: main.c:834
-#, fuzzy, c-format
+#: main.c:1008
+#, c-format
msgid "find_and_set_shell() path search set default_shell = %s\n"
-msgstr "find_and_set_shell, caminho de pesquisa do default_shell = %s\n"
+msgstr "find_and_set_shell(), caminho de pesquisa do default_shell = %s\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr "%s está suspenso por 30 segundos..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr "sleep(30) concluido. Continuando.\n"
-#: main.c:1501
+#: main.c:1534
+msgid "internal error: multiple --jobserver-fds options"
+msgstr "erro interno: múltiplas opções --jobserver-fds"
+
+#: main.c:1544
+#, c-format
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
+msgstr ""
+
+#: main.c:1547
+#, fuzzy, c-format
+msgid "Jobserver client (semaphore %s)\n"
+msgstr "Cliente Jobserver (fds %d,%d)\n"
+
+#: main.c:1551
+#, fuzzy, c-format
+msgid "internal error: invalid --jobserver-fds string '%s'"
+msgstr "erro interno: valor `%s' inválido para --jobserver-fds"
+
+#: main.c:1554
+#, c-format
+msgid "Jobserver client (fds %d,%d)\n"
+msgstr "Cliente Jobserver (fds %d,%d)\n"
+
+#: main.c:1567
+msgid "warning: -jN forced in submake: disabling jobserver mode."
+msgstr "aviso: -jN forçado no submake: desabilitando o modo jobserver."
+
+#: main.c:1583
+msgid "dup jobserver"
+msgstr "dup jobserver"
+
+#: main.c:1586
+#, fuzzy
+msgid ""
+"warning: jobserver unavailable: using -j1. Add '+' to parent make rule."
+msgstr "aviso: jobserver indisponível: usando -j1. Inclua `+' na regra pai."
+
+#: main.c:1752
msgid "Makefile from standard input specified twice."
msgstr "Makefile na entrada padrão especificado duas vezes."
-#: main.c:1539 vmsjobs.c:500
+#: main.c:1790 vmsjobs.c:496
msgid "fopen (temporary file)"
msgstr "fopen (arquivo temporário)"
-#: main.c:1545
+#: main.c:1796
msgid "fwrite (temporary file)"
msgstr "fwrite (arquivo temporário)"
-#: main.c:1703
+#: main.c:1984
msgid "Parallel jobs (-j) are not supported on this platform."
msgstr "Tarefas paralelas (-j) não são suportadas nesta plataforma."
-#: main.c:1704
+#: main.c:1985
msgid "Resetting to single job (-j1) mode."
msgstr "Reiniciando no modo de tarefa única (-j1)."
-#: main.c:1719
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "erro interno: múltiplas opções --jobserver-fds"
-
-#: main.c:1727
-#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
-msgstr "erro interno: valor `%s' inválido para --jobserver-fds"
+#: main.c:2006
+#, fuzzy, c-format
+msgid "Jobserver slots limited to %d\n"
+msgstr "Cliente Jobserver (fds %d,%d)\n"
-#: main.c:1730
+#: main.c:2012
#, c-format
-msgid "Jobserver client (fds %d,%d)\n"
+msgid "creating jobserver semaphore: (Error %ld: %s)"
msgstr ""
-#: main.c:1740
-msgid "warning: -jN forced in submake: disabling jobserver mode."
-msgstr "aviso: -jN forçado no submake: desabilitando o modo jobserver."
-
-#: main.c:1750
-msgid "dup jobserver"
-msgstr "dup jobserver"
-
-#: main.c:1753
-msgid ""
-"warning: jobserver unavailable: using -j1. Add `+' to parent make rule."
-msgstr "aviso: jobserver indisponível: usando -j1. Inclua `+' na regra pai."
-
-#: main.c:1777
+#: main.c:2019
msgid "creating jobs pipe"
msgstr "criando canalização de tarefas"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
msgstr "inicializando a canalização do jobserver"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
-msgstr ""
+msgstr "Vínculos simbólicos não são suportados: desabilite -L."
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr "Atualizando os arquivos makefiles ...\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 "O arquivo `%s' pode estar em loop; não reprocessá-lo.\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 "Problemas ao reprocessar o arquivo `%s'."
-#: main.c:2013
-#, c-format
-msgid "Included makefile `%s' was not found."
-msgstr "O arquivo `%s' incluído não foi encontrado."
+#: main.c:2270
+#, fuzzy, c-format
+msgid "Included makefile '%s' was not found."
+msgstr "Arquivo `%s' incluido não foi encontrado."
-#: main.c:2018
-#, c-format
-msgid "Makefile `%s' was not found"
-msgstr "O arquivo `%s' não foi encontrado"
+#: main.c:2275
+#, fuzzy, c-format
+msgid "Makefile '%s' was not found"
+msgstr "O arquivo `%s' não foi encontrado."
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
msgstr "Não foi possível voltar ao diretório original."
-#: main.c:2102
-#, fuzzy, c-format
+#: main.c:2354
+#, c-format
msgid "Re-executing[%u]:"
-msgstr "Re-executando:"
+msgstr "Re-executando[%u]:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr "desvinculado (arquivos temporário): "
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
-msgstr ""
+msgstr ". DEFAULT_GOAL contém mais do que um alvo"
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
msgstr "Nenhum alvo indicado e nenhum arquivo make encontrado"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "Sem alvo"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
msgstr "Atualizando os objetivos finais...\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr "aviso: O relógio está errado. Sua compilação pode ficar incompleta."
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
msgstr "Uso: %s [opções] [alvo] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
@@ -1107,7 +1298,7 @@ msgstr ""
"\n"
"Este programa foi compilado para %s\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
@@ -1116,36 +1307,32 @@ msgstr ""
"\n"
"Este programa foi compilado para %s (%s)\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
msgstr "Informe os problemas para <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"
-msgstr "a opção `-%c' requer um argumento inteiro positivo"
+msgid "the '%s%s' option requires a non-empty string argument"
+msgstr "a opção `%s%s' requer um argumento não vazio"
-#: main.c: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 "a opção `-%c' requer um argumento inteiro positivo"
-#: main.c:3054
-#, fuzzy, c-format
+#: main.c:3253
+#, c-format
msgid "%sBuilt for %s\n"
-msgstr ""
-"\n"
-"Este programa foi compilado para %s\n"
+msgstr "%sCompilado para %s\n"
-#: main.c:3056
-#, fuzzy, c-format
+#: main.c:3255
+#, c-format
msgid "%sBuilt for %s (%s)\n"
-msgstr ""
-"\n"
-"Este programa foi compilado para %s (%s)\n"
+msgstr "%sCompilado para %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."
@@ -1153,8 +1340,13 @@ msgid ""
"%sThis is free software: you are free to change and redistribute it.\n"
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
+"%sLicença GPLv3+: GNU GPL versão 3 ou posterior <http://gnu.org/licenses/gpl."
+"html>\n"
+"%sIsto é um aplicativo livre: você pode alterá-lo e redistribui-lo "
+"livremente.\n"
+"%sNÃO HÁ GARANTIAS, exceto o que for permitido por lei.\n"
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
@@ -1163,7 +1355,7 @@ msgstr ""
"\n"
"# Banco de dados do Make, impresso em %s"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
@@ -1172,107 +1364,106 @@ msgstr ""
"\n"
"# Banco de dados do Make finalizado em %s\n"
-#: main.c:3237
-#, fuzzy, c-format
-msgid "%s: Entering an unknown directory\n"
-msgstr "%s: Entrando em um diretório desconhecido"
-
-#: main.c:3239
-#, fuzzy, c-format
-msgid "%s: Leaving an unknown directory\n"
-msgstr "%s: Saindo de um diretório desconhecido"
-
-#: main.c:3242
-#, c-format
-msgid "%s: Entering directory `%s'\n"
-msgstr "%s: Entrando no diretório `%s'\n"
-
-#: main.c:3245
-#, c-format
-msgid "%s: Leaving directory `%s'\n"
-msgstr "%s: Saindo do diretório `%s'\n"
-
-#: main.c:3250
-#, fuzzy, c-format
-msgid "%s[%u]: Entering an unknown directory\n"
-msgstr "%s[%u]: Entrando em um diretório desconhecido"
-
-#: main.c:3253
-#, fuzzy, c-format
-msgid "%s[%u]: Leaving an unknown directory\n"
-msgstr "%s[%u]: Saindo de um diretório desconhecido"
-
-#: main.c:3257
-#, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
-msgstr "%s[%u]: Entrando no diretório `%s'\n"
-
-#: main.c:3260
-#, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
-msgstr "%s[%u]: Saindo do diretório `%s'\n"
-
-#: misc.c:316
-msgid ". Stop.\n"
-msgstr ". Pare.\n"
-
-#: misc.c:337
+#: misc.c:201
#, c-format
msgid "Unknown error %d"
msgstr "Erro desconhecido %d"
-#: misc.c:347
-#, c-format
-msgid "%s%s: %s"
-msgstr "%s%s: %s"
-
-#: misc.c:355
-#, 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
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
msgid "virtual memory exhausted"
msgstr "A memória virtual encheu"
-#: misc.c:708
+#: misc.c:522
#, c-format
msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
msgstr "%s: usuário %lu (real %lu), grupo %lu (real %lu)\n"
-#: misc.c:729
+#: misc.c:543
msgid "Initialized access"
msgstr "Acesso inicializado"
-#: misc.c:808
+#: misc.c:622
msgid "User access"
msgstr "Acesso do usuário"
-#: misc.c:856
+#: misc.c:670
msgid "Make access"
msgstr "Acesso do make"
-#: misc.c:890
+#: misc.c:704
msgid "Child access"
msgstr "Acesso filho"
-#: misc.c:954
+#: output.c:128
+#, c-format
+msgid "%s: Entering an unknown directory\n"
+msgstr "%s: Entrando em um diretório desconhecido\n"
+
+#: output.c:130
+#, c-format
+msgid "%s: Leaving an unknown directory\n"
+msgstr "%s: Saindo de um diretório desconhecido\n"
+
+#: output.c:133
#, fuzzy, c-format
+msgid "%s: Entering directory '%s'\n"
+msgstr "%s: Entrando no diretório `%s'\n"
+
+#: output.c:135
+#, fuzzy, c-format
+msgid "%s: Leaving directory '%s'\n"
+msgstr "%s: Saindo do diretório `%s'\n"
+
+#: output.c:139
+#, c-format
+msgid "%s[%u]: Entering an unknown directory\n"
+msgstr "%s[%u]: Entrando em um diretório desconhecido\n"
+
+#: output.c:141
+#, c-format
+msgid "%s[%u]: Leaving an unknown directory\n"
+msgstr "%s[%u]: Saindo de um diretório desconhecido\n"
+
+#: output.c:144
+#, fuzzy, c-format
+msgid "%s[%u]: Entering directory '%s'\n"
+msgstr "%s[%u]: Entrando no diretório `%s'\n"
+
+#: output.c:146
+#, fuzzy, c-format
+msgid "%s[%u]: Leaving directory '%s'\n"
+msgstr "%s[%u]: Saindo do diretório `%s'\n"
+
+#: output.c:515
+#, c-format
msgid "write error: %s"
-msgstr "Erro redirecionado para %s\n"
+msgstr "Erro de gravação: %s"
-#: misc.c:956
-#, fuzzy
+#: output.c:517
msgid "write error"
-msgstr "gravar jobserver"
+msgstr "erro de gravação"
+
+#: output.c:740
+msgid ". Stop.\n"
+msgstr ". Pare.\n"
-#: read.c:179
+#: output.c:751
+#, c-format
+msgid "%s%s: %s"
+msgstr "%s%s: %s"
+
+#: output.c:759
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: read.c:180
msgid "Reading makefiles...\n"
msgstr "Lendo arquivos makefile ...\n"
#: read.c:333
-#, c-format
-msgid "Reading makefile `%s'"
+#, fuzzy, c-format
+msgid "Reading makefile '%s'"
msgstr "Lendo arquivos makefile `%s'"
#: read.c:335
@@ -1295,328 +1486,343 @@ msgstr " (sem importância)"
msgid " (no ~ expansion)"
msgstr " (sem expansão ~)"
-#: 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 "síntaxe inválida na condicional"
-#: read.c:891
-#, fuzzy
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr ""
+
+#: read.c:987
msgid "recipe commences before first target"
msgstr "comandos começam antes do primeiro alvo"
-#: read.c:940
-#, fuzzy
+#: read.c:1036
msgid "missing rule before recipe"
-msgstr "falta regra antes dos comandos"
+msgstr "falta uma regra antes dos comandos"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
msgstr "faltando o separador%s"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
msgstr " (você pensou em TAB ao invés de 8 espaços?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
msgstr "faltando o padrão dos alvos"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
msgstr "múltiplos padrões para o alvo"
-#: read.c:1169
-#, c-format
-msgid "target pattern contains no `%%'"
+#: read.c:1269
+#, fuzzy, c-format
+msgid "target pattern contains no '%%'"
msgstr "padrão para o alvo não contém `%%'"
-#: read.c:1293
-msgid "missing `endif'"
+#: read.c:1391
+#, fuzzy
+msgid "missing 'endif'"
msgstr "faltando `endif'"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "nome de variável vazio"
-#: read.c:1367
+#: read.c:1465
#, fuzzy
-msgid "extraneous text after `define' directive"
-msgstr "Texto estranho depois da diretiva `endef'"
+msgid "extraneous text after 'define' directive"
+msgstr "Texto estranho depois da diretiva `define'"
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
+#: read.c:1490
+#, fuzzy
+msgid "missing 'endef', unterminated 'define'"
msgstr "faltando `endef', `define' não terminado"
-#: read.c:1420
+#: read.c:1518
#, fuzzy
-msgid "extraneous text after `endef' directive"
-msgstr "Texto estranho depois da diretiva `endef'"
+msgid "extraneous text after 'endef' directive"
+msgstr "Texto estranho depois da diretiva `endef"
-#: read.c:1490
-#, c-format
-msgid "Extraneous text after `%s' directive"
+#: read.c:1589
+#, fuzzy, c-format
+msgid "extraneous text after '%s' directive"
msgstr "Texto estranho depois da diretiva `%s'"
-#: read.c:1499 read.c:1513
-#, c-format
-msgid "extraneous `%s'"
+#: read.c:1598 read.c:1612
+#, fuzzy, c-format
+msgid "extraneous '%s'"
msgstr "`%s' estranho"
-#: read.c:1518
-msgid "only one `else' per conditional"
+#: read.c:1617
+#, fuzzy
+msgid "only one 'else' per conditional"
msgstr "use apenas um `else' por condicional"
-#: read.c:1797
-#, fuzzy
+#: read.c:1892
msgid "Malformed target-specific variable definition"
-msgstr "Definição de variável por alvo mau formada"
+msgstr "Definição de variável para o alvo mau formada"
-#: read.c:1855
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
-msgstr ""
+msgstr "os pré-requisitos não podem ser definidos no comando"
-#: read.c:1908
+#: read.c:2009
msgid "mixed implicit and static pattern rules"
msgstr "As regras implícitas e de padrão estático misturadas"
-#: read.c:1931 read.c:2112
+#: read.c:2032 read.c:2220
msgid "mixed implicit and normal rules"
msgstr "As regras implícitas e normais misturadas"
-#: 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 "O alvo `%s' não coincide com o padrão"
-#: 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 "O arquivo alvo `%s' tem entradas : e ::"
-#: 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 "O alvo `%s' foi informado mais do que um vez na mesma regra."
-#: read.c:2006
+#: read.c:2114
#, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
-msgstr "aviso: impondo comandos para o alvo `%s'"
+msgid "warning: overriding recipe for target '%s'"
+msgstr "aviso: sobreescrevendo os comandos para o alvo `%s'"
-#: 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 "aviso: ignorando comandos antigos para o alvo `%s'"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
-msgstr "aviso: caractere NUL detectado; o resto da linha foi ignorado"
+msgstr "aviso: caracter NUL detetado; o resto da linha foi ignorado"
-#: 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 "Nada a ser feito para `%s'."
-#: 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' está atualizado."
-#: remake.c:306
-#, c-format
-msgid "Pruning file `%s'.\n"
+#: remake.c:305
+#, fuzzy, c-format
+msgid "Pruning file '%s'.\n"
msgstr "Atualizando o arquivo `%s'.\n"
-#: remake.c:359
-#, c-format
-msgid "%sNo rule to make target `%s'%s"
-msgstr "%s Sem regra para processar o alvo `%s'%s"
+#: remake.c:377
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sSem regra para processar o alvo `%s'%s"
-#: remake.c:361
-#, c-format
-msgid "%sNo rule to make target `%s', needed by `%s'%s"
-msgstr "%s Sem regra para processar o alvo `%s', necessário por `%s'%s"
+#: remake.c:379
+#, fuzzy, c-format
+msgid "%sNo rule to make target '%s', needed by '%s'%s"
+msgstr "%sSem regra para processar o alvo `%s', necessário por `%s'%s"
#: remake.c:413
-#, c-format
-msgid "Considering target file `%s'.\n"
+#, fuzzy, c-format
+msgid "Considering target file '%s'.\n"
msgstr "Considerando o arquivo alvo `%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 "Tentativa de atualizar o arquivo `%s' falhou.\n"
#: remake.c:432
-#, c-format
-msgid "File `%s' was considered already.\n"
+#, fuzzy, c-format
+msgid "File '%s' was considered already.\n"
msgstr "O arquivo `%s' já foi considerado.\n"
#: remake.c:442
-#, c-format
-msgid "Still updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Still updating file '%s'.\n"
msgstr "Ainda está atualizando o arquivo `%s'.\n"
#: remake.c:445
-#, c-format
-msgid "Finished updating file `%s'.\n"
-msgstr "Atualização do arquivo `%s' concluída.\n"
+#, fuzzy, c-format
+msgid "Finished updating file '%s'.\n"
+msgstr "Atualização do arquivo `%s' concluida.\n"
#: remake.c:474
-#, c-format
-msgid "File `%s' does not exist.\n"
+#, fuzzy, c-format
+msgid "File '%s' does not exist.\n"
msgstr "O arquivo `%s' não existe.\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 ""
"*** Aviso: arquivo .LOW_RESOLUTION_TIME `%s' tem uma etiqueta de tempo de "
"alta resolução"
-#: 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 "Regra implícita encontrada para `%s'.\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 "Nenhuma regra implícita encontrada para `%s'.\n"
#: remake.c:502
#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
+msgid "Using default recipe for '%s'.\n"
msgstr "Usando os comandos padrões para `%s'.\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
msgstr "Dependência circular %s <- %s abandonada."
-#: remake.c:651
-#, c-format
-msgid "Finished prerequisites of target file `%s'.\n"
-msgstr "Pré-requisitos do alvo `%s' concluído.\n"
+#: remake.c:655
+#, fuzzy, c-format
+msgid "Finished prerequisites of target file '%s'.\n"
+msgstr "Pré-requisitos do alvo `%s' concluido.\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 "Pré-requisitos do `%s' estão sendo criados.\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 "Desistindo do arquivo `%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 "O alvo `%s' não foi reprocessado por causa de erros."
-#: remake.c:727
-#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
+#: remake.c:731
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
msgstr "Pré-requisito `%s' está ordenado para o alvo `%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 "Pré-requisitos `%s' do alvo `%s' não existem.\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 "Pré-requisito `%s' é mais novo do que o alvo `%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 "Pré-requisito `%s' é mais antigo do que o alvo `%s'.\n"
-#: remake.c:758
-#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
+#: remake.c:762
+#, fuzzy, c-format
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
msgstr "O alvo `%s' é dois-pontos duplos e não tem pré-requisitos.\n"
-#: remake.c:765
+#: remake.c:769
#, fuzzy, 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 "Nenhum comando para `%s' e nenhum pré-requisito foi alterado.\n"
-#: 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 "Processando `%s' devido a opção always-make.\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 "Não é necessário reprocessar o alvo `%s'"
-#: remake.c:780
-#, c-format
-msgid "; using VPATH name `%s'"
+#: remake.c:784
+#, fuzzy, c-format
+msgid "; using VPATH name '%s'"
msgstr "; usando o nome VPATH `%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 "O alvo `%s' deve ser reprocessado.\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 " Ignorando o nome VPATH `%s'.\n"
-#: remake.c:815
+#: remake.c:819
#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
+msgid "Recipe of '%s' is being run.\n"
msgstr "Os comandos de `%s' estão rodando.\n"
-#: 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 "Falha ao reprocessar o alvo `%s'.\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 "Alvo `%s' reprocessado com sucesso.\n"
-#: remake.c:828
-#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
+#: remake.c:832
+#, fuzzy, c-format
+msgid "Target file '%s' needs to be remade under -q.\n"
msgstr "O alvo `%s' precisa ser reprocessado sob -q.\n"
-#: 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 "Usando os comandos padrões para `%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 "** Aviso: O arquivo `%s' está com a hora adiantada"
-#: remake.c:1370
+#: remake.c:1385
#, fuzzy, c-format
-msgid "Warning: File `%s' has modification time %s s in the future"
-msgstr "** Aviso: O arquivo `%s' está com a hora %.2g adiantada"
+msgid "Warning: File '%s' has modification time %s s in the future"
+msgstr "** Aviso: O arquivo `%s' está com a hora %s s adiantada"
-#: 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 "O elemento .LIBPATTERNS `%s' não é um padrão"
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
msgstr "Customizações não exportadas: %s\n"
-#: rule.c:499
+#: rule.c:496
msgid ""
"\n"
"# Implicit Rules"
@@ -1624,7 +1830,7 @@ msgstr ""
"\n"
"# Regras implícitas."
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
@@ -1632,7 +1838,7 @@ msgstr ""
"\n"
"# Faltam as regras implícitas."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -1641,242 +1847,261 @@ msgstr ""
"\n"
"# %u regras implícitas, %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr " terminal."
-#: rule.c:534
-#, fuzzy, c-format
+#: rule.c:531
+#, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
-msgstr "ERRO: num_pattern_rules errada! %u != %u"
+msgstr "ERRO: num_pattern_rules errada! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "sinal desconhecido"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
msgstr "Desconectar"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "Interrupção"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
msgstr "Sair"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
msgstr "Instrução ilegal"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
msgstr "Aviso Trace/breakpoint"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "Abortado"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
msgstr "Aviso IOT"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
msgstr "Aviso EMT"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
msgstr "Exceção de ponto flutuante"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "Finalizado"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr "Erro de barramento"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "Falha de segmentação"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "Chamada de sistema inválida"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr "Canalização interrompida"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "Despertador"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
msgstr "Terminado"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr "Sinal 1 definido pelo usuário"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr "Sinal 2 definido pelo usuário"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
msgstr "O Filho saiu"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
msgstr "Falha na Energia Elétrica"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "Parado"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
msgstr "Parado (entrada tty)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
-msgstr "Parado (saída tty)"
+msgstr "Parado (saida tty)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "Parado (sinal)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
msgstr "Tempo de CPU excedido"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
msgstr "Tamanho do arquivo excedido"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
msgstr "Temporizador virtual expirou"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
msgstr "Temporizador de perfil expirou"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
msgstr "Janela alterada"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "Continuação"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
msgstr "Condição de E/S urgente"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
msgstr "Possível E/S"
-#: 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 "Recurso perdido"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "Sinal perigoso"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr "Solicitação de informação"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
msgstr "Co-processador aritmético indisponível"
-#: 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
-#, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
-msgstr ""
+#: strcache.c:266
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
+msgstr "%s strcache usado: total = %d (%d) / max = %d / min = %d / med = %d\n"
-#: 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
-#, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+#: strcache.c:280
+#, fuzzy, c-format
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
+msgstr "%s strcache usado: total = %d (%d) / max = %d / min = %d / med = %d\n"
+
+#: strcache.c:283
+#, fuzzy, c-format
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
+msgstr "%s strcache livres: total = %d (%d) / max = %d / min = %d / med = %d\n"
+
+#: strcache.c:287
+#, fuzzy, c-format
+msgid ""
+"\n"
+"%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
msgstr ""
+"\n"
+"%s # de cadeias em strcache: %d / pesquisados = %lu / encontrados = %lu\n"
-#: strcache.c:244
+#: strcache.c:289
#, fuzzy
msgid ""
-"\n"
-"# strcache hash-table stats:\n"
+"# hash-table stats:\n"
"# "
msgstr ""
"\n"
"# tabela hash de arquivos:\n"
"# "
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "automático"
+
+#: variable.c:1610
msgid "default"
msgstr "padrão"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr "ambiente"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr "makefile"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
msgstr "ambiente sob -e"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr "linha de comando"
-#: variable.c:1556
-msgid "`override' directive"
+#: variable.c:1625
+#, fuzzy
+msgid "'override' directive"
msgstr "diretiva `override'"
-#: variable.c:1559
-msgid "automatic"
-msgstr "automático"
-
-#: variable.c:1570
-#, c-format
-msgid " (from `%s', line %lu)"
+#: variable.c:1636
+#, fuzzy, c-format
+msgid " (from '%s', line %lu)"
msgstr " (de `%s', linha %lu)"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
msgstr "# tabela hash do conjunto de variávies:\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1884,8 +2109,7 @@ msgstr ""
"\n"
"# Variáveis\n"
-#: variable.c:1627
-#, fuzzy
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
@@ -1893,7 +2117,7 @@ msgstr ""
"\n"
"# Valores da variável de padrões específicos"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
@@ -1901,7 +2125,7 @@ msgstr ""
"\n"
"# Faltam valores para variável de padrões específicos"
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
@@ -1910,92 +2134,92 @@ msgstr ""
"\n"
"# %u valores para variável de padrões específicos"
-#: variable.h:219
-#, c-format
-msgid "warning: undefined variable `%.*s'"
-msgstr ""
-
-#: vmsfunctions.c:92
+#: variable.h:224
#, fuzzy, c-format
+msgid "warning: undefined variable '%.*s'"
+msgstr "aviso: variável indefinida `%.*s'"
+
+#: vmsfunctions.c:91
+#, c-format
msgid "sys$search() failed with %d\n"
-msgstr "sys$search falhou com %d\n"
+msgstr "sys$search() falhou com %d\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr "Aviso: Redireção vazia\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 "erro interno: `%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 "-warning, pode ser preciso reativar o CTRL-Y no DCL.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr "EMBUTIDO [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr "CD EMBUTIDO %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr "RM EMBUTIDO %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
-msgstr "Comandos embutidos desconhecidos `%s'.\n"
+msgstr "Comando embutido desconhecido `%s'.\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr "Erro, comando vazio\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr "Entrada de %s redirecionada\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr "Erro redirecionado para %s\n"
-#: vmsjobs.c:523
-#, fuzzy, c-format
+#: vmsjobs.c:518
+#, c-format
msgid "Append output to %s\n"
-msgstr "Saída redirecionada para %s\n"
+msgstr "Saida redirecionada para %s\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
-msgstr "Saída redirecionada para %s\n"
+msgstr "Saida redirecionada para %s\n"
-#: vmsjobs.c:599
+#: vmsjobs.c:593
#, c-format
msgid "Append %.*s and cleanup\n"
-msgstr ""
+msgstr "Acrescentado %.*s e limpo\n"
-#: vmsjobs.c:606
+#: vmsjobs.c:600
#, c-format
msgid "Executing %s instead\n"
msgstr "Executando %s ao invés de\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr "Erro de execução, %d\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
@@ -2003,51 +2227,66 @@ msgstr ""
"\n"
"# Caminho VPATH\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
+#: vpath.c:600
+#, fuzzy
+msgid "# No 'vpath' search paths."
msgstr "# Sem caminho `vpath'."
-#: 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 caminhos `vpath'.\n"
-#: vpath.c:608
+#: vpath.c:605
+#, fuzzy
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
"# Sem caminho genérico (variável `VPATH')."
-#: vpath.c:614
+#: vpath.c:611
+#, fuzzy
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
"# Caminho genérico (variável `VPATH'):\n"
"# "
-#~ msgid "Syntax error, still inside '\"'\n"
-#~ msgstr "Erro de sintaxe dentro de '\"'\n"
+#~ msgid "# Invalid value in `update_status' member!"
+#~ msgstr "# Valor inválido no membro `update_status' !"
-#~ msgid "Got a SIGCHLD; %u unreaped children.\n"
-#~ msgstr "Recebido um SIGSHLD; %u processos filhos descarregados.\n"
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] Erro 0x%x (ignorado)"
-#~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
-#~ msgstr "-warning, CTRL-Y sairá do(s) subprocesso(s).\n"
+#~ msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
+#~ msgstr "Chamando os comandos de %s:%lu para atualizar o alvo `%s'.\n"
-#~ msgid "Do not specify -j or --jobs if sh.exe is not available."
-#~ msgstr "Não especifique -j ou --jobs se o sh.exe não estiver disponível."
+#~ msgid "Invoking builtin recipe to update target `%s'.\n"
+#~ msgstr "Chamando comandos internos para atualizar o alvo `%s'.\n"
-#~ msgid "Resetting make for single job mode."
-#~ msgstr "Reiniciando o make para o modo de trabalho único."
+#~ msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+#~ msgstr "%s # de buffers strcache: %d (* %d B/buffer = %d B)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "# strcache hash-table stats:\n"
+#~ "# "
+#~ msgstr ""
+#~ "\n"
+#~ "# tabela hash de arquivos:\n"
+#~ "#"
+
+#~ msgid "process_easy() failed failed to launch process (e=%ld)\n"
+#~ msgstr "process_easy() falhou ao executar o processo (e=%ld)\n"
#~ msgid ""
#~ "%sThis is free software; see the source for copying conditions.\n"
@@ -2059,7 +2298,7 @@ msgstr ""
#~ "%sFUNÇÃO EM PARTICULAR.\n"
#~ msgid "extraneous `endef'"
-#~ msgstr "`endef' estranho"
+#~ msgstr "`endef' extranho"
#~ msgid "empty `override' directive"
#~ msgstr "diretiva `override' vazia"
@@ -2067,8 +2306,30 @@ msgstr ""
#~ msgid "invalid `override' directive"
#~ msgstr "diretiva `override' inválida"
+#~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
+#~ msgstr "-warning, CTRL-Y sairá do(s) subprocesso(s).\n"
+
+#~ msgid "Syntax error, still inside '\"'\n"
+#~ msgstr "Erro de sintaxe dentro de '\"'\n"
+
+#~ msgid "Got a SIGCHLD; %u unreaped children.\n"
+#~ msgstr "Recebido um SIGSHLD; %u processos filhos descarregados.\n"
+
+#~ msgid "Do not specify -j or --jobs if sh.exe is not available."
+#~ msgstr "Não especifique -j ou --jobs se o sh.exe não estiver disponível."
+
+#~ msgid "Resetting make for single job mode."
+#~ msgstr "Reiniciando o make para o modo de trabalho único."
+
#~ msgid "no file name for `%sinclude'"
#~ msgstr "sem nome de arquivo para `%sinclude'"
#~ msgid "target `%s' leaves prerequisite pattern empty"
-#~ msgstr "O alvo `%s' deixou o pré-requisito padrão vazio"
+#~ msgstr "O alvo `%s' deixou pre-requisito padrão vazio"
+
+#~ msgid ""
+#~ "\n"
+#~ "# No files."
+#~ msgstr ""
+#~ "\n"
+#~ "# Nenhum arquivo."
diff --git a/po/ru.gmo b/po/ru.gmo
index d868841..6aaf94b 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index 10c18bf..790c4e9 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -5,125 +5,131 @@
#
# Oleg S. Tihonov <tihonov@ffke-campus.mipt.ru>, 1998.
# Denis Perchine <dyp@perchine.com>, 2001, 2002.
-# Yuri Kozlov <yuray@komyakino.ru>, 2009, 2010.
+# Yuri Kozlov <yuray@komyakino.ru>, 2009, 2010, 2013.
# Pavel Maryanov <acid_jack@ukr.net>, 2009.
msgid ""
msgstr ""
-"Project-Id-Version: make 3.81.91\n"
+"Project-Id-Version: make 3.99.93\n"
"Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2010-07-28 01:42-0400\n"
-"PO-Revision-Date: 2010-07-21 21:46+0400\n"
+"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"PO-Revision-Date: 2013-10-02 19:25+0400\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <gnu@mx.ru>\n"
+"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 1.0\n"
+"X-Generator: Lokalize 1.4\n"
-#: ar.c:48
+#: ar.c:46
#, c-format
-msgid "attempt to use unsupported feature: `%s'"
-msgstr "попытка иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÐ¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÐ¼Ð¾Ð³Ð¾ ÑредÑтва: `%s'"
+msgid "attempt to use unsupported feature: '%s'"
+msgstr "попытка иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÐ¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÐ¼Ð¾Ð³Ð¾ ÑредÑтва: «%s»"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
msgstr "обновление времени Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ‡Ð»ÐµÐ½Ð° архива невозможно в ÑиÑтеме VMS"
-#: ar.c:149
+#: ar.c:147
#, c-format
-msgid "touch: Archive `%s' does not exist"
-msgstr "обновление времени изменениÑ: Ðрхив `%s' не ÑущеÑтвует"
+msgid "touch: Archive '%s' does not exist"
+msgstr "обновление времени изменениÑ: Ðрхив «%s» не ÑущеÑтвует"
-#: ar.c:152
+#: ar.c:150
#, c-format
-msgid "touch: `%s' is not a valid archive"
-msgstr "обновление времени изменениÑ: Ðеверный архив: `%s'"
+msgid "touch: '%s' is not a valid archive"
+msgstr "обновление времени изменениÑ: Ðеверный архив: «%s»"
-#: ar.c:159
+#: ar.c:157
#, c-format
-msgid "touch: Member `%s' does not exist in `%s'"
-msgstr "обновление времени изменениÑ: Элемент `%s' не ÑодержитÑÑ Ð² `%s'"
+msgid "touch: Member '%s' does not exist in '%s'"
+msgstr "обновление времени изменениÑ: Элемент «%s» не ÑодержитÑÑ Ð² «%s»"
-#: ar.c:166
+#: ar.c:164
#, c-format
-msgid "touch: Bad return code from ar_member_touch on `%s'"
+msgid "touch: Bad return code from ar_member_touch on '%s'"
msgstr ""
"обновление времени изменениÑ: Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ ar_member_touch вернула\n"
-"ошибочное значение Ð´Ð»Ñ `%s'"
+"ошибочное значение Ð´Ð»Ñ Â«%s»"
-#: arscan.c:69
+#: arscan.c:67
#, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
msgstr "lbr$set_module() не Ñмогла извлечь информацию о модуле, ÑÑ‚Ð°Ñ‚ÑƒÑ = %d"
-#: arscan.c:175
+#: arscan.c:173
#, c-format
msgid "lbr$ini_control() failed with status = %d"
msgstr "lbr$init_control() вернула код ошибки %d"
-#: arscan.c:187
+#: arscan.c:185
#, c-format
-msgid "unable to open library `%s' to lookup member `%s'"
-msgstr "Ошибка Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐ¸ `%s' Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка Ñлемента `%s'"
+msgid "unable to open library '%s' to lookup member '%s'"
+msgstr "Ошибка Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐ¸ «%s» Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка Ñлемента «%s»"
-#: arscan.c:850
+#: arscan.c:847
#, c-format
-msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n"
-msgstr "Элемент `%s'%s: %ld байт по адреÑу %ld (%ld).\n"
+msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
+msgstr "Элемент «%s»%s: %ld байт по адреÑу %ld (%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr " (Ð¸Ð¼Ñ Ð¼Ð¾Ð¶ÐµÑ‚ быть уÑечено)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Дата %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d, gid = %d, mode = 0%o.\n"
-#: commands.c:499
+#: commands.c:406
+#, c-format
+msgid "Recipe has too many lines (%ud)"
+msgstr "Ð’ ÑпоÑобе Ñлишком много Ñтрок (%ud)"
+
+#: commands.c:507
msgid "*** Break.\n"
msgstr "*** ОÑтанов.\n"
-#: commands.c:622
+#: commands.c:630
#, c-format
-msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
-msgstr "*** [%s] Элемент архива `%s', кажетÑÑ, недейÑтвителен; не удалён"
+msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
+msgstr "*** [%s] Элемент архива «%s», кажетÑÑ, недейÑтвителен; не удалён"
-#: commands.c:625
+#: commands.c:633
#, c-format
-msgid "*** Archive member `%s' may be bogus; not deleted"
-msgstr "*** Элемент архива `%s', кажетÑÑ, недейÑтвителен; не удалён"
+msgid "*** Archive member '%s' may be bogus; not deleted"
+msgstr "*** Элемент архива «%s», кажетÑÑ, недейÑтвителен; не удалён"
-#: commands.c:638
+#: commands.c:646
#, c-format
-msgid "*** [%s] Deleting file `%s'"
-msgstr "*** [%s] УдалÑетÑÑ Ñ„Ð°Ð¹Ð» `%s'"
+msgid "*** [%s] Deleting file '%s'"
+msgstr "*** [%s] УдалÑетÑÑ Ñ„Ð°Ð¹Ð» «%s»"
-#: commands.c:640
+#: commands.c:648
#, c-format
-msgid "*** Deleting file `%s'"
-msgstr "*** УдалÑетÑÑ Ñ„Ð°Ð¹Ð» `%s'"
+msgid "*** Deleting file '%s'"
+msgstr "*** УдалÑетÑÑ Ñ„Ð°Ð¹Ð» «%s»"
-#: commands.c:676
+#: commands.c:684
msgid "# recipe to execute"
msgstr "# ÑпоÑоб, который Ñледует применить"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr " (вÑтроенные):"
-#: commands.c:681
+#: commands.c:689
#, c-format
-msgid " (from `%s', line %lu):\n"
-msgstr " (из `%s', Ñтрока %lu):\n"
+msgid " (from '%s', line %lu):\n"
+msgstr " (из «%s», Ñтрока %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -131,222 +137,222 @@ msgstr ""
"\n"
"# Каталоги\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
msgstr "# %s: невозможно получить ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð²Ñ‹Ð·Ð¾Ð²Ð¾Ð¼ stat.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
msgstr "# %s (ключ %s, Ð²Ñ€ÐµÐ¼Ñ Ð¼Ð¾Ð´Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ %d): невозможно открыть.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
msgstr "# %s (уÑтройÑтво %d, inode [%d,%d,%d]): невозможно открыть.\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
msgstr "# %s (уÑтройÑтво %ld, inode %ld): невозможно открыть.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr "# %s (ключ %s, Ð²Ñ€ÐµÐ¼Ñ Ð¼Ð¾Ð´Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ %d): "
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
msgstr "# %s (уÑтройÑтво %d, inode [%d,%d,%d]): "
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
msgstr "# %s (уÑтройÑтво %ld, inode %ld): "
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "Ðет"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " файлов,"
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "нет"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
msgstr " недоÑтижимых целей"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr " на текущий момент."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
msgstr " недоÑтижимых целей в %lu каталогах.\n"
-#: expand.c:127
+#: expand.c:125
#, c-format
-msgid "Recursive variable `%s' references itself (eventually)"
-msgstr "РекурÑÐ¸Ð²Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ `%s' ÑÑылаетÑÑ Ñама на ÑÐµÐ±Ñ (в результате)"
+msgid "Recursive variable '%s' references itself (eventually)"
+msgstr "РекурÑÐ¸Ð²Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Â«%s» ÑÑылаетÑÑ Ñама на ÑÐµÐ±Ñ (в результате)"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
msgstr "Ð½ÐµÐ·Ð°Ð²ÐµÑ€ÑˆÑ‘Ð½Ð½Ð°Ñ ÑÑылка на переменную"
-#: file.c:267
+#: file.c:269
#, c-format
-msgid "Recipe was specified for file `%s' at %s:%lu,"
-msgstr "СпоÑоб Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð° `%s' был задан в %s:%lu,"
+msgid "Recipe was specified for file '%s' at %s:%lu,"
+msgstr "СпоÑоб Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð° «%s» был задан в %s:%lu,"
-#: file.c:272
+#: file.c:274
#, c-format
-msgid "Recipe for file `%s' was found by implicit rule search,"
-msgstr "СпоÑоб Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð° `%s' был найден из неÑвного правила,"
+msgid "Recipe for file '%s' was found by implicit rule search,"
+msgstr "СпоÑоб Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð° «%s» был найден из неÑвного правила,"
-#: file.c:275
+#: file.c:277
#, c-format
-msgid "but `%s' is now considered the same file as `%s'."
-msgstr "но `%s' и `%s' теперь ÑчитаютÑÑ Ð¾Ð´Ð½Ð¸Ð¼ и тем же файлом. "
+msgid "but '%s' is now considered the same file as '%s'."
+msgstr "но «%s» и «%s» теперь ÑчитаютÑÑ Ð¾Ð´Ð½Ð¸Ð¼ и тем же файлом."
-#: file.c:278
+#: file.c:280
#, 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 ""
-"СпоÑоб Ð´Ð»Ñ `%s' игнорируетÑÑ, вмеÑто него будет иÑпользован ÑпоÑоб Ð´Ð»Ñ `%s'."
+"СпоÑоб Ð´Ð»Ñ Â«%s» игнорируетÑÑ, вмеÑто него будет иÑпользован ÑпоÑоб Ð´Ð»Ñ Â«%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 ""
-"невозможно переименовать `%s' Ñ Ð¾Ð´Ð½Ð¸Ð¼ двоеточием в `%s' Ñ Ð´Ð²ÑƒÐ¼Ñ Ð´Ð²Ð¾ÐµÑ‚Ð¾Ñ‡Ð¸Ñми"
+"невозможно переименовать «%s» Ñ Ð¾Ð´Ð½Ð¸Ð¼ двоеточием в «%s» Ñ Ð´Ð²ÑƒÐ¼Ñ Ð´Ð²Ð¾ÐµÑ‚Ð¾Ñ‡Ð¸Ñми"
-#: 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 ""
-"невозможно переименовать `%s' Ñ Ð´Ð²ÑƒÐ¼Ñ Ð´Ð²Ð¾ÐµÑ‚Ð¾Ñ‡Ð¸Ñми в `%s' Ñ Ð¾Ð´Ð½Ð¸Ð¼ двоеточием"
+"невозможно переименовать «%s» Ñ Ð´Ð²ÑƒÐ¼Ñ Ð´Ð²Ð¾ÐµÑ‚Ð¾Ñ‡Ð¸Ñми в «%s» Ñ Ð¾Ð´Ð½Ð¸Ð¼ двоеточием"
-#: file.c:392
+#: file.c:396
#, c-format
-msgid "*** Deleting intermediate file `%s'"
-msgstr "*** Удаление промежуточного файла `%s'"
+msgid "*** Deleting intermediate file '%s'"
+msgstr "*** Удаление промежуточного файла «%s»"
-#: file.c:396
+#: file.c:400
msgid "Removing intermediate files...\n"
msgstr "Удаление промежуточных файлов...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
msgstr "%s: Временной штамп выходит за пределы диапазона; подÑтавлÑем %s"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "Текущее времÑ"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
msgstr "# Ðе ÑвлÑетÑÑ Ñ†ÐµÐ»ÑŒÑŽ:"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
msgstr "# Ценный файл (завиÑимоÑÑ‚ÑŒ .PRECIOUS)."
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
msgstr "# ПÑевдоцель (завиÑимоÑÑ‚ÑŒ от .PHONY)."
-#: file.c:933
+#: file.c:958
msgid "# Command line target."
msgstr "# Цель, Ð²Ñ‹Ð·Ñ‹Ð²Ð°ÐµÐ¼Ð°Ñ Ð¸Ð· командной Ñтроки."
-#: file.c:935
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
msgstr "# По умолчанию, MAKEFILES, или -include/sinclude makefile."
-#: file.c:937
+#: file.c:962
+msgid "# Builtin rule"
+msgstr "# Ð’Ñтроенное правило"
+
+#: file.c:964
msgid "# Implicit rule search has been done."
msgstr "# ПроизводилÑÑ Ð¿Ð¾Ð¸Ñк неÑвных правил."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
msgstr "# ПоиÑк неÑвных правил не производилÑÑ."
-#: file.c:940
+#: file.c:967
#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
-msgstr "# ОÑнова неÑвного или ÑтатичеÑкого образца: `%s'\n"
+msgid "# Implicit/static pattern stem: '%s'\n"
+msgstr "# ОÑнова неÑвного или ÑтатичеÑкого образца: «%s»\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
msgstr "# Файл — Ð¿Ñ€Ð¾Ð¼ÐµÐ¶ÑƒÑ‚Ð¾Ñ‡Ð½Ð°Ñ Ð·Ð°Ð²Ð¸ÑимоÑÑ‚ÑŒ."
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
msgstr "# Собирает также:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
msgstr "# Ð’Ñ€ÐµÐ¼Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ð¸ разу не проверÑлоÑÑŒ."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# Файл не ÑущеÑтвует."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr "# Файл очень Ñтарый."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr "# Ð’Ñ€ÐµÐ¼Ñ Ð¿Ð¾Ñледнего Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# Файл был обновлён."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# Файл не был обновлён."
-#: file.c:968
+#: file.c:995
msgid "# Recipe currently running (THIS IS A BUG)."
msgstr "# Ð’ данный момент уже применÑетÑÑ Ð½ÐµÐºÐ¸Ð¹ ÑпоÑоб (ЭТО ОШИБКÐ)."
-#: file.c:971
+#: file.c:998
msgid "# Dependencies recipe running (THIS IS A BUG)."
msgstr ""
"# Ð’ данный момент уже применÑетÑÑ Ð½ÐµÐºÐ¸Ð¹ ÑпоÑоб по завиÑимоÑÑ‚Ñм (ЭТО ОШИБКÐ)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
msgstr "# УÑпешно обновлено."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
msgstr "# Должно быть обновлено (задан ключ -q)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr "# Попытка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±ÐµÐ·ÑƒÑпешна."
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# Ðеверное значение члена `update_status'!"
+#: file.c:1019
+msgid "# Invalid value in 'command_state' member!"
+msgstr "# Ðеверное значение члена «command_state»!"
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
-msgstr "# Ðеверное значение члена `command_state'!"
-
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -354,7 +360,7 @@ msgstr ""
"\n"
"# Файлы"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
@@ -364,119 +370,171 @@ msgstr ""
"# ÑоÑтоÑние файлов хеш-таблицы:\n"
"# "
-#: function.c:758
-msgid "non-numeric first argument to `word' function"
-msgstr "нечиÑловой первый аргумент функции `word'"
+#: file.c:1051
+#, c-format
+msgid "%s: Field '%s' not cached: %s"
+msgstr "%s: Поле «%s» не кешировано: %s"
+
+#: function.c:742
+msgid "non-numeric first argument to 'word' function"
+msgstr "нечиÑловой первый аргумент функции «word»"
-#: function.c:763
-msgid "first argument to `word' function must be greater than 0"
-msgstr "первый аргумент функции `word' должен быть больше нулÑ"
+#: function.c:747
+msgid "first argument to 'word' function must be greater than 0"
+msgstr "первый аргумент функции «word» должен быть больше нулÑ"
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
-msgstr "нечиÑловой первый аргумент функции `wordlist'"
+#: function.c:767
+msgid "non-numeric first argument to 'wordlist' function"
+msgstr "нечиÑловой первый аргумент функции «wordlist»"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
-msgstr "нечиÑловой второй аргумент функции `wordlist'"
+#: function.c:769
+msgid "non-numeric second argument to 'wordlist' function"
+msgstr "нечиÑловой второй аргумент функции «wordlist»"
-#: function.c:1458
+#: function.c:1460
#, c-format
-msgid "windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"
-msgstr "windows32_openpipe(): DuplicateHandle(In) вернула код ошибки (e=%ld)\n"
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
+msgstr "windows32_openpipe: DuplicateHandle(In) вернула код ошибки (e=%ld)\n"
-#: function.c:1469
+#: function.c:1483
#, c-format
-msgid "windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr ""
-"windows32_open_pipe(): DuplicateHandle(Err) вернула код ошибки (e=%ld)\n"
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
+msgstr "windows32_openpipe: DuplicateHandle(Err) вернула код ошибки (e=%ld)\n"
-#: function.c:1474
+#: function.c:1490
#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
msgstr "CreatePipe() вернула код ошибки (e=%ld)\n"
-#: function.c:1479
+#: function.c:1498
msgid "windows32_openpipe(): process_init_fd() failed\n"
msgstr "windows32_openpipe(): process_init_fd() завершилаÑÑŒ неудачно\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr "Очищаю временный пакетный файл %s\n"
-#: function.c:2150
+#: function.c:2151
+#, c-format
+msgid "open: %s: %s"
+msgstr "открытие: %s: %s"
+
+#: function.c:2158
+#, c-format
+msgid "write: %s: %s"
+msgstr "запиÑÑŒ: %s: %s"
+
+#: function.c:2164
+#, c-format
+msgid "Invalid file operation: %s"
+msgstr "ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼: %s"
+
+#: function.c:2279
+#, c-format
+msgid "insufficient number of arguments (%d) to function '%s'"
+msgstr "недоÑтаточно аргументов (вÑего %d) функции «%s»"
+
+#: function.c:2291
+#, c-format
+msgid "unimplemented on this platform: function '%s'"
+msgstr "не реализовано на Ñтой платформе: Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Â«%s»"
+
+#: function.c:2354
+#, c-format
+msgid "unterminated call to function '%s': missing '%c'"
+msgstr "незавершённый вызов функции «%s»: пропущено «%c»"
+
+#: function.c:2546
+msgid "Empty function name\n"
+msgstr ""
+
+#: function.c:2548
+#, fuzzy, c-format
+msgid "Invalid function name: %s\n"
+msgstr "ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼: %s"
+
+#: function.c:2550
#, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
-msgstr "недоÑтаточно аргументов (вÑего %d) функции `%s'"
+msgid "Function name too long: %s\n"
+msgstr "Слишком длинное Ð¸Ð¼Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸: %s\n"
-#: function.c:2162
+#: function.c:2552
#, c-format
-msgid "unimplemented on this platform: function `%s'"
-msgstr "не реализовано на Ñтой платформе: Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ `%s'"
+msgid "Invalid minimum argument count (%d) for function %s\n"
+msgstr "Ðекорректное минимальное чиÑло аргументов (вÑего %d) функции %s\n"
-#: function.c:2212
+#: function.c:2555
#, c-format
-msgid "unterminated call to function `%s': missing `%c'"
-msgstr "незавершённый вызов функции `%s': пропущено `%c'"
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "Ðекорректное макÑимальное чиÑло аргументов (вÑего %d) функции %s\n"
# Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ getopt иÑключены, Ñ‚.к. они отноÑÑÑ‚ÑÑ Ðº уже
# уÑтаревшей верÑии Ñтой библиотеки, и иÑчезнут в Ñледующей верÑии make
-#
-#: getopt.c:661
+#: getopt.c:659
#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: ключ `%s' не однозначен\n"
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: ключ «%s» не однозначен\n"
-#: getopt.c:685
+#: getopt.c:683
#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: ключ `--%s' не имеет аргумента\n"
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: ключ «--%s» должен иÑпользоватьÑÑ Ð±ÐµÐ· аргумента\n"
-#: getopt.c:690
+#: getopt.c:688
#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: ключ `%c%s' не имеет аргумента\n"
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: ключ «%c%s» должен иÑпользоватьÑÑ Ð±ÐµÐ· аргумента\n"
-#: getopt.c:707 getopt.c:880
+#: getopt.c:705 getopt.c:878
#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: ключ `%s' требует аргумент\n"
+msgid "%s: option '%s' requires an argument\n"
+msgstr "%s: ключу «%s» требуетÑÑ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚\n"
-#: getopt.c:736
+#: getopt.c:734
#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: неизвеÑтный ключ `--%s'\n"
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: неизвеÑтный ключ «--%s»\n"
-#: getopt.c:740
+#: getopt.c:738
#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: неизвеÑтный ключ `%c%s'\n"
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: неизвеÑтный ключ «%c%s»\n"
-#: getopt.c:766
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: недопуÑтимый ключ -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: неверный ключ -- %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: ключ требует аргумент -- %c\n"
-#: getopt.c:846
+#: getopt.c:844
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: ключ «-W %s» неоднозначен\n"
+
+#: getopt.c:862
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: ключ «-W %s» должен иÑпользоватьÑÑ Ð±ÐµÐ· аргумента\n"
+
+#: guile.c:55
#, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
-msgstr "%s: ключ `-W %s' неоднозначен\n"
+msgid "guile: Expanding '%s'\n"
+msgstr "guile: раÑширÑетÑÑ Â«%s»\n"
-#: getopt.c:864
+#: guile.c:71
#, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr "%s: ключ `-W %s' не имеет аргумента\n"
+msgid "guile: Evaluating '%s'\n"
+msgstr "guile: вычиÑлÑетÑÑ Â«%s»\n"
#: hash.c:49
#, c-format
@@ -498,131 +556,154 @@ msgstr "Переформулировано=%d, "
msgid "Collisions=%ld/%ld=%.0f%%"
msgstr "Противоречий=%ld/%ld=%.0f%%"
-#: implicit.c:40
+#: implicit.c:38
#, c-format
-msgid "Looking for an implicit rule for `%s'.\n"
-msgstr "ПоиÑк неÑвного правила Ð´Ð»Ñ `%s'.\n"
+msgid "Looking for an implicit rule for '%s'.\n"
+msgstr "ПоиÑк неÑвного правила Ð´Ð»Ñ Â«%s».\n"
-#: implicit.c:56
+#: implicit.c:54
#, c-format
-msgid "Looking for archive-member implicit rule for `%s'.\n"
-msgstr "ПоиÑк неÑвного правила Ð´Ð»Ñ Ñлемента архива `%s'.\n"
+msgid "Looking for archive-member implicit rule for '%s'.\n"
+msgstr "ПоиÑк неÑвного правила Ð´Ð»Ñ Ñлемента архива «%s».\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
msgstr "Избежание рекурÑивного вызова неÑвного правила.\n"
+#: implicit.c:486
+#, c-format
+msgid "Stem too long: '%.*s'.\n"
+msgstr "Слишком длинный образец: «%.*s».\n"
+
#: implicit.c:491
#, c-format
-msgid "Trying pattern rule with stem `%.*s'.\n"
-msgstr "Попытка Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ñ Ð¾Ð±Ñ€Ð°Ð·Ñ†Ð¾Ð¼, оÑнова `%.*s'.\n"
+msgid "Trying pattern rule with stem '%.*s'.\n"
+msgstr "Попытка Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° Ñ Ð¾Ð±Ñ€Ð°Ð·Ñ†Ð¾Ð¼ «%.*s».\n"
-#: implicit.c:674
+#: implicit.c:697
#, c-format
-msgid "Rejecting impossible rule prerequisite `%s'.\n"
-msgstr "Отвержение невозможной завиÑимоÑти правила `%s'.\n"
+msgid "Rejecting impossible rule prerequisite '%s'.\n"
+msgstr "Отвержение невозможной завиÑимоÑти правила «%s».\n"
-#: implicit.c:675
+#: implicit.c:698
#, c-format
-msgid "Rejecting impossible implicit prerequisite `%s'.\n"
-msgstr "Отвержение невозможной неÑвной завиÑимоÑти `%s'.\n"
+msgid "Rejecting impossible implicit prerequisite '%s'.\n"
+msgstr "Отвержение невозможной неÑвной завиÑимоÑти «%s».\n"
-#: implicit.c:688
+#: implicit.c:711
#, c-format
-msgid "Trying rule prerequisite `%s'.\n"
-msgstr "Попытка Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° завиÑимоÑти `%s'.\n"
+msgid "Trying rule prerequisite '%s'.\n"
+msgstr "Попытка Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° завиÑимоÑти «%s».\n"
-#: implicit.c:689
+#: implicit.c:712
#, c-format
-msgid "Trying implicit prerequisite `%s'.\n"
-msgstr "Попытка Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½ÐµÑвной завиÑимоÑти `%s'.\n"
+msgid "Trying implicit prerequisite '%s'.\n"
+msgstr "Попытка Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½ÐµÑвной завиÑимоÑти «%s».\n"
-#: implicit.c:728
+#: implicit.c:751
#, c-format
-msgid "Found prerequisite `%s' as VPATH `%s'\n"
-msgstr "Обнаружена завиÑимоÑÑ‚ÑŒ `%s' в виде VPATH `%s'\n"
+msgid "Found prerequisite '%s' as VPATH '%s'\n"
+msgstr "Обнаружена завиÑимоÑÑ‚ÑŒ «%s» в виде VPATH «%s»\n"
-#: implicit.c:742
+#: implicit.c:765
#, c-format
-msgid "Looking for a rule with intermediate file `%s'.\n"
-msgstr "ПоиÑк правила Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ¶ÑƒÑ‚Ð¾Ñ‡Ð½Ñ‹Ð¼ файлом `%s'.\n"
+msgid "Looking for a rule with intermediate file '%s'.\n"
+msgstr "ПоиÑк правила Ñ Ð¿Ñ€Ð¾Ð¼ÐµÐ¶ÑƒÑ‚Ð¾Ñ‡Ð½Ñ‹Ð¼ файлом «%s».\n"
-#: job.c:335
+#: job.c:361
msgid "Cannot create a temporary file\n"
msgstr "Ðе удалоÑÑŒ Ñоздать временный файл\n"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] Ошибка 0x%x (игнорирована)"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (Ñделан дамп памÑти)"
+
+#: job.c:487
+msgid " (ignored)"
+msgstr " (игнорирование)"
+
+#: job.c:491 job.c:1994
+msgid "<builtin>"
+msgstr "<вÑтроенное>"
-#: job.c:450
+#: job.c:501
#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] Ошибка 0x%x"
+msgid "%s: recipe for target '%s' failed"
+msgstr "%s: ошибка Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñ€ÐµÑ†ÐµÐ¿Ñ‚Ð° Ð´Ð»Ñ Ñ†ÐµÐ»Ð¸ «%s»"
-#: job.c:454
+#: job.c:510
#, c-format
-msgid "[%s] Error %d (ignored)"
-msgstr "[%s] Ошибка %d (игнорирована)"
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Ошибка 0x%x%s"
-#: job.c:455
+#: job.c:513
#, c-format
-msgid "*** [%s] Error %d"
-msgstr "*** [%s] Ошибка %d"
+msgid "%s[%s] Error %d%s"
+msgstr "%s[%s] Ошибка %d%s"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (Ñделан дамп памÑти)"
+#: job.c:517
+#, c-format
+msgid "%s[%s] %s%s%s"
+msgstr "%s[%s] %s%s%s"
-#: job.c:549
+#: job.c:609
msgid "*** Waiting for unfinished jobs...."
-msgstr "*** Ожидание Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ð¹..."
+msgstr "*** Ожидание Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ð¹â€¦"
-#: job.c:579
+#: job.c:639
#, c-format
msgid "Live child %p (%s) PID %s %s\n"
msgstr "Ðезавершённый потомок %p (%s) PID %s %s\n"
-#: 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 " (удалённый)"
-#: job.c:758
+#: job.c:829
#, c-format
msgid "Reaping losing child %p PID %s %s\n"
msgstr "ПодбираетÑÑ Ð½ÐµÑƒÐ´Ð°Ñ‡Ð½Ð¾ завершившийÑÑ Ð¿Ð¾Ñ‚Ð¾Ð¼Ð¾Ðº %p PID %s %s\n"
-#: job.c:759
+#: job.c:830
#, c-format
msgid "Reaping winning child %p PID %s %s\n"
msgstr "ПодбираетÑÑ ÑƒÐ´Ð°Ñ‡Ð½Ð¾ завершившийÑÑ Ð¿Ð¾Ñ‚Ð¾Ð¼Ð¾Ðº %p PID %s %s\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
msgstr "Подчищаю временный пакетный файл %s\n"
-#: job.c:861
+#: job.c:843
+#, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "ОчиÑтка временного пакетного файла %s завершилаÑÑŒ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹ (%d)\n"
+
+#: job.c:949
#, c-format
msgid "Removing child %p PID %s%s from chain.\n"
msgstr "УдалÑетÑÑ Ð¿Ð¾Ñ‚Ð¾Ð¼Ð¾Ðº %p PID %s%s из цепочки.\n"
-#: job.c:920
-msgid "write jobserver"
-msgstr "пишу в Ñервер задач"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr "оÑвобождение Ñемафора Ñервера заданий: (ошибка %ld: %s)"
-#: job.c:922
+#: job.c:1011 job.c:1025
#, c-format
msgid "Released token for child %p (%s).\n"
-msgstr "ОÑвобождаетÑÑ Ñ‚Ð¾ÐºÐµÐ½ Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾Ð¼ÐºÐ° %p (%s).\n"
+msgstr "ОÑвобождён токен Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾Ð¼ÐºÐ° %p (%s).\n"
-#: job.c:1453 job.c:2094
+#: job.c:1023
+msgid "write jobserver"
+msgstr "запиÑÑŒ Ñервера заданий"
+
+#: job.c:1612 job.c:2332
#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
msgstr "process_easy() не Ñмогла запуÑтить процеÑÑ (e=%ld)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
@@ -631,84 +712,105 @@ msgstr ""
"\n"
"При неудачном запуÑке ÑоÑчитано %d аргументов\n"
-#: job.c:1525
+#: job.c:1685
#, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
msgstr "Помещение потомка %p (%s) PID %s%s в цепочку потомков.\n"
-#: job.c:1778
+#: job.c:1953
+#, c-format
+msgid "semaphore or child process wait: (Error %ld: %s)"
+msgstr "ожидание Ñемафора или процеÑÑа-потомка: (ошибка %ld: %s)"
+
+#: job.c:1967
#, c-format
msgid "Obtained token for child %p (%s).\n"
msgstr "Получен токен Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾Ð¼ÐºÐ° %p (%s).\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
-msgstr "читаю задачи из потока"
+msgstr "чтение потока заданий"
-#: job.c:1798
+#: job.c:2003
#, c-format
-msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
-msgstr "ПрименÑетÑÑ ÑпоÑоб из %s:%lu Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ†ÐµÐ»Ð¸ `%s'.\n"
+msgid "%s: target '%s' does not exist"
+msgstr "%s: цель «%s» не ÑущеÑтвует"
-#: job.c:1802
+#: job.c:2005
#, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "ВыполнÑетÑÑ Ð²Ñтроенный ÑпоÑоб Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ†ÐµÐ»Ð¸ `%s'.\n"
+msgid "%s: update target '%s' due to: %s"
+msgstr "%s: обновление цели «%s» из-за: %s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
msgstr "Ñта Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема не позволÑет уÑтанавливать пределы загрузки"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
msgstr "невозможно уÑтановить пределы загрузки: "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
msgstr "закончилиÑÑŒ файловые деÑкрипторы: не удалоÑÑŒ Ñделать копию stdin\n"
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
msgstr "закончилиÑÑŒ файловые деÑкрипторы: не удалоÑÑŒ Ñделать копию stdout\n"
-#: job.c:2015
+#: job.c:2223
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr "закончилиÑÑŒ файловые деÑкрипторы: не удалоÑÑŒ Ñделать копию stderr\n"
+
+#: job.c:2238
msgid "Could not restore stdin\n"
msgstr "Ðе удалоÑÑŒ воÑÑтановить stdin\n"
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
msgstr "Ðе удалоÑÑŒ воÑÑтановить stdout\n"
-#: job.c:2127
+#: job.c:2254
+msgid "Could not restore stderr\n"
+msgstr "Ðе удалоÑÑŒ воÑÑтановить stderr\n"
+
+#: job.c:2365
#, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
msgstr "make нашла завершившегоÑÑ Ð¿Ð¾Ñ‚Ð¾Ð¼ÐºÐ° pid %s, вÑÑ‘ ещё ожидает pid %s\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
msgstr "%s: Команда не найдена"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr "%s: Командный процеÑÑор не найден"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
msgstr "spawnvpe: вероÑтно, закончилоÑÑŒ меÑто под окружение"
-#: job.c:2461
+#: job.c:2709
#, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
-msgstr "ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ $SHELL изменилаÑÑŒ (было '%s', теперь '%s')\n"
+msgid "$SHELL changed (was '%s', now '%s')\n"
+msgstr "ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ $SHELL изменилаÑÑŒ (было «%s», теперь «%s»)\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr "СоздаётÑÑ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ð¹ пакетный файл %s\n"
-#: job.c:2963
+#: job.c:3148
+msgid ""
+"Batch file contents:\n"
+"\t@echo off\n"
+msgstr ""
+"Содержимое файла пакетных заданий:\n"
+"\t@echo off\n"
+
+#: job.c:3337
#, c-format
msgid ""
"Batch file contents:%s\n"
@@ -717,26 +819,59 @@ msgstr ""
"Содержимое файла пакетных заданий:%s\n"
"\t%s\n"
-#: job.c:3065
+#: job.c:3444
#, c-format
msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
msgstr ""
"%s (Ñтрока %d) Плохой контекÑÑ‚ командного процеÑÑора (!unixy && !"
"batch_mode_shell)\n"
-#: main.c:303
+#: job.h:43
+msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
+msgstr "-O[ТИП] (--output-sync[=ТИП]) не наÑтроен в данной Ñборке."
+
+#: load.c:53
+#, c-format
+msgid "Failed to open global symbol table: %s"
+msgstr "Ðе удалоÑÑŒ открыть глобальную таблицу Ñимволов: %s"
+
+#: load.c:87
+#, c-format
+msgid "Loaded object %s is not declared to be GPL compatible"
+msgstr "Загруженный объект %s не объÑвлено как ÑовмеÑтимый Ñ GPL"
+
+#: load.c:92
+#, c-format
+msgid "Failed to load symbol %s from %s: %s"
+msgstr "Ðе удалоÑÑŒ загрузить Ñимвол %s из %s: %s"
+
+#: load.c:136
+#, c-format
+msgid "Empty symbol name for load: %s"
+msgstr "ПуÑтое Ð¸Ð¼Ñ Ñимвола Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸: %s"
+
+#: load.c:191
+#, c-format
+msgid "Loading symbol %s from %s\n"
+msgstr "ЗагружаетÑÑ Ñимвол %s из %s\n"
+
+#: load.c:229
+msgid "The 'load' operation is not supported on this platform."
+msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Â«load» не поддерживаетÑÑ Ð½Ð° Ñтой платформе."
+
+#: main.c:312
msgid "Options:\n"
msgstr "Ключи:\n"
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
msgstr " -b, -m ИгнорируетÑÑ Ð´Ð»Ñ ÑовмеÑтимоÑти.\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr " -B, --always-make Без уÑловий отрабатывать вÑе цели.\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
@@ -744,18 +879,18 @@ msgstr ""
" -C КÐТÐЛОГ, --directory=КÐТÐЛОГ\n"
" Перейти в КÐТÐЛОГ перед выполнением дейÑтвий.\n"
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
msgstr " -d Выводить маÑÑу отладочных Ñообщений.\n"
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
" --debug[=ФЛÐГИ] Выводить различные типы отладочной "
"информации.\n"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
@@ -764,13 +899,13 @@ msgstr ""
" Переменные Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ Ð·Ð°Ð¼ÐµÐ½ÑÑŽÑ‚ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ "
"makefile.\n"
-#: main.c:318
+#: main.c:327
msgid ""
" --eval=STRING Evaluate STRING as a makefile statement.\n"
msgstr ""
" --eval=СТРОКРВычиÑлить СТРОКУ как предложение makefile.\n"
-#: main.c:320
+#: main.c:329
msgid ""
" -f FILE, --file=FILE, --makefile=FILE\n"
" Read FILE as a makefile.\n"
@@ -778,15 +913,15 @@ msgstr ""
" -f ФÐЙЛ, --file=ФÐЙЛ, --makefile=ФÐЙЛ\n"
" ИÑпользовать ФÐЙЛ в качеÑтве makefile.\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
msgstr " -h, --help Показать Ñту Ñправку и выйти.\n"
-#: main.c:325
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
msgstr " -i, --ignore-errors Игнорировать ошибки ÑпоÑобов.\n"
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
@@ -794,7 +929,7 @@ msgstr ""
" -I КÐТÐЛОГ, --include-dir=КÐТÐЛОГ\n"
" ИÑкать включаемые make-файлы в КÐТÐЛОГЕ.\n"
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
@@ -803,14 +938,14 @@ msgstr ""
" еÑли 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 Продолжать работу, даже еÑли некоторые цели\n"
" не могут быть доÑтигнуты.\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 "
@@ -819,7 +954,7 @@ msgstr ""
" -l [N], --load-average[=N], --max-load[=N] Ðе запуÑкать\n"
" неÑколько заданий, еÑли загрузка больше N.\n"
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
@@ -827,7 +962,7 @@ msgstr ""
" -L, --check-symlink-times ИÑпользовать поÑледнее mtime при выборе между\n"
" ÑимволичеÑкими ÑÑылками и целью.\n"
-#: main.c:339
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
@@ -837,7 +972,7 @@ msgstr ""
" Ðе применÑÑ‚ÑŒ ÑпоÑоб на Ñамом деле; проÑто\n"
" напечатать его.\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 "
@@ -847,12 +982,21 @@ msgstr ""
" Считать ФÐЙЛ очень Ñтарым и не переделывать "
"его.\n"
-#: main.c:345
+#: main.c:354
+msgid ""
+" -O[TYPE], --output-sync[=TYPE]\n"
+" Synchronize output of parallel jobs by TYPE.\n"
+msgstr ""
+" -O[ТИП], --output-sync[=ТИП]\n"
+" Синхронизировать вывод параллельных\n"
+" заданий Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼ ТИП.\n"
+
+#: main.c:357
msgid " -p, --print-data-base Print make's internal database.\n"
msgstr ""
" -p, --print-data-base Ðапечатать внутреннюю базу данных make.\n"
-#: main.c:347
+#: main.c:359
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
@@ -861,23 +1005,23 @@ msgstr ""
" код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·Ñ‹Ð²Ð°ÐµÑ‚, вÑÑ‘ ли уже "
"Ñделано.\n"
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr ""
" -r, --no-builtin-rules Ðе иÑпользовать вÑтроенные неÑвные правила.\n"
# Что такое "variable settings"?
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr ""
" -R, --no-builtin-variables Выключить уÑтановку вÑтроенных\n"
" значений переменных.\n"
-#: main.c:353
+#: main.c:365
msgid " -s, --silent, --quiet Don't echo recipes.\n"
msgstr " -s, --silent, --quiet Ðе показывать Ñами ÑпоÑобы.\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
@@ -885,22 +1029,26 @@ msgstr ""
" -S, --no-keep-going, --stop\n"
" Отменить ключ -k.\n"
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
" -t, --touch УÑтановить Ð²Ñ€ÐµÐ¼Ñ Ð´Ð¾Ñтупа целей в текущее,\n"
" а не переÑобирать их.\n"
-#: main.c:360
+#: main.c:372
+msgid " --trace Print tracing information.\n"
+msgstr " --trace Выводить траÑÑировочную информацию.\n"
+
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr " -v, --version Показать информацию о верÑии и выйти.\n"
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
msgstr " -w, --print-directory Ðапечатать текущий каталог.\n"
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
@@ -908,7 +1056,7 @@ msgstr ""
" --no-print-directory Отменить ключ -w, даже еÑли он был Ñвно "
"указан.\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"
@@ -916,7 +1064,7 @@ msgstr ""
" -W ФÐЙЛ, --what-if=ФÐЙЛ, --new-file=ФÐЙЛ, --assume-new=ФÐЙЛ\n"
" Считать ФÐЙЛ вÑегда новым.\n"
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
@@ -924,21 +1072,30 @@ msgstr ""
" --warn-undefined-variables Выдавать предупреждение при ÑÑылке\n"
" на неопределённую переменную.\n"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
msgstr "пуÑÑ‚Ð°Ñ Ñтрока недопуÑтима в качеÑтве имени файла"
-#: main.c:650
+#: main.c:734
+#, c-format
+msgid "unknown debug level specification '%s'"
+msgstr "задан неизвеÑтный уровень отладки «%s»"
+
+#: main.c:777
#, c-format
-msgid "unknown debug level specification `%s'"
-msgstr "неизвеÑтный ÑпоÑоб Ð·Ð°Ð´Ð°Ð½Ð¸Ñ ÑƒÑ€Ð¾Ð²Ð½Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸ `%s'"
+msgid "unknown output-sync type '%s'"
+msgstr "неизвеÑтный тип output-sync «%s»"
-#: main.c:690
+#: main.c:787
+msgid "internal error: multiple --sync-mutex options"
+msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: неÑколько ключей --sync-mutex"
+
+#: main.c:848
#, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
msgstr "%s: поймано прерывание или иÑключение (код = 0x%lx, Ð°Ð´Ñ€ÐµÑ = 0x%p)\n"
-#: main.c:697
+#: main.c:855
#, c-format
msgid ""
"\n"
@@ -953,162 +1110,185 @@ msgstr ""
"Флаги иÑÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ = %lx\n"
"ÐÐ´Ñ€ÐµÑ Ð¸ÑÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ = 0x%p\n"
-#: main.c:705
+#: main.c:863
#, c-format
msgid "Access violation: write operation at address 0x%p\n"
msgstr "Ðарушение доÑтупа: Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñи по адреÑу 0x%p\n"
-#: main.c:706
+#: main.c:864
#, c-format
msgid "Access violation: read operation at address 0x%p\n"
msgstr "Ðарушение доÑтупа: Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð°Ð´Ñ€ÐµÑа 0x%p\n"
-#: main.c:781 main.c:792
+#: main.c:940 main.c:955
#, c-format
msgid "find_and_set_shell() setting default_shell = %s\n"
msgstr "find_and_set_shell() уÑтанавливает default_shell = %s\n"
-#: main.c:834
+#: main.c:1008
#, c-format
msgid "find_and_set_shell() path search set default_shell = %s\n"
msgstr "find_and_set_shell(): поиÑк в путÑÑ… уÑтанавливает default_shell = %s\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr "%s приоÑтанавливаетÑÑ Ð½Ð° 30 Ñекунд..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr "sleep(30) завершён. Продолжаем.\n"
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr "Makefile из Ñтандартного ввода указан дважды."
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr "fopen (временный файл)"
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr "fwrite (временный файл)"
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "Параллельные задачи (-j) не поддерживаютÑÑ Ð½Ð° Ñтой платформе."
-
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
-msgstr "ВозвращаетÑÑ Ñ€ÐµÐ¶Ð¸Ð¼ одиночной задачи (-j1)."
-
-#: main.c:1719
+#: main.c:1534
msgid "internal error: multiple --jobserver-fds options"
msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: неÑколько ключей --jobserver-fds"
-#: main.c:1727
+#: main.c:1544
+#, c-format
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
+msgstr ""
+"внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: не удалоÑÑŒ открыть Ñемафор Ñервера заданий «%s»: (ошибка "
+"%ld: %s)"
+
+#: main.c:1547
+#, c-format
+msgid "Jobserver client (semaphore %s)\n"
+msgstr "Клиент Ñервера заданий (Ñемафор %s)\n"
+
+#: main.c:1551
#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
-msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ñтрока --jobserver-fds: `%s'"
+msgid "internal error: invalid --jobserver-fds string '%s'"
+msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ñтрока --jobserver-fds «%s»"
-#: main.c:1730
+#: main.c:1554
#, c-format
msgid "Jobserver client (fds %d,%d)\n"
msgstr "Клиент Ñервера заданий (fds %d,%d)\n"
-#: main.c:1740
+#: main.c:1567
msgid "warning: -jN forced in submake: disabling jobserver mode."
msgstr ""
-"предупреждение: в Ñуб-Makefile принудительно задан -jN; режим Ñервера задач "
-"запрещён"
+"предупреждение: в Ñуб-Makefile принудительно задан -jN; режим Ñервера "
+"заданий запрещён"
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
-msgstr "Ñоздаю копию Ñервера задач"
+msgstr "Ñоздаю копию Ñервера заданий"
-#: main.c:1753
+#: main.c:1586
msgid ""
-"warning: jobserver unavailable: using -j1. Add `+' to parent make rule."
+"warning: jobserver unavailable: using -j1. Add '+' to parent make rule."
msgstr ""
-"предупреждение: Ñервер задач недоÑтупен: иÑпользуетÑÑ -j1.\n"
-"Добавьте `+' к правилу в родительÑком make."
+"предупреждение: Ñервер заданий недоÑтупен: иÑпользуетÑÑ -j1. Добавьте «+» к "
+"правилу в родительÑком make."
+
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "Makefile из Ñтандартного ввода указан дважды."
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (временный файл)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (временный файл)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr "Параллельные Ð·Ð°Ð´Ð°Ð½Ð¸Ñ (-j) не поддерживаютÑÑ Ð½Ð° Ñтой платформе."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "ВозвращаетÑÑ Ñ€ÐµÐ¶Ð¸Ð¼ одиночного Ð·Ð°Ð´Ð°Ð½Ð¸Ñ (-j1)."
+
+#: main.c:2006
+#, c-format
+msgid "Jobserver slots limited to %d\n"
+msgstr "КоличеÑтво Ñлотов Ñервера заданий ограничено %d\n"
-#: main.c:1777
+#: main.c:2012
+#, c-format
+msgid "creating jobserver semaphore: (Error %ld: %s)"
+msgstr "Ñоздание Ñемафора Ñервера заданий: (ошибка %ld: %s)"
+
+#: main.c:2019
msgid "creating jobs pipe"
-msgstr "Ñоздаю канал задач"
+msgstr "ÑоздаётÑÑ ÐºÐ°Ð½Ð°Ð» заданий"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
-msgstr "Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð½Ð°Ñтройка Ñервера задач"
+msgstr "Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð½Ð°Ñтройка Ñервера заданий"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
msgstr "СимволичеÑкие ÑÑылки не поддерживаютÑÑ: отменÑетÑÑ ÐºÐ»ÑŽÑ‡ -L."
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr "Обновление make-файлов....\n"
-#: main.c:1917
+#: main.c:2174
#, c-format
-msgid "Makefile `%s' might loop; not remaking it.\n"
-msgstr "Make-файл `%s', возможно, зациклен, он не будет переÑобиратьÑÑ.\n"
+msgid "Makefile '%s' might loop; not remaking it.\n"
+msgstr "Make-файл «%s», возможно, зациклен, он не будет переÑобиратьÑÑ.\n"
-#: main.c:1996
+#: main.c:2253
#, c-format
-msgid "Failed to remake makefile `%s'."
-msgstr "Попытка переÑобрать make-файл `%s' завершилаÑÑŒ неудачно."
+msgid "Failed to remake makefile '%s'."
+msgstr "Попытка переÑобрать make-файл «%s» завершилаÑÑŒ неудачно."
-#: main.c:2013
+#: main.c:2270
#, c-format
-msgid "Included makefile `%s' was not found."
-msgstr "Включаемый make-файл `%s' не найден."
+msgid "Included makefile '%s' was not found."
+msgstr "Включаемый make-файл «%s» не найден."
-#: main.c:2018
+#: main.c:2275
#, c-format
-msgid "Makefile `%s' was not found"
-msgstr "Make-файл `%s' не найден"
+msgid "Makefile '%s' was not found"
+msgstr "Make-файл «%s» не найден"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
msgstr "Ðевозможно перейти в первоначальный каталог."
-#: main.c:2102
+#: main.c:2354
#, c-format
msgid "Re-executing[%u]:"
msgstr "Повторное выполнение[%u]:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr "unlink (временный файл)"
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
msgstr ".DEFAULT_GOAL Ñодержит более одной цели"
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
msgstr "Ðе заданы цели и не найден make-файл"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "Ðет целей"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
msgstr "Обновление целей результата...\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr "предупреждение: Ðеправильный ход чаÑов. Сборка может быть неполной."
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
msgstr "ИÑпользование: %s [КЛЮЧ]... [ЦЕЛЬ]...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
@@ -1117,7 +1297,7 @@ msgstr ""
"\n"
"Эта программа Ñобрана Ð´Ð»Ñ %s\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
@@ -1126,32 +1306,32 @@ msgstr ""
"\n"
"Эта программа Ñобрана Ð´Ð»Ñ %s (%s)\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
msgstr "Сообщайте об ошибках по адреÑу <bug-make@gnu.org>\n"
-#: main.c:2562
+#: main.c:2810
#, c-format
-msgid "the `%s%s' option requires a non-empty string argument"
-msgstr "длÑ ключа `%s%s' нужно указать аргументом непуÑтую Ñтроку"
+msgid "the '%s%s' option requires a non-empty string argument"
+msgstr "длÑ ключа «%s%s» нужно указать аргументом непуÑтую Ñтроку"
-#: main.c:2617
+#: main.c:2864
#, c-format
-msgid "the `-%c' option requires a positive integral argument"
-msgstr "ключ `-%c' должен иÑпользоватьÑÑ Ñ Ñ†ÐµÐ»Ñ‹Ð¼ положительным аргументом"
+msgid "the '-%c' option requires a positive integer argument"
+msgstr "ключ «-%c» должен иÑпользоватьÑÑ Ñ Ñ†ÐµÐ»Ñ‹Ð¼ положительным аргументом"
-#: main.c:3054
+#: main.c:3253
#, c-format
msgid "%sBuilt for %s\n"
msgstr "%sЭта программа Ñобрана Ð´Ð»Ñ %s\n"
-#: main.c:3056
+#: main.c:3255
#, c-format
msgid "%sBuilt for %s (%s)\n"
msgstr "%sЭта программа Ñобрана Ð´Ð»Ñ %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."
@@ -1164,7 +1344,7 @@ msgstr ""
"%sЭто Ñвободное программное обеÑпечение: вы можете Ñвободно изменÑÑ‚ÑŒ его и\n"
"%sраÑпроÑтранÑÑ‚ÑŒ. ÐЕТ ÐИКÐКИХ ГÐРÐÐТИЙ вне пределов, допуÑтимых законом.\n"
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
@@ -1173,7 +1353,7 @@ msgstr ""
"\n"
"# База данных Make, напечатана %s"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
@@ -1182,109 +1362,109 @@ msgstr ""
"\n"
"# Печать базы данных Make завершена %s\n"
-#: main.c:3237
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° %d"
+
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "закончилаÑÑŒ Ð²Ð¸Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ð¿Ð°Ð¼ÑÑ‚ÑŒ"
+
+#: misc.c:522
+#, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr ""
+"%s: пользователь %lu (дейÑтвительный %lu),\n"
+"группа %lu (дейÑÑ‚Ð²Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ %lu)\n"
+
+#: misc.c:543
+msgid "Initialized access"
+msgstr "ДоÑтуп инициализации"
+
+#: misc.c:622
+msgid "User access"
+msgstr "ДоÑтуп пользователÑ"
+
+#: misc.c:670
+msgid "Make access"
+msgstr "ДоÑтуп make"
+
+#: misc.c:704
+msgid "Child access"
+msgstr "ДоÑтуп потомка"
+
+#: output.c:128
#, c-format
msgid "%s: Entering an unknown directory\n"
msgstr "%s: Вход в неизвеÑтный каталог\n"
-#: main.c:3239
+#: output.c:130
#, c-format
msgid "%s: Leaving an unknown directory\n"
msgstr "%s: Выход из неизвеÑтного каталога\n"
-#: main.c:3242
+#: output.c:133
#, c-format
-msgid "%s: Entering directory `%s'\n"
-msgstr "%s: Вход в каталог `%s'\n"
+msgid "%s: Entering directory '%s'\n"
+msgstr "%s: вход в каталог «%s»\n"
-#: main.c:3245
+#: output.c:135
#, c-format
-msgid "%s: Leaving directory `%s'\n"
-msgstr "%s: Выход из каталога `%s'\n"
+msgid "%s: Leaving directory '%s'\n"
+msgstr "%s: выход из каталога «%s»\n"
-#: main.c:3250
+#: output.c:139
#, c-format
msgid "%s[%u]: Entering an unknown directory\n"
-msgstr "%s[%u]: Вход в неизвеÑтный каталог\n"
+msgstr "%s[%u]: вход в неизвеÑтный каталог\n"
-#: main.c:3253
+#: output.c:141
#, c-format
msgid "%s[%u]: Leaving an unknown directory\n"
-msgstr "%s[%u]: Выход из неизвеÑтного каталога\n"
+msgstr "%s[%u]: выход из неизвеÑтного каталога\n"
-#: main.c:3257
+#: output.c:144
#, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
-msgstr "%s[%u]: Вход в каталог `%s'\n"
+msgid "%s[%u]: Entering directory '%s'\n"
+msgstr "%s[%u]: вход в каталог «%s»\n"
-#: main.c:3260
+#: output.c:146
#, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
-msgstr "%s[%u]: Выход из каталога `%s'\n"
+msgid "%s[%u]: Leaving directory '%s'\n"
+msgstr "%s[%u]: выход из каталога «%s»\n"
-#: misc.c:316
+#: output.c:515
+#, c-format
+msgid "write error: %s"
+msgstr "ошибка запиÑи: %s"
+
+#: output.c:517
+msgid "write error"
+msgstr "ошибка запиÑи"
+
+#: output.c:740
msgid ". Stop.\n"
msgstr ". ОÑтанов.\n"
-#: misc.c:337
-#, c-format
-msgid "Unknown error %d"
-msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° %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 "закончилаÑÑŒ Ð²Ð¸Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ð¿Ð°Ð¼ÑÑ‚ÑŒ"
-
-#: misc.c:708
-#, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr ""
-"%s: пользователь %lu (дейÑтвительный %lu),\n"
-"группа %lu (дейÑÑ‚Ð²Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ %lu)\n"
-
-#: misc.c:729
-msgid "Initialized access"
-msgstr "ДоÑтуп инициализации"
-
-#: misc.c:808
-msgid "User access"
-msgstr "ДоÑтуп пользователÑ"
-
-#: misc.c:856
-msgid "Make access"
-msgstr "ДоÑтуп make"
-
-#: misc.c:890
-msgid "Child access"
-msgstr "ДоÑтуп потомка"
-
-#: misc.c:954
-#, c-format
-msgid "write error: %s"
-msgstr "ошибка запиÑи: %s"
-
-#: misc.c:956
-msgid "write error"
-msgstr "ошибка запиÑи"
-
-#: read.c:179
+#: read.c:180
msgid "Reading makefiles...\n"
msgstr "Чтение make-файлов...\n"
#: read.c:333
#, c-format
-msgid "Reading makefile `%s'"
-msgstr "Чтение make-файла `%s'"
+msgid "Reading makefile '%s'"
+msgstr "Чтение make-файла «%s»"
#: read.c:335
#, c-format
@@ -1306,323 +1486,338 @@ msgstr " (игнорировать ошибки)"
msgid " (no ~ expansion)"
msgstr " (не раÑкрывать Ñимвол `~') "
-#: read.c:759
+#: read.c:652
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile '%s'\n"
+msgstr "ПропуÑк UTF-8 BOM в make-файле «%s»\n"
+
+#: read.c:655
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile buffer\n"
+msgstr "ПропуÑк UTF-8 BOM в буфере make-файла\n"
+
+#: read.c:786
msgid "invalid syntax in conditional"
msgstr "неверный ÑинтакÑÐ¸Ñ Ð² уÑловном выражении"
-#: read.c:891
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr "%s: не удалоÑÑŒ загрузить"
+
+#: read.c:987
msgid "recipe commences before first target"
msgstr "обнаружен ÑпоÑоб до первого Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñ†ÐµÐ»Ð¸"
-#: read.c:940
+#: read.c:1036
msgid "missing rule before recipe"
msgstr "перед ÑпоÑобом отÑутÑтвует правило"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
msgstr "пропущен разделитель%s"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
msgstr "(не имели ли вы в виду TAB вмеÑто воÑьми пробелов?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
msgstr "пропущен образец цели"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
msgstr "неÑколько образцов цели"
-#: read.c:1169
+#: read.c:1269
#, c-format
-msgid "target pattern contains no `%%'"
-msgstr "образец цели не Ñодержит `%%'"
+msgid "target pattern contains no '%%'"
+msgstr "образец цели не Ñодержит «%%»"
-#: read.c:1293
-msgid "missing `endif'"
-msgstr "пропущена `endif'"
+#: read.c:1391
+msgid "missing 'endif'"
+msgstr "отÑутÑтвует «endif»"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "пуÑтое Ð¸Ð¼Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð¾Ð¹"
-#: read.c:1367
-msgid "extraneous text after `define' directive"
-msgstr "излишний текÑÑ‚ поÑле директивы `define'"
+#: read.c:1465
+msgid "extraneous text after 'define' directive"
+msgstr "излишний текÑÑ‚ поÑле директивы «define»"
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
-msgstr "пропущена `endif', Ð½ÐµÐ·Ð°Ð²ÐµÑ€ÑˆÑ‘Ð½Ð½Ð°Ñ `define'"
+#: read.c:1490
+msgid "missing 'endef', unterminated 'define'"
+msgstr "отÑутÑтвует «endif», Ð½ÐµÐ·Ð°Ð²ÐµÑ€ÑˆÑ‘Ð½Ð½Ð°Ñ Â«define»"
-#: read.c:1420
-msgid "extraneous text after `endef' directive"
-msgstr "излишний текÑÑ‚ поÑле директивы `endef'"
+#: read.c:1518
+msgid "extraneous text after 'endef' directive"
+msgstr "излишний текÑÑ‚ поÑле директивы «endef»"
-#: read.c:1490
+#: read.c:1589
#, c-format
-msgid "Extraneous text after `%s' directive"
-msgstr "Излишний текÑÑ‚ поÑле директивы `%s'"
+msgid "extraneous text after '%s' directive"
+msgstr "Излишний текÑÑ‚ поÑле директивы «%s»"
-#: read.c:1499 read.c:1513
+#: read.c:1598 read.c:1612
#, c-format
-msgid "extraneous `%s'"
-msgstr "излишнÑÑ `%s'"
+msgid "extraneous '%s'"
+msgstr "излишнÑÑ Â«%s»"
-#: read.c:1518
-msgid "only one `else' per conditional"
-msgstr "в уÑловном выражении возможна только одна `else'"
+#: read.c:1617
+msgid "only one 'else' per conditional"
+msgstr "в уÑловном выражении возможна только одна «else»"
-#: read.c:1797
+#: read.c:1892
msgid "Malformed target-specific variable definition"
msgstr "Ðеправильный формат Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð¾Ð¹ цели"
-#: read.c:1855
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
msgstr "в ÑпоÑобах не могут задаватьÑÑ Ð·Ð°Ð²Ð¸ÑимоÑти"
-#: 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
+#: read.c:2084
#, c-format
-msgid "target `%s' doesn't match the target pattern"
-msgstr "цель `%s' не ÑоответÑтвует образцу целей"
+msgid "target '%s' doesn't match the target pattern"
+msgstr "цель «%s» не ÑоответÑтвует образцу целей"
-#: read.c:1991 read.c:2036
+#: read.c:2099 read.c:2144
#, c-format
-msgid "target file `%s' has both : and :: entries"
-msgstr "целевой файл `%s' имеет Ð²Ñ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¸ Ñ `:', и Ñ `::' "
+msgid "target file '%s' has both : and :: entries"
+msgstr "целевой файл «%s» имеет Ð²Ñ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¸ Ñ :, и Ñ ::"
-#: read.c:1997
+#: read.c:2105
#, c-format
-msgid "target `%s' given more than once in the same rule."
-msgstr "цель `%s' указана неÑколько раз в одном правиле"
+msgid "target '%s' given more than once in the same rule"
+msgstr "цель «%s» указана неÑколько раз в одном правиле"
-#: read.c:2006
+#: read.c:2114
#, c-format
-msgid "warning: overriding recipe for target `%s'"
-msgstr "предупреждение: переопределение ÑпоÑоба Ð´Ð»Ñ Ñ†ÐµÐ»Ð¸ `%s'"
+msgid "warning: overriding recipe for target '%s'"
+msgstr "предупреждение: переопределение ÑпоÑоба Ð´Ð»Ñ Ñ†ÐµÐ»Ð¸ «%s»"
-#: read.c:2009
+#: read.c:2117
#, c-format
-msgid "warning: ignoring old recipe for target `%s'"
-msgstr "предупреждение: Ñтарый ÑпоÑоб Ð´Ð»Ñ Ñ†ÐµÐ»Ð¸ `%s' игнорируютÑÑ"
+msgid "warning: ignoring old recipe for target '%s'"
+msgstr "предупреждение: Ñтарый ÑпоÑоб Ð´Ð»Ñ Ñ†ÐµÐ»Ð¸ «%s» игнорируютÑÑ"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
msgstr "предупреждение: вÑтречен Ñимвол NUL; игнорируетÑÑ Ð´Ð¾ конца Ñтроки"
-#: remake.c:234
+#: remake.c:232
#, c-format
-msgid "Nothing to be done for `%s'."
-msgstr "Цель `%s' не требует Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´."
+msgid "Nothing to be done for '%s'."
+msgstr "Цель «%s» не требует Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´."
-#: remake.c:235
+#: remake.c:233
#, c-format
-msgid "`%s' is up to date."
-msgstr "`%s' не требует обновлениÑ."
+msgid "'%s' is up to date."
+msgstr "«%s» не требует обновлениÑ."
-#: remake.c:306
+#: remake.c:305
#, c-format
-msgid "Pruning file `%s'.\n"
-msgstr "ОбрезаетÑÑ Ñ„Ð°Ð¹Ð» `%s'.\n"
+msgid "Pruning file '%s'.\n"
+msgstr "ОбрезаетÑÑ Ñ„Ð°Ð¹Ð» «%s».\n"
-#: remake.c:359
+#: remake.c:377
#, c-format
-msgid "%sNo rule to make target `%s'%s"
-msgstr "%sÐет правила Ð´Ð»Ñ Ñборки цели `%s'%s"
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sÐет правила Ð´Ð»Ñ Ñборки цели «%s»%s"
-#: remake.c:361
+#: remake.c:379
#, c-format
-msgid "%sNo rule to make target `%s', needed by `%s'%s"
-msgstr "%sÐет правила Ð´Ð»Ñ Ñборки цели `%s', требуемой Ð´Ð»Ñ `%s'%s"
+msgid "%sNo rule to make target '%s', needed by '%s'%s"
+msgstr "%sÐет правила Ð´Ð»Ñ Ñборки цели «%s», требуемой Ð´Ð»Ñ Â«%s»%s"
#: remake.c:413
#, c-format
-msgid "Considering target file `%s'.\n"
-msgstr "Обработка целевого файла `%s'.\n"
+msgid "Considering target file '%s'.\n"
+msgstr "Обработка целевого файла «%s».\n"
#: remake.c:420
#, c-format
-msgid "Recently tried and failed to update file `%s'.\n"
-msgstr "ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° обновить файл `%s' завершилаÑÑŒ неудачно.\n"
+msgid "Recently tried and failed to update file '%s'.\n"
+msgstr "ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° обновить файл «%s» завершилаÑÑŒ неудачно.\n"
#: remake.c:432
#, c-format
-msgid "File `%s' was considered already.\n"
-msgstr "Файл `%s' уже был обработан.\n"
+msgid "File '%s' was considered already.\n"
+msgstr "Файл «%s» уже был обработан.\n"
#: remake.c:442
#, c-format
-msgid "Still updating file `%s'.\n"
-msgstr "Файл `%s' обновлÑетÑÑ Ð² данный момент.\n"
+msgid "Still updating file '%s'.\n"
+msgstr "Файл «%s» обновлÑетÑÑ Ð² данный момент.\n"
#: remake.c:445
#, c-format
-msgid "Finished updating file `%s'.\n"
-msgstr "Обновление файла `%s' завершено.\n"
+msgid "Finished updating file '%s'.\n"
+msgstr "Обновление файла «%s» завершено.\n"
#: remake.c:474
#, c-format
-msgid "File `%s' does not exist.\n"
-msgstr "Файл `%s' не ÑущеÑтвует.\n"
+msgid "File '%s' does not exist.\n"
+msgstr "Файл «%s» не ÑущеÑтвует.\n"
#: remake.c:481
#, 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 ""
-"*** Предупреждение: у файла `%s' параметр .LOW_RESOLUTION_TIME Ñодержит "
-"метку времени Ñ Ð²Ñ‹Ñокой точноÑтью"
+"*** Предупреждение: у файла «%s» параметр LOW_RESOLUTION_TIME Ñодержит метку "
+"времени Ñ Ð²Ñ‹Ñокой точноÑтью"
-#: remake.c:494 remake.c:1016
+#: remake.c:494 remake.c:1019
#, c-format
-msgid "Found an implicit rule for `%s'.\n"
-msgstr "Ðайдено неÑвное правило Ð´Ð»Ñ `%s'.\n"
+msgid "Found an implicit rule for '%s'.\n"
+msgstr "Ðайдено неÑвное правило Ð´Ð»Ñ Â«%s».\n"
-#: remake.c:496 remake.c:1018
+#: remake.c:496 remake.c:1021
#, c-format
-msgid "No implicit rule found for `%s'.\n"
-msgstr "Ðе найдено неÑвного правила Ð´Ð»Ñ `%s'.\n"
+msgid "No implicit rule found for '%s'.\n"
+msgstr "Ðе найдено неÑвного правила Ð´Ð»Ñ Â«%s».\n"
#: remake.c:502
#, c-format
-msgid "Using default recipe for `%s'.\n"
-msgstr "ИÑпользование ÑпоÑоба по умолчанию Ð´Ð»Ñ `%s'.\n"
+msgid "Using default recipe for '%s'.\n"
+msgstr "ИÑпользование ÑпоÑоба по умолчанию Ð´Ð»Ñ Â«%s».\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
msgstr "ЦикличеÑÐºÐ°Ñ Ð·Ð°Ð²Ð¸ÑимоÑÑ‚ÑŒ %s <- %s пропущена."
-#: remake.c:651
+#: remake.c:655
#, c-format
-msgid "Finished prerequisites of target file `%s'.\n"
-msgstr "Обновление целей, от которых завиÑит целевой файл `%s', завершено.\n"
+msgid "Finished prerequisites of target file '%s'.\n"
+msgstr "Обновление целей, от которых завиÑит целевой файл «%s», завершено.\n"
-#: remake.c:657
+#: remake.c:661
#, c-format
-msgid "The prerequisites of `%s' are being made.\n"
-msgstr "Цели, от которых завиÑит `%s', в наÑтоÑщий момент ÑобираютÑÑ.\n"
+msgid "The prerequisites of '%s' are being made.\n"
+msgstr "Цели, от которых завиÑит «%s», в наÑтоÑщий момент ÑобираютÑÑ.\n"
-#: remake.c:670
+#: remake.c:674
#, c-format
-msgid "Giving up on target file `%s'.\n"
-msgstr "Ðварийный оÑтанов на целевом файле `%s'.\n"
+msgid "Giving up on target file '%s'.\n"
+msgstr "Ðварийный оÑтанов на целевом файле «%s».\n"
-#: remake.c:675
+#: remake.c:679
#, c-format
-msgid "Target `%s' not remade because of errors."
-msgstr "Цель `%s' не была переÑобрана из-за ошибок."
+msgid "Target '%s' not remade because of errors."
+msgstr "Цель «%s» не была переÑобрана из-за ошибок."
-#: remake.c:727
+#: remake.c:731
#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
-msgstr "ЗавиÑимоÑÑ‚ÑŒ `%s' только Ð´Ð»Ñ Ñ†ÐµÐ»Ð¸ `%s'.\n"
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
+msgstr "ЗавиÑимоÑÑ‚ÑŒ «%s» Ð´Ð»Ñ Ñ†ÐµÐ»Ð¸ «%s» завиÑит от порÑдка.\n"
-#: remake.c:732
+#: remake.c:736
#, c-format
-msgid "Prerequisite `%s' of target `%s' does not exist.\n"
-msgstr "ЗавиÑимоÑÑ‚ÑŒ `%s' цели `%s' не ÑущеÑтвует.\n"
+msgid "Prerequisite '%s' of target '%s' does not exist.\n"
+msgstr "ЗавиÑимоÑÑ‚ÑŒ «%s» цели «%s» не ÑущеÑтвует.\n"
-#: remake.c:737
+#: remake.c:741
#, c-format
-msgid "Prerequisite `%s' is newer than target `%s'.\n"
-msgstr "ЗавиÑимоÑÑ‚ÑŒ `%s' новее, чем цель `%s'.\n"
+msgid "Prerequisite '%s' is newer than target '%s'.\n"
+msgstr "ЗавиÑимоÑÑ‚ÑŒ «%s» новее, чем цель «%s».\n"
-#: remake.c:740
+#: remake.c:744
#, c-format
-msgid "Prerequisite `%s' is older than target `%s'.\n"
-msgstr "ЗавиÑимоÑÑ‚ÑŒ `%s' Ñтарее, чем цель `%s'.\n"
+msgid "Prerequisite '%s' is older than target '%s'.\n"
+msgstr "ЗавиÑимоÑÑ‚ÑŒ «%s» Ñтарее, чем цель «%s».\n"
-#: remake.c:758
+#: remake.c:762
#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
-msgstr "Цель `%s' объÑвлена Ñ Ð´Ð²ÑƒÐ¼Ñ Ð´Ð²Ð¾ÐµÑ‚Ð¾Ñ‡Ð¸Ñми и не имеет завиÑимоÑтей.\n"
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
+msgstr "Цель «%s» объÑвлена Ñ Ð´Ð²ÑƒÐ¼Ñ Ð´Ð²Ð¾ÐµÑ‚Ð¾Ñ‡Ð¸Ñми и не имеет завиÑимоÑтей.\n"
-#: remake.c:765
+#: remake.c:769
#, c-format
-msgid "No recipe for `%s' and no prerequisites actually changed.\n"
-msgstr "СпоÑоб Ð´Ð»Ñ `%s' не задан, и начальные уÑÐ»Ð¾Ð²Ð¸Ñ Ð½Ðµ изменены.\n"
+msgid "No recipe for '%s' and no prerequisites actually changed.\n"
+msgstr "СпоÑоб Ð´Ð»Ñ Â«%s» не задан, и начальные уÑÐ»Ð¾Ð²Ð¸Ñ Ð½Ðµ изменены.\n"
-#: remake.c:770
+#: remake.c:774
#, c-format
-msgid "Making `%s' due to always-make flag.\n"
-msgstr "ПереÑборка `%s' из-за уÑтановленного ключа always-make.\n"
+msgid "Making '%s' due to always-make flag.\n"
+msgstr "ПереÑборка «%s» из-за уÑтановленного флага always-make.\n"
-#: remake.c:778
+#: remake.c:782
#, c-format
-msgid "No need to remake target `%s'"
-msgstr "Ðет необходимоÑти переÑобирать цель `%s'."
+msgid "No need to remake target '%s'"
+msgstr "Ðет необходимоÑти переÑобирать цель «%s»"
-#: remake.c:780
+#: remake.c:784
#, c-format
-msgid "; using VPATH name `%s'"
-msgstr "; иÑпользуетÑÑ VPATH-Ð¸Ð¼Ñ `%s'"
+msgid "; using VPATH name '%s'"
+msgstr "; иÑпользуетÑÑ VPATH-Ð¸Ð¼Ñ Â«%s»"
-#: remake.c:800
+#: remake.c:804
#, c-format
-msgid "Must remake target `%s'.\n"
-msgstr "Ðеобходимо переÑобрать цель `%s'.\n"
+msgid "Must remake target '%s'.\n"
+msgstr "Ðеобходимо переÑобрать цель «%s».\n"
-#: remake.c:806
+#: remake.c:810
#, c-format
-msgid " Ignoring VPATH name `%s'.\n"
-msgstr " ИгнорируетÑÑ VPATH-Ð¸Ð¼Ñ `%s'.\n"
+msgid " Ignoring VPATH name '%s'.\n"
+msgstr " ИгнорируетÑÑ VPATH-Ð¸Ð¼Ñ Â«%s».\n"
-#: remake.c:815
+#: remake.c:819
#, c-format
-msgid "Recipe of `%s' is being run.\n"
-msgstr "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑетÑÑ ÑпоÑоб `%s'.\n"
+msgid "Recipe of '%s' is being run.\n"
+msgstr "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑетÑÑ ÑпоÑоб «%s».\n"
-#: remake.c:822
+#: remake.c:826
#, c-format
-msgid "Failed to remake target file `%s'.\n"
-msgstr "Ðе удалоÑÑŒ переÑоздать файл цели `%s'.\n"
+msgid "Failed to remake target file '%s'.\n"
+msgstr "Ðе удалоÑÑŒ переÑоздать файл цели «%s».\n"
-#: remake.c:825
+#: remake.c:829
#, c-format
-msgid "Successfully remade target file `%s'.\n"
-msgstr "Целевой файл `%s' уÑпешно переÑоздан.\n"
+msgid "Successfully remade target file '%s'.\n"
+msgstr "Целевой файл «%s» уÑпешно переÑоздан.\n"
-#: remake.c:828
+#: remake.c:832
#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
-msgstr "Целевой файл `%s' требует переÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼ -q.\n"
+msgid "Target file '%s' needs to be remade under -q.\n"
+msgstr "Целевой файл «%s» требует переÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼ -q.\n"
-#: remake.c:1024
+#: remake.c:1027
#, c-format
-msgid "Using default commands for `%s'.\n"
-msgstr "ИÑпользование команд по умолчанию Ð´Ð»Ñ `%s'.\n"
+msgid "Using default commands for '%s'.\n"
+msgstr "ИÑпользование команд по умолчанию Ð´Ð»Ñ Â«%s».\n"
-#: remake.c:1357
+#: remake.c:1372
#, c-format
-msgid "Warning: File `%s' has modification time in the future"
-msgstr "Предупреждение: Ð’Ñ€ÐµÐ¼Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° `%s' находитÑÑ Ð² будущем"
+msgid "Warning: File '%s' has modification time in the future"
+msgstr "Предупреждение: Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° «%s» находитÑÑ Ð² будущем"
-#: remake.c:1370
+#: remake.c:1385
#, c-format
-msgid "Warning: File `%s' has modification time %s s in the future"
-msgstr "Предупреждение: Ð’Ñ€ÐµÐ¼Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° `%s' находитÑÑ Ð² будущем (%s)"
+msgid "Warning: File '%s' has modification time %s s in the future"
+msgstr "Предупреждение: Ð²Ñ€ÐµÐ¼Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° «%s» находитÑÑ Ð² будущем (%s)"
-#: remake.c:1569
+#: remake.c:1583
#, c-format
-msgid ".LIBPATTERNS element `%s' is not a pattern"
-msgstr "Элемент .LIBPATTERNS `%s' не ÑвлÑетÑÑ Ð¾Ð±Ñ€Ð°Ð·Ñ†Ð¾Ð¼"
+msgid ".LIBPATTERNS element '%s' is not a pattern"
+msgstr "Элемент .LIBPATTERNS «%s» не ÑвлÑетÑÑ Ð¾Ð±Ñ€Ð°Ð·Ñ†Ð¾Ð¼"
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
msgstr "Ðе ÑкÑпортируемые наÑтройки: %s\n"
-#: rule.c:499
+#: rule.c:496
msgid ""
"\n"
"# Implicit Rules"
@@ -1630,7 +1825,7 @@ msgstr ""
"\n"
"# ÐеÑвные правила"
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
@@ -1638,7 +1833,7 @@ msgstr ""
"\n"
"# ÐеÑвных правил нет."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -1647,245 +1842,268 @@ msgstr ""
"\n"
"# ÐеÑвных правил: %u, терминальных: %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr " терминал."
-#: rule.c:534
+#: rule.c:531
#, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
msgstr "ОШИБКÐ: неверное значение num_pattern_rules! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "неизвеÑтный Ñигнал"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
msgstr "Обрыв терминальной линии"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "Прерывание"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
msgstr "Ðварийное прерывание"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
msgstr "ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð¸Ð½ÑтрукциÑ"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
msgstr "Прерывание на контрольной точке"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "Прервано"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
msgstr "Ошибка IOT"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
msgstr "Ошибка ÑмулÑции"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
msgstr "Ошибка операции Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "Уничтожение"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr "Ðеверное обращение к памÑти"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "Ðарушение прав доÑтупа к памÑти"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "Ðеправильный ÑиÑтемный вызов"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr "Обрыв канала"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "Сигнал по таймеру"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
msgstr "Завершение"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr "ОпределÑемый пользователем Ñигнал 1"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr "ОпределÑемый пользователем Ñигнал 2"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
msgstr "Потомок завершил работу"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
msgstr "Отказ питаниÑ"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "ОÑтанов"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
msgstr "ОÑтанов (ввод Ñ Ñ‚ÐµÑ€Ð¼Ð¸Ð½Ð°Ð»Ð°) "
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
msgstr "ОÑтанов (вывод на терминал)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "ОÑтанов (Ñигнал)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
msgstr "Превышен предел процеÑÑорного времени"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
msgstr "Превышен предел размера файла"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
msgstr "Виртуальное Ð²Ñ€ÐµÐ¼Ñ Ð¸Ñтекло"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ñтекло"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
msgstr "Окно изменено"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "Возобновление"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
msgstr "УÑÐ»Ð¾Ð²Ð¸Ñ ÑкÑтренного ввода/вывода"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
msgstr "Возможен ввод/вывод"
-#: 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 "РеÑÑƒÑ€Ñ Ð¿Ð¾Ñ‚ÐµÑ€Ñн"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "Сигнал опаÑноÑти"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
msgstr "СопроцеÑÑор Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой недоÑтупен"
-#: strcache.c:235
+#: strcache.c:236
+#, c-format
+msgid ""
+"\n"
+"%s No strcache buffers\n"
+msgstr ""
+"\n"
+"%s без буферов strcache\n"
+
+#: strcache.c:266
#, c-format
msgid ""
"\n"
-"%s # of strings in strcache: %d / lookups = %lu / hits = %lu\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
msgstr ""
"\n"
-"%s # Ñтрок в strcache: %d / lookups = %lu / hits = %lu\n"
+"%s буферы strcache: %lu (%lu) / Ñтрок = %lu / хранилище = %lu Б / Ñред = %lu "
+"Б\n"
-#: strcache.c:237
+#: strcache.c:270
#, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
-msgstr "%s # буферов strcache: %d (* %d B/buffer = %d B)\n"
+msgid ""
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
+msgstr ""
+"%s текущий buf: размер = %hu Б / иÑпользуетÑÑ = %hu Б / кол-во = %hu / Ñред "
+"= %hu Б\n"
-#: strcache.c:239
+#: strcache.c:280
#, c-format
-msgid "%s strcache used: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
msgstr ""
-"%s размер strcache: вÑего = %d (%d) / Ð¼Ð°ÐºÑ = %d / мин = %d / Ñред = %d\n"
+"%s Ð´Ð»Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ иÑпользуетÑÑ: вÑего = %lu Б / кол-во = %lu / Ñред = %lu Б\n"
-#: strcache.c:241
+#: strcache.c:283
#, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
msgstr ""
-"%s Ñвободно в strcache: вÑего = %d (%d) / Ð¼Ð°ÐºÑ = %d / мин = %d / Ñред = %d\n"
+"%s Ð´Ð»Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ Ñвободно: вÑего = %lu Б / макÑ. = %lu Б / мин. = %lu Б / "
+"Ñред. = %hu Б\n"
-#: strcache.c:244
+#: strcache.c:287
+#, c-format
msgid ""
"\n"
-"# strcache hash-table stats:\n"
-"# "
+"%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
msgstr ""
"\n"
-"# ÑоÑтоÑние хеш-таблицы strcache:\n"
+"%s производительноÑÑ‚ÑŒ strcache: поиÑков = %lu / найдено = %lu%%\n"
+
+#: strcache.c:289
+msgid ""
+"# hash-table stats:\n"
+"# "
+msgstr ""
+"# ÑоÑтоÑние хеш-таблицы:\n"
"# "
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "автоматичеÑкаÑ"
+
+#: variable.c:1610
msgid "default"
msgstr "по умолчанию"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr "определена в Ñреде"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
-msgstr "Make-файл"
+msgstr "make-файл"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
-msgstr "задан ключ -e"
+msgstr "окружение Ñ -e"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr "определена в командной Ñтроке"
-#: variable.c:1556
-msgid "`override' directive"
-msgstr "Директива `override'"
-
-#: variable.c:1559
-msgid "automatic"
-msgstr "автоматичеÑкаÑ"
+#: variable.c:1625
+msgid "'override' directive"
+msgstr "Директива «override»"
-#: variable.c:1570
+#: variable.c:1636
#, c-format
-msgid " (from `%s', line %lu)"
-msgstr " (из `%s', Ñтрока %lu)"
+msgid " (from '%s', line %lu)"
+msgstr " (из «%s», Ñтрока %lu)"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
msgstr "# ÑоÑтоÑние переменных в хеш-таблице:\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1893,7 +2111,7 @@ msgstr ""
"\n"
"# Переменные\n"
-#: variable.c:1627
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
@@ -1901,7 +2119,7 @@ msgstr ""
"\n"
"# Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ… оÑобенные Ð´Ð»Ñ Ð¼Ð°Ñки"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
@@ -1909,7 +2127,7 @@ msgstr ""
"\n"
"# Ðет значений переменных оÑобенных Ð´Ð»Ñ Ð¼Ð°Ñки."
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
@@ -1918,94 +2136,94 @@ msgstr ""
"\n"
"# %u значений переменных оÑобенных Ð´Ð»Ñ Ð¼Ð°Ñки"
-#: variable.h:219
+#: variable.h:224
#, c-format
-msgid "warning: undefined variable `%.*s'"
-msgstr "предупреждение: Ð½ÐµÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ `%.*s'"
+msgid "warning: undefined variable '%.*s'"
+msgstr "предупреждение: Ð½ÐµÐ¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Â«%.*s»"
-#: vmsfunctions.c:92
+#: vmsfunctions.c:91
#, c-format
msgid "sys$search() failed with %d\n"
msgstr "sys$search() вернула код ошибки %d\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr "Предупреждение: ПуÑтое перенаправление\n"
-#: vmsjobs.c:184
+#: vmsjobs.c:178
#, c-format
-msgid "internal error: `%s' command_state"
-msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: `%s' command_state"
+msgid "internal error: '%s' command_state"
+msgstr "внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: «%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 ""
"-предупреждение, возможно вам потребуетÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ разрешить\n"
"обработку CTRL-Y из DCL.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr "ВСТРОЕÐÐЫЙ [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr "ВСТРОЕÐÐЫЙ CD %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr "ВСТРОЕÐÐЫЙ RM %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð²ÑÑ‚Ñ€Ð¾ÐµÐ½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° '%s'\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr "Ошибка, пуÑÑ‚Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr "Стандартный ввод перенаправлен из %s\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr "Поток ошибок перенаправлен в %s\n"
-#: vmsjobs.c:523
+#: vmsjobs.c:518
#, c-format
msgid "Append output to %s\n"
msgstr "Стандартный вывод добавлен в %s\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
msgstr "Стандартный вывод перенаправлен в %s\n"
-#: vmsjobs.c:599
+#: vmsjobs.c:593
#, c-format
msgid "Append %.*s and cleanup\n"
msgstr "Добавить %.*s и очиÑтить\n"
-#: vmsjobs.c:606
+#: vmsjobs.c:600
#, c-format
msgid "Executing %s instead\n"
msgstr "ВмеÑто заданного выполнÑетÑÑ %s\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr "Ошибка Ð¿Ð¾Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑÑа, %d\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
@@ -2013,37 +2231,64 @@ msgstr ""
"\n"
"# Пути поиÑка VPATH\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
-msgstr "# Ðе определён путь поиÑка `vpath'."
+#: vpath.c:600
+msgid "# No 'vpath' search paths."
+msgstr "# Ðе определён путь поиÑка «vpath»."
-#: vpath.c:605
+#: vpath.c:602
#, c-format
msgid ""
"\n"
-"# %u `vpath' search paths.\n"
+"# %u 'vpath' search paths.\n"
msgstr ""
"\n"
-"# %u путей поиÑка по `vpath'\n"
+"# %u путей поиÑка по «vpath»\n"
-#: vpath.c:608
+#: vpath.c:605
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
-"# Ðе определён общий (Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ `VPATH') путь поиÑка."
+"# Ðе определён общий (Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Â«VPATH») путь поиÑка."
-#: vpath.c:614
+#: vpath.c:611
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
-"# Общий (Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ `VPATH') путь поиÑка:\n"
+"# Общий (Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Â«VPATH») путь поиÑка:\n"
"# "
+#~ msgid "# Invalid value in 'update_status' member!"
+#~ msgstr "# Ðеверное значение члена «update_status»!"
+
+#~ msgid "unknown trace mode '%s'"
+#~ msgstr "неизвеÑтный режим траÑÑировки «%s»"
+
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] Ошибка 0x%x (игнорирована)"
+
+#~ msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
+#~ msgstr "ПрименÑетÑÑ ÑпоÑоб из %s:%lu Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ†ÐµÐ»Ð¸ `%s'.\n"
+
+#~ msgid "Invoking builtin recipe to update target `%s'.\n"
+#~ msgstr "ВыполнÑетÑÑ Ð²Ñтроенный ÑпоÑоб Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ†ÐµÐ»Ð¸ `%s'.\n"
+
+#~ msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+#~ msgstr "%s # буферов strcache: %d (* %d B/buffer = %d B)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "# strcache hash-table stats:\n"
+#~ "# "
+#~ msgstr ""
+#~ "\n"
+#~ "# ÑоÑтоÑние хеш-таблицы strcache:\n"
+#~ "# "
+
#~ msgid "process_easy() failed failed to launch process (e=%ld)\n"
#~ msgstr "process_easy() не Ñмогла запуÑтить процеÑÑ (e=%ld)\n"
diff --git a/po/sv.gmo b/po/sv.gmo
index ec5fbf5..5dccff3 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index d183e01..8386679 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,123 +1,131 @@
# Swedish messages translation of make
-# Copyright (C) 2002 Free Software Foundation, Inc.
+# Copyright © 2002, 2007, 2011, 2013 Free Software Foundation, Inc.
+# This file is distributed under the same license as the make package.
# Tomas Gradin <tg@df.lth.se>, 1996-2002.
# Christer Andersson <klamm@comhem.se>, 2007.
+# Göran Uddeborg <goeran@uddeborg.se>, 2011, 2013.
#
+# $Id: make.po,v 1.11 2013-10-01 22:03:56+02 göran Exp $
msgid ""
msgstr ""
-"Project-Id-Version: make 3.81\n"
+"Project-Id-Version: make 3.99.93\n"
"Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2010-07-28 01:42-0400\n"
-"PO-Revision-Date: 2007-12-19 11:50+0100\n"
-"Last-Translator: Christer Andersson <klamm@comhem.se>\n"
+"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"PO-Revision-Date: 2013-10-01 22:03+0200\n"
+"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
+"Language: sv\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ar.c:48
+#: ar.c:46
#, c-format
-msgid "attempt to use unsupported feature: `%s'"
-msgstr "försök att använda en funktion som inte stöds: \"%s\""
+msgid "attempt to use unsupported feature: '%s'"
+msgstr "försök att använda en funktion som inte stöds: â€%sâ€"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
-msgstr "nydatering av arkivmedlem är inte tillgängligt i VMS"
+msgstr "att nudda en arkivmedlem är inte tillgängligt i VMS"
-#: ar.c:149
+#: ar.c:147
#, c-format
-msgid "touch: Archive `%s' does not exist"
-msgstr "nydatera: Arkivet \"%s\" finns inte"
+msgid "touch: Archive '%s' does not exist"
+msgstr "nudda: Arkivet â€%s†finns inte"
-#: ar.c:152
+#: ar.c:150
#, c-format
-msgid "touch: `%s' is not a valid archive"
-msgstr "nydatera: \"%s\" är inte något giltigt arkiv"
+msgid "touch: '%s' is not a valid archive"
+msgstr "nudda: â€%s†är inte nÃ¥got giltigt arkiv"
-#: ar.c:159
+#: ar.c:157
#, c-format
-msgid "touch: Member `%s' does not exist in `%s'"
-msgstr "nydatera: medlemmen \"%s\" finns inte i \"%s\""
+msgid "touch: Member '%s' does not exist in '%s'"
+msgstr "nudda: medlemmen â€%s†finns inte i â€%sâ€"
-#: ar.c:166
+#: ar.c:164
#, c-format
-msgid "touch: Bad return code from ar_member_touch on `%s'"
-msgstr "nydatera: Felaktig returkod från ar_member_touch på \"%s\""
+msgid "touch: Bad return code from ar_member_touch on '%s'"
+msgstr "nudda: Felaktig returkod frÃ¥n ar_member_touch pÃ¥ â€%sâ€"
-#: arscan.c:69
-#, fuzzy, c-format
+#: arscan.c:67
+#, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
msgstr ""
-"lbr$set_module misslyckades med att extrahera modulinformation, status = %d"
+"lbr$set_module() misslyckades med att extrahera modulinformation, status = %d"
-#: arscan.c:175
-#, fuzzy, c-format
+#: arscan.c:173
+#, c-format
msgid "lbr$ini_control() failed with status = %d"
-msgstr "lbr$ini_control misslyckades och gav status = %d"
+msgstr "lbr$ini_control() misslyckades och gav status = %d"
-#: arscan.c:187
+#: arscan.c:185
#, c-format
-msgid "unable to open library `%s' to lookup member `%s'"
-msgstr "kan inte öppna biblioteket \"%s\" för att slå upp medlemmen \"%s\""
+msgid "unable to open library '%s' to lookup member '%s'"
+msgstr "kan inte öppna biblioteket â€%s†för att slÃ¥ upp medlemmen â€%sâ€"
-#: arscan.c:850
+#: arscan.c:847
#, c-format
-msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n"
-msgstr "Medlem \"%s\"%s: %ld byte vid %ld (%ld).\n"
+msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
+msgstr "Medlem â€%sâ€%s: %ld byte vid %ld (%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr " (namnet kan vara avkortat)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Datum %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d, gid = %d, flaggor = 0%o.\n"
-#: commands.c:499
+#: commands.c:406
+#, c-format
+msgid "Recipe has too many lines (%ud)"
+msgstr "Receptet har för många rader (%ud)"
+
+#: commands.c:507
msgid "*** Break.\n"
msgstr "*** Avbrott.\n"
-#: commands.c:622
+#: commands.c:630
#, c-format
-msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
-msgstr "*** [%s] Arkivmedlemmen \"%s\" kan vara felaktig; ej borttagen"
+msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
+msgstr "*** [%s] Arkivmedlemmen â€%s†kan vara felaktig; ej borttagen"
-#: commands.c:625
+#: commands.c:633
#, c-format
-msgid "*** Archive member `%s' may be bogus; not deleted"
-msgstr "*** Arkivmedlemmen \"%s\" kan vara felaktig; ej borttagen"
+msgid "*** Archive member '%s' may be bogus; not deleted"
+msgstr "*** Arkivmedlemmen â€%s†kan vara felaktig; ej borttagen"
-#: commands.c:638
+#: commands.c:646
#, c-format
-msgid "*** [%s] Deleting file `%s'"
-msgstr "*** [%s] Tar bort filen \"%s\""
+msgid "*** [%s] Deleting file '%s'"
+msgstr "*** [%s] Tar bort filen â€%sâ€"
-#: commands.c:640
+#: commands.c:648
#, c-format
-msgid "*** Deleting file `%s'"
-msgstr "*** Tar bort filen \"%s\""
+msgid "*** Deleting file '%s'"
+msgstr "*** Tar bort filen â€%sâ€"
-#: commands.c:676
-#, fuzzy
+#: commands.c:684
msgid "# recipe to execute"
-msgstr "# kommandon att utföra"
+msgstr "# recept att utföra"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr " (inbyggd):"
-#: commands.c:681
+#: commands.c:689
#, c-format
-msgid " (from `%s', line %lu):\n"
-msgstr " (från \"%s\", rad %lu):\n"
+msgid " (from '%s', line %lu):\n"
+msgstr " (frÃ¥n â€%sâ€, rad %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -125,225 +133,221 @@ msgstr ""
"\n"
"# Kataloger\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
msgstr "# %s: kunde inte ta status.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
-msgstr "# %s (nyckel %s, mtid %d): kunde inte öppnas.\n"
+msgstr "# %s (nyckel %s, mtid %d): kunde inte öppnas.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
-msgstr "# %s (enhet %d, inod [%d,%d,%d]): kunde inte öppnas.\n"
+msgstr "# %s (enhet %d, inod [%d,%d,%d]): kunde inte öppnas.\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
-msgstr "# %s (enhet %ld, inod %ld): kunde inte öppnas.\n"
+msgstr "# %s (enhet %ld, inod %ld): kunde inte öppnas.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr "# %s (nyckel %s, mtid %d): "
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
msgstr "# %s (enhet %d, inod [%d,%d,%d]): "
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
msgstr "# %s (enhet %ld, inod %ld): "
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "Inga"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " filer, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "inga"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
-msgstr " omöjligheter"
+msgstr " omöjligheter"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr " hittills."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
-msgstr " omöjligheter i %lu kataloger.\n"
+msgstr " omöjligheter i %lu kataloger.\n"
-#: expand.c:127
+#: expand.c:125
#, c-format
-msgid "Recursive variable `%s' references itself (eventually)"
-msgstr "Den rekursiva variabeln \"%s\" hänvisar till sig själv (så småningom)"
+msgid "Recursive variable '%s' references itself (eventually)"
+msgstr "Den rekursiva variabeln â€%s†hänvisar till sig själv (sÃ¥ smÃ¥ningom)"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
msgstr "oavslutad variabelreferens"
-#: file.c:267
-#, fuzzy, c-format
-msgid "Recipe was specified for file `%s' at %s:%lu,"
-msgstr "Kommandon angavs för filen \"%s\" på %s:%lu,"
+#: file.c:269
+#, c-format
+msgid "Recipe was specified for file '%s' at %s:%lu,"
+msgstr "Recept angavs för filen â€%s†pÃ¥ %s:%lu,"
-#: file.c:272
-#, fuzzy, c-format
-msgid "Recipe for file `%s' was found by implicit rule search,"
-msgstr "Kommandon för filen \"%s\" hittades genom sökning med implicit regel,"
+#: file.c:274
+#, c-format
+msgid "Recipe for file '%s' was found by implicit rule search,"
+msgstr "Recept för filen â€%s†hittades genom sökning efter implicit regel,"
-#: file.c:275
+#: file.c:277
#, c-format
-msgid "but `%s' is now considered the same file as `%s'."
-msgstr "men \"%s\" anses nu vara samma fil som \"%s\"."
+msgid "but '%s' is now considered the same file as '%s'."
+msgstr "men â€%s†anses nu vara samma fil som â€%sâ€."
-#: file.c:278
-#, fuzzy, c-format
-msgid "Recipe for `%s' will be ignored in favor of the one for `%s'."
+#: file.c:280
+#, c-format
+msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
msgstr ""
-"Kommer att bortse från kommandon för \"%s\" till förmån för dem som gäller "
-"\"%s\"."
+"Kommer att bortse frÃ¥n recept för â€%s†till förmÃ¥n för det som gäller â€%sâ€."
-#: file.c:298
+#: file.c:300
#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
-msgstr "kan inte ändra namn från enkelkolon \"%s\" till dubbelkolon \"%s\""
+msgid "can't rename single-colon '%s' to double-colon '%s'"
+msgstr "kan inte ändra namn frÃ¥n enkelkolon â€%s†till dubbelkolon â€%sâ€"
-#: file.c:303
+#: file.c:305
#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
-msgstr "kan inte ändra namn från dubbelkolon \"%s\" till enkelkolon \"%s\""
+msgid "can't rename double-colon '%s' to single-colon '%s'"
+msgstr "kan inte ändra namn frÃ¥n dubbelkolon â€%s†till enkelkolon â€%sâ€"
-#: file.c:392
+#: file.c:396
#, c-format
-msgid "*** Deleting intermediate file `%s'"
-msgstr "*** Tar bort övergångsfilen \"%s\""
+msgid "*** Deleting intermediate file '%s'"
+msgstr "*** Tar bort mellanfilen â€%sâ€"
-#: file.c:396
+#: file.c:400
msgid "Removing intermediate files...\n"
-msgstr "Tar bort övergångsfiler...\n"
+msgstr "Tar bort mellanfiler …\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
-msgstr "%s: Tidsvärde utanför gränser; ersätter med %s"
+msgstr "%s: Tidsvärde utanför gränser; ersätter med %s"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "Nuvarande tid"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
-msgstr "# Inte ett mål:"
+msgstr "# Inte ett mål:"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
-msgstr "# Värdefull fil (nödvändig för .PRECIOUS)."
+msgstr "# Värdefull fil (nödvändig för .PRECIOUS)."
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
-msgstr "# Låtsasmål (nödvändig för .PHONY)."
+msgstr "# Låtsasmål (nödvändig för .PHONY)."
-#: file.c:933
-#, fuzzy
+#: file.c:958
msgid "# Command line target."
-msgstr "# Kommandoradsmål."
+msgstr "# Kommandoradsmål."
-#: file.c:935
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
msgstr ""
"# En standardmakefil, eller enligt MAKEFILES, eller en -include/sinclude-"
"makefil."
-#: file.c:937
+#: file.c:962
+msgid "# Builtin rule"
+msgstr "# Inbyggd regel"
+
+#: file.c:964
msgid "# Implicit rule search has been done."
-msgstr "# Implicit regelsökning har genomförts."
+msgstr "# Implicit regelsökning har genomförts."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
-msgstr "# Implicit regelsökning har inte genomförts."
+msgstr "# Implicit regelsökning har inte genomförts."
-#: file.c:940
+#: file.c:967
#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
-msgstr "# Implicit/statisk mönsterstam: \"%s\"\n"
+msgid "# Implicit/static pattern stem: '%s'\n"
+msgstr "# Implicit/statisk mönsterstam: â€%sâ€\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
-msgstr "# Filen är ett övergående beroende."
+msgstr "# Filen är ett övergående beroende."
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
-msgstr "# Skapar också:"
+msgstr "# Skapar också:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
-msgstr "# Ändringstiden har inte kontrollerats."
+msgstr "# Ändringstiden har inte kontrollerats."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# Filen finns inte."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
-msgstr "# Filen är mycket gammal."
+msgstr "# Filen är mycket gammal."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
-msgstr "# Senast ändrad %s\n"
+msgstr "# Senast ändrad %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# Filen har uppdaterats."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# Filen har inte uppdaterats."
-#: file.c:968
-#, fuzzy
+#: file.c:995
msgid "# Recipe currently running (THIS IS A BUG)."
-msgstr "# Kommandokörning pågår (DETTA ÄR ETT FEL)."
+msgstr "# Recept körs just nu (DETTA ÄR ETT FEL)."
-#: file.c:971
-#, fuzzy
+#: file.c:998
msgid "# Dependencies recipe running (THIS IS A BUG)."
-msgstr "# Beroendekommandon körs (DETTA ÄR ETT FEL)."
+msgstr "# Beroenderecept körs (DETTA ÄR ETT FEL)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
msgstr "# Uppdateringen lyckades."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
-msgstr "# Behöver uppdateras (-q har angivits)."
+msgstr "# Behöver uppdateras (-q har angivits)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr "# Uppdateringen misslyckades."
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# Ogiltigt värde i medlem av \"update_status\"!"
-
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
-msgstr "# Ogiltigt värde i medlem av \"command_state\"!"
+#: file.c:1019
+msgid "# Invalid value in 'command_state' member!"
+msgstr "# Ogiltigt värde i medlemmen â€command_stateâ€!"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -351,131 +355,184 @@ msgstr ""
"\n"
"# Filer"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
"# "
msgstr ""
"\n"
-"# statistik för filhashtabell:\n"
+"# statistik för filhashtabell:\n"
"# "
-#: function.c:758
-msgid "non-numeric first argument to `word' function"
-msgstr "icke-numeriskt första argument till funktionen \"word\""
+#: file.c:1051
+#, c-format
+msgid "%s: Field '%s' not cached: %s"
+msgstr "%s: Fältet â€%s†cachas inte: %s"
-#: function.c:763
-msgid "first argument to `word' function must be greater than 0"
-msgstr "det första argumentet till funktionen \"word\" måste vara större än 0"
+#: function.c:742
+msgid "non-numeric first argument to 'word' function"
+msgstr "icke-numeriskt första argument till funktionen â€wordâ€"
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
-msgstr "icke-numeriskt första argument till funktionen \"wordlist\""
+#: function.c:747
+msgid "first argument to 'word' function must be greater than 0"
+msgstr "det första argumentet till funktionen â€word†mÃ¥ste vara större än 0"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
-msgstr "icke-numeriskt andra argument till funktionen \"wordlist\""
+#: function.c:767
+msgid "non-numeric first argument to 'wordlist' function"
+msgstr "icke-numeriskt första argument till funktionen â€wordlistâ€"
-#: function.c:1458
-#, fuzzy, c-format
-msgid "windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"
-msgstr "create_child_process: DuplicateHandle(In) misslyckades (e=%ld)\n"
+#: function.c:769
+msgid "non-numeric second argument to 'wordlist' function"
+msgstr "icke-numeriskt andra argument till funktionen â€wordlistâ€"
-#: function.c:1469
-#, fuzzy, c-format
-msgid "windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr "create_child_process: DuplicateHandle(Fel) misslyckades (e=%ld)\n"
+#: function.c:1460
+#, c-format
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
+msgstr "windows32_openpipe: DuplicateHandle(In) misslyckades (e=%ld)\n"
+
+#: function.c:1483
+#, c-format
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
+msgstr "windows32_openpipe: DuplicateHandle(Fel) misslyckades (e=%ld)\n"
-#: function.c:1474
+#: function.c:1490
#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
msgstr "CreatePipe() misslyckades (e=%ld)\n"
-#: function.c:1479
-#, fuzzy
+#: function.c:1498
msgid "windows32_openpipe(): process_init_fd() failed\n"
-msgstr "windows32_openpipe (): process_init_fd() misslyckades\n"
+msgstr "windows32_openpipe(): process_init_fd() misslyckades\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
-msgstr "Städar bort tillfällig omgångsfil %s\n"
+msgstr "Städar bort tillfällig satsfil %s\n"
+
+#: function.c:2151
+#, c-format
+msgid "open: %s: %s"
+msgstr "öppna: %s: %s"
+
+#: function.c:2158
+#, c-format
+msgid "write: %s: %s"
+msgstr "skriv: %s: %s"
+
+#: function.c:2164
+#, c-format
+msgid "Invalid file operation: %s"
+msgstr "Felaktig filåtgärd: %s"
+
+#: function.c:2279
+#, c-format
+msgid "insufficient number of arguments (%d) to function '%s'"
+msgstr "otillräckligt antal argument (%d) till funktionen â€%sâ€"
+
+#: function.c:2291
+#, c-format
+msgid "unimplemented on this platform: function '%s'"
+msgstr "ej implementerat pÃ¥ denna plattform: funktionen â€%sâ€"
-#: function.c:2150
+#: function.c:2354
#, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
-msgstr "otillräckligt antal argument (%d) till funktionen \"%s\""
+msgid "unterminated call to function '%s': missing '%c'"
+msgstr "oavslutat funktionsanrop â€%sâ€: â€%c†saknas"
-#: function.c:2162
+#: function.c:2546
+msgid "Empty function name\n"
+msgstr ""
+
+#: function.c:2548
+#, fuzzy, c-format
+msgid "Invalid function name: %s\n"
+msgstr "Felaktig filåtgärd: %s"
+
+#: function.c:2550
+#, c-format
+msgid "Function name too long: %s\n"
+msgstr "Funktionsnamnet är för långt: %s\n"
+
+#: function.c:2552
#, c-format
-msgid "unimplemented on this platform: function `%s'"
-msgstr "ej implementerat på denna plattform: funktionen \"%s\""
+msgid "Invalid minimum argument count (%d) for function %s\n"
+msgstr "Felaktigt minsta antal argument (%d) till funktionen â€%sâ€\n"
-#: function.c:2212
+#: function.c:2555
#, c-format
-msgid "unterminated call to function `%s': missing `%c'"
-msgstr "oavslutat funktionsanrop \"%s\": \"%c\" saknas"
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "Felaktigt största antal argument (%d) till funktionen â€%sâ€\n"
-#: getopt.c:661
+#: getopt.c:659
#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: flaggan \"%s\" är tvetydig\n"
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: flaggan â€%s†är tvetydig\n"
-#: getopt.c:685
+#: getopt.c:683
#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: flaggan \"--%s\" tar inget argument\n"
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: flaggan â€--%s†tar inget argument\n"
-#: getopt.c:690
+#: getopt.c:688
#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: flaggan \"%c%s\" tar inget argument\n"
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: flaggan â€%c%s†tar inget argument\n"
-#: getopt.c:707 getopt.c:880
+#: getopt.c:705 getopt.c:878
#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: flaggan \"%s\" kräver ett argument\n"
+msgid "%s: option '%s' requires an argument\n"
+msgstr "%s: flaggan â€%s†kräver ett argument\n"
-#: getopt.c:736
+#: getopt.c:734
#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: okänd flagga \"--%s\"\n"
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: okänd flagga â€--%sâ€\n"
-#: getopt.c:740
+#: getopt.c:738
#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: okänd flagga \"%c%s\"\n"
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: okänd flagga â€%c%sâ€\n"
-#: getopt.c:766
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
-msgstr "%s: otillåten flagga -- %c\n"
+msgstr "%s: otillåten flagga -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: ogiltig flagga -- %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: flaggan kräver ett argument -- %c\n"
+msgstr "%s: flaggan kräver ett argument -- %c\n"
-#: getopt.c:846
+#: getopt.c:844
#, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
-msgstr "%s: flaggan \"-W %s\" är tvetydig\n"
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: flaggan â€-W %s†är tvetydig\n"
-#: getopt.c:864
+#: getopt.c:862
#, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr "%s: flaggan \"-W %s\" tar inget argument\n"
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: flaggan â€-W %s†tar inget argument\n"
+
+#: guile.c:55
+#, c-format
+msgid "guile: Expanding '%s'\n"
+msgstr "guile: Expanderar â€%sâ€\n"
+
+#: guile.c:71
+#, c-format
+msgid "guile: Evaluating '%s'\n"
+msgstr "guile: Evaluerar â€%sâ€\n"
#: hash.c:49
-#, fuzzy, c-format
+#, c-format
msgid "can't allocate %lu bytes for hash table: memory exhausted"
-msgstr "kan inte allokera %ld byte för hashtabell: minnet slut"
+msgstr "kan inte allokera %lu byte för hashtabell: minnet slut"
#: hash.c:280
#, c-format
@@ -492,411 +549,499 @@ msgstr "Omhash=%d, "
msgid "Collisions=%ld/%ld=%.0f%%"
msgstr "Kollisioner=%ld/%ld=%.0f%%"
-#: implicit.c:40
+#: implicit.c:38
#, c-format
-msgid "Looking for an implicit rule for `%s'.\n"
-msgstr "Letar efter en implicit regel för \"%s\".\n"
+msgid "Looking for an implicit rule for '%s'.\n"
+msgstr "Letar efter en implicit regel för â€%sâ€.\n"
-#: implicit.c:56
+#: implicit.c:54
#, c-format
-msgid "Looking for archive-member implicit rule for `%s'.\n"
-msgstr "Letar efter en implicit regel för arkivmedlemmen \"%s\".\n"
+msgid "Looking for archive-member implicit rule for '%s'.\n"
+msgstr "Letar efter en implicit regel för arkivmedlemmen â€%sâ€.\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
msgstr "Undviker rekursion orsakad av implicit regel.\n"
+#: implicit.c:486
+#, c-format
+msgid "Stem too long: '%.*s'.\n"
+msgstr "Stammen är för lÃ¥ng: â€%.*sâ€.\n"
+
#: implicit.c:491
#, c-format
-msgid "Trying pattern rule with stem `%.*s'.\n"
-msgstr "Prövar mönsterregel med stammen \"%.*s\".\n"
+msgid "Trying pattern rule with stem '%.*s'.\n"
+msgstr "Prövar mönsterregel med stammen â€%.*sâ€.\n"
-#: implicit.c:674
+#: implicit.c:697
#, c-format
-msgid "Rejecting impossible rule prerequisite `%s'.\n"
-msgstr "Avvisar det omöjliga regelbaserade beroendet \"%s\".\n"
+msgid "Rejecting impossible rule prerequisite '%s'.\n"
+msgstr "Avvisar den omöjliga regelförutsättningen â€%sâ€.\n"
-#: implicit.c:675
+#: implicit.c:698
#, c-format
-msgid "Rejecting impossible implicit prerequisite `%s'.\n"
-msgstr "Avvisar det omöjliga implicita beroendet \"%s\".\n"
+msgid "Rejecting impossible implicit prerequisite '%s'.\n"
+msgstr "Avvisar den omöjliga implicita förutsättningen â€%sâ€.\n"
-#: implicit.c:688
+#: implicit.c:711
#, c-format
-msgid "Trying rule prerequisite `%s'.\n"
-msgstr "Prövar det regelbaserade beroendet \"%s\".\n"
+msgid "Trying rule prerequisite '%s'.\n"
+msgstr "Prövar det regelförutsättningen â€%sâ€.\n"
-#: implicit.c:689
+#: implicit.c:712
#, c-format
-msgid "Trying implicit prerequisite `%s'.\n"
-msgstr "Prövar det implicita beroendet \"%s\".\n"
+msgid "Trying implicit prerequisite '%s'.\n"
+msgstr "Prövar den implicita förutsättningen â€%sâ€.\n"
-#: implicit.c:728
+#: implicit.c:751
#, c-format
-msgid "Found prerequisite `%s' as VPATH `%s'\n"
-msgstr "Hittade den nödvändiga \"%s\" som VPATH \"%s\"\n"
+msgid "Found prerequisite '%s' as VPATH '%s'\n"
+msgstr "Hittade förutsättningen â€%s†som VPATH â€%sâ€\n"
-#: implicit.c:742
+#: implicit.c:765
#, c-format
-msgid "Looking for a rule with intermediate file `%s'.\n"
-msgstr "Letar efter en regel med övergångsfilen \"%s\".\n"
+msgid "Looking for a rule with intermediate file '%s'.\n"
+msgstr "Letar efter en regel med mellanfilen â€%sâ€.\n"
-#: job.c:335
+#: job.c:361
msgid "Cannot create a temporary file\n"
-msgstr "Kan inte skapa en temporärfil\n"
+msgstr "Kan inte skapa en temporärfil\n"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] Fel 0x%x (ignoreras)"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (minnesdump)"
-#: job.c:450
+#: job.c:487
+msgid " (ignored)"
+msgstr " (ignoreras)"
+
+#: job.c:491 job.c:1994
+msgid "<builtin>"
+msgstr "<inbyggd>"
+
+#: job.c:501
#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] Fel 0x%x"
+msgid "%s: recipe for target '%s' failed"
+msgstr "%s: receptet för mÃ¥let â€%s†misslyckades"
-#: job.c:454
+#: job.c:510
#, c-format
-msgid "[%s] Error %d (ignored)"
-msgstr "[%s] Fel %d (ignoreras)"
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Fel 0x%x%s"
-#: job.c:455
+#: job.c:513
#, c-format
-msgid "*** [%s] Error %d"
-msgstr "*** [%s] Fel %d"
+msgid "%s[%s] Error %d%s"
+msgstr "%s[%s] Fel %d%s"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (minnesdump)"
+#: job.c:517
+#, c-format
+msgid "%s[%s] %s%s%s"
+msgstr "%s[%s]: %s%s%s"
-#: job.c:549
+#: job.c:609
msgid "*** Waiting for unfinished jobs...."
-msgstr "*** Inväntar oavslutade jobb..."
+msgstr "*** Inväntar oavslutade jobb..."
-#: job.c:579
-#, fuzzy, c-format
+#: job.c:639
+#, c-format
msgid "Live child %p (%s) PID %s %s\n"
-msgstr "Levande barnprocess 0x%08lx (%s) PID %ld %s\n"
+msgstr "Levande barnprocess %p (%s) PID %s %s\n"
-#: 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 " (fjärr)"
+msgstr " (fjärr)"
-#: job.c:758
-#, fuzzy, c-format
+#: job.c:829
+#, c-format
msgid "Reaping losing child %p PID %s %s\n"
-msgstr "Inhöstar misslyckad barnprocess: 0x%08lx PID %ld %s\n"
+msgstr "Inhöstar misslyckad barnprocess: %p PID %s %s\n"
-#: job.c:759
-#, fuzzy, c-format
+#: job.c:830
+#, c-format
msgid "Reaping winning child %p PID %s %s\n"
-msgstr "Inhöstar lyckad barnprocess: 0x%08lx PID %ld %s\n"
+msgstr "Inhöstar lyckad barnprocess: %p PID %s %s\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
-msgstr "Städar bort tillfällig omgångsfil %s\n"
+msgstr "Städar bort tillfällig satsfil %s\n"
-#: job.c:861
-#, fuzzy, c-format
+#: job.c:843
+#, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "Bortstädning av tillfällig satsfil %s misslyckades (%d)\n"
+
+#: job.c:949
+#, c-format
msgid "Removing child %p PID %s%s from chain.\n"
-msgstr "Tar bort barnprocessen 0x%08lx PID %ld%s från kedjan.\n"
+msgstr "Tar bort barnprocessen %p PID %s%s från kedjan.\n"
-#: job.c:920
-msgid "write jobserver"
-msgstr "skriver till jobbserver"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr "släpp jobbserversemafor: (Fel %ld: %s)"
-#: job.c:922
-#, fuzzy, c-format
+#: job.c:1011 job.c:1025
+#, c-format
msgid "Released token for child %p (%s).\n"
-msgstr "Frigjorde symbol för barnprocessen 0x%08lx (%s).\n"
+msgstr "Frigjorde symbol för barnprocessen %p (%s).\n"
+
+#: job.c:1023
+msgid "write jobserver"
+msgstr "skriver till jobbserver"
-#: job.c:1453 job.c:2094
+#: job.c:1612 job.c:2332
#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
msgstr "process_easy() misslyckades med processtart (e=%ld)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
"Counted %d args in failed launch\n"
msgstr ""
"\n"
-"Räknade till %d argument vid misslyckad start\n"
+"Räknade till %d argument vid misslyckad start\n"
-#: job.c:1525
-#, fuzzy, c-format
+#: job.c:1685
+#, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
-msgstr "För upp barnprocessen 0x%08lx (%s) PID %ld%s på kedjan.\n"
+msgstr "För upp barnprocessen %p (%s) PID %s%s på kedjan.\n"
-#: job.c:1778
-#, fuzzy, c-format
+#: job.c:1953
+#, c-format
+msgid "semaphore or child process wait: (Error %ld: %s)"
+msgstr "väntan på semafor eller barnprocess: (Fel %ld: %s)"
+
+#: job.c:1967
+#, c-format
msgid "Obtained token for child %p (%s).\n"
-msgstr "Erhöll symbol för barnprocessen 0x%08lx (%s).\n"
+msgstr "Erhöll symbol för barnprocessen %p (%s).\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
-msgstr "läser från jobbledning"
+msgstr "läser från jobbledning"
-#: job.c:1798
+#: job.c:2003
#, c-format
-msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
-msgstr ""
+msgid "%s: target '%s' does not exist"
+msgstr "%s: mÃ¥let â€%s†finns inte"
-#: job.c:1802
-#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "Målet \"%s\" behöver inte återskapas"
+#: job.c:2005
+#, c-format
+msgid "%s: update target '%s' due to: %s"
+msgstr "%s: uppdatera mÃ¥let â€%s†pÃ¥ grund av: %s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
-msgstr "kan inte upprätthålla lastbegränsningar i detta operativsystem"
+msgstr "kan inte upprätthålla lastbegränsningar i detta operativsystem"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
-msgstr "kan inte upprätthålla lastbegränsning: "
+msgstr "kan inte upprätthålla lastbegränsning: "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
-msgstr "inga fler filhandtag: kunde inte duplicera stdin\n"
+msgstr "inga fler filhandtag: kunde inte duplicera standard in\n"
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
-msgstr "inga fler filhandtag: kunde inte duplicera stdout\n"
+msgstr "inga fler filhandtag: kunde inte duplicera standard ut\n"
-#: job.c:2015
+#: job.c:2223
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr "inga fler filhandtag: kunde inte duplicera standard fel\n"
+
+#: job.c:2238
msgid "Could not restore stdin\n"
-msgstr "Kunde inte återställa stdin\n"
+msgstr "Kunde inte återställa standard in\n"
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
-msgstr "Kunde inte återställa stdout\n"
+msgstr "Kunde inte återställa standard ut\n"
-#: job.c:2127
-#, fuzzy, c-format
+#: job.c:2254
+msgid "Could not restore stderr\n"
+msgstr "Kunde inte återställa standard fel\n"
+
+#: job.c:2365
+#, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
-msgstr "make inhöstade barnprocessen pid %ld, inväntar pid %ld\n"
+msgstr "make inhöstade barn-pid %s, inväntar fortfarande pid %s\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
msgstr "%s: Kommandot hittades inte"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr "%s: Skalprogrammet hittades inte"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
-msgstr "spawnvpe: miljöutrymmet kanske är slut"
+msgstr "spawnvpe: miljöutrymmet kanske är slut"
-#: job.c:2461
+#: job.c:2709
#, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
-msgstr "$SHELL ändrades (var \"%s\", är nu \"%s\")\n"
+msgid "$SHELL changed (was '%s', now '%s')\n"
+msgstr "$SHELL ändrades (var â€%sâ€, är nu â€%sâ€)\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
-msgstr "Skapar tillfällig omgångsfil %s\n"
+msgstr "Skapar tillfällig satsfil %s\n"
+
+#: job.c:3148
+msgid ""
+"Batch file contents:\n"
+"\t@echo off\n"
+msgstr ""
+"Satsfilinnehåll:\n"
+"\t@echo off\n"
-#: job.c:2963
+#: job.c:3337
#, c-format
msgid ""
"Batch file contents:%s\n"
"\t%s\n"
msgstr ""
+"Satsfilinnehåll:%s\n"
+"\t%s\n"
-#: job.c:3065
+#: job.c:3444
#, c-format
msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
msgstr "%s (rad %d) Felaktigt skalsammanhang (!unixy && !batch_mode_shell)\n"
-#: main.c:303
+#: job.h:43
+msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
+msgstr "-O[TYP] (--output-sync[=TYP]) är inte konfigurerat för detta bygge."
+
+#: load.c:53
+#, c-format
+msgid "Failed to open global symbol table: %s"
+msgstr "Misslyckades att öppna den globala symboltabellen: %s"
+
+#: load.c:87
+#, c-format
+msgid "Loaded object %s is not declared to be GPL compatible"
+msgstr "Laddat objekt %s är inte deklarerat att vara GPL-kompatibelt"
+
+#: load.c:92
+#, c-format
+msgid "Failed to load symbol %s from %s: %s"
+msgstr "Misslyckades att ladda symbolen %s från %s: %s"
+
+#: load.c:136
+#, c-format
+msgid "Empty symbol name for load: %s"
+msgstr "Tomt symbolnamn för laddning: %s"
+
+#: load.c:191
+#, c-format
+msgid "Loading symbol %s from %s\n"
+msgstr "Laddar symbol %s från %s\n"
+
+#: load.c:229
+msgid "The 'load' operation is not supported on this platform."
+msgstr "Operationen â€load†stödjs inte pÃ¥ denna plattform."
+
+#: main.c:312
msgid "Options:\n"
msgstr "Flaggor:\n"
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
-msgstr " -b, -m Ignoreras av kompatibilitetsskäl.\n"
+msgstr " -b, -m Ignoreras av kompatibilitetsskäl.\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
-msgstr " -B, --always-make Bygg ovillkorligen alla mål.\n"
+msgstr " -B, --always-make Bygg ovillkorligen alla mål.\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
msgstr ""
" -C KATALOG, --directory=KATALOG\n"
-" Byt katalog till KATALOG innan något görs.\n"
+" Byt katalog till KATALOG innan något görs.\n"
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
msgstr ""
-" -d Skriv ut massor av felsökningsinformation.\n"
+" -d Skriv ut massor av felsökningsinformation.\n"
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
" --debug[=FLAGGOR] Skriv ut olika sorters "
-"felsökningsinformation.\n"
+"felsökningsinformation.\n"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
msgstr ""
" -e, --environment-overrides\n"
-" Miljövariabler åsidosätter makefiler.\n"
+" Miljövariabler åsidosätter makefiler.\n"
-#: main.c:318
+#: main.c:327
msgid ""
" --eval=STRING Evaluate STRING as a makefile statement.\n"
-msgstr ""
+msgstr " --eval=STRÄNG Evaluera STRÄNG som en makefile-sats.\n"
-#: main.c:320
+#: main.c:329
msgid ""
" -f FILE, --file=FILE, --makefile=FILE\n"
" Read FILE as a makefile.\n"
msgstr ""
" -f FIL, --file=FIL, --makefile=FIL\n"
-" Använd FIL som makefil.\n"
+" Använd FIL som makefil.\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
msgstr " -h, --help Skriv ut detta meddelande och avsluta.\n"
-#: main.c:325
-#, fuzzy
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
-msgstr " -i, --ignore-errors Ignorera kommandofel.\n"
+msgstr " -i, --ignore-errors Ignorera fel från recept.\n"
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
msgstr ""
" -I KATALOG, --include-dir=KATALOG\n"
-" Genomsök KATALOG efter inkluderade makefiler.\n"
+" Genomsök KATALOG efter inkluderade makefiler.\n"
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
msgstr ""
-" -j [N], --jobs[=N] Tillåt N samtidiga jobb; oändligt många om "
+" -j [N], --jobs[=N] Tillåt N samtidiga jobb; oändligt många om "
"inget antal anges.\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 Fortsätt även om vissa mål inte kan skapas.\n"
+" -k, --keep-going Fortsätt även om vissa mål inte kan skapas.\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 "
"N.\n"
msgstr ""
" -l [N], --load-average[=N], --max-load[=N]\n"
-" Påbörja fler jobb endast om lasten understiger "
+" Påbörja fler jobb endast om lasten understiger "
"N.\n"
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
msgstr ""
-" -L, --check-symlink-times Använd den senaste av mtiderna för symboliska "
-"länkar eller mål.\n"
+" -L, --check-symlink-times Använd den senaste av mtiderna för symboliska "
+"länkar eller mål.\n"
-#: main.c:339
-#, fuzzy
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
"them.\n"
msgstr ""
" -n, --just-print, --dry-run, --recon\n"
-" Kör inte kommandona, skriv bara ut dem.\n"
+" Kör inte något recept, skriv bara ut dem.\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 "
"it.\n"
msgstr ""
" -o FIL, --old-file=FIL, --assume-old=FIL\n"
-" Betrakta FIL som mycket gammal och återskapa "
+" Betrakta FIL som mycket gammal och återskapa "
"den inte.\n"
-#: main.c:345
+#: main.c:354
+msgid ""
+" -O[TYPE], --output-sync[=TYPE]\n"
+" Synchronize output of parallel jobs by TYPE.\n"
+msgstr ""
+" -O[TYP], --output-sync[=TYP]\n"
+" Synkronisera utmatningen av parallella jobb\n"
+" enligt TYP.\n"
+
+#: main.c:357
msgid " -p, --print-data-base Print make's internal database.\n"
msgstr " -p, --print-data-base Skriv ut makes interna databas.\n"
-#: main.c:347
-#, fuzzy
+#: main.c:359
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
msgstr ""
-" -q, --question Kör inga kommandon; slutstatus visar "
-"färskheten.\n"
+" -q, --question Kör inga recept; slutstatus visar om det är "
+"aktuellt.\n"
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr ""
" -r, --no-builtin-rules Inaktivera de inbyggda implicita reglerna.\n"
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr ""
" -R, --no-builtin-variables Inaktivera de inbyggda "
-"variabelinställningarna.\n"
+"variabelinställningarna.\n"
-#: main.c:353
-#, fuzzy
+#: main.c:365
msgid " -s, --silent, --quiet Don't echo recipes.\n"
-msgstr " -s, --silent, --quiet Återge inte kommandon.\n"
+msgstr " -s, --silent, --quiet Ã…terge inte recept.\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
msgstr ""
" -S, --no-keep-going, --stop\n"
-" Stäng av -k.\n"
+" Stäng av -k.\n"
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
-" -t, --touch Nydatera mål i stället för att återskapa dem.\n"
+" -t, --touch Nydatera mål i stället för att återskapa dem.\n"
-#: main.c:360
+#: main.c:372
+msgid " --trace Print tracing information.\n"
+msgstr " --trace Skriv spårningsinformation.\n"
+
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr ""
" -v, --version Skriv ut makes versionsnummer och avsluta.\n"
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
msgstr " -w, --print-directory Skriv ut aktuell katalog.\n"
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
msgstr ""
-" --no-print-directory Stäng av -w, även om det är implicit "
-"påslaget.\n"
+" --no-print-directory Stäng av -w, även om det är implicit "
+"påslaget.\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"
@@ -904,30 +1049,39 @@ msgstr ""
" -W FIL, --what-if=FIL, --new-file=FIL, --assume-new=FIL\n"
" Betrakta FIL som hur ny som helst.\n"
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
msgstr ""
-" --warn-undefined-variables Varna vid användning av en odefinierad "
+" --warn-undefined-variables Varna vid användning av en odefinierad "
"variabel.\n"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
-msgstr "en tom sträng är ett ogiltigt filnamn"
+msgstr "en tom sträng är ett ogiltigt filnamn"
-#: main.c:650
+#: main.c:734
#, c-format
-msgid "unknown debug level specification `%s'"
-msgstr "okänd felsökningsnivå \"%s\" angiven"
+msgid "unknown debug level specification '%s'"
+msgstr "okänd felsökningsnivÃ¥ â€%s†angiven"
-#: main.c:690
-#, fuzzy, c-format
+#: main.c:777
+#, c-format
+msgid "unknown output-sync type '%s'"
+msgstr "okänd typ av utmatningssynkronisering â€%sâ€"
+
+#: main.c:787
+msgid "internal error: multiple --sync-mutex options"
+msgstr "internt fel: flera flaggor â€--sync-mutexâ€"
+
+#: main.c:848
+#, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
-msgstr "%s: Avbrott/Undantag fångat (kod = 0x%lx, adress = 0x%lx)\n"
+msgstr "%s: Avbrott/Undantag fångat (kod = 0x%lx, adress = 0x%p)\n"
-#: main.c:697
-#, fuzzy, c-format
+#: main.c:855
+#, c-format
msgid ""
"\n"
"Unhandled exception filter called from program %s\n"
@@ -936,215 +1090,232 @@ msgid ""
"ExceptionAddress = 0x%p\n"
msgstr ""
"\n"
-"Ett ohanterat undantagsfilter anropades från programmet %s\n"
+"Ett ohanterat undantagsfilter anropades från programmet %s\n"
"Undantagskod = %lx\n"
"Undantagsflaggor = %lx\n"
-"Undantagsadress = %lx\n"
+"Undantagsadress = 0x%p\n"
-#: main.c:705
-#, fuzzy, c-format
+#: main.c:863
+#, c-format
msgid "Access violation: write operation at address 0x%p\n"
-msgstr "Åtkomstförseelse: skrivinstruktion på adressen %lx\n"
+msgstr "Åtkomstförseelse: skrivinstruktion på adressen 0x%p\n"
-#: main.c:706
-#, fuzzy, c-format
+#: main.c:864
+#, c-format
msgid "Access violation: read operation at address 0x%p\n"
-msgstr "Åtkomstförseelse: läsinstruktion på adressen %lx\n"
+msgstr "Åtkomstförseelse: läsinstruktion på adressen 0x%p\n"
-#: main.c:781 main.c:792
-#, fuzzy, c-format
+#: main.c:940 main.c:955
+#, c-format
msgid "find_and_set_shell() setting default_shell = %s\n"
-msgstr "find_and_set_shell ger default_shell = %s\n"
+msgstr "find_and_set_shell() ger default_shell = %s\n"
-#: main.c:834
-#, fuzzy, c-format
+#: main.c:1008
+#, c-format
msgid "find_and_set_shell() path search set default_shell = %s\n"
-msgstr "find_and_set_shell-sökvägen gav default_shell = %s\n"
+msgstr "sökvägen för find_and_set_shell() gav default_shell = %s\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr "%s suspenderas i 30 sekunder..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
-msgstr "färdig med sleep(30). Fortsätter.\n"
-
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr "Makefil från standard in angavs dubbelt."
+msgstr "färdig med sleep(30). Fortsätter.\n"
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr "fopen (temporärfil)"
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr "fwrite (temporärfil)"
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "Parallella jobb (-j) stöds inte på denna plattform."
-
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
-msgstr "Återställer till enkeljobbsläge (-j1)."
-
-#: main.c:1719
+#: main.c:1534
msgid "internal error: multiple --jobserver-fds options"
msgstr "internt fel: flera \"--jobserver-fds\"-flaggor"
-#: main.c:1727
+#: main.c:1544
+#, c-format
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
+msgstr "Internt fel: kan inte öppna jobbserversemaforen â€%sâ€: (Fel %ld: %s)"
+
+#: main.c:1547
#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
-msgstr "internt fel: ogiltig \"--jobserver-fds\"-sträng \"%s\""
+msgid "Jobserver client (semaphore %s)\n"
+msgstr "Jobbserverklient (semafor %s)\n"
-#: main.c:1730
+#: main.c:1551
+#, c-format
+msgid "internal error: invalid --jobserver-fds string '%s'"
+msgstr "internt fel: ogiltig sträng â€--jobserver-fds†â€%sâ€"
+
+#: main.c:1554
#, c-format
msgid "Jobserver client (fds %d,%d)\n"
-msgstr ""
+msgstr "Jobbserverklient (fb %d,%d)\n"
-#: main.c:1740
+#: main.c:1567
msgid "warning: -jN forced in submake: disabling jobserver mode."
-msgstr "varning: -jN framtvingat i del-make: inaktiverar jobbserverläge."
+msgstr "varning: -jN framtvingat i del-make: inaktiverar jobbserverläge."
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
msgstr "duplicerar jobbserver"
-#: main.c:1753
+#: main.c:1586
msgid ""
-"warning: jobserver unavailable: using -j1. Add `+' to parent make rule."
+"warning: jobserver unavailable: using -j1. Add '+' to parent make rule."
msgstr ""
-"varning: jobbserver otillgänglig: använder -j1. Lägg till \"+\" i "
-"föräldraregeln."
+"varning: jobbserver otillgänglig: använder -j1. Lägg till â€+†i "
+"föräldraregeln."
+
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "Makefil från standard in angavs dubbelt."
-#: main.c:1777
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (temporärfil)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (temporärfil)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr "Parallella jobb (-j) stöds inte på denna plattform."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "Återställer till enkeljobbsläge (-j1)."
+
+#: main.c:2006
+#, c-format
+msgid "Jobserver slots limited to %d\n"
+msgstr "Jobbserfacj begränsat till %d\n"
+
+#: main.c:2012
+#, c-format
+msgid "creating jobserver semaphore: (Error %ld: %s)"
+msgstr "skapar jobbserversemafor: (Fel %ld: %s)"
+
+#: main.c:2019
msgid "creating jobs pipe"
msgstr "skapar jobbledning"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
-msgstr "iordningställer ledning till jobbserver"
+msgstr "iordningställer ledning till jobbserver"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
-msgstr "Symboliska länkar stöds inte: inaktiverar -L."
+msgstr "Symboliska länkar stöds inte: inaktiverar -L."
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr "Uppdaterar makefiler...\n"
-#: main.c:1917
+#: main.c:2174
#, c-format
-msgid "Makefile `%s' might loop; not remaking it.\n"
-msgstr "Makefilen \"%s\" torde loopa; återskapas inte.\n"
+msgid "Makefile '%s' might loop; not remaking it.\n"
+msgstr "Makefilen â€%s†kan loopa; Ã¥terskapas inte.\n"
-#: main.c:1996
+#: main.c:2253
#, c-format
-msgid "Failed to remake makefile `%s'."
-msgstr "Misslyckades med att återskapa makefilen \"%s\"."
+msgid "Failed to remake makefile '%s'."
+msgstr "Misslyckades med att Ã¥terskapa makefilen â€%sâ€."
-#: main.c:2013
+#: main.c:2270
#, c-format
-msgid "Included makefile `%s' was not found."
-msgstr "Den inkluderade makefilen \"%s\" hittades inte."
+msgid "Included makefile '%s' was not found."
+msgstr "Den inkluderade makefilen â€%s†fanns inte."
-#: main.c:2018
+#: main.c:2275
#, c-format
-msgid "Makefile `%s' was not found"
-msgstr "Makefilen \"%s\" hittades inte"
+msgid "Makefile '%s' was not found"
+msgstr "Makefilen â€%s†fanns inte"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
-msgstr "Kunde inte återgå till ursprungskatalogen."
+msgstr "Kunde inte återgå till ursprungskatalogen."
-#: main.c:2102
+#: main.c:2354
#, c-format
msgid "Re-executing[%u]:"
-msgstr "Utför på nytt[%u]:"
+msgstr "Utför på nytt[%u]:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
-msgstr "avlänka (temporärfil): "
+msgstr "avlänka (temporärfil): "
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
-msgstr ".DEFAULT_GOAL innehåller fler än ett mål"
+msgstr ".DEFAULT_GOAL innehåller fler än ett mål"
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
-msgstr "Inga mål angavs och ingen makefil hittades"
+msgstr "Inga mål angavs och ingen makefil hittades"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
-msgstr "Inga mål"
+msgstr "Inga mål"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
-msgstr "Uppdaterar slutmål...\n"
+msgstr "Uppdaterar slutmål...\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr ""
-"varning: Klockförskjutning upptäckt. Bygget kan ha blivit ofullständigt."
+"varning: Klockförskjutning upptäckt. Bygget kan ha blivit ofullständigt."
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
-msgstr "Användning: %s [flaggor] [mål] ...\n"
+msgstr "Användning: %s [flaggor] [mål] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
"This program built for %s\n"
msgstr ""
"\n"
-"Detta program byggdes för %s\n"
+"Detta program byggdes för %s\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
"This program built for %s (%s)\n"
msgstr ""
"\n"
-"Detta program byggdes för %s (%s)\n"
+"Detta program byggdes för %s (%s)\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
msgstr ""
-"Anmäl fel till <bug-make@gnu.org>.\n"
-"Skicka synpunkter på översättningen till <sv@li.org>.\n"
+"Anmäl fel till <bug-make@gnu.org>.\n"
+"Skicka synpunkter på översättningen till <sv@li.org>.\n"
-#: main.c:2562
-#, fuzzy, c-format
-msgid "the `%s%s' option requires a non-empty string argument"
-msgstr "flaggan \"-%c\" kräver ett strängargument som inte är tomt"
+#: main.c:2810
+#, c-format
+msgid "the '%s%s' option requires a non-empty string argument"
+msgstr "flaggan â€%s%s†kräver ett strängargument som inte är tomt"
-#: main.c:2617
+#: main.c:2864
#, c-format
-msgid "the `-%c' option requires a positive integral argument"
-msgstr "flaggan \"-%c\" kräver ett positivt heltal som argument"
+msgid "the '-%c' option requires a positive integer argument"
+msgstr "flaggan â€-%c†kräver ett positivt heltal som argument"
-#: main.c:3054
-#, fuzzy, c-format
+#: main.c:3253
+#, c-format
msgid "%sBuilt for %s\n"
-msgstr ""
-"\n"
-"%sDetta program byggdes för %s\n"
+msgstr "%sByggt för %s\n"
-#: main.c:3056
-#, fuzzy, c-format
+#: main.c:3255
+#, c-format
msgid "%sBuilt for %s (%s)\n"
-msgstr ""
-"\n"
-"%sDetta program byggdes för %s (%s)\n"
+msgstr "%sByggt för %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."
@@ -1152,8 +1323,12 @@ msgid ""
"%sThis is free software: you are free to change and redistribute it.\n"
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
+"%sLicens GPLv3+: GNU GPL version 3 eller senare <http://gnu.org/licenses/gpl."
+"html>\n"
+"%sDetta är fri programvara. du får lov att ändra och vidaredistribuera den.\n"
+"%sDet finns INGEN GARANTI, så långt lagen tillåter.\n"
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
@@ -1162,126 +1337,126 @@ msgstr ""
"\n"
"# Make-databas, utskriven %s"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
"# Finished Make data base on %s\n"
msgstr ""
"\n"
-"# Färdigställde Make-databas %s\n"
+"# Färdigställde Make-databas %s\n"
-#: main.c:3237
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "Okänt fel %d"
+
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "virtuellt minne uttömt"
+
+#: misc.c:522
+#, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s: användare %lu (verklig %lu), grupp %lu (verklig %lu)\n"
+
+#: misc.c:543
+msgid "Initialized access"
+msgstr "Ã…tkomst inledd"
+
+#: misc.c:622
+msgid "User access"
+msgstr "Användaråtkomst"
+
+#: misc.c:670
+msgid "Make access"
+msgstr "Make-Ã¥tkomst"
+
+#: misc.c:704
+msgid "Child access"
+msgstr "Barnåtkomst"
+
+#: output.c:128
#, c-format
msgid "%s: Entering an unknown directory\n"
-msgstr "%s: Går till en okänd katalog\n"
+msgstr "%s: Går till en okänd katalog\n"
-#: main.c:3239
+#: output.c:130
#, c-format
msgid "%s: Leaving an unknown directory\n"
-msgstr "%s: Lämnar en okänd katalog\n"
+msgstr "%s: Lämnar en okänd katalog\n"
-#: main.c:3242
+#: output.c:133
#, c-format
-msgid "%s: Entering directory `%s'\n"
-msgstr "%s: Går till katalogen \"%s\"\n"
+msgid "%s: Entering directory '%s'\n"
+msgstr "%s: GÃ¥r till katalogen â€%sâ€\n"
-#: main.c:3245
+#: output.c:135
#, c-format
-msgid "%s: Leaving directory `%s'\n"
-msgstr "%s: Lämnar katalogen \"%s\"\n"
+msgid "%s: Leaving directory '%s'\n"
+msgstr "%s: Lämnar katalogen â€%sâ€\n"
-#: main.c:3250
+#: output.c:139
#, c-format
msgid "%s[%u]: Entering an unknown directory\n"
-msgstr "%s[%u]: Går till en okänd katalog\n"
+msgstr "%s[%u]: Går till en okänd katalog\n"
-#: main.c:3253
+#: output.c:141
#, c-format
msgid "%s[%u]: Leaving an unknown directory\n"
-msgstr "%s[%u]: Lämnar en okänd katalog\n"
+msgstr "%s[%u]: Lämnar en okänd katalog\n"
-#: main.c:3257
+#: output.c:144
#, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
-msgstr "%s[%u]: Går till katalogen \"%s\"\n"
+msgid "%s[%u]: Entering directory '%s'\n"
+msgstr "%s[%u]: GÃ¥r till katalogen â€%sâ€\n"
-#: main.c:3260
+#: output.c:146
#, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
-msgstr "%s[%u]: Lämnar katalogen \"%s\"\n"
+msgid "%s[%u]: Leaving directory '%s'\n"
+msgstr "%s[%u]: Lämnar katalogen â€%sâ€\n"
-#: misc.c:316
+#: output.c:515
+#, c-format
+msgid "write error: %s"
+msgstr "skrivfel: %s"
+
+#: output.c:517
+msgid "write error"
+msgstr "skrivfel"
+
+#: output.c:740
msgid ". Stop.\n"
msgstr ". Stannar.\n"
-#: misc.c:337
-#, c-format
-msgid "Unknown error %d"
-msgstr "Okänt fel %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 "virtuellt minne uttömt"
-
-#: misc.c:708
-#, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s: användare %lu (verklig %lu), grupp %lu (verklig %lu)\n"
-
-#: misc.c:729
-msgid "Initialized access"
-msgstr "Åtkomst inledd"
-
-#: misc.c:808
-msgid "User access"
-msgstr "Användaråtkomst"
-
-#: misc.c:856
-msgid "Make access"
-msgstr "Make-åtkomst"
-
-#: misc.c:890
-msgid "Child access"
-msgstr "Barnåtkomst"
-
-#: misc.c:954
-#, c-format
-msgid "write error: %s"
-msgstr "skrivfel: %s"
-
-#: misc.c:956
-msgid "write error"
-msgstr "skrivfel"
-
-#: read.c:179
+#: read.c:180
msgid "Reading makefiles...\n"
-msgstr "Läser makefiler...\n"
+msgstr "Läser makefiler...\n"
#: read.c:333
#, c-format
-msgid "Reading makefile `%s'"
-msgstr "Läser makefil \"%s\""
+msgid "Reading makefile '%s'"
+msgstr "Läser makefilen â€%sâ€"
#: read.c:335
#, c-format
msgid " (no default goal)"
-msgstr " (inget standardmål)"
+msgstr " (inget standardmål)"
#: read.c:337
#, c-format
msgid " (search path)"
-msgstr " (sökväg)"
+msgstr " (sökväg)"
#: read.c:339
#, c-format
@@ -1293,329 +1468,337 @@ msgstr " (oviktigt)"
msgid " (no ~ expansion)"
msgstr " (ingen ~-expansion)"
-#: read.c:759
+#: read.c:652
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile '%s'\n"
+msgstr "Hoppar över UTF-8-BOM i makefilen â€%sâ€\n"
+
+#: read.c:655
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile buffer\n"
+msgstr "Hoppar över UTF-8-BOM i makefile-buffert\n"
+
+#: read.c:786
msgid "invalid syntax in conditional"
msgstr "ogiltig syntax i villkorssats"
-#: read.c:891
-#, fuzzy
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr "%s: misslyckades att ladda"
+
+#: read.c:987
msgid "recipe commences before first target"
-msgstr "kommandon inleds före första målet"
+msgstr "recept inleds före första målet"
-#: read.c:940
-#, fuzzy
+#: read.c:1036
msgid "missing rule before recipe"
-msgstr "regel saknas före kommandon"
+msgstr "regel saknas före recept"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
msgstr "separator saknas%s"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
-msgstr " (var avsikten TAB i stället för 8 mellanslag?)"
+msgstr " (var avsikten TAB i stället för 8 mellanslag?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
-msgstr "målmönster saknas"
+msgstr "målmönster saknas"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
-msgstr "flera målmönster"
+msgstr "flera målmönster"
-#: read.c:1169
+#: read.c:1269
#, c-format
-msgid "target pattern contains no `%%'"
-msgstr "målmönstret innehåller inget \"%%\""
+msgid "target pattern contains no '%%'"
+msgstr "mÃ¥lmönstret innehÃ¥ller inget â€%%â€"
-#: read.c:1293
-msgid "missing `endif'"
-msgstr "\"endif\" saknas"
+#: read.c:1391
+msgid "missing 'endif'"
+msgstr "â€endif†saknas"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "tomt variabelnamn"
-#: read.c:1367
-#, fuzzy
-msgid "extraneous text after `define' directive"
-msgstr "Överflödig text efter direktivet \"endef\""
+#: read.c:1465
+msgid "extraneous text after 'define' directive"
+msgstr "överflödig text efter direktivet â€defineâ€"
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
-msgstr "\"endef\" saknas, oavslutat \"define\""
+#: read.c:1490
+msgid "missing 'endef', unterminated 'define'"
+msgstr "â€endef†saknas, oavslutad â€defineâ€"
-#: read.c:1420
-#, fuzzy
-msgid "extraneous text after `endef' directive"
-msgstr "Överflödig text efter direktivet \"endef\""
+#: read.c:1518
+msgid "extraneous text after 'endef' directive"
+msgstr "överflödig text efter direktivet â€endefâ€"
-#: read.c:1490
+#: read.c:1589
#, c-format
-msgid "Extraneous text after `%s' directive"
-msgstr "Överflödig text efter direktivet \"%s\""
+msgid "extraneous text after '%s' directive"
+msgstr "överflödig text efter direktivet â€%sâ€"
-#: read.c:1499 read.c:1513
+#: read.c:1598 read.c:1612
#, c-format
-msgid "extraneous `%s'"
-msgstr "överflödigt \"%s\""
+msgid "extraneous '%s'"
+msgstr "överflödigt â€%sâ€"
-#: read.c:1518
-msgid "only one `else' per conditional"
-msgstr "endast ett \"else\" per villkor"
+#: read.c:1617
+msgid "only one 'else' per conditional"
+msgstr "endast ett â€else†per villkor"
-#: read.c:1797
+#: read.c:1892
msgid "Malformed target-specific variable definition"
-msgstr "Felformad målberoende variabeldefinition"
+msgstr "Felformad målberoende variabeldefinition"
-#: read.c:1855
-#, fuzzy
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
-msgstr "beroenden kan inte definieras i kommandoskript"
+msgstr "beroenden kan inte definieras i recept"
-#: read.c:1908
+#: read.c:2009
msgid "mixed implicit and static pattern rules"
-msgstr "blandade implicita regler och statiska mönsterregler"
+msgstr "blandade implicita regler och statiska mönsterregler"
-#: read.c:1931 read.c:2112
+#: read.c:2032 read.c:2220
msgid "mixed implicit and normal rules"
msgstr "blandade implicita regler och normala regler"
-#: read.c:1976
+#: read.c:2084
#, c-format
-msgid "target `%s' doesn't match the target pattern"
-msgstr "målet \"%s\" motsvarar inte målmönstret"
+msgid "target '%s' doesn't match the target pattern"
+msgstr "mÃ¥let â€%s†motsvarar inte mÃ¥lmönstret"
-#: read.c:1991 read.c:2036
+#: read.c:2099 read.c:2144
#, c-format
-msgid "target file `%s' has both : and :: entries"
-msgstr "målfilen \"%s\" har både poster med : och ::"
+msgid "target file '%s' has both : and :: entries"
+msgstr "mÃ¥lfilen â€%s†har bÃ¥de poster med : och ::"
-#: read.c:1997
+#: read.c:2105
#, c-format
-msgid "target `%s' given more than once in the same rule."
-msgstr "målet \"%s\" anges flera gånger i samma regel."
+msgid "target '%s' given more than once in the same rule"
+msgstr "mÃ¥let â€%s†anges flera gÃ¥nger i samma regel"
-#: read.c:2006
-#, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
-msgstr "varning: åsidosätter kommandon för målet \"%s\""
+#: read.c:2114
+#, c-format
+msgid "warning: overriding recipe for target '%s'"
+msgstr "varning: Ã¥sidosätter recept för mÃ¥let â€%sâ€"
-#: read.c:2009
-#, fuzzy, c-format
-msgid "warning: ignoring old recipe for target `%s'"
-msgstr "varning: bortser från gamla kommandon för målet \"%s\""
+#: read.c:2117
+#, c-format
+msgid "warning: ignoring old recipe for target '%s'"
+msgstr "varning: ignorerar gammalt recept för mÃ¥let â€%sâ€"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
-msgstr "varning: NUL-tecken upptäckt, bortser från resten av raden"
+msgstr "varning: NUL-tecken upptäckt, bortser från resten av raden"
-#: remake.c:234
+#: remake.c:232
#, c-format
-msgid "Nothing to be done for `%s'."
-msgstr "Inget behöver göras för \"%s\"."
+msgid "Nothing to be done for '%s'."
+msgstr "Inget behöver göras för â€%sâ€."
-#: remake.c:235
+#: remake.c:233
#, c-format
-msgid "`%s' is up to date."
-msgstr "\"%s\" är färsk."
+msgid "'%s' is up to date."
+msgstr "â€%s†är aktuell."
-#: remake.c:306
+#: remake.c:305
#, c-format
-msgid "Pruning file `%s'.\n"
-msgstr "Beskär filen \"%s\".\n"
+msgid "Pruning file '%s'.\n"
+msgstr "Beskär filen â€%sâ€.\n"
-#: remake.c:359
+#: remake.c:377
#, c-format
-msgid "%sNo rule to make target `%s'%s"
-msgstr "%sIngen regel för att skapa målet \"%s\"%s"
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sIngen regel för att skapa mÃ¥let â€%sâ€%s"
-#: remake.c:361
+#: remake.c:379
#, c-format
-msgid "%sNo rule to make target `%s', needed by `%s'%s"
-msgstr "%sIngen regel för att skapa målet \"%s\", som behövs till \"%s\"%s"
+msgid "%sNo rule to make target '%s', needed by '%s'%s"
+msgstr "%sIngen regel för att skapa mÃ¥let â€%sâ€, som behövs av â€%sâ€%s"
#: remake.c:413
#, c-format
-msgid "Considering target file `%s'.\n"
-msgstr "Överväger målfilen \"%s\".\n"
+msgid "Considering target file '%s'.\n"
+msgstr "Överväger mÃ¥lfilen â€%sâ€.\n"
#: remake.c:420
#, c-format
-msgid "Recently tried and failed to update file `%s'.\n"
-msgstr "Misslyckades nyligen med att uppdatera filen \"%s\".\n"
+msgid "Recently tried and failed to update file '%s'.\n"
+msgstr "Misslyckades nyligen med att uppdatera filen â€%sâ€.\n"
#: remake.c:432
#, c-format
-msgid "File `%s' was considered already.\n"
-msgstr "Filen \"%s\" har redan övervägts.\n"
+msgid "File '%s' was considered already.\n"
+msgstr "Filen â€%s†har redan övervägts.\n"
#: remake.c:442
#, c-format
-msgid "Still updating file `%s'.\n"
-msgstr "Uppdaterar fortfarande filen \"%s\".\n"
+msgid "Still updating file '%s'.\n"
+msgstr "Uppdaterar fortfarande filen â€%sâ€.\n"
#: remake.c:445
#, c-format
-msgid "Finished updating file `%s'.\n"
-msgstr "Slutförde uppdaterandet av filen \"%s\".\n"
+msgid "Finished updating file '%s'.\n"
+msgstr "Slutförde uppdaterandet av filen â€%sâ€.\n"
#: remake.c:474
#, c-format
-msgid "File `%s' does not exist.\n"
-msgstr "Filen \"%s\" finns inte.\n"
+msgid "File '%s' does not exist.\n"
+msgstr "Filen â€%s†finns inte.\n"
#: remake.c:481
#, 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 ""
-"*** Varning: .LOW_RESOLUTION_TIME-filen \"%s\" har en högupplöst tidsstämpel"
+"*** Varning: .LOW_RESOLUTION_TIME-filen â€%s†har en högupplöst tidsstämpel"
-#: remake.c:494 remake.c:1016
+#: remake.c:494 remake.c:1019
#, c-format
-msgid "Found an implicit rule for `%s'.\n"
-msgstr "Hittade en implicit regel för \"%s\".\n"
+msgid "Found an implicit rule for '%s'.\n"
+msgstr "Hittade en implicit regel för â€%sâ€.\n"
-#: remake.c:496 remake.c:1018
+#: remake.c:496 remake.c:1021
#, c-format
-msgid "No implicit rule found for `%s'.\n"
-msgstr "Hittade ingen implicit regel för \"%s\".\n"
+msgid "No implicit rule found for '%s'.\n"
+msgstr "Hittade ingen implicit regel för â€%sâ€.\n"
#: remake.c:502
-#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
-msgstr "Använder standardkommandon för \"%s\".\n"
+#, c-format
+msgid "Using default recipe for '%s'.\n"
+msgstr "Använder standardrecept för â€%sâ€.\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
-msgstr "Det cirkulära beroendet %s <- %s släpptes."
+msgstr "Det cirkulära beroendet %s <- %s släpptes."
-#: remake.c:651
+#: remake.c:655
#, c-format
-msgid "Finished prerequisites of target file `%s'.\n"
-msgstr "Färdigställde de nödvändiga förutsättningarna för målfilen \"%s\".\n"
+msgid "Finished prerequisites of target file '%s'.\n"
+msgstr "Avslutade förutsättningarna för mÃ¥lfilen â€%sâ€.\n"
-#: remake.c:657
+#: remake.c:661
#, c-format
-msgid "The prerequisites of `%s' are being made.\n"
-msgstr "De nödvändiga förutsättningarna för \"%s\" håller på att skapas.\n"
+msgid "The prerequisites of '%s' are being made.\n"
+msgstr "Förutsättningarna för â€%s†skapas.\n"
-#: remake.c:670
+#: remake.c:674
#, c-format
-msgid "Giving up on target file `%s'.\n"
-msgstr "Ger upp med målfilen \"%s\".\n"
+msgid "Giving up on target file '%s'.\n"
+msgstr "Ger upp med mÃ¥lfilen â€%sâ€.\n"
-#: remake.c:675
+#: remake.c:679
#, c-format
-msgid "Target `%s' not remade because of errors."
-msgstr "Målet \"%s\" återskapades inte på grund av fel."
+msgid "Target '%s' not remade because of errors."
+msgstr "MÃ¥let â€%s†återskapades inte pÃ¥ grund av fel."
-#: remake.c:727
+#: remake.c:731
#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
-msgstr ""
-"Den nödvändiga förutsättningen \"%s\" för målet \"%s\" är endast-ordning.\n"
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
+msgstr "Förutsättningen â€%s†för mÃ¥let â€%s†är endast ordning.\n"
-#: remake.c:732
+#: remake.c:736
#, c-format
-msgid "Prerequisite `%s' of target `%s' does not exist.\n"
-msgstr "Den nödvändiga förutsättningen \"%s\" för målet \"%s\" finns inte.\n"
+msgid "Prerequisite '%s' of target '%s' does not exist.\n"
+msgstr "Förutsättningen â€%s†för mÃ¥let â€%s†finns inte.\n"
-#: remake.c:737
+#: remake.c:741
#, c-format
-msgid "Prerequisite `%s' is newer than target `%s'.\n"
-msgstr "Den nödvändiga förutsättningen \"%s\" är nyare än målet \"%s\".\n"
+msgid "Prerequisite '%s' is newer than target '%s'.\n"
+msgstr "Förutsättningen â€%s†är nyare än mÃ¥let â€%sâ€.\n"
-#: remake.c:740
+#: remake.c:744
#, c-format
-msgid "Prerequisite `%s' is older than target `%s'.\n"
-msgstr "Den nödvändiga förutsättningen \"%s\" är äldre än målet \"%s\".\n"
+msgid "Prerequisite '%s' is older than target '%s'.\n"
+msgstr "Förutsättningen â€%s†är äldre än mÃ¥let â€%sâ€.\n"
-#: remake.c:758
+#: remake.c:762
#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
-msgstr "Målet \"%s\" är dubbelkolon och har inga beroenden.\n"
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
+msgstr "MÃ¥let â€%s†är dubbelkolon och har inga förutsättningar.\n"
-#: remake.c:765
-#, fuzzy, c-format
-msgid "No recipe for `%s' and no prerequisites actually changed.\n"
-msgstr ""
-"Inga kommandon eller nödvändiga förutsättningar för \"%s\" har förändrats.\n"
+#: remake.c:769
+#, c-format
+msgid "No recipe for '%s' and no prerequisites actually changed.\n"
+msgstr "Inget recept för â€%s†och inga förutsättningar har förändrats.\n"
-#: remake.c:770
+#: remake.c:774
#, c-format
-msgid "Making `%s' due to always-make flag.\n"
-msgstr "Skapar \"%s\" på grund av flaggan always-make.\n"
+msgid "Making '%s' due to always-make flag.\n"
+msgstr "Skapar â€%s†pÃ¥ grund av flaggan always-make.\n"
-#: remake.c:778
+#: remake.c:782
#, c-format
-msgid "No need to remake target `%s'"
-msgstr "Målet \"%s\" behöver inte återskapas"
+msgid "No need to remake target '%s'"
+msgstr "Inget behov att Ã¥terskapa mÃ¥let â€%sâ€"
-#: remake.c:780
+#: remake.c:784
#, c-format
-msgid "; using VPATH name `%s'"
-msgstr "; använder VPATH-namnet \"%s\""
+msgid "; using VPATH name '%s'"
+msgstr "; använder VPATH-namnet â€%sâ€"
-#: remake.c:800
+#: remake.c:804
#, c-format
-msgid "Must remake target `%s'.\n"
-msgstr "Måste återskapa målet \"%s\".\n"
+msgid "Must remake target '%s'.\n"
+msgstr "MÃ¥ste Ã¥terskapa mÃ¥let â€%sâ€.\n"
-#: remake.c:806
+#: remake.c:810
#, c-format
-msgid " Ignoring VPATH name `%s'.\n"
-msgstr " Bortser från VPATH-namnet \"%s\".\n"
+msgid " Ignoring VPATH name '%s'.\n"
+msgstr " Bortser frÃ¥n VPATH-namnet â€%sâ€.\n"
-#: remake.c:815
-#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
-msgstr "Kommandon för \"%s\" körs.\n"
+#: remake.c:819
+#, c-format
+msgid "Recipe of '%s' is being run.\n"
+msgstr "Receptet för â€%s†körs.\n"
-#: remake.c:822
+#: remake.c:826
#, c-format
-msgid "Failed to remake target file `%s'.\n"
-msgstr "Misslyckades med att återskapa målfilen \"%s\".\n"
+msgid "Failed to remake target file '%s'.\n"
+msgstr "Misslyckades med att Ã¥terskapa mÃ¥lfilen â€%sâ€.\n"
-#: remake.c:825
+#: remake.c:829
#, c-format
-msgid "Successfully remade target file `%s'.\n"
-msgstr "Målfilen \"%s\" återskapades.\n"
+msgid "Successfully remade target file '%s'.\n"
+msgstr "Ã…terskapade mÃ¥lfilen â€%sâ€.\n"
-#: remake.c:828
+#: remake.c:832
#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
-msgstr "Målfilen \"%s\" behöver återskapas med -q.\n"
+msgid "Target file '%s' needs to be remade under -q.\n"
+msgstr "MÃ¥lfilen â€%s†behöver Ã¥terskapas med -q.\n"
-#: remake.c:1024
+#: remake.c:1027
#, c-format
-msgid "Using default commands for `%s'.\n"
-msgstr "Använder standardkommandon för \"%s\".\n"
+msgid "Using default commands for '%s'.\n"
+msgstr "Använder standardkommandon för â€%sâ€.\n"
-#: remake.c:1357
+#: remake.c:1372
#, c-format
-msgid "Warning: File `%s' has modification time in the future"
-msgstr "Varning: Filen \"%s\" har ett ändringsdatum i framtiden."
+msgid "Warning: File '%s' has modification time in the future"
+msgstr "Varning: Filen â€%s†har ett ändringstid i framtiden"
-#: remake.c:1370
-#, fuzzy, c-format
-msgid "Warning: File `%s' has modification time %s s in the future"
-msgstr "Varning: Filen \"%s\" har en ändringstid %.2g sekunder i framtiden"
+#: remake.c:1385
+#, c-format
+msgid "Warning: File '%s' has modification time %s s in the future"
+msgstr "Varning: Filen â€%s†har en ändringstid %s s i framtiden"
-#: remake.c:1569
+#: remake.c:1583
#, c-format
-msgid ".LIBPATTERNS element `%s' is not a pattern"
-msgstr ".LIBPATTERNS-elementet \"%s\" är inte något mönster"
+msgid ".LIBPATTERNS element '%s' is not a pattern"
+msgstr ".LIBPATTERNS-elementet â€%s†är inte ett mönster"
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
msgstr "Customs kommer inte att exportera %s\n"
-#: rule.c:499
+#: rule.c:496
msgid ""
"\n"
"# Implicit Rules"
@@ -1623,7 +1806,7 @@ msgstr ""
"\n"
"# Implicita regler"
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
@@ -1631,7 +1814,7 @@ msgstr ""
"\n"
"# Inga implicita regler."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -1640,244 +1823,266 @@ msgstr ""
"\n"
"# %u implicita regler, %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr " slutregler."
-#: rule.c:534
-#, fuzzy, c-format
+#: rule.c:531
+#, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
-msgstr "FEL: num_pattern_rules felaktigt! %u != %u"
+msgstr "FEL: num_pattern_rules är felaktigt! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
-msgstr "okänd signal"
+msgstr "okänd signal"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
msgstr "Avringd"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "Avbrott"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
msgstr "Avslutad"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
-msgstr "Otillåten instruktion"
+msgstr "Otillåten instruktion"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
-msgstr "Spårningsfälla"
+msgstr "Spårningsfälla"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "Avbruten"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
-msgstr "IO-fälla"
+msgstr "IO-fälla"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
-msgstr "Emulatorfälla"
+msgstr "Emulatorfälla"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
msgstr "Flyttalsundantag"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
-msgstr "Dödad"
+msgstr "Dödad"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr "Bussfel"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "Segmenteringsfel"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "Felaktigt systemanrop"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr "Ledningsbrott"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "Alarmklocka"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
msgstr "Avslutad"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
-msgstr "Användarsignal 1"
+msgstr "Användarsignal 1"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
-msgstr "Användarsignal 2"
+msgstr "Användarsignal 2"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
msgstr "Barn avslutades"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
-msgstr "Strömavbrott"
+msgstr "Strömavbrott"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "Stoppades"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
-msgstr "Stoppades (tty-läsning)"
+msgstr "Stoppades (tty-läsning)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
msgstr "Stoppades (tty-utskrift)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "Stoppades (signal)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
-msgstr "CPU-tidsgräns överskreds"
+msgstr "CPU-tidsgräns överskreds"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
-msgstr "Filstorleksgräns överskreds"
+msgstr "Filstorleksgräns överskreds"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
-msgstr "Virtuellt tidur löpte ut"
+msgstr "Virtuellt tidur löpte ut"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
-msgstr "Profileringstidur löpte ut"
+msgstr "Profileringstidur löpte ut"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
-msgstr "Fönster ändrat"
+msgstr "Fönster ändrat"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "Fortsatte"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
-msgstr "Brådskande I/O-läge"
+msgstr "Brådskande I/O-läge"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
-msgstr "I/O-tillfälle"
+msgstr "I/O-tillfälle"
-#: 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 "Miste resurs"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "Farosignal"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
-msgstr "Informationsbegäran"
+msgstr "Informationsbegäran"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
-msgstr "Flyttalsprocessor inte tillgänglig"
+msgstr "Flyttalsprocessor inte tillgänglig"
-#: strcache.c:235
-#, fuzzy, c-format
+#: strcache.c:236
+#, c-format
msgid ""
"\n"
-"%s # of strings in strcache: %d / lookups = %lu / hits = %lu\n"
+"%s No strcache buffers\n"
msgstr ""
"\n"
-"%s antal strängar i strcache: %d\n"
+"%s Inga strcache-buffertar\n"
-#: strcache.c:237
-#, fuzzy, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
-msgstr "%s antal strcache-buffertar: %d\n"
+#: strcache.c:266
+#, c-format
+msgid ""
+"\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
+msgstr ""
+"\n"
+"%s strcache-buffertar: totalt = %lu (%lu) / strängar = %lu / lagring = %lu "
+"B / snitt = %lu B\n"
-#: strcache.c:239
-#, fuzzy, c-format
-msgid "%s strcache used: total = %d (%d) / max = %d / min = %d / avg = %d\n"
-msgstr "%s strcache storlek: total = %d / max = %d / min = %d / snitt = %d\n"
+#: strcache.c:270
+#, c-format
+msgid ""
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
+msgstr ""
+"%s aktuell buf: storlek = %hu B / använt = %hu B / antal = %hu / snitt = %hu "
+"B\n"
-#: strcache.c:241
-#, fuzzy, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
-msgstr "%s strcache ledigt: total = %d / max = %d / min = %d / snitt = %d\n"
+#: strcache.c:280
+#, c-format
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
+msgstr "%s annat använt: totalt = %lu B / antal = %lu / snitt = %lu B\n"
-#: 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 ""
+"%s annat ledigt: totalt = %lu B / max = %lu B / min = %lu B / snitt = %hu B\n"
+
+#: strcache.c:287
+#, c-format
msgid ""
"\n"
-"# strcache hash-table stats:\n"
-"# "
+"%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
msgstr ""
"\n"
-"# statistik för filhashtabell:\n"
+"%s strcache-prestanda: uppslagningar = %lu / träffsäkerhet = %lu %%\n"
+
+#: strcache.c:289
+msgid ""
+"# hash-table stats:\n"
"# "
+msgstr ""
+"# statistik för hashtabell:\n"
+"# "
+
+#: variable.c:1607
+msgid "automatic"
+msgstr "automatisk"
-#: variable.c:1541
+#: variable.c:1610
msgid "default"
msgstr "normal"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
-msgstr "miljö"
+msgstr "miljö"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr "makefil"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
-msgstr "miljö enligt -e"
+msgstr "miljö enligt -e"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr "kommandorad"
-#: variable.c:1556
-msgid "`override' directive"
-msgstr "\"override\"-direktiv"
-
-#: variable.c:1559
-msgid "automatic"
-msgstr "automatisk"
+#: variable.c:1625
+msgid "'override' directive"
+msgstr "â€overrideâ€-direktiv"
-#: variable.c:1570
+#: variable.c:1636
#, c-format
-msgid " (from `%s', line %lu)"
-msgstr " (från \"%s\", rad %lu)"
+msgid " (from '%s', line %lu)"
+msgstr " (frÃ¥n â€%sâ€, rad %lu)"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
-msgstr "# statistik för variabelmängd-hashtabell:\n"
+msgstr "# statistik för variabelmängd-hashtabell:\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1885,272 +2090,151 @@ msgstr ""
"\n"
"# Variabler\n"
-#: variable.c:1627
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
msgstr ""
"\n"
-"# Mönsterspecifika variabelvärden"
+"# Mönsterspecifika variabelvärden"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
msgstr ""
"\n"
-"# Inga mönsterspecifika variabelvärden."
+"# Inga mönsterspecifika variabelvärden."
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
"# %u pattern-specific variable values"
msgstr ""
"\n"
-"# %u mönsterspecifika variabelvärden"
+"# %u mönsterspecifika variabelvärden"
-#: variable.h:219
+#: variable.h:224
#, c-format
-msgid "warning: undefined variable `%.*s'"
-msgstr "varning: odefinierad variabel \"%.*s\""
+msgid "warning: undefined variable '%.*s'"
+msgstr "varning: odefinierad variabel â€%.*sâ€"
-#: vmsfunctions.c:92
-#, fuzzy, c-format
+#: vmsfunctions.c:91
+#, c-format
msgid "sys$search() failed with %d\n"
-msgstr "sys$search misslyckades och gav %d\n"
+msgstr "sys$search() misslyckades med %d\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr "Varning: Tom omdirigering\n"
-#: vmsjobs.c:184
+#: vmsjobs.c:178
#, c-format
-msgid "internal error: `%s' command_state"
-msgstr "internt fel: \"%s\" command_state"
+msgid "internal error: '%s' command_state"
+msgstr "internt fel: â€%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 "-varning, CTRL-Y-hantering kanske behöver återställas från DCL.\n"
+msgstr "-varning, CTRL-Y-hantering kanske behöver återställas från DCL.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr "INBYGGT [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr "INBYGGT CD %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr "INBYGGT RM %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
-msgstr "Okänt inbyggt kommando \"%s\"\n"
+msgstr "Okänt inbyggt kommando \"%s\"\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr "Fel, tomt kommando\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr "Inkanal omdirigerad till %s\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr "Felkanal omdirigerad till %s\n"
-#: vmsjobs.c:523
-#, fuzzy, c-format
+#: vmsjobs.c:518
+#, c-format
msgid "Append output to %s\n"
-msgstr "Utkanal omdirigerad till %s\n"
+msgstr "Lägg till utdata till %s\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
msgstr "Utkanal omdirigerad till %s\n"
-#: vmsjobs.c:599
+#: vmsjobs.c:593
#, c-format
msgid "Append %.*s and cleanup\n"
-msgstr ""
+msgstr "Lägg till %.*s och rensa upp\n"
-#: vmsjobs.c:606
+#: vmsjobs.c:600
#, c-format
msgid "Executing %s instead\n"
-msgstr "Utför %s i stället\n"
+msgstr "Utför %s i stället\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr "Fel vid avknoppning, %d\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
msgstr ""
"\n"
-"# VPATH-sökvägar\n"
+"# VPATH-sökvägar\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
-msgstr "# Inga \"vpath\"-sökvägar."
+#: vpath.c:600
+msgid "# No 'vpath' search paths."
+msgstr "# Inga â€vpathâ€-sökvägar."
-#: vpath.c:605
+#: vpath.c:602
#, c-format
msgid ""
"\n"
-"# %u `vpath' search paths.\n"
+"# %u 'vpath' search paths.\n"
msgstr ""
"\n"
-"# %u \"vpath\"-sökvägar.\n"
+"# %u â€vpathâ€-sökvägar.\n"
-#: vpath.c:608
+#: vpath.c:605
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
-"# Ingen allmän sökväg (enligt \"VPATH\"-variabeln)."
+"# Ingen allmän sökväg (enligt â€VPATHâ€-variabeln)."
-#: vpath.c:614
+#: vpath.c:611
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
-"# Allmän sökväg (enligt \"VPATH\"-variabeln):\n"
+"# Allmän sökväg (enligt â€VPATHâ€-variabeln):\n"
"# "
-
-#~ msgid "process_easy() failed failed to launch process (e=%ld)\n"
-#~ msgstr "process_easy() misslyckades med processtart (e=%ld)\n"
-
-#~ msgid ""
-#~ "%sThis is free software; see the source for copying conditions.\n"
-#~ "%sThere is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
-#~ "%sPARTICULAR PURPOSE.\n"
-#~ msgstr ""
-#~ "%sDetta är fri programvara; se källkoden för kopieringsvillkor.\n"
-#~ "%sINGA garantier lämnas, inte ens vid KÖP eller FÖR NÅGOT SPECIFIKT\n"
-#~ "%sÄNDAMÅL.\n"
-
-#~ msgid "extraneous `endef'"
-#~ msgstr "överflödigt \"endef\""
-
-#~ msgid "empty `override' directive"
-#~ msgstr "tomt \"override\"-direktiv"
-
-#~ msgid "invalid `override' directive"
-#~ msgstr "ogiltigt \"override\"-direktiv"
-
-#~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
-#~ msgstr "-varning, CTRL-Y lämnar efter sig underprocess(er).\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "# No files."
-#~ msgstr ""
-#~ "\n"
-#~ "# Inga filer."
-
-#~ msgid ""
-#~ "\n"
-#~ "# %u files in %u hash buckets.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "# %u filer i %u hashbehållare.\n"
-
-#~ msgid "# average %.3f files per bucket, max %u files in one bucket.\n"
-#~ msgstr ""
-#~ "# i genomsnitt %.3f filer per behållare, högst %u filer i samma "
-#~ "behållare.\n"
-
-#~ msgid "Syntax error, still inside '\"'\n"
-#~ msgstr "Syntaxfel, är fortfarande innanför '\"'\n"
-
-#~ msgid "Got a SIGCHLD; %u unreaped children.\n"
-#~ msgstr "Erhöll SIGCHLD; %u kvarvarande barnprocesser.\n"
-
-#~ msgid "DIRECTORY"
-#~ msgstr "KATALOG"
-
-#~ msgid "Change to DIRECTORY before doing anything"
-#~ msgstr "Byt till KATALOG först"
-
-#~ msgid "FLAGS"
-#~ msgstr "FLAGGOR"
-
-#~ msgid "Suspend process to allow a debugger to attach"
-#~ msgstr "Suspendera processen för att möjliggöra anslutning av felsökare"
-
-#~ msgid "Environment variables override makefiles"
-#~ msgstr "Miljövariabler åsidosätter makefiler"
-
-#~ msgid "FILE"
-#~ msgstr "FIL"
-
-#~ msgid "Read FILE as a makefile"
-#~ msgstr "Använd FIL som makefil"
-
-#~ msgid "Search DIRECTORY for included makefiles"
-#~ msgstr "Genomsök KATALOG efter inkluderade makefiler"
-
-#~ msgid "Don't start multiple jobs unless load is below N"
-#~ msgstr "Påbörja flera jobb endast om lasten understiger N"
-
-#~ msgid "Don't actually run any commands; just print them"
-#~ msgstr "Kör inte kommandona, skriv bara ut dem"
-
-#~ msgid "Consider FILE to be very old and don't remake it"
-#~ msgstr "Betrakta FIL som mycket gammal och återskapa den inte"
-
-#~ msgid "Don't echo commands"
-#~ msgstr "Återge inte kommandon"
-
-#~ msgid "Turns off -k"
-#~ msgstr "Stänger av -k"
-
-#~ msgid "Consider FILE to be infinitely new"
-#~ msgstr "Betrakta FIL som hur ny som helst"
-
-#~ msgid "Do not specify -j or --jobs if sh.exe is not available."
-#~ msgstr "Ange inte -j eller --jobs om sh.exe inte finns tillgänglig."
-
-#~ msgid "Resetting make for single job mode."
-#~ msgstr "Återställer make för enkeljobbsläge."
-
-#~ msgid "Entering"
-#~ msgstr "Går till"
-
-#~ msgid "Leaving"
-#~ msgstr "Lämnar"
-
-#~ msgid "no file name for `%sinclude'"
-#~ msgstr "inget filnamn till \"%sinclude\""
-
-#~ msgid "target `%s' leaves prerequisite pattern empty"
-#~ msgstr "målet \"%s\" har ett tomt beroendemönster"
-
-#~ msgid "# No variables."
-#~ msgstr "# Inga variabler."
-
-#~ msgid "# average of %.1f variables per bucket, max %u in one bucket.\n"
-#~ msgstr ""
-#~ "# i genomsnitt %1.f variabler per behållare, högst %u i samma behållare.\n"
-
-#~ msgid "# average of %d.%d variables per bucket, max %u in one bucket.\n"
-#~ msgstr ""
-#~ "# i genomsnitt %d.%d variabler per behållare, högst %u i samma "
-#~ "behållare.\n"
diff --git a/po/tr.gmo b/po/tr.gmo
index 002a950..1646492 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index 441e10c..6f7f32a 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -6,118 +6,124 @@ msgid ""
msgstr ""
"Project-Id-Version: make 3.81\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: 2006-04-23 08:45+0300\n"
"Last-Translator: Nilgün Belma Bugüner <nilgun@buguner.name.tr>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
+"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.9.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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 "desteklenmeyen özelliği kullanmaya çalışıyor: `%s'"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
msgstr "VMS'de işe yaramayan arşiv üyesine dokunup geçiyor"
-#: 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 "Dokunulup geçildi: Arşiv `%s' yok"
-#: 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 "Dokunulup geçildi: `%s' geçerli bir arşiv değil"
-#: 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 "Dokunulup geçildi: Üye `%s', `%s' içinde yok"
-#: 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 "Dokunulup geçildi: `%s' deki ar_member_touch'dan dönen kod hatalı"
-#: arscan.c:69
+#: arscan.c:67
#, fuzzy, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
msgstr "lbr$set_module modül bilgisini çıkarırken başarısız oldu, durum = %d"
-#: arscan.c:175
+#: arscan.c:173
#, fuzzy, c-format
msgid "lbr$ini_control() failed with status = %d"
msgstr "lbr$ini_control durum =%d ile başarısız oldu"
-#: arscan.c: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 "`%s' kaynakçası `%s' üyesine bakmak için açılamadı"
-#: 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 "Ãœye `%s'%s: %ld bayt %ld 'de (%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr "(isim kırpılmış olmalı)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Tarih %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " Kull-kim = %d, Grup-kim = %d, kip = 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 "*** Bırakıldı.\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] Arşiv üyesi `%s' sahte olabilir; silinmedi"
-#: 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 "*** Arşiv üyesi `%s' sahte olabilir; silinmedi"
-#: commands.c:638
-#, c-format
-msgid "*** [%s] Deleting file `%s'"
+#: commands.c:646
+#, fuzzy, c-format
+msgid "*** [%s] Deleting file '%s'"
msgstr "*** [%s] `%s' dosyası siliniyor"
-#: commands.c:640
-#, c-format
-msgid "*** Deleting file `%s'"
+#: commands.c:648
+#, fuzzy, c-format
+msgid "*** Deleting file '%s'"
msgstr "*** `%s' dosyası siliniyor"
-#: commands.c:676
+#: commands.c:684
#, fuzzy
msgid "# recipe to execute"
msgstr "# çalıştırma komutları"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr " (paket içinde):"
-#: commands.c:681
-#, c-format
-msgid " (from `%s', line %lu):\n"
+#: commands.c:689
+#, fuzzy, c-format
+msgid " (from '%s', line %lu):\n"
msgstr " (`%s'den, satır %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -125,224 +131,228 @@ msgstr ""
"\n"
"# Dizin\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
msgstr "# %s: durumlanamadı.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
msgstr "# %s (anahtar (key) %s, değişiklik tarihi (mtime) %d): açılamadı.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
msgstr "# %s (aygıt %d, i-düğüm [%d,%d,%d]): açılamadı.\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
msgstr "# %s (aygıt %ld, i-düğüm %ld): açılamadı.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr "# %s (anahtar (key) %s, deÄŸiÅŸiklik tarihi (mtime) %d):"
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
msgstr "# %s (aygıt %d, i-düğüm [%d,%d,%d]):"
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
msgstr "# %s (aygıt %ld, i-düğüm %ld):"
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "Hayır"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " dosyaları,"
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "hayır"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
msgstr "olanaksızlıklar"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr " çok uzak."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
msgstr " %lu dizinde olanaksızlıklar.\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 "Çevrimsel değişken `%s' tekrar kendine bağıntılı (sonuçta)"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
msgstr "sonlandırılmamış değişken bağıntısı"
-#: 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 "`%s' dosyası için komutlar %s:%lu de belirtildi,"
-#: 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 "`%s' dosyası için komutlar örtük kural aramasında bulundu,"
-#: 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 "fakat `%s' şimdi `%s' dosyası ile aynı dosya olarak düşünülmeli."
-#: 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 "`%s' dosyası için komutlar `%s' lehine yoksayılmış olacak."
-#: file.c:298
-#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
+#: file.c:300
+#, fuzzy, c-format
+msgid "can't rename single-colon '%s' to double-colon '%s'"
msgstr "tek-sütun `%s', çift-sütun `%s' olarak yeniden adlandırılamaz"
-#: file.c:303
-#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
+#: file.c:305
+#, fuzzy, c-format
+msgid "can't rename double-colon '%s' to single-colon '%s'"
msgstr "çift-sütun `%s', tek-sütun `%s' olarak yeniden adlandırılamaz"
-#: file.c:392
-#, c-format
-msgid "*** Deleting intermediate file `%s'"
+#: file.c:396
+#, fuzzy, c-format
+msgid "*** Deleting intermediate file '%s'"
msgstr "*** Aracı dosya `%s' siliniyor"
-#: file.c:396
+#: file.c:400
msgid "Removing intermediate files...\n"
msgstr "Aracı dosyalar siliniyor...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
msgstr "%s: Tarih damgası kapsamdışı; yerine %s kullanılıyor"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "Åžu an"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
msgstr "# Bir hedef deÄŸil:"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
msgstr "# Kıymetli dosya (.PRECIOUS önceden gerekliliği)."
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
msgstr "# Sahte hedef (.PHONY önceden gerekliliği)."
-#: file.c:933
+#: file.c:958
#, fuzzy
msgid "# Command line target."
msgstr "# Komut-satırı hedefi."
-#: file.c:935
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
msgstr "# Bir öntanımlı,MAKEFILES veya -include/sinclude makefile."
-#: file.c:937
+#: file.c:962
+#, fuzzy
+msgid "# Builtin rule"
+msgstr ""
+"\n"
+"# Örtük kural yok."
+
+#: file.c:964
msgid "# Implicit rule search has been done."
msgstr "# Örtük kural araştırması yapılmıştı."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
msgstr "# Örtük kural araştırması yapılmamıştı."
-#: file.c:940
-#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
+#: file.c:967
+#, fuzzy, c-format
+msgid "# Implicit/static pattern stem: '%s'\n"
msgstr "# Örtük/değişmeyen kalıp kökü: `%s'\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
msgstr ""
"# Orta seviyede önceden gerekli bir dosya (öncelikle gerekli dosyalara "
"aracılık eden dosya)"
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
msgstr "# OluÅŸtursa da:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
msgstr "# Değişiklik zamanı hiç kontrol edilmedi."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# Dosya yok."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr "# Dosya çok eski."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr "# Son deÄŸiÅŸiklik tarihi %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# Dosya güncelleştirilmişti."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# Dosya güncelleştirilmemişti."
-#: file.c:968
+#: file.c:995
#, fuzzy
msgid "# Recipe currently running (THIS IS A BUG)."
msgstr "# Komutlar şu an işlemlerini sürdürüyor (BU BİR YAZILIM HATASI)."
-#: file.c:971
+#: file.c:998
#, fuzzy
msgid "# Dependencies recipe running (THIS IS A BUG)."
msgstr ""
"# Bağımlılıkların komutları işlemlerini sürdürüyor (BU BİR YAZILIM HATASI)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
msgstr "# Tamamen güncellendi."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
msgstr "# Güncellenmiş olması gerekir (-q verildi)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr "# Güncellenmiş olamadı."
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# `update_status' üyesinde geçersiz değer!"
-
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
+#: file.c:1019
+#, fuzzy
+msgid "# Invalid value in 'command_state' member!"
msgstr "# `command_state' üyesinde geçersiz değer!"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -350,7 +360,7 @@ msgstr ""
"\n"
"# Dosyalar"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
@@ -360,117 +370,175 @@ msgstr ""
"# dosyaların hash tablosu durumları:\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 "`word' işlevinde sayısal olmayan ilk argüman"
-#: 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' işlevinin ilk argümanı sıfırdan büyük olmalı"
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
+#: function.c:767
+#, fuzzy
+msgid "non-numeric first argument to 'wordlist' function"
msgstr "`wordlist' işlevinde sayısal olmayan ilk argüman"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
+#: function.c:769
+#, fuzzy
+msgid "non-numeric second argument to 'wordlist' function"
msgstr "`wordlist' işlevinde sayısal olmayan ikinci argüman"
-#: 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) başarısız (e=%ld)\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) başarısız (e=%ld)\n"
-#: function.c:1474
+#: function.c:1490
#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
msgstr "CreatePipe() başarısız (e=%ld)\n"
-#: function.c:1479
+#: function.c:1498
#, fuzzy
msgid "windows32_openpipe(): process_init_fd() failed\n"
msgstr "windows32_openpipe (): process_init_fd() başarısız\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr "Geçici komut-listesi (batch) dosyası %s temizleniyor\n"
-#: function.c:2150
+#: function.c:2151
+#, fuzzy, c-format
+msgid "open: %s: %s"
+msgstr "%s: %s"
+
+#: function.c:2158
+#, fuzzy, c-format
+msgid "write: %s: %s"
+msgstr "yazma hatası: %s"
+
+#: function.c:2164
#, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
+msgid "Invalid file operation: %s"
+msgstr ""
+
+#: function.c:2279
+#, fuzzy, c-format
+msgid "insufficient number of arguments (%d) to function '%s'"
msgstr "argüman sayısı (%d) `%s' işlevinde yetersiz"
-#: function.c:2162
-#, c-format
-msgid "unimplemented on this platform: function `%s'"
+#: function.c:2291
+#, fuzzy, c-format
+msgid "unimplemented on this platform: function '%s'"
msgstr "bu platformda gerçekleştirilmemiş: işlev `%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 "`%s' işlemine çağrı sonlandırılmamış: `%c' kayıp"
-#: 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: `%s' seçeneği belirsiz\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 "argüman sayısı (%d) `%s' işlevinde yetersiz"
+
+#: function.c:2555
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "argüman sayısı (%d) `%s' işlevinde yetersiz"
+
+#: getopt.c:659
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: `%s' seçeneği belirsiz\n"
+
+#: getopt.c:683
+#, fuzzy, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr "%s: `--%s' seçeneği argümansız kullanılır\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: seçenek `%c%s' argümansız kullanılır\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: `%s' seçeneği bir argümanla kullanılır\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: `--%s' seçeneği bilinmiyor\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: `%c%s' seçeneği bilinmiyor\n"
-#: getopt.c:766
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s: kuraldışı seçenek -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s: geçersiz seçenek -- %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: seçenek bir argümanla kullanılır -- %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: `-W %s' seçeneği belirsiz\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: `-W %s' seçeneği argümansız kullanılır\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"
@@ -491,131 +559,156 @@ msgstr "Rehash=%d, "
msgid "Collisions=%ld/%ld=%.0f%%"
msgstr "Çakışmalar=%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 "`%s' için bir örtük kural arıyor.\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 "`%s' için arşiv-üyesi örtük kural arıyor.\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
msgstr "Örtük kural çevrimi görmezden geliniyor.\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 "`%.*s' köküyle kalıp kuralı deneniyor.\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 "Kural önceden gerekliliği `%s' olanaksız olduğundan reddediliyor.\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 "Örtük önceden gereklilik `%s' olanaksız olduğundan reddediliyor.\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 "Kural önceden gerekliliği `%s' deneniyor.\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 "Örtük önceden gereklilik `%s' deneniyor.\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 "Önceden gereklilik `%s' VPATH `%s' olarak bulundu.\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 "Aracı dosya `%s' ile bir kural arıyor.\n"
-#: job.c:335
+#: job.c:361
msgid "Cannot create a temporary file\n"
msgstr "Bir geçici dosya oluşturulamıyor\n"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] Hata 0x%x (yoksayıldı)"
-
-#: job.c:450
-#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] Hata 0x%x"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (bellek kopyası - core dosyası - diske yazıldı)"
-#: job.c:454
-#, c-format
-msgid "[%s] Error %d (ignored)"
+#: job.c:487
+#, fuzzy
+msgid " (ignored)"
msgstr "[%s] Hata %d (yoksayıldı)"
-#: job.c:455
+#: job.c:491 job.c:1994
+#, fuzzy
+msgid "<builtin>"
+msgstr " (paket içinde):"
+
+#: 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] Hata 0x%x"
+
+#: job.c:513
+#, fuzzy, c-format
+msgid "%s[%s] Error %d%s"
msgstr "*** [%s] Hata %d"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (bellek kopyası - core dosyası - diske yazıldı)"
+#: 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 "*** Bitmemiş işler için bekliyor...."
-#: job.c:579
+#: job.c:639
#, fuzzy, c-format
msgid "Live child %p (%s) PID %s %s\n"
msgstr "Ast dosya işini sürdürüyor: 0x%08lx (%s) PID %ld %s\n"
-#: job.c: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 " (karşıdan)"
-#: job.c:758
+#: job.c:829
#, fuzzy, c-format
msgid "Reaping losing child %p PID %s %s\n"
msgstr "Kaybeden ast dosya sağlanıyor: 0x%08lx PID %ld %s\n"
-#: job.c:759
+#: job.c:830
#, fuzzy, c-format
msgid "Reaping winning child %p PID %s %s\n"
msgstr "Kazanan ast dosya sağlanıyor: 0x%08lx PID %ld %s\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
msgstr "Geçici komut-listesi dosyası %s temizleniyor\n"
-#: job.c:861
+#: job.c:843
+#, fuzzy, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "Geçici komut-listesi dosyası %s temizleniyor\n"
+
+#: job.c:949
#, fuzzy, c-format
msgid "Removing child %p PID %s%s from chain.\n"
msgstr "Ast 0x%08lx PID %ld%s zincirden kaldırılıyor\n"
-#: job.c:920
-msgid "write jobserver"
-msgstr "iş-sunucusu yazıyor"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr ""
-#: job.c:922
+#: job.c:1011 job.c:1025
#, fuzzy, c-format
msgid "Released token for child %p (%s).\n"
msgstr "Ast 0x%08lx (%s) için simge (token) kullanıma sunuldu.\n"
-#: job.c:1453 job.c:2094
+#: job.c:1023
+msgid "write jobserver"
+msgstr "iş-sunucusu yazıyor"
+
+#: job.c:1612 job.c:2332
#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
msgstr "Süreci başlatacak process_easy() başarısız oldu (e=%ld)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
@@ -624,137 +717,194 @@ msgstr ""
"\n"
"Sayılan %d argüman ile başarısız oldu\n"
-#: job.c:1525
+#: job.c:1685
#, fuzzy, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
msgstr "Ast 0x%08lx (%s) PID %ld%s zincire konuluyor.\n"
-#: job.c:1778
+#: job.c:1953
+#, c-format
+msgid "semaphore or child process wait: (Error %ld: %s)"
+msgstr ""
+
+#: job.c:1967
#, fuzzy, c-format
msgid "Obtained token for child %p (%s).\n"
msgstr "Ast 0x%08lx (%s) için simge (token) sağlandı.\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
msgstr "görev listesi okunuyor"
-#: 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 "Dokunulup geçildi: Arşiv `%s' yok"
-#: job.c:1802
+#: job.c:2005
#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "Hedef `%s' nin yeniden derlenmesine gerek yok"
+msgid "%s: update target '%s' due to: %s"
+msgstr ""
+"%sHedef `%s' i derlemek için hiçbir kural yok, `%s' tarafından gereksinim "
+"duyuluyor%s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
msgstr "işletim sisteminde yük sınırlarına ulaşılamadı "
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
msgstr "ulaşılamayan yük sınırı: "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
msgstr "başka dosya tutucu yok: standart girdi kopyalanamadı\n"
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
msgstr "başka dosya tutucu yok: standart çıktı kopyalanamadı\n"
-#: job.c:2015
+#: job.c:2223
+#, fuzzy
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr "başka dosya tutucu yok: standart girdi kopyalanamadı\n"
+
+#: job.c:2238
msgid "Could not restore stdin\n"
msgstr "Standart girdi eski haline getirilemedi\n"
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
msgstr "Standart çıktı eski haline getirilemedi\n"
-#: job.c:2127
+#: job.c:2254
+#, fuzzy
+msgid "Could not restore stderr\n"
+msgstr "Standart girdi eski haline getirilemedi\n"
+
+#: job.c:2365
#, fuzzy, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
msgstr "make %ld pid'li ast süreci kaldırdı ama hala pid %ld için bekliyor\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
msgstr "%s: Komut bulunamadı"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr "%s: Kabuk uygulaması bulunamadı"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
msgstr "spawnvpe: ortam alanı tükenmiş olabilir"
-#: 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 deÄŸiÅŸti (`%s' idi, ÅŸimdi `%s')\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr "%s geçici komut-liste dosyasını oluşturuyor\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 (satır %d) kabuk bağlamı hatalı (!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 "Bu platformda paralel iÅŸler (-j) desteklenmiyor."
+
+#: main.c:312
msgid "Options:\n"
msgstr "Seçenekler:\n"
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
msgstr " -b, -m Uyumluluk için yoksayıldı.\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr ""
" -B, --always-make Tüm hedefler koşulsuz olarak oluşturulur.\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
msgstr " -C DİZİN, --directory=DIZIN Birşey yapmadan önce DİZİNe geçilir.\n"
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
msgstr " -b, -m Bir sürü hata ayıklama bilgisi basar.\n"
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
" --debug[=SEÇENEKLER] Çeşitli türde hata ayıklama bilgileri basar.\n"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
msgstr ""
" -e, --environment-overrides Ortam değişkenleri makefile'ları değiştirir.\n"
-#: main.c: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"
@@ -762,16 +912,16 @@ msgstr ""
" -f DOSYA, --file=DOSYA, --makefile=DOSYA\n"
" DOSYAyı bir makefile olarak okur.\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
msgstr " -h, --help Bu iletiyi basar ve çıkar.\n"
-#: main.c:325
+#: main.c:334
#, fuzzy
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
msgstr " -i, --ignore-errors Komutların ürettiği hataları yoksayar.\n"
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
@@ -779,7 +929,7 @@ msgstr ""
" -I DÄ°ZÄ°N, --include-dir=DÄ°ZÄ°N\n"
" Eklenecek makefile'ları DİZİNde arar.\n"
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
@@ -787,13 +937,13 @@ msgstr ""
" -j [N], --jobs[=N] Bir defada N işe izin verir; argumansız iş\n"
" sayısı sınırsızdır.\n"
-#: main.c:332
+#: main.c:341
msgid ""
" -k, --keep-going Keep going when some targets can't be made.\n"
msgstr ""
" -k, --keep-going Bazı hedefler yapılmadığında devam eder.\n"
-#: main.c:334
+#: main.c:343
msgid ""
" -l [N], --load-average[=N], --max-load[=N]\n"
" Don't start multiple jobs unless load is below "
@@ -803,7 +953,7 @@ msgstr ""
" Yük N'den az olmadıkça çoklu işler "
"başlatılmaz.\n"
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
@@ -811,7 +961,7 @@ msgstr ""
" -L, --check-symlink-times sembolik bağlarla hedef arasında en son mtime\n"
" kullanılır\n"
-#: main.c:339
+#: main.c:348
#, fuzzy
msgid ""
" -n, --just-print, --dry-run, --recon\n"
@@ -821,7 +971,7 @@ msgstr ""
" -n, --just-print, --dry-run, --recon\n"
" Gerçekte komutlar çalıştırılmaz, gösterilir.\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 "
@@ -831,11 +981,17 @@ msgstr ""
" DOSYAnın çok eski olduğu varsayılır ve\n"
" yeniden işlem yapılmaz.\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 make'in içsel veritabanını basar.\n"
-#: main.c:347
+#: main.c:359
#, fuzzy
msgid ""
" -q, --question Run no recipe; exit status says if up to "
@@ -843,44 +999,49 @@ msgid ""
msgstr ""
" -q, --question Komut çalıştırmaz; güncelse çıkışta belirtir\n"
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr ""
" -r, --no-builtin-rules Oluşumiçi örtük kuralları etkisizleştirir.\n"
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr ""
" -R, --no-builtin-variables Oluşumiçi değişken ayarlarını etkisizleştirir\n"
-#: main.c:353
+#: main.c:365
#, fuzzy
msgid " -s, --silent, --quiet Don't echo recipes.\n"
msgstr " -s, --silent, --quiet Komutlar işlenirken gösterilmez.\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
msgstr ""
" -S, --no-keep-going, --stop Bazı hedefler yapılmadığında devam etmez.\n"
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
" -t, --touch Yeniden derlemek yerine hedeflere bakıp "
"geçer.\n"
-#: main.c:360
+#: main.c:372
+#, fuzzy
+msgid " --trace Print tracing information.\n"
+msgstr " -b, -m Bir sürü hata ayıklama bilgisi basar.\n"
+
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr " -v, --version make sürüm numarasını basar ve çıkar.\n"
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
msgstr " -w, --print-directory Kullanılan dizini basar.\n"
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
@@ -888,7 +1049,7 @@ msgstr ""
" --no-print-directory Dolaylı olarak açılmış olsa bile -w 'yi "
"kapatır\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"
@@ -896,7 +1057,7 @@ msgstr ""
" -W DOSYA, --what-if=DOSYA, --new-file=DOSYA, --assume-new=DOSYA\n"
" DOSYA sonsuz yeni varsayılır.\n"
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
@@ -904,21 +1065,31 @@ msgstr ""
" --warn-undefined-variables Atanmamış bir değişkene bağıntı yapıldığında\n"
" uyarır.\n"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
msgstr "dosyaismi olarak boş dizge geçersiz"
-#: main.c:650
-#, c-format
-msgid "unknown debug level specification `%s'"
+#: main.c:734
+#, fuzzy, c-format
+msgid "unknown debug level specification '%s'"
msgstr "Hata ayıklama düzeyi özelliği `%s' bilinmiyor"
-#: 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 "içsel hata: çok sayıda --jobserver-fds seçeneği"
+
+#: main.c:848
#, fuzzy, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
msgstr "%s: Kesinti/Olağandışı durum saptandı (kod = 0x%lx, adres = 0x%lx)\n"
-#: main.c:697
+#: main.c:855
#, fuzzy, c-format
msgid ""
"\n"
@@ -933,161 +1104,183 @@ msgstr ""
"OlağandışılıkBayrakları = %lx\n"
"OlağandışılıkAdresi = %lx\n"
-#: main.c:705
+#: main.c:863
#, fuzzy, c-format
msgid "Access violation: write operation at address 0x%p\n"
msgstr "EriÅŸim uyumsuzluÄŸu: %lx adresinde yazma iÅŸlemi\n"
-#: main.c:706
+#: main.c:864
#, fuzzy, c-format
msgid "Access violation: read operation at address 0x%p\n"
msgstr "EriÅŸim uyumsuzluÄŸu: %lx adresinde okuma iÅŸlemi\n"
-#: main.c: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 default_shell = %s olarak belirliyor\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 yol aramasını default_shell = %s olarak belirliyor\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr "%s 30 saniyeliğine askıya alınıyor..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr "sleep(30) bitti. Devam ediliyor.\n"
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr "Makefile standart girdiden iki kez belirtildi."
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr "fopen (geçici dosya)"
-
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr "fwrite (geçici dosya)"
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "Bu platformda paralel iÅŸler (-j) desteklenmiyor."
-
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
-msgstr "Tek iş kipi (-j1) için make'i başlatma konumuna alıyor"
-
-#: main.c:1719
+#: main.c:1534
msgid "internal error: multiple --jobserver-fds options"
msgstr "içsel hata: çok sayıda --jobserver-fds seçeneği"
-#: main.c:1727
+#: main.c:1544
+#, c-format
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
+msgstr ""
+
+#: main.c:1547
#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
+msgid "Jobserver client (semaphore %s)\n"
+msgstr ""
+
+#: main.c:1551
+#, fuzzy, c-format
+msgid "internal error: invalid --jobserver-fds string '%s'"
msgstr "içsel hata: --jobserver-fds dizgesi `%s' geçersiz"
-#: 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 "uyarı: alt derlemede -jN zorlandı: iş sunucusu kipi kapatılıyor."
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
msgstr "çift iş sunucusu"
-#: 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 ""
"uyarı: iş sunucusu kullanımdışı: -j1 kullanılıyor. Üst make kuralına `+' "
"ekle."
-#: main.c:1777
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "Makefile standart girdiden iki kez belirtildi."
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (geçici dosya)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (geçici dosya)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr "Bu platformda paralel iÅŸler (-j) desteklenmiyor."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "Tek iş kipi (-j1) için make'i başlatma konumuna alıyor"
+
+#: 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 "işleri yaratıyor"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
msgstr "işleri hazırlıyor"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
msgstr "Sembolik baÄŸlar desteklenmiyor: -L iptal ediliyor"
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr "makefile'ları güncelliyor...\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 "`%s' make dosyası çevrime girdi; yeniden derlenemez.\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 "`%s' make dosyası yeniden derlenemiyor."
-#: 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 "İçerilen make dosyası `%s' bulunamadı."
-#: main.c:2018
-#, c-format
-msgid "Makefile `%s' was not found"
+#: main.c:2275
+#, fuzzy, c-format
+msgid "Makefile '%s' was not found"
msgstr "`%s' make dosyası bulunamadı"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
msgstr "Geriye, özgün dizine geçilemiyor."
-#: main.c:2102
+#: main.c:2354
#, c-format
msgid "Re-executing[%u]:"
msgstr "Yeniden çalıştırılıyor[%u]:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr "unlink (geçici dosya): "
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
msgstr ".DEFAULT_GOAL bir hedeften fazlasını içeriyor"
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
msgstr "Hedefler belirtilmediğinden make dosyası yok"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "Hedef yok"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
msgstr "Amaçlanan hedefler güncelleniyor...\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr "uyarı: Clock skew saptandı. Derleme tamamlanamayabilir."
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
msgstr "Kullanım: %s [seçenekler] [hedef] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
@@ -1096,7 +1289,7 @@ msgstr ""
"\n"
"Bu program %s için kurgulanmış\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
@@ -1105,38 +1298,38 @@ msgstr ""
"\n"
"Bu program %s için kurgulanmış (%s)\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
msgstr ""
"Yazılım hatalarını <bug-make@gnu.org> adresine,\n"
"çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\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 "`-%c' seçeneği bir boş olmayan dizge argüman gerektirir"
-#: 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 "`-%c' seçeneği bir pozitif tümleyici bağımsız değişkenle kullanılır"
-#: main.c:3054
+#: main.c:3253
#, fuzzy, c-format
msgid "%sBuilt for %s\n"
msgstr ""
"\n"
"%sBu program %s için derlenmiş\n"
-#: main.c:3056
+#: main.c:3255
#, fuzzy, c-format
msgid "%sBuilt for %s (%s)\n"
msgstr ""
"\n"
"%sBu program %s için derlenmiş (%s)\n"
-#: main.c:3066
+#: main.c:3266
#, c-format
msgid ""
"%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -1145,7 +1338,7 @@ msgid ""
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
@@ -1154,7 +1347,7 @@ msgstr ""
"\n"
"# Make veri tabanı, %s üzerine basıldı"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
@@ -1163,106 +1356,106 @@ msgstr ""
"\n"
"# %s üzerindeki Make veri tabanı tamamlandı\n"
-#: main.c:3237
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "Bilinmeyen hata %d"
+
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "sanal bellek tükendi"
+
+#: misc.c:522
+#, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s: kullanıcı %lu (gerçekte %lu), grup %lu (gerçekte %lu)\n"
+
+#: misc.c:543
+msgid "Initialized access"
+msgstr "Ä°lklendirilmiÅŸ eriÅŸim"
+
+#: misc.c:622
+msgid "User access"
+msgstr "Kullanıcı erişimi"
+
+#: misc.c:670
+msgid "Make access"
+msgstr "Make eriÅŸimi"
+
+#: misc.c:704
+msgid "Child access"
+msgstr "Asta eriÅŸim"
+
+#: output.c:128
#, c-format
msgid "%s: Entering an unknown directory\n"
msgstr "%s: bilinmeyen bir dizine giriliyor\n"
-#: main.c:3239
+#: output.c:130
#, c-format
msgid "%s: Leaving an unknown directory\n"
msgstr "%s: bilinmeyen dizinden çıkılıyor\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: `%s' dizine giriliyor\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: `%s' dizininden çıkılıyor\n"
-#: main.c:3250
+#: output.c:139
#, c-format
msgid "%s[%u]: Entering an unknown directory\n"
msgstr "%s[%u]: Bilinmeyen bir dizine giriliyor\n"
-#: main.c:3253
+#: output.c:141
#, c-format
msgid "%s[%u]: Leaving an unknown directory\n"
msgstr "%s[%u]: Bilinmeyen dizinden çıkılıyor\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]:`%s' dizinine giriliyor\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]: `%s' dizininden çıkılıyor\n"
-#: misc.c:316
+#: output.c:515
+#, c-format
+msgid "write error: %s"
+msgstr "yazma hatası: %s"
+
+#: output.c:517
+msgid "write error"
+msgstr "yazma hatası"
+
+#: output.c:740
msgid ". Stop.\n"
msgstr ". Durdu.\n"
-#: misc.c:337
-#, c-format
-msgid "Unknown error %d"
-msgstr "Bilinmeyen hata %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 "sanal bellek tükendi"
-
-#: misc.c:708
-#, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s: kullanıcı %lu (gerçekte %lu), grup %lu (gerçekte %lu)\n"
-
-#: misc.c:729
-msgid "Initialized access"
-msgstr "Ä°lklendirilmiÅŸ eriÅŸim"
-
-#: misc.c:808
-msgid "User access"
-msgstr "Kullanıcı erişimi"
-
-#: misc.c:856
-msgid "Make access"
-msgstr "Make eriÅŸimi"
-
-#: misc.c:890
-msgid "Child access"
-msgstr "Asta eriÅŸim"
-
-#: misc.c:954
-#, c-format
-msgid "write error: %s"
-msgstr "yazma hatası: %s"
-
-#: misc.c:956
-msgid "write error"
-msgstr "yazma hatası"
-
-#: read.c:179
+#: read.c:180
msgid "Reading makefiles...\n"
msgstr "Makefile'lar okunuyor...\n"
#: read.c:333
-#, c-format
-msgid "Reading makefile `%s'"
+#, fuzzy, c-format
+msgid "Reading makefile '%s'"
msgstr "`%s' make dosyası okunuyor"
#: read.c:335
@@ -1285,330 +1478,348 @@ msgstr " (umurunda deÄŸil)"
msgid " (no ~ expansion)"
msgstr "( ~ uzantısı yok)"
-#: 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 "şartlı ifade de yazılış hatası"
-#: 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 "komutlar ilk hedeften önce başlıyor"
-#: read.c:940
+#: read.c:1036
#, fuzzy
msgid "missing rule before recipe"
msgstr "komutlardan önceki kural kayıp"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
msgstr "kayıp ayraç%s"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
msgstr "(8 boşluğu TAB'mı zannettiniz?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
msgstr "hedef kalıp kayıp"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
msgstr "çok sayıda hedef kalıp"
-#: read.c:1169
-#, c-format
-msgid "target pattern contains no `%%'"
+#: read.c:1269
+#, fuzzy, c-format
+msgid "target pattern contains no '%%'"
msgstr "hedef kalıp `%%' içermiyor"
-#: read.c:1293
-msgid "missing `endif'"
+#: read.c:1391
+#, fuzzy
+msgid "missing 'endif'"
msgstr "`endif' kayıp"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "boÅŸ deÄŸiÅŸken ismi"
-#: read.c:1367
+#: read.c:1465
#, fuzzy
-msgid "extraneous text after `define' directive"
+msgid "extraneous text after 'define' directive"
msgstr "`endef' yönergesinden sonraki metin yersiz"
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
+#: read.c:1490
+#, fuzzy
+msgid "missing 'endef', unterminated 'define'"
msgstr "`endef' kayıp, `define' sonlandırılmamış"
-#: read.c:1420
+#: read.c:1518
#, fuzzy
-msgid "extraneous text after `endef' directive"
+msgid "extraneous text after 'endef' directive"
msgstr "`endef' yönergesinden sonraki metin yersiz"
-#: read.c:1490
-#, c-format
-msgid "Extraneous text after `%s' directive"
+#: read.c:1589
+#, fuzzy, c-format
+msgid "extraneous text after '%s' directive"
msgstr "`%s' yönergesinden sonraki metin yersiz"
-#: read.c:1499 read.c:1513
-#, c-format
-msgid "extraneous `%s'"
+#: read.c:1598 read.c:1612
+#, fuzzy, c-format
+msgid "extraneous '%s'"
msgstr "`%s' yersiz"
-#: read.c:1518
-msgid "only one `else' per conditional"
+#: read.c:1617
+#, fuzzy
+msgid "only one 'else' per conditional"
msgstr "her şartlı ifade de sadece bir `else'"
-#: read.c:1797
+#: read.c:1892
msgid "Malformed target-specific variable definition"
msgstr "Hedefe özgü değişken tanımı bozuk"
-#: read.c:1855
+#: read.c:1951
#, fuzzy
msgid "prerequisites cannot be defined in recipes"
msgstr "öngereksinimler komut betiklerinde tanımlanamaz"
-#: read.c:1908
+#: read.c:2009
msgid "mixed implicit and static pattern rules"
msgstr "örtük ve durağan kalıp kuralları karışmış"
-#: read.c:1931 read.c:2112
+#: read.c:2032 read.c:2220
msgid "mixed implicit and normal rules"
msgstr "örtük ve normal kurallar karışmış"
-#: 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 "hedef `%s' hedef kalıpla eşleşmiyor"
-#: 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 "hedef dosya `%s'hem : hem de :: girdilerine sahip"
-#: 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 "hedef `%s' aynı kuralda birden fazla belirtilmiş."
-#: read.c:2006
+#: read.c:2114
#, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
+msgid "warning: overriding recipe for target '%s'"
msgstr "uyarı: hedef `%s' için komutlar geçersiz kılınıyor"
-#: 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 "uyarı: hedef `%s' için eski komutlar yoksayılıyor"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
msgstr "uyarı: NUL karakteri görüldü; satırın geri kalanı yoksayılıyor"
-#: 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 "`%s' için hiçbir şey yapılmadı."
-#: 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' güncel"
-#: remake.c:306
-#, c-format
-msgid "Pruning file `%s'.\n"
+#: remake.c:305
+#, fuzzy, c-format
+msgid "Pruning file '%s'.\n"
msgstr "Budanmış dosya `%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 "%sHedef `%s' i derlemek için hiçbir kural yok%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 ""
"%sHedef `%s' i derlemek için hiçbir kural yok, `%s' tarafından gereksinim "
"duyuluyor%s"
#: remake.c:413
-#, c-format
-msgid "Considering target file `%s'.\n"
+#, fuzzy, c-format
+msgid "Considering target file '%s'.\n"
msgstr "hedef dosya `%s' hesaba katılıyor.\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 "En son `%s'dosyasının güncellenmesi denendi ve başarısız oldu.\n"
#: remake.c:432
-#, c-format
-msgid "File `%s' was considered already.\n"
+#, fuzzy, c-format
+msgid "File '%s' was considered already.\n"
msgstr "`%s' dosyası zaten hesaba katıldı.\n"
#: remake.c:442
-#, c-format
-msgid "Still updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Still updating file '%s'.\n"
msgstr "`%s' dosyası hala güncelleniyor.\n"
#: remake.c:445
-#, c-format
-msgid "Finished updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Finished updating file '%s'.\n"
msgstr "`%s' dosyasının güncellenmesi tamamlandı.\n"
#: remake.c:474
-#, c-format
-msgid "File `%s' does not exist.\n"
+#, fuzzy, c-format
+msgid "File '%s' does not exist.\n"
msgstr "`%s' dosyası yok.\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 ""
"*** Uyarı: .LOW_RESOLUTION_TIME dosyası `%s' yüksek çözünürlüklü bir zaman "
"damgası içeriyor"
-#: 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 "`%s' için bir örtük kural bulundu.\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 "`%s' için bir örtük kural yok.\n"
#: remake.c:502
#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
+msgid "Using default recipe for '%s'.\n"
msgstr "`%s' için öntanımlı komutlar kullanılıyor.\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
msgstr "Çevrimsel %s <- %s bağımlılığı iptal edildi."
-#: 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 "`%s' hedef dosyasının önceden gereklilikleri tamamlandı.\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 "`%s' için önceden gereklilikler derlenmeye devam ediyor.\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 "`%s' hedef dosyasında umut kesiliyor.\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 "Hedef `%s' hatalardan dolayı yeniden derlenemez."
-#: remake.c:727
-#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
+#: remake.c:731
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
msgstr "Önceden gerekli `%s' hedef `%s' için şart.\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 "Hedef `%s' in önceden gereklisi `%s' mevcut değil.\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 "Önceden gerekli `%s' hedef `%s' den daha yeni.\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 "Önceden gerekli `%s' hedef `%s' den daha eski.\n"
-#: remake.c:758
-#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
+#: remake.c:762
+#, fuzzy, c-format
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
msgstr "Hedef `%s' çift-sütunlu ve önceden gereklilikler gerektirmiyor.\n"
-#: remake.c:765
+#: remake.c:769
#, fuzzy, 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 "`%s' için komutlar ve önceden gerekliliklerde bir değişiklik yok.\n"
-#: 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 "Daima derle seçeneğinden dolayı `%s' derleniyor.\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 "Hedef `%s' nin yeniden derlenmesine gerek yok"
-#: remake.c:780
-#, c-format
-msgid "; using VPATH name `%s'"
+#: remake.c:784
+#, fuzzy, c-format
+msgid "; using VPATH name '%s'"
msgstr "; VPATH ismi `%s' kullanılıyor"
-#: remake.c:800
-#, c-format
-msgid "Must remake target `%s'.\n"
+#: remake.c:804
+#, fuzzy, c-format
+msgid "Must remake target '%s'.\n"
msgstr "Hedef `%s' yeniden derlenmeli.\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 " VPATH ismi `%s' yoksayılıyor.\n"
-#: remake.c:815
+#: remake.c:819
#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
+msgid "Recipe of '%s' is being run.\n"
msgstr "`%s' nin komutları çalışmaya devam ediyor.\n"
-#: 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 "Hedef dosya `%s' yeniden derlenirken hata oluÅŸtu.\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 "Hedef dosya `%s' yeniden derlenmesi başarıyla tamamlandı.\n"
-#: remake.c:828
-#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
+#: remake.c:832
+#, fuzzy, c-format
+msgid "Target file '%s' needs to be remade under -q.\n"
msgstr "`%s' hedef dosyasının -q ile yeniden derlenmesi gerekir.\n"
-#: 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 "`%s' için öntanımlı komutlar kullanılıyor.\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 "Uyarı: `%s' dosyası gelecekteki bir değişiklik tarihini içeriyor"
-#: 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 "Uyarı: `%s' dosyasının değişiklik tarihi %.2g s kadar gelecekte"
-#: 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 elemanı `%s' bir kalıp değil"
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
msgstr "Özelleştirilmiş olanlar dışarı aktarılmayacak: %s\n"
-#: rule.c:499
+#: rule.c:496
msgid ""
"\n"
"# Implicit Rules"
@@ -1616,7 +1827,7 @@ msgstr ""
"\n"
"# Örtük Kurallar"
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
@@ -1624,7 +1835,7 @@ msgstr ""
"\n"
"# Örtük kural yok."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -1633,244 +1844,259 @@ msgstr ""
"\n"
"# %u örtük kural, %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr " terminal."
-#: rule.c:534
+#: rule.c:531
#, fuzzy, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
msgstr "YAZILIM HATASI: num_pattern_rules yanlış! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "bilinmeyen sinyal"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
msgstr "Tıkanma"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "Kesme"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
msgstr "Çık"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
msgstr "Yönergeler uygun değil"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
msgstr "İzleme/kesmenoktası yakalayıcı"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "Ä°ptal edildi"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
msgstr "IOT tuzağı"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
msgstr "EMT tuzağı"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
msgstr "Gerçek sayı olağandışı durumu"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "Süreç durduruldu"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr "Veri yolu hatası"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "Parçalama arızası"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "Sistem çağrısı hatalı"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr "Veri alınamıyor"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "Alarm saati"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
msgstr "Sonlandırıldı"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr "Kullanıcı tanımlı sinyal 1"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr "Kullanıcı tanımlı sinyal 2"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
msgstr "Ast bıraktı"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
msgstr "Güç kesilmesi"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "Durduruldu"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
msgstr "Durduruldu (konsol girdisi)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
msgstr "Durduruldu (konsol çıktısı)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "Durduruldu (sinyal)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
msgstr "CPU zaman sınırı aşıldı"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
msgstr "Dosya uzunluğu sınırı aşıldı"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
msgstr "Sanal süreölçer kullanım süresi doldu"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
msgstr "Tanıtım süreölçer kullanım süresi doldu"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
msgstr "Pencere boyutları değiştirildi"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "Devam ediliyor"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
msgstr "Acil G/Ç koşulu"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
msgstr "G/Ç mümkün"
-#: 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 "Kaynak kaybı"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "Tehlike sinyali"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr "Bilgi isteÄŸi"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
msgstr "Aritmetik işlemci kullanılabilir değil"
-#: strcache.c:235
+#: strcache.c:236
#, fuzzy, c-format
msgid ""
"\n"
-"%s # of strings in strcache: %d / lookups = %lu / hits = %lu\n"
-msgstr ""
-"\n"
-"%s dizge belleğindeki dizgelerin sayısı: %d\n"
+"%s No strcache buffers\n"
+msgstr "%s dizge belleği tamponlarının sayısı: %d\n"
-#: strcache.c:237
+#: strcache.c:266
#, fuzzy, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
-msgstr "%s dizge belleği tamponlarının sayısı: %d\n"
+msgid ""
+"\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
+msgstr "%s dizge belleÄŸi boÅŸ: toplam = %d / max = %d / min = %d / ort = %d\n"
+
+#: strcache.c:270
+#, c-format
+msgid ""
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
+msgstr ""
-#: strcache.c:239
+#: strcache.c:280
#, fuzzy, c-format
-msgid "%s strcache used: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
msgstr "%s dizge belleÄŸi boyu: toplam = %d / max = %d / min = %d / ort = %d\n"
-#: strcache.c:241
+#: strcache.c:283
#, fuzzy, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
msgstr "%s dizge belleÄŸi boÅŸ: toplam = %d / max = %d / min = %d / ort = %d\n"
-#: strcache.c:244
-#, fuzzy
+#: 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"
"# dosyaların hash tablosu durumları:\n"
"# "
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "otomatik"
+
+#: variable.c:1610
msgid "default"
msgstr "öntanımlı"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr "çevre"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr "derleme dosyası"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
msgstr "çevre -e altında"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr "komut satırı"
-#: variable.c:1556
-msgid "`override' directive"
+#: variable.c:1625
+#, fuzzy
+msgid "'override' directive"
msgstr "`override' yönergesi"
-#: variable.c:1559
-msgid "automatic"
-msgstr "otomatik"
-
-#: variable.c:1570
-#, c-format
-msgid " (from `%s', line %lu)"
+#: variable.c:1636
+#, fuzzy, c-format
+msgid " (from '%s', line %lu)"
msgstr " (`%s'den, satır %lu)"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
msgstr "# değişken kümesi hash tablosunun durumu:\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1878,7 +2104,7 @@ msgstr ""
"\n"
"# DeÄŸiÅŸkenler\n"
-#: variable.c:1627
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
@@ -1886,7 +2112,7 @@ msgstr ""
"\n"
"# Kalıba özgü Değişken Değerleri"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
@@ -1894,7 +2120,7 @@ msgstr ""
"\n"
"# Örneğe duyarlı değişken değeri yok."
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
@@ -1903,94 +2129,94 @@ msgstr ""
"\n"
"# %u örneğe duyarlı değişken değeri"
-#: variable.h:219
-#, c-format
-msgid "warning: undefined variable `%.*s'"
+#: variable.h:224
+#, fuzzy, c-format
+msgid "warning: undefined variable '%.*s'"
msgstr "uyarı: `%.*s' değişkeni atanmamış"
-#: vmsfunctions.c:92
+#: vmsfunctions.c:91
#, fuzzy, c-format
msgid "sys$search() failed with %d\n"
msgstr "sys$search %d ile başarısız\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr "Uyarı: Boş yönlendirme\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 "içsel hata: `%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 ""
"-uyarı, DCL den yönetimi almak için CTRL-Y'yi yeniden "
"etkinleÅŸtirebilirsiniz.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr "OLUŞUMİÇİ [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr "OLUŞUMİÇİ CD %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr "OLUŞUMİÇİ RM %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
msgstr "Oluşumiçi komut '%s' bilinmiyor\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr "Hata, boÅŸ komut\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr "%s den yönlendirilmiş girdi\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr "%s e yönlendirilmiş hata\n"
-#: vmsjobs.c:523
+#: vmsjobs.c:518
#, fuzzy, c-format
msgid "Append output to %s\n"
msgstr "%s e yönlendirilmiş çıktı\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
msgstr "%s e yönlendirilmiş çıktı\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 "%s yerine çalıştırılıyor\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr "doğum hatası, %d\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
@@ -1998,37 +2224,46 @@ msgstr ""
"\n"
"# VPATH Arama yolu\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
+#: vpath.c:600
+#, fuzzy
+msgid "# No 'vpath' search paths."
msgstr "# `vpath' arama yolları yok"
-#: 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' arama yolu.\n"
-#: vpath.c:608
+#: vpath.c:605
+#, fuzzy
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
"# Genel arama yolu (`VPATH' çevre değişkeni) yok."
-#: vpath.c:614
+#: vpath.c:611
+#, fuzzy
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
"# Genel (`VPATH' çevre değişkeni) arama yolu:\n"
"# "
+#~ msgid "# Invalid value in `update_status' member!"
+#~ msgstr "# `update_status' üyesinde geçersiz değer!"
+
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] Hata 0x%x (yoksayıldı)"
+
#~ msgid "process_easy() failed failed to launch process (e=%ld)\n"
#~ msgstr "Süreci başlatmada process_easy() başarısız oldu (e=%ld)\n"
@@ -2052,6 +2287,13 @@ msgstr ""
#~ msgid "invalid `override' directive"
#~ msgstr "`override' yönergesi geçersiz"
+#~ msgid ""
+#~ "\n"
+#~ "%s # of strings in strcache: %d\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s dizge belleğindeki dizgelerin sayısı: %d\n"
+
#~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
#~ msgstr "-uyarı, CTRL-Y etraftaki alt-süreç(ler)i bıraktıracak.\n"
diff --git a/po/uk.gmo b/po/uk.gmo
index e24a088..212214b 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index ebf1fd6..7bb31f0 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -1,894 +1,1097 @@
-# ðÅÒÅËÌÁÄ make ÎÁ ÕËÒÁ§ÎÓØËÕ.
+# Переклад make українÑькою.
# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-# Volodymyr M. Lisivka <lvm@mystery.lviv.net>, 2001-2002.
+# This file is distributed under the same license as the make package.
#
+# Volodymyr M. Lisivka <lvm@mystery.lviv.net>, 2001-2012.
+# Yuri Chornoivan <yurchor@ukr.net>, 2012, 2013.
msgid ""
msgstr ""
-"Project-Id-Version: make 3.80\n"
+"Project-Id-Version: make 3.99.93\n"
"Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2010-07-28 01:42-0400\n"
-"PO-Revision-Date: 2002-12-05 20:07+0200\n"
+"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"PO-Revision-Date: 2013-10-02 07:20+0300\n"
"Last-Translator: Volodymyr M. Lisivka <lvm@mystery.lviv.net>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
+"Language: uk\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=koi8-u\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Lokalize 1.5\n"
-#: ar.c:48
+#: ar.c:46
#, c-format
-msgid "attempt to use unsupported feature: `%s'"
-msgstr "ÓÐÒÏÂÁ ×ÖÉÔÉ ÍÏÖÌÉצÓÔØ, ÑËÁ ΊЦÄÔÒÉÍÕ¤ÔØÓÑ: \"%s\""
+msgid "attempt to use unsupported feature: '%s'"
+msgstr "Ñпроба вжити можливіÑÑ‚ÑŒ, Ñка не підтримуєтьÑÑ: \"%s\""
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
-msgstr "ÏÎÏ×ÌÅÎÎÑ ÞÁÓÕ ÚͦÎÉ ÞÌÅÎÁ ÁÒȦ×Õ ÎÅÍÏÖÌÉ×Ï Õ ÓÉÓÔÅͦ VMS"
+msgstr "Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу зміни члена архіву неможливо у ÑиÑтемі VMS"
-#: ar.c:149
+#: ar.c:147
#, c-format
-msgid "touch: Archive `%s' does not exist"
-msgstr "ÏÎÏ×ÌÅÎÎÑ ÞÁÓÕ ÚͦÎÉ: áÒÈ¦× \"%s\" ÎÅ ¦ÓÎÕ¤"
+msgid "touch: Archive '%s' does not exist"
+msgstr "Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу зміни: Ðрхів \"%s\" не Ñ–Ñнує"
-#: ar.c:152
+#: ar.c:150
#, c-format
-msgid "touch: `%s' is not a valid archive"
-msgstr "ÏÎÏ×ÌÅÎÎÑ ÞÁÓÕ ÚͦÎÉ: îÅצÒÎÉÊ ÁÒȦ×: \"%s\""
+msgid "touch: '%s' is not a valid archive"
+msgstr "Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу зміни: Ðевірний архів: \"%s\""
-#: ar.c:159
+#: ar.c:157
#, c-format
-msgid "touch: Member `%s' does not exist in `%s'"
-msgstr "ÏÎÏ×ÌÅÎÎÑ ÞÁÓÕ ÚͦÎÉ: þÌÅÎ \"%s\" ΊͦÓÔÉÔØÓÑ Õ \"%s\""
+msgid "touch: Member '%s' does not exist in '%s'"
+msgstr "Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу зміни: Член \"%s\" не міÑтитьÑÑ Ñƒ \"%s\""
-#: ar.c:166
+#: ar.c:164
#, c-format
-msgid "touch: Bad return code from ar_member_touch on `%s'"
+msgid "touch: Bad return code from ar_member_touch on '%s'"
msgstr ""
-"ÏÎÏ×ÌÅÎÎÑ ÞÁÓÕ ÚͦÎÉ: æÕÎËÃ¦Ñ ar_member_touch ÐÏ×ÅÒÎÕÌÁ\n"
-"ÐÏÇÁÎÉÊ ËÏÄ ×¦ÄÐÏצĦ ÄÌÑ \"%s\""
+"Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу зміни: Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ ar_member_touch повернула\n"
+"поганий код відповіді Ð´Ð»Ñ \"%s\""
-#: arscan.c:69
+#: arscan.c:67
#, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
-msgstr ""
+msgstr "lbr$set_module() не вдалоÑÑ Ð²Ð¸Ð´Ð¾Ð±ÑƒÑ‚Ð¸ дані модулÑ, Ñтан = %d"
-#: arscan.c:175
+#: arscan.c:173
#, c-format
msgid "lbr$ini_control() failed with status = %d"
-msgstr ""
+msgstr "Помилка lbr$ini_control() з повідомленнÑм Ñтану = %d"
-#: arscan.c:187
-#, fuzzy, c-format
-msgid "unable to open library `%s' to lookup member `%s'"
-msgstr "ðÏÍÉÌËÁ צÄËÒÉ×ÁÎÎÑ Â¦Â̦ÏÔÅËÉ %s ÄÌÑ ÐÏÛÕËÕ ÞÌÅÎÁ %s; %d\n"
+#: arscan.c:185
+#, c-format
+msgid "unable to open library '%s' to lookup member '%s'"
+msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ бібліотеку «%s» Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ елемента «%s»"
-#: arscan.c:850
+#: arscan.c:847
#, c-format
-msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n"
-msgstr ""
+msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
+msgstr "Елемент «%s»%s: %ld байтів з %ld (%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
-msgstr " (¦Í'Ñ ÍÏÖÅ ÂÕÔÉ ÕÓ¦ÞÅÎÅ)"
+msgstr " (ім'Ñ Ð¼Ð¾Ð¶Ðµ бути обрізано)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
-msgstr " äÁÔÁ %s"
+msgstr " Дата %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
-msgstr ""
+msgstr " uid = %d, gid = %d, режим = 0%o.\n"
-#: commands.c:499
+#: commands.c:406
+#, c-format
+msgid "Recipe has too many lines (%ud)"
+msgstr "У рецепті забагато Ñ€Ñдків (%ud)"
+
+#: commands.c:507
msgid "*** Break.\n"
-msgstr ""
+msgstr "*** Зупинка.\n"
-#: commands.c:622
+#: commands.c:630
#, c-format
-msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
-msgstr ""
+msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
+msgstr "*** [%s] Елемент архіву, «%s», можливо є фіктивним; не вилучено"
-#: commands.c:625
+#: commands.c:633
#, c-format
-msgid "*** Archive member `%s' may be bogus; not deleted"
-msgstr ""
+msgid "*** Archive member '%s' may be bogus; not deleted"
+msgstr "*** Елемент архіву, «%s», можливо є фіктивним; не вилучено"
-#: commands.c:638
+#: commands.c:646
#, c-format
-msgid "*** [%s] Deleting file `%s'"
-msgstr "*** [%s] ÷ÉÄÁÌÅÎÎÑ ÆÁÊÌÕ \"%s\""
+msgid "*** [%s] Deleting file '%s'"
+msgstr "*** [%s] Вилучаємо файл \"%s\""
-#: commands.c:640
+#: commands.c:648
#, c-format
-msgid "*** Deleting file `%s'"
-msgstr "*** ÷ÉÄÁÌÅÎÎÑ ÆÁÊÌÕ \"%s\""
+msgid "*** Deleting file '%s'"
+msgstr "*** Вилучаємо файл \"%s\""
-#: commands.c:676
-#, fuzzy
+#: commands.c:684
msgid "# recipe to execute"
-msgstr "# ËÏÍÁÎÄÉ ÄÏ ×ÉËÏÎÁÎÎÑ"
+msgstr "# ÑпоÑіб, Ñкий Ñлід заÑтоÑувати"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
-msgstr " (×ÂÕÄÏ×ÁÎÅ):"
+msgstr " (вбудоване):"
-#: commands.c:681
+#: commands.c:689
#, c-format
-msgid " (from `%s', line %lu):\n"
-msgstr " (Ú \"%s\", ÒÑÄÏË %lu):\n"
+msgid " (from '%s', line %lu):\n"
+msgstr " (з \"%s\", Ñ€Ñдок %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
msgstr ""
"\n"
-"# ëÁÔÁÌÏÇÉ\n"
+"# Каталоги\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
-msgstr "# %s: ÎÅÍÏÖÌÉ×Ï ÏÔÒÉÍÁÔÉ ¦ÎÆÏÒÍÁæÀ (stat).\n"
+msgstr "# %s: неможливо отримати інформацію (stat).\n"
-#: dir.c:1012
-#, fuzzy, c-format
+#: dir.c:1005
+#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
-msgstr "# %s (ÐÒÉÓÔÒ¦Ê %d, ¦×ÕÚÏÌ %d): ÎÅÍÏÖÌÉ×Ï ×¦ÄËÒÉÔÉ.\n"
+msgstr "# %s (ключ %s, Ñ‡Ð°Ñ Ð·Ð¼Ñ–Ð½Ð¸ %d): не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
-msgstr "# %s (ÐÒÉÓÔÒ¦Ê %d, ¦×ÕÚÏÌ [%d,%d,%d]): ÎÅÍÏÖÌÉ×Ï ×¦ÄËÒÉÔÉ.\n"
+msgstr "# %s (приÑтрій %d, івузол [%d,%d,%d]): неможливо відкрити.\n"
-#: dir.c:1021
-#, fuzzy, c-format
+#: dir.c:1014
+#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
-msgstr "# %s (ÐÒÉÓÔÒ¦Ê %d, ¦×ÕÚÏÌ %d): ÎÅÍÏÖÌÉ×Ï ×¦ÄËÒÉÔÉ.\n"
+msgstr "# %s (приÑтрій %ld, івузол %ld): не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
-msgstr "# %s (ËÌÀÞ %s, ÞÁÓ ÍÏÄÉƦËÁæ§ %d): "
+msgstr "# %s (ключ %s, Ñ‡Ð°Ñ Ð¼Ð¾Ð´Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ— %d): "
-#: dir.c:1052
-#, fuzzy, c-format
+#: dir.c:1045
+#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
-msgstr "# %s (ÐÒÉÓÔÒ¦Ê %d, ¦×ÕÚÏÌ [%d,%d,%d]): ÎÅÍÏÖÌÉ×Ï ×¦ÄËÒÉÔÉ.\n"
+msgstr "# %s (приÑтрій %d, івузол [%d,%d,%d]): "
-#: dir.c:1057
-#, fuzzy, c-format
+#: dir.c:1050
+#, c-format
msgid "# %s (device %ld, inode %ld): "
-msgstr "# %s (ÐÒÉÓÔÒ¦Ê %d, ¦×ÕÚÏÌ %d): ÎÅÍÏÖÌÉ×Ï ×¦ÄËÒÉÔÉ.\n"
+msgstr "# %s (приÑтрій %ld, івузол %ld): "
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
-msgstr "î¦"
+msgstr "ÐÑ–"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
-msgstr " ÆÁÊ̦×, "
+msgstr " файлів, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
-msgstr "Φ"
+msgstr "ні"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
-msgstr " ÎÅÄÏÓÑÖÎÉÈ Ã¦ÌÅÊ"
+msgstr " недоÑÑжних цілей"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
-msgstr " ÎÁ ÐÏÔÏÞÎÉÊ ÍÏÍÅÎÔ."
+msgstr " на поточний момент."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
-msgstr " ÎÅÄÏÓÑÖÎÉÈ Ã¦ÌÅÊ Õ %lu ËÁÔÁÌÏÇÁÈ.\n"
+msgstr " недоÑÑжних цілей у %lu каталогах.\n"
-#: expand.c:127
+#: expand.c:125
#, c-format
-msgid "Recursive variable `%s' references itself (eventually)"
-msgstr "òÅËÕÒÓÉ×ÎÁ ÚͦÎÎÁ \"%s\" ÐÏÓÉÌÁ¤ÔØÓÑ ÓÁÍÁ ÎÁ ÓÅÂÅ (Õ ÒÅÚÕÌØÔÁÔ¦)"
+msgid "Recursive variable '%s' references itself (eventually)"
+msgstr "РекурÑивна змінна \"%s\" поÑилаєтьÑÑ Ñама на Ñебе (у результаті)"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
-msgstr "ÎÅÚÁ×ÅÒÛÅÎÁ ÐÏÓÉÌÁÎÎÑ ÎÁ ÚͦÎÎÕ"
+msgstr "незавершена поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° змінну"
-#: file.c:267
-#, fuzzy, c-format
-msgid "Recipe was specified for file `%s' at %s:%lu,"
-msgstr "ëÏÍÁÎÄÉ ÄÌÑ ÆÁÊÌÕ \"%s\" ÂÕÌÉ ÚÁÄÁΦ %s:%u,"
+#: file.c:269
+#, c-format
+msgid "Recipe was specified for file '%s' at %s:%lu,"
+msgstr "СпоÑіб Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð° «%s» було задано %s:%lu,"
-#: file.c:272
-#, fuzzy, c-format
-msgid "Recipe for file `%s' was found by implicit rule search,"
-msgstr "ëÏÍÁÎÄÉ ÄÌÑ ÆÁÊÌÕ \"%s\" ÂÕÌÉ ÚÎÁÊÄÅΦ Ú ÎÅÑ×ÎÏÇÏ ÐÒÁ×ÉÌÁ,"
+#: file.c:274
+#, c-format
+msgid "Recipe for file '%s' was found by implicit rule search,"
+msgstr ""
+"СпоÑіб Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð° «%s» було знайдено за допомогою пошуку неÑвних правил,"
-#: file.c:275
+#: file.c:277
#, c-format
-msgid "but `%s' is now considered the same file as `%s'."
-msgstr "ÁÌÅ \"%s\" ¦ \"%s\" ÔÅÐÅÒ ××ÁÖÁÀÔØÓÑ ÏÄÎÉÍ ¦ ÔÉÍ ÖÅ Ö ÆÁÊÌÏÍ. "
+msgid "but '%s' is now considered the same file as '%s'."
+msgstr "але \"%s\" Ñ– \"%s\" тепер вважаютьÑÑ Ð¾Ð´Ð½Ð¸Ð¼ Ñ– тим же ж файлом. "
-#: file.c:278
-#, fuzzy, c-format
-msgid "Recipe for `%s' will be ignored in favor of the one for `%s'."
-msgstr "ëÏÍÁÎÄÉ ÄÌÑ \"%s\" ¦ÇÎÏÒÏ×ÁΦ, ÂÕÄÕÔØ ×ÉËÏÒÉÓÔÁΦ ËÏÍÁÎÄÉ ÄÌÑ \"%s\"."
+#: file.c:280
+#, c-format
+msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
+msgstr "СпоÑіб Ð´Ð»Ñ Â«%s» буде проігноровано на кориÑÑ‚ÑŒ ÑпоÑобу Ð´Ð»Ñ Â«%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 ""
-"ÎÅÍÏÖÌÉ×Ï ÐÅÒÅÊÍÅÎÕ×ÁÔÉ \"%s\" Ú ÏÄΦ¤À Ä×ÏËÒÁÐËÏÀ Õ \"%s\" Ú Ä×ÏÍÁ "
-"Ä×ÏËÒÁÐËÁÍÉ"
+"неможливо перейменувати \"%s\" з однією двокрапкою у \"%s\" з двома "
+"двокрапками"
-#: 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 ""
-"ÎÅÍÏÖÌÉ×Ï ÐÅÒÅÊÍÅÎÕ×ÁÔÉ \"%s\" Ú Ä×ÏÍÁ Ä×ÏËÒÁÐËÁÍÉ Õ \"%s\" Ú ÏÄΦ¤À "
-"Ä×ÏËÒÁÐËÏÀ"
+"неможливо перейменувати \"%s\" з двома двокрапками у \"%s\" з однією "
+"двокрапкою"
-#: file.c:392
+#: file.c:396
#, c-format
-msgid "*** Deleting intermediate file `%s'"
-msgstr "*** ÷ÉÄÁÌÅÎÎÑ ÐÒÏͦÖÎÏÇÏ ÆÁÊÌÕ \"%s\""
+msgid "*** Deleting intermediate file '%s'"
+msgstr "*** Вилучаємо проміжний файл «%s»"
-#: file.c:396
+#: file.c:400
msgid "Removing intermediate files...\n"
-msgstr "÷ÉÄÁÌÑÀ ÐÒÏͦÖΦ ÆÁÊÌÉ...\n"
+msgstr "ВидалÑÑŽ проміжні файли...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
-msgstr ""
+msgstr "%s: чаÑова позначка поза допуÑтимим діапазоном; замінюємо на %s"
-#: file.c:804
+#: file.c:809
msgid "Current time"
-msgstr ""
+msgstr "Поточний чаÑ"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
-msgstr "# îÅ ¤ ÍÅÔÏÀ:"
+msgstr "# Ðе Ñ” метою:"
-#: file.c:929
-#, fuzzy
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
-msgstr "# ëÏÛÔÏ×ÎÉÊ ÆÁÊÌ (ÚÁÌÅÖΦÓÔØ .PRECIOUS)."
+msgstr "# ВартіÑний файл (залежніÑÑ‚ÑŒ .PRECIOUS)."
-#: file.c:931
-#, fuzzy
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
-msgstr "# ðÓÅ×ÄÏæÌØ (ÚÁÌÅÖΦÓÔØ ×¦Ä .PHONY)."
+msgstr "# ПÑевдоціль (залежніÑÑ‚ÑŒ .PHONY)."
-#: file.c:933
-#, fuzzy
+#: file.c:958
msgid "# Command line target."
-msgstr "# ã¦ÌØ ËÏÍÁÎÄÎÏÇÏ ÒÑÄËÁ."
+msgstr "# Мета, що викликаєтьÑÑ Ð· командного Ñ€Ñдка."
-#: file.c:935
-#, fuzzy
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
-msgstr "# Makefile ÚÁ ÚÁÍÏ×ÞÕ×ÁÎÎÑÍ ÁÂÏ Ú MAKEFILES."
+msgstr "# Типово, MAKEFILES, або -include/sinclude makefile."
+
+#: file.c:962
+msgid "# Builtin rule"
+msgstr "# Вбудоване правило"
-#: file.c:937
-#, fuzzy
+#: file.c:964
msgid "# Implicit rule search has been done."
-msgstr "# ðÏÛÕË ÎÅÑ×ÎÉÈ ÐÒÁ×ÉÌ%s ÚÁ×ÅÒÛÉ×ÓÑ.\n"
+msgstr "# Пошук неÑвних правил виконано."
-#: file.c:938
-#, fuzzy
+#: file.c:965
msgid "# Implicit rule search has not been done."
-msgstr "# ðÏÛÕË ÎÅÑ×ÎÉÈ ÐÒÁ×ÉÌ%s ÚÁ×ÅÒÛÉ×ÓÑ.\n"
+msgstr "# Пошук неÑвних правил не було виконано."
-#: file.c:940
+#: file.c:967
#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
-msgstr "# ïÓÎÏ×Á ÎÅÑ×ÎÏÇÏ ÁÂÏ ÓÔÁÔÉÞÎÏÇÏ ÛÁÂÌÏÎÕ: \"%s\"\n"
+msgid "# Implicit/static pattern stem: '%s'\n"
+msgstr "# ОÑнова неÑвного або Ñтатичного шаблону: \"%s\"\n"
-#: file.c:942
-#, fuzzy
+#: file.c:969
msgid "# File is an intermediate prerequisite."
-msgstr "# æÁÊÌ -- ÐÒÏͦÖÎÁ ÚÁÌÅÖΦÓÔØ."
+msgstr "# Файл Ñ” проміжною залежніÑÑ‚ÑŽ."
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
-msgstr "# úÂÉÒÁ¤ ÔÁËÏÖ:"
+msgstr "# Збирає також:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
-msgstr "# þÁÓ ÚͦÎÉ Î¦ËÏÌÉ ÎÅ ÐÅÒÅצÒÑ×ÓÑ."
+msgstr "# Ð§Ð°Ñ Ð·Ð¼Ñ–Ð½Ð¸ ніколи не перевірÑвÑÑ."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
-msgstr "# æÁÊÌ ÎÅ ¦ÓÎÕ¤."
+msgstr "# Файл не Ñ–Ñнує."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
-msgstr "# æÁÊÌ ÄÕÖÅ ÓÔÁÒÉÊ."
+msgstr "# Файл дуже Ñтарий."
-#: file.c:961
-#, fuzzy, c-format
+#: file.c:988
+#, c-format
msgid "# Last modified %s\n"
-msgstr "# þÁÓ ÏÓÔÁÎÎØϧ ÚͦÎÉ %.24s (%ld)\n"
+msgstr "# ВоÑтаннє оновлено %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
-msgstr "# æÁÊÌ ÂÕ× ÏÎÏ×ÌÅÎÉÊ."
+msgstr "# Файл був оновлений."
-#: file.c:964
-#, fuzzy
+#: file.c:991
msgid "# File has not been updated."
-msgstr "# æÁÊÌ%s ÏÎÏ×ÌÅÎÏ.\n"
+msgstr "# Файл не було оновлено."
-#: file.c:968
-#, fuzzy
+#: file.c:995
msgid "# Recipe currently running (THIS IS A BUG)."
-msgstr "# úÁÐÕÝÅΦ ÚÁÒÁÚ ËÏÍÁÎÄÉ (ãå ðïíéìëá)."
+msgstr "# ВиконуєтьÑÑ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ° (ЦЕ ПОМИЛКÐ)"
-#: file.c:971
-#, fuzzy
+#: file.c:998
msgid "# Dependencies recipe running (THIS IS A BUG)."
-msgstr "# úÁÐÕÝÅΦ ÚÁÒÁÚ ËÏÍÁÎÄÉ ÄÅÑËϧ ÚÁÌÅÖÎÏÓÔ¦ (ãå ðïíéìëá)."
+msgstr "# Ці залежноÑÑ‚Ñ– вже оброблÑÑŽÑ‚ÑŒÑÑ (ЦЕ ПОМИЛКÐ)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
-msgstr "# õÓЦÛÎÏ ÏÎÏ×ÌÅÎÏ."
+msgstr "# УÑпішно оновлено."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
-msgstr "# ðÏ×ÉÎÎÏ ÂÕÔÉ ÏÎÏ×ÌÅÎÏ (×ÓÔÁÎÏ×ÌÅÎÉÊ ËÌÀÞ -q)."
+msgstr "# Повинно бути оновлено (вÑтановлений ключ -q)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
-msgstr "# óÐÒÏÂÁ ÏÎÏ×ÌÅÎÎÑ ÂÅÚÕÓЦÛÎÁ."
+msgstr "# Спроба Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð±ÐµÐ·ÑƒÑпішна."
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# îÅצÒÎÅ ÚÎÁÞÅÎÎÑ ÞÌÅÎÁ \"update_status\"!"
+#: file.c:1019
+msgid "# Invalid value in 'command_state' member!"
+msgstr "# Ðекоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‡Ð»ÐµÐ½Ð° \"command_state\"!"
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
-msgstr "# îÅצÒÎÅ ÚÎÁÞÅÎÎÑ ÞÌÅÎÁ \"command_state\"!"
-
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
msgstr ""
"\n"
-"# æÁÊÌÉ"
+"# Файли"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
"# "
msgstr ""
+"\n"
+"# ÑтатиÑтика щодо таблиці хешів файлів:\n"
+"# "
+
+#: file.c:1051
+#, c-format
+msgid "%s: Field '%s' not cached: %s"
+msgstr "%s: поле «%s» не кешовано: %s"
-#: function.c:758
-msgid "non-numeric first argument to `word' function"
-msgstr "ÎÅ ÞÉÓÌÏ×ÉÊ ÐÅÒÛÉÊ ÁÒÇÕÍÅÎÔ ÄÌÑ ÆÕÎËæ§ \"word\""
+#: function.c:742
+msgid "non-numeric first argument to 'word' function"
+msgstr "не чиÑловий перший аргумент Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— \"word\""
-#: function.c:763
-#, fuzzy
-msgid "first argument to `word' function must be greater than 0"
-msgstr "ÎÅ ÞÉÓÌÏ×ÉÊ ÐÅÒÛÉÊ ÁÒÇÕÍÅÎÔ ÄÌÑ ÆÕÎËæ§ \"word\""
+#: function.c:747
+msgid "first argument to 'word' function must be greater than 0"
+msgstr "першим аргументом функції «word» має бути чиÑло, більше за 0"
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
-msgstr "ÎÅ ÞÉÓÌÏ×ÉÊ ÐÅÒÛÉÊ ÁÒÇÕÍÅÎÔ ÄÌÑ ÆÕÎËæ§ \"wordlist\""
+#: function.c:767
+msgid "non-numeric first argument to 'wordlist' function"
+msgstr "не чиÑловий перший аргумент Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— \"wordlist\""
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
-msgstr "ÎÅ ÞÉÓÌÏ×ÉÊ ÄÒÕÇÉÊ ÁÒÇÕÍÅÎÔ ÄÌÑ ÆÕÎËæ§ \"wordlist\""
+#: function.c:769
+msgid "non-numeric second argument to 'wordlist' function"
+msgstr "не чиÑловий другий аргумент Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— \"wordlist\""
-#: function.c:1458
+#: function.c:1460
#, c-format
-msgid "windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"
-msgstr ""
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
+msgstr "windows32_openpipe: помилка DuplicateHandle(In) (e=%ld)\n"
-#: function.c:1469
+#: function.c:1483
#, c-format
-msgid "windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr ""
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
+msgstr "windows32_openpipe: помилка DuplicateHandle(Err) (e=%ld)\n"
-#: function.c:1474
+#: function.c:1490
#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
-msgstr ""
+msgstr "Помилка CreatePipe() (e=%ld)\n"
-#: function.c:1479
+#: function.c:1498
msgid "windows32_openpipe(): process_init_fd() failed\n"
-msgstr ""
+msgstr "windows32_openpipe(): помилка process_init_fd()\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
+msgstr "Спорожнюємо тимчаÑовий пакетний файл %s\n"
+
+#: function.c:2151
+#, c-format
+msgid "open: %s: %s"
+msgstr "open: %s: %s"
+
+#: function.c:2158
+#, c-format
+msgid "write: %s: %s"
+msgstr "write: %s: %s"
+
+#: function.c:2164
+#, c-format
+msgid "Invalid file operation: %s"
+msgstr "Ðекоректна Ð´Ñ–Ñ Ð½Ð°Ð´ файлом: %s"
+
+#: function.c:2279
+#, c-format
+msgid "insufficient number of arguments (%d) to function '%s'"
+msgstr "недоÑÑ‚Ð°Ñ‚Ð½Ñ ÐºÑ–Ð»ÑŒÐºÑ–ÑÑ‚ÑŒ аргументів (%d) функції «%s»"
+
+#: function.c:2291
+#, c-format
+msgid "unimplemented on this platform: function '%s'"
+msgstr "не реалізовано на цій платформі: Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Â«%s»"
+
+#: function.c:2354
+#, c-format
+msgid "unterminated call to function '%s': missing '%c'"
+msgstr "незавершений виклик функції \"%s\"; пропущено \"%c\""
+
+#: function.c:2546
+msgid "Empty function name\n"
msgstr ""
-#: function.c:2150
+#: function.c:2548
#, fuzzy, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
-msgstr "ÎÅ ÞÉÓÌÏ×ÉÊ ÐÅÒÛÉÊ ÁÒÇÕÍÅÎÔ ÄÌÑ ÆÕÎËæ§ \"word\""
+msgid "Invalid function name: %s\n"
+msgstr "Ðекоректна Ð´Ñ–Ñ Ð½Ð°Ð´ файлом: %s"
-#: function.c:2162
-#, fuzzy, c-format
-msgid "unimplemented on this platform: function `%s'"
-msgstr "îÅ ÒÅÁ̦ÚÏ×ÁÎÏ ÎÁ Ã¦Ê ÐÌÁÔÆÏÒͦ: ÆÕÎËÃ¦Ñ \"%s\""
+#: function.c:2550
+#, c-format
+msgid "Function name too long: %s\n"
+msgstr "Ðазва функції Ñ” задовгою: %s\n"
-#: function.c:2212
+#: function.c:2552
#, c-format
-msgid "unterminated call to function `%s': missing `%c'"
-msgstr "ÎÅÚÁ×ÅÒÛÅÎÉÊ ×ÉËÌÉË ÆÕÎËæ§ \"%s\"; ÐÒÏÐÕÝÅÎÏ \"%c\""
+msgid "Invalid minimum argument count (%d) for function %s\n"
+msgstr "Ðекоректна мінімальна кількіÑÑ‚ÑŒ аргументів (%d) функції %s\n"
-#: getopt.c:661
+#: function.c:2555
#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: ÐÁÒÁÍÅÔÒ \"%s\" - ÎÅÏÄÎÏÚÎÁÞÎÉÊ\n"
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "Ðекоректна макÑимальна кількіÑÑ‚ÑŒ аргументів (%d) функції %s\n"
-#: getopt.c:685
+#: getopt.c:659
#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: ÐÁÒÁÍÅÔÒ \"--%s\" ÎÅ ÍÏÖÅ ÍÁÔÉ ÁÒÇÕÍÅÎÔ¦×\n"
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: параметр «%s» не є однозначним\n"
-#: getopt.c:690
+#: getopt.c:683
#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: ÐÁÒÁÍÅÔÒ \"%c%s\" ÎÅ ÍÏÖÅ ÍÁÔÉ ÁÒÇÕÍÅÎÔ¦×\n"
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² до параметра «--%s» не передбачено\n"
-#: getopt.c:707 getopt.c:880
+#: getopt.c:688
#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: ÐÁÒÁÍÅÔÒÕ \"%s\" ÎÅÏÂȦÄÎÉÊ ÁÒÇÕÍÅÎÔ\n"
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² до параметра «%c%s» не передбачено\n"
-#: getopt.c:736
+#: getopt.c:705 getopt.c:878
#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: ÎÅ ÒÏÚЦÚÎÁÎÉÊ ÐÁÒÁÍÅÔÒ \"--%s\"\n"
+msgid "%s: option '%s' requires an argument\n"
+msgstr "%s: до параметра «%s» Ñлід додати аргумент\n"
-#: getopt.c:740
+#: getopt.c:734
#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: ÎÅ ÒÏÚЦÚÎÁÎÉÊ ÐÁÒÁÍÅÔÒ \"%c%s\"\n"
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: невідомий параметр «--%s»\n"
-#: getopt.c:766
+#: getopt.c:738
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: невідомий параметр «%c%s»\n"
+
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
-msgstr "%s: ÎÅצÒÎÉÊ ÐÁÒÁÍÅÔÒ -- %c\n"
+msgstr "%s: невірний параметр -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
-msgstr "%s: ÎÅצÒÎÉÊ ÐÁÒÁÍÅÔÒ -- %c\n"
+msgstr "%s: невірний параметр -- %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: ÐÁÒÁÍÅÔÒÕ ÎÅÏÂȦÄÎÉÊ ÁÒÇÕÍÅÎÔ -- %c\n"
+msgstr "%s: параметру необхідний аргумент -- %c\n"
+
+#: getopt.c:844
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: параметр «-W %s» не є однозначним\n"
-#: getopt.c:846
+#: getopt.c:862
#, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
-msgstr "%s: ÐÁÒÁÍÅÔÒ \"-W %s\" ÎÅÏÄÎÏÚÎÁÞÎÉÊ\n"
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² до параметра «-W %s» не передбачено\n"
-#: getopt.c:864
+#: guile.c:55
#, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr "%s: ÐÁÒÁÍÅÔÒ \"-W %s\" ÎÅ ÍÏÖÅ ÍÁÔÉ ÁÒÇÕÍÅÎÔ¦×\n"
+msgid "guile: Expanding '%s'\n"
+msgstr "guile: розгортаємо «%s»\n"
+
+#: guile.c:71
+#, c-format
+msgid "guile: Evaluating '%s'\n"
+msgstr "guile: обчиÑлюємо «%s»\n"
#: hash.c:49
#, c-format
msgid "can't allocate %lu bytes for hash table: memory exhausted"
-msgstr ""
+msgstr "не вдалоÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñтити %lu байтів Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– хешів: вичерпано пам’ÑÑ‚ÑŒ"
#: hash.c:280
#, c-format
msgid "Load=%ld/%ld=%.0f%%, "
-msgstr ""
+msgstr "ЗавантаженнÑ=%ld/%ld=%.0f%%, "
#: hash.c:282
#, c-format
msgid "Rehash=%d, "
-msgstr ""
+msgstr "Повторне хешуваннÑ=%d, "
#: hash.c:283
#, c-format
msgid "Collisions=%ld/%ld=%.0f%%"
-msgstr ""
+msgstr "Збіги=%ld/%ld=%.0f%%"
-#: implicit.c:40
+#: implicit.c:38
#, c-format
-msgid "Looking for an implicit rule for `%s'.\n"
-msgstr "ðÏÛÕË ÎÅÑ×ÎÏÇÏ ÐÒÁ×ÉÌÁ ÄÌÑ \"%s\".\n"
+msgid "Looking for an implicit rule for '%s'.\n"
+msgstr "Пошук неÑвного правила Ð´Ð»Ñ \"%s\".\n"
-#: implicit.c:56
+#: implicit.c:54
#, c-format
-msgid "Looking for archive-member implicit rule for `%s'.\n"
-msgstr "ðÏÛÕË ÎÅÑ×ÎÏÇÏ ÐÒÁ×ÉÌÁ ÄÌÑ ÞÌÅÎÁ ÁÒȦ×Õ \"%s\".\n"
+msgid "Looking for archive-member implicit rule for '%s'.\n"
+msgstr "Пошук неÑвного правила Ð´Ð»Ñ Ñ‡Ð»ÐµÐ½Ð° архіву \"%s\".\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
-msgstr "úÁÐϦÇÁÎÎÑ ÒÅËÕÒÓÉ×ÎÏÇÏ ×ÉËÌÉËÕ ÎÅÑ×ÎÏÇÏ ÐÒÁ×ÉÌÁ.\n"
+msgstr "Ð—Ð°Ð¿Ð¾Ð±Ñ–Ð³Ð°Ð½Ð½Ñ Ñ€ÐµÐºÑƒÑ€Ñивного виклику неÑвного правила.\n"
+
+#: implicit.c:486
+#, c-format
+msgid "Stem too long: '%.*s'.\n"
+msgstr "Занадто довгий шаблон: «%.*s».\n"
#: implicit.c:491
#, c-format
-msgid "Trying pattern rule with stem `%.*s'.\n"
-msgstr "óÐÒÏÂÁ ÚÁÓÔÏÓÕ×ÁÎÎÑ ÐÒÁ×ÉÌÁ Ú¦ ÚÒÁÚËÏÍ, ÏÓÎÏ×Á \"%.*s\".\n"
+msgid "Trying pattern rule with stem '%.*s'.\n"
+msgstr "Спроба заÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð° зі зразком, оÑнова \"%.*s\".\n"
-#: implicit.c:674
-#, fuzzy, c-format
-msgid "Rejecting impossible rule prerequisite `%s'.\n"
-msgstr "÷¦ÄËÉÄÁÎÎÑ ÎÅÍÏÖÌÉ×ϧ %s ÚÁÌÅÖÎÏÓÔ¦ \"%s\".\n"
+#: implicit.c:697
+#, c-format
+msgid "Rejecting impossible rule prerequisite '%s'.\n"
+msgstr "Ð’Ñ–Ð´ÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾Ñ— залежноÑÑ‚Ñ– правила «%s».\n"
-#: implicit.c:675
-#, fuzzy, c-format
-msgid "Rejecting impossible implicit prerequisite `%s'.\n"
-msgstr "÷¦ÄËÉÄÁÎÎÑ ÎÅÍÏÖÌÉ×ϧ %s ÚÁÌÅÖÎÏÓÔ¦ \"%s\".\n"
+#: implicit.c:698
+#, c-format
+msgid "Rejecting impossible implicit prerequisite '%s'.\n"
+msgstr "Ð’Ñ–Ð´ÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾Ñ— неÑвної залежноÑÑ‚Ñ– «%s».\n"
-#: implicit.c:688
+#: implicit.c:711
#, c-format
-msgid "Trying rule prerequisite `%s'.\n"
-msgstr "ðÒÏÂÕÀ ÚÁÌÅÖΦÓÔØ ÐÒÁ×ÉÌÏ \"%s\".\n"
+msgid "Trying rule prerequisite '%s'.\n"
+msgstr "Пробую залежніÑÑ‚ÑŒ правило \"%s\".\n"
-#: implicit.c:689
+#: implicit.c:712
#, c-format
-msgid "Trying implicit prerequisite `%s'.\n"
-msgstr "ðÒÏÂÕÀ ÎÅÑ×Φ ÚÁÌÅÖÎÏÓÔ¦ \"%s\".\n"
+msgid "Trying implicit prerequisite '%s'.\n"
+msgstr "Пробую неÑвні залежноÑÑ‚Ñ– \"%s\".\n"
-#: implicit.c:728
+#: implicit.c:751
#, c-format
-msgid "Found prerequisite `%s' as VPATH `%s'\n"
-msgstr ""
+msgid "Found prerequisite '%s' as VPATH '%s'\n"
+msgstr "ВиÑвлено залежніÑÑ‚ÑŒ «%s» у форматі VPATH «%s»\n"
-#: implicit.c:742
+#: implicit.c:765
#, c-format
-msgid "Looking for a rule with intermediate file `%s'.\n"
-msgstr "ðÏÛÕË ÐÒÁ×ÉÌÁ Ú ÐÒÏͦÖÎÉÍ ÆÁÊÌÏÍ \"%s\".\n"
+msgid "Looking for a rule with intermediate file '%s'.\n"
+msgstr "Пошук правила з проміжним файлом \"%s\".\n"
-#: job.c:335
-#, fuzzy
+#: job.c:361
msgid "Cannot create a temporary file\n"
-msgstr "fwrite (ÔÉÍÞÁÓÏ×ÉÊ ÆÁÊÌ)"
+msgstr "Ðе вдалоÑÑ Ñтворити тимчаÑовий файл\n"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "[%s] ðÏÍÉÌËÁ 0x%x (ÐÒϦÇÎÏÒÏ×ÁÎÁ)"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (зроблений дамп пам'ÑÑ‚Ñ–)"
+
+#: job.c:487
+msgid " (ignored)"
+msgstr " (ігноруєтьÑÑ)"
+
+#: job.c:491 job.c:1994
+msgid "<builtin>"
+msgstr "<вбудований>"
-#: job.c:450
+#: job.c:501
#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] ðÏÍÉÌËÁ 0x%x"
+msgid "%s: recipe for target '%s' failed"
+msgstr "%s: Ñпроба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñ€ÐµÑ†ÐµÐ¿Ñ‚Ð° Ð´Ð»Ñ Ð¼ÐµÑ‚Ð¸ «%s» зазнала невдачі"
-#: job.c:454
+#: job.c:510
#, c-format
-msgid "[%s] Error %d (ignored)"
-msgstr "[%s] ðÏÍÉÌËÁ %d (¦ÇÎÏÒÏ×ÁÎÁ)"
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Помилка 0x%x%s"
-#: job.c:455
+#: job.c:513
#, c-format
-msgid "*** [%s] Error %d"
-msgstr "*** [%s] ðÏÍÉÌËÁ %d"
+msgid "%s[%s] Error %d%s"
+msgstr "%s[%s] Помилка %d%s"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (ÚÒÏÂÌÅÎÉÊ ÄÁÍÐ ÐÁÍ'ÑÔ¦)"
+#: job.c:517
+#, c-format
+msgid "%s[%s] %s%s%s"
+msgstr "%s[%s] %s%s%s"
-#: job.c:549
+#: job.c:609
msgid "*** Waiting for unfinished jobs...."
-msgstr "*** ïÞ¦ËÕ×ÁÎÎÑ ÚÁ×ÅÒÛÅÎÎÑ ÚÁ×ÄÁÎØ..."
+msgstr "*** ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½ÑŒ..."
-#: job.c:579
-#, fuzzy, c-format
+#: job.c:639
+#, c-format
msgid "Live child %p (%s) PID %s %s\n"
-msgstr "îÅÚÁ×ÅÒÛÅÎÉÊ ÎÁÝÁÄÏË 0x%08lx (%s) PID %ld %s\n"
+msgstr "Ðезавершений дочірній Ð¿Ñ€Ð¾Ñ†ÐµÑ %p (%s) PID %s %s\n"
-#: job.c: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 " (צÄÄÁÌÅÎÉÊ)"
+msgstr " (віддалений)"
-#: job.c:758
-#, fuzzy, c-format
+#: job.c:829
+#, c-format
msgid "Reaping losing child %p PID %s %s\n"
-msgstr "ïÂÒÏÂËÁ ÒÅÚÕÌØÔÁÔ¦× %s ÐÒÁæ ÎÁÝÁÄËÁ 0x%08lx PID %d%s\n"
+msgstr "Підбираємо невдалий дочірній Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· PID %p %s %s\n"
-#: job.c:759
-#, fuzzy, c-format
+#: job.c:830
+#, c-format
msgid "Reaping winning child %p PID %s %s\n"
-msgstr "ïÂÒÏÂËÁ ÒÅÚÕÌØÔÁÔ¦× %s ÐÒÁæ ÎÁÝÁÄËÁ 0x%08lx PID %d%s\n"
+msgstr "Підбираємо вдалий дочірній Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· PID %p %s %s\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
-msgstr "úÎÉÝÅÎÎÑ ÔÉÍÞÁÓÏ×ÏÇÏ ËÏÍÁÎÄÎÏÇÏ ÆÁÊÌÕ %s\n"
+msgstr "Ð—Ð½Ð¸Ñ‰ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¼Ñ‡Ð°Ñового командного файла %s\n"
-#: job.c:861
-#, fuzzy, c-format
+#: job.c:843
+#, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr ""
+"Спроба Ð²Ð¸Ñ‚Ð¸ÐºÐ°Ð½Ð½Ñ Ñ‚Ð¸Ð¼Ñ‡Ð°Ñового файла пакетної обробки %s зазнала невдачі (%d)\n"
+
+#: job.c:949
+#, c-format
msgid "Removing child %p PID %s%s from chain.\n"
-msgstr "÷ÉÄÁÌÅÎÎÑ ÎÁÝÁÄËÁ 0x%08lx PID %d%s Ú ÌÁÎÃÀÖËÁ ÁËÔÉ×ÎÉÈ ÎÁÝÁÄ˦×.\n"
+msgstr "Вилучаємо PID дочірнього процеÑу %p %s%s з ланцюжка.\n"
-#: job.c:920
-msgid "write jobserver"
-msgstr ""
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr "ÑпуÑкаємо Ñемафор Ñервера завдань: (Помилка %ld: %s)"
-#: job.c:922
-#, fuzzy, c-format
+#: job.c:1011 job.c:1025
+#, c-format
msgid "Released token for child %p (%s).\n"
-msgstr "ïÂÒÏÂËÁ ÒÅÚÕÌØÔÁÔ¦× %s ÐÒÁæ ÎÁÝÁÄËÁ 0x%08lx PID %d%s\n"
+msgstr "Звільнено Ñимвол Ð´Ð»Ñ Ð´Ð¾Ñ‡Ñ–Ñ€Ð½ÑŒÐ¾Ð³Ð¾ процеÑу %p (%s).\n"
+
+#: job.c:1023
+msgid "write jobserver"
+msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ Ñервера завдань"
-#: job.c:1453 job.c:2094
+#: job.c:1612 job.c:2332
#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
-msgstr ""
+msgstr "process_easy() не вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити Ð¿Ñ€Ð¾Ñ†ÐµÑ (e=%ld)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
"Counted %d args in failed launch\n"
msgstr ""
+"\n"
+"Під Ñ‡Ð°Ñ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾Ð³Ð¾ запуÑку кількіÑÑ‚ÑŒ аргументів дорівнювала %d\n"
-#: job.c:1525
-#, fuzzy, c-format
+#: job.c:1685
+#, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
-msgstr "÷ÓÔÁ×ÌÑÀ ÎÁÝÁÄËÁ 0x%08lx PID %d%s Õ ÌÁÎÃÀÖÏË ÁËÔÉ×ÎÉÈ ÎÁÝÁÄ˦×.\n"
+msgstr "Додаємо дочірній Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· PID %p (%s) %s%s до ланцюжка.\n"
-#: job.c:1778
-#, fuzzy, c-format
+#: job.c:1953
+#, c-format
+msgid "semaphore or child process wait: (Error %ld: %s)"
+msgstr "Ð¾Ñ‡Ñ–ÐºÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñемафора або дочірнього процеÑу: (помилка %ld: %s)"
+
+#: job.c:1967
+#, c-format
msgid "Obtained token for child %p (%s).\n"
-msgstr "ïÂÒÏÂËÁ ÒÅÚÕÌØÔÁÔ¦× %s ÐÒÁæ ÎÁÝÁÄËÁ 0x%08lx PID %d%s\n"
+msgstr "Отримано Ñимвол Ð´Ð»Ñ Ð´Ð¾Ñ‡Ñ–Ñ€Ð½ÑŒÐ¾Ð³Ð¾ процеÑу %p (%s).\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
-msgstr ""
+msgstr "читаємо запиÑи з потоку завдань"
-#: job.c:1798
+#: job.c:2003
#, c-format
-msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
-msgstr ""
+msgid "%s: target '%s' does not exist"
+msgstr "%s: мети «%s» не Ñ–Ñнує"
-#: job.c:1802
-#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "îÅÍÁ ÎÅÏÂȦÄÎÏÓÔ¦ ÐÅÒÅÚÂÉÒÁÔÉ Ã¦ÌØ \"%s\".\n"
+#: job.c:2005
+#, c-format
+msgid "%s: update target '%s' due to: %s"
+msgstr "%s: Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¼ÐµÑ‚Ð¸ «%s» з такої причини: %s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
msgstr ""
-"ÃÑ ÏÐÅÒÁæÊÎÁ ÓÉÓÔÅÍÁ ÎÅ ÄÏÚ×ÏÌѤ ×ÓÔÁÎÏ×ÌÀ×ÁÔÉ ÏÂÍÅÖÅÎÎÑ ÎÁ ÚÁ×ÁÎÔÁÖÅÎÎÑ"
+"Ñ†Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ð¹Ð½Ð° ÑиÑтема не дозволÑÑ” вÑтановлювати Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° завантаженнÑ"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
-msgstr "ÎÅÍÏÖÌÉ×Ï ×ÓÔÁÎÏ×ÉÔÉ ÏÂÍÅÖÅÎÎÑ ÎÁ ÚÁ×ÁÎÔÁÖÅÎÎÑ: "
+msgstr "неможливо вÑтановити Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° завантаженнÑ: "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
-msgstr ""
+msgstr "не виÑтачає файлових деÑкрипторів: не вдалоÑÑ Ð·Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ñ‚Ð¸ stdin\n"
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
-msgstr ""
+msgstr "не виÑтачає файлових деÑкрипторів: не вдалоÑÑ Ð·Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ñ‚Ð¸ stdout\n"
-#: job.c:2015
+#: job.c:2223
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr "не виÑтачає файлових деÑкрипторів: не вдалоÑÑ Ð·Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ñ‚Ð¸ stderr\n"
+
+#: job.c:2238
msgid "Could not restore stdin\n"
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ stdin\n"
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ stdout\n"
+
+#: job.c:2254
+msgid "Could not restore stderr\n"
+msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ stderr\n"
-#: job.c:2127
+#: job.c:2365
#, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
msgstr ""
+"make підібрано дочірній Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· pid %s, Ñкий вÑе ще чекає на Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ "
+"процеÑу з pid %s\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
-msgstr "%s: ëÏÍÁÎÄÁ ÎÅ ÚÎÁÊÄÅÎÁ"
+msgstr "%s: Команда не знайдена"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
-msgstr "%s: ëÏÍÁÎÄÎÉÊ ÐÒÏÃÅÓÏÒ ÎÅ ÚÎÁÊÄÅÎÉÊ"
+msgstr "%s: Командний процеÑор не знайдений"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
-msgstr ""
+msgstr "spawnvpe: ймовірно, завершилоÑÑ Ð¼Ñ–Ñце у Ñередовищі"
-#: job.c:2461
-#, fuzzy, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
-msgstr "$SHELL ÚͦÎÅÎÏ (ÂÕÌÏ \"%s\", ÔÅÐÅÒ \"%s\")"
+#: job.c:2709
+#, c-format
+msgid "$SHELL changed (was '%s', now '%s')\n"
+msgstr "$SHELL змінено (було «%s», тепер «%s»)\n"
-#: job.c:2951
-#, fuzzy, c-format
+#: job.c:3140 job.c:3325
+#, c-format
msgid "Creating temporary batch file %s\n"
-msgstr "fopen (ÔÉÍÞÁÓÏ×ÉÊ ÆÁÊÌ)"
+msgstr "Створюємо тимчаÑовий пакетний файл %s\n"
-#: job.c:2963
+#: job.c:3148
+msgid ""
+"Batch file contents:\n"
+"\t@echo off\n"
+msgstr ""
+"ВміÑÑ‚ файла пакетної обробки:\n"
+"\t@echo off\n"
+
+#: job.c:3337
#, c-format
msgid ""
"Batch file contents:%s\n"
"\t%s\n"
msgstr ""
+"ВміÑÑ‚ пакетного файла:%s\n"
+"\t%s\n"
-#: job.c:3065
+#: job.c:3444
#, c-format
msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
-msgstr "%s (ÒÑÄÏË %d) ðÏÇÁÎÉÊ ËÏÎÔÅËÓÔ ÏÂÏÌÎÉË (!unixy && !batch_mode_shell)\n"
+msgstr ""
+"%s (Ñ€Ñдок %d) Поганий контекÑÑ‚ оболонки (!unixy && !batch_mode_shell)\n"
-#: main.c:303
+#: job.h:43
+msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
+msgstr ""
+"-O[ТИП] (--output-sync[=ТИП]) Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ ÑеанÑу Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð½Ðµ налаштовано."
+
+#: load.c:53
+#, c-format
+msgid "Failed to open global symbol table: %s"
+msgstr "Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ таблицю загальних Ñимволів: %s"
+
+#: load.c:87
+#, c-format
+msgid "Loaded object %s is not declared to be GPL compatible"
+msgstr "Завантажений об’єкт %s не оголошено Ñк ÑуміÑний з GPL"
+
+#: load.c:92
+#, c-format
+msgid "Failed to load symbol %s from %s: %s"
+msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ Ñимвол %s з %s: %s"
+
+#: load.c:136
+#, c-format
+msgid "Empty symbol name for load: %s"
+msgstr "ÐŸÐ¾Ñ€Ð¾Ð¶Ð½Ñ Ð½Ð°Ð·Ð²Ð° Ñимволу Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ: %s"
+
+#: load.c:191
+#, c-format
+msgid "Loading symbol %s from %s\n"
+msgstr "Завантажуємо Ñимвол %s з %s\n"
+
+#: load.c:229
+msgid "The 'load' operation is not supported on this platform."
+msgstr "Ðа цій платформі Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ñ–Ñ— «load» не передбачено."
+
+#: main.c:312
msgid "Options:\n"
-msgstr "ëÌÀÞ¦:\n"
+msgstr "Ключі:\n"
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
-msgstr ""
+msgstr " -b, -m ІгноруєтьÑÑ, Ð´Ð»Ñ ÑуміÑноÑÑ‚Ñ–.\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
-msgstr ""
+msgstr " -B, --always-make безумовно оброблÑти вÑÑ– запиÑи мети.\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
msgstr ""
+" -C КÐТÐЛОГ, --directory=КÐТÐЛОГ\n"
+" Перейти до каталогу до Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð±ÑƒÐ´ÑŒ-Ñких "
+"дій.\n"
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
-msgstr ""
+msgstr " -d ВивеÑти діагноÑтичні повідомленнÑ.\n"
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
+" --debug[=ПРÐПОРЦІ] ВивеÑти діагноÑтичні Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¸Ñ… "
+"типів.\n"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
msgstr ""
+" -e, --environment-overrides\n"
+" Змінні Ñередовища мають вищий пріоритет за "
+"змінні makefile.\n"
-#: main.c:318
+#: main.c:327
msgid ""
" --eval=STRING Evaluate STRING as a makefile statement.\n"
-msgstr ""
+msgstr " --eval=РЯДОК Обробити РЯДОК Ñк інÑтрукцію makefile.\n"
-#: main.c:320
+#: main.c:329
msgid ""
" -f FILE, --file=FILE, --makefile=FILE\n"
" Read FILE as a makefile.\n"
msgstr ""
+" -f ФÐЙЛ, --file=ФÐЙЛ, --makefile=ФÐЙЛ\n"
+" ВикориÑтати ФÐЙЛ Ñк makefile.\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
-msgstr ""
+msgstr " -h, --help ВивеÑти це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ– вийти.\n"
-#: main.c:325
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
msgstr ""
+" -i, --ignore-errors Ігнорувати помилки від ÑпоÑобів збираннÑ.\n"
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
msgstr ""
+" -I КÐТÐЛОГ, --include-dir=КÐТÐЛОГ\n"
+" Виконати пошук включених makefile у каталозі.\n"
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
msgstr ""
+" -j [N], --jobs[=N] Виконувати одночаÑно N завдань; Ñкщо не "
+"вказано — необмежену кількіÑÑ‚ÑŒ.\n"
-#: main.c:332
+#: main.c:341
msgid ""
" -k, --keep-going Keep going when some targets can't be made.\n"
msgstr ""
+" -k, --keep-going Продовжувати роботу, Ñкщо Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ ÑкоїÑÑŒ мети "
+"неможливе.\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 "
"N.\n"
msgstr ""
+" -l [N], --load-average[=N], --max-load[=N]\n"
+" Ðе запуÑкати декількох завдань, Ñкщо "
+"Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑ” N.\n"
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
msgstr ""
+" -L, --check-symlink-times ВикориÑтовувати новіший Ñ‡Ð°Ñ Ð·Ð¼Ñ–Ð½Ð¸ з чаÑів "
+"зміни поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñ– мети.\n"
-#: main.c:339
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
"them.\n"
msgstr ""
+" -n, --just-print, --dry-run, --recon\n"
+" Ðе заÑтоÑовувати ÑпоÑобів збираннÑ, проÑто "
+"вивеÑти назви ÑпоÑобів.\n"
-#: main.c:342
+#: main.c:351
msgid ""
" -o FILE, --old-file=FILE, --assume-old=FILE\n"
" Consider FILE to be very old and don't remake "
"it.\n"
msgstr ""
+" -o ФÐЙЛ, --old-file=ФÐЙЛ, --assume-old=ФÐЙЛ\n"
+" Вважати ФÐЙЛ дуже Ñтарим Ñ– не виконувати його "
+"повторного збираннÑ.\n"
-#: main.c:345
-msgid " -p, --print-data-base Print make's internal database.\n"
+#: main.c:354
+msgid ""
+" -O[TYPE], --output-sync[=TYPE]\n"
+" Synchronize output of parallel jobs by TYPE.\n"
msgstr ""
+" -O[ТИП], --output-sync[=ТИП]\n"
+" Ñинхронізувати виведені дані паралельних "
+"завдань за ТИПом.\n"
-#: main.c:347
-#, fuzzy
+#: main.c:357
+msgid " -p, --print-data-base Print make's internal database.\n"
+msgstr " -p, --print-data-base ВивеÑти внутрішню базу даних make.\n"
+
+#: main.c:359
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
-msgstr "îÅ ×ÉËÏÎÕ×ÁÔÉ ËÏÍÁÎÄÉ, ËÏÄ ÚÁ×ÅÒÛÅÎÎÑ ÐÏËÁÖÅ ÞÉ ÏÎÏ×ÌÅÎÏ"
+msgstr ""
+" -q, --question не заÑтоÑовувати жодних "
+"ÑпоÑобів; код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¿Ð¾ÐºÐ°Ð·ÑƒÑ”, чи вÑе вже "
+"зроблено.\n"
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
-msgstr ""
+msgstr " -r, --no-builtin-rules Вимкнути вбудовані неÑвні правила.\n"
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
-msgstr ""
+msgstr " -R, --no-builtin-variables Вимкнути вбудовані параметри змінних.\n"
-#: main.c:353
+#: main.c:365
msgid " -s, --silent, --quiet Don't echo recipes.\n"
-msgstr ""
+msgstr " -s, --silent, --quiet Ðе виводити ÑпоÑоби збираннÑ.\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
msgstr ""
+" -S, --no-keep-going, --stop\n"
+" Вимкнути -k.\n"
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr ""
+" -t, --touch Змінювати Ñ‡Ð°Ñ Ð´Ð¾Ñтупу до мети заміÑÑ‚ÑŒ Ñ—Ñ— "
+"повторного збираннÑ.\n"
+
+#: main.c:372
+msgid " --trace Print tracing information.\n"
+msgstr " --trace ВивеÑти дані щодо траÑуваннÑ.\n"
-#: main.c:360
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
-msgstr ""
+msgstr " -v, --version ВивеÑти дані щодо верÑÑ–Ñ— make Ñ– вийти.\n"
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
-msgstr ""
+msgstr " -w, --print-directory Виводити дані щодо поточного каталогу.\n"
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
msgstr ""
+" --no-print-directory Вимкнути -w, навіть Ñкщо Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð±ÑƒÐ»Ð¾ "
+"виконано неÑвним чином.\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"
msgstr ""
+" -W ФÐЙЛ, --what-if=ФÐЙЛ, --new-file=ФÐЙЛ, --assume-new=ФÐЙЛ\n"
+" Вважати ФÐЙЛ завжди новим.\n"
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
msgstr ""
+" --warn-undefined-variables Попереджати про поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° невизначену "
+"змінну.\n"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
-msgstr "ÐÏÒÏÖÎ¦Ê ÒÑÄÏË ÎÅÐÒÉÐÕÓÔÉÍÉÊ Õ ÑËÏÓÔ¦ ¦ÍÅΦ ÆÁÊÌÕ"
+msgstr "порожній Ñ€Ñдок не може бути назвою файла"
-#: main.c:650
+#: main.c:734
#, c-format
-msgid "unknown debug level specification `%s'"
-msgstr ""
+msgid "unknown debug level specification '%s'"
+msgstr "невідома ÑÐ¿ÐµÑ†Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Ñ€Ñ–Ð²Ð½Ñ Ð´Ñ–Ð°Ð³Ð½Ð¾Ñтики, «%s»"
+
+#: main.c:777
+#, c-format
+msgid "unknown output-sync type '%s'"
+msgstr "невідомий тип Ñинхронізації виведених даних, «%s»"
+
+#: main.c:787
+msgid "internal error: multiple --sync-mutex options"
+msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: вказано декілька параметрів --sync-mutex"
-#: main.c:690
+#: main.c:848
#, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
-msgstr ""
+msgstr "%s: ÑталоÑÑ Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ (код = 0x%lx, адреÑа = 0x%p)\n"
-#: main.c:697
+#: main.c:855
#, c-format
msgid ""
"\n"
@@ -897,199 +1100,237 @@ msgid ""
"ExceptionFlags = %lx\n"
"ExceptionAddress = 0x%p\n"
msgstr ""
+"\n"
+"З програми %s викликано фільтр непридатних до обробки виключень\n"
+"Код Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ = %lx\n"
+"Прапорці Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ = %lx\n"
+"ÐдреÑа Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ = 0x%p\n"
-#: main.c:705
+#: main.c:863
#, c-format
msgid "Access violation: write operation at address 0x%p\n"
-msgstr ""
+msgstr "ÐŸÐ¾Ñ€ÑƒÑˆÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð» доÑтупу: Ð´Ñ–Ñ Ð· запиÑу за адреÑою 0x%p\n"
-#: main.c:706
+#: main.c:864
#, c-format
msgid "Access violation: read operation at address 0x%p\n"
-msgstr ""
+msgstr "ÐŸÐ¾Ñ€ÑƒÑˆÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð» доÑтупу: Ð´Ñ–Ñ Ð· Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð·Ð° адреÑою 0x%p\n"
-#: main.c:781 main.c:792
+#: main.c:940 main.c:955
#, c-format
msgid "find_and_set_shell() setting default_shell = %s\n"
-msgstr ""
+msgstr "find_and_set_shell() вÑтановлює default_shell = %s\n"
-#: main.c:834
+#: main.c:1008
#, c-format
msgid "find_and_set_shell() path search set default_shell = %s\n"
msgstr ""
+"Пошуком шлÑхів find_and_set_shell() вÑтановлено Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ default_shell = %s\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
-msgstr ""
+msgstr "%s призупинÑєтьÑÑ Ð½Ð° 30 Ñекунд..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
-msgstr ""
-
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr ""
-
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr "fopen (ÔÉÍÞÁÓÏ×ÉÊ ÆÁÊÌ)"
+msgstr "виконано sleep(30). Продовжуємо.\n"
-#: main.c:1545
-msgid "fwrite (temporary file)"
-msgstr "fwrite (ÔÉÍÞÁÓÏ×ÉÊ ÆÁÊÌ)"
-
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr ""
+#: main.c:1534
+msgid "internal error: multiple --jobserver-fds options"
+msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: вказано декілька ключів --jobserver-fds"
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
+#: main.c:1544
+#, c-format
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
msgstr ""
+"Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ Ñемафор Ñервера завдань «%s»: "
+"(помилка %ld: %s)"
-#: main.c:1719
-msgid "internal error: multiple --jobserver-fds options"
-msgstr ""
+#: main.c:1547
+#, c-format
+msgid "Jobserver client (semaphore %s)\n"
+msgstr "Клієнт Ñервера завдань (Ñемафор %s)\n"
-#: main.c:1727
+#: main.c:1551
#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
-msgstr ""
+msgid "internal error: invalid --jobserver-fds string '%s'"
+msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: некоректний Ñ€Ñдок --jobserver-fds, «%s»"
-#: main.c:1730
+#: main.c:1554
#, c-format
msgid "Jobserver client (fds %d,%d)\n"
-msgstr ""
+msgstr "Клієнт Ñервера завдань (fd %d,%d)\n"
-#: main.c:1740
+#: main.c:1567
msgid "warning: -jN forced in submake: disabling jobserver mode."
msgstr ""
+"попередженнÑ: у вкладеному файлів Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾ -jN: вимикаємо режим "
+"Ñервера завдань."
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
-msgstr ""
+msgstr "дублюємо Ñервер завдань"
-#: main.c:1753
+#: main.c:1586
msgid ""
-"warning: jobserver unavailable: using -j1. Add `+' to parent make rule."
+"warning: jobserver unavailable: using -j1. Add '+' to parent make rule."
msgstr ""
+"попередженнÑ: Ñервер завдань недоÑтупний: викориÑтовуємо -j1. Додайте «+» до "
+"батьківÑького правила збираннÑ."
+
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "Makefile зі Ñтандартного джерела вхідних даних вказано двічі."
-#: main.c:1777
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (тимчаÑовий файл)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (тимчаÑовий файл)"
+
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr "Ðа цій платформі паралельної обробки завдань (-j) не передбачено."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "ПовертаємоÑÑ Ð´Ð¾ режиму єдиного Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ (-j1)."
+
+#: main.c:2006
+#, c-format
+msgid "Jobserver slots limited to %d\n"
+msgstr "Слоти Ñервера завдань обмежено значеннÑм %d\n"
+
+#: main.c:2012
+#, c-format
+msgid "creating jobserver semaphore: (Error %ld: %s)"
+msgstr "Ñтворюємо Ñемафор Ñервера завдань: (помилка %ld: %s)"
+
+#: main.c:2019
msgid "creating jobs pipe"
-msgstr ""
+msgstr "Ñтворюємо канал завдань"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
-msgstr ""
+msgstr "ініціалізуємо канал Ñервера завдань"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
-msgstr ""
+msgstr "Підтримки Ñимволічних поÑилань не передбачено: вимикаємо -L."
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
-msgstr "ïÎÏ×ÌÅÎÎÑ make-ÆÁÊ̦×...\n"
+msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ make-файлів...\n"
-#: main.c:1917
+#: main.c:2174
#, c-format
-msgid "Makefile `%s' might loop; not remaking it.\n"
-msgstr "Make-ÆÁÊÌ \"%s\", ÍÏÖÌÉ×Ï, ÚÁÃÉËÌÅÎÉÊ, צΠÎÅ ÐÅÒÅÚÂÉÒÁÔÉÍÅÔØÓÑ.\n"
+msgid "Makefile '%s' might loop; not remaking it.\n"
+msgstr "Make-файл \"%s\", можливо, зациклений, він не перезбиратиметьÑÑ.\n"
-#: main.c:1996
+#: main.c:2253
#, c-format
-msgid "Failed to remake makefile `%s'."
-msgstr "óÐÒÏÂÁ ÐÅÒÅÚ¦ÂÒÁÔÉ make-ÆÁÊÌ \"%s\" ÂÅÚÕÓЦÛÎÁ."
+msgid "Failed to remake makefile '%s'."
+msgstr "Спроба перезібрати make-файл \"%s\" безуÑпішна."
-#: main.c:2013
+#: main.c:2270
#, c-format
-msgid "Included makefile `%s' was not found."
-msgstr "Make-ÆÁÊÌ \"%s\", ÑËÉÊ ×ËÌÀÞÁ¤ÔØÓÑ, ÎÅ ÂÕÌÏ ÚÎÁÊÄÅÎÏ."
+msgid "Included makefile '%s' was not found."
+msgstr "Make-файл \"%s\", Ñкий включаєтьÑÑ, не було знайдено."
-#: main.c:2018
+#: main.c:2275
#, c-format
-msgid "Makefile `%s' was not found"
-msgstr "Make-ÆÁÊÌ \"%s\" ÎÅ ÂÕÌÏ ÚÎÁÊÄÅÎÏ"
+msgid "Makefile '%s' was not found"
+msgstr "Make-файл \"%s\" не було знайдено"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
-msgstr "îÅÍÏÖÌÉ×Ï ÐÅÒÅÊÔÉ Õ ÐÅÒצÓÎÉÊ ËÁÔÁÌÏÇ."
+msgstr "Ðеможливо перейти у первіÑний каталог."
-#: main.c:2102
-#, fuzzy, c-format
+#: main.c:2354
+#, c-format
msgid "Re-executing[%u]:"
-msgstr "ðÏ×ÔÏÒÎÅ ×ÉËÏÎÁÎÎÑ:"
+msgstr "Повторне виконаннÑ[%u]:"
-#: main.c:2215
-#, fuzzy
+#: main.c:2463
msgid "unlink (temporary file): "
-msgstr "fopen (ÔÉÍÞÁÓÏ×ÉÊ ÆÁÊÌ)"
+msgstr "unlink (тимчаÑовий файл): "
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
-msgstr ""
+msgstr ".DEFAULT_GOAL міÑтить декілька запиÑів мети"
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
-msgstr "îÅ ÚÁÄÁΦ æ̦ ¦ ÎÅ ÚÎÁÊÄÅÎÉÊ make-ÆÁÊÌ"
+msgstr "Ðе задані цілі Ñ– не знайдений make-файл"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
-msgstr "îÅÍÁ æÌÅÊ"
+msgstr "Ðема цілей"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
-msgstr "ïÎÏ×ÌÅÎÎÑ Ã¦ÌÅÊ ÍÅÔÉ...\n"
+msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ†Ñ–Ð»ÐµÐ¹ мети...\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr ""
+"попередженнÑ: виÑвлено Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾ÐºÐ°Ð·Ñ–Ð² годинника. Ð—Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ бути "
+"неповним."
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
-msgstr "÷ÉËÏÒÉÓÔÁÎÎÑ: %s [ëìàþ¶]... [ã¶ìø]...\n"
+msgstr "ВикориÑтаннÑ: %s [КЛЮЧІ]... [ЦІЛЬ]...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
"This program built for %s\n"
msgstr ""
+"\n"
+"Цю програму зібрано Ð´Ð»Ñ %s\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
"This program built for %s (%s)\n"
msgstr ""
+"\n"
+"Цю програму зібрано Ð´Ð»Ñ %s (%s)\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
-msgstr "ðÏצÄÏÍÌÀÊÔÅ ÐÒÏ ÐÏÍÉÌËÉ ÄÏ <bug-make@gnu.org>\n"
+msgstr "Повідомлюйте про помилки до <bug-make@gnu.org>\n"
-#: main.c:2562
-#, fuzzy, c-format
-msgid "the `%s%s' option requires a non-empty string argument"
-msgstr "ËÌÀÞ \"-%c\" ÐÏ×ÉÎÅÎ ×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉÓÑ Ú Ã¦ÌÉÍ ÐÏÚÉÔÉ×ÎÉÍ ÁÒÇÕÍÅÎÔÏÍ"
+#: main.c:2810
+#, c-format
+msgid "the '%s%s' option requires a non-empty string argument"
+msgstr "разом з «%s%s» мало бути вказано непорожній Ñ€Ñдковий аргумент"
-#: main.c:2617
+#: main.c:2864
#, c-format
-msgid "the `-%c' option requires a positive integral argument"
-msgstr "ËÌÀÞ \"-%c\" ÐÏ×ÉÎÅÎ ×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉÓÑ Ú Ã¦ÌÉÍ ÐÏÚÉÔÉ×ÎÉÍ ÁÒÇÕÍÅÎÔÏÍ"
+msgid "the '-%c' option requires a positive integer argument"
+msgstr "ключ \"-%c\" повинен викориÑтовуватиÑÑ Ð· цілим додатним аргументом"
-#: main.c:3054
+#: main.c:3253
#, c-format
msgid "%sBuilt for %s\n"
-msgstr ""
+msgstr "%sЗібрано Ð´Ð»Ñ %s\n"
-#: main.c:3056
+#: main.c:3255
#, c-format
msgid "%sBuilt for %s (%s)\n"
-msgstr ""
+msgstr "%sЗібрано Ð´Ð»Ñ %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."
@@ -1097,1067 +1338,928 @@ msgid ""
"%sThis is free software: you are free to change and redistribute it.\n"
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
+"%sУмови Ð»Ñ–Ñ†ÐµÐ½Ð·ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ»Ð°Ð´ÐµÐ½Ð¾ у GPLv3+: GNU GPL верÑÑ–Ñ— 3 або новішій, "
+"<http://gnu.org/licenses/gpl.html>\n"
+"%sЦе вільне програмне забезпеченнÑ: ви можете вільно змінювати Ñ– поширювати "
+"його.\n"
+"%sВам не надаєтьÑÑ Ð–ÐžÐ”ÐИХ ГÐРÐÐТІЙ, окрім гарантій передбачених "
+"законодавÑтвом.\n"
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
"# Make data base, printed on %s"
msgstr ""
"\n"
-"# âÁÚÁ ÄÁÎÉÈ Make, ÎÁÄÒÕËÏ×ÁÎÁ %s"
+"# База даних Make, надрукована %s"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
"# Finished Make data base on %s\n"
msgstr ""
"\n"
-"# äÒÕË ÂÁÚÉ ÄÁÎÉÈ Make ÚÁ×ÅÒÛÅÎÏ %s\n"
+"# Друк бази даних Make завершено %s\n"
-#: main.c:3237
-#, fuzzy, c-format
-msgid "%s: Entering an unknown directory\n"
-msgstr "%s: ÷ÈÏÖÕ Õ ÎÅצÄÏÍÉÊ ËÁÔÁÌÏÇ"
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "Ðевідома помилка %d"
-#: main.c:3239
-#, fuzzy, c-format
-msgid "%s: Leaving an unknown directory\n"
-msgstr "%s: úÁÌÉÛÁÀ ÎÅצÄÏÍÉÊ ËÁÔÁÌÏÇ"
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "віртуальна пам'ÑÑ‚ÑŒ вичерпана"
-#: main.c:3242
+#: misc.c:522
#, c-format
-msgid "%s: Entering directory `%s'\n"
-msgstr "%s: ÷ÈÏÖÕ Õ ËÁÔÁÌÏÇ \"%s\"\n"
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s: кориÑтувач %lu (наÑправді %lu), група %lu (наÑправді %lu)\n"
-#: main.c:3245
-#, c-format
-msgid "%s: Leaving directory `%s'\n"
-msgstr "%s: úÁÌÉÛÁÀ ËÁÔÁÌÏÇ \"%s\"\n"
+#: misc.c:543
+msgid "Initialized access"
+msgstr "Ініціалізований доÑтуп"
-#: main.c:3250
-#, fuzzy, c-format
-msgid "%s[%u]: Entering an unknown directory\n"
-msgstr "%s[%u]: ÷ÈÏÖÕ Õ ÎÅצÄÏÍÉÊ ËÁÔÁÌÏÇ "
+#: misc.c:622
+msgid "User access"
+msgstr "ДоÑтуп кориÑтувача"
-#: main.c:3253
-#, fuzzy, c-format
-msgid "%s[%u]: Leaving an unknown directory\n"
-msgstr "%s[%u]: úÁÌÉÛÁÀ ÎÅצÄÏÍÉÊ ËÁÔÁÌÏÇ"
+#: misc.c:670
+msgid "Make access"
+msgstr "ДоÑтуп make"
-#: main.c:3257
-#, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
-msgstr "%s[%u]: ÷ÈÏÖÕ Õ ËÁÔÁÌÏÇ \"%s\"\n"
+#: misc.c:704
+msgid "Child access"
+msgstr "ДоÑтуп дочірнього процеÑу"
-#: main.c:3260
+#: output.c:128
#, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
-msgstr "%s[%u]: úÁÌÉÛÁÀ ËÁÔÁÌÏÇ \"%s\"\n"
+msgid "%s: Entering an unknown directory\n"
+msgstr "%s: входимо до невідомого каталогу\n"
-#: misc.c:316
-msgid ". Stop.\n"
-msgstr ". úÕÐÉÎËÁ.\n"
+#: output.c:130
+#, c-format
+msgid "%s: Leaving an unknown directory\n"
+msgstr "%s: виходимо з невідомого каталогу\n"
-#: misc.c:337
+#: output.c:133
#, c-format
-msgid "Unknown error %d"
-msgstr "îÅצÄÏÍÁ ÐÏÍÉÌËÁ %d"
+msgid "%s: Entering directory '%s'\n"
+msgstr "%s: входимо до каталогу «%s»\n"
-#: misc.c:347
+#: output.c:135
#, c-format
-msgid "%s%s: %s"
-msgstr "%s%s: %s"
+msgid "%s: Leaving directory '%s'\n"
+msgstr "%s: Залишаю каталог \"%s\"\n"
-#: misc.c:355
+#: output.c:139
#, c-format
-msgid "%s: %s"
-msgstr "%s: %s"
+msgid "%s[%u]: Entering an unknown directory\n"
+msgstr "%s[%u]: входимо до невідомого каталогу\n"
-#: misc.c:376 misc.c:387 misc.c:402 misc.c:419 misc.c:438 read.c:3118
-msgid "virtual memory exhausted"
-msgstr "צÒÔÕÁÌØÎÁ ÐÁÍ'ÑÔØ ×ÉÞÅÒÐÁÎÁ"
+#: output.c:141
+#, c-format
+msgid "%s[%u]: Leaving an unknown directory\n"
+msgstr "%s[%u]: залишаємо невідомий каталог\n"
-#: misc.c:708
+#: output.c:144
#, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr ""
+msgid "%s[%u]: Entering directory '%s'\n"
+msgstr "%s[%u]: входимо до каталогу «%s»\n"
-#: misc.c:729
-msgid "Initialized access"
-msgstr ""
+#: output.c:146
+#, c-format
+msgid "%s[%u]: Leaving directory '%s'\n"
+msgstr "%s[%u]: Залишаю каталог \"%s\"\n"
-#: misc.c:808
-msgid "User access"
-msgstr "äÏÓÔÕÐ ËÏÒÉÓÔÕ×ÁÞÁ"
+#: output.c:515
+#, c-format
+msgid "write error: %s"
+msgstr "помилка запиÑу: %s"
-#: misc.c:856
-msgid "Make access"
-msgstr ""
+#: output.c:517
+msgid "write error"
+msgstr "помилка запиÑу"
-#: misc.c:890
-msgid "Child access"
-msgstr ""
+#: output.c:740
+msgid ". Stop.\n"
+msgstr ". Зупинка.\n"
-#: misc.c:954
-#, fuzzy, c-format
-msgid "write error: %s"
-msgstr "ËÁÔÁÌÏÇ \"%s\"\n"
+#: output.c:751
+#, c-format
+msgid "%s%s: %s"
+msgstr "%s%s: %s"
-#: misc.c:956
-#, fuzzy
-msgid "write error"
-msgstr "ðÏÍÉÌËÁ ÎÁ ÛÉΦ"
+#: output.c:759
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
-#: read.c:179
-#, fuzzy
+#: read.c:180
msgid "Reading makefiles...\n"
-msgstr "þÉÔÁÎÎÑ make-ÆÁÊ̦×..."
+msgstr "Ð§Ð¸Ñ‚Ð°Ð½Ð½Ñ make-файлів...\n"
#: read.c:333
#, c-format
-msgid "Reading makefile `%s'"
-msgstr "þÉÔÁÎÎÑ make-ÆÁÊÌÕ \"%s\""
+msgid "Reading makefile '%s'"
+msgstr "Ð§Ð¸Ñ‚Ð°Ð½Ð½Ñ make-файла \"%s\""
#: read.c:335
#, c-format
msgid " (no default goal)"
-msgstr " (ÎÅÍÁ¤ ÍÅÔÉ ÚÁ ÚÁÍÏ×ÞÕ×ÁÎÎÑÍ)"
+msgstr " (немає типової мети)"
#: read.c:337
#, c-format
msgid " (search path)"
-msgstr " (ÛÌÑÈ ÐÏÛÕËÕ)"
+msgstr " (шлÑÑ… пошуку)"
#: read.c:339
#, c-format
msgid " (don't care)"
-msgstr " (ÎÅ Ú×ÁÖÁÔÉ)"
+msgstr " (не зважати)"
#: read.c:341
#, c-format
msgid " (no ~ expansion)"
-msgstr " (ÎÅ ÒÏÚÛÉÒÀ×ÁÔÉ ~)"
+msgstr " (не розширювати ~)"
-#: read.c:759
+#: read.c:652
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile '%s'\n"
+msgstr "ПропуÑкаємо мітку UTF-8 у файлі makefile «%s»\n"
+
+#: read.c:655
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile buffer\n"
+msgstr "ПропуÑкаємо мітку UTF-8 у буфері файла makefile\n"
+
+#: read.c:786
msgid "invalid syntax in conditional"
-msgstr "ÎÅצÒÎÉÊ ÓÉÎÔÁËÓÉÓ Õ ÕÍÏ×ÎÏÍÕ ×ÉÒÁÖÅÎΦ"
+msgstr "невірний ÑинтакÑÐ¸Ñ Ñƒ умовному вираженні"
-#: read.c:891
-#, fuzzy
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr "%s: не вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸"
+
+#: read.c:987
msgid "recipe commences before first target"
-msgstr "ËÏÍÁÎÄÉ ÚÕÓÔÒ¦ÎÕÔ¦ ÄÏ ÐÅÒÛÏÇÏ ×ÉÚÎÁÞÅÎÎÑ Ã¦Ì¦"
+msgstr "Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑпоÑобу Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð¿Ð¾Ñ‡Ð¸Ð½Ð°Ñ”Ñ‚ÑŒÑÑ Ð´Ð¾ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÑˆÐ¾Ñ— мети"
-#: read.c:940
-#, fuzzy
+#: read.c:1036
msgid "missing rule before recipe"
-msgstr "ÐÅÒÅÄ ËÏÍÁÎÄÁÍÉ ÐÒÏÐÕÝÅÎÅ ÐÒÁ×ÉÌÏ"
+msgstr "пропущено правило до ÑпоÑобу"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
-msgstr "ÐÒÏÐÕÝÅÎÉÊ ÒÏÚĦÌÀ×ÁÞ%s"
+msgstr "пропущений розділювач%s"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
-msgstr ""
+msgstr " (ви хотіли ввеÑти TAB заміÑÑ‚ÑŒ 8 пробілів?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
-msgstr "ÐÒÏÐÕÝÅÎÉÊ ÛÁÂÌÏΠæ̦"
+msgstr "пропущений шаблон цілі"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
-msgstr "ÎÅ ÏÄÉÎ ÛÁÂÌÏΠæ̦"
+msgstr "не один шаблон цілі"
-#: read.c:1169
+#: read.c:1269
#, c-format
-msgid "target pattern contains no `%%'"
-msgstr "ÛÁÂÌÏΠæ̦ ΊͦÓÔÉÔØ \"%%\""
+msgid "target pattern contains no '%%'"
+msgstr "шаблон цілі не міÑтить \"%%\""
-#: read.c:1293
-msgid "missing `endif'"
-msgstr "ÐÒÏÐÕÝÅÎÁ \"endif\""
+#: read.c:1391
+msgid "missing 'endif'"
+msgstr "пропущена \"endif\""
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
-msgstr "ÐÏÒÏÖΤ ¦Í'Ñ ÚͦÎÎϧ"
+msgstr "порожнє ім'Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ—"
-#: read.c:1367
-#, fuzzy
-msgid "extraneous text after `define' directive"
-msgstr "úÁÊ×ÉÊ ÔÅËÓÔ Ð¦ÓÌÑ ÄÉÒÅËÔÉ×É \"endef\""
+#: read.c:1465
+msgid "extraneous text after 'define' directive"
+msgstr "зайвий текÑÑ‚ піÑÐ»Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ð¸ «define»"
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
-msgstr "ÐÒÏÐÕÝÅÎÁ \"endif\", ÎÅÚÁ×ÅÒÛÅÎÁ \"define\""
+#: read.c:1490
+msgid "missing 'endef', unterminated 'define'"
+msgstr "пропущена \"endif\", незавершена \"define\""
-#: read.c:1420
-#, fuzzy
-msgid "extraneous text after `endef' directive"
-msgstr "úÁÊ×ÉÊ ÔÅËÓÔ Ð¦ÓÌÑ ÄÉÒÅËÔÉ×É \"endef\""
+#: read.c:1518
+msgid "extraneous text after 'endef' directive"
+msgstr "зайвий текÑÑ‚ піÑÐ»Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ð¸ «endef»"
-#: read.c:1490
+#: read.c:1589
#, c-format
-msgid "Extraneous text after `%s' directive"
-msgstr "úÁÊ×ÉÊ ÔÅËÓÔ Ð¦ÓÌÑ ÄÉÒÅËÔÉ×É \"%s\""
+msgid "extraneous text after '%s' directive"
+msgstr "зайвий текÑÑ‚ піÑÐ»Ñ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¸Ð²Ð¸ \"%s\""
-#: read.c:1499 read.c:1513
+#: read.c:1598 read.c:1612
#, c-format
-msgid "extraneous `%s'"
-msgstr "ÚÁÊ×Á \"%s\""
+msgid "extraneous '%s'"
+msgstr "зайва \"%s\""
-#: read.c:1518
-msgid "only one `else' per conditional"
-msgstr "× ÕÍÏ×ÎÏÍÕ ×ÉÒÁÚ¦ ÍÏÖÌÉ×Á ÌÉÛÅ ÏÄÎÁ ÄÉÒÅËÔÉ×Á `else'"
+#: read.c:1617
+msgid "only one 'else' per conditional"
+msgstr "в умовному виразі можлива лише одна директива `else'"
-#: read.c:1797
+#: read.c:1892
msgid "Malformed target-specific variable definition"
-msgstr ""
+msgstr "Помилкове Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñпецифічного Ð´Ð»Ñ Ð¼ÐµÑ‚Ð¸ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ—"
-#: read.c:1855
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
-msgstr ""
+msgstr "у ÑпоÑобах Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð½Ðµ можна вказувати залежноÑтей"
-#: read.c:1908
+#: read.c:2009
msgid "mixed implicit and static pattern rules"
-msgstr "ÚͦÛÁΦ ÎÅÑ×Φ ÐÒÁ×ÉÌÁ ¦ ÐÒÁ×ÉÌÁ Ú¦ ÓÔÁÔÉÞÎÉÍÉ ÚÒÁÚËÁÍÉ"
+msgstr "змішані неÑвні правила Ñ– правила зі Ñтатичними зразками"
-#: read.c:1931 read.c:2112
+#: read.c:2032 read.c:2220
msgid "mixed implicit and normal rules"
-msgstr "ÚͦÛÁΦ ÎÅÑ×Φ ¦ Ú×ÉÞÁÊΦ ÐÒÁ×ÉÌÁ"
+msgstr "змішані неÑвні Ñ– звичайні правила"
-#: read.c:1976
+#: read.c:2084
#, c-format
-msgid "target `%s' doesn't match the target pattern"
-msgstr "æÌØ \"%s\" ΊצÄÐÏצÄÁ¤ ÚÒÁÚËÕ Ã¦ÌÅÊ"
+msgid "target '%s' doesn't match the target pattern"
+msgstr "ціль \"%s\" не відповідає зразку цілей"
-#: read.c:1991 read.c:2036
+#: read.c:2099 read.c:2144
#, c-format
-msgid "target file `%s' has both : and :: entries"
-msgstr "æÌØÏ×ÉÊ ÆÁÊÌ \"%s\" ÍÁ¤ ×ÈÏÄÖÅÎÎÑ ¦ Ú \":\", ¦ Ú \"::\" "
+msgid "target file '%s' has both : and :: entries"
+msgstr "цільовий файл \"%s\" має Ð²Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ñ– з \":\", Ñ– з \"::\" "
-#: read.c:1997
+#: read.c:2105
#, c-format
-msgid "target `%s' given more than once in the same rule."
-msgstr "æÌØ \"%s\" ÚÁÚÎÁÞÅÎÁ ÄÅ˦ÌØËÁ ÒÁÚ × ÏÄÎÏÍÕ ÐÒÁ×É̦"
+msgid "target '%s' given more than once in the same rule"
+msgstr "ціль \"%s\" зазначено декілька разів у одному правилі"
-#: read.c:2006
-#, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
-msgstr "ÐÏÐÅÒÅÄÖÅÎÎÑ: ÐÅÒÅËÒÉÔÔÑ ËÏÍÁÎÄ ÄÌÑ Ã¦Ì¦ \"%s\""
+#: read.c:2114
+#, c-format
+msgid "warning: overriding recipe for target '%s'"
+msgstr "попередженнÑ: замінюємо ÑпоÑіб Ð´Ð»Ñ Ð¼ÐµÑ‚Ð¸ «%s»"
-#: read.c:2009
-#, fuzzy, c-format
-msgid "warning: ignoring old recipe for target `%s'"
-msgstr "ÐÏÐÅÒÅÄÖÅÎÎÑ: ¦ÇÎÏÒÕ×ÁÎÎÑ ÓÔÁÒÉÈ ËÏÍÁÎÄ ÄÌÑ Ã¦Ì¦ \"%s\""
+#: read.c:2117
+#, c-format
+msgid "warning: ignoring old recipe for target '%s'"
+msgstr "попередженнÑ: ігноруємо заÑтарілий ÑпоÑіб Ð´Ð»Ñ Ð¼ÐµÑ‚Ð¸ «%s»"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
-msgstr "ÐÏÐÅÒÅÄÖÅÎÎÑ: ÚÕÓÔÒ¦ÎÕÔÉÊ ÓÉÍ×ÏÌ NUL; ¦ÇÎÏÒÕ¤ÔØÓÑ ÄÏ Ë¦ÎÃÑ ÒÑÄËÉ"
+msgstr "попередженнÑ: зуÑтрінутий Ñимвол NUL; ігноруєтьÑÑ Ð´Ð¾ ÐºÑ–Ð½Ñ†Ñ Ñ€Ñдки"
-#: remake.c:234
+#: remake.c:232
#, c-format
-msgid "Nothing to be done for `%s'."
-msgstr "ã¦ÌØ \"%s\" ÎÅ ×ÉÍÁÇÁ¤ ×ÉËÏÎÁÎÎÑ ËÏÍÁÎÄ."
+msgid "Nothing to be done for '%s'."
+msgstr "Ціль \"%s\" не вимагає Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´."
-#: remake.c:235
+#: remake.c:233
#, c-format
-msgid "`%s' is up to date."
-msgstr "\"%s\" ÎÅ ×ÉÍÁÇÁ¤ ÏÎÏ×ÌÅÎÎÑ."
+msgid "'%s' is up to date."
+msgstr "\"%s\" не вимагає оновленнÑ."
-#: remake.c:306
-#, fuzzy, c-format
-msgid "Pruning file `%s'.\n"
-msgstr "÷ÓÅ ÝÅ ÏÎÏ×ÌÀ¤ÔØÓÑ ÆÁÊÌ \"%s\".\n"
+#: remake.c:305
+#, c-format
+msgid "Pruning file '%s'.\n"
+msgstr "Обрізаємо файл «%s».\n"
-#: remake.c:359
+#: remake.c:377
#, c-format
-msgid "%sNo rule to make target `%s'%s"
-msgstr "%sîÅÍÁ ÐÒÁ×ÉÌÁ ÄÌÑ ÓÔ×ÏÒÅÎÎÑ Ã¦Ì¦ \"%s\"%s"
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sÐема правила Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ†Ñ–Ð»Ñ– \"%s\"%s"
-#: remake.c:361
+#: remake.c:379
#, c-format
-msgid "%sNo rule to make target `%s', needed by `%s'%s"
-msgstr "%sîÅÍÁ ÐÒÁ×ÉÌÁ ÄÌÑ ÓÔ×ÏÒÅÎÎÑ Ã¦Ì¦ \"%s\", ÎÅÏÂȦÄÎϧ ÄÌÑ \"%s\"%s"
+msgid "%sNo rule to make target '%s', needed by '%s'%s"
+msgstr "%sÐема правила Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ†Ñ–Ð»Ñ– \"%s\", необхідної Ð´Ð»Ñ \"%s\"%s"
#: remake.c:413
#, c-format
-msgid "Considering target file `%s'.\n"
-msgstr "ïÂÒÏÂËÁ æÌØÏ×ÏÇÏ ÆÁÊÌÕ \"%s\".\n"
+msgid "Considering target file '%s'.\n"
+msgstr "Обробка цільового файла \"%s\".\n"
#: remake.c:420
#, c-format
-msgid "Recently tried and failed to update file `%s'.\n"
-msgstr "ðÏÐÅÒÅÄÎÑ ÓÐÒÏÂÁ ÏÎÏ×ÉÔÉ ÆÁÊÌ \"%s\" ÚÁ×ÅÒÛÉÌÁÓÑ ÂÅÚÕÓЦÛÎÏ.\n"
+msgid "Recently tried and failed to update file '%s'.\n"
+msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ñпроба оновити файл \"%s\" завершилаÑÑ Ð±ÐµÐ·ÑƒÑпішно.\n"
#: remake.c:432
#, c-format
-msgid "File `%s' was considered already.\n"
-msgstr "æÁÊÌ \"%s\" ×ÖÅ ÂÕÌÏ ÏÂÒÏÂÌÅÎÏ.\n"
+msgid "File '%s' was considered already.\n"
+msgstr "Файл \"%s\" вже було оброблено.\n"
#: remake.c:442
#, c-format
-msgid "Still updating file `%s'.\n"
-msgstr "÷ÓÅ ÝÅ ÏÎÏ×ÌÀ¤ÔØÓÑ ÆÁÊÌ \"%s\".\n"
+msgid "Still updating file '%s'.\n"
+msgstr "Ð’Ñе ще оновлюєтьÑÑ Ñ„Ð°Ð¹Ð» \"%s\".\n"
#: remake.c:445
#, c-format
-msgid "Finished updating file `%s'.\n"
-msgstr "ïÎÏ×ÌÅÎÎÑ ÆÁÊÌÕ \"%s\" ÚÁ×ÅÒÛÅÎÏ.\n"
+msgid "Finished updating file '%s'.\n"
+msgstr "ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° \"%s\" завершено.\n"
#: remake.c:474
#, c-format
-msgid "File `%s' does not exist.\n"
-msgstr "æÁÊÌ \"%s\" ÎÅ ¦ÓÎÕ¤.\n"
+msgid "File '%s' does not exist.\n"
+msgstr "Ðе виÑвлено файла з назвою «%s».\n"
#: remake.c:481
#, 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 ""
+"*** ПопередженнÑ: файл .LOW_RESOLUTION_TIME «%s» має чаÑову позначку виÑокої "
+"точноÑÑ‚Ñ–"
-#: remake.c:494 remake.c:1016
+#: remake.c:494 remake.c:1019
#, c-format
-msgid "Found an implicit rule for `%s'.\n"
-msgstr "úÎÁÊÄÅÎÏ ÎÅÑ×ÎÅ ÐÒÁ×ÉÌÏ ÄÌÑ \"%s\".\n"
+msgid "Found an implicit rule for '%s'.\n"
+msgstr "Знайдено неÑвне правило Ð´Ð»Ñ \"%s\".\n"
-#: remake.c:496 remake.c:1018
+#: remake.c:496 remake.c:1021
#, c-format
-msgid "No implicit rule found for `%s'.\n"
-msgstr "îÅ ÚÎÁÊÄÅÎÏ ÎÅÑ×ÎÉÈ ÐÒÁ×ÉÌ ÄÌÑ \"%s\".\n"
+msgid "No implicit rule found for '%s'.\n"
+msgstr "Ðе знайдено неÑвних правил Ð´Ð»Ñ \"%s\".\n"
#: remake.c:502
-#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
-msgstr "÷ÉËÏÒÉÓÔÁÎÎÑ ËÏÍÁÎÄ ÐÏ ÚÁÍÏ×ÞÕ×ÁÎÎÀ ÄÌÑ \"%s\".\n"
+#, c-format
+msgid "Using default recipe for '%s'.\n"
+msgstr "ВикориÑтовуємо типовий ÑпоÑіб Ð´Ð»Ñ Â«%s».\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
-msgstr "ãÉË̦ÞÎÁ ÚÁÌÅÖΦÓÔØ %s <- %s ÐÒÏÐÕÝÅÎÁ."
+msgstr "Циклічна залежніÑÑ‚ÑŒ %s <- %s пропущена."
-#: remake.c:651
-#, fuzzy, c-format
-msgid "Finished prerequisites of target file `%s'.\n"
-msgstr "ïÎÏ×ÌÅÎÎÑ Ã¦ÌÅÊ, ×¦Ä ÑËÉÈ ÚÁÌÅÖÉÔØ Ã¦ÌØÏ×ÉÊ ÆÁÊÌ \"%s\", ÄÏ×ÅÒÛÅÎÏ.\n"
+#: remake.c:655
+#, c-format
+msgid "Finished prerequisites of target file '%s'.\n"
+msgstr "Завершено обробку попередніх залежноÑтей файла мети «%s».\n"
-#: remake.c:657
+#: remake.c:661
#, c-format
-msgid "The prerequisites of `%s' are being made.\n"
-msgstr "ã¦Ì¦, ×¦Ä ÑËÉÈ ÚÁÌÅÖÉÔØ \"%s\", ÚÂÉÒÁÀÔØÓÑ.\n"
+msgid "The prerequisites of '%s' are being made.\n"
+msgstr "Цілі, від Ñких залежить \"%s\", збираютьÑÑ.\n"
-#: remake.c:670
+#: remake.c:674
#, c-format
-msgid "Giving up on target file `%s'.\n"
-msgstr "á×ÁÒ¦ÊÎÉÊ ÚÕÐÉÎËÁ ÎÁ æÌØÏ×ÏÍÕ ÆÁÊ̦ \"%s\".\n"
+msgid "Giving up on target file '%s'.\n"
+msgstr "Ðварійний зупинка на цільовому файлі \"%s\".\n"
-#: remake.c:675
+#: remake.c:679
#, c-format
-msgid "Target `%s' not remade because of errors."
-msgstr "ã¦ÌØ \"%s\" ÎÅ ÂÕÌÁ ÐÅÒÅÚ¦ÂÒÁÎÁ ÞÅÒÅÚ ÐÏÍÉÌËÉ."
+msgid "Target '%s' not remade because of errors."
+msgstr "Ціль \"%s\" не була перезібрана через помилки."
-#: remake.c:727
+#: remake.c:731
#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
-msgstr ""
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
+msgstr "ЗалежніÑÑ‚ÑŒ «%s» визначено Ð´Ð»Ñ Ð¼ÐµÑ‚Ð¸ «%s» лише порÑдком збираннÑ.\n"
-#: remake.c:732
-#, fuzzy, c-format
-msgid "Prerequisite `%s' of target `%s' does not exist.\n"
-msgstr "æÁÊÌ \"%s\" ÎÅ ¦ÓÎÕ¤.\n"
+#: remake.c:736
+#, c-format
+msgid "Prerequisite '%s' of target '%s' does not exist.\n"
+msgstr "ЗалежноÑÑ‚Ñ– «%s» мети «%s» не Ñ–Ñнує.\n"
-#: remake.c:737
-#, fuzzy, c-format
-msgid "Prerequisite `%s' is newer than target `%s'.\n"
-msgstr "úÁÌÅÖÎÁ æÌØ \"%s\" ÏÎÏ×ÌÑÌÁÓÑ %s Î¦Ö ÚÁÌÅÖÎÁ ×¦Ä Îŧ \"%s\".\n"
+#: remake.c:741
+#, c-format
+msgid "Prerequisite '%s' is newer than target '%s'.\n"
+msgstr "ЗалежніÑÑ‚ÑŒ «%s» Ñ” новішою за мету «%s».\n"
-#: remake.c:740
-#, fuzzy, c-format
-msgid "Prerequisite `%s' is older than target `%s'.\n"
-msgstr "úÁÌÅÖÎÁ æÌØ \"%s\" ÏÎÏ×ÌÑÌÁÓÑ %s Î¦Ö ÚÁÌÅÖÎÁ ×¦Ä Îŧ \"%s\".\n"
+#: remake.c:744
+#, c-format
+msgid "Prerequisite '%s' is older than target '%s'.\n"
+msgstr "ЗалежніÑÑ‚ÑŒ «%s» Ñ” Ñтарішою за мету «%s».\n"
-#: remake.c:758
+#: remake.c:762
#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
-msgstr "ã¦ÌØ \"%s\" ÏÇÏÌÏÛÅÎÁ Ú Ä×ÏÍÁ Ä×ÏËÒÁÐËÁÍÉ ¦ ÎÅ ÍÁ¤ ÚÁÌÅÖÎÏÓÔÅÊ.\n"
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
+msgstr "Ціль \"%s\" оголошена з двома двокрапками Ñ– не має залежноÑтей.\n"
-#: remake.c:765
-#, fuzzy, c-format
-msgid "No recipe for `%s' and no prerequisites actually changed.\n"
-msgstr "ëÏÍÁÎÄÉ ÄÌÑ \"%s\" ÎÅ ÚÁÄÁΦ, ¦ ÚÁÌÅÖÎÏÓÔ¦ ÎÅ ÂÕÌÉ ÚͦÎÅΦ.\n"
+#: remake.c:769
+#, c-format
+msgid "No recipe for '%s' and no prerequisites actually changed.\n"
+msgstr "Ðемає ÑпоÑобу Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Â«%s», вÑÑ– попередні залежноÑÑ‚Ñ– не змінено.\n"
-#: remake.c:770
+#: remake.c:774
#, c-format
-msgid "Making `%s' due to always-make flag.\n"
-msgstr ""
+msgid "Making '%s' due to always-make flag.\n"
+msgstr "Збираємо «%s» через вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° always-make.\n"
-#: remake.c:778
-#, fuzzy, c-format
-msgid "No need to remake target `%s'"
-msgstr "îÅÍÁ ÎÅÏÂȦÄÎÏÓÔ¦ ÐÅÒÅÚÂÉÒÁÔÉ Ã¦ÌØ \"%s\".\n"
+#: remake.c:782
+#, c-format
+msgid "No need to remake target '%s'"
+msgstr "Потреби у повторному збиранні мети «%s» немає"
-#: remake.c:780
+#: remake.c:784
#, c-format
-msgid "; using VPATH name `%s'"
-msgstr ""
+msgid "; using VPATH name '%s'"
+msgstr "; викориÑтовуємо назву VPATH «%s»"
-#: remake.c:800
+#: remake.c:804
#, c-format
-msgid "Must remake target `%s'.\n"
-msgstr "îÅÏÂȦÄÎÏ ÐÅÒÅÚ¦ÂÒÁÔÉ Ã¦ÌØ \"%s\".\n"
+msgid "Must remake target '%s'.\n"
+msgstr "Ðеобхідно перезібрати ціль \"%s\".\n"
-#: remake.c:806
+#: remake.c:810
#, c-format
-msgid " Ignoring VPATH name `%s'.\n"
-msgstr ""
+msgid " Ignoring VPATH name '%s'.\n"
+msgstr " Ігноруємо назву VPATH «%s».\n"
-#: remake.c:815
-#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
-msgstr "ëÏÍÁÎÄÉ ÄÌÑ \"%s\" ÚÁÒÁÚ ×ÉËÏÎÕÀÔØÓÑ.\n"
+#: remake.c:819
+#, c-format
+msgid "Recipe of '%s' is being run.\n"
+msgstr "ЗаÑтоÑовуємо ÑпоÑіб «%s».\n"
-#: remake.c:822
+#: remake.c:826
#, c-format
-msgid "Failed to remake target file `%s'.\n"
-msgstr "óÐÒÏÂÁ ÐÅÒÅÚ¦ÂÒÁÔÉ Ã¦ÌØÏ×ÉÊ ÆÁÊÌ \"%s\" ÂÅÚÕÓЦÛÎÁ.\n"
+msgid "Failed to remake target file '%s'.\n"
+msgstr "Спроба перезібрати цільовий файл \"%s\" безуÑпішна.\n"
-#: remake.c:825
+#: remake.c:829
#, c-format
-msgid "Successfully remade target file `%s'.\n"
-msgstr "ã¦ÌØÏ×ÉÊ ÆÁÊÌ \"%s\" ÕÓЦÛÎÏ ÐÅÒÅÚ¦ÂÒÁÎÉÊ.\n"
+msgid "Successfully remade target file '%s'.\n"
+msgstr "Цільовий файл \"%s\" уÑпішно перезібраний.\n"
-#: remake.c:828
+#: remake.c:832
#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
-msgstr "ã¦ÌØÏ×ÉÊ ÆÁÊÌ \"%s\" ×ÉÍÁÇÁ¤ ÐÅÒÅÚ¦ÒËÉ Ú ËÌÀÞÏÍ -q.\n"
+msgid "Target file '%s' needs to be remade under -q.\n"
+msgstr "Цільовий файл \"%s\" вимагає Ð¿ÐµÑ€ÐµÐ·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð· ключем -q.\n"
-#: remake.c:1024
+#: remake.c:1027
#, c-format
-msgid "Using default commands for `%s'.\n"
-msgstr "÷ÉËÏÒÉÓÔÁÎÎÑ ËÏÍÁÎÄ ÐÏ ÚÁÍÏ×ÞÕ×ÁÎÎÀ ÄÌÑ \"%s\".\n"
+msgid "Using default commands for '%s'.\n"
+msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¸Ñ… команд Ð´Ð»Ñ Â«%s».\n"
-#: remake.c:1357
+#: remake.c:1372
#, c-format
-msgid "Warning: File `%s' has modification time in the future"
-msgstr "õ×ÁÇÁ: æÁÊÌ \"%s\" ÍÁ¤ ÍÁÊÂÕÔÎ¦Ê ÞÁÓ ÚͦÎÉ"
+msgid "Warning: File '%s' has modification time in the future"
+msgstr "Увага: Файл \"%s\" має майбутній Ñ‡Ð°Ñ Ð·Ð¼Ñ–Ð½Ð¸"
-#: remake.c:1370
-#, fuzzy, c-format
-msgid "Warning: File `%s' has modification time %s s in the future"
-msgstr "õ×ÁÇÁ: æÁÊÌ \"%s\" ÍÁ¤ ÞÁÓ ÚͦÎÉ %.2g Ó × ÍÁÊÂÕÔÎØÏÍÕ"
+#: remake.c:1385
+#, c-format
+msgid "Warning: File '%s' has modification time %s s in the future"
+msgstr "Увага: Ñ‡Ð°Ñ Ð·Ð¼Ñ–Ð½Ð¸ файла «%s» перебуває на %s Ñ Ñƒ майбутньому"
-#: remake.c:1569
+#: remake.c:1583
#, c-format
-msgid ".LIBPATTERNS element `%s' is not a pattern"
-msgstr ""
+msgid ".LIBPATTERNS element '%s' is not a pattern"
+msgstr "Елемент .LIBPATTERNS «%s» не є зразком"
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
-msgstr ""
+msgstr "ÐеекÑпортовні налаштуваннÑ: %s\n"
-#: rule.c:499
+#: rule.c:496
msgid ""
"\n"
"# Implicit Rules"
msgstr ""
+"\n"
+"# ÐеÑвні правила"
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
msgstr ""
"\n"
-"# îÅÑ×ÎÉÈ ÐÒÁ×ÉÌ ÎÅÍÁ."
+"# ÐеÑвних правил нема."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
"# %u implicit rules, %u"
msgstr ""
"\n"
-"# îÅÑ×ÎÉÈ ÐÒÁ×ÉÌ: %u, ÔÅÒͦÎÁÌØÎÉÈ: %u"
+"# ÐеÑвних правил: %u, термінальних: %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
msgstr "."
-#: rule.c:534
-#, fuzzy, c-format
+#: rule.c:531
+#, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
-msgstr "ðïíéìëá: ÎÅצÒÎÅ ÚÎÁÞÅÎÎÑ num_pattern_rules! %u != %u"
+msgstr "ПОМИЛКÐ: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ num_pattern_rules Ñ” помилковим! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
-msgstr "ÎÅצÄÏÍÉÊ ÓÉÇÎÁÌ"
+msgstr "невідомий Ñигнал"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
-msgstr "ïÂÒÉ×"
+msgstr "Обрив"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
-msgstr "ðÅÒÅÒÉ×ÁÎÎÑ"
+msgstr "ПерериваннÑ"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
-msgstr "÷ÉȦÄ"
+msgstr "Вихід"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
-msgstr "îÅÐÒÉÐÕÓÔÉÍÁ ¦ÎÓÔÒÕËæÑ"
+msgstr "ÐеприпуÑтима інÑтрукціÑ"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
-msgstr "ðÁÓÔËÁ ÔÒÁÓÕ×ÁÎÎÑ ÞÉ ÔÏÞËÉ ÚÕÐÉÎËÉ"
+msgstr "ПаÑтка траÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡Ð¸ точки зупинки"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
-msgstr "ðÒÉÐÉÎÅÎÏ"
+msgstr "Припинено"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
-msgstr "ðÁÓÔËÁ IOT"
+msgstr "ПаÑтка IOT"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
-msgstr "ðÁÓÔËÁ EMT"
+msgstr "ПаÑтка EMT"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
-msgstr "ðÏÍÉÌËÁ ÏÐÅÒÁæ§ Ú ËÒÁÐËÏÀ, ÝÏ ÐÌÁ×Á¤"
+msgstr "Помилка операції з крапкою, що плаває"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
-msgstr "úÎÉÝÅÎÎÑ"
+msgstr "ЗнищеннÑ"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
-msgstr "ðÏÍÉÌËÁ ÎÁ ÛÉΦ"
+msgstr "Помилка на шині"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
-msgstr "úÂ¦Ê ÓÅÇÍÅÎÔÁæ§"
+msgstr "Збій Ñегментації"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
-msgstr "ðÏÇÁÎÉÊ ÓÉÓÔÅÍÎÉÊ ×ÉËÌÉË"
+msgstr "Поганий ÑиÑтемний виклик"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
-msgstr "ïÂÒÉ× ËÁÎÁÌÕ"
+msgstr "Обрив каналу"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
-msgstr "óÉÇÎÁÌ ÐÏ ÔÁÊÍÅÒÕ"
+msgstr "Сигнал по таймеру"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
-msgstr "úÁ×ÅÒÛÅÎÏ"
+msgstr "Завершено"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
-msgstr "ïÂÕÍÏ×ÌÅÎÉÊ ËÏÒÉÓÔÕ×ÁÞÅÍ ÓÉÇÎÁÌ 1"
+msgstr "Обумовлений кориÑтувачем Ñигнал 1"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
-msgstr "ïÂÕÍÏ×ÌÅÎÉÊ ËÏÒÉÓÔÕ×ÁÞÅÍ ÓÉÇÎÁÌ 2"
+msgstr "Обумовлений кориÑтувачем Ñигнал 2"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
-msgstr "îÁÝÁÄÏË ÚÁ×ÅÒÛÉ× ÒÏÂÏÔÕ"
+msgstr "Ðащадок завершив роботу"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
-msgstr "úÂ¦Ê ÖÉ×ÌÅÎÎÑ"
+msgstr "Збій живленнÑ"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
-msgstr "úÕÐÉÎÅÎÏ"
+msgstr "Зупинено"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
-msgstr "úÕÐÉÎÅÎÏ (××¦Ä Ú ÔÅÒͦÎÁÌÁ) "
+msgstr "Зупинено (ввід з термінала) "
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
-msgstr "úÕÐÉÎÅÎÏ (×É×¦Ä ÎÁ ÔÅÒͦÎÁÌ)"
+msgstr "Зупинено (вивід на термінал)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
-msgstr "úÕÐÉÎÅÎÏ (ÓÉÇÎÁÌ)"
+msgstr "Зупинено (Ñигнал)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
-msgstr "ðÅÒÅ×ÉÝÅÎÅ ÏÂÍÅÖÅÎÎÑ ÎÁ ÐÒÏÃÅÓÏÒÎÉÊ ÞÁÓ"
+msgstr "Перевищене Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° процеÑорний чаÑ"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
-msgstr "ðÅÒÅ×ÉÝÅÎÉÊ ÍÅÖÁ ÒÏÚͦÒÕ ÆÁÊÌÕ"
+msgstr "Перевищений межа розміру файла"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
-msgstr "÷¦ÒÔÕÁÌØÎÉÊ ÞÁÓ ÍÉÎÕ×"
+msgstr "Віртуальний Ñ‡Ð°Ñ Ð¼Ð¸Ð½ÑƒÐ²"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
-msgstr "þÁÓ ÐÒÏƦÌÀ×ÁÎÎÑ ÍÉÎÕ×"
+msgstr "Ð§Ð°Ñ Ð¿Ñ€Ð¾Ñ„Ñ–Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð¼Ð¸Ð½ÑƒÐ²"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
-msgstr "÷¦ËÎÏ ÚͦÎÅÎÏ"
+msgstr "Вікно змінено"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
-msgstr "ðÒÏÄÏ×ÖÅÎÏ"
+msgstr "Продовжено"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
-msgstr "õÍÏ×Á ÅËÓÔÒÅÎÏÇÏ ××ÏÄÕ/×É×ÏÄÕ"
+msgstr "Умова екÑтреного вводу/виводу"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
-msgstr "íÏÖÌÉ×ÉÊ ×צÄ/×ÉצÄ"
+msgstr "Можливий ввід/вивід"
-#: 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 "òÅÓÕÒÓ ×ÔÒÁÞÅÎÏ"
+msgstr "РеÑÑƒÑ€Ñ Ð²Ñ‚Ñ€Ð°Ñ‡ÐµÐ½Ð¾"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
-msgstr "óÉÇÎÁÌ ÎÅÂÅÚÐÅËÉ"
+msgstr "Сигнал небезпеки"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
-msgstr "úÁÐÉÔ ¦ÎÆÏÒÍÁæ§"
+msgstr "Запит інформації"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
-msgstr ""
+msgstr "Допоміжний процеÑор Ð´Ð»Ñ Ð¾Ð±Ñ‡Ð¸Ñлень з рухомою комою недоÑтупний"
-#: 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 ""
+"\n"
+"%s немає буферів strcache\n"
-#: 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 ""
+"\n"
+"Буфери strcache %s: %lu (%lu) / Ñ€Ñдків = %lu / Ñховище = %lu Б / Ñер = %lu "
+"Б\n"
-#: 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 ""
+"Поточний буфер %s: розмір = %hu Б / викориÑтано = %hu Б / кількіÑÑ‚ÑŒ = %hu / "
+"Ñер = %hu Б\n"
+
+#: strcache.c:280
+#, c-format
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
+msgstr "Інше викориÑтане %s: загалом = %lu B / кількіÑÑ‚ÑŒ = %lu / Ñер = %lu Б\n"
-#: strcache.c:241
+#: strcache.c:283
#, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
msgstr ""
+"Інше вільне %s: загалом = %lu Б / Ð¼Ð°ÐºÑ = %lu Б / мін = %lu Б / Ñер = %hu Б\n"
-#: strcache.c:244
+#: strcache.c:287
+#, c-format
msgid ""
"\n"
-"# strcache hash-table stats:\n"
+"%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
+msgstr ""
+"\n"
+"Ð¨Ð²Ð¸Ð´ÐºÐ¾Ð´Ñ–Ñ strcache %s: циклів пошуку = %lu / відÑоток знайденого = %lu%%\n"
+
+#: strcache.c:289
+msgid ""
+"# hash-table stats:\n"
"# "
msgstr ""
+"# ÑтатиÑтика щодо таблиці хешів:\n"
+"# "
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "автоматична"
+
+#: variable.c:1610
msgid "default"
-msgstr "ÐÏ ÚÁÍÏ×ÞÕ×ÁÎÎÀ"
+msgstr "типовий"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
-msgstr "×ÉÚÎÁÞÅÎÁ Õ ÓÅÒÅÄÏ×Éݦ"
+msgstr "визначена у Ñередовищі"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
-msgstr "ÆÁÊÌ make"
+msgstr "файл make"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
-msgstr "ÚÁÄÁÎÉÊ ËÌÀÞ -e"
+msgstr "заданий ключ -e"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
-msgstr "×ÉÚÎÁÞÅÎÁ Õ ËÏÍÁÎÄÎÏÍÕ ÒÑÄËÕ"
+msgstr "визначена у командному Ñ€Ñдку"
-#: variable.c:1556
-msgid "`override' directive"
-msgstr "äÉÒÅËÔÉ×Á `override'"
+#: variable.c:1625
+msgid "'override' directive"
+msgstr "Директива «override»"
-#: variable.c:1559
-msgid "automatic"
-msgstr "Á×ÔÏÍÁÔÉÞÎÁ"
-
-#: variable.c:1570
+#: variable.c:1636
#, c-format
-msgid " (from `%s', line %lu)"
-msgstr " (Ú \"%s\", ÒÑÄÏË %lu)"
+msgid " (from '%s', line %lu)"
+msgstr " (з \"%s\", Ñ€Ñдок %lu)"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
-msgstr ""
+msgstr "# Ñтан змінних у хеш-таблиці:\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
msgstr ""
"\n"
-"# úͦÎΦ\n"
+"# Змінні\n"
-#: variable.c:1627
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
msgstr ""
+"\n"
+"# Специфічні Ð´Ð»Ñ Ð·Ñ€Ð°Ð·ÐºÐ° Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¸Ñ…"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
msgstr ""
+"\n"
+"# Ðемає Ñпецифічних Ð´Ð»Ñ Ð·Ñ€Ð°Ð·ÐºÐ° значень змінних."
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
"# %u pattern-specific variable values"
msgstr ""
+"\n"
+"# %u Ñпецифічних Ð´Ð»Ñ Ð·Ñ€Ð°Ð·ÐºÐ° значень змінних"
-#: variable.h:219
+#: variable.h:224
#, c-format
-msgid "warning: undefined variable `%.*s'"
-msgstr "ÐÏÐÅÒÅÄÖÅÎÎÑ: ÎÅ×ÉÚÎÁÞÅÎÁ ÚͦÎÎÁ \"%.*s\""
+msgid "warning: undefined variable '%.*s'"
+msgstr "попередженнÑ: невизначена змінна \"%.*s\""
-#: vmsfunctions.c:92
+#: vmsfunctions.c:91
#, c-format
msgid "sys$search() failed with %d\n"
-msgstr ""
+msgstr "sys$search() повернуто код помилки %d\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
-msgstr ""
+msgstr "ПопередженнÑ: порожнє переÑпрÑмуваннÑ\n"
-#: vmsjobs.c:184
-#, fuzzy, c-format
-msgid "internal error: `%s' command_state"
-msgstr "×ÎÕÔÒ¦ÛÎÑ ÐÏÍÉÌËÁ: \"%s\" command_state %d Õ child_handler"
+#: vmsjobs.c:178
+#, c-format
+msgid "internal error: '%s' command_state"
+msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: «%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 ""
+"-попередженнÑ, ймовірно, вам варто повторно увімкнути обробку CTRL-Y з DCL.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
-msgstr ""
+msgstr "ВБУДОВÐÐИЙ [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
-msgstr ""
+msgstr "ВБУДОВÐÐИЙ CD %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
-msgstr ""
+msgstr "ВБУДОВÐÐИЙ RM %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
-msgstr "îÅצÄÏÍÁ ×ÂÕÄÏ×ÁÎÁ ËÏÍÁÎÄÁ \"%s\".\n"
+msgstr "Ðевідома вбудована команда \"%s\".\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
-msgstr ""
+msgstr "Помилка, Ð¿Ð¾Ñ€Ð¾Ð¶Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
-msgstr ""
+msgstr "ПереÑпрÑмоване Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· %s\n"
-#: vmsjobs.c:513
-#, fuzzy, c-format
+#: vmsjobs.c:509
+#, c-format
msgid "Redirected error to %s\n"
-msgstr "ËÁÔÁÌÏÇ \"%s\"\n"
+msgstr "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку переÑпрÑмовано до %s\n"
-#: vmsjobs.c:523
+#: vmsjobs.c:518
#, c-format
msgid "Append output to %s\n"
-msgstr ""
+msgstr "ДопиÑати виведенні дані до %s\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
-msgstr ""
+msgstr "ПереÑпрÑмовуємо Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð¾ %s\n"
-#: vmsjobs.c:599
+#: vmsjobs.c:593
#, c-format
msgid "Append %.*s and cleanup\n"
-msgstr ""
+msgstr "ДопиÑати %.*s Ñ– Ñпорожнити\n"
-#: vmsjobs.c:606
+#: vmsjobs.c:600
#, c-format
msgid "Executing %s instead\n"
-msgstr "úÁͦÓÔØ ÚÁÄÁÎÏÇÏ ×ÉËÏÎÕ¤ÔØÓÑ %s\n"
+msgstr "ЗаміÑÑ‚ÑŒ заданого виконуєтьÑÑ %s\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
-msgstr "ðÏÍÉÌËÁ ÐÏÒÏÄÖÅÎÎÑ ÐÒÏÃÅÓÕ, %d\n"
+msgstr "Помилка Ð¿Ð¾Ñ€Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу, %d\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
msgstr ""
"\n"
-"# ûÌÑÈÉ ÐÏÛÕËÕ VPATH\n"
+"# ШлÑхи пошуку VPATH\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
-msgstr "# îÅ ×ÉÚÎÁÞÅÎÉÊ ÛÌÑÈ ÐÏÛÕËÕ \"vpath\"."
+#: vpath.c:600
+msgid "# No 'vpath' search paths."
+msgstr "# Ðе визначено шлÑÑ… пошуку \"vpath\"."
-#: vpath.c:605
+#: vpath.c:602
#, c-format
msgid ""
"\n"
-"# %u `vpath' search paths.\n"
+"# %u 'vpath' search paths.\n"
msgstr ""
"\n"
-"# %u \"vpath\" ÛÌÑÈÉ ÐÏÛÕËÕ.\n"
+"# %u шлÑхи пошуку \"vpath\".\n"
-#: vpath.c:608
+#: vpath.c:605
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
-"# îÅ ×ÉÚÎÁÞÅÎÉÊ ÚÁÇÁÌØÎÉÊ (ÚͦÎÎÁ \"VPATH\") ÛÌÑÈ ÐÏÛÕËÕ."
+"# Ðе визначено загальний шлÑÑ… пошуку (змінна \"VPATH\")."
-#: vpath.c:614
+#: vpath.c:611
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
-"# úÁÇÁÌØÎÉÊ (ÚͦÎÎÁ \"VPATH\") ÛÌÑÈ ÐÏÛÕËÕ:\n"
+"# Загальний шлÑÑ… пошуку (змінна \"VPATH\"):\n"
"# "
-#~ msgid "Syntax error, still inside '\"'\n"
-#~ msgstr "óÉÎÔÁËÓÉÞÎÁ ÐÏÍÉÌËÁ, ×ÓÅ ÝÅ ×ÓÅÒÅÄÉΦ '\"'\n"
-
-#, fuzzy
-#~ msgid "Got a SIGCHLD; %u unreaped children.\n"
-#~ msgstr ""
-#~ "ïÔÒÉÍÁÎÉÊ ÓÉÇÎÁÌ SIGCHLD; ÎÁÝÁÄË¦× Ú ÎÅÏÐÒÁÃØÏ×ÁÎÉÍÉ ÒÅÚÕÌØÔÁÔÁÍÉ %d.\n"
-
-#~ msgid "extraneous `endef'"
-#~ msgstr "ÚÁÊ×ÉÊ \"endef\""
-
-#~ msgid "empty `override' directive"
-#~ msgstr "ÐÏÒÏÖÎÑ ÄÉÒÅËÔÉ×Á `override'"
-
-#, fuzzy
-#~ msgid "invalid `override' directive"
-#~ msgstr "äÉÒÅËÔÉ×Á `override'"
-
-#~ msgid "no file name for `%sinclude'"
-#~ msgstr "ÎÅ ×ËÁÚÁÎÏ ¦Í'Ñ ÆÁÊÌÕ ÄÌÑ \"%sinclude\""
-
-#, fuzzy
-#~ msgid "target `%s' leaves prerequisite pattern empty"
-#~ msgstr "æÌØ \"%s\" ΊצÄÐÏצÄÁ¤ ÚÒÁÚËÕ Ã¦ÌÅÊ"
-
-#~ msgid " impossibilities in %u directories.\n"
-#~ msgstr " ÎÅÄÏÓÑÖÎÉÈ Ã¦ÌÅÊ Õ %u ËÁÔÁÌÏÇÁÈ.\n"
-
-#~ msgid "# %u variables in %u hash buckets.\n"
-#~ msgstr "# %u ÚͦÎÎÉÈ Õ %u ÏÓÅÒÅÄËÁÈ ÈÅÛ-ÔÁÂÌÉæ.\n"
-
-#~ msgid "# No variables."
-#~ msgstr "# úͦÎÎÉÈ ÎÅÍÁ."
-
-#, fuzzy
-#~ msgid "# average %.3f files per bucket, max %u files in one bucket.\n"
-#~ msgstr ""
-#~ "# Õ ÓÅÒÅÄÎØÏÍÕ %.1f ÆÁÊÌ¦× Õ ÏÓÅÒÅÄËÕ, ÍÁËÓ. %u ÆÁÊÌ¦× Õ ÏÄÎÏÍÕ "
-#~ "ÏÓÅÒÅÄËÕ.\n"
-
-#~ msgid "# average of %.1f variables per bucket, max %u in one bucket.\n"
-#~ msgstr ""
-#~ "# Õ ÓÅÒÅÄÎØÏÍÕ %.1f ÚͦÎÎÉÈ × ÏÓÅÒÅÄËÕ, ÍÁËÓ. %u × ÏÄÎÏÍÕ ÏÓÅÒÅÄËÕ.\n"
-
-#~ msgid "# average of %d.%d variables per bucket, max %u in one bucket.\n"
-#~ msgstr ""
-#~ "# Õ ÓÅÒÅÄÎØÏÍÕ %d.%d ÚͦÎÎÉÈ × ÏÓÅÒÅÄËÕ, ÍÁËÓ. %u × ÏÄÎÏÍÕ ÏÓÅÒÅÄËÕ.\n"
-
-#, fuzzy
-#~ msgid "%s access: user %lu (real %lu), group %lu (real %lu)\n"
-#~ msgstr ""
-#~ "ðÒÁ×Á ÄÏÓÔÕÐÕ ÄÏ %s: ËÏÒÉÓÔÕ×ÁÞ %d (ĦÊÓÎÉÊ %d), ÇÒÕÐÁ %d (ĦÊÓÎÁ %d)\n"
-
-#~ msgid "*** Warning: File `%s' has modification time in the future (%s > %s)"
-#~ msgstr "*** õ×ÁÇÁ: ÆÁÊÌ \"%s\" ÍÁ¤ ÞÁÓ ÚͦÎÉ Õ ÍÁÊÂÕÔÎØÏÍÕ (%s > %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, 2000\n"
-#~ "%s\tFree Software Foundation, Inc.\n"
-#~ "%sThis is free software; see the source for copying conditions.\n"
-#~ "%sThere is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
-#~ "%sPARTICULAR PURPOSE.\n"
-#~ "\n"
-#~ "%sReport bugs to <bug-make@gnu.org>.\n"
-#~ "\n"
-#~ msgstr ""
-#~ ", Á×ÔÏÒÉ Richard Stallman ¦ Roland McGrath.\n"
-#~ "%sðÏÂÕÄÏ×ÁÎÁ ÄÌÑ %s\n"
-#~ "%sCopyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000\n"
-#~ "%s Free Software Foundation, Inc.\n"
-#~ "%sãŠצÌØÎÁ ÐÒÏÇÒÁÍÁ; ÐÏÄÒÏÂÉæ ÐÒÏ ÕÍÏ×ÁÈ ÐÏÛÉÒÅÎÎÑ ÄÉצÔØÓÑ\n"
-#~ "%sÕ ×ÉȦÄÎÏÍÕ ÔÅËÓÔ¦. íÉ îå ÎÁÄÁ¤ÍÏ ÇÁÒÁÎÔ¦Ê; ÎÁצÔØ ÇÁÒÁÎÔ¦Ê\n"
-#~ "%sëïíåòã¶êîï· ã¶îîïóô¶ ÁÂÏ ðòéäáôîïóô¶ äìñ ëïîëòåôîï· ã¶ì¶.\n"
-#~ "\n"
-#~ "%sðÏצÄÏÍÌÑÊÔÅ ÐÒÏ ÐÏÍÉÌËÉ <bug-make@gnu.org>.\n"
-
-#~ msgid "Allow N jobs at once; infinite jobs with no arg"
-#~ msgstr ""
-#~ "úÁÐÕÓËÁÔÉ ÏÄÎÏÞÁÓÎÏ ÄÏ î ÚÁ×ÄÁÎØ; ÑËÝÏ ÁÒÇÕÍÅÎÔ ÎÅ ÚÁÄÁÎÉÊ,\n"
-#~ " ÞÉÓÌÏ ÚÁ×ÄÁÎØ ÎÅÏÂÍÅÖÅÎÏ"
-
-#~ msgid "Change to DIRECTORY before doing anything"
-#~ msgstr "ðÅÒÅÊÔÉ Õ ëáôáìïç ÐÅÒÅÄ ÐÏÞÁÔËÏÍ ÐÒÁæ"
-
-#~ msgid "Consider FILE to be infinitely new"
-#~ msgstr "÷×ÁÖÁÔÉ æáêì ÎÅÏÂÍÅÖÅÎÏ ÎÏ×ÉÍ"
-
-#~ msgid "Consider FILE to be very old and don't remake it"
-#~ msgstr "÷×ÁÖÁÔÉ æáêì ÄÕÖÅ ÓÔÁÒÉÍ ¦ ÎÅ ÐÅÒÅÚÂÉÒÁÔÉ ÊÏÇÏ"
-
-#~ msgid "DIRECTORY"
-#~ msgstr "ëáôáìïç"
-
-#~ msgid "Disable the built-in implicit rules"
-#~ msgstr "îÅ ×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉ ×ÂÕÄÏ×ÁΦ ÎÅÑ×Φ ÐÒÁ×ÉÌÁ"
-
-#, fuzzy
-#~ msgid "Disable the built-in variable settings"
-#~ msgstr "îÅ ×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉ ×ÂÕÄÏ×ÁΦ ÎÅÑ×Φ ÐÒÁ×ÉÌÁ"
-
-#~ msgid "Don't actually run any commands; just print them"
-#~ msgstr "îÅ ×ÉËÏÎÕ×ÁÔÉ ËÏÍÁÎÄÉ, ÐÒÏÓÔÏ ÎÁÄÒÕËÕ×ÁÔÉ §È"
-
-#~ msgid "Don't echo commands"
-#~ msgstr "îÅ ×É×ÏÄÉÔÉ ËÏÍÁÎÄÉ"
-
-#~ msgid "Don't start multiple jobs unless load is below N"
-#~ msgstr ""
-#~ "îÅ ÚÁÐÕÓËÁÔÉ ÐÁÒÁÌÅÌØΦ ÚÁ×ÄÁÎÎÑ ÐÏËÉ ÚÁ×ÁÎÔÁÖÅÎÎÑ ÎÅ ÚÎÉÚÉÔØÓÑ ÄÏ N"
-
-#~ msgid "Entering"
-#~ msgstr "÷ÈÏÖÕ Õ"
-
-#~ msgid "Environment variables override makefiles"
-#~ msgstr "úͦÎΦ ÓÅÒÅÄÏ×ÉÝÁ ÐÅÒÅËÒÉ×ÁÀÔØ ÚͦÎΦ, ×ÉÚÎÁÞÅΦ Õ make-ÆÁÊ̦"
-
-#~ msgid "FILE"
-#~ msgstr "æáêì"
-
-#~ msgid "FLAGS"
-#~ msgstr "ïúîáëé"
-
-#~ msgid "Ignore errors from commands"
-#~ msgstr "¶ÇÎÏÒÕ×ÁÔÉ ÐÏÍÉÌËÉ ËÏÍÁÎÄ"
-
-#~ msgid "Ignored for compatibility"
-#~ msgstr "¶ÇÎÏÒÏ×ÁÎÏ ÄÌÑ ÓÕͦÓÎÏÓÔ¦"
-
-#~ msgid "Initialized"
-#~ msgstr "¶Î¦Ã¦Á̦ÚÏ×ÁÎÉÊ"
-
-#~ msgid "Keep going when some targets can't be made"
-#~ msgstr "ðÒÏÄÏ×ÖÕ×ÁÔÉ ÒÏÂÏÔÕ, ÎÁצÔØ ÑËÝÏ ÄÅÑ˦ æ̦ ÎÅ ÄÏÓÑÇÎÕÔ¦"
-
-#~ msgid "Leaving"
-#~ msgstr "úÁÌÉÛÁÀ"
-
-#~ msgid "Print lots of debugging information"
-#~ msgstr "÷É×ÏÄÉÔÉ ÐÏצÄÏÍÌÅÎÎÑ ÄÌÑ ×¦ÄÌÁÇÏÄÖÅÎÎÑ"
-
-#~ msgid "Print make's internal database"
-#~ msgstr "îÁÄÒÕËÕ×ÁÔÉ ×ÎÕÔÒ¦ÛÎÀ ÂÁÚÕ ÄÁÎÉÈ make"
-
-#~ msgid "Print the current directory"
-#~ msgstr "îÁÄÒÕËÕ×ÁÔÉ ÐÏÔÏÞÎÉÊ ËÁÔÁÌÏÇ"
-
-#~ msgid "Print the version number of make and exit"
-#~ msgstr "ðÏËÁÚÁÔÉ ¦ÎÆÏÒÍÁæÀ ÐÒÏ ×ÅÒÓ¦§ ¦ ×ÉÊÔÉ"
-
-#~ msgid "Print this message and exit"
-#~ msgstr "ðÏËÁÚÁÔÉ ÃÀ ÄÏצÄËÕ ¦ ×ÉÊÔÉ"
-
-#, fuzzy
-#~ msgid "Print various types of debugging information"
-#~ msgstr "÷É×ÏÄÉÔÉ ÐÏצÄÏÍÌÅÎÎÑ ÄÌÑ ×¦ÄÌÁÇÏÄÖÅÎÎÑ"
-
-#~ msgid "Read FILE as a makefile"
-#~ msgstr "ðÒÏÞÉÔÁÔÉ æáêì ÑË make-ÆÁÊÌ"
-
-#~ msgid "Search DIRECTORY for included makefiles"
-#~ msgstr "ûÕËÁÔÉ make-ÆÁÊÌÉ, Ñ˦ ÎÅÏÂȦÄÎÏ ×ËÌÀÞÉÔÉ, Õ ÃØÏÍÕ ëáôáìïú¶"
-
-#~ msgid "Suspend process to allow a debugger to attach"
-#~ msgstr "ðÒÉÚÕÐÉÎÉÔÉ ÐÒÏÃÅÓÉ ÄÌÑ ÐÒɤÄÎÁÎÎÑ ×¦ÄÌÁÇÏÄÖÕ×ÁÞÁ"
-
-#~ msgid "Touch targets instead of remaking them"
-#~ msgstr "ðÏÎÏ×ÉÔÉ ÞÁÓ ÓÔ×ÏÒÅÎÎÑ Ã¦ÌÅÊ, Á ÎÅ ÐÅÒÅÚÂÉÒÁÔÉ §È"
-
-#~ msgid "Turn off -w, even if it was turned on implicitly"
-#~ msgstr "÷¦ÄͦÎÉÔÉ ËÌÀÞ -w, ÎÁצÔØ ÑËÝÏ ÊÏÇÏ ÂÕÌÏ Ñ×ÎÏ ÚÁÚÎÁÞÅÎÏ"
-
-#~ msgid "Turns off -k"
-#~ msgstr "÷¦ÄͦÎÉÔÉ ËÌÀÞ -k"
-
-#~ msgid "Warn when an undefined variable is referenced"
-#~ msgstr "÷ÉÄÁ×ÁÔÉ ÐÏÐÅÒÅÄÖÅÎÎÑ ÐÒÉ ÐÏÓÉÌÁÎΦ ÎÁ ÎÅ×ÉÚÎÁÞÅÎÕ ÚͦÎÎÕ"
-
-#~ msgid ""
-#~ "\n"
-#~ "# %u files in %u hash buckets.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "# %u ÆÁÊÌ¦× × %u ÏÓÅÒÅÄËÁÈ ÈÅÛ-ÔÁÂÌÉæ.\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "# No files."
-#~ msgstr ""
-#~ "\n"
-#~ "# æÁÊÌ¦× ÎÅÍÁ."
-
-#~ msgid "an unknown directory"
-#~ msgstr "ÎÅצÄÏÍÉÊ ËÁÔÁÌÏÇ"
+#~ msgid "# Invalid value in 'update_status' member!"
+#~ msgstr "# Ðекоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‡Ð»ÐµÐ½Ð° \"update_status\"!"
-#~ msgid "directory `%s'\n"
-#~ msgstr "ËÁÔÁÌÏÇ \"%s\"\n"
+#~ msgid "unknown trace mode '%s'"
+#~ msgstr "невідомий режим траÑÑƒÐ²Ð°Ð½Ð½Ñ Â«%s»"
diff --git a/po/vi.gmo b/po/vi.gmo
index acfdd46..ad334ae 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 94b3402..ee0fea5 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -1,123 +1,136 @@
# Vietnamese translation for Make.
-# Copyright © 2006 Free Software Foundation, Inc.
-# Clytie Siddall <clytie@riverland.net.au>, 2006.
+# Copyright © 2013 Free Software Foundation, Inc.
+# This file is distributed under the same license as the make package.
+# Clytie Siddall <clytie@riverland.net.au>, 2006-2010.
+# Nguyá»…n Thái Ngá»c Duy <pclouds@gmail.com>, 2012.
+# Trần Ngá»c Quân <vnwildman@gmail.com>, 2012-2013.
#
msgid ""
msgstr ""
-"Project-Id-Version: make 3.81\n"
+"Project-Id-Version: make 3.99.93\n"
"Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2010-07-28 01:42-0400\n"
-"PO-Revision-Date: 2006-05-04 20:26+0930\n"
-"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
-"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n"
+"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"PO-Revision-Date: 2013-10-02 07:35+0700\n"
+"Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n"
+"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
+"Language: vi\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0\n"
-"X-Generator: LocFactoryEditor 1.6b36\n"
+"Team-Website: <http://translationproject.org/team/vi.html>\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Poedit 1.5.5\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+"X-Poedit-Language: Vietnamese\n"
+"X-Poedit-Country: VIET NAM\n"
-#: ar.c:48
+#: ar.c:46
#, c-format
-msgid "attempt to use unsupported feature: `%s'"
-msgstr "đã cố sử dụng tính năng không được hỗ trợ « %s »"
+msgid "attempt to use unsupported feature: '%s'"
+msgstr "đã dùng tính năng chÆ°a được há»— trợ: “%sâ€"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
-msgstr "bộ phạn kho touch chưa sẵn sàng trên VMS"
+msgstr "“touch†thành viên kho không có trên VMS"
-#: ar.c:149
+#: ar.c:147
#, c-format
-msgid "touch: Archive `%s' does not exist"
-msgstr "touch: kho « %s » không tồn tại"
+msgid "touch: Archive '%s' does not exist"
+msgstr "touch: Kho “%s†không tồn tại"
-#: ar.c:152
+#: ar.c:150
#, c-format
-msgid "touch: `%s' is not a valid archive"
-msgstr "touch: « %s » không phải là một kho hợp lệ"
+msgid "touch: '%s' is not a valid archive"
+msgstr "touch: “%s†không phải là kho hợp lệ"
-#: ar.c:159
+#: ar.c:157
#, c-format
-msgid "touch: Member `%s' does not exist in `%s'"
-msgstr "touch: bộ phạn « %s » không tồn tại trong « %s »"
+msgid "touch: Member '%s' does not exist in '%s'"
+msgstr "touch: Thành viên “%s†không tồn tại trong “%sâ€"
-#: ar.c:166
+#: ar.c:164
#, c-format
-msgid "touch: Bad return code from ar_member_touch on `%s'"
-msgstr "touch: mới nhận mã trả lại sai từ « ar_member_touch » trên « %s »"
+msgid "touch: Bad return code from ar_member_touch on '%s'"
+msgstr "touch: Gặp mã trả lại sai từ ar_member_touch trên “%sâ€"
-#: arscan.c:69
-#, fuzzy, c-format
+#: arscan.c:67
+#, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
-msgstr "« lbr$set_module » đã không rút được thông tin mô-đun, trạng thái = %d"
+msgstr ""
+"lbr$set_module() đã không giải nén thông tin vỠmô-đun, trạng thái = %d"
-#: arscan.c:175
-#, fuzzy, c-format
+#: arscan.c:173
+#, c-format
msgid "lbr$ini_control() failed with status = %d"
-msgstr "« lbr$ini_control » bị lỗi với trạng thái = %d"
+msgstr "lbr$ini_control() bị lỗi với trạng thái = %d"
-#: arscan.c:187
+#: arscan.c:185
#, c-format
-msgid "unable to open library `%s' to lookup member `%s'"
-msgstr "không thể mở thư viên « %s » để tra tìm bộ phạn « %s »"
+msgid "unable to open library '%s' to lookup member '%s'"
+msgstr "không thể mở thÆ° viện “%s†để tra tìm thành viên “%sâ€"
-#: arscan.c:850
+#: arscan.c:847
#, c-format
-msgid "Member `%s'%s: %ld bytes at %ld (%ld).\n"
-msgstr "Bộ phạn « %s »%s: %ld byte với %ld (%ld).\n"
+msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
+msgstr "Thành viên “%sâ€%s: %ld byte tại %ld (%ld).\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
-msgstr " (có lẽ tên bị cụt)"
+msgstr " (có lẽ tên bị cắt ngắn)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " Ngày %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d, gid = %d, chế độ = 0%o.\n"
-#: commands.c:499
+#: commands.c:406
+#, c-format
+msgid "Recipe has too many lines (%ud)"
+msgstr "Công thức có quá nhiá»u dòng (%ud)"
+
+#: commands.c:507
msgid "*** Break.\n"
-msgstr "*** Ngắt\n"
+msgstr "*** Ngắt.\n"
-#: commands.c:622
+#: commands.c:630
#, c-format
-msgid "*** [%s] Archive member `%s' may be bogus; not deleted"
-msgstr "*** [%s] Có lẽ bá»™ phạn « %s » là giả; chÆ°a bị xóa bá»"
+msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
+msgstr "*** [%s] Thành phần kho “%s†có thể là giả; chÆ°a bị xóa bá»"
-#: commands.c:625
+#: commands.c:633
#, c-format
-msgid "*** Archive member `%s' may be bogus; not deleted"
-msgstr "*** Có lẽ bá»™ phạn « %s » là giả; chÆ°a bị xóa bá»"
+msgid "*** Archive member '%s' may be bogus; not deleted"
+msgstr "*** Thành phần kho “%s†có thể là giả; chÆ°a bị xóa bá»"
-#: commands.c:638
+#: commands.c:646
#, c-format
-msgid "*** [%s] Deleting file `%s'"
-msgstr "*** [%s] Äang xóa bá» tập tin « %s »..."
+msgid "*** [%s] Deleting file '%s'"
+msgstr "*** [%s] Äang xoá tập tin “%sâ€"
-#: commands.c:640
+#: commands.c:648
#, c-format
-msgid "*** Deleting file `%s'"
-msgstr "*** Äang xóa bá» tập tin « %s »..."
+msgid "*** Deleting file '%s'"
+msgstr "*** Äang xoá tập tin “%sâ€"
-#: commands.c:676
-#, fuzzy
+#: commands.c:684
msgid "# recipe to execute"
-msgstr "# các lệnh cần thi hành"
+msgstr "# công thức cần thực hiện"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
-msgstr " (sẵn có):"
+msgstr " (dựng-sẵn):"
-#: commands.c:681
+#: commands.c:689
#, c-format
-msgid " (from `%s', line %lu):\n"
-msgstr " (từ « %s », dòng %lu):\n"
+msgid " (from '%s', line %lu):\n"
+msgstr " (từ “%sâ€, dòng %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -125,228 +138,219 @@ msgstr ""
"\n"
"# Thư mục\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
-msgstr "# %s: không thể lấy các thông tin vỠnó.\n"
+msgstr "# %s: không thể lấy thống kê.\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
-msgstr "# %s (khóa %s, giá»_m %d): không thể được mở.\n"
+msgstr "# %s (khoá %s, mtime %d): không thể mở.\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
-msgstr "# %s (thiết bị %d, nút thông tin [%d,%d,%d]): không thể được mở.\n"
+msgstr "# %s (thiết bị %d, nút thông tin [%d,%d,%d]): không thể mở.\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
-msgstr "# %s (thiết bị %ld, nút thông tin %ld): không thể được mở.\n"
+msgstr "# %s (thiết bị %ld, nút thông tin %ld): không thể mở.\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
-msgstr "# %s (khóa %s, giá»_m %d): "
+msgstr "# %s (khoá %s, mtime %d): "
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
-msgstr "# %s (thiết bị %d, nút thông tin [%d,%d,%d]): "
+msgstr "# %s (thiết bị %d, inode [%d,%d,%d]): "
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
-msgstr "# %s (thiết bị %ld, nút thông tin %ld): "
+msgstr "# %s (thiết bị %ld, inode %ld): "
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "Không"
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " tập tin, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "không"
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
-msgstr " Ä‘iá»u không thể"
+msgstr " không thể"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
-msgstr " cho đến đây."
+msgstr " cho đến giá»."
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
-msgstr " Ä‘iá»u không thể trong %lu thÆ° mục.\n"
+msgstr " việc không thể làm được trong %lu thư mục.\n"
-#: expand.c:127
+#: expand.c:125
#, c-format
-msgid "Recursive variable `%s' references itself (eventually)"
-msgstr "Biến đệ qui « %s » tham chiếu chính nó (cuối cùng)"
+msgid "Recursive variable '%s' references itself (eventually)"
+msgstr "Biến đệ quy “%s†(cuối cùng) lại tham chiếu đến chính nó"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
-msgstr "tham chiếu biến chưa có kết thúc"
+msgstr "tham chiếu biến chưa chấm dứt"
-#: file.c:267
-#, fuzzy, c-format
-msgid "Recipe was specified for file `%s' at %s:%lu,"
-msgstr "Các lệnh được ghi rõ cho tập tin « %s » vào %s:%lu,"
-
-#: file.c:272
-#, fuzzy, c-format
-msgid "Recipe for file `%s' was found by implicit rule search,"
-msgstr ""
-"Các lệnh cho tập tin « %s » đã được tìm bằng việc tìm kiếm quy tắc ngầm,"
+#: file.c:269
+#, c-format
+msgid "Recipe was specified for file '%s' at %s:%lu,"
+msgstr "Công thức được chỉ định cho tập tin “%s†tại %s:%lu,"
-#: file.c:275
+#: file.c:274
#, c-format
-msgid "but `%s' is now considered the same file as `%s'."
-msgstr "nhÆ°ng « %s » hiện thá»i được xem là cùng má»™t tập tin vá»›i « %s »."
+msgid "Recipe for file '%s' was found by implicit rule search,"
+msgstr "Tìm thấy công thức cho tập tin “%s†nhỠquy tắc tìm kiếm ngầm,"
-#: file.c:278
-#, fuzzy, c-format
-msgid "Recipe for `%s' will be ignored in favor of the one for `%s'."
-msgstr "Các lệnh cho « %s » sẽ bị bá» qua để ủng há»™ các Ä‘iá»u cho « %s »."
+#: file.c:277
+#, c-format
+msgid "but '%s' is now considered the same file as '%s'."
+msgstr "nhÆ°ng “%s†bây giỠđược cÅ©ng được xem là cùng tập tin “%sâ€."
-#: file.c:298
+#: file.c:280
#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
+msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
msgstr ""
-"không thể thay đổi tên dấu hai chấm đơn « %s » thành dấu hai chấm đôi « %s »"
+"Công thức cho “%s†sẽ bị bá» qua trong sá»± chấp thuận của má»™t cái cho “%sâ€."
-#: file.c:303
+#: file.c:300
#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
-msgstr ""
-"không thể thay đổi tên dấu hai chấm đôi « %s » thành dấu hai chấm đơn « %s »"
+msgid "can't rename single-colon '%s' to double-colon '%s'"
+msgstr "không thể đổi tên “%s†hai chấm đơn thành “%s†hai chấm đôi"
-#: file.c:392
+#: file.c:305
#, c-format
-msgid "*** Deleting intermediate file `%s'"
-msgstr "*** Äang xóa bá» tập tin trung cấp « %s »..."
+msgid "can't rename double-colon '%s' to single-colon '%s'"
+msgstr "không thể đổi tên “%s†hai chấm đôi thành “%s†hai chấm đơn"
#: file.c:396
+#, c-format
+msgid "*** Deleting intermediate file '%s'"
+msgstr "*** Äang xoá tập tin trung gian “%sâ€"
+
+#: file.c:400
msgid "Removing intermediate files...\n"
-msgstr "Äang gỡ bá» các tập tin trung cấp...\n"
+msgstr "Xoá các tập tin trung gian...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
-msgstr "%s: Nhãn thá»i gian ở ngoại phạm vị nên thay thế %s"
+msgstr "%s: Thá»i gian của tập tin ở ngoài phạm vi nên thay thế bằng %s"
-#: file.c:804
+#: file.c:809
msgid "Current time"
-msgstr "Giá» hiện thá»i"
+msgstr "GiỠhiện tại"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
-msgstr "# Không phải là đĩch:"
+msgstr "# Không phải là đích:"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
-msgstr "# Tập tin qúy (Ä‘iá»u kiện tiên quyết của .PRECIOUS)."
+msgstr "# Tập tin giá trị (Ä‘iá»u kiện tiên quyết của .PRECIOUS)."
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
-msgstr "# Äích giả (Ä‘iá»u kiện tiên quyết của .PHONY)."
+msgstr "# Äích giả (Ä‘iá»u kiện tiên quyết của .PHONY)."
-#: file.c:933
-#, fuzzy
+#: file.c:958
msgid "# Command line target."
-msgstr "# Äích dòng lệnh."
+msgstr "# Äích dòng lệnh."
-#: file.c:935
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
-msgstr ""
-"# Tập tin tạo (makefile) mặc định, kiểu MAKEFILES, hay kiểu « -include/"
-"sinclude »."
+msgstr "# Mặc định, MAKEFILES, hoặc makefile kiểu -include/sinclude."
+
+#: file.c:962
+msgid "# Builtin rule"
+msgstr "# Quy tắc dựng sẵn"
-#: file.c:937
+#: file.c:964
msgid "# Implicit rule search has been done."
-msgstr "# Mới tìm kiếm kiểu quy tắc ngầm."
+msgstr "# Hoàn tất tìm quy tắc ngầm."
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
-msgstr "# Chưa tìm kiếm kiểu quy tắc ngầm."
+msgstr "# Chưa hoàn tất tìm quy tắc ngầm."
-#: file.c:940
+#: file.c:967
#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
-msgstr "# Cuống mẫu ngầm/tĩnh: « %s »\n"
+msgid "# Implicit/static pattern stem: '%s'\n"
+msgstr "# Cuống mẫu ngầm/tÄ©nh: “%sâ€\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
-msgstr "# Tập tin là Ä‘iá»u kiện tiên quyết trung cấp."
+msgstr "# Tập tin là má»™t Ä‘iá»u kiện tiên quyết trung gian."
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
-msgstr "# Cũng tạo :"
+msgstr "# Cũng tạo:"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
-msgstr "# Chưa bao giỠkiểm tra giỠsửa đổi."
+msgstr "# Chưa kiểm tra giỠsửa đổi."
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
-msgstr "# Tập tin không tồn tại."
+msgstr "# Tập tin không tồn tại."
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
-msgstr "# Tập tin rất cũ."
+msgstr "# Tập tin rất cũ."
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
-msgstr "# Sửa đổi cuối cùng %s\n"
+msgstr "# Lần sửa cuối cùng %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
-msgstr "# Tập tin đã được cập nhật."
+msgstr "# Tập tin đã được cập nhật."
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
-msgstr "# Tập tin chưa được cập nhật."
+msgstr "# Tập tin chưa được cập nhật."
-#: file.c:968
-#, fuzzy
+#: file.c:995
msgid "# Recipe currently running (THIS IS A BUG)."
-msgstr "# Các lệnh Ä‘ang chạy (ÄÂY LÀ Lá»–I)."
+msgstr "# Công thức Ä‘ang chạy (ÄÂY LÀ MỘT Lá»–I)."
-#: file.c:971
-#, fuzzy
+#: file.c:998
msgid "# Dependencies recipe running (THIS IS A BUG)."
-msgstr "# Các lệnh phụ thuá»™c Ä‘ang chạy (ÄÂY LÀ Lá»–I)."
+msgstr "# Công thức phụ thuá»™c Ä‘ang chạy (ÄÂY LÀ MỘT Lá»–I)."
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
-msgstr "# Äã được cập nhật."
+msgstr "# Cập nhật thành công."
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
-msgstr "# Cần thiết cập nhật (« -q » đã lập)."
+msgstr "# Cần được cập nhật (-q được đặt)."
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
-msgstr "# Việc cập nhật bị lỗi."
+msgstr "# Gặp lỗi khi cập nhật."
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr ""
-"# Giá trị không hợp lệ trong bộ phạn « update_status » (trạng thái cập nhật)!"
-
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
-msgstr ""
-"# Giá trị không hợp lệ trong bộ phạn « command_state » (tính trạng lệnh)!"
+#: file.c:1019
+msgid "# Invalid value in 'command_state' member!"
+msgstr "# Gặp giá trị sai trong thành phần “command_stateâ€!"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -354,142 +358,190 @@ msgstr ""
"\n"
"# Tập tin"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
"# "
msgstr ""
"\n"
-"# thống kê bảng băm các tập tin:\n"
+"# thống kê bảng băm tập tin:\n"
"# "
-#: function.c:758
-msgid "non-numeric first argument to `word' function"
-msgstr "đối số thứ nhất không dạng số đối với hàm « word » (từ)"
+#: file.c:1051
+#, c-format
+msgid "%s: Field '%s' not cached: %s"
+msgstr "%s: TrÆ°á»ng “%s†chÆ°a được nhá»› đệm: %s"
-#: function.c:763
-msgid "first argument to `word' function must be greater than 0"
-msgstr "đối số thứ nhất đối với hàm « word » (từ) phải là lớn hơn 0"
+#: function.c:742
+msgid "non-numeric first argument to 'word' function"
+msgstr "đối số thứ nhất không phải dạng số cho hàm “wordâ€"
-#: function.c:783
-msgid "non-numeric first argument to `wordlist' function"
-msgstr "đối số thứ nhất không dạng số đối với hàm « wordlist » (danh sách từ)"
+#: function.c:747
+msgid "first argument to 'word' function must be greater than 0"
+msgstr "đối số thứ nhất cho hàm “word†phải lớn hơn 0"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
-msgstr "đối số thứ hai không dạng số đối với hàm « wordlist » (danh sách từ)"
+#: function.c:767
+msgid "non-numeric first argument to 'wordlist' function"
+msgstr "đối số thứ nhất không phải số cho hàm “wordlistâ€"
-#: function.c:1458
-#, fuzzy, c-format
-msgid "windows32_openpipe(): DuplicateHandle(In) failed (e=%ld)\n"
-msgstr ""
-"Việc « create_child_process: DuplicateHandle(In) » (tạo tiến trình con: bộ "
-"quản lý trùng) bị lỗi (e=%ld)\n"
+#: function.c:769
+msgid "non-numeric second argument to 'wordlist' function"
+msgstr "đối số thứ hai không phải số cho hàm “wordlistâ€"
-#: function.c:1469
-#, fuzzy, c-format
-msgid "windows32_open_pipe(): DuplicateHandle(Err) failed (e=%ld)\n"
-msgstr ""
-"Việc « create_child_process: DuplicateHandle(Err) » (tạo tiến trình con: bộ "
-"quản lý trùng(lỗi)) bị lỗi (e=%ld)\n"
+#: function.c:1460
+#, c-format
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
+msgstr "windows32_openpipe: DuplicateHandle(In) gặp lỗi (e=%ld)\n"
-#: function.c:1474
+#: function.c:1483
+#, c-format
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
+msgstr "windows32_openpipe: DuplicateHandle(Err) gặp lỗi (e=%ld)\n"
+
+#: function.c:1490
#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
-msgstr "Việc « CreatePipe() » (tạo ống dẫn) bị lỗi (e=%ld)\n"
+msgstr "CreatePipe() bị lỗi (e=%ld)\n"
-#: function.c:1479
-#, fuzzy
+#: function.c:1498
msgid "windows32_openpipe(): process_init_fd() failed\n"
-msgstr ""
-"Việc « windows32_openpipe (): process_init_fd() » (mở ống dẫn windows32: tiến "
-"trình sở khởi fd) bị lỗi\n"
+msgstr "windows32_openpipe(): process_init_fd() gặp lỗi\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
-msgstr "Äang làm sạch tập tin bó tạm thá»i %s...\n"
+msgstr "Dá»n dẹp tập tin bó tạm %s\n"
-#: function.c:2150
+# Variable: do not translate/ biến: đừng dịch
+#: function.c:2151
#, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
-msgstr "Không có đủ đối số (%d) tới hàm « %s »"
+msgid "open: %s: %s"
+msgstr "mở: %s: %s"
-#: function.c:2162
+#: function.c:2158
#, c-format
-msgid "unimplemented on this platform: function `%s'"
-msgstr "chÆ°a được thá»±c hiện trên ná»n tảng này: hàm « %s »"
+msgid "write: %s: %s"
+msgstr "ghi: %s: %s"
-#: function.c:2212
+#: function.c:2164
#, c-format
-msgid "unterminated call to function `%s': missing `%c'"
-msgstr "cuá»™c gá»i chÆ°a được kết thúc cho hàm « %s »: thiếu « %c »"
+msgid "Invalid file operation: %s"
+msgstr "Thao tác tập tin không hợp lệ: %s"
-#: getopt.c:661
+#: function.c:2279
#, c-format
-msgid "%s: option `%s' is ambiguous\n"
-msgstr "%s: tùy chá»n « %s » là mÆ¡ hồ\n"
+msgid "insufficient number of arguments (%d) to function '%s'"
+msgstr "không đủ số đối số (%d) cho hàm “%sâ€"
-#: getopt.c:685
+#: function.c:2291
#, c-format
-msgid "%s: option `--%s' doesn't allow an argument\n"
-msgstr "%s: tùy chá»n « --%s » không cho phép đối số\n"
+msgid "unimplemented on this platform: function '%s'"
+msgstr "chÆ°a được viết mã thi hành trên hệ thống này: hàm “%sâ€"
-#: getopt.c:690
+#: function.c:2354
#, c-format
-msgid "%s: option `%c%s' doesn't allow an argument\n"
-msgstr "%s: tùy chá»n « %c%s » không cho phép đối số\n"
+msgid "unterminated call to function '%s': missing '%c'"
+msgstr "cuá»™c gá»i chÆ°a được chấm dứt cho hàm “%sâ€: thiếu “%câ€"
-#: getopt.c:707 getopt.c:880
+#: function.c:2546
+msgid "Empty function name\n"
+msgstr ""
+
+#: function.c:2548
+#, fuzzy, c-format
+msgid "Invalid function name: %s\n"
+msgstr "Thao tác tập tin không hợp lệ: %s"
+
+#: function.c:2550
+#, c-format
+msgid "Function name too long: %s\n"
+msgstr "Tên hàm quá dài: %s\n"
+
+#: function.c:2552
+#, c-format
+msgid "Invalid minimum argument count (%d) for function %s\n"
+msgstr "số lượng đối số tối thiểu (%d) là không hợp lệ cho hàm “%sâ€\n"
+
+#: function.c:2555
+#, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "số lượng đối số tối Ä‘a (%d) là không hợp lệ cho hàm “%sâ€\n"
+
+#: getopt.c:659
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: tùy chá»n “%s†chÆ°a rõ ràng\n"
+
+#: getopt.c:683
#, c-format
-msgid "%s: option `%s' requires an argument\n"
-msgstr "%s: tùy chá»n « %s » cần đến đối số\n"
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: tùy chá»n “--%s†không nhận má»™t đối số\n"
-#: getopt.c:736
+#: getopt.c:688
#, c-format
-msgid "%s: unrecognized option `--%s'\n"
-msgstr "%s: không nhận ra tùy chá»n « --%s »\n"
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: tùy chá»n “%c%s†không nhận má»™t đối số\n"
-#: getopt.c:740
+#: getopt.c:705 getopt.c:878
#, c-format
-msgid "%s: unrecognized option `%c%s'\n"
-msgstr "%s: không nhận ra tùy chá»n « %c%s »\n"
+msgid "%s: option '%s' requires an argument\n"
+msgstr "%s: tùy chá»n “%s†cần má»™t đối số\n"
-#: getopt.c:766
+#: getopt.c:734
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: không nhận ra tùy chá»n “--%sâ€\n"
+
+#: getopt.c:738
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: không nhận ra tùy chá»n “%c%sâ€\n"
+
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
-msgstr "%s: không cho phép tùy chá»n « -- %c »\n"
+msgstr "%s: tùy chá»n không hợp lệ -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
-msgstr "%s: tùy chá»n không hợp lệ « -- %c »\n"
+msgstr "%s: tùy chá»n không hợp lệ -- %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: tùy chá»n cần đến đối số « -- %c »\n"
+msgstr "%s: tùy chá»n cần má»™t đối số -- %c\n"
+
+#: getopt.c:844
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: tùy chá»n “-W %s†chÆ°a rõ ràng\n"
-#: getopt.c:846
+#: getopt.c:862
#, c-format
-msgid "%s: option `-W %s' is ambiguous\n"
-msgstr "%s: tùy chá»n « -W %s » là mÆ¡ hồ\n"
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: tùy chá»n “-W %s†không nhận má»™t đối số\n"
-#: getopt.c:864
+#: guile.c:55
#, c-format
-msgid "%s: option `-W %s' doesn't allow an argument\n"
-msgstr "%s: tùy chá»n « -W %s » không cho phép đối số\n"
+msgid "guile: Expanding '%s'\n"
+msgstr "guile: Äang khai triển “%sâ€\n"
+
+#: guile.c:71
+#, c-format
+msgid "guile: Evaluating '%s'\n"
+msgstr "guile: Äang định giá “%sâ€\n"
#: hash.c:49
-#, fuzzy, c-format
+#, c-format
msgid "can't allocate %lu bytes for hash table: memory exhausted"
-msgstr "không thể cấp phát %ld byte cho bảng băm: hết bộ nhớ hoàn toàn"
+msgstr "không thể cấp phát %lu byte cho bảng băm: hết bộ nhớ"
#: hash.c:280
#, c-format
msgid "Load=%ld/%ld=%.0f%%, "
-msgstr "Trá»ng tải=%ld/%ld=%.0f%%, "
+msgstr "Tải =%ld/%ld=%.0f%%, "
#: hash.c:282
#, c-format
@@ -499,464 +551,531 @@ msgstr "Băm lại=%d, "
#: hash.c:283
#, c-format
msgid "Collisions=%ld/%ld=%.0f%%"
-msgstr "Xung Ä‘á»™t=%ld/%ld=%.0f%%"
+msgstr "Xung Ä‘á»™t =%ld/%ld=%.0f%%"
-#: implicit.c:40
+#: implicit.c:38
#, c-format
-msgid "Looking for an implicit rule for `%s'.\n"
-msgstr "Äang tìm quy tắc nguầm cho « %s ».\n"
+msgid "Looking for an implicit rule for '%s'.\n"
+msgstr "Tìm quy tắc ngầm cho “%sâ€.\n"
-#: implicit.c:56
+#: implicit.c:54
#, c-format
-msgid "Looking for archive-member implicit rule for `%s'.\n"
-msgstr "Äang tìm quy tắc ngầm vá» bá»™ phạn kho cho « %s ».\n"
+msgid "Looking for archive-member implicit rule for '%s'.\n"
+msgstr "Tìm quy tắc ngầm vá» thành phần kho cho “%sâ€.\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
-msgstr "Äang tránh sá»± đệ qui quy tắc ngầm.\n"
+msgstr "Tránh quy tắc ngầm đệ quy.\n"
+
+#: implicit.c:486
+#, c-format
+msgid "Stem too long: '%.*s'.\n"
+msgstr "Stem quá dài: “%.*sâ€.\n"
#: implicit.c:491
#, c-format
-msgid "Trying pattern rule with stem `%.*s'.\n"
-msgstr "Äang thá»­ quy tắc mẫu vá»›i cuống « %.*s ».\n"
+msgid "Trying pattern rule with stem '%.*s'.\n"
+msgstr "Thá»­ quy tắc mẫu vá»›i cuống “%.*sâ€.\n"
-#: implicit.c:674
+#: implicit.c:697
#, c-format
-msgid "Rejecting impossible rule prerequisite `%s'.\n"
-msgstr "Äang từ chối Ä‘iá»u kiện tiên quyết không thể « %s ».\n"
+msgid "Rejecting impossible rule prerequisite '%s'.\n"
+msgstr "Từ chối Ä‘iá»u kiện tiên quyết không thể thá»a “%sâ€.\n"
-#: implicit.c:675
+#: implicit.c:698
#, c-format
-msgid "Rejecting impossible implicit prerequisite `%s'.\n"
-msgstr "Äang từ chối Ä‘iá»u kiện tiên quyết ngầm không thể « %s ».\n"
+msgid "Rejecting impossible implicit prerequisite '%s'.\n"
+msgstr "Từ chối Ä‘iá»u kiện tiên quyết ngầm không thể “%sâ€.\n"
-#: implicit.c:688
+#: implicit.c:711
#, c-format
-msgid "Trying rule prerequisite `%s'.\n"
-msgstr "Äang thá»­ Ä‘iá»u kiện tiên quyết quy tắc « %s ».\n"
+msgid "Trying rule prerequisite '%s'.\n"
+msgstr "Thá»­ Ä‘iá»u kiện tiên quyết quy tắc “%sâ€.\n"
-#: implicit.c:689
+#: implicit.c:712
#, c-format
-msgid "Trying implicit prerequisite `%s'.\n"
-msgstr "Äang thá»­ Ä‘iá»u kiện tiên quyết ngầm « %s ».\n"
+msgid "Trying implicit prerequisite '%s'.\n"
+msgstr "Thá»­ Ä‘iá»u kiện tiên quyết ngầm “%sâ€.\n"
-#: implicit.c:728
+#: implicit.c:751
#, c-format
-msgid "Found prerequisite `%s' as VPATH `%s'\n"
-msgstr "Má»›i tìm Ä‘iá»u kiện tiên quyết « %s » dạng VPATH « %s »\n"
+msgid "Found prerequisite '%s' as VPATH '%s'\n"
+msgstr "Tìm thấy Ä‘iá»u kiện tiên quyết “%s†làm VPATH “%sâ€\n"
-#: implicit.c:742
+#: implicit.c:765
#, c-format
-msgid "Looking for a rule with intermediate file `%s'.\n"
-msgstr "Äang tìm quy tắc vá»›i tập tin trung cấp « %s ».\n"
+msgid "Looking for a rule with intermediate file '%s'.\n"
+msgstr "Tìm quy tắc có tập tin trung gian “%sâ€.\n"
-#: job.c:335
+#: job.c:361
msgid "Cannot create a temporary file\n"
-msgstr "Không thể tạo tên tập tin tạm thá»i\n"
+msgstr "Không thể tạo tập tin tạm\n"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] Lỗi 0x%x (bị bỠqua)"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (đổ lõi)"
-#: job.c:450
+#: job.c:487
+msgid " (ignored)"
+msgstr " (bá» qua)"
+
+#: job.c:491 job.c:1994
+msgid "<builtin>"
+msgstr "<dựng-sẵn>"
+
+#: job.c:501
#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] Lá»—i 0x%x"
+msgid "%s: recipe for target '%s' failed"
+msgstr "%s: công thức cho đích “%s†gặp lỗi"
-#: job.c:454
+#: job.c:510
#, c-format
-msgid "[%s] Error %d (ignored)"
-msgstr "[%s] Lỗi %d (bị bỠqua)"
+msgid "%s[%s] Error 0x%x%s"
+msgstr "%s[%s] Lá»—i 0x%x%s"
-#: job.c:455
+#: job.c:513
#, c-format
-msgid "*** [%s] Error %d"
-msgstr "*** [%s] Lá»—i %d"
+msgid "%s[%s] Error %d%s"
+msgstr "%s[%s] Lá»—i %d%s"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (lõi bị đổ)"
+# Variable: don't translate / Biến: đừng dịch
+#: job.c:517
+#, c-format
+msgid "%s[%s] %s%s%s"
+msgstr "%s[%s] %s%s%s"
-#: job.c:549
+#: job.c:609
msgid "*** Waiting for unfinished jobs...."
-msgstr "*** Äang đợi các việc chÆ°a xong..."
+msgstr "*** Äang đợi những công việc chÆ°a hoàn tất..."
-#: job.c:579
-#, fuzzy, c-format
+#: job.c:639
+#, c-format
msgid "Live child %p (%s) PID %s %s\n"
-msgstr "Äiá»u con Ä‘á»™ng 0x%08lx (%s) PID %ld %s\n"
+msgstr "Tiến trình con còn sống %p (%s) PID %s %s\n"
-#: 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 " (từ xa)"
+msgstr " (máy chủ)"
-#: job.c:758
-#, fuzzy, c-format
+#: job.c:829
+#, c-format
msgid "Reaping losing child %p PID %s %s\n"
-msgstr "Äang bắt Ä‘iá»u con thua 0x%08lx PID %ld %s\n"
+msgstr "Äang mất tiến trình con %p PID %s %s\n"
-#: job.c:759
-#, fuzzy, c-format
+#: job.c:830
+#, c-format
msgid "Reaping winning child %p PID %s %s\n"
-msgstr "Äang bắt Ä‘iá»u con thắng 0x%08lx PID %ld %s\n"
+msgstr "Äang thắng lại tiến trình con %p PID %s %s\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
-msgstr "Äang làm sạch tập tin bó tạm thá»i: %s\n"
+msgstr "Dá»n dẹp tập tin bó tạm %s\n"
-#: job.c:861
-#, fuzzy, c-format
+#: job.c:843
+#, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "Dá»n dẹp tập tin bó tạm %s gặp lá»—i (%d)\n"
+
+#: job.c:949
+#, c-format
msgid "Removing child %p PID %s%s from chain.\n"
-msgstr "Äang gỡ bá» Ä‘iá»u con 0x%08lx PID %ld%s ra dây.\n"
+msgstr "Bá» tiến trình con %p PID %s%s khá»i xâu.\n"
-#: job.c:920
-msgid "write jobserver"
-msgstr "ghi trình phục vụ công việc"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr "giải phóng tín hiệu jobserver: (Lỗi %ld: %s)"
-#: job.c:922
-#, fuzzy, c-format
+#: job.c:1011 job.c:1025
+#, c-format
msgid "Released token for child %p (%s).\n"
-msgstr "Má»›i nhả hiệu bài cho Ä‘iá»u con 0x%08lx (%s).\n"
+msgstr "Äã giải phóng thẻ bài cho tiến trình con %p (%s).\n"
+
+#: job.c:1023
+msgid "write jobserver"
+msgstr "ghi lại trình phục vụ công việc"
-#: job.c:1453 job.c:2094
+#: job.c:1612 job.c:2332
#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
-msgstr ""
-"Việc « process_easy() » (tiến trình dễ) bị lỗi khi cố khởi chạy tiến trình (e="
-"%ld)\n"
+msgstr "process_easy() gặp lỗi khi chạy tiến trình (e=%ld)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
"Counted %d args in failed launch\n"
msgstr ""
"\n"
-"Äã đếm %d đối số trong việc khởi chạy bị lá»—i\n"
+"Äếm được %d đối số trong lần khởi chạy bị lá»—i\n"
-#: job.c:1525
-#, fuzzy, c-format
+#: job.c:1685
+#, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
-msgstr "Äang để Ä‘iá»u con 0x%08lx (%s) PID %ld%s trên dây.\n"
+msgstr "Äặt tiến trình con %p (%s) PID %s%s vào xâu.\n"
-#: job.c:1778
-#, fuzzy, c-format
+#: job.c:1953
+#, c-format
+msgid "semaphore or child process wait: (Error %ld: %s)"
+msgstr "chỠtín hiệu hay tiến trình con: (Lỗi %ld: %s)"
+
+#: job.c:1967
+#, c-format
msgid "Obtained token for child %p (%s).\n"
-msgstr "Äã lấy hiệu bài cho Ä‘iá»u con 0x%08lx (%s).\n"
+msgstr "Äã lấy thẻ bài cho Ä‘iá»u con %p (%s).\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
-msgstr "Ä‘á»c ống dẫn của các cá»™ng việc"
+msgstr "Ä‘á»c ống dẫn công việc"
-#: job.c:1798
+#: job.c:2003
#, c-format
-msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
-msgstr ""
+msgid "%s: target '%s' does not exist"
+msgstr "%s: đích “%s†không tồn tại"
-#: job.c:1802
-#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "Không cần tạo lại đích « %s »."
+#: job.c:2005
+#, c-format
+msgid "%s: update target '%s' due to: %s"
+msgstr "%s: cập nhật đích “%sâ€, cần bởi: %s"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
-msgstr "không thể buá»™c hạn chế trá»ng tải vá»›i hệ Ä‘iá»u hành này"
+msgstr "không thể buá»™c giá»›i hạn tải trên hệ Ä‘iá»u hành này"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
-msgstr "không thể buá»™c hạn chế trá»ng tải: "
+msgstr "không thể buộc giới hạn tải: "
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
msgstr ""
-"không có bộ quản lý tập tin nữa: không thể nhân bản thiết bị nhập chuẩn\n"
+"không thể xử lý thêm tập tin nào nữa: không thể nhân đôi đầu vào chuẩn\n"
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
msgstr ""
-"không có bộ quản lý tập tin nữa: không thể nhân bản thiết bị xuất chuẩn\n"
+"không thể xử lý thêm tập tin nào nữa: không thể nhân đôi đầu ra chuẩn\n"
+
+#: job.c:2223
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr ""
+"không thể xử lý thêm tập tin nào nữa: không thể nhân đôi đầu ra lỗi chuẩn\n"
-#: job.c:2015
+#: job.c:2238
msgid "Could not restore stdin\n"
-msgstr "Không thể phục hồi thiết bị nhập chuẩn\n"
+msgstr "Không thể phục hồi đầu vào chuẩn\n"
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
-msgstr "Không thể phục hồi thiết bị xuất chuẩn\n"
+msgstr "Không thể phục hồi đầu ra chuẩn\n"
-#: job.c:2127
-#, fuzzy, c-format
+#: job.c:2254
+msgid "Could not restore stderr\n"
+msgstr "Không thể phục hồi đầu ra lỗi tiêu chuẩn\n"
+
+#: job.c:2365
+#, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
-msgstr "đặt Ä‘iá»u con đã bắt là PID %ld, vẫn còn đợi PID %ld\n"
+msgstr "đặt Ä‘iá»u con đã bắt là PID %s, vẫn còn đợi PID %s\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
-msgstr "%s: Không tìm thấy lệnh."
+msgstr "%s: Không tìm thấy lệnh"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr "%s: Không tìm thấy chÆ°Æ¡ng trình hệ vá»"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
-msgstr "spawnvpe: có lẽ hết sức chứa môi trÆ°á»ng hoàn toàn"
+msgstr "spawnvpe: cạn không gian dành cho biến môi trÆ°á»ng"
-#: job.c:2461
+#: job.c:2709
#, c-format
-msgid "$SHELL changed (was `%s', now `%s')\n"
-msgstr "$SHELL đã thay đổi (đã « %s », là « %s »)\n"
+msgid "$SHELL changed (was '%s', now '%s')\n"
+msgstr "$SHELL thay đổi (trÆ°á»›c là “%sâ€, giá» là “%sâ€)\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
-msgstr "Äang tạo tập tin bó tạm thá»i: %s\n"
+msgstr "Tạo tập tin bó lệnh tạm: %s\n"
-#: job.c:2963
+#: job.c:3148
+msgid ""
+"Batch file contents:\n"
+"\t@echo off\n"
+msgstr ""
+"Nội dung tập tin bó lệnh:\n"
+"\t@echo off\n"
+
+#: job.c:3337
#, c-format
msgid ""
"Batch file contents:%s\n"
"\t%s\n"
msgstr ""
+"Nội dung tập tin bó lệnh:%s\n"
+"\t%s\n"
-#: job.c:3065
+#: job.c:3444
#, c-format
msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
-msgstr "%s (dòng %d) Ngữ cảnh hệ vỠsai (!unixy && !batch_mode_shell)\n"
+msgstr "%s (dòng %d) Ngữ cảnh shell sai (!unixy && !batch_mode_shell)\n"
-#: main.c:303
+#: job.h:43
+msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
+msgstr "-O[KIỂU] (--output-sync[=KIỂU]) chưa được cấu hình cho lần dịch này."
+
+#: load.c:53
+#, c-format
+msgid "Failed to open global symbol table: %s"
+msgstr "Gặp lỗi khi mở bảng ký hiệu toàn cục: %s"
+
+#: load.c:87
+#, c-format
+msgid "Loaded object %s is not declared to be GPL compatible"
+msgstr "Äối tượng %s đã được tải không được công bố là tÆ°Æ¡ng thích GPL"
+
+#: load.c:92
+#, c-format
+msgid "Failed to load symbol %s from %s: %s"
+msgstr "Gặp lỗi khi tải ký hiệu %s từ %s: %s"
+
+#: load.c:136
+#, c-format
+msgid "Empty symbol name for load: %s"
+msgstr "Tên ký hiệu là trống rỗng cho việc tải: %s"
+
+#: load.c:191
+#, c-format
+msgid "Loading symbol %s from %s\n"
+msgstr "Äang tải ký hiệu %s từ %s\n"
+
+#: load.c:229
+msgid "The 'load' operation is not supported on this platform."
+msgstr "không hỗ trợ thao tác “load†trên hệ thống này."
+
+#: main.c:312
msgid "Options:\n"
msgstr "Tùy chá»n:\n"
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
-msgstr " -b, -m Bị bỠqua để tương thích.\n"
+msgstr " -b, -m BỠqua để tương thích.\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
-msgstr ""
-" -B, --always-make _Luôn luôn tạo_ má»i đích (không Ä‘iá»u kiện).\n"
+msgstr " -B, --always-make Tạo má»i đích vô Ä‘iá»u kiện.\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
msgstr ""
" -C THƯ_MỤC, --directory=THƯ_MỤC\n"
-" Chuyển đổi sang thư mục này, trước hết.\n"
+" Chuyển sang THƯ MỤC này trước khi làm.\n"
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
-msgstr " -d In ra rất nhiá»u thông tin _gỡ lá»—i_.\n"
+msgstr " -d In rất nhiá»u thông tin gỡ rối.\n"
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr ""
-" --debug[=CỜ...] In ra các kiểu thông tin _gỡ lỗi_ khác nhau.\n"
+" --debug[=CỜ...] In nhiá»u loại thông tin gỡ rối khác nhau.\n"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
msgstr ""
" -e, --environment-overrides\n"
-" Các biến _môi trÆ°á»ng có quyá»n cao hÆ¡n_\n"
-"\t\t\t\t\tcác tập tin tạo (makefile).\n"
+" Biến môi trÆ°á»ng đè tập tin makefile.\n"
-#: main.c:318
+#: main.c:327
msgid ""
" --eval=STRING Evaluate STRING as a makefile statement.\n"
msgstr ""
+" --eval=CHUá»–I Äịnh lượng CHUá»–I nhÆ° má»™t lệnh makefile.\n"
-#: main.c:320
+#: main.c:329
msgid ""
" -f FILE, --file=FILE, --makefile=FILE\n"
" Read FILE as a makefile.\n"
msgstr ""
-" -f TẬP_TIN, --file=TẬP_TIN, --makefile=TẬP_TIN\n"
-" Äá»c tập tin này dạng tập tin tạo (makefile).\n"
+" -f TẬP-TIN, --file=TẬP-TIN, --makefile=TẬP-TIN\n"
+" Äá»c TẬP-TIN dạng makefile.\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
-msgstr " -h, --help Hiển thị _trợ giúp_ này rồi thoát.\n"
+msgstr " -h, --help Hiển thị trợ giúp này và thoát.\n"
-#: main.c:325
-#, fuzzy
+#: main.c:334
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
-msgstr " -i, --ignore-errors _BỠqua các lỗi_ từ các lệnh.\n"
+msgstr " -i, --ignore-errors BỠqua lỗi từ công thức.\n"
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
msgstr ""
" -I THƯ_MỤC, --include-dir=THƯ_MỤC\n"
-" Tìm kiếm tập tin tạo (makefile) đã _bao gồm_\n"
-"\t\t\t\t\ttrong _thư mục_ này.\n"
+" Quét THƯ-MỤC này tìm makefile con.\n"
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
msgstr ""
-" -j [N], --jobs[=N] Cho phép N (số) _công việc_ đồng thá»i;\n"
-"\t\t\t\t\t\tvô hạn khi không có đối số\n"
+" -j [N], --jobs[=N] Cho phép N công việc đồng thá»i; không có đối "
+"số thì vô hạn.\n"
-#: main.c:332
+#: main.c:341
msgid ""
" -k, --keep-going Keep going when some targets can't be made.\n"
-msgstr ""
-" -k, --keep-going _Cứ làm_ khi không thể tạo một số đích.\n"
+msgstr " -k, --keep-going Cứ tiếp tục khi không thể tạo đích.\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 "
"N.\n"
msgstr ""
-" -l [N], --load-average[=N], --max-load[=N]\n"
-" Äừng khởi chạy nhiá»u công việc, trừ trá»ng tải dÆ°á»›i N "
-"(số).\n"
+" -l [Sá»], --load-average[=N], --max-load[=N]\n"
+" Chỉ chạy nhiá»u công việc nếu tải dÆ°á»›i N.\n"
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
msgstr ""
-" -L, --check-symlink-times\n"
-"\t\t\tDùng giá»_m cuối cùng giữa liên kết tượng trÆ°ng và đích.\n"
-"\t(_kiểm tra giỠliên kết tượng trưng_)\n"
+" -L, --check-symlink-times Dùng mtime mới nhất giữa liên kết và đích.\n"
-#: main.c:339
-#, fuzzy
+#: main.c:348
msgid ""
" -n, --just-print, --dry-run, --recon\n"
" Don't actually run any recipe; just print "
"them.\n"
msgstr ""
" -n, --just-print, --dry-run, --recon\n"
-" Äừng thật chạy lệnh nào, chỉ in ra hết.\n"
-"\t(_chỉ in, chạy thực hành, sự thăm dò_)\n"
+" Không chạy công thức; chỉ in chúng ra.\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 "
"it.\n"
msgstr ""
-" -o TẬP_TIN, --old-file=TẬP_TIN, --assume-old=TẬP_TIN\n"
-" Xem tập tin này là rất cũ nên đừng tạo lại nó.\n"
-"\t(_cũ, tập tin cũ, giả sử cũ_)\n"
+" -o TẬP-TIN, --old-file=TẬP-TIN, --assume-old=TẬP-TIN\n"
+" Coi TẬP-TIN là rất cũ và không tạo lại.\n"
-#: main.c:345
-msgid " -p, --print-data-base Print make's internal database.\n"
+#: main.c:354
+msgid ""
+" -O[TYPE], --output-sync[=TYPE]\n"
+" Synchronize output of parallel jobs by TYPE.\n"
msgstr ""
-" -p, --print-data-base _In ra cơ sở dữ liệu_ nội bộ của trình make.\n"
+" -O[KIỂU], --output-sync[=KIỂU]\n"
+" Äồng bá»™ hóa kết xuất công việc song song theo "
+"KIỂU.\n"
-#: main.c:347
-#, fuzzy
+#: main.c:357
+msgid " -p, --print-data-base Print make's internal database.\n"
+msgstr " -p, --print-data-base In cơ sở dữ liệu nội bộ của make.\n"
+
+#: main.c:359
msgid ""
" -q, --question Run no recipe; exit status says if up to "
"date.\n"
msgstr ""
-" -q, --question\n"
-"\tÄừng chạy lệnh nào; trạng thái thoát nói nếu hiện thá»i hay không.\n"
-"\t(_câu há»i_)\n"
+" -q, --question Không chạy; mã thoát là \"đã cập nhật\".\n"
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
-msgstr ""
-" -r, --no-builtin-rules \t\tTắt các quy tắc ngầm có sẵn.\n"
-"\t(_không có quy tắc có sẵn_)\n"
+msgstr " -r, --no-builtin-rules Tắt quy tắc ngầm dựng sẵn.\n"
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
-msgstr ""
-" -R, --no-builtin-variables \tTắt các thiết lập biến có sẵn.\n"
-"\t(_không có biến có sẵn_)\n"
+msgstr " -R, --no-builtin-variables Tắt đặt biến dựng sẵn.\n"
-#: main.c:353
-#, fuzzy
+#: main.c:365
msgid " -s, --silent, --quiet Don't echo recipes.\n"
-msgstr ""
-" -s, --silent, --quiet Äừng vá»ng (hiển thị) lệnh.\n"
-"\t(_câm, im_)\n"
+msgstr " -s, --silent, --quiet Không in lại công thức.\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
msgstr ""
-" -S, --no-keep-going, --stop\t\tTắt « -k ».\n"
-"\t(không cứ làm, dừng)\n"
+" -S, --no-keep-going, --stop\n"
+" Tắt -k.\n"
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
-msgstr ""
-" -t, --touch Touch các đích thay vào tạo lại chúng.\n"
-"\t(_sá»_)\n"
+msgstr " -t, --touch SỠđích thay vì tạo lại.\n"
+
+#: main.c:372
+msgid " --trace Print tracing information.\n"
+msgstr " --trace Hiển thị thông tin dấu vết.\n"
-#: main.c:360
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
-msgstr ""
-" -v, --version In ra số thứ tự _phiên bản_ của trình make, "
-"rồi thoát.\n"
+msgstr " -v, --version Hiển thị phiên bản make và thoát.\n"
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
-msgstr " -w, --print-directory _In ra thÆ° mục_ hiện thá»i.\n"
+msgstr " -w, --print-directory Hiển thị thÆ° mục hiện thá»i.\n"
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
-msgstr ""
-" --no-print-directory Tắt « -w », dù khi nó được bật ngầm\n"
-"\t(_không in ra thư mục_)\n"
+msgstr " --no-print-directory Tắt -w, thậm chí nếu được bật ngầm.\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"
msgstr ""
-" -W TẬP_TIN\n"
-" --what-if=TẬP_TIN\n"
-" --new-file=TẬP_TIN\n"
-" --assume-new=TẬP_TIN\n"
-" \t\t\tXem là tập tin này là mới vô hạn.\n"
-"\t(_gì nếu, tập tin mới, giả sử mới_)\n"
-
-#: main.c:369
+" -W TẬP-TIN, --what-if=TẬP-TIN, --new-file=TẬP-TIN, --assume-new=TẬP-TIN\n"
+" Giả định TẬP-TIN là mới vô hạn.\n"
+
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
msgstr ""
-" --warn-undefined-variables\n"
-"\t\t_Cảnh báo_ khi tham chiếu một _biến chưa được định nghĩa_.\n"
+" --warn-undefined-variables Cảnh báo tham chiếu đến biến chưa xác định.\n"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
-msgstr "chuỗi rỗng không hợp lệ dạng tên tập tin"
+msgstr "chuỗi rỗng không hợp lệ làm tên tập tin"
-#: main.c:650
+#: main.c:734
#, c-format
-msgid "unknown debug level specification `%s'"
-msgstr "không biết đặc tả cấp gỡ lỗi « %s »"
+msgid "unknown debug level specification '%s'"
+msgstr "không rõ đặc tả cấp gỡ rối “%sâ€"
-#: main.c:690
-#, fuzzy, c-format
+#: main.c:777
+#, c-format
+msgid "unknown output-sync type '%s'"
+msgstr "không hiểu kiểu output-sync “%sâ€"
+
+#: main.c:787
+msgid "internal error: multiple --sync-mutex options"
+msgstr "lá»—i ná»™i bá»™: có nhiá»u tùy chá»n --sync-mutex"
+
+#: main.c:848
+#, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
-msgstr ""
-"%s: Mới bắt Interrupt/Exception (ngắt/ngoài lệ) (mã = 0x%lx, địa chỉ = 0x%"
-"lx)\n"
+msgstr "%s: Bắt được ngắt/ngoại lệ (mã = 0x%lx, địa chỉ = 0x%p)\n"
-#: main.c:697
-#, fuzzy, c-format
+#: main.c:855
+#, c-format
msgid ""
"\n"
"Unhandled exception filter called from program %s\n"
@@ -965,228 +1084,233 @@ msgid ""
"ExceptionAddress = 0x%p\n"
msgstr ""
"\n"
-"Bá»™ lá»c ngoại lệ không đã quản lý được gá»i từ chÆ°Æ¡ng trình %s\n"
-"ExceptionCode \t\tmã ngoại lệ\t %lx\n"
-"ExceptionFlags \t\tcác cỠngoại lệ %lx\n"
-"ExceptionAddress \t\tđịa chỉ ngoại lệ %lx\n"
+"Bá»™ lá»c ngoại lệ không quản lý được gá»i từ chÆ°Æ¡ng trình %s\n"
+"ExceptionCode (mã ngoại lệ) = %lx\n"
+"ExceptionFlags (các cỠngoại lệ) = %lx\n"
+"ExceptionAddress (địa chỉ ngoại lệ) = 0x%p\n"
-#: main.c:705
-#, fuzzy, c-format
+#: main.c:863
+#, c-format
msgid "Access violation: write operation at address 0x%p\n"
-msgstr "Vi phạm truy cập: thao tác ghi tại địa chỉ %lx\n"
+msgstr "Vi phạm truy cập: thao tác ghi tại địa chỉ 0x%p\n"
-#: main.c:706
-#, fuzzy, c-format
+#: main.c:864
+#, c-format
msgid "Access violation: read operation at address 0x%p\n"
-msgstr "Vi phạm truy cập: thao tác Ä‘á»c tại địa chỉ %lx\n"
+msgstr "Vi phạm truy cập: thao tác Ä‘á»c tại địa chỉ 0x%p\n"
-#: main.c:781 main.c:792
-#, fuzzy, c-format
+#: main.c:940 main.c:955
+#, c-format
msgid "find_and_set_shell() setting default_shell = %s\n"
-msgstr ""
-"« find_and_set_shell » (tìm và lập hệ vá») Ä‘ang lập « default_shell » (hệ vá» "
-"mặc định) = %s\n"
+msgstr "find_and_set_shell() đang đặt default_shell = %s\n"
-#: main.c:834
-#, fuzzy, c-format
+#: main.c:1008
+#, c-format
msgid "find_and_set_shell() path search set default_shell = %s\n"
-msgstr ""
-"Việc tìm kiếm Ä‘Æ°á»ng dẫn « find_and_set_shell » (tìm và lập hệ vá») Ä‘ang lập « "
-"default_shell » (hệ vỠmặc định) = %s\n"
+msgstr "find_and_set_shell() đã quét Ä‘Æ°á»ng dẫn thì đặt default_shell = %s\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
-msgstr "%s đang ngưng được 30 giây..."
+msgstr "%s đang ngưng trong 30 giây..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
-msgstr "đã ngủ(30). Äang tiếp tục.\n"
-
-#: main.c:1501
-msgid "Makefile from standard input specified twice."
-msgstr "Tập tin tạo (makefile) từ thiết bị nhập chuẩn đã được ghi rõ hai lần."
+msgstr "đã ngủ(30). Tiếp tục.\n"
-#: main.c:1539 vmsjobs.c:500
-msgid "fopen (temporary file)"
-msgstr ""
-"fopen (tập tin tạm thá»i)\n"
-" (_mở tập tin_)"
+#: main.c:1534
+msgid "internal error: multiple --jobserver-fds options"
+msgstr "lá»—i ná»™i bá»™: có nhiá»u tùy chá»n --jobserver-fds"
-#: main.c:1545
-msgid "fwrite (temporary file)"
+#: main.c:1544
+#, c-format
+msgid ""
+"internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
msgstr ""
-"fwrite (tập tin tạm thá»i)\n"
-" (_ghi tập tin_)"
+"lá»—i ná»™i tại: không thể mở cá» hiệu máy phục vụ công việc “%sâ€: (Lá»—i %ld: %s)"
-#: main.c:1703
-msgid "Parallel jobs (-j) are not supported on this platform."
-msgstr "Công việc song song (-j) không được há»— trợ trên ná»n tảng này."
-
-#: main.c:1704
-msgid "Resetting to single job (-j1) mode."
-msgstr "Äang lập lại thành chế Ä‘á»™ công việc Ä‘Æ¡n (-j1)."
-
-#: main.c:1719
-msgid "internal error: multiple --jobserver-fds options"
-msgstr ""
-"lá»—i ná»™i bá»™: có nhiá»u tùy chá»n « --jobserver-fds » (trình phục vụ công việc -"
-"fds)."
+#: main.c:1547
+#, c-format
+msgid "Jobserver client (semaphore %s)\n"
+msgstr "Ứng dụng khách jobserver (cỠhiệu %s)\n"
-#: main.c:1727
+#: main.c:1551
#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
-msgstr ""
-"lỗi nội bộ: gặp chuỗi « --jobserver-fds » (trình phục vụ công việc -fds) "
-"không hợp lệ « %s »."
+msgid "internal error: invalid --jobserver-fds string '%s'"
+msgstr "lỗi nội bộ: gặp chuỗi --jobserver-fds “%s†không hợp lệ"
-#: main.c:1730
+#: main.c:1554
#, c-format
msgid "Jobserver client (fds %d,%d)\n"
-msgstr ""
+msgstr "Ứng dụng khách jobserver (fds %d,%d)\n"
-#: main.c:1740
+#: main.c:1567
msgid "warning: -jN forced in submake: disabling jobserver mode."
-msgstr ""
-"cảnh báo : « -jN » bị buộc trong tiến trình submake: nên tắt chế độ trình "
-"phục vụ công việc (jobserver)."
+msgstr "cảnh báo: -jN bị ép buộc trong make con: tắt chế độ jobserver."
-#: main.c:1750
+#: main.c:1583
msgid "dup jobserver"
-msgstr "dup jobserver (sao lục trình phục vụ công việc)"
+msgstr "dup jobserver"
-#: main.c:1753
+#: main.c:1586
msgid ""
-"warning: jobserver unavailable: using -j1. Add `+' to parent make rule."
+"warning: jobserver unavailable: using -j1. Add '+' to parent make rule."
msgstr ""
-"cảnh báo : trình phục vụ công việc không sẵn sàng: nên dùng « -j1 ». Hãy thêm "
-"« + » vào quy tắc make mẹ."
+"cảnh báo: trình jobserver không sẵn sàng: dùng -j1. Thêm “+†vào quy tắc "
+"make cha."
+
+#: main.c:1752
+msgid "Makefile from standard input specified twice."
+msgstr "Tập tin makefile từ đầu vào chuẩn được ghi hai lần."
+
+#: main.c:1790 vmsjobs.c:496
+msgid "fopen (temporary file)"
+msgstr "fopen (tập tin tạm)"
+
+#: main.c:1796
+msgid "fwrite (temporary file)"
+msgstr "fwrite (tập tin tạm)"
-#: main.c:1777
+#: main.c:1984
+msgid "Parallel jobs (-j) are not supported on this platform."
+msgstr "Không hỗ trợ công việc song song (-j) trên hệ thống này."
+
+#: main.c:1985
+msgid "Resetting to single job (-j1) mode."
+msgstr "Äặt lại thành chế Ä‘á»™ công việc Ä‘Æ¡n (-j1)."
+
+#: main.c:2006
+#, c-format
+msgid "Jobserver slots limited to %d\n"
+msgstr "Khe jobserver bị giới hạn thành %d\n"
+
+#: main.c:2012
+#, c-format
+msgid "creating jobserver semaphore: (Error %ld: %s)"
+msgstr "đang tạo tín hiệu jobserver: (Lỗi %ld: %s)"
+
+#: main.c:2019
msgid "creating jobs pipe"
-msgstr "đang tạo ống dẫn công việc"
+msgstr "tạo ống dẫn công việc"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
-msgstr "init jobserver pipe (sở khởi ống dẫn trình phục vụ công việc)"
+msgstr "init jobserver pipe"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
-msgstr "Không hỗ trợ liên kết tượng trưng: nên tắt « -L »."
+msgstr "Không há»— trợ liên kết má»m: tắt -L."
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
-msgstr "Äạng cập nhật các tập tin tạo (makefile)...\n"
+msgstr "Cập nhật makefile...\n"
-#: main.c:1917
+#: main.c:2174
#, c-format
-msgid "Makefile `%s' might loop; not remaking it.\n"
-msgstr "Tập tin tạo (makefile) « %s » có lẽ sẽ vòng lặp; sẽ không tạo lại nó.\n"
+msgid "Makefile '%s' might loop; not remaking it.\n"
+msgstr "Makefile “%s†bị lặp; không tạo lại nó.\n"
-#: main.c:1996
+#: main.c:2253
#, c-format
-msgid "Failed to remake makefile `%s'."
-msgstr "Việc tạo lại tập tin tạo (makefile) « %s » bị lỗi."
+msgid "Failed to remake makefile '%s'."
+msgstr "Gặp lá»—i khi làm lại makefile “%sâ€."
-#: main.c:2013
+#: main.c:2270
#, c-format
-msgid "Included makefile `%s' was not found."
-msgstr "Không tìm thấy tập tin tạo (makefile) đã bao gồm « %s »."
+msgid "Included makefile '%s' was not found."
+msgstr "Không tìm thấy makefile bao gồm “%sâ€."
-#: main.c:2018
+#: main.c:2275
#, c-format
-msgid "Makefile `%s' was not found"
-msgstr "Không tìm thấy tập tin tạo (makefile) « %s »."
+msgid "Makefile '%s' was not found"
+msgstr "Không tìm thấy makefile “%sâ€."
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
-msgstr "Không thể chuyển đổi vỠthư mục gốc."
+msgstr "Không thể chuyển vỠthư mục gốc."
-#: main.c:2102
+#: main.c:2354
#, c-format
msgid "Re-executing[%u]:"
-msgstr "Äang thá»±c hiện lại[%u]:"
+msgstr "Thực hiện lại[%u]:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
-msgstr "unlink (bá» liên kết) (tập tin tạm thá»i): "
+msgstr "unlink (bỠliên kết tập tin tạm): "
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
-msgstr "« .DEFAULT_GOAL » (đích mặc định) chứa nhiá»u đích."
+msgstr ".DEFAULT_GOAL chứa nhiá»u đích"
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
-msgstr "Chưa ghi rõ đích nào, và không tìm thấy tập tin tạo (makefile) nào"
+msgstr "Chưa xác định đích, và không tìm thấy makefile"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "Không có đích"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
-msgstr "Äạng cập nhật các đích mục tiêu...\n"
+msgstr "Cập nhật đích mục tiêu...\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr ""
-"cảnh báo : mới phát hiện đối xứng lệch đồng hồ. Như thế thì bản xây dụng có "
-"lẽ không hoàn toàn."
+"cảnh báo: Phát hiện lệch giá». Bản dịch của bạn có thể không hoàn thiện."
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
-msgstr "Cách sá»­ dụng: %s [tùy_chá»n...] [đích] ...\n"
+msgstr "Cách dùng: %s [các_tùy_chá»n] [đích] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
"This program built for %s\n"
msgstr ""
"\n"
-"Chương trình này đã được xây dụng cho %s\n"
+"Chương trình này đã được dịch cho %s\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
"This program built for %s (%s)\n"
msgstr ""
"\n"
-"Chương trình này đã được xây dụng cho %s (%s)\n"
+"Chương trình này đã được dịch cho %s (%s)\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
-msgstr "Hãy thông báo lỗi cho <bug-make@gnu.org>.\n"
+msgstr ""
+"Hãy thông báo lỗi cho <bug-make@gnu.org>\n"
+"Hãy thông báo lỗi dịch cho <http://translationproject.org/team/vi.html>.\n"
-#: main.c:2562
-#, fuzzy, c-format
-msgid "the `%s%s' option requires a non-empty string argument"
-msgstr "tùy chá»n « -%c » cần đến má»™t đối số dạng chuá»—i không rá»—ng"
+#: main.c:2810
+#, c-format
+msgid "the '%s%s' option requires a non-empty string argument"
+msgstr "tùy chá»n “%s%s†cần má»™t đối số là chuá»—i khác rá»—ng"
-#: main.c:2617
+#: main.c:2864
#, c-format
-msgid "the `-%c' option requires a positive integral argument"
-msgstr "tùy chá»n « -%c » cần đến má»™t đối số dạng số nguyên dÆ°Æ¡ng"
+msgid "the '-%c' option requires a positive integer argument"
+msgstr "tùy chá»n “-%c†cần má»™t đối số số nguyên dÆ°Æ¡ng"
-#: main.c:3054
-#, fuzzy, c-format
+#: main.c:3253
+#, c-format
msgid "%sBuilt for %s\n"
-msgstr ""
-"\n"
-"%sChương trình này đã được xây dụng cho %s\n"
+msgstr "%sÄược dịch cho %s\n"
-#: main.c:3056
-#, fuzzy, c-format
+#: main.c:3255
+#, c-format
msgid "%sBuilt for %s (%s)\n"
-msgstr ""
-"\n"
-"%sChương trình này đã được xây dụng cho %s (%s)\n"
+msgstr "%sÄược dịch cho %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."
@@ -1194,128 +1318,132 @@ msgid ""
"%sThis is free software: you are free to change and redistribute it.\n"
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
+"%sGiấy phép GPL pb3+: Giấy phép Công cộng GNU phiên bản 3 hay sau <http://"
+"gnu.org/licenses/gpl.html>\n"
+"%sÄây là phần má»m tá»± do: bạn có quyá»n sá»­a đổi và phát hành lại nó.\n"
+"%sKHÔNG CÓ BẢO HÀNH GÃŒ CẢ, vá»›i Ä‘iá»u khiển được pháp luật cho phép.\n"
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
"# Make data base, printed on %s"
msgstr ""
"\n"
-"# Cơ sở dữ liệu Make, được in ra vào %s"
+"# Cơ sở dữ liệu Make, in lúc %s"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
"# Finished Make data base on %s\n"
msgstr ""
"\n"
-"# Mới xong cơ sở dữ liệu Make vào %s\n"
+"# Hoàn tất cơ sở dữ liệu Make lúc %s\n"
+
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "Lỗi lạ %d"
+
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "hết bộ nhớ ảo"
+
+#: misc.c:522
+#, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s: ngÆ°á»i dùng %lu (thật %lu), nhóm %lu (thật %lu)\n"
+
+#: misc.c:543
+msgid "Initialized access"
+msgstr "Truy cập đã được khởi tạo"
+
+#: misc.c:622
+msgid "User access"
+msgstr "Truy cập ngÆ°á»i dùng"
-#: main.c:3237
+#: misc.c:670
+msgid "Make access"
+msgstr "Truy cập Make"
+
+#: misc.c:704
+msgid "Child access"
+msgstr "Truy cập con"
+
+#: output.c:128
#, c-format
msgid "%s: Entering an unknown directory\n"
-msgstr "%s: Äang vào má»™t thÆ° mục lạ\n"
+msgstr "%s: Vào thư mục lạ\n"
-#: main.c:3239
+#: output.c:130
#, c-format
msgid "%s: Leaving an unknown directory\n"
-msgstr "%s: Äang rá»i khá»i má»™t thÆ° mục lạ\n"
+msgstr "%s: Rá»i khá»i thÆ° mục lạ\n"
-#: main.c:3242
+#: output.c:133
#, c-format
-msgid "%s: Entering directory `%s'\n"
-msgstr "%s: Äang vào thÆ° mục « %s »\n"
+msgid "%s: Entering directory '%s'\n"
+msgstr "%s: Vào thÆ° mục “%sâ€\n"
-#: main.c:3245
+#: output.c:135
#, c-format
-msgid "%s: Leaving directory `%s'\n"
-msgstr "%s: Äang rá»i khá»i thÆ° mục « %s »\n"
+msgid "%s: Leaving directory '%s'\n"
+msgstr "%s: Rá»i thÆ° mục “%sâ€\n"
-#: main.c:3250
+#: output.c:139
#, c-format
msgid "%s[%u]: Entering an unknown directory\n"
-msgstr "%s[%u]: Äang vào má»™t thÆ° mục lạ\n"
+msgstr "%s[%u]: Vào thư mục lạ\n"
-#: main.c:3253
+#: output.c:141
#, c-format
msgid "%s[%u]: Leaving an unknown directory\n"
-msgstr "%s[%u]: Äang rá»i khá»i má»™t thÆ° mục lạ\n"
+msgstr "%s[%u]: Rá»i thÆ° mục lạ\n"
-#: main.c:3257
+#: output.c:144
#, c-format
-msgid "%s[%u]: Entering directory `%s'\n"
-msgstr "%s[%u]: Äang vào thÆ° mục « %s »\n"
+msgid "%s[%u]: Entering directory '%s'\n"
+msgstr "%s[%u]: Vào thÆ° mục “%sâ€\n"
-#: main.c:3260
+#: output.c:146
#, c-format
-msgid "%s[%u]: Leaving directory `%s'\n"
-msgstr "%s[%u]: Äang rá»i khá»i thÆ° mục « %s »\n"
+msgid "%s[%u]: Leaving directory '%s'\n"
+msgstr "%s[%u]: Rá»i thÆ° mục “%sâ€\n"
-#: misc.c:316
+#: output.c:515
+#, c-format
+msgid "write error: %s"
+msgstr "lá»—i ghi: %s"
+
+#: output.c:517
+msgid "write error"
+msgstr "lá»—i ghi"
+
+#: output.c:740
msgid ". Stop.\n"
msgstr ". Dừng.\n"
-#: misc.c:337
-#, c-format
-msgid "Unknown error %d"
-msgstr "Không biết lỗi: %d"
-
# Variable: don't translate / Biến: đừng dịch
-#: misc.c:347
+#: output.c:751
#, c-format
msgid "%s%s: %s"
msgstr "%s%s: %s"
# Variable: do not translate/ biến: đừng dịch
-#: 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 "hết bộ nhớ ảo hoàn toàn"
-
-#: misc.c:708
-#, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s: ngÆ°á»i dùng %lu (thật %lu), nhóm %lu (thật %lu)\n"
-
-#: misc.c:729
-msgid "Initialized access"
-msgstr "Truy cấp đã sở khởi"
-
-#: misc.c:808
-msgid "User access"
-msgstr "Truy cập ngÆ°á»i dùng"
-
-#: misc.c:856
-msgid "Make access"
-msgstr "Truy cập Make"
-
-#: misc.c:890
-msgid "Child access"
-msgstr "Truy cập Ä‘iá»u con"
-
-#: misc.c:954
-#, c-format
-msgid "write error: %s"
-msgstr "lá»—i ghi: %s"
-
-#: misc.c:956
-msgid "write error"
-msgstr "lá»—i ghi"
-
-#: read.c:179
+#: read.c:180
msgid "Reading makefiles...\n"
-msgstr "Äạng Ä‘á»c các tập tin tạo (makefile)...\n"
+msgstr "Äá»c makefile...\n"
#: read.c:333
#, c-format
-msgid "Reading makefile `%s'"
-msgstr "Äạng Ä‘á»c tập tin tạo (makefile) « %s »..."
+msgid "Reading makefile '%s'"
+msgstr "Äá»c makefile “%sâ€"
#: read.c:335
#, c-format
@@ -1330,338 +1458,346 @@ msgstr " (Ä‘Æ°á»ng dẫn tìm kiếm)"
#: read.c:339
#, c-format
msgid " (don't care)"
-msgstr " (cũng được)"
+msgstr " (không quan tâm)"
#: read.c:341
#, c-format
msgid " (no ~ expansion)"
-msgstr " (không mở rộng ~)"
+msgstr " (không nối thêm ~)"
-#: read.c:759
+#: read.c:652
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile '%s'\n"
+msgstr "Bá» qua UTF-8 BOM trong makefile “%sâ€\n"
+
+#: read.c:655
+#, c-format
+msgid "Skipping UTF-8 BOM in makefile buffer\n"
+msgstr "BỠqua UTF-8 BOM trong bộ đệm makefile\n"
+
+#: read.c:786
msgid "invalid syntax in conditional"
-msgstr "gặp cú pháp không hợp lệ trong đồ Ä‘iá»u kiện"
+msgstr "cú pháp không hợp lệ trong biểu thức Ä‘iá»u kiện"
+
+#: read.c:961
+#, c-format
+msgid "%s: failed to load"
+msgstr "%s: gặp lỗi khi tải"
-#: read.c:891
-#, fuzzy
+#: read.c:987
msgid "recipe commences before first target"
-msgstr "lệnh bắt đầu trước đích thứ nhất"
+msgstr "công thức bắt đầu trước đích thứ nhất"
-#: read.c:940
-#, fuzzy
+#: read.c:1036
msgid "missing rule before recipe"
-msgstr "thiếu quy tắc trước các lệnh"
+msgstr "thiếu quy tắc trước công thức"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
-msgstr "thiếu bộ phân cách%s"
+msgstr "thiếu dấu cách%s"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
-msgstr " (bạn có muốn dùng TAB thay vào 8 dấu cách chứ?)"
+msgstr " (bạn đã định dùng TAB thay vì 8 khoảng trắng phải không?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
msgstr "thiếu mẫu đích"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
msgstr "nhiá»u mẫu đích"
-#: read.c:1169
+#: read.c:1269
#, c-format
-msgid "target pattern contains no `%%'"
-msgstr "mẫu đích không chứa « %% »"
+msgid "target pattern contains no '%%'"
+msgstr "mẫu đích không chứa “%%â€"
-#: read.c:1293
-msgid "missing `endif'"
-msgstr "thiếu « endif »"
+#: read.c:1391
+msgid "missing 'endif'"
+msgstr "thiếu “endifâ€"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "tên biến rỗng"
-#: read.c:1367
-#, fuzzy
-msgid "extraneous text after `define' directive"
-msgstr "Gặp chuỗi chữ bắt nguồn ở ngoài sau chi thị « endef »"
+#: read.c:1465
+msgid "extraneous text after 'define' directive"
+msgstr "gặp các ký tá»± thừa đằng sau chỉ thị “defineâ€"
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
-msgstr "thiếu « endef », « define » (định nghĩa) chưa kết thúc"
+#: read.c:1490
+msgid "missing 'endef', unterminated 'define'"
+msgstr "thiếu “endefâ€, chỉ thị “define†chÆ°a hoàn tất"
-#: read.c:1420
-#, fuzzy
-msgid "extraneous text after `endef' directive"
-msgstr "Gặp chuỗi chữ bắt nguồn ở ngoài sau chi thị « endef »"
+#: read.c:1518
+msgid "extraneous text after 'endef' directive"
+msgstr "gặp các ký tá»± thừa đằng sau chỉ thị “endefâ€"
-#: read.c:1490
+#: read.c:1589
#, c-format
-msgid "Extraneous text after `%s' directive"
-msgstr "Gặp chuỗi chữ bắt nguồn ở ngoài sau chi thị « %s »"
+msgid "extraneous text after '%s' directive"
+msgstr "gặp các ký tá»± thừa đằng sau chỉ thị “%sâ€"
-#: read.c:1499 read.c:1513
+#: read.c:1598 read.c:1612
#, c-format
-msgid "extraneous `%s'"
-msgstr "gặp « %s » bắt nguồn ở ngoài"
+msgid "extraneous '%s'"
+msgstr "gặp “%s†thừa"
-#: read.c:1518
-msgid "only one `else' per conditional"
-msgstr "chỉ cho phép má»™t « else » (nếu không thì) cho má»—i đồ Ä‘iá»u kiện thôi"
+#: read.c:1617
+msgid "only one 'else' per conditional"
+msgstr "chỉ cho phép má»™t “else†cho má»—i biểu thức Ä‘iá»u kiện"
-#: read.c:1797
+#: read.c:1892
msgid "Malformed target-specific variable definition"
-msgstr "Lá»i định nghÄ©a biến đặc trÆ°ng cho đích dạng sai"
+msgstr "Äịnh nghÄ©a biến đích riêng biệt bị há»ng"
-#: read.c:1855
-#, fuzzy
+#: read.c:1951
msgid "prerequisites cannot be defined in recipes"
-msgstr "không thể định nghÄ©a Ä‘iá»u kiện tiên quyết trong tập lệnh kiểu lệnh"
+msgstr "không thể định nghÄ©a Ä‘iá»u kiện tiên quyết cho công thức"
-#: read.c:1908
+#: read.c:2009
msgid "mixed implicit and static pattern rules"
-msgstr "gặp quy tắc mẫu kiểu ngầm và tĩnh được trộn với nhau"
+msgstr "trộn lẫn quy tắc ngầm và mẫu tĩnh"
-#: read.c:1931 read.c:2112
+#: read.c:2032 read.c:2220
msgid "mixed implicit and normal rules"
-msgstr "gặp quy tắc mẫu kiểu ngầm và chuẩn được trộn với nhau"
+msgstr "trá»™n quy tắc ngầm và thÆ°á»ng"
-#: read.c:1976
+#: read.c:2084
#, c-format
-msgid "target `%s' doesn't match the target pattern"
-msgstr "đích « %s » không khớp với mẫu đích"
+msgid "target '%s' doesn't match the target pattern"
+msgstr "đích “%s†không tương ứng với mẫu đích"
-#: read.c:1991 read.c:2036
+#: read.c:2099 read.c:2144
#, c-format
-msgid "target file `%s' has both : and :: entries"
-msgstr "tập tin đích « %s » có mục nhập kiểu cả « : » lẫn « :: » Ä‘á»u"
+msgid "target file '%s' has both : and :: entries"
+msgstr "tập tin đích “%s†có cả hai mục nhập : và ::"
-#: read.c:1997
+#: read.c:2105
#, c-format
-msgid "target `%s' given more than once in the same rule."
-msgstr "đích « %s » được Ä‘Æ°a ra nhiá»u lần trong cùng má»™t quy tắc"
+msgid "target '%s' given more than once in the same rule"
+msgstr "đích “%s†có nhiá»u hÆ¡n má»™t trong cùng má»™t quy tắc"
-#: read.c:2006
-#, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
-msgstr "cảnh báo : đang đè lên các lệnh cho đích « %s »"
+#: read.c:2114
+#, c-format
+msgid "warning: overriding recipe for target '%s'"
+msgstr "cảnh báo: đè công thức cho đích “%sâ€"
-#: read.c:2009
-#, fuzzy, c-format
-msgid "warning: ignoring old recipe for target `%s'"
-msgstr "cảnh báo : đang bỠqua các lệnh cũ cho đích « %s »"
+#: read.c:2117
+#, c-format
+msgid "warning: ignoring old recipe for target '%s'"
+msgstr "cảnh báo: bá» qua công thức cÅ© cho đích “%sâ€"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
-msgstr "cảnh báo : đã xem ký tự NUL (rỗng) nên bỠqua phần còn lại của dòng đó"
+msgstr "cảnh báo: thấy ký tự NUL; bỠqua phần còn lại của dòng"
-#: remake.c:234
+#: remake.c:232
#, c-format
-msgid "Nothing to be done for `%s'."
-msgstr "Không có gì cần làm cho « %s »."
+msgid "Nothing to be done for '%s'."
+msgstr "Không cần làm gì cho “%sâ€."
-#: remake.c:235
+#: remake.c:233
#, c-format
-msgid "`%s' is up to date."
-msgstr "« %s » là hiện thá»i."
+msgid "'%s' is up to date."
+msgstr "Äã cập nhật “%sâ€."
-#: remake.c:306
+#: remake.c:305
#, c-format
-msgid "Pruning file `%s'.\n"
-msgstr "Äang xén bá»›t tập tin « %s ».\n"
+msgid "Pruning file '%s'.\n"
+msgstr "Xén bá»›t tập tin “%sâ€.\n"
-#: remake.c:359
+#: remake.c:377
#, c-format
-msgid "%sNo rule to make target `%s'%s"
-msgstr "%sKhông có quy tắc tới đích make « %s »%s"
+msgid "%sNo rule to make target '%s'%s"
+msgstr "%sKhông có quy tắc để tạo đích “%sâ€%s"
-#: remake.c:361
+#: remake.c:379
#, c-format
-msgid "%sNo rule to make target `%s', needed by `%s'%s"
-msgstr "%sKhông có quy tắc tới đích make « %s », cần thiết bởi « %s »%s"
+msgid "%sNo rule to make target '%s', needed by '%s'%s"
+msgstr "%sKhông có quy tắc để tạo đích “%sâ€, cần bởi “%sâ€%s"
#: remake.c:413
#, c-format
-msgid "Considering target file `%s'.\n"
-msgstr "Äang suy nghÄ© tập tin đích « %s ».\n"
+msgid "Considering target file '%s'.\n"
+msgstr "Coi tập tin đích “%sâ€.\n"
#: remake.c:420
#, c-format
-msgid "Recently tried and failed to update file `%s'.\n"
-msgstr "Vừa cố cập nhật tập tin « %s » nhưng bị lỗi.\n"
+msgid "Recently tried and failed to update file '%s'.\n"
+msgstr "Vừa thá»­ và thất bại khi cập nhật “%sâ€.\n"
#: remake.c:432
#, c-format
-msgid "File `%s' was considered already.\n"
-msgstr "Tập tin « %s » đã được suy nghĩ.\n"
+msgid "File '%s' was considered already.\n"
+msgstr "Coi tập tin “%s†là đã sẵn sàng rồi.\n"
#: remake.c:442
#, c-format
-msgid "Still updating file `%s'.\n"
-msgstr "Vẫn còn đang cập nhật tập tin « %s »...\n"
+msgid "Still updating file '%s'.\n"
+msgstr "Vẫn Ä‘ang cập nhật tập tin “%sâ€.\n"
#: remake.c:445
#, c-format
-msgid "Finished updating file `%s'.\n"
-msgstr "Mới cập nhật xong tập tin « %s ».\n"
+msgid "Finished updating file '%s'.\n"
+msgstr "Hoàn tất cập nhật tập tin “%sâ€.\n"
#: remake.c:474
#, c-format
-msgid "File `%s' does not exist.\n"
-msgstr "Tập tin « %s » không tồn tại.\n"
+msgid "File '%s' does not exist.\n"
+msgstr "Tập tin “%s†không tồn tại.\n"
#: remake.c:481
#, 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 ""
-"*** Cảnh báo : tập tin « .LOW_RESOLUTION_TIME » (thá»i gian giải pháp thấp) « %"
-"s » có nhãn thá»i gian cao"
+"*** Cảnh báo: tập tin .LOW_RESOLUTION_TIME “%s†có nhãn thá»i gian Ä‘á»™ phân "
+"giải cao"
-#: remake.c:494 remake.c:1016
+#: remake.c:494 remake.c:1019
#, c-format
-msgid "Found an implicit rule for `%s'.\n"
-msgstr "Tìm thấy một quy tắc ngầm cho « %s ».\n"
+msgid "Found an implicit rule for '%s'.\n"
+msgstr "Tìm thấy quy tắc ngầm cho “%sâ€.\n"
-#: remake.c:496 remake.c:1018
+#: remake.c:496 remake.c:1021
#, c-format
-msgid "No implicit rule found for `%s'.\n"
-msgstr "Không tìm thấy quy tắc ngầm cho « %s »\n"
+msgid "No implicit rule found for '%s'.\n"
+msgstr "Không tìm thấy quy tắc ngầm cho “%sâ€.\n"
#: remake.c:502
-#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
-msgstr "Äang dùng các lệnh mặc định cho « %s ».\n"
+#, c-format
+msgid "Using default recipe for '%s'.\n"
+msgstr "Dùng công thức mặc định cho “%sâ€.\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
-msgstr "Cách phụ thuá»™c vòng tròn « %s ↠%s » bị gỡ bá»."
+msgstr "BỠphụ thuộc vòng tròn %s <- %s."
-#: remake.c:651
+#: remake.c:655
#, c-format
-msgid "Finished prerequisites of target file `%s'.\n"
-msgstr "Má»›i xong các Ä‘iá»u kiện tiên quyết của tập tin đích « %s ».\n"
+msgid "Finished prerequisites of target file '%s'.\n"
+msgstr "Hoàn tất Ä‘iá»u kiện tiên quyết của tập tin đích “%sâ€.\n"
-#: remake.c:657
+#: remake.c:661
#, c-format
-msgid "The prerequisites of `%s' are being made.\n"
-msgstr "Äang tạo các Ä‘iá»u kiện tiên quyết của « %s ».\n"
+msgid "The prerequisites of '%s' are being made.\n"
+msgstr "Äang tạo Ä‘iá»u kiện tiên quyết của “%sâ€.\n"
-#: remake.c:670
+#: remake.c:674
#, c-format
-msgid "Giving up on target file `%s'.\n"
-msgstr "Äang chịu thua vá» tập tin đích « %s ».\n"
+msgid "Giving up on target file '%s'.\n"
+msgstr "Chịu thua tập tin đích “%sâ€.\n"
-#: remake.c:675
+#: remake.c:679
#, c-format
-msgid "Target `%s' not remade because of errors."
-msgstr "Äích « %s » không được tạo lại vì gặp lá»—i."
+msgid "Target '%s' not remade because of errors."
+msgstr "Äích “%s†không được tạo lại do lá»—i."
-#: remake.c:727
+#: remake.c:731
#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
-msgstr ""
-"Äiá»u kiện tiên quyết « %s » là order-only (chỉ thứ tá»±) cho đích « %s ».\n"
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
+msgstr "Äiá»u kiện tiên quyết “%s†là order-only (chỉ thứ tá»±) cho đích “%sâ€.\n"
-#: remake.c:732
+#: remake.c:736
#, c-format
-msgid "Prerequisite `%s' of target `%s' does not exist.\n"
-msgstr "Äiá»u kiện tiên quyết « %s » của đích « %s » không tồn tại.\n"
+msgid "Prerequisite '%s' of target '%s' does not exist.\n"
+msgstr "Äiá»u kiện tiên quyết “%s†của đích “%s†không tồn tại.\n"
-#: remake.c:737
+#: remake.c:741
#, c-format
-msgid "Prerequisite `%s' is newer than target `%s'.\n"
-msgstr "Äiá»u kiện tiên quyết « %s » là má»›i hÆ¡n đích « %s » .\n"
+msgid "Prerequisite '%s' is newer than target '%s'.\n"
+msgstr "Äiá»u kiện tiên quyết “%s†là má»›i hÆ¡n đích “%s†.\n"
-#: remake.c:740
+#: remake.c:744
#, c-format
-msgid "Prerequisite `%s' is older than target `%s'.\n"
-msgstr "Äiá»u kiện tiên quyết « %s » là cÅ© hÆ¡n đích « %s » .\n"
+msgid "Prerequisite '%s' is older than target '%s'.\n"
+msgstr "Äiá»u kiện tiên quyết “%s†cÅ© hÆ¡n đích “%s†.\n"
-#: remake.c:758
+#: remake.c:762
#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
-msgstr ""
-"Äích « %s » là kiểu dấu hai chấm đôi và không có Ä‘iá»u kiện tiên quyết nào.\n"
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
+msgstr "Äích “%s†là hai chấm đôi và không có Ä‘iá»u kiện tiên quyết.\n"
-#: remake.c:765
-#, fuzzy, c-format
-msgid "No recipe for `%s' and no prerequisites actually changed.\n"
+#: remake.c:769
+#, c-format
+msgid "No recipe for '%s' and no prerequisites actually changed.\n"
msgstr ""
-"Không có lệnh cho « %s », và chÆ°a thật sá»± thay đổi Ä‘iá»u kiện tiên quyết nào.\n"
+"Không có công thức cho “%s†và chÆ°a thay đổi Ä‘iá»u kiện tiên quyết nào.\n"
-#: remake.c:770
+#: remake.c:774
#, c-format
-msgid "Making `%s' due to always-make flag.\n"
-msgstr "Äang tạo « %s » vì gặp cá» always-make (luôn luôn tạo).\n"
+msgid "Making '%s' due to always-make flag.\n"
+msgstr "Tạo “%s†do cỠalways-make.\n"
-#: remake.c:778
+#: remake.c:782
#, c-format
-msgid "No need to remake target `%s'"
-msgstr "Không cần tạo lại đích « %s »."
+msgid "No need to remake target '%s'"
+msgstr "Không cần tạo lại đích “%sâ€."
-#: remake.c:780
+#: remake.c:784
#, c-format
-msgid "; using VPATH name `%s'"
-msgstr "; Ä‘ang dùng tên VPATH (Ä‘Æ°á»ng dẫn V) « %s »"
+msgid "; using VPATH name '%s'"
+msgstr "; dùng tên VPATH “%sâ€"
-#: remake.c:800
+#: remake.c:804
#, c-format
-msgid "Must remake target `%s'.\n"
-msgstr "Phải tạo lại đích « %s ».\n"
+msgid "Must remake target '%s'.\n"
+msgstr "Phải tạo lại đích “%sâ€.\n"
-#: remake.c:806
+#: remake.c:810
#, c-format
-msgid " Ignoring VPATH name `%s'.\n"
-msgstr " Äang bá» qua tên Ä‘Æ°á»ng dẫn VPATH « %s ».\n"
+msgid " Ignoring VPATH name '%s'.\n"
+msgstr " Bá» qua tên VPATH “%sâ€.\n"
-#: remake.c:815
-#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
-msgstr "Äang chạy các lệnh của « %s ».\n"
+#: remake.c:819
+#, c-format
+msgid "Recipe of '%s' is being run.\n"
+msgstr "Äang chạy công thức của “%sâ€.\n"
-#: remake.c:822
+#: remake.c:826
#, c-format
-msgid "Failed to remake target file `%s'.\n"
-msgstr "Việc tạo lại tập tin đích « %s » bị lỗi.\n"
+msgid "Failed to remake target file '%s'.\n"
+msgstr "Gặp lá»—i khi tạo lại được tập tin đích “%sâ€.\n"
-#: remake.c:825
+#: remake.c:829
#, c-format
-msgid "Successfully remade target file `%s'.\n"
-msgstr "Mới tạo lại tập tin đích « %s ».\n"
+msgid "Successfully remade target file '%s'.\n"
+msgstr "Tạo lại thành công tập tin đích “%sâ€.\n"
-#: remake.c:828
+#: remake.c:832
#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
-msgstr "Tập tin đích « %s » cần được tạo lại dưới « -q ».\n"
+msgid "Target file '%s' needs to be remade under -q.\n"
+msgstr "Tập tin đích “%s†cần được tạo lại dÆ°á»›i tùy chá»n “-qâ€.\n"
-#: remake.c:1024
+#: remake.c:1027
#, c-format
-msgid "Using default commands for `%s'.\n"
-msgstr "Äang dùng các lệnh mặc định cho « %s ».\n"
+msgid "Using default commands for '%s'.\n"
+msgstr "Dùng lệnh mặc định cho “%sâ€.\n"
-#: remake.c:1357
+#: remake.c:1372
#, c-format
-msgid "Warning: File `%s' has modification time in the future"
-msgstr "Cảnh báo : tập tin « %s » có giỠsửa đổi trong tương lai."
+msgid "Warning: File '%s' has modification time in the future"
+msgstr "Cảnh báo: Tập tin “%s†có giỠsửa đổi ở thì tương lai."
-#: remake.c:1370
-#, fuzzy, c-format
-msgid "Warning: File `%s' has modification time %s s in the future"
-msgstr "Cảnh báo : tập tin « %s » có giỠsửa đổi « %.2g s » trong tương lai."
+#: remake.c:1385
+#, c-format
+msgid "Warning: File '%s' has modification time %s s in the future"
+msgstr "Cảnh báo: Tập tin “%s†có giỠsửa đổi %s giây trong thì tương lai."
-#: remake.c:1569
+#: remake.c:1583
#, c-format
-msgid ".LIBPATTERNS element `%s' is not a pattern"
-msgstr "Yếu tố « .LIBPATTERNS » (các mẫu thư viên) « %s » không phải là mẫu"
+msgid ".LIBPATTERNS element '%s' is not a pattern"
+msgstr "Phần tử .LIBPATTERNS “%s†không phải là một mẫu"
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
-msgstr "Thuế quan không xuất được: %s\n"
+msgstr "Customs không xuất được: %s\n"
-#: rule.c:499
+#: rule.c:496
msgid ""
"\n"
"# Implicit Rules"
@@ -1669,7 +1805,7 @@ msgstr ""
"\n"
"# Quy tắc ngầm"
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
@@ -1677,7 +1813,7 @@ msgstr ""
"\n"
"# Không có quy tắc ngầm."
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -1686,248 +1822,269 @@ msgstr ""
"\n"
"# %u quy tắc ngầm, %u"
-#: rule.c:526
+#: rule.c:523
msgid " terminal."
-msgstr " thiết bị cuối"
+msgstr " thiết bị cuối."
-#: rule.c:534
-#, fuzzy, c-format
+#: rule.c:531
+#, c-format
msgid "BUG: num_pattern_rules is wrong! %u != %u"
-msgstr "LỖI: « num_pattern_rules » (số quy tắc mẫu) không đúng! %u != %u"
+msgstr "LỖI: num_pattern_rules không đúng! %u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "tín hiệu lạ"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
-msgstr "Ngừng nói"
+msgstr "Treo"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "Ngắt"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
msgstr "Thoát"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
-msgstr "Lệnh cấm"
+msgstr "Chỉ lệnh không hợp lệ"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
msgstr "Bẫy vết/điểm ngắt"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "Bị hủy bá»"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
msgstr "Bẫy IOT"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
msgstr "Bẫy EMT"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
-msgstr "Ngoại lệ điểm phù động"
+msgstr "Ngoại lệ dấu chấm động"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "Bị buộc kết thúc"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
-msgstr "Lỗi mạch nối"
+msgstr "Lá»—i bus"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "Lỗi phân đoạn"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
-msgstr "Cuá»™c gá»i hệ thống sai"
+msgstr "Lệnh gá»i hệ thống sai"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
-msgstr "á»ng dẫn bị ngắt"
+msgstr "á»ng dẫn há»ng"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "Äồng hồ báo Ä‘á»™ng"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
-msgstr "Bị kết thúc"
+msgstr "Äã chấm dứt"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr "Tín hiệu tự định nghĩa 1"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr "Tín hiệu tự định nghĩa 2"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
msgstr "Tiến trình con đã thoát"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
-msgstr "Bị cúp điện đột ngột"
+msgstr "Mất điện đột ngột"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "Bị ngừng"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
-msgstr "Bị ngừng (kết nhập tty)"
+msgstr "Bị ngừng (đầu vào tty)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
-msgstr "Bị ngừng (kết xuất tty)"
+msgstr "Bị ngừng (đầu ra tty)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "Bị ngừng (tín hiệu)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
-msgstr "Giá»›i hạn thá»i gian CPU (Ä‘Æ¡n vị xá»­ lý trung tâm) bị vượt quá"
+msgstr "Vượt giá»›i hạn thá»i gian CPU"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
-msgstr "Giới hạn kích cỡ tập tin bị vượt quá"
+msgstr "Vượt giới hạn kích cỡ tập tin"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
-msgstr "Bá»™ đếm thá»i gian ảo đã mãn hạn"
+msgstr "Bá»™ đếm thá»i gian ảo đã hết hạn"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
-msgstr "Bá»™ đếm khi theo dõi cách sá»­ dụng tiá»m năng hệ thống đã mãn hạn"
+msgstr "Hết hạn đếm thá»i gian khi theo dõi cách sá»­ dụng tiá»m năng hệ thống"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
-msgstr "Cửa sổ đã thay đổi"
+msgstr "Cửa sổ bị thay đổi"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "Äã tiếp tục"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
-msgstr "Tình trạng I/O (nhập/xuất) khẩn cấp"
+msgstr "Äiá»u kiện I/O khẩn cấp"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
-msgstr "I/O (nhập/xuất) có thể"
+msgstr "I/O có thể"
# Literal: don't translate / Nghĩa chữ: đừng dịch
-#: signame.c:204
+#: signame.c:202
msgid "SIGWIND"
msgstr "SIGWIND"
# Literal: don't translate / Nghĩa chữ: đừng dịch
-#: signame.c:207
+#: signame.c:205
msgid "SIGPHONE"
msgstr "SIGPHONE"
-#: signame.c:213
+#: signame.c:211
msgid "Resource lost"
msgstr "Tài nguyên bị mất"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "Tín hiệu nguy hiểm"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr "Yêu cầu thông tin"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
-msgstr "Không có sẵn sàng bộ đồng xử lý điểm phù động"
+msgstr "Không có bộ đồng xử lý số thực dấu chấm động"
-#: strcache.c:235
-#, fuzzy, c-format
+#: strcache.c:236
+#, c-format
msgid ""
"\n"
-"%s # of strings in strcache: %d / lookups = %lu / hits = %lu\n"
+"%s No strcache buffers\n"
msgstr ""
"\n"
-"%s # chuỗi trong bộ nhớ tạm chuỗi : %d\n"
+"%s Không có bộ đệm strcache\n"
-#: strcache.c:237
-#, fuzzy, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
-msgstr "%s # bộ đệm nhớ tạm chuỗi: %d\n"
+#: strcache.c:266
+#, c-format
+msgid ""
+"\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
+msgstr ""
+"\n"
+"%s bộ đệm strcache: %lu (%lu) / chuỗi = %lu / lưu = %lu B / t.bình = "
+"%lu B\n"
-#: strcache.c:239
-#, fuzzy, c-format
-msgid "%s strcache used: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+#: strcache.c:270
+#, c-format
+msgid ""
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
msgstr ""
-"%s cỡ bộ nhớ tạm chuỗi: tổng = %d / đa = %d / thiểu = %d / tbình = %d\n"
+"%s đệm hiện tại: kcỡ = %hu B / đã dùng = %hu B / slượng = %hu / tbình = %hu "
+"B\n"
-#: strcache.c:241
-#, fuzzy, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+#: strcache.c:280
+#, c-format
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
+msgstr "%s được dùng khác: tổng = %lu B / s.lượng = %lu / t.bình = %lu B\n"
+
+#: strcache.c:283
+#, c-format
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
msgstr ""
-"%s rảnh bộ nhớ tạm chuỗi: tổng = %d / đa = %d / thiểu = %d / tbình = %d\n"
+"%s trống khác: tổng = %lu B / tđa = %lu B / t.thiểu = %lu B / t.bình = %hu "
+"B\n"
-#: strcache.c:244
-#, fuzzy
+#: strcache.c:287
+#, c-format
msgid ""
"\n"
-"# strcache hash-table stats:\n"
-"# "
+"%s strcache performance: lookups = %lu / hit rate = %lu%%\n"
msgstr ""
"\n"
-"# thống kê bảng băm các tập tin:\n"
+"%s hiệu năng strcache: tra cứu = %lu / tỷ lệ trúng = %lu%%\n"
+
+#: strcache.c:289
+msgid ""
+"# hash-table stats:\n"
+"# "
+msgstr ""
+"# thống kê bảng băm tập tin:\n"
"# "
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "tá»± Ä‘á»™ng"
+
+#: variable.c:1610
msgid "default"
msgstr "mặc định"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr "môi trÆ°á»ng"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
-msgstr "tập tin tạo"
+msgstr "makefile"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
-msgstr "môi trÆ°á»ng dÆ°á»›i « -e »"
+msgstr "môi trÆ°á»ng vá»›i -e"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr "dòng lệnh"
-#: variable.c:1556
-msgid "`override' directive"
-msgstr "chỉ thị « override » (đè)"
-
-#: variable.c:1559
-msgid "automatic"
-msgstr "tá»± Ä‘á»™ng"
+#: variable.c:1625
+msgid "'override' directive"
+msgstr "chỉ thị “overrideâ€"
-#: variable.c:1570
+#: variable.c:1636
#, c-format
-msgid " (from `%s', line %lu)"
-msgstr " (từ « %s », dòng %lu)"
+msgid " (from '%s', line %lu)"
+msgstr " (từ “%sâ€, dòng %lu)"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
-msgstr "# thống kê bảng băm lập biến:\n"
+msgstr "# thống kê bảng băm biến được đặt:\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1935,118 +2092,117 @@ msgstr ""
"\n"
"# Biến\n"
-#: variable.c:1627
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
msgstr ""
"\n"
-"# Giá trị biến đặc trưng cho mẫu"
+"# Giá trị biến đặc tả cho mẫu"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
msgstr ""
"\n"
-"# Không có giá trị biến đặc trưng cho mẫu"
+"# Không có giá trị biến đặc tả cho mẫu"
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
"# %u pattern-specific variable values"
msgstr ""
"\n"
-"# %u giá trị biến đặc trưng cho mẫu"
+"# %u giá trị biến đặc tả cho mẫu"
-#: variable.h:219
+#: variable.h:224
#, c-format
-msgid "warning: undefined variable `%.*s'"
-msgstr "cảnh báo : chưa định nghĩa biến « %.*s »"
+msgid "warning: undefined variable '%.*s'"
+msgstr "cảnh báo: biến “%.*s†chưa được định nghĩa"
-#: vmsfunctions.c:92
-#, fuzzy, c-format
+#: vmsfunctions.c:91
+#, c-format
msgid "sys$search() failed with %d\n"
-msgstr "việc « search » (tìm kiếm hệ thống) bị lỗi với %d\n"
+msgstr "sys$search() gặp lỗi với %d\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
-msgstr "Cảnh báo : việc chuyển hướng rỗng\n"
+msgstr "Cảnh báo: Chuyển hướng trống rỗng\n"
-#: vmsjobs.c:184
+#: vmsjobs.c:178
#, c-format
-msgid "internal error: `%s' command_state"
-msgstr "lỗi nội bộ : tính trạng lệnh « %s »"
+msgid "internal error: '%s' command_state"
+msgstr "lá»—i ná»™i bá»™: command_state “%sâ€"
-#: vmsjobs.c:289
+#: vmsjobs.c:286
#, c-format
msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
-msgstr ""
-"• cảnh báo, có lẽ bạn sẽ phải bật lại khả năng quản lý bằng CTRL-Y từ DCL.\n"
+msgstr "-warning, có lẽ bạn cần phải bật lại xử lý CTRL-Y từ DCL.\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr "BUILTIN [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr "BUILTIN CD %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr "BUILTIN RM %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
-msgstr "Không biết lệnh builtin (có sẵn) « %s »\n"
+msgstr "Không hiểu lệnh dá»±ng sẵn “%sâ€\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
-msgstr "Lỗi, lệnh rỗng\n"
+msgstr "Lỗi, lệnh trống rỗng\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
-msgstr "Kết nhập đã được chuyển hướng từ %s\n"
+msgstr "Äã chuyển hÆ°á»›ng đầu vào từ %s\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
-msgstr "Lỗi đã được chuyển hướng đến %s\n"
+msgstr "Äã chuyển hÆ°á»›ng lá»—i tá»›i %s\n"
-#: vmsjobs.c:523
-#, fuzzy, c-format
+#: vmsjobs.c:518
+#, c-format
msgid "Append output to %s\n"
-msgstr "Kết xuất đã được chuyển hướng đến %s\n"
+msgstr "Nối thêm đầu ra vào %s\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
-msgstr "Kết xuất đã được chuyển hướng đến %s\n"
+msgstr "Äã chuyển hÆ°á»›ng đầu ra tá»›i %s\n"
-#: vmsjobs.c:599
+#: vmsjobs.c:593
#, c-format
msgid "Append %.*s and cleanup\n"
-msgstr ""
+msgstr "Nối thêm %.*s và dá»n dẹp\n"
-#: vmsjobs.c:606
+#: vmsjobs.c:600
#, c-format
msgid "Executing %s instead\n"
-msgstr "Äang thá»±c hiện %s thay thế\n"
+msgstr "Thực hiện %s để thay thế\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
-msgstr "Gặp lỗi khi tạo và thực hiện (spawn), %d\n"
+msgstr "Gặp lỗi sản sinh tiến trình, %d\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
@@ -2054,41 +2210,68 @@ msgstr ""
"\n"
"# ÄÆ°á»ng dẫn tìm kiếm VPATH\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
-msgstr "# Không có Ä‘Æ°á»ng dẫn tìm kiếm VPATH nào"
+#: vpath.c:600
+msgid "# No 'vpath' search paths."
+msgstr "# Không có Ä‘Æ°á»ng dẫn tìm kiếm “vpathâ€."
-#: vpath.c:605
+#: vpath.c:602
#, c-format
msgid ""
"\n"
-"# %u `vpath' search paths.\n"
+"# %u 'vpath' search paths.\n"
msgstr ""
"\n"
-"# %u ÄÆ°á»ng dẫn tìm kiếm « vpath ».\n"
+"# %u Ä‘Æ°á»ng dẫn tìm kiếm “vpathâ€.\n"
-#: vpath.c:608
+#: vpath.c:605
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
-"# Không có Ä‘Æ°á»ng dẫn tìm kiếm chung (biến « VPATH »)."
+"# Không có Ä‘Æ°á»ng dẫn tìm kiếm chung (biến “VPATHâ€)."
-#: vpath.c:614
+#: vpath.c:611
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
-"# ÄÆ°á»ng dẫn tìm kiếm chung (biến « VPATH »).\n"
+"# ÄÆ°á»ng dẫn tìm kiếm chung (biến “VPATHâ€):\n"
"# "
+#~ msgid "# Invalid value in 'update_status' member!"
+#~ msgstr "# Gặp giá trị sai trong thành phần “update_statusâ€!"
+
+#~ msgid "unknown trace mode '%s'"
+#~ msgstr "không hiểu chế Ä‘á»™ theo vết “%sâ€"
+
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] Lá»—i 0x%x (bá» qua)"
+
+#~ msgid "Invoking recipe from %s:%lu to update target `%s'.\n"
+#~ msgstr "Gá»i công thức từ %s:%lu để cập nhật đích “%sâ€.\n"
+
+#~ msgid "Invoking builtin recipe to update target `%s'.\n"
+#~ msgstr "Gá»i công thức dá»±ng sẵn để cập nhật đích “%sâ€.\n"
+
+#~ msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
+#~ msgstr "%s # vùng đệm strcache: %d (* %d B/buffer = %d B)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "# strcache hash-table stats:\n"
+#~ "# "
+#~ msgstr ""
+#~ "\n"
+#~ "# thống kê bảng băm strcache:\n"
+#~ "# "
+
#~ msgid "process_easy() failed failed to launch process (e=%ld)\n"
#~ msgstr ""
-#~ "Việc « process_easy() » (tiến trình dễ) bị lỗi khi cố khởi chạy tiến trình "
-#~ "(e=%ld)\n"
+#~ "Việc process_easy() (tiến trình dễ) bị lỗi khi cố khởi chạy tiến trình (e="
+#~ "%ld)\n"
#~ msgid ""
#~ "%sThis is free software; see the source for copying conditions.\n"
@@ -2100,19 +2283,19 @@ msgstr ""
#~ "%s\n"
#~ msgid "extraneous `endef'"
-#~ msgstr "gặp « endef » bắt nguồn ở ngoài"
+#~ msgstr "gặp “endef†bắt nguồn ở ngoài"
#~ msgid "empty `override' directive"
-#~ msgstr "chỉ thị « override » (đè) rỗng"
+#~ msgstr "chỉ thị “override†(đè) rỗng"
#~ msgid "invalid `override' directive"
-#~ msgstr "chỉ thị « override » (đè) không hợp lệ"
+#~ msgstr "chỉ thị “override†(đè) không hợp lệ"
#~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
#~ msgstr "• cảnh báo, CTRL-Y sẽ để một số tiến trình con còn lại.\n"
#~ msgid "Do not specify -j or --jobs if sh.exe is not available."
-#~ msgstr "Äừng ghi rõ « -j » hay « --jobs » nếu <sh.exe> không sẵn sàng."
+#~ msgstr "Äừng ghi rõ “-j†hay “--jobs†nếu <sh.exe> không sẵn sàng."
#~ msgid "Resetting make for single job mode."
-#~ msgstr "Äang lập lại trình make cho chế Ä‘á»™ công việc Ä‘Æ¡n."
+#~ msgstr "Äang đặt lại trình make cho chế Ä‘á»™ công việc Ä‘Æ¡n."
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 61cffca..2046413 100644
--- a/po/zh_CN.gmo
+++ b/po/zh_CN.gmo
Binary files differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 657264f..35a1dba 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -2,122 +2,128 @@
# Copyright (C) 2002 Free Software Foundation, Inc.
# This file is distributed under the same license as the make package.
# Wang Li <charles@linux.net.cn>, 2002.
-# LI Daobing <lidaobing@gmail.com>, 2008.
+# LI Daobing <lidaobing@gmail.com>, 2008, 2013.
#
msgid ""
msgstr ""
-"Project-Id-Version: make 3.81\n"
+"Project-Id-Version: make 3.99.90\n"
"Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2010-07-28 01:42-0400\n"
-"PO-Revision-Date: 2008-02-05 23:44+0800\n"
+"POT-Creation-Date: 2013-10-09 02:12-0400\n"
+"PO-Revision-Date: 2013-06-12 15:54+0800\n"
"Last-Translator: LI Daobing <lidaobing@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
+"Language: zh_CN\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 "试图使用ä¸æ”¯æŒçš„功能:“%sâ€"
-#: ar.c:125
+#: ar.c:123
msgid "touch archive member is not available on VMS"
msgstr "VMS 系统上ä¸æ”¯æŒ touch å½’æ¡£æˆå‘˜"
-#: 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:归档文件“%sâ€ä¸å­˜åœ¨"
-#: 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â€ä¸æ˜¯åˆæ³•çš„归档文件"
-#: 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:在“%2$sâ€ä¸­ä¸å­˜åœ¨æˆå‘˜â€œ%1$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:æ¥è‡ªâ€œ%sâ€ä¸Šçš„ ar_member_touch 的错误返回ç "
-#: arscan.c:69
+#: arscan.c:67
#, fuzzy, c-format
msgid "lbr$set_module() failed to extract module info, status = %d"
msgstr "lbr$set_modules 获å–模å—ä¿¡æ¯å¤±è´¥ï¼Œè¿”å›žçŠ¶æ€ = %d"
-#: arscan.c:175
+#: arscan.c:173
#, fuzzy, c-format
msgid "lbr$ini_control() failed with status = %d"
msgstr "lbr$ini_control å¤±è´¥ï¼Œè¿”å›žçŠ¶æ€ = %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 "无法打开库“%sâ€ä»¥å¯»æ‰¾æˆå‘˜â€œ%sâ€"
-#: 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 "æˆå‘˜â€œ%sâ€%s: %ld 字节在 %ld (%ld)。\n"
-#: arscan.c:851
+#: arscan.c:848
msgid " (name might be truncated)"
msgstr " (å称å¯èƒ½è¢«æˆªçŸ­)"
-#: arscan.c:853
+#: arscan.c:850
#, c-format
msgid " Date %s"
msgstr " 日期 %s"
-#: arscan.c:854
+#: arscan.c:851
#, c-format
msgid " uid = %d, gid = %d, mode = 0%o.\n"
msgstr " uid = %d,gid = %d,mode = 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 "*** 中断。\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] å½’æ¡£æˆå‘˜â€œ%sâ€å¯èƒ½æ˜¯å‡çš„;未删除"
-#: 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 "*** å½’æ¡£æˆå‘˜â€œ%sâ€å¯èƒ½æ˜¯å‡çš„;未删除"
-#: commands.c:638
-#, c-format
-msgid "*** [%s] Deleting file `%s'"
+#: commands.c:646
+#, fuzzy, c-format
+msgid "*** [%s] Deleting file '%s'"
msgstr "*** [%s] 正在删除文件“%sâ€"
-#: commands.c:640
-#, c-format
-msgid "*** Deleting file `%s'"
+#: commands.c:648
+#, fuzzy, c-format
+msgid "*** Deleting file '%s'"
msgstr "*** 正在删除文件“%sâ€"
-#: commands.c:676
+#: commands.c:684
#, fuzzy
msgid "# recipe to execute"
msgstr "# è¦æ‰§è¡Œçš„命令"
-#: commands.c:679
+#: commands.c:687
msgid " (built-in):"
msgstr " (内置):"
-#: commands.c:681
-#, c-format
-msgid " (from `%s', line %lu):\n"
+#: commands.c:689
+#, fuzzy, c-format
+msgid " (from '%s', line %lu):\n"
msgstr " (从“%sâ€ï¼Œè¡Œ %lu):\n"
-#: dir.c:996
+#: dir.c:989
msgid ""
"\n"
"# Directories\n"
@@ -125,221 +131,225 @@ msgstr ""
"\n"
"# 目录\n"
-#: dir.c:1008
+#: dir.c:1001
#, c-format
msgid "# %s: could not be stat'd.\n"
msgstr "# %s:无法对其进行 stat æ“作。\n"
-#: dir.c:1012
+#: dir.c:1005
#, c-format
msgid "# %s (key %s, mtime %d): could not be opened.\n"
msgstr "# %s (关键字 %s,修改时间 %d):无法打开。\n"
-#: dir.c:1016
+#: dir.c:1009
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
msgstr "# %s (设备 %d,i-节点 [%d,%d,%d]):无法打开。\n"
-#: dir.c:1021
+#: dir.c:1014
#, c-format
msgid "# %s (device %ld, inode %ld): could not be opened.\n"
msgstr "# %s (设备 %ld,i-节点 %ld):无法打开。\n"
-#: dir.c:1048
+#: dir.c:1041
#, c-format
msgid "# %s (key %s, mtime %d): "
msgstr "# %s (关键字 %s,修改时间 %d):"
-#: dir.c:1052
+#: dir.c:1045
#, c-format
msgid "# %s (device %d, inode [%d,%d,%d]): "
msgstr "# %s (设备 %d,i-节点 [%d,%d,%d]):"
-#: dir.c:1057
+#: dir.c:1050
#, c-format
msgid "# %s (device %ld, inode %ld): "
msgstr "# %s (设备 %ld,i-节点 %ld):"
-#: dir.c:1063 dir.c:1084
+#: dir.c:1056 dir.c:1077
msgid "No"
msgstr "æ— "
-#: dir.c:1066 dir.c:1087
+#: dir.c:1059 dir.c:1080
msgid " files, "
msgstr " 文件, "
-#: dir.c:1068 dir.c:1089
+#: dir.c:1061 dir.c:1082
msgid "no"
msgstr "æ— "
-#: dir.c:1071
+#: dir.c:1064
msgid " impossibilities"
msgstr " ä¸å¯èƒ½"
-#: dir.c:1075
+#: dir.c:1068
msgid " so far."
msgstr " 迄今为止。"
-#: dir.c:1092
+#: dir.c:1085
#, c-format
msgid " impossibilities in %lu directories.\n"
msgstr " ä¸å¯èƒ½åœ¨ %lu 目录中。\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 "递归å˜é‡â€œ%sâ€åº”用自身 (最终)"
-#: expand.c:276
+#: expand.c:269
msgid "unterminated variable reference"
msgstr "未终止的å˜é‡å¼•ç”¨"
-#: 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 "关于文件“%sâ€çš„命令在 %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 "关于文件“%sâ€çš„命令通过éšå«è§„则æœç´¢è€Œæ‰¾åˆ°ï¼Œ"
-#: 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 "但“%sâ€çŽ°åœ¨è¢«çœ‹åšâ€œ%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 "“%2$sâ€æ›´ä¼˜å…ˆï¼Œâ€œ%1$sâ€çš„命令被忽略。"
-#: file.c:298
-#, c-format
-msgid "can't rename single-colon `%s' to double-colon `%s'"
+#: file.c:300
+#, fuzzy, c-format
+msgid "can't rename single-colon '%s' to double-colon '%s'"
msgstr "无法将å•å†’å·â€œ%sâ€é‡å‘½å为åŒå†’å·â€œ%sâ€"
-#: file.c:303
-#, c-format
-msgid "can't rename double-colon `%s' to single-colon `%s'"
+#: file.c:305
+#, fuzzy, c-format
+msgid "can't rename double-colon '%s' to single-colon '%s'"
msgstr "无法将åŒå†’å·â€œ%sâ€é‡å‘½å为å•å†’å·â€œ%sâ€"
-#: file.c:392
-#, c-format
-msgid "*** Deleting intermediate file `%s'"
+#: file.c:396
+#, fuzzy, c-format
+msgid "*** Deleting intermediate file '%s'"
msgstr "*** 正在删除中间文件“%sâ€"
-#: file.c:396
+#: file.c:400
msgid "Removing intermediate files...\n"
msgstr "正在删除中间文件...\n"
-#: file.c:803
+#: file.c:808
#, c-format
msgid "%s: Timestamp out of range; substituting %s"
msgstr "%sï¼šæ—¶é—´æ ‡è®°è¶…å‡ºèŒƒå›´ï¼›æ­£åœ¨æ›¿æ¢ %s"
-#: file.c:804
+#: file.c:809
msgid "Current time"
msgstr "当å‰æ—¶é—´"
-#: file.c:924
+#: file.c:949
msgid "# Not a target:"
msgstr "# ä¸æ˜¯ä¸€ä¸ªç›®æ ‡ï¼š"
-#: file.c:929
+#: file.c:954
msgid "# Precious file (prerequisite of .PRECIOUS)."
msgstr "# é‡è¦æ–‡ä»¶ (.PRECIOUSçš„å‰æ)。"
-#: file.c:931
+#: file.c:956
msgid "# Phony target (prerequisite of .PHONY)."
msgstr "# å‡ç›®æ ‡ (.PHONYçš„å‰æ)。"
-#: file.c:933
+#: file.c:958
#, fuzzy
msgid "# Command line target."
msgstr "# 命令行目标。"
-#: file.c:935
+#: file.c:960
msgid "# A default, MAKEFILES, or -include/sinclude makefile."
msgstr "# 缺çœçš„ã€MAKEFILES 指定的ã€-include/sinclude 包å«çš„ makefile。"
-#: file.c:937
+#: file.c:962
+#, fuzzy
+msgid "# Builtin rule"
+msgstr ""
+"\n"
+"# 没有éšå«è§„则。"
+
+#: file.c:964
msgid "# Implicit rule search has been done."
msgstr "# 对éšå«è§„则的æœç´¢å·²å®Œæˆã€‚"
-#: file.c:938
+#: file.c:965
msgid "# Implicit rule search has not been done."
msgstr "# 对éšå«è§„则的æœç´¢å°šæœªå®Œæˆã€‚"
-#: file.c:940
-#, c-format
-msgid "# Implicit/static pattern stem: `%s'\n"
+#: file.c:967
+#, fuzzy, c-format
+msgid "# Implicit/static pattern stem: '%s'\n"
msgstr "# éšå«/é™æ€æ¨¡å¼ä¸»å¹²ï¼šâ€œ%sâ€\n"
-#: file.c:942
+#: file.c:969
msgid "# File is an intermediate prerequisite."
msgstr "# 文件是一个中间å‰æ。"
-#: file.c:946
+#: file.c:973
msgid "# Also makes:"
msgstr "# 还è¦åˆ›å»ºï¼š"
-#: file.c:952
+#: file.c:979
msgid "# Modification time never checked."
msgstr "# 从ä¸æ£€æŸ¥ä¿®æ”¹æ—¶é—´ã€‚"
-#: file.c:954
+#: file.c:981
msgid "# File does not exist."
msgstr "# 文件ä¸å­˜åœ¨ã€‚"
-#: file.c:956
+#: file.c:983
msgid "# File is very old."
msgstr "# 文件éžå¸¸é™ˆæ—§ã€‚"
-#: file.c:961
+#: file.c:988
#, c-format
msgid "# Last modified %s\n"
msgstr "# 最近更新 %s\n"
-#: file.c:964
+#: file.c:991
msgid "# File has been updated."
msgstr "# 文件已ç»è¢«æ›´æ–°ã€‚"
-#: file.c:964
+#: file.c:991
msgid "# File has not been updated."
msgstr "# 文件尚未被更新。"
-#: file.c:968
+#: file.c:995
#, fuzzy
msgid "# Recipe currently running (THIS IS A BUG)."
msgstr "# 正在è¿è¡Œçš„命令 (这是个错误)。"
-#: file.c:971
+#: file.c:998
#, fuzzy
msgid "# Dependencies recipe running (THIS IS A BUG)."
msgstr "# 正在è¿è¡Œçš„ä¾èµ–性命令 (这是个错误)。"
-#: file.c:980
+#: file.c:1007
msgid "# Successfully updated."
msgstr "# æ›´æ–°æˆåŠŸã€‚"
-#: file.c:984
+#: file.c:1011
msgid "# Needs to be updated (-q is set)."
msgstr "# 需è¦æ›´æ–° (用 -q 设定)。"
-#: file.c:987
+#: file.c:1014
msgid "# Failed to be updated."
msgstr "# 更新失败。"
-#: file.c:990
-msgid "# Invalid value in `update_status' member!"
-msgstr "# “update_statusâ€æˆå‘˜ä¸­æ— æ•ˆçš„值ï¼"
-
-#: file.c:997
-msgid "# Invalid value in `command_state' member!"
+#: file.c:1019
+#, fuzzy
+msgid "# Invalid value in 'command_state' member!"
msgstr "# “command_stateâ€æˆå‘˜ä¸­æ— æ•ˆçš„值ï¼"
-#: file.c:1016
+#: file.c:1038
msgid ""
"\n"
"# Files"
@@ -347,7 +357,7 @@ msgstr ""
"\n"
"# 文件"
-#: file.c:1020
+#: file.c:1042
msgid ""
"\n"
"# files hash-table stats:\n"
@@ -357,117 +367,175 @@ msgstr ""
"# 文件æ‚凑表状æ€:\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 "“wordâ€å‡½æ•°çš„第一个å‚æ•°ä¸æ˜¯æ•°å€¼å‚æ•°"
-#: 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â€å‡½æ•°çš„第一个å‚数必须大于 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 "“wordlistâ€å‡½æ•°çš„第一个å‚æ•°ä¸æ˜¯æ•°å€¼å‚æ•°"
-#: function.c:785
-msgid "non-numeric second argument to `wordlist' function"
+#: function.c:769
+#, fuzzy
+msgid "non-numeric second argument to 'wordlist' function"
msgstr "“wordlistâ€å‡½æ•°çš„第二个å‚æ•°ä¸æ˜¯æ•°å€¼å‚æ•°"
-#: 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 "创建å­è¿›ç¨‹ï¼šå¤åˆ¶å¥æŸ„(In)失败 (e=%ld)\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 "创建å­è¿›ç¨‹ï¼šå¤åˆ¶å¥æŸ„(Err)失败 (e=%ld)\n"
-#: function.c:1474
+#: function.c:1490
#, c-format
msgid "CreatePipe() failed (e=%ld)\n"
msgstr "CreatePipe() 失败 (e=%ld)\n"
-#: function.c:1479
+#: function.c:1498
#, fuzzy
msgid "windows32_openpipe(): process_init_fd() failed\n"
msgstr "windows32_openpipe ():process_init_fd() 失败\n"
-#: function.c:1728
+#: function.c:1792
#, c-format
msgid "Cleaning up temporary batch file %s\n"
msgstr "正在清除临时批处ç†æ–‡ä»¶ %s\n"
-#: function.c:2150
+#: function.c:2151
+#, fuzzy, c-format
+msgid "open: %s: %s"
+msgstr "%s: %s"
+
+#: function.c:2158
+#, fuzzy, c-format
+msgid "write: %s: %s"
+msgstr "写错误: %s"
+
+#: function.c:2164
#, c-format
-msgid "insufficient number of arguments (%d) to function `%s'"
+msgid "Invalid file operation: %s"
+msgstr ""
+
+#: function.c:2279
+#, fuzzy, c-format
+msgid "insufficient number of arguments (%d) to function '%s'"
msgstr "函数“%2$sâ€çš„å‚æ•°æ•°é‡(%1$d)ä¸å¤Ÿ"
-#: function.c:2162
-#, c-format
-msgid "unimplemented on this platform: function `%s'"
+#: function.c:2291
+#, fuzzy, c-format
+msgid "unimplemented on this platform: function '%s'"
msgstr "在本平å°ä¸Šæœªå®žçŽ°ï¼šå‡½æ•°â€œ%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 "对函数“%sâ€çš„未终止的调用:é—æ¼â€œ%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:选项“%sâ€å«ä¹‰ä¸æ¸…\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 "函数“%2$sâ€çš„å‚æ•°æ•°é‡(%1$d)ä¸å¤Ÿ"
+
+#: function.c:2555
+#, fuzzy, c-format
+msgid "Invalid maximum argument count (%d) for function %s\n"
+msgstr "函数“%2$sâ€çš„å‚æ•°æ•°é‡(%1$d)ä¸å¤Ÿ"
+
+#: getopt.c:659
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s:选项“%sâ€å«ä¹‰ä¸æ¸…\n"
+
+#: getopt.c:683
+#, fuzzy, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
msgstr "%s:选项“--%sâ€ä¸éœ€è¦å‚æ•°\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:选项“%c%sâ€ä¸éœ€è¦å‚æ•°\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:选项“%sâ€éœ€è¦ä¸€ä¸ªå‚æ•°\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:无法识别的选项“--%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:无法识别的选项“%c%sâ€\n"
-#: getopt.c:766
+#: getopt.c:764
#, c-format
msgid "%s: illegal option -- %c\n"
msgstr "%s:éžæ³•é€‰é¡¹ -- %c\n"
-#: getopt.c:769
+#: getopt.c:767
#, c-format
msgid "%s: invalid option -- %c\n"
msgstr "%s:éžæ³•é€‰é¡¹ -- %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:选项需è¦ä¸€ä¸ªå‚æ•° -- %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:选项“-W %sâ€å«ä¹‰ä¸æ¸…\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:选项“-W %sâ€ä¸å…许给出å‚æ•°\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"
@@ -488,131 +556,156 @@ msgstr "é‡æ–°æ‚凑=%d, "
msgid "Collisions=%ld/%ld=%.0f%%"
msgstr "碰撞=%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 "正在为“%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 "正在为“%sâ€å¯»æ‰¾å½’æ¡£æˆå‘˜éšå«è§„则。\n"
-#: implicit.c:317
+#: implicit.c:310
msgid "Avoiding implicit rule recursion.\n"
msgstr "é¿å…éšå«è§„则递归。\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 "以主干“%.*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 "æ‹’ç»ä¸å¯èƒ½çš„规则å‰æ“%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 "æ‹’ç»ä¸å¯èƒ½çš„éšå«å‰æ“%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 "å°è¯•è§„则å‰æ“%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 "å°è¯•éšå«å‰æ“%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 "å‰æ“%sâ€åœ¨ 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 "正在寻找使用中间文件“%sâ€çš„规则。\n"
-#: job.c:335
+#: job.c:361
msgid "Cannot create a temporary file\n"
msgstr "无法创建临时文件\n"
-#: job.c:449
-#, c-format
-msgid "*** [%s] Error 0x%x (ignored)"
-msgstr "*** [%s] 错误 0x%x (忽略)"
-
-#: job.c:450
-#, c-format
-msgid "*** [%s] Error 0x%x"
-msgstr "*** [%s] 错误 0x%x"
+#: job.c:482
+msgid " (core dumped)"
+msgstr " (core dumped)"
-#: job.c:454
-#, c-format
-msgid "[%s] Error %d (ignored)"
+#: job.c:487
+#, fuzzy
+msgid " (ignored)"
msgstr "[%s] 错误 %d (忽略)"
-#: job.c:455
+#: job.c:491 job.c:1994
+#, fuzzy
+msgid "<builtin>"
+msgstr " (内置):"
+
+#: 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] 错误 0x%x"
+
+#: job.c:513
+#, fuzzy, c-format
+msgid "%s[%s] Error %d%s"
msgstr "*** [%s] 错误 %d"
-#: job.c:460
-msgid " (core dumped)"
-msgstr " (core dumped)"
+#: 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 "*** 正在等待未完æˆçš„任务...."
-#: job.c:579
+#: job.c:639
#, fuzzy, c-format
msgid "Live child %p (%s) PID %s %s\n"
msgstr "活跃å­è¿›ç¨‹ 0x%08lx (%s) PID %ld %s\n"
-#: 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 " (远程)"
-#: job.c:758
+#: job.c:829
#, fuzzy, c-format
msgid "Reaping losing child %p PID %s %s\n"
msgstr "正在中止失败的å­è¿›ç¨‹ 0x%08lx PID %ld %s\n"
-#: job.c:759
+#: job.c:830
#, fuzzy, c-format
msgid "Reaping winning child %p PID %s %s\n"
msgstr "正在中止获胜的å­è¿›ç¨‹ 0x%08lx PID %ld %s\n"
-#: job.c:763
+#: job.c:837
#, c-format
msgid "Cleaning up temp batch file %s\n"
msgstr "正在清除临时批文件 %s\n"
-#: job.c:861
+#: job.c:843
+#, fuzzy, c-format
+msgid "Cleaning up temp batch file %s failed (%d)\n"
+msgstr "正在清除临时批文件 %s\n"
+
+#: job.c:949
#, fuzzy, c-format
msgid "Removing child %p PID %s%s from chain.\n"
msgstr "从链中删除å­è¿›ç¨‹ 0x%08lx PID %ld%s。\n"
-#: job.c:920
-msgid "write jobserver"
-msgstr "写入任务æœåŠ¡å™¨"
+#: job.c:1007
+#, c-format
+msgid "release jobserver semaphore: (Error %ld: %s)"
+msgstr ""
-#: job.c:922
+#: job.c:1011 job.c:1025
#, fuzzy, c-format
msgid "Released token for child %p (%s).\n"
msgstr "为å­è¿›ç¨‹ 0x%08lx (%s) 释放令牌(token)。\n"
-#: job.c:1453 job.c:2094
+#: job.c:1023
+msgid "write jobserver"
+msgstr "写入任务æœåŠ¡å™¨"
+
+#: job.c:1612 job.c:2332
#, c-format
msgid "process_easy() failed to launch process (e=%ld)\n"
msgstr "process_easy() å¯åŠ¨è¿›ç¨‹å¤±è´¥ (e=%ld)\n"
-#: job.c:1457 job.c:2098
+#: job.c:1616 job.c:2336
#, c-format
msgid ""
"\n"
@@ -621,125 +714,180 @@ msgstr ""
"\n"
"失败执行中共有 %d 个å‚数。\n"
-#: job.c:1525
+#: job.c:1685
#, fuzzy, c-format
msgid "Putting child %p (%s) PID %s%s on the chain.\n"
msgstr "å°†å­è¿›ç¨‹ 0x%08lx (%s) PID %ld%s 放入链。\n"
-#: job.c:1778
+#: job.c:1953
+#, c-format
+msgid "semaphore or child process wait: (Error %ld: %s)"
+msgstr ""
+
+#: job.c:1967
#, fuzzy, c-format
msgid "Obtained token for child %p (%s).\n"
msgstr "获得至进程 0x%08lx (%s) 的标记。\n"
-#: job.c:1787
+#: job.c:1977
msgid "read jobs pipe"
msgstr "读å–任务管é“"
-#: 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:归档文件“%sâ€ä¸å­˜åœ¨"
-#: job.c:1802
+#: job.c:2005
#, fuzzy, c-format
-msgid "Invoking builtin recipe to update target `%s'.\n"
-msgstr "ä¸éœ€è¦é‡æ–°åˆ›å»ºç›®æ ‡â€œ%sâ€"
+msgid "%s: update target '%s' due to: %s"
+msgstr "%1$s没有规则å¯ä»¥åˆ›å»ºâ€œ%3$sâ€%4$s需è¦çš„目标“%2$sâ€"
-#: job.c:1910
+#: job.c:2118
msgid "cannot enforce load limits on this operating system"
msgstr "无法在本æ“作系统中实施负载é™åˆ¶"
-#: job.c:1912
+#: job.c:2120
msgid "cannot enforce load limit: "
msgstr "无法实施负载é™åˆ¶ï¼š"
-#: job.c:1985
+#: job.c:2199
msgid "no more file handles: could not duplicate stdin\n"
msgstr "没有剩余的文件å¥æŸ„: 无法å¤åˆ¶æ ‡å‡†è¾“å…¥\n"
-#: job.c:1987
+#: job.c:2210
msgid "no more file handles: could not duplicate stdout\n"
msgstr "没有剩余的文件å¥æŸ„: 无法å¤åˆ¶æ ‡å‡†è¾“出\n"
-#: job.c:2015
+#: job.c:2223
+#, fuzzy
+msgid "no more file handles: could not duplicate stderr\n"
+msgstr "没有剩余的文件å¥æŸ„: 无法å¤åˆ¶æ ‡å‡†è¾“å…¥\n"
+
+#: job.c:2238
msgid "Could not restore stdin\n"
msgstr "无法还原标准输入\n"
-#: job.c:2023
+#: job.c:2246
msgid "Could not restore stdout\n"
msgstr "无法还原标准输出\n"
-#: job.c:2127
+#: job.c:2254
+#, fuzzy
+msgid "Could not restore stderr\n"
+msgstr "无法还原标准输入\n"
+
+#: job.c:2365
#, fuzzy, c-format
msgid "make reaped child pid %s, still waiting for pid %s\n"
msgstr "make 已中止的å­è¿›ç¨‹ pid %ld,ä»åœ¨ç­‰å¾… pid %ld\n"
-#: job.c:2168
+#: job.c:2403
#, c-format
msgid "%s: Command not found"
msgstr "%s:命令未找到"
-#: job.c:2228
+#: job.c:2463
#, c-format
msgid "%s: Shell program not found"
msgstr "%s:未找到 shell 程åº"
-#: job.c:2237
+#: job.c:2472
msgid "spawnvpe: environment space might be exhausted"
msgstr "spawnvpe: 环境å˜é‡ç©ºé—´å¯èƒ½ä¼šè€—å°½"
-#: 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 å·²æ”¹å˜ (原为“%sâ€ï¼ŒçŽ°ä¸ºâ€œ%sâ€)\n"
-#: job.c:2951
+#: job.c:3140 job.c:3325
#, c-format
msgid "Creating temporary batch file %s\n"
msgstr "正在创建临时批文件 %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 (行 %d) 错误的 shell 上下文 (!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 "本平å°ä¸æ”¯æŒå¹¶è¡Œä»»åŠ¡ (-j)。"
+
+#: main.c:312
msgid "Options:\n"
msgstr "选项:\n"
-#: main.c:304
+#: main.c:313
msgid " -b, -m Ignored for compatibility.\n"
msgstr " -b, -m 忽略兼容性。\n"
-#: main.c:306
+#: main.c:315
msgid " -B, --always-make Unconditionally make all targets.\n"
msgstr " -B, --always-make æ— æ¡ä»¶ make 所有目标。\n"
-#: main.c:308
+#: main.c:317
msgid ""
" -C DIRECTORY, --directory=DIRECTORY\n"
" Change to DIRECTORY before doing anything.\n"
msgstr ""
" -C DIRECTORY, --directory=DIRECTORY\n"
-" 在执行钱先切æ¢åˆ° DIRECTORY 目录。\n"
+" 在执行å‰å…ˆåˆ‡æ¢åˆ° DIRECTORY 目录。\n"
-#: main.c:311
+#: main.c:320
msgid " -d Print lots of debugging information.\n"
msgstr " -d 打å°å¤§é‡è°ƒè¯•ä¿¡æ¯ã€‚\n"
-#: main.c:313
+#: main.c:322
msgid ""
" --debug[=FLAGS] Print various types of debugging information.\n"
msgstr " --debug[=FLAGS] 打å°å„ç§è°ƒè¯•ä¿¡æ¯ã€‚\n"
-#: main.c:315
+#: main.c:324
msgid ""
" -e, --environment-overrides\n"
" Environment variables override makefiles.\n"
@@ -747,12 +895,12 @@ msgstr ""
" -e, --environment-overrides\n"
" 环境å˜é‡è¦†ç›– makefile 中的å˜é‡ã€‚\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"
@@ -760,16 +908,16 @@ msgstr ""
" -f FILE, --file=FILE, --makefile=FILE\n"
" 从 FILE 中读入 makefile。\n"
-#: main.c:323
+#: main.c:332
msgid " -h, --help Print this message and exit.\n"
msgstr " -h, --help 打å°è¯¥æ¶ˆæ¯å¹¶é€€å‡ºã€‚\n"
-#: main.c:325
+#: main.c:334
#, fuzzy
msgid " -i, --ignore-errors Ignore errors from recipes.\n"
msgstr " -i, --ignore-errors 忽略æ¥è‡ªå‘½ä»¤çš„错误。\n"
-#: main.c:327
+#: main.c:336
msgid ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" Search DIRECTORY for included makefiles.\n"
@@ -777,19 +925,19 @@ msgstr ""
" -I DIRECTORY, --include-dir=DIRECTORY\n"
" 在 DIRECTORY 中æœç´¢è¢«åŒ…å«çš„ makefile。\n"
-#: main.c:330
+#: main.c:339
msgid ""
" -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no "
"arg.\n"
msgstr ""
" -j [N], --jobs[=N] åŒæ—¶å…许 N 个任务;无å‚数表明å…许无é™ä¸ªä»»åŠ¡ã€‚\n"
-#: main.c:332
+#: main.c:341
msgid ""
" -k, --keep-going Keep going when some targets can't be made.\n"
msgstr " -k, --keep-going 当æŸäº›ç›®æ ‡æ— æ³•åˆ›å»ºæ—¶ä»ç„¶ç»§ç»­ã€‚\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 "
@@ -798,14 +946,14 @@ msgstr ""
" -l [N], --load-average[=N], --max-load[=N]\n"
" 在系统负载高于 N æ—¶ä¸å¯åŠ¨å¤šä»»åŠ¡ã€‚\n"
-#: main.c:337
+#: main.c:346
msgid ""
" -L, --check-symlink-times Use the latest mtime between symlinks and "
"target.\n"
msgstr ""
" -L, --check-symlink-times 使用软链接åŠè½¯é“¾æŽ¥ç›®æ ‡ä¸­ä¿®æ”¹æ—¶é—´è¾ƒæ™šçš„一个。\n"
-#: main.c:339
+#: main.c:348
#, fuzzy
msgid ""
" -n, --just-print, --dry-run, --recon\n"
@@ -815,7 +963,7 @@ msgstr ""
" -n, --just-print, --dry-run, --recon\n"
" åªæ‰“å°å‘½ä»¤ï¼Œä¸å®žé™…执行。\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 "
@@ -824,11 +972,17 @@ msgstr ""
" -o FILE, --old-file=FILE, --assume-old=FILE\n"
" å°† FILE 当åšå¾ˆæ—§ï¼Œä¸å¿…é‡æ–°ç”Ÿæˆã€‚\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 æ‰“å° make 的内部数æ®åº“。\n"
-#: main.c:347
+#: main.c:359
#, fuzzy
msgid ""
" -q, --question Run no recipe; exit status says if up to "
@@ -836,20 +990,20 @@ msgid ""
msgstr ""
" -q, --question ä¸è¿è¡Œä»»ä½•å‘½ä»¤ï¼›é€€å‡ºçŠ¶æ€è¯´æ˜Žæ˜¯å¦å·²å…¨éƒ¨æ›´æ–°ã€‚\n"
-#: main.c:349
+#: main.c:361
msgid " -r, --no-builtin-rules Disable the built-in implicit rules.\n"
msgstr " -r, --no-builtin-rules ç¦ç”¨å†…ç½®éšå«è§„则。\n"
-#: main.c:351
+#: main.c:363
msgid " -R, --no-builtin-variables Disable the built-in variable settings.\n"
msgstr " -R, --no-builtin-variables ç¦ç”¨å†…ç½®å˜é‡è®¾ç½®ã€‚\n"
-#: main.c:353
+#: main.c:365
#, fuzzy
msgid " -s, --silent, --quiet Don't echo recipes.\n"
msgstr " -s, --silent, --quiet ä¸è¾“出命令。\n"
-#: main.c:355
+#: main.c:367
msgid ""
" -S, --no-keep-going, --stop\n"
" Turns off -k.\n"
@@ -857,26 +1011,31 @@ msgstr ""
" -S, --no-keep-going, --stop\n"
" 关闭 -k。\n"
-#: main.c:358
+#: main.c:370
msgid " -t, --touch Touch targets instead of remaking them.\n"
msgstr " -t, --touch touch 目标而ä¸æ˜¯é‡æ–°åˆ›å»ºå®ƒä»¬ã€‚\n"
-#: main.c:360
+#: main.c:372
+#, fuzzy
+msgid " --trace Print tracing information.\n"
+msgstr " --debug[=FLAGS] 打å°å„ç§è°ƒè¯•ä¿¡æ¯ã€‚\n"
+
+#: main.c:374
msgid ""
" -v, --version Print the version number of make and exit.\n"
msgstr " -v, --version æ‰“å° make 的版本å·å¹¶é€€å‡ºã€‚\n"
-#: main.c:362
+#: main.c:376
msgid " -w, --print-directory Print the current directory.\n"
msgstr " -w, --print-directory 打å°å½“å‰ç›®å½•ã€‚\n"
-#: main.c:364
+#: main.c:378
msgid ""
" --no-print-directory Turn off -w, even if it was turned on "
"implicitly.\n"
msgstr " --no-print-directory 关闭 -w,å³ä½¿ -w 默认开å¯ã€‚\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"
@@ -884,27 +1043,37 @@ msgstr ""
" -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
" å°† FILE 当åšæœ€æ–°ã€‚\n"
-#: main.c:369
+#: main.c:383
msgid ""
" --warn-undefined-variables Warn when an undefined variable is "
"referenced.\n"
msgstr " --warn-undefined-variables 当引用未定义å˜é‡çš„时候å‘出警告。\n"
-#: main.c:564
+#: main.c:647
msgid "empty string invalid as file name"
msgstr "空字符串是无效的文件å"
-#: main.c:650
-#, c-format
-msgid "unknown debug level specification `%s'"
+#: main.c:734
+#, fuzzy, c-format
+msgid "unknown debug level specification '%s'"
msgstr "未知的调试级别“%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 "内部错误:多个 --jobserver-fds 选项"
+
+#: main.c:848
#, fuzzy, c-format
msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
msgstr "%s:æ•èŽ·ä¸­æ–­/异常 (ä»£ç  = 0x%lx, åœ°å€ = 0x%lx)\n"
-#: main.c:697
+#: main.c:855
#, fuzzy, c-format
msgid ""
"\n"
@@ -919,158 +1088,180 @@ msgstr ""
"异常标志 = %lx\n"
"å¼‚å¸¸åœ°å€ = %lx\n"
-#: main.c:705
+#: main.c:863
#, fuzzy, c-format
msgid "Access violation: write operation at address 0x%p\n"
msgstr "访问冲çªï¼šåœ°å€ %lx 处的写æ“作\n"
-#: main.c:706
+#: main.c:864
#, fuzzy, c-format
msgid "Access violation: read operation at address 0x%p\n"
msgstr "访问冲çªï¼šåœ°å€ %lx处的读æ“作\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 设置 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 路径æœç´¢ç»“果设置 default_shell = %s\n"
-#: main.c:1273
+#: main.c:1447
#, c-format
msgid "%s is suspending for 30 seconds..."
msgstr "%s 正在挂起 30 秒..."
-#: main.c:1275
+#: main.c:1449
#, c-format
msgid "done sleep(30). Continuing.\n"
msgstr "ç¡çœ å®Œæˆ(30)。继续。\n"
-#: main.c:1501
+#: main.c:1534
+msgid "internal error: multiple --jobserver-fds options"
+msgstr "内部错误:多个 --jobserver-fds 选项"
+
+#: main.c:1544
+#, c-format
+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 "内部错误:éžæ³• --jobserver-fds 字符串“%sâ€"
+
+#: main.c:1554
+#, c-format
+msgid "Jobserver client (fds %d,%d)\n"
+msgstr ""
+
+#: main.c:1567
+msgid "warning: -jN forced in submake: disabling jobserver mode."
+msgstr "警告: å­ make 中强制 -jN: 关闭 jobserver 模å¼ã€‚"
+
+#: main.c:1583
+msgid "dup jobserver"
+msgstr "å¤åˆ¶ä»»åŠ¡æœåŠ¡å™¨"
+
+#: main.c:1586
+#, fuzzy
+msgid ""
+"warning: jobserver unavailable: using -j1. Add '+' to parent make rule."
+msgstr "警告: jobserver ä¸å­˜åœ¨: 使用 -j1。添加 “+†到父 make 的规则。"
+
+#: main.c:1752
msgid "Makefile from standard input specified twice."
msgstr "两次指明æ¥è‡ªæ ‡å‡†è¾“入的 makefile。"
-#: main.c:1539 vmsjobs.c:500
+#: main.c:1790 vmsjobs.c:496
msgid "fopen (temporary file)"
msgstr "fopen (临时文件)"
-#: main.c:1545
+#: main.c:1796
msgid "fwrite (temporary file)"
msgstr "fwrite (临时文件)"
-#: main.c:1703
+#: main.c:1984
msgid "Parallel jobs (-j) are not supported on this platform."
msgstr "本平å°ä¸æ”¯æŒå¹¶è¡Œä»»åŠ¡ (-j)。"
-#: main.c:1704
+#: main.c:1985
msgid "Resetting to single job (-j1) mode."
msgstr "é‡ç½®ä¸ºå•ä»»åŠ¡æ¨¡å¼ (-j1)。"
-#: main.c:1719
-msgid "internal error: multiple --jobserver-fds options"
-msgstr "内部错误:多个 --jobserver-fds 选项"
-
-#: main.c:1727
+#: main.c:2006
#, c-format
-msgid "internal error: invalid --jobserver-fds string `%s'"
-msgstr "内部错误:éžæ³• --jobserver-fds 字符串“%sâ€"
+msgid "Jobserver slots limited to %d\n"
+msgstr ""
-#: main.c:1730
+#: main.c:2012
#, c-format
-msgid "Jobserver client (fds %d,%d)\n"
+msgid "creating jobserver semaphore: (Error %ld: %s)"
msgstr ""
-#: main.c:1740
-msgid "warning: -jN forced in submake: disabling jobserver mode."
-msgstr "警告: å­ make 中强制 -jN: 关闭 jobserver 模å¼ã€‚"
-
-#: main.c:1750
-msgid "dup jobserver"
-msgstr "å¤åˆ¶ä»»åŠ¡æœåŠ¡å™¨"
-
-#: main.c:1753
-msgid ""
-"warning: jobserver unavailable: using -j1. Add `+' to parent make rule."
-msgstr "警告: jobserver ä¸å­˜åœ¨: 使用 -j1。添加 “+†到父 make 的规则。"
-
-#: main.c:1777
+#: main.c:2019
msgid "creating jobs pipe"
msgstr "正在创建任务管é“"
-#: main.c:1792
+#: main.c:2039
msgid "init jobserver pipe"
msgstr "创始化任务æœåŠ¡å™¨ç®¡é“"
-#: main.c:1812
+#: main.c:2064
msgid "Symbolic links not supported: disabling -L."
msgstr "ä¸æ”¯æŒè½¯é“¾æŽ¥: 关闭 -L"
-#: main.c:1892
+#: main.c:2149
msgid "Updating makefiles....\n"
msgstr "正在更新 makefile....\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 "Makefile “%sâ€å¯èƒ½å¾ªçŽ¯ï¼›ä¸ä¼šé‡æ–°åˆ›å»ºå®ƒã€‚\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 “%s†失败。"
-#: 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 "找ä¸åˆ°è¢«å¼•å…¥çš„ makefile “%sâ€"
-#: 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 “%sâ€"
-#: main.c:2086
+#: main.c:2341
msgid "Couldn't change back to original directory."
msgstr "无法回到原始目录。"
-#: main.c:2102
+#: main.c:2354
#, c-format
msgid "Re-executing[%u]:"
msgstr "é‡æ–°æ‰§è¡Œ[%u]:"
-#: main.c:2215
+#: main.c:2463
msgid "unlink (temporary file): "
msgstr "删除 (临时文件):"
-#: main.c:2247
+#: main.c:2495
msgid ".DEFAULT_GOAL contains more than one target"
msgstr ".DEFAULT_GOAL 包å«å¤šä½™ä¸€ä¸ªç›®æ ‡"
-#: main.c:2270
+#: main.c:2518
msgid "No targets specified and no makefile found"
msgstr "没有指明目标并且找ä¸åˆ° makefile"
-#: main.c:2272
+#: main.c:2520
msgid "No targets"
msgstr "无目标"
-#: main.c:2277
+#: main.c:2525
msgid "Updating goal targets....\n"
msgstr "更新目标....\n"
-#: main.c:2306
+#: main.c:2550
msgid "warning: Clock skew detected. Your build may be incomplete."
msgstr "警告:检测到时钟错误。您的创建å¯èƒ½æ˜¯ä¸å®Œæ•´çš„。"
-#: main.c:2470
+#: main.c:2718
#, c-format
msgid "Usage: %s [options] [target] ...\n"
msgstr "用法:%s [选项] [目标] ...\n"
-#: main.c:2476
+#: main.c:2724
#, c-format
msgid ""
"\n"
@@ -1079,7 +1270,7 @@ msgstr ""
"\n"
"该程åºä¸º %s 编译\n"
-#: main.c:2478
+#: main.c:2726
#, c-format
msgid ""
"\n"
@@ -1088,36 +1279,36 @@ msgstr ""
"\n"
"该程åºä¸º %s (%s) 编译\n"
-#: main.c:2481
+#: main.c:2729
#, c-format
msgid "Report bugs to <bug-make@gnu.org>\n"
msgstr "报告错误到 <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 "“-%câ€é€‰é¡¹éœ€è¦éžç©ºå­—符串å‚æ•°"
-#: 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 "“-%câ€é€‰é¡¹éœ€è¦æ­£æ•´æ•°å‚æ•°"
-#: main.c:3054
+#: main.c:3253
#, fuzzy, c-format
msgid "%sBuilt for %s\n"
msgstr ""
"\n"
"%s该程åºä¸º %s 编译\n"
-#: main.c:3056
+#: main.c:3255
#, fuzzy, c-format
msgid "%sBuilt for %s (%s)\n"
msgstr ""
"\n"
"%s该程åºä¸º %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."
@@ -1126,7 +1317,7 @@ msgid ""
"%sThere is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
-#: main.c:3086
+#: main.c:3287
#, c-format
msgid ""
"\n"
@@ -1135,7 +1326,7 @@ msgstr ""
"\n"
"# make æ•°æ®åŸºç¡€ï¼Œæ‰“å°åœ¨ %s"
-#: main.c:3096
+#: main.c:3297
#, c-format
msgid ""
"\n"
@@ -1144,106 +1335,106 @@ msgstr ""
"\n"
"# 在 %s ä¸Šå®Œæˆ make æ•°æ®åŸºç¡€\n"
-#: main.c:3237
+#: misc.c:201
+#, c-format
+msgid "Unknown error %d"
+msgstr "未知错误 %d"
+
+#: misc.c:222 misc.c:233 misc.c:248 misc.c:265 misc.c:284 read.c:3272
+msgid "virtual memory exhausted"
+msgstr "虚拟内存耗尽"
+
+#: misc.c:522
+#, c-format
+msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgstr "%s: 用户 %lu (真实用户 %lu), 组 %lu (真实组 %lu)\n"
+
+#: misc.c:543
+msgid "Initialized access"
+msgstr "åˆå§‹åŒ–æˆåŠŸ"
+
+#: misc.c:622
+msgid "User access"
+msgstr "用户æƒé™"
+
+#: misc.c:670
+msgid "Make access"
+msgstr "Make æƒé™"
+
+#: misc.c:704
+msgid "Child access"
+msgstr "å­è¿›ç¨‹ æƒé™"
+
+#: output.c:128
#, c-format
msgid "%s: Entering an unknown directory\n"
msgstr "%s: 进入一个未知的目录\n"
-#: main.c:3239
+#: output.c:130
#, c-format
msgid "%s: Leaving an unknown directory\n"
msgstr "%s: 离开一个未知的目录\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: 进入目录“%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: 离开目录“%sâ€\n"
-#: main.c:3250
+#: output.c:139
#, c-format
msgid "%s[%u]: Entering an unknown directory\n"
msgstr "%s[%u]: 进入一个未知的目录\n"
-#: main.c:3253
+#: output.c:141
#, c-format
msgid "%s[%u]: Leaving an unknown directory\n"
msgstr "%s[%u]: 离开一个未知的目录\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]: 进入目录“%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]: 离开目录“%sâ€\n"
-#: misc.c:316
+#: output.c:515
+#, c-format
+msgid "write error: %s"
+msgstr "写错误: %s"
+
+#: output.c:517
+msgid "write error"
+msgstr "写错误"
+
+#: output.c:740
msgid ". Stop.\n"
msgstr "。 åœæ­¢ã€‚\n"
-#: misc.c:337
-#, c-format
-msgid "Unknown error %d"
-msgstr "未知错误 %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 "虚拟内存耗尽"
-
-#: misc.c:708
-#, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
-msgstr "%s: 用户 %lu (真实用户 %lu), 组 %lu (真实组 %lu)\n"
-
-#: misc.c:729
-msgid "Initialized access"
-msgstr "åˆå§‹åŒ–æˆåŠŸ"
-
-#: misc.c:808
-msgid "User access"
-msgstr "用户æƒé™"
-
-#: misc.c:856
-msgid "Make access"
-msgstr "Make æƒé™"
-
-#: misc.c:890
-msgid "Child access"
-msgstr "å­è¿›ç¨‹ æƒé™"
-
-#: misc.c:954
-#, c-format
-msgid "write error: %s"
-msgstr "写错误: %s"
-
-#: misc.c:956
-msgid "write error"
-msgstr "写错误"
-
-#: read.c:179
+#: read.c:180
msgid "Reading makefiles...\n"
msgstr "正在读入 makefiles...\n"
#: read.c:333
-#, c-format
-msgid "Reading makefile `%s'"
+#, fuzzy, c-format
+msgid "Reading makefile '%s'"
msgstr "正在读入 makefile “%sâ€"
#: read.c:335
@@ -1266,326 +1457,344 @@ msgstr " (ä¸ç”¨ç†)"
msgid " (no ~ expansion)"
msgstr " (没有 ~ 扩展)"
-#: 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 "æ¡ä»¶ä¸­å«æœ‰æ— æ•ˆè¯­æ³•"
-#: 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 "命令在第一个目标å‰å¼€å§‹"
-#: read.c:940
+#: read.c:1036
#, fuzzy
msgid "missing rule before recipe"
msgstr "命令之å‰é—æ¼äº†è§„则"
-#: read.c:1027
+#: read.c:1123
#, c-format
msgid "missing separator%s"
msgstr "é—æ¼åˆ†éš”符 %s"
-#: read.c:1029
+#: read.c:1125
msgid " (did you mean TAB instead of 8 spaces?)"
msgstr " (您的æ„æ€æ˜¯ç”¨ TAB 代替 8 个空格?)"
-#: read.c:1163
+#: read.c:1263
msgid "missing target pattern"
msgstr "无目标匹é…"
-#: read.c:1165
+#: read.c:1265
msgid "multiple target patterns"
msgstr "多个目标匹é…"
-#: read.c:1169
-#, c-format
-msgid "target pattern contains no `%%'"
+#: read.c:1269
+#, fuzzy, c-format
+msgid "target pattern contains no '%%'"
msgstr "目标模å¼ä¸å«æœ‰â€œ%%â€"
-#: read.c:1293
-msgid "missing `endif'"
+#: read.c:1391
+#, fuzzy
+msgid "missing 'endif'"
msgstr "é—æ¼â€œendifâ€"
-#: read.c:1332 read.c:1377 variable.c:1488
+#: read.c:1430 read.c:1475 variable.c:1554
msgid "empty variable name"
msgstr "空å˜é‡å"
-#: read.c:1367
+#: read.c:1465
#, fuzzy
-msgid "extraneous text after `define' directive"
+msgid "extraneous text after 'define' directive"
msgstr "“endefâ€æŒ‡ä»¤åŽå«æœ‰ä¸è¯¥å‡ºçŽ°çš„文字"
-#: read.c:1392
-msgid "missing `endef', unterminated `define'"
+#: read.c:1490
+#, fuzzy
+msgid "missing 'endef', unterminated 'define'"
msgstr "é—æ¼â€œendefâ€ï¼Œæœªç»ˆæ­¢çš„“defineâ€"
-#: read.c:1420
+#: read.c:1518
#, fuzzy
-msgid "extraneous text after `endef' directive"
+msgid "extraneous text after 'endef' directive"
msgstr "“endefâ€æŒ‡ä»¤åŽå«æœ‰ä¸è¯¥å‡ºçŽ°çš„文字"
-#: read.c:1490
-#, c-format
-msgid "Extraneous text after `%s' directive"
+#: read.c:1589
+#, fuzzy, c-format
+msgid "extraneous text after '%s' directive"
msgstr "在“%sâ€æŒ‡ä»¤ä¹‹åŽå«æœ‰ä¸è¯¥å‡ºçŽ°çš„文字"
-#: read.c:1499 read.c:1513
-#, c-format
-msgid "extraneous `%s'"
+#: read.c:1598 read.c:1612
+#, fuzzy, c-format
+msgid "extraneous '%s'"
msgstr "ä¸è¯¥å‡ºçŽ°çš„“%sâ€"
-#: read.c:1518
-msgid "only one `else' per conditional"
+#: read.c:1617
+#, fuzzy
+msgid "only one 'else' per conditional"
msgstr "æ¯ä¸ªæ¡ä»¶åªèƒ½æœ‰ä¸€ä¸ªâ€œelseâ€"
-#: read.c:1797
+#: read.c:1892
msgid "Malformed target-specific variable definition"
msgstr "畸形的针对目标的标é‡å®šä¹‰"
-#: read.c:1855
+#: read.c:1951
#, fuzzy
msgid "prerequisites cannot be defined in recipes"
msgstr "ä¾èµ–无法在命令脚本中定义"
-#: 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 "目标“%sâ€ä¸åŒ¹é…目标模å¼"
-#: 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 "目标文件“%sâ€å«æœ‰ : å’Œ :: 两ç§æ¡ç›®"
-#: 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 "目标“%sâ€åœ¨åŒä¸€ä¸ªè§„则中给出了多次。"
-#: read.c:2006
+#: read.c:2114
#, fuzzy, c-format
-msgid "warning: overriding recipe for target `%s'"
+msgid "warning: overriding recipe for target '%s'"
msgstr "警告:覆盖关于目标“%sâ€çš„命令"
-#: 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 "警告:忽略关于目标“%sâ€çš„旧命令"
-#: read.c:2392
+#: read.c:2530
msgid "warning: NUL character seen; rest of line ignored"
msgstr "警告:é‡åˆ°äº† NUL 字符;忽略行的剩余部分"
-#: 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 "对“%sâ€æ— éœ€åšä»»ä½•äº‹ã€‚"
-#: 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â€æ˜¯æœ€æ–°çš„。"
-#: remake.c:306
-#, c-format
-msgid "Pruning file `%s'.\n"
+#: remake.c:305
+#, fuzzy, c-format
+msgid "Pruning file '%s'.\n"
msgstr "正在删除文件“%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 "%s没有规则å¯ä»¥åˆ›å»ºç›®æ ‡â€œ%sâ€%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â€%4$s需è¦çš„目标“%2$sâ€"
#: remake.c:413
-#, c-format
-msgid "Considering target file `%s'.\n"
+#, fuzzy, c-format
+msgid "Considering target file '%s'.\n"
msgstr "正在考虑目标文件“%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 "最近已å°è¯•è¿‡æ›´æ–°æ–‡ä»¶â€œ%sâ€å¹¶å¤±è´¥ã€‚\n"
#: remake.c:432
-#, c-format
-msgid "File `%s' was considered already.\n"
+#, fuzzy, c-format
+msgid "File '%s' was considered already.\n"
msgstr "已考虑过文件“%sâ€ã€‚\n"
#: remake.c:442
-#, c-format
-msgid "Still updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Still updating file '%s'.\n"
msgstr "ä»ç„¶åœ¨æ›´æ–°æ–‡ä»¶â€œ%sâ€ã€‚\n"
#: remake.c:445
-#, c-format
-msgid "Finished updating file `%s'.\n"
+#, fuzzy, c-format
+msgid "Finished updating file '%s'.\n"
msgstr "更新文件“%sâ€å®Œæˆã€‚\n"
#: remake.c:474
-#, c-format
-msgid "File `%s' does not exist.\n"
+#, fuzzy, c-format
+msgid "File '%s' does not exist.\n"
msgstr "文件“%sâ€ä¸å­˜åœ¨ã€‚\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 "*** 警告: .LOW_RESOLUTION_TIME 文件 `%s' 有一个精细的时间标志"
-#: 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 "找到一æ¡å…³äºŽâ€œ%sâ€çš„éšå«è§„则。\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 "找ä¸åˆ°å…³äºŽâ€œ%sâ€çš„éšå«è§„则。\n"
#: remake.c:502
#, fuzzy, c-format
-msgid "Using default recipe for `%s'.\n"
+msgid "Using default recipe for '%s'.\n"
msgstr "使用关于“%sâ€çš„默认命令。\n"
-#: remake.c:535 remake.c:1057
+#: remake.c:535 remake.c:1067
#, c-format
msgid "Circular %s <- %s dependency dropped."
msgstr "放弃循环ä¾èµ– %s <- %s 。"
-#: 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 "目标文件“%sâ€çš„å‰æ已完æˆã€‚\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 "正在创建“%sâ€çš„å‰æ。\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 "放弃目标文件“%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 "由于错误目标“%sâ€å¹¶æœªé‡æ–°åˆ›å»ºã€‚"
-#: remake.c:727
-#, c-format
-msgid "Prerequisite `%s' is order-only for target `%s'.\n"
+#: remake.c:731
+#, fuzzy, c-format
+msgid "Prerequisite '%s' is order-only for target '%s'.\n"
msgstr "“%sâ€æ˜¯ç›®æ ‡â€œ%sâ€çš„一个仅用于指定执行顺åº(order-only)çš„å‰æ。\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 "目标“%2$sâ€çš„å‰æ“%1$sâ€ä¸å­˜åœ¨ã€‚\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 "å‰æ“%sâ€æ¯”目标“%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 "å‰æ“%sâ€æ¯”目标“%sâ€æ—§ã€‚\n"
-#: remake.c:758
-#, c-format
-msgid "Target `%s' is double-colon and has no prerequisites.\n"
+#: remake.c:762
+#, fuzzy, c-format
+msgid "Target '%s' is double-colon and has no prerequisites.\n"
msgstr "目标“%sâ€æ˜¯åŒå†’å·ç›®æ ‡å¹¶ä¸”没有å‰æ。\n"
-#: remake.c:765
+#: remake.c:769
#, fuzzy, 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 "没有关于“%sâ€çš„命令,并且实际上改å˜äº†çš„å‰æ。\n"
-#: 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 "由于 always-make 标志所以 make “%sâ€ã€‚\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 "ä¸éœ€è¦é‡æ–°åˆ›å»ºç›®æ ‡â€œ%sâ€"
-#: remake.c:780
-#, c-format
-msgid "; using VPATH name `%s'"
+#: remake.c:784
+#, fuzzy, c-format
+msgid "; using VPATH name '%s'"
msgstr ";使用 VPATH å称“%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 "å¿…é¡»é‡æ–°åˆ›å»ºç›®æ ‡â€œ%sâ€ã€‚\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 " 忽略 VPATH å称 `%s'。\n"
-#: remake.c:815
+#: remake.c:819
#, fuzzy, c-format
-msgid "Recipe of `%s' is being run.\n"
+msgid "Recipe of '%s' is being run.\n"
msgstr "“%sâ€çš„命令正在被执行。\n"
-#: 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 "é‡æ–°åˆ›å»ºç›®æ ‡æ–‡ä»¶â€œ%sâ€å¤±è´¥ã€‚\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 "é‡æ–°åˆ›å»ºç›®æ ‡æ–‡ä»¶â€œ%sâ€æˆåŠŸã€‚\n"
-#: remake.c:828
-#, c-format
-msgid "Target file `%s' needs remade under -q.\n"
+#: remake.c:832
+#, fuzzy, c-format
+msgid "Target file '%s' needs to be remade under -q.\n"
msgstr "目标文件“%sâ€éœ€è¦ä»¥ -q 选项é‡æ–°åˆ›å»ºã€‚\n"
-#: 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 "使用关于“%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 "警告:文件“%sâ€çš„修改时间在未æ¥"
-#: 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 "警告:文件“%sâ€çš„修改时间在 %.2g 秒åŽ"
-#: 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 的元素“%sâ€ä¸æ˜¯ä¸€ä¸ªæ¨¡å¼"
-#: remote-cstms.c:125
+#: remote-cstms.c:122
#, c-format
msgid "Customs won't export: %s\n"
msgstr "用户ä¸å¸Œæœ›å¯¼å‡ºï¼š%s\n"
-#: rule.c:499
+#: rule.c:496
msgid ""
"\n"
"# Implicit Rules"
@@ -1593,7 +1802,7 @@ msgstr ""
"\n"
"# éšå«è§„则。"
-#: rule.c:514
+#: rule.c:511
msgid ""
"\n"
"# No implicit rules."
@@ -1601,7 +1810,7 @@ msgstr ""
"\n"
"# 没有éšå«è§„则。"
-#: rule.c:517
+#: rule.c:514
#, c-format
msgid ""
"\n"
@@ -1610,244 +1819,259 @@ msgstr ""
"\n"
"# %u æ¡éšå«è§„则,%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 "错误:num_pattern_rules 出错ï¼%u != %u"
-#: signame.c:86
+#: signame.c:84
msgid "unknown signal"
msgstr "未知的信å·"
-#: signame.c:94
+#: signame.c:92
msgid "Hangup"
msgstr "挂起"
-#: signame.c:97
+#: signame.c:95
msgid "Interrupt"
msgstr "中断"
-#: signame.c:100
+#: signame.c:98
msgid "Quit"
msgstr "退出"
-#: signame.c:103
+#: signame.c:101
msgid "Illegal Instruction"
msgstr "éžæ³•æŒ‡ä»¤"
-#: signame.c:106
+#: signame.c:104
msgid "Trace/breakpoint trap"
msgstr "跟踪/断点陷阱"
-#: signame.c:111
+#: signame.c:109
msgid "Aborted"
msgstr "已失败"
-#: signame.c:114
+#: signame.c:112
msgid "IOT trap"
msgstr "IOT 陷阱"
-#: signame.c:117
+#: signame.c:115
msgid "EMT trap"
msgstr "EMT 陷阱"
-#: signame.c:120
+#: signame.c:118
msgid "Floating point exception"
msgstr "浮点数异常"
-#: signame.c:123
+#: signame.c:121
msgid "Killed"
msgstr "å·²æ€æ­»"
-#: signame.c:126
+#: signame.c:124
msgid "Bus error"
msgstr "总线错误"
-#: signame.c:129
+#: signame.c:127
msgid "Segmentation fault"
msgstr "段错误"
-#: signame.c:132
+#: signame.c:130
msgid "Bad system call"
msgstr "错误的系统调用"
-#: signame.c:135
+#: signame.c:133
msgid "Broken pipe"
msgstr "断开的管é“"
-#: signame.c:138
+#: signame.c:136
msgid "Alarm clock"
msgstr "闹钟"
-#: signame.c:141
+#: signame.c:139
msgid "Terminated"
msgstr "已终止"
-#: signame.c:144
+#: signame.c:142
msgid "User defined signal 1"
msgstr "ç”¨æˆ·å®šä¹‰ä¿¡å· 1"
-#: signame.c:147
+#: signame.c:145
msgid "User defined signal 2"
msgstr "ç”¨æˆ·å®šä¹‰ä¿¡å· 2"
-#: signame.c:152 signame.c:155
+#: signame.c:150 signame.c:153
msgid "Child exited"
msgstr "å­è¿›ç¨‹å·²é€€å‡º"
-#: signame.c:158
+#: signame.c:156
msgid "Power failure"
msgstr "电æºå¤±æ•ˆ"
-#: signame.c:161
+#: signame.c:159
msgid "Stopped"
msgstr "å·²åœæ­¢"
-#: signame.c:164
+#: signame.c:162
msgid "Stopped (tty input)"
msgstr "å·²åœæ­¢ (tty 输入)"
-#: signame.c:167
+#: signame.c:165
msgid "Stopped (tty output)"
msgstr "å·²åœæ­¢ (tty 输出)"
-#: signame.c:170
+#: signame.c:168
msgid "Stopped (signal)"
msgstr "å·²åœæ­¢ (ä¿¡å·)"
-#: signame.c:173
+#: signame.c:171
msgid "CPU time limit exceeded"
msgstr "CPU 时间超出é™åˆ¶"
-#: signame.c:176
+#: signame.c:174
msgid "File size limit exceeded"
msgstr "文件大å°è¶…出é™åˆ¶"
-#: signame.c:179
+#: signame.c:177
msgid "Virtual timer expired"
msgstr "虚拟时钟超时"
-#: signame.c:182
+#: signame.c:180
msgid "Profiling timer expired"
msgstr "测试时钟超市"
-#: signame.c:188
+#: signame.c:186
msgid "Window changed"
msgstr "窗å£å·²æ”¹å˜"
-#: signame.c:191
+#: signame.c:189
msgid "Continued"
msgstr "继续"
-#: signame.c:194
+#: signame.c:192
msgid "Urgent I/O condition"
msgstr "紧急 I/O æ¡ä»¶"
-#: signame.c:201 signame.c:210
+#: signame.c:199 signame.c:208
msgid "I/O possible"
msgstr "I/O å¯è¡Œ"
-#: 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 "资æºä¸¢å¤±"
-#: signame.c:216
+#: signame.c:214
msgid "Danger signal"
msgstr "å±é™©ä¿¡å·"
-#: signame.c:219
+#: signame.c:217
msgid "Information request"
msgstr "ä¿¡æ¯è¯·æ±‚"
-#: signame.c:222
+#: signame.c:220
msgid "Floating point co-processor not available"
msgstr "浮点数å处ç†å™¨ä¸å¯ç”¨"
-#: strcache.c:235
+#: strcache.c:236
#, fuzzy, c-format
msgid ""
"\n"
-"%s # of strings in strcache: %d / lookups = %lu / hits = %lu\n"
-msgstr ""
-"\n"
-"%s strcache 中的字符串数é‡: %d\n"
+"%s No strcache buffers\n"
+msgstr "%s strcache 缓冲区数é‡: %d\n"
-#: strcache.c:237
+#: strcache.c:266
#, fuzzy, c-format
-msgid "%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"
-msgstr "%s strcache 缓冲区数é‡: %d\n"
+msgid ""
+"\n"
+"%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu "
+"B\n"
+msgstr "%s strcache 剩余: 总共 = %d / 最大 = %d / æœ€å° = %d / å¹³å‡ = %d\n"
+
+#: strcache.c:270
+#, c-format
+msgid ""
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
+msgstr ""
-#: strcache.c:239
+#: strcache.c:280
#, fuzzy, c-format
-msgid "%s strcache used: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
msgstr "%s strcache 大å°: 总共 = %d / 最大 = %d / æœ€å° = %d / å¹³å‡ = %d\n"
-#: strcache.c:241
+#: strcache.c:283
#, fuzzy, c-format
-msgid "%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"
+msgid ""
+"%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
msgstr "%s strcache 剩余: 总共 = %d / 最大 = %d / æœ€å° = %d / å¹³å‡ = %d\n"
-#: strcache.c:244
-#, fuzzy
+#: 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"
"# 文件æ‚凑表状æ€:\n"
"# "
-#: variable.c:1541
+#: variable.c:1607
+msgid "automatic"
+msgstr "自动"
+
+#: variable.c:1610
msgid "default"
msgstr "默认"
-#: variable.c:1544
+#: variable.c:1613
msgid "environment"
msgstr "环境"
-#: variable.c:1547
+#: variable.c:1616
msgid "makefile"
msgstr "makefile"
-#: variable.c:1550
+#: variable.c:1619
msgid "environment under -e"
msgstr "-e 指定的环境å˜é‡"
-#: variable.c:1553
+#: variable.c:1622
msgid "command line"
msgstr "命令行"
-#: variable.c:1556
-msgid "`override' directive"
+#: variable.c:1625
+#, fuzzy
+msgid "'override' directive"
msgstr "“overrideâ€æŒ‡ä»¤"
-#: variable.c:1559
-msgid "automatic"
-msgstr "自动"
-
-#: variable.c:1570
-#, c-format
-msgid " (from `%s', line %lu)"
+#: variable.c:1636
+#, fuzzy, c-format
+msgid " (from '%s', line %lu)"
msgstr " (从“%sâ€ï¼Œè¡Œ %lu)"
-#: variable.c:1612
+#: variable.c:1699
msgid "# variable set hash-table stats:\n"
msgstr "# å˜é‡çš„æ‚凑表状æ€:\n"
-#: variable.c:1623
+#: variable.c:1710
msgid ""
"\n"
"# Variables\n"
@@ -1855,7 +2079,7 @@ msgstr ""
"\n"
"# å˜é‡\n"
-#: variable.c:1627
+#: variable.c:1714
msgid ""
"\n"
"# Pattern-specific Variable Values"
@@ -1863,7 +2087,7 @@ msgstr ""
"\n"
"# Pattern-specific å˜é‡å€¼"
-#: variable.c:1641
+#: variable.c:1728
msgid ""
"\n"
"# No pattern-specific variable values."
@@ -1871,7 +2095,7 @@ msgstr ""
"\n"
"# 没有 pattern-specific å˜é‡çš„值。"
-#: variable.c:1643
+#: variable.c:1730
#, c-format
msgid ""
"\n"
@@ -1880,92 +2104,92 @@ msgstr ""
"\n"
"# %u 个 pattern-specific å˜é‡çš„值"
-#: variable.h:219
-#, c-format
-msgid "warning: undefined variable `%.*s'"
+#: variable.h:224
+#, fuzzy, c-format
+msgid "warning: undefined variable '%.*s'"
msgstr "警告:未定义的å˜é‡â€œ%.*sâ€"
-#: vmsfunctions.c:92
+#: vmsfunctions.c:91
#, fuzzy, c-format
msgid "sys$search() failed with %d\n"
msgstr "sys$search 失败并返回 %d\n"
-#: vmsjobs.c:71
+#: vmsjobs.c:70
#, c-format
msgid "Warning: Empty redirection\n"
msgstr "警告:空的é‡å®šå‘\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 "内部错误:“%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 "-警告, ä½ å¯èƒ½å¿…须从 DCL é‡æ–°å¯ç”¨ CTRL-Y。\n"
-#: vmsjobs.c:421
+#: vmsjobs.c:417
#, c-format
msgid "BUILTIN [%s][%s]\n"
msgstr "BUILTIN [%s][%s]\n"
-#: vmsjobs.c:432
+#: vmsjobs.c:428
#, c-format
msgid "BUILTIN CD %s\n"
msgstr "BUILTIN CD %s\n"
-#: vmsjobs.c:450
+#: vmsjobs.c:446
#, c-format
msgid "BUILTIN RM %s\n"
msgstr "BUILTIN RM %s\n"
-#: vmsjobs.c:471
+#: vmsjobs.c:467
#, c-format
msgid "Unknown builtin command '%s'\n"
msgstr "未知的内置命令“%sâ€\n"
-#: vmsjobs.c:493
+#: vmsjobs.c:489
#, c-format
msgid "Error, empty command\n"
msgstr "错误,空命令\n"
-#: vmsjobs.c:506
+#: vmsjobs.c:502
#, c-format
msgid "Redirected input from %s\n"
msgstr "æ¥è‡ª %s çš„é‡å®šå‘输入\n"
-#: vmsjobs.c:513
+#: vmsjobs.c:509
#, c-format
msgid "Redirected error to %s\n"
msgstr "到 %s çš„é‡å®šå‘错误输出\n"
-#: vmsjobs.c:523
+#: vmsjobs.c:518
#, fuzzy, c-format
msgid "Append output to %s\n"
msgstr "到 %s çš„é‡å®šå‘输出\n"
-#: vmsjobs.c:529
+#: vmsjobs.c:524
#, c-format
msgid "Redirected output to %s\n"
msgstr "到 %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 "执行 %s 作为替代\n"
-#: vmsjobs.c:712
+#: vmsjobs.c:706
#, c-format
msgid "Error spawning, %d\n"
msgstr "错误产生,%d\n"
-#: vpath.c:586
+#: vpath.c:583
msgid ""
"\n"
"# VPATH Search Paths\n"
@@ -1973,37 +2197,51 @@ msgstr ""
"\n"
"# VPATH æœç´¢è·¯å¾„\n"
-#: vpath.c:603
-msgid "# No `vpath' search paths."
+#: vpath.c:600
+#, fuzzy
+msgid "# No 'vpath' search paths."
msgstr "# 没有“vpathâ€æœç´¢è·¯å¾„。"
-#: 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â€æœç´¢è·¯å¾„。\n"
-#: vpath.c:608
+#: vpath.c:605
+#, fuzzy
msgid ""
"\n"
-"# No general (`VPATH' variable) search path."
+"# No general ('VPATH' variable) search path."
msgstr ""
"\n"
"# 没有通用æœç´¢è·¯å¾„(“VPATHâ€å˜é‡)。"
-#: vpath.c:614
+#: vpath.c:611
+#, fuzzy
msgid ""
"\n"
-"# General (`VPATH' variable) search path:\n"
+"# General ('VPATH' variable) search path:\n"
"# "
msgstr ""
"\n"
"# 通用æœç´¢è·¯å¾„(“VPATHâ€å˜é‡):\n"
"# "
+#, fuzzy
+#~ msgid "# Invalid value in 'update_status' member!"
+#~ msgstr "# “update_statusâ€æˆå‘˜ä¸­æ— æ•ˆçš„值ï¼"
+
+#, fuzzy
+#~ msgid "unknown trace mode '%s'"
+#~ msgstr "未知的内置命令“%sâ€\n"
+
+#~ msgid "*** [%s] Error 0x%x (ignored)"
+#~ msgstr "*** [%s] 错误 0x%x (忽略)"
+
#~ msgid "process_easy() failed failed to launch process (e=%ld)\n"
#~ msgstr "process_easy() å¯åŠ¨è¿›ç¨‹å¤±è´¥ (e=%ld)\n"
@@ -2025,6 +2263,13 @@ msgstr ""
#~ msgid "invalid `override' directive"
#~ msgstr "无效的“overrideâ€æŒ‡ä»¤"
+#~ msgid ""
+#~ "\n"
+#~ "%s # of strings in strcache: %d\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s strcache 中的字符串数é‡: %d\n"
+
#~ msgid "-warning, CTRL-Y will leave sub-process(es) around.\n"
#~ msgstr "-警告, CTRL-Y 将利刀å­è¿›ç¨‹çŽ¯å¢ƒã€‚\n"
diff --git a/read.c b/read.c
index a3ad88e..15d1b13 100644
--- a/read.c
+++ b/read.c
@@ -1,7 +1,5 @@
/* Reading and parsing of makefiles for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,14 +14,14 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
#include <assert.h>
#include <glob.h>
-#include "dep.h"
#include "filedef.h"
+#include "dep.h"
#include "job.h"
#include "commands.h"
#include "variable.h"
@@ -32,7 +30,10 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
#include "hash.h"
-#ifndef WINDOWS32
+#ifdef WINDOWS32
+#include <windows.h>
+#include "sub_proc.h"
+#else /* !WINDOWS32 */
#ifndef _AMIGA
#ifndef VMS
#include <pwd.h>
@@ -53,7 +54,7 @@ struct ebuffer
char *bufstart; /* Start of the entire buffer. */
unsigned int size; /* Malloc'd size of buffer. */
FILE *fp; /* File, or NULL if this is an internal buffer. */
- struct floc floc; /* Info on the file in fp (if any). */
+ gmk_floc floc; /* Info on the file in fp (if any). */
};
/* Track the modifiers we can have on variable assignments */
@@ -76,22 +77,22 @@ enum make_word_type
};
-/* A `struct conditionals' contains the information describing
+/* A 'struct conditionals' contains the information describing
all the active conditionals in a makefile.
- The global variable `conditionals' contains the conditionals
+ The global variable 'conditionals' contains the conditionals
information for the current makefile. It is initialized from
- the static structure `toplevel_conditionals' and is later changed
+ the static structure 'toplevel_conditionals' and is later changed
to new structures for included makefiles. */
struct conditionals
{
- unsigned int if_cmds; /* Depth of conditional nesting. */
- unsigned int allocated; /* Elts allocated in following arrays. */
- char *ignoring; /* Are we ignoring or interpreting?
+ unsigned int if_cmds; /* Depth of conditional nesting. */
+ unsigned int allocated; /* Elts allocated in following arrays. */
+ char *ignoring; /* Are we ignoring or interpreting?
0=interpreting, 1=not yet interpreted,
2=already interpreted */
- char *seen_else; /* Have we already seen an `else'? */
+ char *seen_else; /* Have we already seen an 'else'? */
};
static struct conditionals toplevel_conditionals;
@@ -127,11 +128,11 @@ static unsigned int max_incl_len;
/* The filename and pointer to line number of the
makefile currently being read in. */
-const struct floc *reading_file = 0;
+const gmk_floc *reading_file = 0;
-/* The chain of makefiles read by read_makefile. */
+/* The chain of files read by read_all_makefiles. */
-static struct dep *read_makefiles = 0;
+static struct dep *read_files = 0;
static int eval_makefile (const char *filename, int flags);
static void eval (struct ebuffer *buffer, int flags);
@@ -141,30 +142,30 @@ static void do_undefine (char *name, enum variable_origin origin,
struct ebuffer *ebuf);
static struct variable *do_define (char *name, enum variable_origin origin,
struct ebuffer *ebuf);
-static int conditional_line (char *line, int len, const struct floc *flocp);
+static int conditional_line (char *line, int len, const gmk_floc *flocp);
static void record_files (struct nameseq *filenames, const char *pattern,
const char *pattern_percent, char *depstr,
unsigned int cmds_started, char *commands,
unsigned int commands_idx, int two_colon,
- const struct floc *flocp);
+ char prefix, const gmk_floc *flocp);
static void record_target_var (struct nameseq *filenames, char *defn,
enum variable_origin origin,
struct vmodifiers *vmod,
- const struct floc *flocp);
+ const gmk_floc *flocp);
static enum make_word_type get_next_mword (char *buffer, char *delim,
char **startp, unsigned int *length);
static void remove_comments (char *line);
-static char *find_char_unquote (char *string, int stop1, int stop2,
- int blank, int ignorevars);
+static char *find_char_unquote (char *string, int map);
+static char *unescape_char (char *string, int c);
/* Compare a word, both length and contents.
P must point to the word to be tested, and WLEN must be the length.
*/
-#define word1eq(s) (wlen == sizeof(s)-1 && strneq (s, p, sizeof(s)-1))
+#define word1eq(s) (wlen == CSTRLEN (s) && strneq (s, p, CSTRLEN (s)))
-/* Read in all the makefiles and return the chain of their names. */
+/* Read in all the makefiles and return a chain of targets to rebuild. */
struct dep *
read_all_makefiles (const char **makefiles)
@@ -203,9 +204,9 @@ read_all_makefiles (const char **makefiles)
while ((name = find_next_token ((const char **)&p, &length)) != 0)
{
- if (*p != '\0')
- *p++ = '\0';
- eval_makefile (name, RM_NO_DEFAULT_GOAL|RM_INCLUDED|RM_DONTCARE);
+ if (*p != '\0')
+ *p++ = '\0';
+ eval_makefile (name, RM_NO_DEFAULT_GOAL|RM_INCLUDED|RM_DONTCARE);
}
free (value);
@@ -216,21 +217,21 @@ read_all_makefiles (const char **makefiles)
if (makefiles != 0)
while (*makefiles != 0)
{
- struct dep *tail = read_makefiles;
- register struct dep *d;
+ struct dep *tail = read_files;
+ struct dep *d;
- if (! eval_makefile (*makefiles, 0))
- perror_with_name ("", *makefiles);
+ if (! eval_makefile (*makefiles, 0))
+ perror_with_name ("", *makefiles);
- /* Find the right element of read_makefiles. */
- d = read_makefiles;
- while (d->next != tail)
- d = d->next;
+ /* Find the first element eval_makefile() added to read_files. */
+ d = read_files;
+ while (d->next != tail)
+ d = d->next;
- /* Use the storage read_makefile allocates. */
- *makefiles = dep_name (d);
- ++num_makefiles;
- ++makefiles;
+ /* Reuse the storage allocated for the read_file. */
+ *makefiles = dep_name (d);
+ ++num_makefiles;
+ ++makefiles;
}
/* If there were no -f switches, try the default names. */
@@ -239,52 +240,52 @@ read_all_makefiles (const char **makefiles)
{
static char *default_makefiles[] =
#ifdef VMS
- /* all lower case since readdir() (the vms version) 'lowercasifies' */
- { "makefile.vms", "gnumakefile.", "makefile.", 0 };
+ /* all lower case since readdir() (the vms version) 'lowercasifies' */
+ { "makefile.vms", "gnumakefile.", "makefile.", 0 };
#else
#ifdef _AMIGA
- { "GNUmakefile", "Makefile", "SMakefile", 0 };
+ { "GNUmakefile", "Makefile", "SMakefile", 0 };
#else /* !Amiga && !VMS */
- { "GNUmakefile", "makefile", "Makefile", 0 };
+ { "GNUmakefile", "makefile", "Makefile", 0 };
#endif /* AMIGA */
#endif /* VMS */
register char **p = default_makefiles;
while (*p != 0 && !file_exists_p (*p))
- ++p;
+ ++p;
if (*p != 0)
- {
- if (! eval_makefile (*p, 0))
- perror_with_name ("", *p);
- }
+ {
+ if (! eval_makefile (*p, 0))
+ perror_with_name ("", *p);
+ }
else
- {
- /* No default makefile was found. Add the default makefiles to the
- `read_makefiles' chain so they will be updated if possible. */
- struct dep *tail = read_makefiles;
- /* Add them to the tail, after any MAKEFILES variable makefiles. */
- while (tail != 0 && tail->next != 0)
- tail = tail->next;
- for (p = default_makefiles; *p != 0; ++p)
- {
- struct dep *d = alloc_dep ();
- d->file = enter_file (strcache_add (*p));
- d->dontcare = 1;
- /* Tell update_goal_chain to bail out as soon as this file is
- made, and main not to die if we can't make this file. */
- d->changed = RM_DONTCARE;
- if (tail == 0)
- read_makefiles = d;
- else
- tail->next = d;
- tail = d;
- }
- if (tail != 0)
- tail->next = 0;
- }
+ {
+ /* No default makefile was found. Add the default makefiles to the
+ 'read_files' chain so they will be updated if possible. */
+ struct dep *tail = read_files;
+ /* Add them to the tail, after any MAKEFILES variable makefiles. */
+ while (tail != 0 && tail->next != 0)
+ tail = tail->next;
+ for (p = default_makefiles; *p != 0; ++p)
+ {
+ struct dep *d = alloc_dep ();
+ d->file = enter_file (strcache_add (*p));
+ d->dontcare = 1;
+ /* Tell update_goal_chain to bail out as soon as this file is
+ made, and main not to die if we can't make this file. */
+ d->changed = RM_DONTCARE;
+ if (tail == 0)
+ read_files = d;
+ else
+ tail->next = d;
+ tail = d;
+ }
+ if (tail != 0)
+ tail->next = 0;
+ }
}
- return read_makefiles;
+ return read_files;
}
/* Install a new conditional and return the previous one. */
@@ -320,66 +321,83 @@ eval_makefile (const char *filename, int flags)
{
struct dep *deps;
struct ebuffer ebuf;
- const struct floc *curfile;
+ const gmk_floc *curfile;
char *expanded = 0;
int makefile_errno;
- filename = strcache_add (filename);
- ebuf.floc.filenm = filename;
+ ebuf.floc.filenm = filename; /* Use the original file name. */
ebuf.floc.lineno = 1;
if (ISDB (DB_VERBOSE))
{
- printf (_("Reading makefile `%s'"), filename);
+ printf (_("Reading makefile '%s'"), filename);
if (flags & RM_NO_DEFAULT_GOAL)
- printf (_(" (no default goal)"));
+ printf (_(" (no default goal)"));
if (flags & RM_INCLUDED)
- printf (_(" (search path)"));
+ printf (_(" (search path)"));
if (flags & RM_DONTCARE)
- printf (_(" (don't care)"));
+ printf (_(" (don't care)"));
if (flags & RM_NO_TILDE)
- printf (_(" (no ~ expansion)"));
+ printf (_(" (no ~ expansion)"));
puts ("...");
}
/* First, get a stream to read. */
- /* Expand ~ in FILENAME unless it came from `include',
+ /* Expand ~ in FILENAME unless it came from 'include',
in which case it was already done. */
if (!(flags & RM_NO_TILDE) && filename[0] == '~')
{
expanded = tilde_expand (filename);
if (expanded != 0)
- filename = expanded;
+ filename = expanded;
}
- ebuf.fp = fopen (filename, "r");
+ ENULLLOOP (ebuf.fp, fopen (filename, "r"));
+
/* Save the error code so we print the right message later. */
makefile_errno = errno;
+ /* Check for unrecoverable errors: out of mem or FILE slots. */
+ switch (makefile_errno)
+ {
+#ifdef EMFILE
+ case EMFILE:
+#endif
+#ifdef ENFILE
+ case ENFILE:
+#endif
+ case ENOMEM:
+ fatal (reading_file, "%s", strerror (makefile_errno));
+ }
+
/* If the makefile wasn't found and it's either a makefile from
- the `MAKEFILES' variable or an included makefile,
+ the 'MAKEFILES' variable or an included makefile,
search the included makefile search path for this makefile. */
if (ebuf.fp == 0 && (flags & RM_INCLUDED) && *filename != '/')
{
unsigned int i;
for (i = 0; include_directories[i] != 0; ++i)
- {
- const char *included = concat (3, include_directories[i],
+ {
+ const char *included = concat (3, include_directories[i],
"/", filename);
- ebuf.fp = fopen (included, "r");
- if (ebuf.fp)
- {
- filename = strcache_add (included);
- break;
- }
- }
+ ebuf.fp = fopen (included, "r");
+ if (ebuf.fp)
+ {
+ filename = included;
+ break;
+ }
+ }
}
+ /* Now we have the final name for this makefile. Enter it into
+ the cache. */
+ filename = strcache_add (filename);
+
/* Add FILENAME to the chain of read makefiles. */
deps = alloc_dep ();
- deps->next = read_makefiles;
- read_makefiles = deps;
+ deps->next = read_files;
+ read_files = deps;
deps->file = lookup_file (filename);
if (deps->file == 0)
deps->file = enter_file (filename);
@@ -396,8 +414,8 @@ eval_makefile (const char *filename, int flags)
if (ebuf.fp == 0)
{
/* If we did some searching, errno has the error from the last
- attempt, rather from FILENAME itself. Restore it in case the
- caller wants to use it in a message. */
+ attempt, rather from FILENAME itself. Restore it in case the
+ caller wants to use it in a message. */
errno = makefile_errno;
return 0;
}
@@ -433,12 +451,12 @@ eval_makefile (const char *filename, int flags)
}
void
-eval_buffer (char *buffer)
+eval_buffer (char *buffer, const gmk_floc *floc)
{
struct ebuffer ebuf;
struct conditionals *saved;
struct conditionals new;
- const struct floc *curfile;
+ const gmk_floc *curfile;
/* Evaluate the buffer */
@@ -446,10 +464,15 @@ eval_buffer (char *buffer)
ebuf.buffer = ebuf.bufnext = ebuf.bufstart = buffer;
ebuf.fp = NULL;
- if (reading_file)
+ if (floc)
+ ebuf.floc = *floc;
+ else if (reading_file)
ebuf.floc = *reading_file;
else
- ebuf.floc.filenm = NULL;
+ {
+ ebuf.floc.filenm = NULL;
+ ebuf.floc.lineno = 1;
+ }
curfile = reading_file;
reading_file = &ebuf.floc;
@@ -492,9 +515,9 @@ parse_var_assignment (const char *line, struct vmodifiers *vmod)
{
int wlen;
const char *p2;
- enum variable_flavor flavor;
+ struct variable v;
- p2 = parse_variable_definition (p, &flavor);
+ p2 = parse_variable_definition (p, &v);
/* If this is a variable assignment, we're done. */
if (p2)
@@ -554,28 +577,29 @@ eval (struct ebuffer *ebuf, int set_default)
unsigned int commands_idx = 0;
unsigned int cmds_started, tgts_started;
int ignoring = 0, in_ignored_define = 0;
- int no_targets = 0; /* Set when reading a rule without targets. */
+ int no_targets = 0; /* Set when reading a rule without targets. */
struct nameseq *filenames = 0;
char *depstr = 0;
long nlines = 0;
int two_colon = 0;
+ char prefix = cmd_prefix;
const char *pattern = 0;
const char *pattern_percent;
- struct floc *fstart;
- struct floc fi;
+ gmk_floc *fstart;
+ gmk_floc fi;
-#define record_waiting_files() \
- do \
- { \
- if (filenames != 0) \
+#define record_waiting_files() \
+ do \
+ { \
+ if (filenames != 0) \
{ \
- fi.lineno = tgts_started; \
- record_files (filenames, pattern, pattern_percent, depstr, \
+ fi.lineno = tgts_started; \
+ record_files (filenames, pattern, pattern_percent, depstr, \
cmds_started, commands, commands_idx, two_colon, \
- &fi); \
- filenames = 0; \
+ prefix, &fi); \
+ filenames = 0; \
} \
- commands_idx = 0; \
+ commands_idx = 0; \
no_targets = 0; \
pattern = 0; \
} while (0)
@@ -592,9 +616,8 @@ eval (struct ebuffer *ebuf, int set_default)
when the start of the next rule (or eof) is encountered.
When you see a "continue" in the loop below, that means we are moving on
- to the next line _without_ ending any rule that we happen to be working
- with at the moment. If you see a "goto rule_complete", then the
- statement we just parsed also finishes the previous rule. */
+ to the next line. If you see record_waiting_files(), then the statement
+ we are parsing also finishes the previous rule. */
commands = xmalloc (200);
@@ -616,73 +639,76 @@ eval (struct ebuffer *ebuf, int set_default)
if (nlines < 0)
break;
- /* If this line is empty, skip it. */
line = ebuf->buffer;
+
+ /* If this is the first line, check for a UTF-8 BOM and skip it. */
+ if (ebuf->floc.lineno == 1 && line[0] == (char)0xEF
+ && line[1] == (char)0xBB && line[2] == (char)0xBF)
+ {
+ line += 3;
+ if (ISDB(DB_BASIC))
+ {
+ if (ebuf->floc.filenm)
+ printf (_("Skipping UTF-8 BOM in makefile '%s'\n"),
+ ebuf->floc.filenm);
+ else
+ printf (_("Skipping UTF-8 BOM in makefile buffer\n"));
+ }
+ }
+
+ /* If this line is empty, skip it. */
if (line[0] == '\0')
continue;
linelen = strlen (line);
/* Check for a shell command line first.
- If it is not one, we can stop treating tab specially. */
+ If it is not one, we can stop treating cmd_prefix specially. */
if (line[0] == cmd_prefix)
- {
- if (no_targets)
- /* Ignore the commands in a rule with no targets. */
- continue;
-
- /* If there is no preceding rule line, don't treat this line
- as a command, even though it begins with a recipe prefix.
- SunOS 4 make appears to behave this way. */
-
- if (filenames != 0)
- {
- if (ignoring)
- /* Yep, this is a shell command, and we don't care. */
- continue;
-
- /* Append this command line to the line being accumulated.
- Strip command prefix chars that appear after newlines. */
- if (commands_idx == 0)
- cmds_started = ebuf->floc.lineno;
-
- if (linelen + commands_idx > commands_len)
- {
- commands_len = (linelen + commands_idx) * 2;
- commands = xrealloc (commands, commands_len);
- }
- p = &commands[commands_idx];
- p2 = line + 1;
- while (--linelen)
+ {
+ if (no_targets)
+ /* Ignore the commands in a rule with no targets. */
+ continue;
+
+ /* If there is no preceding rule line, don't treat this line
+ as a command, even though it begins with a recipe prefix.
+ SunOS 4 make appears to behave this way. */
+
+ if (filenames != 0)
+ {
+ if (ignoring)
+ /* Yep, this is a shell command, and we don't care. */
+ continue;
+
+ if (commands_idx == 0)
+ cmds_started = ebuf->floc.lineno;
+
+ /* Append this command line to the line being accumulated.
+ Skip the initial command prefix character. */
+ if (linelen + commands_idx > commands_len)
{
- ++commands_idx;
- *(p++) = *p2;
- if (p2[0] == '\n' && p2[1] == cmd_prefix)
- {
- ++p2;
- --linelen;
- }
- ++p2;
+ commands_len = (linelen + commands_idx) * 2;
+ commands = xrealloc (commands, commands_len);
}
- *p = '\n';
- ++commands_idx;
-
- continue;
- }
- }
+ memcpy (&commands[commands_idx], line + 1, linelen - 1);
+ commands_idx += linelen - 1;
+ commands[commands_idx++] = '\n';
+ continue;
+ }
+ }
/* This line is not a shell command line. Don't worry about whitespace.
Get more space if we need it; we don't need to preserve the current
contents of the buffer. */
if (collapsed_length < linelen+1)
- {
- collapsed_length = linelen+1;
+ {
+ collapsed_length = linelen+1;
if (collapsed)
free (collapsed);
/* Don't need xrealloc: we don't need to preserve the content. */
- collapsed = xmalloc (collapsed_length);
- }
+ collapsed = xmalloc (collapsed_length);
+ }
strcpy (collapsed, line);
/* Collapse continuation lines. */
collapse_continuations (collapsed);
@@ -695,14 +721,17 @@ eval (struct ebuffer *ebuf, int set_default)
/* See if this is a variable assignment. We need to do this early, to
allow variables with names like 'ifdef', 'export', 'private', etc. */
- p = parse_var_assignment(p, &vmod);
+ p = parse_var_assignment (p, &vmod);
if (vmod.assign_v)
{
struct variable *v;
enum variable_origin origin = vmod.override_v ? o_override : o_file;
+ /* Variable assignment ends the previous rule. */
+ record_waiting_files ();
+
/* If we're ignoring then we're done now. */
- if (ignoring)
+ if (ignoring)
{
if (vmod.define_v)
in_ignored_define = 1;
@@ -712,9 +741,7 @@ eval (struct ebuffer *ebuf, int set_default)
if (vmod.undefine_v)
{
do_undefine (p, origin, ebuf);
-
- /* This line has been dealt with. */
- goto rule_complete;
+ continue;
}
else if (vmod.define_v)
v = do_define (p, origin, ebuf);
@@ -729,12 +756,12 @@ eval (struct ebuffer *ebuf, int set_default)
v->private_var = 1;
/* This line has been dealt with. */
- goto rule_complete;
+ continue;
}
/* If this line is completely empty, ignore it. */
if (*p == '\0')
- continue;
+ continue;
p2 = end_of_token (p);
wlen = p2 - p;
@@ -742,13 +769,13 @@ eval (struct ebuffer *ebuf, int set_default)
/* If we're in an ignored define, skip this line (but maybe get out). */
if (in_ignored_define)
- {
+ {
/* See if this is an endef line (plus optional comment). */
- if (word1eq ("endef") && (*p2 == '\0' || *p2 == '#'))
+ if (word1eq ("endef") && STOP_SET (*p2, MAP_COMMENT|MAP_NUL))
in_ignored_define = 0;
- continue;
- }
+ continue;
+ }
/* Check for conditional state changes. */
{
@@ -765,16 +792,19 @@ eval (struct ebuffer *ebuf, int set_default)
/* Nothing to see here... move along. */
if (ignoring)
- continue;
+ continue;
/* Manage the "export" keyword used outside of variable assignment
as well as "unexport". */
if (word1eq ("export") || word1eq ("unexport"))
- {
+ {
int exporting = *p == 'u' ? 0 : 1;
+ /* Export/unexport ends the previous rule. */
+ record_waiting_files ();
+
/* (un)export by itself causes everything to be (un)exported. */
- if (*p2 == '\0')
+ if (*p2 == '\0')
export_all_variables = exporting;
else
{
@@ -791,113 +821,179 @@ eval (struct ebuffer *ebuf, int set_default)
{
struct variable *v = lookup_variable (p, l);
if (v == 0)
- v = define_variable_loc (p, l, "", o_file, 0, fstart);
+ v = define_variable_global (p, l, "", o_file, 0, fstart);
v->export = exporting ? v_export : v_noexport;
}
free (ap);
}
- goto rule_complete;
- }
+ continue;
+ }
/* Handle the special syntax for vpath. */
if (word1eq ("vpath"))
- {
+ {
const char *cp;
- char *vpat;
- unsigned int l;
- cp = variable_expand (p2);
- p = find_next_token (&cp, &l);
- if (p != 0)
- {
- vpat = xstrndup (p, l);
- p = find_next_token (&cp, &l);
- /* No searchpath means remove all previous
- selective VPATH's with the same pattern. */
- }
- else
- /* No pattern means remove all previous selective VPATH's. */
- vpat = 0;
- construct_vpath_list (vpat, p);
- if (vpat != 0)
- free (vpat);
-
- goto rule_complete;
- }
+ char *vpat;
+ unsigned int l;
+
+ /* vpath ends the previous rule. */
+ record_waiting_files ();
+
+ cp = variable_expand (p2);
+ p = find_next_token (&cp, &l);
+ if (p != 0)
+ {
+ vpat = xstrndup (p, l);
+ p = find_next_token (&cp, &l);
+ /* No searchpath means remove all previous
+ selective VPATH's with the same pattern. */
+ }
+ else
+ /* No pattern means remove all previous selective VPATH's. */
+ vpat = 0;
+ construct_vpath_list (vpat, p);
+ if (vpat != 0)
+ free (vpat);
+
+ continue;
+ }
/* Handle include and variants. */
if (word1eq ("include") || word1eq ("-include") || word1eq ("sinclude"))
- {
- /* We have found an `include' line specifying a nested
- makefile to be read at this point. */
- struct conditionals *save;
+ {
+ /* We have found an 'include' line specifying a nested
+ makefile to be read at this point. */
+ struct conditionals *save;
struct conditionals new_conditionals;
- struct nameseq *files;
- /* "-include" (vs "include") says no error if the file does not
- exist. "sinclude" is an alias for this from SGI. */
- int noerror = (p[0] != 'i');
+ struct nameseq *files;
+ /* "-include" (vs "include") says no error if the file does not
+ exist. "sinclude" is an alias for this from SGI. */
+ int noerror = (p[0] != 'i');
- p = allocated_variable_expand (p2);
+ /* Include ends the previous rule. */
+ record_waiting_files ();
+
+ p = allocated_variable_expand (p2);
/* If no filenames, it's a no-op. */
- if (*p == '\0')
+ if (*p == '\0')
{
free (p);
continue;
}
- /* Parse the list of file names. Don't expand archive references! */
- p2 = p;
- files = PARSE_FILE_SEQ (&p2, struct nameseq, '\0', NULL,
+ /* Parse the list of file names. Don't expand archive references! */
+ p2 = p;
+ files = PARSE_FILE_SEQ (&p2, struct nameseq, MAP_NUL, NULL,
PARSEFS_NOAR);
- free (p);
+ free (p);
- /* Save the state of conditionals and start
- the included makefile with a clean slate. */
- save = install_conditionals (&new_conditionals);
+ /* Save the state of conditionals and start
+ the included makefile with a clean slate. */
+ save = install_conditionals (&new_conditionals);
- /* Record the rules that are waiting so they will determine
- the default goal before those in the included makefile. */
- record_waiting_files ();
+ /* Record the rules that are waiting so they will determine
+ the default goal before those in the included makefile. */
+ record_waiting_files ();
- /* Read each included makefile. */
- while (files != 0)
- {
- struct nameseq *next = files->next;
- const char *name = files->name;
+ /* Read each included makefile. */
+ while (files != 0)
+ {
+ struct nameseq *next = files->next;
+ const char *name = files->name;
int r;
- free_ns (files);
- files = next;
+ free_ns (files);
+ files = next;
r = eval_makefile (name,
(RM_INCLUDED | RM_NO_TILDE
| (noerror ? RM_DONTCARE : 0)
| (set_default ? 0 : RM_NO_DEFAULT_GOAL)));
- if (!r && !noerror)
+ if (!r && !noerror)
error (fstart, "%s: %s", name, strerror (errno));
- }
+ }
+
+ /* Restore conditional state. */
+ restore_conditionals (save);
+
+ continue;
+ }
+
+ /* Handle the load operations. */
+ if (word1eq ("load") || word1eq ("-load"))
+ {
+ /* A 'load' line specifies a dynamic object to load. */
+ struct nameseq *files;
+ int noerror = (p[0] == '-');
+
+ /* Load ends the previous rule. */
+ record_waiting_files ();
+
+ p = allocated_variable_expand (p2);
+
+ /* If no filenames, it's a no-op. */
+ if (*p == '\0')
+ {
+ free (p);
+ continue;
+ }
+
+ /* Parse the list of file names.
+ Don't expand archive references or strip "./" */
+ p2 = p;
+ files = PARSE_FILE_SEQ (&p2, struct nameseq, MAP_NUL, NULL,
+ PARSEFS_NOAR);
+ free (p);
+
+ /* Load each file. */
+ while (files != 0)
+ {
+ struct nameseq *next = files->next;
+ const char *name = files->name;
+ struct dep *deps;
+ int r;
- /* Restore conditional state. */
- restore_conditionals (save);
+ /* Load the file. 0 means failure. */
+ r = load_file (&ebuf->floc, &name, noerror);
+ if (! r && ! noerror)
+ fatal (&ebuf->floc, _("%s: failed to load"), name);
- goto rule_complete;
- }
+ free_ns (files);
+ files = next;
+
+ /* Return of -1 means a special load: don't rebuild it. */
+ if (r == -1)
+ continue;
+
+ /* It succeeded, so add it to the list "to be rebuilt". */
+ deps = alloc_dep ();
+ deps->next = read_files;
+ read_files = deps;
+ deps->file = lookup_file (name);
+ if (deps->file == 0)
+ deps->file = enter_file (name);
+ deps->file->loaded = 1;
+ }
+
+ continue;
+ }
/* This line starts with a tab but was not caught above because there
was no preceding target, and the line might have been usable as a
variable definition. But now we know it is definitely lossage. */
if (line[0] == cmd_prefix)
- fatal(fstart, _("recipe commences before first target"));
+ fatal (fstart, _("recipe commences before first target"));
/* This line describes some target files. This is complicated by
the existence of target-specific variables, because we can't
expand the entire line until we know if we have one or not. So
- we expand the line word by word until we find the first `:',
+ we expand the line word by word until we find the first ':',
then check to see if it's a target-specific variable.
- In this algorithm, `lb_next' will point to the beginning of the
- unexpanded parts of the input buffer, while `p2' points to the
+ In this algorithm, 'lb_next' will point to the beginning of the
+ unexpanded parts of the input buffer, while 'p2' points to the
parts of the expanded buffer we haven't searched yet. */
{
@@ -914,7 +1010,7 @@ eval (struct ebuffer *ebuf, int set_default)
/* Search the line for an unquoted ; that is not after an
unquoted #. */
- cmdleft = find_char_unquote (line, ';', '#', 0, 1);
+ cmdleft = find_char_unquote (line, MAP_SEMI|MAP_COMMENT|MAP_VARIABLE);
if (cmdleft != 0 && *cmdleft == '#')
{
/* We found a comment before a semicolon. */
@@ -932,12 +1028,12 @@ eval (struct ebuffer *ebuf, int set_default)
variable we don't want to expand it. So, walk from the
beginning, expanding as we go, and looking for "interesting"
chars. The first word is always expandable. */
- wtype = get_next_mword(line, NULL, &lb_next, &wlen);
+ wtype = get_next_mword (line, NULL, &lb_next, &wlen);
switch (wtype)
{
case w_eol:
if (cmdleft != 0)
- fatal(fstart, _("missing rule before recipe"));
+ fatal (fstart, _("missing rule before recipe"));
/* This line contained something but turned out to be nothing
but whitespace (a comment?). */
continue;
@@ -953,7 +1049,7 @@ eval (struct ebuffer *ebuf, int set_default)
break;
}
- p2 = variable_expand_string(NULL, lb_next, wlen);
+ p2 = variable_expand_string (NULL, lb_next, wlen);
while (1)
{
@@ -961,13 +1057,13 @@ eval (struct ebuffer *ebuf, int set_default)
if (cmdleft == 0)
{
/* Look for a semicolon in the expanded line. */
- cmdleft = find_char_unquote (p2, ';', 0, 0, 0);
+ cmdleft = find_char_unquote (p2, MAP_SEMI);
if (cmdleft != 0)
{
unsigned long p2_off = p2 - variable_buffer;
unsigned long cmd_off = cmdleft - variable_buffer;
- char *pend = p2 + strlen(p2);
+ char *pend = p2 + strlen (p2);
/* Append any remnants of lb, then cut the line short
at the semicolon. */
@@ -977,18 +1073,18 @@ eval (struct ebuffer *ebuf, int set_default)
here, but merely copy, since now you're beyond a ";"
and into a command script. However, the old parser
expanded the whole line, so we continue that for
- backwards-compatiblity. Also, it wouldn't be
+ backwards-compatibility. Also, it wouldn't be
entirely consistent, since we do an unconditional
expand below once we know we don't have a
target-specific variable. */
- (void)variable_expand_string(pend, lb_next, (long)-1);
- lb_next += strlen(lb_next);
+ (void)variable_expand_string (pend, lb_next, (long)-1);
+ lb_next += strlen (lb_next);
p2 = variable_buffer + p2_off;
cmdleft = variable_buffer + cmd_off + 1;
}
}
- colonp = find_char_unquote(p2, ':', 0, 0, 0);
+ colonp = find_char_unquote (p2, MAP_COLON);
#ifdef HAVE_DOS_PATHS
/* The drive spec brain-damage strikes again... */
/* Note that the only separators of targets in this context
@@ -997,18 +1093,18 @@ eval (struct ebuffer *ebuf, int set_default)
while (colonp && (colonp[1] == '/' || colonp[1] == '\\') &&
colonp > p2 && isalpha ((unsigned char)colonp[-1]) &&
(colonp == p2 + 1 || strchr (" \t(", colonp[-2]) != 0))
- colonp = find_char_unquote(colonp + 1, ':', 0, 0, 0);
+ colonp = find_char_unquote (colonp + 1, MAP_COLON);
#endif
if (colonp != 0)
break;
- wtype = get_next_mword(lb_next, NULL, &lb_next, &wlen);
+ wtype = get_next_mword (lb_next, NULL, &lb_next, &wlen);
if (wtype == w_eol)
break;
- p2 += strlen(p2);
+ p2 += strlen (p2);
*(p2++) = ' ';
- p2 = variable_expand_string(p2, lb_next, wlen);
+ p2 = variable_expand_string (p2, lb_next, wlen);
/* We don't need to worry about cmdleft here, because if it was
found in the variable_buffer the entire buffer has already
been expanded... we'll never get here. */
@@ -1025,16 +1121,17 @@ eval (struct ebuffer *ebuf, int set_default)
/* There's no need to be ivory-tower about this: check for
one of the most common bugs found in makefiles... */
fatal (fstart, _("missing separator%s"),
- (cmd_prefix == '\t' && !strneq(line, " ", 8))
+ (cmd_prefix == '\t' && !strneq (line, " ", 8))
? "" : _(" (did you mean TAB instead of 8 spaces?)"));
continue;
}
/* Make the colon the end-of-string so we know where to stop
- looking for targets. */
+ looking for targets. Start there again once we're done. */
*colonp = '\0';
- filenames = PARSE_FILE_SEQ (&p2, struct nameseq, '\0', NULL, 0);
- *p2 = ':';
+ filenames = PARSE_SIMPLE_SEQ (&p2, struct nameseq);
+ *colonp = ':';
+ p2 = colonp;
if (!filenames)
{
@@ -1071,12 +1168,12 @@ eval (struct ebuffer *ebuf, int set_default)
after it. */
if (semip)
{
- unsigned int l = p - variable_buffer;
+ unsigned int l = p2 - variable_buffer;
*(--semip) = ';';
collapse_continuations (semip);
variable_buffer_output (p2 + strlen (p2),
semip, strlen (semip)+1);
- p = variable_buffer + l;
+ p2 = variable_buffer + l;
}
record_target_var (filenames, p2,
vmod.override_v ? o_override : o_file,
@@ -1087,7 +1184,10 @@ eval (struct ebuffer *ebuf, int set_default)
/* This is a normal target, _not_ a target-specific variable.
Unquote any = in the dependency list. */
- find_char_unquote (lb_next, '=', 0, 0, 0);
+ find_char_unquote (lb_next, MAP_EQUALS);
+
+ /* Remember the command prefix for this target. */
+ prefix = cmd_prefix;
/* We have some targets, so don't ignore the following commands. */
no_targets = 0;
@@ -1102,13 +1202,13 @@ eval (struct ebuffer *ebuf, int set_default)
/* Look for a semicolon in the expanded line. */
if (cmdleft == 0)
{
- cmdleft = find_char_unquote (p2, ';', 0, 0, 0);
+ cmdleft = find_char_unquote (p2, MAP_SEMI);
if (cmdleft != 0)
*(cmdleft++) = '\0';
}
}
- /* Is this a static pattern rule: `target: %targ: %dep; ...'? */
+ /* Is this a static pattern rule: 'target: %targ: %dep; ...'? */
p = strchr (p2, ':');
while (p != 0 && p[-1] == '\\')
{
@@ -1156,7 +1256,7 @@ eval (struct ebuffer *ebuf, int set_default)
if (p != 0)
{
struct nameseq *target;
- target = PARSE_FILE_SEQ (&p2, struct nameseq, ':', NULL,
+ target = PARSE_FILE_SEQ (&p2, struct nameseq, MAP_COLON, NULL,
PARSEFS_NOGLOB);
++p2;
if (target == 0)
@@ -1166,7 +1266,7 @@ eval (struct ebuffer *ebuf, int set_default)
pattern_percent = find_percent_cached (&target->name);
pattern = target->name;
if (pattern_percent == 0)
- fatal (fstart, _("target pattern contains no `%%'"));
+ fatal (fstart, _("target pattern contains no '%%'"));
free_ns (target);
}
else
@@ -1219,20 +1319,19 @@ eval (struct ebuffer *ebuf, int set_default)
if (set_default && default_goal_var->value[0] == '\0')
{
- const char *name;
struct dep *d;
struct nameseq *t = filenames;
for (; t != 0; t = t->next)
{
int reject = 0;
- name = t->name;
+ const char *name = t->name;
/* We have nothing to do if this is an implicit rule. */
if (strchr (name, '%') != 0)
break;
- /* See if this target's name does not start with a `.',
+ /* See if this target's name does not start with a '.',
unless it contains a slash. */
if (*name == '.' && strchr (name, '/') == 0
#ifdef HAVE_DOS_PATHS
@@ -1281,16 +1380,15 @@ eval (struct ebuffer *ebuf, int set_default)
}
/* We get here except in the case that we just read a rule line.
- Record now the last rule we read, so following spurious
- commands are properly diagnosed. */
- rule_complete:
+ Record now the last rule we read, so following spurious
+ commands are properly diagnosed. */
record_waiting_files ();
}
-#undef word1eq
+#undef word1eq
if (conditionals->if_cmds)
- fatal (fstart, _("missing `endif'"));
+ fatal (fstart, _("missing 'endif'"));
/* At eof, record the last rule. */
record_waiting_files ();
@@ -1309,14 +1407,14 @@ remove_comments (char *line)
{
char *comment;
- comment = find_char_unquote (line, '#', 0, 0, 0);
+ comment = find_char_unquote (line, MAP_COMMENT);
if (comment != 0)
/* Cut off the line at the #. */
*comment = '\0';
}
-/* Execute a `undefine' directive.
+/* Execute a 'undefine' directive.
The undefine line has already been read, and NAME is the name of
the variable to be undefined. */
@@ -1339,7 +1437,7 @@ do_undefine (char *name, enum variable_origin origin, struct ebuffer *ebuf)
free (var);
}
-/* Execute a `define' directive.
+/* Execute a 'define' directive.
The first line has already been read, and NAME is the name of
the variable to be defined. The following lines remain to be read. */
@@ -1347,33 +1445,33 @@ static struct variable *
do_define (char *name, enum variable_origin origin, struct ebuffer *ebuf)
{
struct variable *v;
- enum variable_flavor flavor;
- struct floc defstart;
+ struct variable var;
+ gmk_floc defstart;
int nlevels = 1;
unsigned int length = 100;
char *definition = xmalloc (length);
unsigned int idx = 0;
- char *p, *var;
+ char *p, *n;
defstart = ebuf->floc;
- p = parse_variable_definition (name, &flavor);
+ p = parse_variable_definition (name, &var);
if (p == NULL)
/* No assignment token, so assume recursive. */
- flavor = f_recursive;
+ var.flavor = f_recursive;
else
{
- if (*(next_token (p)) != '\0')
- error (&defstart, _("extraneous text after `define' directive"));
+ if (var.value[0] != '\0')
+ error (&defstart, _("extraneous text after 'define' directive"));
/* Chop the string before the assignment token to get the name. */
- p[flavor == f_recursive ? -1 : -2] = '\0';
+ var.name[var.length] = '\0';
}
/* Expand the variable name and find the beginning (NAME) and end. */
- var = allocated_variable_expand (name);
- name = next_token (var);
- if (*name == '\0')
+ n = allocated_variable_expand (name);
+ name = next_token (n);
+ if (name[0] == '\0')
fatal (&defstart, _("empty variable name"));
p = name + strlen (name) - 1;
while (p > name && isblank ((unsigned char)*p))
@@ -1389,7 +1487,7 @@ do_define (char *name, enum variable_origin origin, struct ebuffer *ebuf)
/* If there is nothing left to be eval'd, there's no 'endef'!! */
if (nlines < 0)
- fatal (&defstart, _("missing `endef', unterminated `define'"));
+ fatal (&defstart, _("missing 'endef', unterminated 'define'"));
ebuf->floc.lineno += nlines;
line = ebuf->buffer;
@@ -1417,7 +1515,7 @@ do_define (char *name, enum variable_origin origin, struct ebuffer *ebuf)
remove_comments (p);
if (*(next_token (p)) != '\0')
error (&ebuf->floc,
- _("extraneous text after `endef' directive"));
+ _("extraneous text after 'endef' directive"));
if (--nlevels == 0)
break;
@@ -1444,9 +1542,10 @@ do_define (char *name, enum variable_origin origin, struct ebuffer *ebuf)
else
definition[idx - 1] = '\0';
- v = do_variable_definition (&defstart, name, definition, origin, flavor, 0);
+ v = do_variable_definition (&defstart, name,
+ definition, origin, var.flavor, 0);
free (definition);
- free (var);
+ free (n);
return (v);
}
@@ -1463,7 +1562,7 @@ do_define (char *name, enum variable_origin origin, struct ebuffer *ebuf)
1 if following text should be ignored. */
static int
-conditional_line (char *line, int len, const struct floc *flocp)
+conditional_line (char *line, int len, const gmk_floc *flocp)
{
char *cmdname;
enum { c_ifdef, c_ifndef, c_ifeq, c_ifneq, c_else, c_endif } cmdtype;
@@ -1471,8 +1570,8 @@ conditional_line (char *line, int len, const struct floc *flocp)
unsigned int o;
/* Compare a word, both length and contents. */
-#define word1eq(s) (len == sizeof(s)-1 && strneq (s, line, sizeof(s)-1))
-#define chkword(s, t) if (word1eq (s)) { cmdtype = (t); cmdname = (s); }
+#define word1eq(s) (len == CSTRLEN (s) && strneq (s, line, CSTRLEN (s)))
+#define chkword(s, t) if (word1eq (s)) { cmdtype = (t); cmdname = (s); }
/* Make sure this line is a conditional. */
chkword ("ifdef", c_ifdef)
@@ -1487,16 +1586,16 @@ conditional_line (char *line, int len, const struct floc *flocp)
/* Found one: skip past it and any whitespace after it. */
line = next_token (line + len);
-#define EXTRANEOUS() error (flocp, _("Extraneous text after `%s' directive"), cmdname)
+#define EXTRANEOUS() error (flocp, _("extraneous text after '%s' directive"), cmdname)
/* An 'endif' cannot contain extra text, and reduces the if-depth by 1 */
if (cmdtype == c_endif)
{
if (*line != '\0')
- EXTRANEOUS ();
+ EXTRANEOUS ();
if (!conditionals->if_cmds)
- fatal (flocp, _("extraneous `%s'"), cmdname);
+ fatal (flocp, _("extraneous '%s'"), cmdname);
--conditionals->if_cmds;
@@ -1510,12 +1609,12 @@ conditional_line (char *line, int len, const struct floc *flocp)
const char *p;
if (!conditionals->if_cmds)
- fatal (flocp, _("extraneous `%s'"), cmdname);
+ fatal (flocp, _("extraneous '%s'"), cmdname);
o = conditionals->if_cmds - 1;
if (conditionals->seen_else[o])
- fatal (flocp, _("only one `else' per conditional"));
+ fatal (flocp, _("only one 'else' per conditional"));
/* Change the state of ignorance. */
switch (conditionals->ignoring[o])
@@ -1541,14 +1640,14 @@ conditional_line (char *line, int len, const struct floc *flocp)
and cannot be an 'else' or 'endif'. */
/* Find the length of the next word. */
- for (p = line+1; *p != '\0' && !isspace ((unsigned char)*p); ++p)
+ for (p = line+1; ! STOP_SET (*p, MAP_SPACE|MAP_NUL); ++p)
;
len = p - line;
/* If it's 'else' or 'endif' or an illegal conditional, fail. */
- if (word1eq("else") || word1eq("endif")
+ if (word1eq ("else") || word1eq ("endif")
|| conditional_line (line, len, flocp) < 0)
- EXTRANEOUS ();
+ EXTRANEOUS ();
else
{
/* conditional_line() created a new level of conditional.
@@ -1578,18 +1677,18 @@ conditional_line (char *line, int len, const struct floc *flocp)
conditionals->allocated);
}
- /* Record that we have seen an `if...' but no `else' so far. */
+ /* Record that we have seen an 'if...' but no 'else' so far. */
conditionals->seen_else[o] = 0;
/* Search through the stack to see if we're already ignoring. */
for (i = 0; i < o; ++i)
if (conditionals->ignoring[i])
{
- /* We are already ignoring, so just push a level to match the next
- "else" or "endif", and keep ignoring. We don't want to expand
- variables in the condition. */
- conditionals->ignoring[o] = 1;
- return 1;
+ /* We are already ignoring, so just push a level to match the next
+ "else" or "endif", and keep ignoring. We don't want to expand
+ variables in the condition. */
+ conditionals->ignoring[o] = 1;
+ return 1;
}
if (cmdtype == c_ifdef || cmdtype == c_ifndef)
@@ -1607,7 +1706,7 @@ conditional_line (char *line, int len, const struct floc *flocp)
i = p - var;
p = next_token (p);
if (*p != '\0')
- return -1;
+ return -1;
var[i] = '\0';
v = lookup_variable (var, i);
@@ -1625,87 +1724,87 @@ conditional_line (char *line, int len, const struct floc *flocp)
char termin = *line == '(' ? ',' : *line;
if (termin != ',' && termin != '"' && termin != '\'')
- return -1;
+ return -1;
s1 = ++line;
/* Find the end of the first string. */
if (termin == ',')
- {
- int count = 0;
- for (; *line != '\0'; ++line)
- if (*line == '(')
- ++count;
- else if (*line == ')')
- --count;
- else if (*line == ',' && count <= 0)
- break;
- }
+ {
+ int count = 0;
+ for (; *line != '\0'; ++line)
+ if (*line == '(')
+ ++count;
+ else if (*line == ')')
+ --count;
+ else if (*line == ',' && count <= 0)
+ break;
+ }
else
- while (*line != '\0' && *line != termin)
- ++line;
+ while (*line != '\0' && *line != termin)
+ ++line;
if (*line == '\0')
- return -1;
+ return -1;
if (termin == ',')
- {
- /* Strip blanks after the first string. */
- char *p = line++;
- while (isblank ((unsigned char)p[-1]))
- --p;
- *p = '\0';
- }
+ {
+ /* Strip blanks after the first string. */
+ char *p = line++;
+ while (isblank ((unsigned char)p[-1]))
+ --p;
+ *p = '\0';
+ }
else
- *line++ = '\0';
+ *line++ = '\0';
s2 = variable_expand (s1);
/* We must allocate a new copy of the expanded string because
- variable_expand re-uses the same buffer. */
+ variable_expand re-uses the same buffer. */
l = strlen (s2);
s1 = alloca (l + 1);
memcpy (s1, s2, l + 1);
if (termin != ',')
- /* Find the start of the second string. */
- line = next_token (line);
+ /* Find the start of the second string. */
+ line = next_token (line);
termin = termin == ',' ? ')' : *line;
if (termin != ')' && termin != '"' && termin != '\'')
- return -1;
+ return -1;
/* Find the end of the second string. */
if (termin == ')')
- {
- int count = 0;
- s2 = next_token (line);
- for (line = s2; *line != '\0'; ++line)
- {
- if (*line == '(')
- ++count;
- else if (*line == ')')
- {
- if (count <= 0)
- break;
- else
- --count;
- }
- }
- }
+ {
+ int count = 0;
+ s2 = next_token (line);
+ for (line = s2; *line != '\0'; ++line)
+ {
+ if (*line == '(')
+ ++count;
+ else if (*line == ')')
+ {
+ if (count <= 0)
+ break;
+ else
+ --count;
+ }
+ }
+ }
else
- {
- ++line;
- s2 = line;
- while (*line != '\0' && *line != termin)
- ++line;
- }
+ {
+ ++line;
+ s2 = line;
+ while (*line != '\0' && *line != termin)
+ ++line;
+ }
if (*line == '\0')
- return -1;
+ return -1;
*line = '\0';
line = next_token (++line);
if (*line != '\0')
- EXTRANEOUS ();
+ EXTRANEOUS ();
s2 = variable_expand (s2);
conditionals->ignoring[o] = (streq (s1, s2) == (cmdtype == c_ifneq));
@@ -1732,7 +1831,7 @@ conditional_line (char *line, int len, const struct floc *flocp)
static void
record_target_var (struct nameseq *filenames, char *defn,
enum variable_origin origin, struct vmodifiers *vmod,
- const struct floc *flocp)
+ const gmk_floc *flocp)
{
struct nameseq *nextf;
struct variable_set_list *global;
@@ -1746,7 +1845,6 @@ record_target_var (struct nameseq *filenames, char *defn,
{
struct variable *v;
const char *name = filenames->name;
- const char *fname;
const char *percent;
struct pattern_var *p;
@@ -1771,8 +1869,6 @@ record_target_var (struct nameseq *filenames, char *defn,
v->value = allocated_variable_expand (v->value);
else
v->value = xstrdup (v->value);
-
- fname = p->target;
}
else
{
@@ -1789,7 +1885,6 @@ record_target_var (struct nameseq *filenames, char *defn,
f = f->double_colon;
initialize_file_variables (f, 1);
- fname = f->name;
current_variable_set_list = f->variables;
v = try_variable_definition (flocp, defn, origin, 1);
@@ -1808,10 +1903,11 @@ record_target_var (struct nameseq *filenames, char *defn,
if (v->origin != o_override)
{
struct variable *gv;
- int len = strlen(v->name);
+ int len = strlen (v->name);
gv = lookup_variable (v->name, len);
- if (gv && (gv->origin == o_env_override || gv->origin == o_command))
+ if (gv && v != gv
+ && (gv->origin == o_env_override || gv->origin == o_command))
{
if (v->value != 0)
free (v->value);
@@ -1828,9 +1924,9 @@ record_target_var (struct nameseq *filenames, char *defn,
with dependencies DEPS, commands to execute described
by COMMANDS and COMMANDS_IDX, coming from FILENAME:COMMANDS_STARTED.
TWO_COLON is nonzero if a double colon was used.
- If not nil, PATTERN is the `%' pattern to make this
+ If not nil, PATTERN is the '%' pattern to make this
a static pattern rule, and PATTERN_PERCENT is a pointer
- to the `%' within it.
+ to the '%' within it.
The links of FILENAMES are freed, and so are any names in it
that are not incorporated into other data structures. */
@@ -1840,7 +1936,7 @@ record_files (struct nameseq *filenames, const char *pattern,
const char *pattern_percent, char *depstr,
unsigned int cmds_started, char *commands,
unsigned int commands_idx, int two_colon,
- const struct floc *flocp)
+ char prefix, const gmk_floc *flocp)
{
struct commands *cmds;
struct dep *deps;
@@ -1866,6 +1962,7 @@ record_files (struct nameseq *filenames, const char *pattern,
cmds->fileinfo.lineno = cmds_started;
cmds->commands = xstrndup (commands, commands_idx);
cmds->command_lines = 0;
+ cmds->recipe_prefix = prefix;
}
else
cmds = 0;
@@ -1874,24 +1971,28 @@ record_files (struct nameseq *filenames, const char *pattern,
expansion: if so, snap_deps() will do it. */
if (depstr == 0)
deps = 0;
- else if (second_expansion && strchr (depstr, '$'))
- {
- deps = alloc_dep ();
- deps->name = depstr;
- deps->need_2nd_expansion = 1;
- deps->staticpattern = pattern != 0;
- }
else
{
- deps = split_prereqs (depstr);
- free (depstr);
-
- /* We'll enter static pattern prereqs later when we have the stem. We
- don't want to enter pattern rules at all so that we don't think that
- they ought to exist (make manual "Implicit Rule Search Algorithm",
- item 5c). */
- if (! pattern && ! implicit_percent)
- deps = enter_prereqs (deps, NULL);
+ depstr = unescape_char (depstr, ':');
+ if (second_expansion && strchr (depstr, '$'))
+ {
+ deps = alloc_dep ();
+ deps->name = depstr;
+ deps->need_2nd_expansion = 1;
+ deps->staticpattern = pattern != 0;
+ }
+ else
+ {
+ deps = split_prereqs (depstr);
+ free (depstr);
+
+ /* We'll enter static pattern prereqs later when we have the stem.
+ We don't want to enter pattern rules at all so that we don't
+ think that they ought to exist (make manual "Implicit Rule Search
+ Algorithm", item 5c). */
+ if (! pattern && ! implicit_percent)
+ deps = enter_prereqs (deps, NULL);
+ }
}
/* For implicit rules, _all_ the targets must have a pattern. That means we
@@ -1930,8 +2031,8 @@ record_files (struct nameseq *filenames, const char *pattern,
if (implicit_percent == 0)
fatal (flocp, _("mixed implicit and normal rules"));
- targets[c] = name;
- target_pats[c] = implicit_percent;
+ targets[c] = name;
+ target_pats[c] = implicit_percent;
++c;
nextf = filenames->next;
@@ -1961,19 +2062,26 @@ record_files (struct nameseq *filenames, const char *pattern,
{
posix_pedantic = 1;
define_variable_cname (".SHELLFLAGS", "-ec", o_default, 0);
+ /* These default values are based on IEEE Std 1003.1-2008. */
+ define_variable_cname ("ARFLAGS", "-rv", o_default, 0);
+ define_variable_cname ("CC", "c99", o_default, 0);
+ define_variable_cname ("CFLAGS", "-O", o_default, 0);
+ define_variable_cname ("FC", "fort77", o_default, 0);
+ define_variable_cname ("FFLAGS", "-O 1", o_default, 0);
+ define_variable_cname ("SCCSGETFLAGS", "-s", o_default, 0);
}
else if (streq (name, ".SECONDEXPANSION"))
second_expansion = 1;
-#if !defined(WINDOWS32) && !defined (__MSDOS__) && !defined (__EMX__)
+#if !defined (__MSDOS__) && !defined (__EMX__)
else if (streq (name, ".ONESHELL"))
one_shell = 1;
#endif
/* If this is a static pattern rule:
- `targets: target%pattern: prereq%pattern; recipe',
+ 'targets: target%pattern: prereq%pattern; recipe',
make sure the pattern matches this target name. */
if (pattern && !pattern_matches (pattern, pattern_percent, name))
- error (flocp, _("target `%s' doesn't match the target pattern"), name);
+ error (flocp, _("target '%s' doesn't match the target pattern"), name);
else if (deps)
/* If there are multiple targets, copy the chain DEPS for all but the
last one. It is not safe for the same deps to go in more than one
@@ -1982,76 +2090,76 @@ record_files (struct nameseq *filenames, const char *pattern,
/* Find or create an entry in the file database for this target. */
if (!two_colon)
- {
- /* Single-colon. Combine this rule with the file's existing record,
- if any. */
- f = enter_file (strcache_add (name));
- if (f->double_colon)
- fatal (flocp,
- _("target file `%s' has both : and :: entries"), f->name);
-
- /* If CMDS == F->CMDS, this target was listed in this rule
- more than once. Just give a warning since this is harmless. */
- if (cmds != 0 && cmds == f->cmds)
- error (flocp,
- _("target `%s' given more than once in the same rule."),
+ {
+ /* Single-colon. Combine this rule with the file's existing record,
+ if any. */
+ f = enter_file (strcache_add (name));
+ if (f->double_colon)
+ fatal (flocp,
+ _("target file '%s' has both : and :: entries"), f->name);
+
+ /* If CMDS == F->CMDS, this target was listed in this rule
+ more than once. Just give a warning since this is harmless. */
+ if (cmds != 0 && cmds == f->cmds)
+ error (flocp,
+ _("target '%s' given more than once in the same rule"),
f->name);
- /* Check for two single-colon entries both with commands.
- Check is_target so that we don't lose on files such as .c.o
- whose commands were preinitialized. */
- else if (cmds != 0 && f->cmds != 0 && f->is_target)
- {
- error (&cmds->fileinfo,
- _("warning: overriding recipe for target `%s'"),
+ /* Check for two single-colon entries both with commands.
+ Check is_target so that we don't lose on files such as .c.o
+ whose commands were preinitialized. */
+ else if (cmds != 0 && f->cmds != 0 && f->is_target)
+ {
+ error (&cmds->fileinfo,
+ _("warning: overriding recipe for target '%s'"),
f->name);
- error (&f->cmds->fileinfo,
- _("warning: ignoring old recipe for target `%s'"),
+ error (&f->cmds->fileinfo,
+ _("warning: ignoring old recipe for target '%s'"),
f->name);
- }
-
- /* Defining .DEFAULT with no deps or cmds clears it. */
- if (f == default_file && this == 0 && cmds == 0)
- f->cmds = 0;
- if (cmds != 0)
- f->cmds = cmds;
-
- /* Defining .SUFFIXES with no dependencies clears out the list of
- suffixes. */
- if (f == suffix_file && this == 0)
- {
+ }
+
+ /* Defining .DEFAULT with no deps or cmds clears it. */
+ if (f == default_file && this == 0 && cmds == 0)
+ f->cmds = 0;
+ if (cmds != 0)
+ f->cmds = cmds;
+
+ /* Defining .SUFFIXES with no dependencies clears out the list of
+ suffixes. */
+ if (f == suffix_file && this == 0)
+ {
free_dep_chain (f->deps);
- f->deps = 0;
- }
- }
+ f->deps = 0;
+ }
+ }
else
- {
- /* Double-colon. Make a new record even if there already is one. */
- f = lookup_file (name);
-
- /* Check for both : and :: rules. Check is_target so we don't lose
- on default suffix rules or makefiles. */
- if (f != 0 && f->is_target && !f->double_colon)
- fatal (flocp,
- _("target file `%s' has both : and :: entries"), f->name);
-
- f = enter_file (strcache_add (name));
- /* If there was an existing entry and it was a double-colon entry,
- enter_file will have returned a new one, making it the prev
- pointer of the old one, and setting its double_colon pointer to
- the first one. */
- if (f->double_colon == 0)
- /* This is the first entry for this name, so we must set its
- double_colon pointer to itself. */
- f->double_colon = f;
-
- f->cmds = cmds;
- }
+ {
+ /* Double-colon. Make a new record even if there already is one. */
+ f = lookup_file (name);
+
+ /* Check for both : and :: rules. Check is_target so we don't lose
+ on default suffix rules or makefiles. */
+ if (f != 0 && f->is_target && !f->double_colon)
+ fatal (flocp,
+ _("target file '%s' has both : and :: entries"), f->name);
+
+ f = enter_file (strcache_add (name));
+ /* If there was an existing entry and it was a double-colon entry,
+ enter_file will have returned a new one, making it the prev
+ pointer of the old one, and setting its double_colon pointer to
+ the first one. */
+ if (f->double_colon == 0)
+ /* This is the first entry for this name, so we must set its
+ double_colon pointer to itself. */
+ f->double_colon = f;
+
+ f->cmds = cmds;
+ }
f->is_target = 1;
/* If this is a static pattern rule, set the stem to the part of its
- name that matched the `%' in the pattern, so you can use $* in the
+ name that matched the '%' in the pattern, so you can use $* in the
commands. If we didn't do it before, enter the prereqs now. */
if (pattern)
{
@@ -2123,37 +2231,24 @@ record_files (struct nameseq *filenames, const char *pattern,
STOPCHAR _cannot_ be '$' if IGNOREVARS is true. */
static char *
-find_char_unquote (char *string, int stop1, int stop2, int blank,
- int ignorevars)
+find_char_unquote (char *string, int map)
{
unsigned int string_len = 0;
char *p = string;
- if (ignorevars)
- ignorevars = '$';
+ /* Always stop on NUL. */
+ map |= MAP_NUL;
while (1)
{
- if (stop2 && blank)
- while (*p != '\0' && *p != ignorevars && *p != stop1 && *p != stop2
- && ! isblank ((unsigned char) *p))
- ++p;
- else if (stop2)
- while (*p != '\0' && *p != ignorevars && *p != stop1 && *p != stop2)
- ++p;
- else if (blank)
- while (*p != '\0' && *p != ignorevars && *p != stop1
- && ! isblank ((unsigned char) *p))
- ++p;
- else
- while (*p != '\0' && *p != ignorevars && *p != stop1)
- ++p;
+ while (! STOP_SET (*p, map))
+ ++p;
if (*p == '\0')
- break;
+ break;
/* If we stopped due to a variable reference, skip over its contents. */
- if (*p == ignorevars)
+ if (STOP_SET (*p, MAP_VARIABLE))
{
char openparen = p[1];
@@ -2184,41 +2279,84 @@ find_char_unquote (char *string, int stop1, int stop2, int blank,
}
if (p > string && p[-1] == '\\')
- {
- /* Search for more backslashes. */
- int i = -2;
- while (&p[i] >= string && p[i] == '\\')
- --i;
- ++i;
- /* Only compute the length if really needed. */
- if (string_len == 0)
- string_len = strlen (string);
- /* The number of backslashes is now -I.
- Copy P over itself to swallow half of them. */
- memmove (&p[i], &p[i/2], (string_len - (p - string)) - (i/2) + 1);
- p += i/2;
- if (i % 2 == 0)
- /* All the backslashes quoted each other; the STOPCHAR was
- unquoted. */
- return p;
-
- /* The STOPCHAR was quoted by a backslash. Look for another. */
- }
+ {
+ /* Search for more backslashes. */
+ int i = -2;
+ while (&p[i] >= string && p[i] == '\\')
+ --i;
+ ++i;
+ /* Only compute the length if really needed. */
+ if (string_len == 0)
+ string_len = strlen (string);
+ /* The number of backslashes is now -I.
+ Copy P over itself to swallow half of them. */
+ memmove (&p[i], &p[i/2], (string_len - (p - string)) - (i/2) + 1);
+ p += i/2;
+ if (i % 2 == 0)
+ /* All the backslashes quoted each other; the STOPCHAR was
+ unquoted. */
+ return p;
+
+ /* The STOPCHAR was quoted by a backslash. Look for another. */
+ }
else
- /* No backslash in sight. */
- return p;
+ /* No backslash in sight. */
+ return p;
}
/* Never hit a STOPCHAR or blank (with BLANK nonzero). */
return 0;
}
+/* Unescape a character in a string. The string is compressed onto itself. */
+
+static char *
+unescape_char (char *string, int c)
+{
+ char *p = string;
+ char *s = string;
+
+ while (*s != '\0')
+ {
+ if (*s == '\\')
+ {
+ char *e = s;
+ int l;
+
+ /* We found a backslash. See if it's escaping our character. */
+ while (*e == '\\')
+ ++e;
+ l = e - s;
+
+ if (*e != c || l%2 == 0)
+ {
+ /* It's not; just take it all without unescaping. */
+ memcpy (p, s, l);
+ p += l;
+ }
+ else if (l > 1)
+ {
+ /* It is, and there's >1 backslash. Take half of them. */
+ l /= 2;
+ memcpy (p, s, l);
+ p += l;
+ }
+ s = e;
+ }
+
+ *(p++) = *(s++);
+ }
+
+ *p = '\0';
+ return string;
+}
+
/* Search PATTERN for an unquoted % and handle quoting. */
char *
find_percent (char *pattern)
{
- return find_char_unquote (pattern, '%', 0, 0, 0);
+ return find_char_unquote (pattern, MAP_PERCENT);
}
/* Search STRING for an unquoted % and handle quoting. Returns a pointer to
@@ -2241,7 +2379,7 @@ find_percent_cached (const char **string)
while (1)
{
- while (*p != '\0' && *p != '%')
+ while (! STOP_SET (*p, MAP_PERCENT|MAP_NUL))
++p;
if (*p == '\0')
@@ -2382,17 +2520,17 @@ readline (struct ebuffer *ebuf)
len = strlen (p);
if (len == 0)
- {
- /* This only happens when the first thing on the line is a '\0'.
- It is a pretty hopeless case, but (wonder of wonders) Athena
- lossage strikes again! (xmkmf puts NULs in its makefiles.)
- There is nothing really to be done; we synthesize a newline so
- the following line doesn't appear to be part of this line. */
- error (&ebuf->floc,
+ {
+ /* This only happens when the first thing on the line is a '\0'.
+ It is a pretty hopeless case, but (wonder of wonders) Athena
+ lossage strikes again! (xmkmf puts NULs in its makefiles.)
+ There is nothing really to be done; we synthesize a newline so
+ the following line doesn't appear to be part of this line. */
+ error (&ebuf->floc,
_("warning: NUL character seen; rest of line ignored"));
- p[0] = '\n';
- len = 1;
- }
+ p[0] = '\n';
+ len = 1;
+ }
/* Jump past the text we just read. */
p += len;
@@ -2411,23 +2549,23 @@ readline (struct ebuffer *ebuf)
if ((p - start) > 1 && p[-2] == '\r')
{
--p;
- p[-1] = '\n';
+ memmove (p-1, p, strlen (p) + 1);
}
#endif
backslash = 0;
for (p2 = p - 2; p2 >= start; --p2)
- {
- if (*p2 != '\\')
- break;
+ {
+ if (*p2 != '\\')
+ break;
backslash = !backslash;
- }
+ }
if (!backslash)
- {
- p[-1] = '\0';
- break;
- }
+ {
+ p[-1] = '\0';
+ break;
+ }
/* It was a backslash/newline combo. If we have more space, read
another line. */
@@ -2470,7 +2608,7 @@ readline (struct ebuffer *ebuf)
w_colon A colon
w_dcolon A double-colon
w_semicolon A semicolon
- w_varassign A variable assignment operator (=, :=, +=, or ?=)
+ w_varassign A variable assignment operator (=, :=, ::=, +=, ?=, or !=)
Note that this function is only used when reading certain parts of the
makefile. Don't use it where special rules hold sway (RHS of a variable,
@@ -2509,7 +2647,13 @@ get_next_mword (char *buffer, char *delim, char **startp, unsigned int *length)
{
case ':':
++p;
- wtype = w_dcolon;
+ if (p[1] != '=')
+ wtype = w_dcolon;
+ else
+ {
+ wtype = w_varassign;
+ ++p;
+ }
break;
case '=':
@@ -2521,6 +2665,7 @@ get_next_mword (char *buffer, char *delim, char **startp, unsigned int *length)
case '+':
case '?':
+ case '!':
if (*p == '=')
{
++p;
@@ -2540,7 +2685,7 @@ get_next_mword (char *buffer, char *delim, char **startp, unsigned int *length)
/* This is some non-operator word. A word consists of the longest
string of characters that doesn't contain whitespace, one of [:=#],
- or [?+]=, or one of the chars in the DELIM string. */
+ or [?+!]=, or one of the chars in the DELIM string. */
/* We start out assuming a static word; if we see a variable we'll
adjust our assumptions then. */
@@ -2562,14 +2707,14 @@ get_next_mword (char *buffer, char *delim, char **startp, unsigned int *length)
case ':':
#ifdef HAVE_DOS_PATHS
- /* A word CAN include a colon in its drive spec. The drive
- spec is allowed either at the beginning of a word, or as part
- of the archive member name, like in "libfoo.a(d:/foo/bar.o)". */
- if (!(p - beg >= 2
- && (*p == '/' || *p == '\\') && isalpha ((unsigned char)p[-2])
- && (p - beg == 2 || p[-3] == '(')))
+ /* A word CAN include a colon in its drive spec. The drive
+ spec is allowed either at the beginning of a word, or as part
+ of the archive member name, like in "libfoo.a(d:/foo/bar.o)". */
+ if (!(p - beg >= 2
+ && (*p == '/' || *p == '\\') && isalpha ((unsigned char)p[-2])
+ && (p - beg == 2 || p[-3] == '(')))
#endif
- goto done_word;
+ goto done_word;
case '$':
c = *(p++);
@@ -2643,7 +2788,7 @@ get_next_mword (char *buffer, char *delim, char **startp, unsigned int *length)
void
construct_include_path (const char **arg_dirs)
{
-#ifdef VAXC /* just don't ask ... */
+#ifdef VAXC /* just don't ask ... */
stat_t stbuf;
#else
struct stat stbuf;
@@ -2674,19 +2819,19 @@ construct_include_path (const char **arg_dirs)
if (arg_dirs)
while (*arg_dirs != 0)
{
- const char *dir = *(arg_dirs++);
+ const char *dir = *(arg_dirs++);
char *expanded = 0;
int e;
- if (dir[0] == '~')
- {
- expanded = tilde_expand (dir);
- if (expanded != 0)
- dir = expanded;
- }
+ if (dir[0] == '~')
+ {
+ expanded = tilde_expand (dir);
+ if (expanded != 0)
+ dir = expanded;
+ }
EINTRLOOP (e, stat (dir, &stbuf));
- if (e == 0 && S_ISDIR (stbuf.st_mode))
+ if (e == 0 && S_ISDIR (stbuf.st_mode))
{
unsigned int len = strlen (dir);
/* If dir name is written with trailing slashes, discard them. */
@@ -2697,8 +2842,8 @@ construct_include_path (const char **arg_dirs)
dirs[idx++] = strcache_add_len (dir, len);
}
- if (expanded)
- free (expanded);
+ if (expanded)
+ free (expanded);
}
/* Now add the standard default dirs at the end. */
@@ -2712,10 +2857,10 @@ construct_include_path (const char **arg_dirs)
if (djdir)
{
unsigned int len = strlen (djdir->value) + 8;
- char *defdir = alloca (len + 1);
+ char *defdir = alloca (len + 1);
- strcat (strcpy (defdir, djdir->value), "/include");
- dirs[idx++] = strcache_add (defdir);
+ strcat (strcpy (defdir, djdir->value), "/include");
+ dirs[idx++] = strcache_add (defdir);
if (len > max_incl_len)
max_incl_len = len;
@@ -2765,42 +2910,42 @@ tilde_expand (const char *name)
int is_variable;
{
- /* Turn off --warn-undefined-variables while we expand HOME. */
- int save = warn_undefined_variables_flag;
- warn_undefined_variables_flag = 0;
+ /* Turn off --warn-undefined-variables while we expand HOME. */
+ int save = warn_undefined_variables_flag;
+ warn_undefined_variables_flag = 0;
- home_dir = allocated_variable_expand ("$(HOME)");
+ home_dir = allocated_variable_expand ("$(HOME)");
- warn_undefined_variables_flag = save;
+ warn_undefined_variables_flag = save;
}
is_variable = home_dir[0] != '\0';
if (!is_variable)
- {
- free (home_dir);
- home_dir = getenv ("HOME");
- }
+ {
+ free (home_dir);
+ home_dir = getenv ("HOME");
+ }
# if !defined(_AMIGA) && !defined(WINDOWS32)
if (home_dir == 0 || home_dir[0] == '\0')
- {
- extern char *getlogin ();
- char *logname = getlogin ();
- home_dir = 0;
- if (logname != 0)
- {
- struct passwd *p = getpwnam (logname);
- if (p != 0)
- home_dir = p->pw_dir;
- }
- }
+ {
+ extern char *getlogin ();
+ char *logname = getlogin ();
+ home_dir = 0;
+ if (logname != 0)
+ {
+ struct passwd *p = getpwnam (logname);
+ if (p != 0)
+ home_dir = p->pw_dir;
+ }
+ }
# endif /* !AMIGA && !WINDOWS32 */
if (home_dir != 0)
- {
- char *new = xstrdup (concat (2, home_dir, name + 1));
- if (is_variable)
- free (home_dir);
- return new;
- }
+ {
+ char *new = xstrdup (concat (2, home_dir, name + 1));
+ if (is_variable)
+ free (home_dir);
+ return new;
+ }
}
# if !defined(_AMIGA) && !defined(WINDOWS32)
else
@@ -2808,17 +2953,17 @@ tilde_expand (const char *name)
struct passwd *pwent;
char *userend = strchr (name + 1, '/');
if (userend != 0)
- *userend = '\0';
+ *userend = '\0';
pwent = getpwnam (name + 1);
if (pwent != 0)
- {
- if (userend == 0)
- return xstrdup (pwent->pw_dir);
- else
- return xstrdup (concat (3, pwent->pw_dir, "/", userend + 1));
- }
+ {
+ if (userend == 0)
+ return xstrdup (pwent->pw_dir);
+ else
+ return xstrdup (concat (3, pwent->pw_dir, "/", userend + 1));
+ }
else if (userend != 0)
- *userend = '/';
+ *userend = '/';
}
# endif /* !AMIGA && !WINDOWS32 */
#endif /* !VMS */
@@ -2849,7 +2994,7 @@ tilde_expand (const char *name)
*/
void *
-parse_file_seq (char **stringp, unsigned int size, int stopchar,
+parse_file_seq (char **stringp, unsigned int size, int stopmap,
const char *prefix, int flags)
{
extern void dir_setup_glob (glob_t *glob);
@@ -2857,9 +3002,8 @@ parse_file_seq (char **stringp, unsigned int size, int stopchar,
/* tmp points to tmpbuf after the prefix, if any.
tp is the end of the buffer. */
static char *tmpbuf = NULL;
- static int tmpbuf_len = 0;
- int cachep = (! (flags & PARSEFS_NOCACHE));
+ int cachep = NONE_SET (flags, PARSEFS_NOCACHE);
struct nameseq *new = 0;
struct nameseq **newp = &new;
@@ -2874,20 +3018,18 @@ parse_file_seq (char **stringp, unsigned int size, int stopchar,
glob_t gl;
char *tp;
-#ifdef VMS
-# define VMS_COMMA ','
-#else
-# define VMS_COMMA 0
-#endif
+ /* Always stop on NUL. */
+ stopmap |= MAP_NUL;
if (size < sizeof (struct nameseq))
size = sizeof (struct nameseq);
- if (! (flags & PARSEFS_NOGLOB))
+ if (NONE_SET (flags, PARSEFS_NOGLOB))
dir_setup_glob (&gl);
/* Get enough temporary space to construct the largest possible target. */
{
+ static int tmpbuf_len = 0;
int l = strlen (*stringp) + 1;
if (l > tmpbuf_len)
{
@@ -2904,6 +3046,7 @@ parse_file_seq (char **stringp, unsigned int size, int stopchar,
const char *name;
const char **nlist = 0;
char *tildep = 0;
+ int globme = 1;
#ifndef NO_ARCHIVES
char *arname = 0;
char *memname = 0;
@@ -2914,59 +3057,59 @@ parse_file_seq (char **stringp, unsigned int size, int stopchar,
/* Skip whitespace; at the end of the string or STOPCHAR we're done. */
p = next_token (p);
- if (*p == '\0' || *p == stopchar)
- break;
+ if (STOP_SET (*p, stopmap))
+ break;
/* There are names left, so find the end of the next name.
Throughout this iteration S points to the start. */
s = p;
- p = find_char_unquote (p, stopchar, VMS_COMMA, 1, 0);
+ p = find_char_unquote (p, stopmap|MAP_VMSCOMMA|MAP_BLANK);
#ifdef VMS
- /* convert comma separated list to space separated */
+ /* convert comma separated list to space separated */
if (p && *p == ',')
- *p =' ';
+ *p =' ';
#endif
#ifdef _AMIGA
- if (stopchar == ':' && p && *p == ':'
+ if (p && STOP_SET (*p, stopmap & MAP_COLON)
&& !(isspace ((unsigned char)p[1]) || !p[1]
|| isspace ((unsigned char)p[-1])))
- p = find_char_unquote (p+1, stopchar, VMS_COMMA, 1, 0);
+ p = find_char_unquote (p+1, stopmap|MAP_VMSCOMMA|MAP_BLANK);
#endif
#ifdef HAVE_DOS_PATHS
/* For DOS paths, skip a "C:\..." or a "C:/..." until we find the
first colon which isn't followed by a slash or a backslash.
Note that tokens separated by spaces should be treated as separate
tokens since make doesn't allow path names with spaces */
- if (stopchar == ':')
+ if (stopmap | MAP_COLON)
while (p != 0 && !isspace ((unsigned char)*p) &&
(p[1] == '\\' || p[1] == '/') && isalpha ((unsigned char)p[-1]))
- p = find_char_unquote (p + 1, stopchar, VMS_COMMA, 1, 0);
+ p = find_char_unquote (p + 1, stopmap|MAP_VMSCOMMA|MAP_BLANK);
#endif
if (p == 0)
- p = s + strlen (s);
+ p = s + strlen (s);
/* Strip leading "this directory" references. */
- if (! (flags & PARSEFS_NOSTRIP))
+ if (NONE_SET (flags, PARSEFS_NOSTRIP))
#ifdef VMS
- /* Skip leading `[]'s. */
- while (p - s > 2 && s[0] == '[' && s[1] == ']')
+ /* Skip leading '[]'s. */
+ while (p - s > 2 && s[0] == '[' && s[1] == ']')
#else
- /* Skip leading `./'s. */
- while (p - s > 2 && s[0] == '.' && s[1] == '/')
+ /* Skip leading './'s. */
+ while (p - s > 2 && s[0] == '.' && s[1] == '/')
#endif
- {
+ {
/* Skip "./" and all following slashes. */
- s += 2;
- while (*s == '/')
- ++s;
- }
+ s += 2;
+ while (*s == '/')
+ ++s;
+ }
/* Extract the filename just found, and skip it.
Set NAME to the string, and NLEN to its length. */
if (s == p)
{
- /* The name was stripped to empty ("./"). */
+ /* The name was stripped to empty ("./"). */
#if defined(VMS)
continue;
#elif defined(_AMIGA)
@@ -2981,19 +3124,19 @@ parse_file_seq (char **stringp, unsigned int size, int stopchar,
#endif
}
else
- {
+ {
#ifdef VMS
/* VMS filenames can have a ':' in them but they have to be '\'ed but we need
* to remove this '\' before we can use the filename.
* xstrdup called because S may be read-only string constant.
*/
- char *n = tp;
- while (s < p)
- {
- if (s[0] == '\\' && s[1] == ':')
+ char *n = tp;
+ while (s < p)
+ {
+ if (s[0] == '\\' && s[1] == ':')
++s;
- *(n++) = *(s++);
- }
+ *(n++) = *(s++);
+ }
n[0] = '\0';
nlen = strlen (tp);
#else
@@ -3012,7 +3155,7 @@ parse_file_seq (char **stringp, unsigned int size, int stopchar,
"libf.a(x.o) libf.a(y.o) libf.a(z.o)"
TP == TMP means we're not already in an archive group. Ignore
- something starting with `(', as that cannot actually be an
+ something starting with '(', as that cannot actually be an
archive-member reference (and treating it as such results in an empty
file name, which causes much lossage). Also if it ends in ")" then
it's a complete reference so we don't need to treat it specially.
@@ -3020,7 +3163,7 @@ parse_file_seq (char **stringp, unsigned int size, int stopchar,
Finally, note that archive groups must end with ')' as the last
character, so ensure there's some word ending like that before
considering this an archive group. */
- if (! (flags & PARSEFS_NOAR)
+ if (NONE_SET (flags, PARSEFS_NOAR)
&& tp == tmpbuf && tp[0] != '(' && tp[nlen-1] != ')')
{
char *n = strchr (tp, '(');
@@ -3028,16 +3171,19 @@ parse_file_seq (char **stringp, unsigned int size, int stopchar,
{
/* This looks like the first element in an open archive group.
A valid group MUST have ')' as the last character. */
- const char *e = p + nlen;
+ const char *e = p;
do
{
+ const char *o = e;
e = next_token (e);
/* Find the end of this word. We don't want to unquote and
we don't care about quoting since we're looking for the
last char in the word. */
- while (*e != '\0' && *e != stopchar && *e != VMS_COMMA
- && ! isblank ((unsigned char) *e))
+ while (! STOP_SET (*e, stopmap|MAP_BLANK|MAP_VMSCOMMA))
++e;
+ /* If we didn't move, we're done now. */
+ if (e == o)
+ break;
if (e[-1] == ')')
{
/* Found the end, so this is the first element in an
@@ -3046,16 +3192,16 @@ parse_file_seq (char **stringp, unsigned int size, int stopchar,
nlen -= (n + 1) - tp;
tp = n + 1;
- /* If we have just "lib(", part of something like
- "lib( a b)", go to the next item. */
- if (! nlen)
- continue;
-
/* We can stop looking now. */
break;
}
}
while (*e != '\0');
+
+ /* If we have just "lib(", part of something like "lib( a b)",
+ go to the next item. */
+ if (! nlen)
+ continue;
}
}
@@ -3082,62 +3228,70 @@ parse_file_seq (char **stringp, unsigned int size, int stopchar,
/* If we're not globbing we're done: add it to the end of the chain.
Go to the next item in the string. */
- if (flags & PARSEFS_NOGLOB)
+ if (ANY_SET (flags, PARSEFS_NOGLOB))
{
- NEWELT (concat (2, prefix, tp));
+ NEWELT (concat (2, prefix, tmpbuf));
continue;
}
/* If we get here we know we're doing glob expansion.
TP is a string in tmpbuf. NLEN is no longer used.
We may need to do more work: after this NAME will be set. */
- name = tp;
+ name = tmpbuf;
/* Expand tilde if applicable. */
- if (tp[0] == '~')
- {
- tildep = tilde_expand (tp);
- if (tildep != 0)
+ if (tmpbuf[0] == '~')
+ {
+ tildep = tilde_expand (tmpbuf);
+ if (tildep != 0)
name = tildep;
- }
+ }
#ifndef NO_ARCHIVES
/* If NAME is an archive member reference replace it with the archive
file name, and save the member name in MEMNAME. We will glob on the
archive name and then reattach MEMNAME later. */
- if (! (flags & PARSEFS_NOAR) && ar_name (name))
- {
- ar_parse_name (name, &arname, &memname);
- name = arname;
- }
+ if (NONE_SET (flags, PARSEFS_NOAR) && ar_name (name))
+ {
+ ar_parse_name (name, &arname, &memname);
+ name = arname;
+ }
#endif /* !NO_ARCHIVES */
- switch (glob (name, GLOB_NOSORT|GLOB_ALTDIRFUNC, NULL, &gl))
- {
- case GLOB_NOSPACE:
- fatal (NILF, _("virtual memory exhausted"));
+ /* glob() is expensive: don't call it unless we need to. */
+ if (NONE_SET (flags, PARSEFS_EXISTS) && strpbrk (name, "?*[") == NULL)
+ {
+ globme = 0;
+ i = 1;
+ nlist = &name;
+ }
+ else
+ switch (glob (name, GLOB_NOSORT|GLOB_ALTDIRFUNC, NULL, &gl))
+ {
+ case GLOB_NOSPACE:
+ fatal (NILF, _("virtual memory exhausted"));
- case 0:
- /* Success. */
- i = gl.gl_pathc;
- nlist = (const char **)gl.gl_pathv;
- break;
+ case 0:
+ /* Success. */
+ i = gl.gl_pathc;
+ nlist = (const char **)gl.gl_pathv;
+ break;
- case GLOB_NOMATCH:
- /* If we want only existing items, skip this one. */
- if (flags & PARSEFS_EXISTS)
- {
- i = 0;
- break;
- }
- /* FALLTHROUGH */
+ case GLOB_NOMATCH:
+ /* If we want only existing items, skip this one. */
+ if (ANY_SET (flags, PARSEFS_EXISTS))
+ {
+ i = 0;
+ break;
+ }
+ /* FALLTHROUGH */
- default:
- /* By default keep this name. */
- i = 1;
- nlist = &name;
- break;
- }
+ default:
+ /* By default keep this name. */
+ i = 1;
+ nlist = &name;
+ break;
+ }
/* For each matched element, add it to the list. */
while (i-- > 0)
@@ -3152,7 +3306,10 @@ parse_file_seq (char **stringp, unsigned int size, int stopchar,
else
{
/* We got a chain of items. Attach them. */
- (*newp)->next = found;
+ if (*newp)
+ (*newp)->next = found;
+ else
+ *newp = found;
/* Find and set the new end. Massage names if necessary. */
while (1)
@@ -3174,7 +3331,8 @@ parse_file_seq (char **stringp, unsigned int size, int stopchar,
#endif /* !NO_ARCHIVES */
NEWELT (concat (2, prefix, nlist[i]));
- globfree (&gl);
+ if (globme)
+ globfree (&gl);
#ifndef NO_ARCHIVES
if (arname)
diff --git a/remake.c b/remake.c
index 27d2550..138cdc6 100644
--- a/remake.c
+++ b/remake.c
@@ -1,7 +1,5 @@
/* Basic dependency engine for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,7 +14,7 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
#include "filedef.h"
#include "job.h"
#include "commands.h"
@@ -43,7 +41,7 @@ extern int try_implicit_rule (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
+ 'struct file'. However, double colon targets have separate '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))\
@@ -64,35 +62,35 @@ static int update_file (struct file *file, unsigned int depth);
static int update_file_1 (struct file *file, unsigned int depth);
static int check_dep (struct file *file, unsigned int depth,
FILE_TIMESTAMP this_mtime, int *must_make_ptr);
-static int touch_file (struct file *file);
+static enum update_status touch_file (struct file *file);
static void remake_file (struct file *file);
static FILE_TIMESTAMP name_mtime (const char *name);
static const char *library_search (const char *lib, FILE_TIMESTAMP *mtime_ptr);
-/* Remake all the goals in the `struct dep' chain GOALS. Return -1 if nothing
+/* Remake all the goals in the 'struct dep' chain GOALS. Return -1 if nothing
was done, 0 if all goals were updated successfully, or 1 if a goal failed.
If rebuilding_makefiles is nonzero, these goals are makefiles, so -t, -q,
and -n should be disabled for them unless they were also command-line
targets, and we should only make one goal at a time and return as soon as
- one goal whose `changed' member is nonzero is successfully made. */
+ one goal whose 'changed' member is nonzero is successfully made. */
-int
+enum update_status
update_goal_chain (struct dep *goals)
{
int t = touch_flag, q = question_flag, n = just_print_flag;
- int status = -1;
+ enum update_status status = us_none;
-#define MTIME(file) (rebuilding_makefiles ? file_mtime_no_search (file) \
- : file_mtime (file))
+#define MTIME(file) (rebuilding_makefiles ? file_mtime_no_search (file) \
+ : file_mtime (file))
/* Duplicate the chain so we can remove things from it. */
goals = copy_dep_chain (goals);
{
- /* Clear the `changed' flag of each goal in the chain.
+ /* Clear the 'changed' flag of each goal in the chain.
We will use the flag below to notice when any commands
have actually been run for a target. When no commands
have been run, we give an "up to date" diagnostic. */
@@ -122,44 +120,44 @@ update_goal_chain (struct dep *goals)
lastgoal = 0;
g = goals;
while (g != 0)
- {
- /* Iterate over all double-colon entries for this file. */
- struct file *file;
- int stop = 0, any_not_updated = 0;
-
- for (file = g->file->double_colon ? g->file->double_colon : g->file;
- file != NULL;
- file = file->prev)
- {
- unsigned int ocommands_started;
- int x;
+ {
+ /* Iterate over all double-colon entries for this file. */
+ struct file *file;
+ int stop = 0, any_not_updated = 0;
+
+ for (file = g->file->double_colon ? g->file->double_colon : g->file;
+ file != NULL;
+ file = file->prev)
+ {
+ unsigned int ocommands_started;
+ int fail;
file->dontcare = g->dontcare;
- check_renamed (file);
- if (rebuilding_makefiles)
- {
- if (file->cmd_target)
- {
- touch_flag = t;
- question_flag = q;
- just_print_flag = n;
- }
- else
- touch_flag = question_flag = just_print_flag = 0;
- }
-
- /* Save the old value of `commands_started' so we can compare
- later. It will be incremented when any commands are
- actually run. */
- ocommands_started = commands_started;
-
- x = update_file (file, rebuilding_makefiles ? 1 : 0);
- check_renamed (file);
-
- /* Set the goal's `changed' flag if any commands were started
- by calling update_file above. We check this flag below to
- decide when to give an "up to date" diagnostic. */
+ check_renamed (file);
+ if (rebuilding_makefiles)
+ {
+ if (file->cmd_target)
+ {
+ touch_flag = t;
+ question_flag = q;
+ just_print_flag = n;
+ }
+ else
+ touch_flag = question_flag = just_print_flag = 0;
+ }
+
+ /* Save the old value of 'commands_started' so we can compare
+ later. It will be incremented when any commands are
+ actually run. */
+ ocommands_started = commands_started;
+
+ fail = update_file (file, rebuilding_makefiles ? 1 : 0);
+ check_renamed (file);
+
+ /* Set the goal's 'changed' flag if any commands were started
+ by calling update_file above. We check this flag below to
+ decide when to give an "up to date" diagnostic. */
if (commands_started > ocommands_started)
g->changed = 1;
@@ -167,10 +165,10 @@ update_goal_chain (struct dep *goals)
1 if updating failed, or to 0 if updating succeeded. Leave
STATUS as it is if no updating was done. */
- stop = 0;
- if ((x != 0 || file->updated) && status < 1)
+ stop = 0;
+ if ((fail || file->updated) && status < us_question)
{
- if (file->update_status != 0)
+ if (file->update_status != us_success)
{
/* Updating failed, or -q triggered. The STATUS value
tells our caller which. */
@@ -197,7 +195,7 @@ update_goal_chain (struct dep *goals)
enter an infinite loop. */
if (!rebuilding_makefiles
|| (!just_print_flag && !question_flag))
- status = 0;
+ status = us_success;
if (rebuilding_makefiles && file->dontcare)
/* This is a default makefile; stop remaking. */
stop = 1;
@@ -205,56 +203,56 @@ update_goal_chain (struct dep *goals)
}
}
- /* Keep track if any double-colon entry is not finished.
+ /* Keep track if any double-colon entry is not finished.
When they are all finished, the goal is finished. */
- any_not_updated |= !file->updated;
+ any_not_updated |= !file->updated;
file->dontcare = 0;
- if (stop)
- break;
- }
-
- /* Reset FILE since it is null at the end of the loop. */
- file = g->file;
-
- if (stop || !any_not_updated)
- {
- /* If we have found nothing whatever to do for the goal,
- print a message saying nothing needs doing. */
-
- if (!rebuilding_makefiles
- /* If the update_status is zero, we updated successfully
- or not at all. G->changed will have been set above if
- any commands were actually started for this goal. */
- && file->update_status == 0 && !g->changed
- /* Never give a message under -s or -q. */
- && !silent_flag && !question_flag)
- message (1, ((file->phony || file->cmds == 0)
- ? _("Nothing to be done for `%s'.")
- : _("`%s' is up to date.")),
- file->name);
-
- /* This goal is finished. Remove it from the chain. */
- if (lastgoal == 0)
- goals = g->next;
- else
- lastgoal->next = g->next;
-
- /* Free the storage. */
- free (g);
-
- g = lastgoal == 0 ? goals : lastgoal->next;
-
- if (stop)
- break;
- }
- else
- {
- lastgoal = g;
- g = g->next;
- }
- }
+ if (stop)
+ break;
+ }
+
+ /* Reset FILE since it is null at the end of the loop. */
+ file = g->file;
+
+ if (stop || !any_not_updated)
+ {
+ /* If we have found nothing whatever to do for the goal,
+ print a message saying nothing needs doing. */
+
+ if (!rebuilding_makefiles
+ /* If the update_status is success, we updated successfully
+ or not at all. G->changed will have been set above if
+ any commands were actually started for this goal. */
+ && file->update_status == us_success && !g->changed
+ /* Never give a message under -s or -q. */
+ && !silent_flag && !question_flag)
+ message (1, ((file->phony || file->cmds == 0)
+ ? _("Nothing to be done for '%s'.")
+ : _("'%s' is up to date.")),
+ file->name);
+
+ /* This goal is finished. Remove it from the chain. */
+ if (lastgoal == 0)
+ goals = g->next;
+ else
+ lastgoal->next = g->next;
+
+ /* Free the storage. */
+ free (g);
+
+ g = lastgoal == 0 ? goals : lastgoal->next;
+
+ if (stop)
+ break;
+ }
+ else
+ {
+ lastgoal = g;
+ g = g->next;
+ }
+ }
/* If we reached the end of the dependency graph toggle the considered
flag for the next pass. */
@@ -273,8 +271,8 @@ update_goal_chain (struct dep *goals)
}
/* If FILE is not up to date, execute the commands for it.
- Return 0 if successful, 1 if unsuccessful;
- but with some flag settings, just call `exit' if unsuccessful.
+ Return 0 if successful, non-0 if unsuccessful;
+ but with some flag settings, just call 'exit' if unsuccessful.
DEPTH is the depth in recursions of this function.
We increment it during the consideration of our dependencies,
@@ -287,7 +285,7 @@ update_goal_chain (struct dep *goals)
static int
update_file (struct file *file, unsigned int depth)
{
- register int status = 0;
+ int status = 0;
register struct file *f;
f = file->double_colon ? file->double_colon : file;
@@ -299,11 +297,12 @@ update_file (struct file *file, unsigned int depth)
if (f->considered == considered)
{
/* Check for the case where a target has been tried and failed but
- the diagnostics hasn't been issued. If we need the diagnostics
+ the diagnostics haven't been issued. If we need the diagnostics
then we will have to continue. */
- if (!(f->updated && f->update_status > 0 && !f->dontcare && f->no_diag))
+ if (!(f->updated && f->update_status > us_none
+ && !f->dontcare && f->no_diag))
{
- DBF (DB_VERBOSE, _("Pruning file `%s'.\n"));
+ DBF (DB_VERBOSE, _("Pruning file '%s'.\n"));
return f->command_state == cs_finished ? f->update_status : 0;
}
}
@@ -327,8 +326,8 @@ update_file (struct file *file, unsigned int depth)
if (f->command_state == cs_running
|| f->command_state == cs_deps_running)
{
- /* Don't run the other :: rules for this
- file until this rule is finished. */
+ /* Don't run the other :: rules for this
+ file until this rule is finished. */
status = 0;
break;
}
@@ -355,11 +354,6 @@ update_file (struct file *file, unsigned int depth)
static void
complain (struct file *file)
{
- const char *msg_noparent
- = _("%sNo rule to make target `%s'%s");
- const char *msg_parent
- = _("%sNo rule to make target `%s', needed by `%s'%s");
-
/* If this file has no_diag set then it means we tried to update it
before in the dontcare mode and failed. The target that actually
failed is not necessarily this file but could be one of its direct
@@ -370,7 +364,7 @@ complain (struct file *file)
for (d = file->deps; d != 0; d = d->next)
{
- if (d->file->updated && d->file->update_status > 0 && file->no_diag)
+ if (d->file->updated && d->file->update_status > us_none && file->no_diag)
{
complain (d->file);
break;
@@ -379,6 +373,11 @@ complain (struct file *file)
if (d == 0)
{
+ const char *msg_noparent
+ = _("%sNo rule to make target '%s'%s");
+ const char *msg_parent
+ = _("%sNo rule to make target '%s', needed by '%s'%s");
+
/* Didn't find any dependencies to complain about. */
if (!keep_going_flag)
{
@@ -397,7 +396,8 @@ complain (struct file *file)
}
}
-/* Consider a single `struct file' and update it as appropriate. */
+/* Consider a single 'struct file' and update it as appropriate.
+ Return 0 on success, or non-0 on failure. */
static int
update_file_1 (struct file *file, unsigned int depth)
@@ -410,14 +410,14 @@ update_file_1 (struct file *file, unsigned int depth)
struct dep amake;
int running = 0;
- DBF (DB_VERBOSE, _("Considering target file `%s'.\n"));
+ DBF (DB_VERBOSE, _("Considering target file '%s'.\n"));
if (file->updated)
{
- if (file->update_status > 0)
- {
- DBF (DB_VERBOSE,
- _("Recently tried and failed to update file `%s'.\n"));
+ if (file->update_status > us_none)
+ {
+ DBF (DB_VERBOSE,
+ _("Recently tried and failed to update file '%s'.\n"));
/* If the file we tried to make is marked no_diag then no message
was printed about it when it failed during the makefile rebuild.
@@ -426,10 +426,10 @@ update_file_1 (struct file *file, unsigned int depth)
if (file->no_diag && !file->dontcare)
complain (file);
- return file->update_status;
- }
+ return file->update_status;
+ }
- DBF (DB_VERBOSE, _("File `%s' was considered already.\n"));
+ DBF (DB_VERBOSE, _("File '%s' was considered already.\n"));
return 0;
}
@@ -439,10 +439,10 @@ update_file_1 (struct file *file, unsigned int depth)
case cs_deps_running:
break;
case cs_running:
- DBF (DB_VERBOSE, _("Still updating file `%s'.\n"));
+ DBF (DB_VERBOSE, _("Still updating file '%s'.\n"));
return 0;
case cs_finished:
- DBF (DB_VERBOSE, _("Finished updating file `%s'.\n"));
+ DBF (DB_VERBOSE, _("Finished updating file '%s'.\n"));
return file->update_status;
default:
abort ();
@@ -471,15 +471,15 @@ update_file_1 (struct file *file, unsigned int depth)
check_renamed (file);
noexist = this_mtime == NONEXISTENT_MTIME;
if (noexist)
- DBF (DB_BASIC, _("File `%s' does not exist.\n"));
+ DBF (DB_BASIC, _("File '%s' does not exist.\n"));
else if (ORDINARY_MTIME_MIN <= this_mtime && this_mtime <= ORDINARY_MTIME_MAX
- && file->low_resolution_time)
+ && file->low_resolution_time)
{
/* Avoid spurious rebuilds due to low resolution time stamps. */
int ns = FILE_TIMESTAMP_NS (this_mtime);
if (ns != 0)
- error (NILF, _("*** Warning: .LOW_RESOLUTION_TIME file `%s' has a high resolution time stamp"),
- file->name);
+ error (NILF, _("*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"),
+ file->name);
this_mtime += FILE_TIMESTAMPS_PER_S - 1 - ns;
}
@@ -491,15 +491,15 @@ update_file_1 (struct file *file, unsigned int depth)
if (!file->phony && file->cmds == 0 && !file->tried_implicit)
{
if (try_implicit_rule (file, depth))
- DBF (DB_IMPLICIT, _("Found an implicit rule for `%s'.\n"));
+ DBF (DB_IMPLICIT, _("Found an implicit rule for '%s'.\n"));
else
- DBF (DB_IMPLICIT, _("No implicit rule found for `%s'.\n"));
+ DBF (DB_IMPLICIT, _("No implicit rule found for '%s'.\n"));
file->tried_implicit = 1;
}
if (file->cmds == 0 && !file->is_target
&& default_file != 0 && default_file->cmds != 0)
{
- DBF (DB_IMPLICIT, _("Using default recipe for `%s'.\n"));
+ DBF (DB_IMPLICIT, _("Using default recipe for '%s'.\n"));
file->cmds = default_file->cmds;
}
@@ -579,7 +579,7 @@ update_file_1 (struct file *file, unsigned int depth)
while (f != 0);
}
- if (dep_status != 0 && !keep_going_flag)
+ if (dep_status && !keep_going_flag)
break;
if (!running)
@@ -599,13 +599,13 @@ update_file_1 (struct file *file, unsigned int depth)
if (must_make || always_make_flag)
{
for (d = file->deps; d != 0; d = d->next)
- if (d->file->intermediate)
- {
+ if (d->file->intermediate)
+ {
int dontcare = 0;
- FILE_TIMESTAMP mtime = file_mtime (d->file);
- check_renamed (d->file);
- d->file->parent = file;
+ FILE_TIMESTAMP mtime = file_mtime (d->file);
+ check_renamed (d->file);
+ d->file->parent = file;
/* Inherit dontcare flag from our parent. */
if (rebuilding_makefiles)
@@ -614,47 +614,51 @@ update_file_1 (struct file *file, unsigned int depth)
d->file->dontcare = file->dontcare;
}
+ /* We may have already considered this file, when we didn't know
+ we'd need to update it. Force update_file() to consider it and
+ not prune it. */
+ d->file->considered = !considered;
- dep_status |= update_file (d->file, depth);
+ dep_status |= update_file (d->file, depth);
/* Restore original dontcare flag. */
if (rebuilding_makefiles)
d->file->dontcare = dontcare;
- check_renamed (d->file);
-
- {
- register struct file *f = d->file;
- if (f->double_colon)
- f = f->double_colon;
- do
- {
- running |= (f->command_state == cs_running
- || f->command_state == cs_deps_running);
- f = f->prev;
- }
- while (f != 0);
- }
-
- if (dep_status != 0 && !keep_going_flag)
- break;
-
- if (!running)
- d->changed = ((file->phony && file->cmds != 0)
- || file_mtime (d->file) != mtime);
- }
+ check_renamed (d->file);
+
+ {
+ register struct file *f = d->file;
+ if (f->double_colon)
+ f = f->double_colon;
+ do
+ {
+ running |= (f->command_state == cs_running
+ || f->command_state == cs_deps_running);
+ f = f->prev;
+ }
+ while (f != 0);
+ }
+
+ if (dep_status && !keep_going_flag)
+ break;
+
+ if (!running)
+ d->changed = ((file->phony && file->cmds != 0)
+ || file_mtime (d->file) != mtime);
+ }
}
finish_updating (file);
finish_updating (ofile);
- DBF (DB_VERBOSE, _("Finished prerequisites of target file `%s'.\n"));
+ DBF (DB_VERBOSE, _("Finished prerequisites of target file '%s'.\n"));
if (running)
{
set_command_state (file, cs_deps_running);
--depth;
- DBF (DB_VERBOSE, _("The prerequisites of `%s' are being made.\n"));
+ DBF (DB_VERBOSE, _("The prerequisites of '%s' are being made.\n"));
return 0;
}
@@ -662,17 +666,17 @@ update_file_1 (struct file *file, unsigned int depth)
if (dep_status != 0)
{
- file->update_status = dep_status;
+ file->update_status = us_failed;
notice_finished_file (file);
--depth;
- DBF (DB_VERBOSE, _("Giving up on target file `%s'.\n"));
+ DBF (DB_VERBOSE, _("Giving up on target file '%s'.\n"));
if (depth == 0 && keep_going_flag
- && !just_print_flag && !question_flag)
- error (NILF,
- _("Target `%s' not remade because of errors."), file->name);
+ && !just_print_flag && !question_flag)
+ error (NILF,
+ _("Target '%s' not remade because of errors."), file->name);
return dep_status;
}
@@ -701,8 +705,8 @@ update_file_1 (struct file *file, unsigned int depth)
{
#if 1
/* %%% In version 4, remove this code completely to
- implement not remaking deps if their deps are newer
- than their parents. */
+ implement not remaking deps if their deps are newer
+ than their parents. */
if (d_mtime == NONEXISTENT_MTIME && !d->file->intermediate)
/* We must remake if this dep does not
exist and is not intermediate. */
@@ -714,30 +718,30 @@ update_file_1 (struct file *file, unsigned int depth)
}
/* Set D->changed if either this dep actually changed,
- or its dependent, FILE, is older or does not exist. */
+ or its dependent, FILE, is older or does not exist. */
d->changed |= noexist || d_mtime > this_mtime;
if (!noexist && ISDB (DB_BASIC|DB_VERBOSE))
- {
+ {
const char *fmt = 0;
if (d->ignore_mtime)
{
if (ISDB (DB_VERBOSE))
- fmt = _("Prerequisite `%s' is order-only for target `%s'.\n");
+ fmt = _("Prerequisite '%s' is order-only for target '%s'.\n");
}
else if (d_mtime == NONEXISTENT_MTIME)
{
if (ISDB (DB_BASIC))
- fmt = _("Prerequisite `%s' of target `%s' does not exist.\n");
+ fmt = _("Prerequisite '%s' of target '%s' does not exist.\n");
}
- else if (d->changed)
+ else if (d->changed)
{
if (ISDB (DB_BASIC))
- fmt = _("Prerequisite `%s' is newer than target `%s'.\n");
+ fmt = _("Prerequisite '%s' is newer than target '%s'.\n");
}
else if (ISDB (DB_VERBOSE))
- fmt = _("Prerequisite `%s' is older than target `%s'.\n");
+ fmt = _("Prerequisite '%s' is older than target '%s'.\n");
if (fmt)
{
@@ -745,7 +749,7 @@ update_file_1 (struct file *file, unsigned int depth)
printf (fmt, dep_name (d), file->name);
fflush (stdout);
}
- }
+ }
}
/* Here depth returns to the value it had when we were called. */
@@ -755,19 +759,19 @@ update_file_1 (struct file *file, unsigned int depth)
{
must_make = 1;
DBF (DB_BASIC,
- _("Target `%s' is double-colon and has no prerequisites.\n"));
+ _("Target '%s' is double-colon and has no prerequisites.\n"));
}
else if (!noexist && file->is_target && !deps_changed && file->cmds == 0
&& !always_make_flag)
{
must_make = 0;
DBF (DB_VERBOSE,
- _("No recipe for `%s' and no prerequisites actually changed.\n"));
+ _("No recipe for '%s' and no prerequisites actually changed.\n"));
}
else if (!must_make && file->cmds != 0 && always_make_flag)
{
must_make = 1;
- DBF (DB_VERBOSE, _("Making `%s' due to always-make flag.\n"));
+ DBF (DB_VERBOSE, _("Making '%s' due to always-make flag.\n"));
}
if (!must_make)
@@ -775,9 +779,9 @@ update_file_1 (struct file *file, unsigned int depth)
if (ISDB (DB_VERBOSE))
{
print_spaces (depth);
- printf (_("No need to remake target `%s'"), file->name);
+ printf (_("No need to remake target '%s'"), file->name);
if (!streq (file->name, file->hname))
- printf (_("; using VPATH name `%s'"), file->hname);
+ printf (_("; using VPATH name '%s'"), file->hname);
puts (".");
fflush (stdout);
}
@@ -797,13 +801,13 @@ update_file_1 (struct file *file, unsigned int depth)
return 0;
}
- DBF (DB_BASIC, _("Must remake target `%s'.\n"));
+ DBF (DB_BASIC, _("Must remake target '%s'.\n"));
/* It needs to be remade. If it's VPATH and not reset via GPATH, toss the
VPATH. */
- if (!streq(file->name, file->hname))
+ if (!streq (file->name, file->hname))
{
- DB (DB_BASIC, (_(" Ignoring VPATH name `%s'.\n"), file->hname));
+ DB (DB_BASIC, (_(" Ignoring VPATH name '%s'.\n"), file->hname));
file->ignore_vpath = 1;
}
@@ -812,23 +816,22 @@ update_file_1 (struct file *file, unsigned int depth)
if (file->command_state != cs_finished)
{
- DBF (DB_VERBOSE, _("Recipe of `%s' is being run.\n"));
+ DBF (DB_VERBOSE, _("Recipe of '%s' is being run.\n"));
return 0;
}
switch (file->update_status)
{
- case 2:
- DBF (DB_BASIC, _("Failed to remake target file `%s'.\n"));
+ case us_failed:
+ DBF (DB_BASIC, _("Failed to remake target file '%s'.\n"));
break;
- case 0:
- DBF (DB_BASIC, _("Successfully remade target file `%s'.\n"));
+ case us_success:
+ DBF (DB_BASIC, _("Successfully remade target file '%s'.\n"));
break;
- case 1:
- DBF (DB_BASIC, _("Target file `%s' needs remade under -q.\n"));
+ case us_question:
+ DBF (DB_BASIC, _("Target file '%s' needs to be remade under -q.\n"));
break;
- default:
- assert (file->update_status >= 0 && file->update_status <= 2);
+ case us_none:
break;
}
@@ -836,11 +839,11 @@ update_file_1 (struct file *file, unsigned int depth)
return file->update_status;
}
-/* Set FILE's `updated' flag and re-check its mtime and the mtime's of all
- files listed in its `also_make' member. Under -t, this function also
+/* Set FILE's 'updated' flag and re-check its mtime and the mtime's of all
+ files listed in its 'also_make' member. Under -t, this function also
touches FILE.
- On return, FILE->update_status will no longer be -1 if it was. */
+ On return, FILE->update_status will no longer be us_none if it was. */
void
notice_finished_file (struct file *file)
@@ -854,35 +857,35 @@ notice_finished_file (struct file *file)
if (touch_flag
/* The update status will be:
- -1 if this target was not remade;
- 0 if 0 or more commands (+ or ${MAKE}) were run and won;
- 1 if some commands were run and lost.
- We touch the target if it has commands which either were not run
- or won when they ran (i.e. status is 0). */
- && file->update_status == 0)
+ us_success if 0 or more commands (+ or ${MAKE}) were run and won;
+ us_none if this target was not remade;
+ >us_none if some commands were run and lost.
+ We touch the target if it has commands which either were not run
+ or won when they ran (i.e. status is 0). */
+ && file->update_status == us_success)
{
if (file->cmds != 0 && file->cmds->any_recurse)
- {
- /* If all the command lines were recursive,
- we don't want to do the touching. */
- unsigned int i;
- for (i = 0; i < file->cmds->ncommand_lines; ++i)
- if (!(file->cmds->lines_flags[i] & COMMANDS_RECURSE))
- goto have_nonrecursing;
- }
+ {
+ /* If all the command lines were recursive,
+ we don't want to do the touching. */
+ unsigned int i;
+ for (i = 0; i < file->cmds->ncommand_lines; ++i)
+ if (!(file->cmds->lines_flags[i] & COMMANDS_RECURSE))
+ goto have_nonrecursing;
+ }
else
- {
- have_nonrecursing:
- if (file->phony)
- file->update_status = 0;
+ {
+ have_nonrecursing:
+ if (file->phony)
+ file->update_status = us_success;
/* According to POSIX, -t doesn't affect targets with no cmds. */
- else if (file->cmds != 0)
+ else if (file->cmds != 0)
{
/* Should set file's modification date and do nothing else. */
file->update_status = touch_file (file);
/* Pretend we ran a real touch command, to suppress the
- "`foo' is up to date" message. */
+ "'foo' is up to date" message. */
commands_started++;
/* Request for the timestamp to be updated (and distributed
@@ -891,7 +894,7 @@ notice_finished_file (struct file *file)
updating logic below. */
touched = 1;
}
- }
+ }
}
if (file->mtime_before_update == UNKNOWN_MTIME)
@@ -915,7 +918,7 @@ notice_finished_file (struct file *file)
/* If there were no commands at all, it's always new. */
else if (file->is_target && file->cmds == 0)
- i = 1;
+ i = 1;
file->last_mtime = i == 0 ? UNKNOWN_MTIME : NEW_MTIME;
}
@@ -948,28 +951,28 @@ notice_finished_file (struct file *file)
f->last_mtime = max_mtime;
}
- if (ran && file->update_status != -1)
+ if (ran && file->update_status != us_none)
/* We actually tried to update FILE, which has
updated its also_make's as well (if it worked).
If it didn't work, it wouldn't work again for them.
So mark them as updated with the same status. */
for (d = file->also_make; d != 0; d = d->next)
{
- d->file->command_state = cs_finished;
- d->file->updated = 1;
- d->file->update_status = file->update_status;
-
- if (ran && !d->file->phony)
- /* Fetch the new modification time.
- We do this instead of just invalidating the cached time
- so that a vpath_search can happen. Otherwise, it would
- never be done because the target is already updated. */
- f_mtime (d->file, 0);
+ d->file->command_state = cs_finished;
+ d->file->updated = 1;
+ d->file->update_status = file->update_status;
+
+ if (ran && !d->file->phony)
+ /* Fetch the new modification time.
+ We do this instead of just invalidating the cached time
+ so that a vpath_search can happen. Otherwise, it would
+ never be done because the target is already updated. */
+ f_mtime (d->file, 0);
}
- else if (file->update_status == -1)
+ else if (file->update_status == us_none)
/* Nothing was done for FILE, but it needed nothing done.
So mark it now as "succeeded". */
- file->update_status = 0;
+ file->update_status = us_success;
}
/* Check whether another file (whose mtime is THIS_MTIME) needs updating on
@@ -1003,7 +1006,7 @@ check_dep (struct file *file, unsigned int depth,
mtime = file_mtime (file);
check_renamed (file);
if (mtime == NONEXISTENT_MTIME || mtime > this_mtime)
- *must_make_ptr = 1;
+ *must_make_ptr = 1;
}
else
{
@@ -1011,19 +1014,19 @@ check_dep (struct file *file, unsigned int depth,
FILE_TIMESTAMP mtime;
if (!file->phony && file->cmds == 0 && !file->tried_implicit)
- {
- if (try_implicit_rule (file, depth))
- DBF (DB_IMPLICIT, _("Found an implicit rule for `%s'.\n"));
- else
- DBF (DB_IMPLICIT, _("No implicit rule found for `%s'.\n"));
- file->tried_implicit = 1;
- }
+ {
+ if (try_implicit_rule (file, depth))
+ DBF (DB_IMPLICIT, _("Found an implicit rule for '%s'.\n"));
+ else
+ DBF (DB_IMPLICIT, _("No implicit rule found for '%s'.\n"));
+ file->tried_implicit = 1;
+ }
if (file->cmds == 0 && !file->is_target
- && default_file != 0 && default_file->cmds != 0)
- {
- DBF (DB_IMPLICIT, _("Using default commands for `%s'.\n"));
- file->cmds = default_file->cmds;
- }
+ && default_file != 0 && default_file->cmds != 0)
+ {
+ DBF (DB_IMPLICIT, _("Using default commands for '%s'.\n"));
+ file->cmds = default_file->cmds;
+ }
check_renamed (file);
mtime = file_mtime (file);
@@ -1031,70 +1034,77 @@ check_dep (struct file *file, unsigned int depth,
if (mtime != NONEXISTENT_MTIME && mtime > this_mtime)
/* If the intermediate file actually exists and is newer, then we
should remake from it. */
- *must_make_ptr = 1;
+ *must_make_ptr = 1;
else
- {
+ {
/* Otherwise, update all non-intermediate files we depend on, if
necessary, and see whether any of them is more recent than the
file on whose behalf we are checking. */
- struct dep *ld;
+ struct dep *ld;
int deps_running = 0;
/* If this target is not running, set it's state so that we check it
fresh. It could be it was checked as part of an order-only
prerequisite and so wasn't rebuilt then, but should be now. */
if (file->command_state != cs_running)
- set_command_state (file, cs_not_started);
+ {
+ /* If the target was waiting for a dependency it has to be
+ reconsidered, as that dependency might have finished. */
+ if (file->command_state == cs_deps_running)
+ file->considered = !considered;
+
+ set_command_state (file, cs_not_started);
+ }
- ld = 0;
- d = file->deps;
- while (d != 0)
- {
+ ld = 0;
+ d = file->deps;
+ while (d != 0)
+ {
int maybe_make;
- if (is_updating (d->file))
- {
- error (NILF, _("Circular %s <- %s dependency dropped."),
- file->name, d->file->name);
- if (ld == 0)
- {
- file->deps = d->next;
+ if (is_updating (d->file))
+ {
+ error (NILF, _("Circular %s <- %s dependency dropped."),
+ file->name, d->file->name);
+ if (ld == 0)
+ {
+ file->deps = d->next;
free_dep (d);
- d = file->deps;
- }
- else
- {
- ld->next = d->next;
+ d = file->deps;
+ }
+ else
+ {
+ ld->next = d->next;
free_dep (d);
- d = ld->next;
- }
- continue;
- }
+ d = ld->next;
+ }
+ continue;
+ }
- d->file->parent = file;
+ d->file->parent = file;
maybe_make = *must_make_ptr;
- dep_status |= check_dep (d->file, depth, this_mtime,
+ dep_status |= check_dep (d->file, depth, this_mtime,
&maybe_make);
if (! d->ignore_mtime)
*must_make_ptr = maybe_make;
- check_renamed (d->file);
- if (dep_status != 0 && !keep_going_flag)
- break;
+ check_renamed (d->file);
+ if (dep_status != 0 && !keep_going_flag)
+ break;
- if (d->file->command_state == cs_running
- || d->file->command_state == cs_deps_running)
- deps_running = 1;
+ if (d->file->command_state == cs_running
+ || d->file->command_state == cs_deps_running)
+ deps_running = 1;
- ld = d;
- d = d->next;
- }
+ ld = d;
+ d = d->next;
+ }
if (deps_running)
/* Record that some of FILE's deps are still being made.
This tells the upper levels to wait on processing it until the
commands are finished. */
set_command_state (file, cs_deps_running);
- }
+ }
}
finish_updating (file);
@@ -1103,56 +1113,61 @@ check_dep (struct file *file, unsigned int depth,
return dep_status;
}
-/* Touch FILE. Return zero if successful, one if not. */
+/* Touch FILE. Return us_success if successful, us_failed if not. */
-#define TOUCH_ERROR(call) return (perror_with_name (call, file->name), 1)
+#define TOUCH_ERROR(call) do{ perror_with_name ((call), file->name); \
+ return us_failed; }while(0)
-static int
+static enum update_status
touch_file (struct file *file)
{
if (!silent_flag)
message (0, "touch %s", file->name);
-#ifndef NO_ARCHIVES
+ /* Print-only (-n) takes precedence over touch (-t). */
+ if (just_print_flag)
+ return us_success;
+
+#ifndef NO_ARCHIVES
if (ar_name (file->name))
- return ar_touch (file->name);
+ return ar_touch (file->name) ? us_failed : us_success;
else
#endif
{
int fd = open (file->name, O_RDWR | O_CREAT, 0666);
if (fd < 0)
- TOUCH_ERROR ("touch: open: ");
+ TOUCH_ERROR ("touch: open: ");
else
- {
- struct stat statbuf;
- char buf = 'x';
+ {
+ struct stat statbuf;
+ char buf = 'x';
int e;
EINTRLOOP (e, fstat (fd, &statbuf));
- if (e < 0)
- TOUCH_ERROR ("touch: fstat: ");
- /* Rewrite character 0 same as it already is. */
- if (read (fd, &buf, 1) < 0)
- TOUCH_ERROR ("touch: read: ");
- if (lseek (fd, 0L, 0) < 0L)
- TOUCH_ERROR ("touch: lseek: ");
- if (write (fd, &buf, 1) < 0)
- TOUCH_ERROR ("touch: write: ");
- /* If file length was 0, we just
- changed it, so change it back. */
- if (statbuf.st_size == 0)
- {
- (void) close (fd);
- fd = open (file->name, O_RDWR | O_TRUNC, 0666);
- if (fd < 0)
- TOUCH_ERROR ("touch: open: ");
- }
- (void) close (fd);
- }
+ if (e < 0)
+ TOUCH_ERROR ("touch: fstat: ");
+ /* Rewrite character 0 same as it already is. */
+ if (read (fd, &buf, 1) < 0)
+ TOUCH_ERROR ("touch: read: ");
+ if (lseek (fd, 0L, 0) < 0L)
+ TOUCH_ERROR ("touch: lseek: ");
+ if (write (fd, &buf, 1) < 0)
+ TOUCH_ERROR ("touch: write: ");
+ /* If file length was 0, we just
+ changed it, so change it back. */
+ if (statbuf.st_size == 0)
+ {
+ (void) close (fd);
+ fd = open (file->name, O_RDWR | O_TRUNC, 0666);
+ if (fd < 0)
+ TOUCH_ERROR ("touch: open: ");
+ }
+ (void) close (fd);
+ }
}
- return 0;
+ return us_success;
}
/* Having checked and updated the dependencies of FILE,
@@ -1165,18 +1180,18 @@ remake_file (struct file *file)
if (file->cmds == 0)
{
if (file->phony)
- /* Phony target. Pretend it succeeded. */
- file->update_status = 0;
+ /* Phony target. Pretend it succeeded. */
+ file->update_status = us_success;
else if (file->is_target)
- /* This is a nonexistent target file we cannot make.
- Pretend it was successfully remade. */
- file->update_status = 0;
+ /* This is a nonexistent target file we cannot make.
+ Pretend it was successfully remade. */
+ file->update_status = us_success;
else
{
/* This is a dependency file we cannot remake. Fail. */
if (!rebuilding_makefiles || !file->dontcare)
complain (file);
- file->update_status = 2;
+ file->update_status = us_failed;
}
}
else
@@ -1185,20 +1200,20 @@ remake_file (struct file *file)
/* The normal case: start some commands. */
if (!touch_flag || file->cmds->any_recurse)
- {
- execute_file_commands (file);
- return;
- }
+ {
+ execute_file_commands (file);
+ return;
+ }
/* This tells notice_finished_file it is ok to touch the file. */
- file->update_status = 0;
+ file->update_status = us_success;
}
/* This does the touching under -t. */
notice_finished_file (file);
}
-/* Return the mtime of a file, given a `struct file'.
+/* Return the mtime of a file, given a 'struct file'.
Caches the time in the struct file to avoid excess stat calls.
If the file is not found, and SEARCH is nonzero, VPATH searching and
@@ -1213,7 +1228,7 @@ f_mtime (struct file *file, int search)
/* File's mtime is not known; must get it from the system. */
-#ifndef NO_ARCHIVES
+#ifndef NO_ARCHIVES
if (ar_name (file->name))
{
/* This file is an archive-member reference. */
@@ -1226,46 +1241,46 @@ f_mtime (struct file *file, int search)
ar_parse_name (file->name, &arname, &memname);
/* Find the modification time of the archive itself.
- Also allow for its name to be changed via VPATH search. */
+ Also allow for its name to be changed via VPATH search. */
arfile = lookup_file (arname);
if (arfile == 0)
arfile = enter_file (strcache_add (arname));
mtime = f_mtime (arfile, search);
check_renamed (arfile);
if (search && strcmp (arfile->hname, arname))
- {
- /* The archive's name has changed.
- Change the archive-member reference accordingly. */
+ {
+ /* The archive's name has changed.
+ Change the archive-member reference accordingly. */
char *name;
- unsigned int arlen, memlen;
+ unsigned int arlen, memlen;
- arlen = strlen (arfile->hname);
- memlen = strlen (memname);
+ arlen = strlen (arfile->hname);
+ memlen = strlen (memname);
- name = xmalloc (arlen + 1 + memlen + 2);
- memcpy (name, arfile->hname, arlen);
- name[arlen] = '(';
- memcpy (name + arlen + 1, memname, memlen);
- name[arlen + 1 + memlen] = ')';
- name[arlen + 1 + memlen + 1] = '\0';
+ name = alloca (arlen + 1 + memlen + 2);
+ memcpy (name, arfile->hname, arlen);
+ name[arlen] = '(';
+ memcpy (name + arlen + 1, memname, memlen);
+ name[arlen + 1 + memlen] = ')';
+ name[arlen + 1 + memlen + 1] = '\0';
/* If the archive was found with GPATH, make the change permanent;
otherwise defer it until later. */
if (arfile->name == arfile->hname)
- rename_file (file, name);
+ rename_file (file, strcache_add (name));
else
- rehash_file (file, name);
+ rehash_file (file, strcache_add (name));
check_renamed (file);
- }
+ }
free (arname);
file->low_resolution_time = 1;
if (mtime == NONEXISTENT_MTIME)
- /* The archive doesn't exist, so its members don't exist either. */
- return NONEXISTENT_MTIME;
+ /* The archive doesn't exist, so its members don't exist either. */
+ return NONEXISTENT_MTIME;
member_date = ar_member_date (file->hname);
mtime = (member_date == (time_t) -1
@@ -1278,37 +1293,37 @@ f_mtime (struct file *file, int search)
mtime = name_mtime (file->name);
if (mtime == NONEXISTENT_MTIME && search && !file->ignore_vpath)
- {
- /* If name_mtime failed, search VPATH. */
- const char *name = vpath_search (file->name, &mtime, NULL, NULL);
- if (name
- /* Last resort, is it a library (-lxxx)? */
- || (file->name[0] == '-' && file->name[1] == 'l'
- && (name = library_search (file->name, &mtime)) != 0))
- {
- if (mtime != UNKNOWN_MTIME)
- /* vpath_search and library_search store UNKNOWN_MTIME
- if they didn't need to do a stat call for their work. */
- file->last_mtime = mtime;
+ {
+ /* If name_mtime failed, search VPATH. */
+ const char *name = vpath_search (file->name, &mtime, NULL, NULL);
+ if (name
+ /* Last resort, is it a library (-lxxx)? */
+ || (file->name[0] == '-' && file->name[1] == 'l'
+ && (name = library_search (file->name, &mtime)) != 0))
+ {
+ if (mtime != UNKNOWN_MTIME)
+ /* vpath_search and library_search store UNKNOWN_MTIME
+ if they didn't need to do a stat call for their work. */
+ file->last_mtime = mtime;
/* If we found it in VPATH, see if it's in GPATH too; if so,
change the name right now; if not, defer until after the
dependencies are updated. */
- if (gpath_search (name, strlen(name) - strlen(file->name) - 1))
+ if (gpath_search (name, strlen (name) - strlen (file->name) - 1))
{
rename_file (file, name);
check_renamed (file);
return file_mtime (file);
}
- rehash_file (file, name);
- check_renamed (file);
+ rehash_file (file, name);
+ check_renamed (file);
/* If the result of a vpath search is -o or -W, preserve it.
Otherwise, find the mtime of the resulting file. */
if (mtime != OLD_MTIME && mtime != NEW_MTIME)
mtime = name_mtime (name);
- }
- }
+ }
+ }
}
/* Files can have bogus timestamps that nothing newly made will be
@@ -1354,7 +1369,7 @@ f_mtime (struct file *file, int search)
if (adjusted_now < adjusted_mtime)
{
#ifdef NO_FLOAT
- error (NILF, _("Warning: File `%s' has modification time in the future"),
+ error (NILF, _("Warning: File '%s' has modification time in the future"),
file->name);
#else
double from_now =
@@ -1367,7 +1382,7 @@ f_mtime (struct file *file, int search)
sprintf (from_now_string, "%lu", (unsigned long) from_now);
else
sprintf (from_now_string, "%.2g", from_now);
- error (NILF, _("Warning: File `%s' has modification time %s s in the future"),
+ error (NILF, _("Warning: File '%s' has modification time %s s in the future"),
file->name, from_now_string);
#endif
clock_skew_detected = 1;
@@ -1382,14 +1397,13 @@ f_mtime (struct file *file, int search)
do
{
/* If this file is not implicit but it is intermediate then it was
- made so by the .INTERMEDIATE target. If this file has never
- been built by us but was found now, it existed before make
- started. So, turn off the intermediate bit so make doesn't
- delete it, since it didn't create it. */
+ made so by the .INTERMEDIATE target. If this file has never
+ been built by us but was found now, it existed before make
+ started. So, turn off the intermediate bit so make doesn't
+ delete it, since it didn't create it. */
if (mtime != NONEXISTENT_MTIME && file->command_state == cs_not_started
- && file->command_state == cs_not_started
- && !file->tried_implicit && file->intermediate)
- file->intermediate = 0;
+ && !file->tried_implicit && file->intermediate)
+ file->intermediate = 0;
file->last_mtime = mtime;
file = file->prev;
@@ -1519,7 +1533,7 @@ library_search (const char *lib, FILE_TIMESTAMP *mtime_ptr)
*/
#define LIBDIR "."
#endif
- LIBDIR, /* Defined by configuration. */
+ LIBDIR, /* Defined by configuration. */
0
};
@@ -1534,8 +1548,7 @@ library_search (const char *lib, FILE_TIMESTAMP *mtime_ptr)
unsigned int liblen;
/* Information about the earliest (in the vpath sequence) match. */
- unsigned int best_vpath, best_path;
- unsigned int std_dirs = 0;
+ unsigned int best_vpath = 0, best_path = 0;
char **dp;
@@ -1554,38 +1567,39 @@ library_search (const char *lib, FILE_TIMESTAMP *mtime_ptr)
static char *buf = NULL;
static unsigned int buflen = 0;
static int libdir_maxlen = -1;
+ static unsigned int std_dirs = 0;
char *libbuf = variable_expand ("");
/* Expand the pattern using LIB as a replacement. */
{
- char c = p[len];
- char *p3, *p4;
-
- p[len] = '\0';
- p3 = find_percent (p);
- if (!p3)
- {
- /* Give a warning if there is no pattern. */
- error (NILF, _(".LIBPATTERNS element `%s' is not a pattern"), p);
+ char c = p[len];
+ char *p3, *p4;
+
+ p[len] = '\0';
+ p3 = find_percent (p);
+ if (!p3)
+ {
+ /* Give a warning if there is no pattern. */
+ error (NILF, _(".LIBPATTERNS element '%s' is not a pattern"), p);
p[len] = c;
- continue;
- }
- p4 = variable_buffer_output (libbuf, p, p3-p);
- p4 = variable_buffer_output (p4, lib, liblen);
- p4 = variable_buffer_output (p4, p3+1, len - (p3-p));
- p[len] = c;
+ continue;
+ }
+ p4 = variable_buffer_output (libbuf, p, p3-p);
+ p4 = variable_buffer_output (p4, lib, liblen);
+ p4 = variable_buffer_output (p4, p3+1, len - (p3-p));
+ p[len] = c;
}
- /* Look first for `libNAME.a' in the current directory. */
+ /* Look first for 'libNAME.a' in the current directory. */
mtime = name_mtime (libbuf);
if (mtime != NONEXISTENT_MTIME)
- {
- if (mtime_ptr != 0)
- *mtime_ptr = mtime;
- file = strcache_add (libbuf);
+ {
+ if (mtime_ptr != 0)
+ *mtime_ptr = mtime;
+ file = strcache_add (libbuf);
/* This by definition will have the best index, so stop now. */
break;
- }
+ }
/* Now try VPATH search on that. */
@@ -1622,7 +1636,7 @@ library_search (const char *lib, FILE_TIMESTAMP *mtime_ptr)
std_dirs++;
}
buflen = strlen (libbuf);
- buf = xmalloc(libdir_maxlen + buflen + 2);
+ buf = xmalloc (libdir_maxlen + buflen + 2);
}
else if (buflen < strlen (libbuf))
{
@@ -1636,11 +1650,11 @@ library_search (const char *lib, FILE_TIMESTAMP *mtime_ptr)
unsigned int vpath_index = ~((unsigned int)0) - std_dirs;
for (dp = dirs; *dp != 0; ++dp)
- {
+ {
sprintf (buf, "%s/%s", *dp, libbuf);
mtime = name_mtime (buf);
if (mtime != NONEXISTENT_MTIME)
- {
+ {
if (file == 0 || vpath_index < best_vpath)
{
file = strcache_add (buf);
diff --git a/remote-cstms.c b/remote-cstms.c
index a0c5cb7..8d6c635 100644
--- a/remote-cstms.c
+++ b/remote-cstms.c
@@ -3,9 +3,7 @@
Please do not send bug reports or questions about it to
the Make maintainers.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -20,8 +18,7 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
-#include "job.h"
+#include "makeint.h"
#include "filedef.h"
#include "commands.h"
#include "job.h"
@@ -34,9 +31,9 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
char *remote_description = "Customs";
-/* File name of the Customs `export' client command.
+/* File name of the Customs 'export' client command.
A full path name can be used to avoid some path-searching overhead. */
-#define EXPORT_COMMAND "/usr/local/bin/export"
+#define EXPORT_COMMAND "/usr/local/bin/export"
/* ExportPermit gotten by start_remote_job_p, and used by start_remote_job. */
static ExportPermit permit;
@@ -78,11 +75,11 @@ start_remote_job_p (int first_p)
}
/* For secure Customs, make is installed setuid root and
- Customs requires a privileged source port be used. */
+ Customs requires a privileged source port be used. */
make_access ();
if (ISDB (DB_JOBS))
- Rpc_Debug(1);
+ Rpc_Debug (1);
/* Ping the daemon once to see if it is there. */
inited = Customs_Ping () == RPC_SUCCESS ? 1 : -1;
@@ -91,20 +88,20 @@ start_remote_job_p (int first_p)
user_access ();
if (starting_directory == 0)
- /* main couldn't figure it out. */
- inited = -1;
+ /* main couldn't figure it out. */
+ inited = -1;
else
- {
- /* Normalize the current directory path name to something
- that should work on all machines exported to. */
-
- normalized_cwd = xmalloc (GET_PATH_MAX);
- strcpy (normalized_cwd, starting_directory);
- if (Customs_NormPath (normalized_cwd, GET_PATH_MAX) < 0)
- /* Path normalization failure means using Customs
- won't work, but it's not really an error. */
- inited = -1;
- }
+ {
+ /* Normalize the current directory path name to something
+ that should work on all machines exported to. */
+
+ normalized_cwd = xmalloc (GET_PATH_MAX);
+ strcpy (normalized_cwd, starting_directory);
+ if (Customs_NormPath (normalized_cwd, GET_PATH_MAX) < 0)
+ /* Path normalization failure means using Customs
+ won't work, but it's not really an error. */
+ inited = -1;
+ }
}
if (inited < 0)
@@ -112,7 +109,7 @@ start_remote_job_p (int first_p)
njobs = job_slots_used;
if (!first_p)
- njobs -= 1; /* correction for being called from reap_children() */
+ njobs -= 1; /* correction for being called from reap_children() */
/* the first job should run locally, or, if the -l flag is given, we use
that as clue as to how many local jobs should be scheduled locally */
@@ -173,9 +170,9 @@ start_remote_job (char **argv, char **envp, int stdin_fd,
/* Create a WayBill to give to the server. */
len = Customs_MakeWayBill (&permit, normalized_cwd, argv[0], argv,
- envp, retport, waybill);
+ envp, retport, waybill);
- /* Modify the waybill as if the remote child had done `child_access ()'. */
+ /* Modify the waybill as if the remote child had done 'child_access ()'. */
{
WayBill *wb = (WayBill *) waybill;
wb->ruid = wb->euid;
@@ -189,11 +186,11 @@ start_remote_job (char **argv, char **envp, int stdin_fd,
sin.sin_port = htons (Customs_Port ());
sin.sin_addr = permit.addr;
status = Rpc_Call (sock, &sin, (Rpc_Proc) CUSTOMS_IMPORT,
- len, (Rpc_Opaque) waybill,
- sizeof(msg), (Rpc_Opaque) msg,
- 1, &timeout);
+ len, (Rpc_Opaque) waybill,
+ sizeof (msg), (Rpc_Opaque) msg,
+ 1, &timeout);
- host = gethostbyaddr((char *)&permit.addr, sizeof(permit.addr), AF_INET);
+ host = gethostbyaddr ((char *)&permit.addr, sizeof(permit.addr), AF_INET);
if (status != RPC_SUCCESS)
{
@@ -216,26 +213,26 @@ start_remote_job (char **argv, char **envp, int stdin_fd,
else
{
error (NILF, "*** exported to %s (id %u)",
- host ? host->h_name : inet_ntoa (permit.addr),
- permit.id);
+ host ? host->h_name : inet_ntoa (permit.addr),
+ permit.id);
}
fflush (stdout);
fflush (stderr);
- pid = vfork ();
+ pid = fork ();
if (pid < 0)
{
/* The fork failed! */
- perror_with_name ("vfork", "");
+ perror_with_name ("fork", "");
return 1;
}
else if (pid == 0)
{
- /* Child side. Run `export' to handle the connection. */
+ /* Child side. Run 'export' to handle the connection. */
static char sock_buf[20], retsock_buf[20], id_buf[20];
static char *new_argv[6] =
- { EXPORT_COMMAND, "-id", sock_buf, retsock_buf, id_buf, 0 };
+ { EXPORT_COMMAND, "-id", sock_buf, retsock_buf, id_buf, 0 };
/* Set up the arguments. */
(void) sprintf (sock_buf, "%d", sock);
@@ -244,7 +241,7 @@ start_remote_job (char **argv, char **envp, int stdin_fd,
/* Get the right stdin. */
if (stdin_fd != 0)
- (void) dup2 (stdin_fd, 0);
+ (void) dup2 (stdin_fd, 0);
/* Unblock signals in the child. */
unblock_sigs ();
@@ -253,7 +250,7 @@ start_remote_job (char **argv, char **envp, int stdin_fd,
exec_command (new_argv, envp);
}
- /* Parent side. Return the `export' process's ID. */
+ /* Parent side. Return the 'export' process's ID. */
(void) close (retsock);
(void) close (sock);
*is_remote = 0;
diff --git a/remote-stub.c b/remote-stub.c
index e58b72c..45c3a7c 100644
--- a/remote-stub.c
+++ b/remote-stub.c
@@ -1,7 +1,5 @@
/* Template for the remote job exportation interface to GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,7 +14,7 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
#include "filedef.h"
#include "job.h"
#include "commands.h"
diff --git a/rule.c b/rule.c
index a966cc9..cb35537 100644
--- a/rule.c
+++ b/rule.c
@@ -1,7 +1,5 @@
/* Pattern and suffix rule internals for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,12 +14,12 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
#include <assert.h>
-#include "dep.h"
#include "filedef.h"
+#include "dep.h"
#include "job.h"
#include "commands.h"
#include "variable.h"
@@ -72,7 +70,7 @@ count_implicit_rule_limits (void)
{
char *name;
int namelen;
- struct rule *rule, *lastrule;
+ struct rule *rule;
num_pattern_rules = max_pattern_targets = max_pattern_deps = 0;
max_pattern_dep_length = 0;
@@ -80,7 +78,6 @@ count_implicit_rule_limits (void)
name = 0;
namelen = 0;
rule = pattern_rules;
- lastrule = 0;
while (rule != 0)
{
unsigned int ndeps = 0;
@@ -90,10 +87,10 @@ count_implicit_rule_limits (void)
++num_pattern_rules;
if (rule->num > max_pattern_targets)
- max_pattern_targets = rule->num;
+ max_pattern_targets = rule->num;
for (dep = rule->deps; dep != 0; dep = dep->next)
- {
+ {
const char *dname = dep_name (dep);
unsigned int len = strlen (dname);
@@ -109,38 +106,37 @@ count_implicit_rule_limits (void)
#endif
ndeps++;
- if (len > max_pattern_dep_length)
- max_pattern_dep_length = len;
-
- if (p != 0 && p2 > p)
- {
- /* There is a slash before the % in the dep name.
- Extract the directory name. */
- if (p == dname)
- ++p;
- if (p - dname > namelen)
- {
- namelen = p - dname;
- name = xrealloc (name, namelen + 1);
- }
- memcpy (name, dname, p - dname);
- name[p - dname] = '\0';
-
- /* In the deps of an implicit rule the `changed' flag
- actually indicates that the dependency is in a
- nonexistent subdirectory. */
-
- dep->changed = !dir_file_exists_p (name, "");
- }
- else
- /* This dependency does not reside in a subdirectory. */
- dep->changed = 0;
- }
+ if (len > max_pattern_dep_length)
+ max_pattern_dep_length = len;
+
+ if (p != 0 && p2 > p)
+ {
+ /* There is a slash before the % in the dep name.
+ Extract the directory name. */
+ if (p == dname)
+ ++p;
+ if (p - dname > namelen)
+ {
+ namelen = p - dname;
+ name = xrealloc (name, namelen + 1);
+ }
+ memcpy (name, dname, p - dname);
+ name[p - dname] = '\0';
+
+ /* In the deps of an implicit rule the 'changed' flag
+ actually indicates that the dependency is in a
+ nonexistent subdirectory. */
+
+ dep->changed = !dir_file_exists_p (name, "");
+ }
+ else
+ /* This dependency does not reside in a subdirectory. */
+ dep->changed = 0;
+ }
if (ndeps > max_pattern_deps)
- max_pattern_deps = ndeps;
+ max_pattern_deps = ndeps;
- lastrule = rule;
rule = next;
}
@@ -151,7 +147,7 @@ count_implicit_rule_limits (void)
/* Create a pattern rule from a suffix rule.
TARGET is the target suffix; SOURCE is the source suffix.
CMDS are the commands.
- If TARGET is nil, it means the target pattern should be `(%.o)'.
+ If TARGET is nil, it means the target pattern should be '(%.o)'.
If SOURCE is nil, it means there should be no deps. */
static void
@@ -166,8 +162,8 @@ convert_suffix_rule (const char *target, const char *source,
if (target == 0)
{
- /* Special case: TARGET being nil means we are defining a `.X.a' suffix
- rule; the target pattern is always `(%.o)'. */
+ /* Special case: TARGET being nil means we are defining a '.X.a' suffix
+ rule; the target pattern is always '(%.o)'. */
#ifdef VMS
*names = strcache_add_len ("(%.obj)", 7);
#else
@@ -221,7 +217,7 @@ convert_to_pattern (void)
{
unsigned int l = strlen (dep_name (d));
if (l > maxsuffix)
- maxsuffix = l;
+ maxsuffix = l;
}
/* Space to construct the suffix rule target name. */
@@ -232,12 +228,12 @@ convert_to_pattern (void)
unsigned int slen;
/* Make a rule that is just the suffix, with no deps or commands.
- This rule exists solely to disqualify match-anything rules. */
+ This rule exists solely to disqualify match-anything rules. */
convert_suffix_rule (dep_name (d), 0, 0);
if (d->file->cmds != 0)
- /* Record a pattern for this suffix's null-suffix rule. */
- convert_suffix_rule ("", dep_name (d), d->file->cmds);
+ /* Record a pattern for this suffix's null-suffix rule. */
+ convert_suffix_rule ("", dep_name (d), d->file->cmds);
/* Add every other suffix to this one and see if it exists as a
two-suffix rule. */
@@ -245,32 +241,32 @@ convert_to_pattern (void)
memcpy (rulename, dep_name (d), slen);
for (d2 = suffix_file->deps; d2 != 0; d2 = d2->next)
- {
+ {
struct file *f;
unsigned int s2len;
- s2len = strlen (dep_name (d2));
+ s2len = strlen (dep_name (d2));
/* Can't build something from itself. */
- if (slen == s2len && streq (dep_name (d), dep_name (d2)))
- continue;
-
- memcpy (rulename + slen, dep_name (d2), s2len + 1);
- f = lookup_file (rulename);
- if (f == 0 || f->cmds == 0)
- continue;
-
- if (s2len == 2 && rulename[slen] == '.' && rulename[slen + 1] == 'a')
- /* A suffix rule `.X.a:' generates the pattern rule `(%.o): %.X'.
- It also generates a normal `%.a: %.X' rule below. */
- convert_suffix_rule (NULL, /* Indicates `(%.o)'. */
- dep_name (d),
- f->cmds);
-
- /* The suffix rule `.X.Y:' is converted
- to the pattern rule `%.Y: %.X'. */
- convert_suffix_rule (dep_name (d2), dep_name (d), f->cmds);
- }
+ if (slen == s2len && streq (dep_name (d), dep_name (d2)))
+ continue;
+
+ memcpy (rulename + slen, dep_name (d2), s2len + 1);
+ f = lookup_file (rulename);
+ if (f == 0 || f->cmds == 0)
+ continue;
+
+ if (s2len == 2 && rulename[slen] == '.' && rulename[slen + 1] == 'a')
+ /* A suffix rule '.X.a:' generates the pattern rule '(%.o): %.X'.
+ It also generates a normal '%.a: %.X' rule below. */
+ convert_suffix_rule (NULL, /* Indicates '(%.o)'. */
+ dep_name (d),
+ f->cmds);
+
+ /* The suffix rule '.X.Y:' is converted
+ to the pattern rule '%.Y: %.X'. */
+ convert_suffix_rule (dep_name (d2), dep_name (d), f->cmds);
+ }
}
}
@@ -298,42 +294,42 @@ new_pattern_rule (struct rule *rule, int override)
for (r = pattern_rules; r != 0; lastrule = r, r = r->next)
for (i = 0; i < rule->num; ++i)
{
- for (j = 0; j < r->num; ++j)
- if (!streq (rule->targets[i], r->targets[j]))
- break;
+ for (j = 0; j < r->num; ++j)
+ if (!streq (rule->targets[i], r->targets[j]))
+ break;
/* If all the targets matched... */
- if (j == r->num)
- {
- struct dep *d, *d2;
- for (d = rule->deps, d2 = r->deps;
- d != 0 && d2 != 0; d = d->next, d2 = d2->next)
- if (!streq (dep_name (d), dep_name (d2)))
- break;
- if (d == 0 && d2 == 0)
- {
- /* All the dependencies matched. */
- if (override)
- {
- /* Remove the old rule. */
- freerule (r, lastrule);
- /* Install the new one. */
- if (pattern_rules == 0)
- pattern_rules = rule;
- else
- last_pattern_rule->next = rule;
- last_pattern_rule = rule;
-
- /* We got one. Stop looking. */
- goto matched;
- }
- else
- {
- /* The old rule stays intact. Destroy the new one. */
- freerule (rule, (struct rule *) 0);
- return 0;
- }
- }
- }
+ if (j == r->num)
+ {
+ struct dep *d, *d2;
+ for (d = rule->deps, d2 = r->deps;
+ d != 0 && d2 != 0; d = d->next, d2 = d2->next)
+ if (!streq (dep_name (d), dep_name (d2)))
+ break;
+ if (d == 0 && d2 == 0)
+ {
+ /* All the dependencies matched. */
+ if (override)
+ {
+ /* Remove the old rule. */
+ freerule (r, lastrule);
+ /* Install the new one. */
+ if (pattern_rules == 0)
+ pattern_rules = rule;
+ else
+ last_pattern_rule->next = rule;
+ last_pattern_rule = rule;
+
+ /* We got one. Stop looking. */
+ goto matched;
+ }
+ else
+ {
+ /* The old rule stays intact. Destroy the new one. */
+ freerule (rule, (struct rule *) 0);
+ return 0;
+ }
+ }
+ }
}
matched:;
@@ -342,9 +338,9 @@ new_pattern_rule (struct rule *rule, int override)
{
/* There was no rule to replace. */
if (pattern_rules == 0)
- pattern_rules = rule;
+ pattern_rules = rule;
else
- last_pattern_rule->next = rule;
+ last_pattern_rule->next = rule;
last_pattern_rule = rule;
}
@@ -355,7 +351,7 @@ new_pattern_rule (struct rule *rule, int override)
/* Install an implicit pattern rule based on the three text strings
in the structure P points to. These strings come from one of
the arrays of default implicit pattern rules.
- TERMINAL specifies what the `terminal' field of the rule should be. */
+ TERMINAL specifies what the 'terminal' field of the rule should be. */
void
install_pattern_rule (struct pspec *p, int terminal)
@@ -377,7 +373,7 @@ install_pattern_rule (struct pspec *p, int terminal)
++r->suffixes[0];
ptr = p->dep;
- r->deps = PARSE_FILE_SEQ (&ptr, struct dep, '\0', NULL, 0);
+ r->deps = PARSE_SIMPLE_SEQ (&ptr, struct dep);
if (new_pattern_rule (r, 0))
{
@@ -386,9 +382,10 @@ install_pattern_rule (struct pspec *p, int terminal)
r->cmds->fileinfo.filenm = 0;
r->cmds->fileinfo.lineno = 0;
/* These will all be string literals, but we malloc space for them
- anyway because somebody might want to free them later. */
+ anyway because somebody might want to free them later. */
r->cmds->commands = xstrdup (p->commands);
r->cmds->command_lines = 0;
+ r->cmds->recipe_prefix = RECIPEPREFIX_DEFAULT;
}
}
@@ -412,13 +409,13 @@ freerule (struct rule *rule, struct rule *lastrule)
/* We can't free the storage for the commands because there
are ways that they could be in more than one place:
* If the commands came from a suffix rule, they could also be in
- the `struct file's for other suffix rules or plain targets given
+ the 'struct file's for other suffix rules or plain targets given
on the same makefile line.
* If two suffixes that together make a two-suffix rule were each
given twice in the .SUFFIXES list, and in the proper order, two
identical pattern rules would be created and the second one would
- be discarded here, but both would contain the same `struct commands'
- pointer from the `struct file' for the suffix rule. */
+ be discarded here, but both would contain the same 'struct commands'
+ pointer from the 'struct file' for the suffix rule. */
free (rule);
@@ -471,7 +468,7 @@ create_pattern_rule (const char **targets, const char **target_percents,
/* Print the data base of rules. */
-static void /* Useful to call from gdb. */
+static void /* Useful to call from gdb. */
print_rule (struct rule *r)
{
unsigned int i;
@@ -507,7 +504,7 @@ print_rule_data_base (void)
print_rule (r);
if (r->terminal)
- ++terminal;
+ ++terminal;
}
if (rules == 0)
@@ -515,12 +512,12 @@ print_rule_data_base (void)
else
{
printf (_("\n# %u implicit rules, %u"), rules, terminal);
-#ifndef NO_FLOAT
+#ifndef NO_FLOAT
printf (" (%.1f%%)", (double) terminal / (double) rules * 100.0);
#else
{
- int f = (terminal * 1000 + 5) / rules;
- printf (" (%d.%d%%)", f/10, f%10);
+ int f = (terminal * 1000 + 5) / rules;
+ printf (" (%d.%d%%)", f/10, f%10);
}
#endif
puts (_(" terminal."));
diff --git a/rule.h b/rule.h
index b119d21..3982639 100644
--- a/rule.h
+++ b/rule.h
@@ -1,7 +1,5 @@
/* Definitions for using pattern rules in GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -22,14 +20,14 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
struct rule
{
struct rule *next;
- const char **targets; /* Targets of the rule. */
- unsigned int *lens; /* Lengths of each target. */
- const char **suffixes; /* Suffixes (after `%') of each target. */
- struct dep *deps; /* Dependencies of the rule. */
- struct commands *cmds; /* Commands to execute. */
+ const char **targets; /* Targets of the rule. */
+ unsigned int *lens; /* Lengths of each target. */
+ const char **suffixes; /* Suffixes (after '%') of each target. */
+ struct dep *deps; /* Dependencies of the rule. */
+ struct commands *cmds; /* Commands to execute. */
unsigned short num; /* Number of targets. */
- char terminal; /* If terminal (double-colon). */
- char in_use; /* If in use by a parent pattern_search. */
+ char terminal; /* If terminal (double-colon). */
+ char in_use; /* If in use by a parent pattern_search. */
};
/* For calling install_pattern_rule. */
diff --git a/signame.c b/signame.c
index 6f3383d..59dc949 100644
--- a/signame.c
+++ b/signame.c
@@ -1,7 +1,5 @@
/* Convert between signal names and numbers.
-Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-Foundation, Inc.
+Copyright (C) 1990-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,7 +14,7 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
/* If the system provides strsignal, we don't need it. */
@@ -29,11 +27,11 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
#if !HAVE_DECL_SYS_SIGLIST
/* Some systems do not define NSIG in <signal.h>. */
-#ifndef NSIG
-#ifdef _NSIG
-#define NSIG _NSIG
+#ifndef NSIG
+#ifdef _NSIG
+#define NSIG _NSIG
#else
-#define NSIG 32
+#define NSIG 32
#endif
#endif
@@ -194,10 +192,10 @@ signame_init (void)
init_sig (SIGURG, "URG", _("Urgent I/O condition"));
#endif
#if defined (SIGIO)
- /* "I/O pending" has also been suggested. A disadvantage is
- that signal only happens when the process has
- asked for it, not everytime I/O is pending. Another disadvantage
- is the confusion from giving it a different name than under Unix. */
+ /* "I/O pending" has also been suggested. A disadvantage is that signal
+ only happens when the process has asked for it, not every time I/O is
+ pending. Another disadvantage is the confusion from giving it a
+ different name than under Unix. */
init_sig (SIGIO, "IO", _("I/O possible"));
#endif
#if defined (SIGWIND)
@@ -246,7 +244,7 @@ strsignal (int sig)
# endif
#endif
- if (sig > 0 || sig < NSIG)
+ if (sig > 0 && sig < NSIG)
return (char *) sys_siglist[sig];
sprintf (buf, "Signal %d", sig);
diff --git a/strcache.c b/strcache.c
index 830ec7d..ff6a2d1 100644
--- a/strcache.c
+++ b/strcache.c
@@ -1,5 +1,5 @@
/* Constant string caching for GNU Make.
-Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 2006-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -14,31 +14,42 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
+#include <stddef.h>
#include <assert.h>
#include "hash.h"
-/* The size (in bytes) of each cache buffer.
- Try to pick something that will map well into the heap. */
-#define CACHE_BUFFER_SIZE (8192 - 16)
-
-
/* A string cached here will never be freed, so we don't need to worry about
reference counting. We just store the string, and then remember it in a
hash so it can be looked up again. */
+typedef unsigned short int sc_buflen_t;
+
struct strcache {
- struct strcache *next; /* The next block of strings. */
- char *end; /* Pointer to the beginning of the free space. */
- int count; /* # of strings in this buffer (for stats). */
- int bytesfree; /* The amount of the buffer that is free. */
+ struct strcache *next; /* The next block of strings. Must be first! */
+ sc_buflen_t end; /* Offset to the beginning of free space. */
+ sc_buflen_t bytesfree; /* Free space left in this buffer. */
+ sc_buflen_t count; /* # of strings in this buffer (for stats). */
char buffer[1]; /* The buffer comes after this. */
};
-static int bufsize = CACHE_BUFFER_SIZE;
+/* The size (in bytes) of each cache buffer.
+ Try to pick something that will map well into the heap.
+ This must be able to be represented by a short int (<=65535). */
+#define CACHE_BUFFER_BASE (8192)
+#define CACHE_BUFFER_ALLOC(_s) ((_s) - (2 * sizeof (size_t)))
+#define CACHE_BUFFER_OFFSET (offsetof (struct strcache, buffer))
+#define CACHE_BUFFER_SIZE(_s) (CACHE_BUFFER_ALLOC(_s) - CACHE_BUFFER_OFFSET)
+
+static sc_buflen_t bufsize = CACHE_BUFFER_SIZE (CACHE_BUFFER_BASE);
static struct strcache *strcache = NULL;
+static struct strcache *fullcache = NULL;
+
+static unsigned long total_buffers = 0;
+static unsigned long total_strings = 0;
+static unsigned long total_size = 0;
/* Add a new buffer to the cache. Add it at the front to reduce search time.
This can also increase the overhead, since it's less likely that older
@@ -46,53 +57,68 @@ static struct strcache *strcache = NULL;
that this doesn't seem to be much of an issue in practice.
*/
static struct strcache *
-new_cache()
+new_cache ()
{
struct strcache *new;
- new = xmalloc (sizeof (*new) + bufsize);
- new->end = new->buffer;
+ new = xmalloc (bufsize + CACHE_BUFFER_OFFSET);
+ new->end = 0;
new->count = 0;
new->bytesfree = bufsize;
new->next = strcache;
strcache = new;
+ ++total_buffers;
return new;
}
static const char *
-add_string(const char *str, int len)
+add_string (const char *str, unsigned int len)
{
- struct strcache *best = NULL;
+ char *res;
struct strcache *sp;
- const char *res;
+ struct strcache **spp = &strcache;
+ /* We need space for the nul char. */
+ unsigned int sz = len + 1;
/* If the string we want is too large to fit into a single buffer, then
- we're screwed; nothing will ever fit! Change the maximum size of the
- cache to be big enough. */
- if (len > bufsize)
- bufsize = len * 2;
-
- /* First, find a cache with enough free space. We always look through all
- the blocks and choose the one with the best fit (the one that leaves the
- least amount of space free). */
- for (sp = strcache; sp != NULL; sp = sp->next)
- if (sp->bytesfree > len && (!best || best->bytesfree > sp->bytesfree))
- best = sp;
+ no existing cache is large enough. Change the maximum size. */
+ if (sz > bufsize)
+ bufsize = CACHE_BUFFER_SIZE ((((sz + 1) / CACHE_BUFFER_BASE) + 1)
+ * CACHE_BUFFER_BASE);
+ else
+ /* Find the first cache with enough free space. */
+ for (; *spp != NULL; spp = &(*spp)->next)
+ if ((*spp)->bytesfree > sz)
+ break;
/* If nothing is big enough, make a new cache. */
- if (!best)
- best = new_cache();
+ sp = *spp;
+ if (sp == NULL)
+ {
+ sp = new_cache ();
+ spp = &sp;
+ }
+
+ /* Add the string to this cache. */
+ res = &sp->buffer[sp->end];
+ memmove (res, str, len);
+ res[len] = '\0';
+ sp->end += sz;
+ sp->bytesfree -= sz;
+ ++sp->count;
- assert (best->bytesfree > len);
+ /* If the amount free in this cache is less than the average string size,
+ consider it full and move it to the full list. */
+ ++total_strings;
+ total_size += sz;
- /* Add the string to the best cache. */
- res = best->end;
- memcpy (best->end, str, len);
- best->end += len;
- *(best->end++) = '\0';
- best->bytesfree -= len + 1;
- ++best->count;
+ if (sp->bytesfree < (total_size / total_strings) + 1)
+ {
+ *spp = (*spp)->next;
+ sp->next = fullcache;
+ fullcache = sp;
+ }
return res;
}
@@ -128,7 +154,7 @@ add_hash (const char *str, int len)
char *const *slot = (char *const *) hash_find_slot (&strings, str);
const char *key = *slot;
- /* Count the total number of adds we performed. */
+ /* Count the total number of add operations we performed. */
++total_adds;
if (!HASH_VACANT (key))
@@ -147,7 +173,10 @@ strcache_iscached (const char *str)
struct strcache *sp;
for (sp = strcache; sp != 0; sp = sp->next)
- if (str >= sp->buffer && str < sp->end)
+ if (str >= sp->buffer && str < sp->buffer + sp->end)
+ return 1;
+ for (sp = fullcache; sp != 0; sp = sp->next)
+ if (str >= sp->buffer && str < sp->buffer + sp->end)
return 1;
return 0;
@@ -163,7 +192,7 @@ strcache_add (const char *str)
}
const char *
-strcache_add_len (const char *str, int len)
+strcache_add_len (const char *str, unsigned int len)
{
/* If we're not given a nul-terminated string we have to create one, because
the hashing functions expect it. */
@@ -179,7 +208,7 @@ strcache_add_len (const char *str, int len)
}
int
-strcache_setbufsize(int size)
+strcache_setbufsize (unsigned int size)
{
if (size > bufsize)
bufsize = size;
@@ -198,49 +227,65 @@ strcache_init (void)
void
strcache_print_stats (const char *prefix)
{
- int numbuffs = 0, numstrs = 0;
- int totsize = 0, avgsize, maxsize = 0, minsize = bufsize;
- int totfree = 0, avgfree, maxfree = 0, minfree = bufsize;
- int lastused = 0, lastfree = 0;
+ const struct strcache *sp;
+ unsigned long numbuffs = 0, fullbuffs = 0;
+ unsigned long totfree = 0, maxfree = 0, minfree = bufsize;
- if (strcache)
+ if (! strcache)
{
- const struct strcache *sp;
+ printf (_("\n%s No strcache buffers\n"), prefix);
+ return;
+ }
- /* Count the first buffer separately since it's not full. */
- lastused = strcache->end - strcache->buffer;
- lastfree = strcache->bytesfree;
+ /* Count the first buffer separately since it's not full. */
+ for (sp = strcache->next; sp != NULL; sp = sp->next)
+ {
+ sc_buflen_t bf = sp->bytesfree;
- for (sp = strcache->next; sp != NULL; sp = sp->next)
- {
- int bf = sp->bytesfree;
- int sz = sp->end - sp->buffer;
+ totfree += bf;
+ maxfree = (bf > maxfree ? bf : maxfree);
+ minfree = (bf < minfree ? bf : minfree);
- ++numbuffs;
- numstrs += sp->count;
+ ++numbuffs;
+ }
+ for (sp = fullcache; sp != NULL; sp = sp->next)
+ {
+ sc_buflen_t bf = sp->bytesfree;
- totsize += sz;
- maxsize = (sz > maxsize ? sz : maxsize);
- minsize = (sz < minsize ? sz : minsize);
+ totfree += bf;
+ maxfree = (bf > maxfree ? bf : maxfree);
+ minfree = (bf < minfree ? bf : minfree);
- totfree += bf;
- maxfree = (bf > maxfree ? bf : maxfree);
- minfree = (bf < minfree ? bf : minfree);
- }
+ ++numbuffs;
+ ++fullbuffs;
}
- avgsize = numbuffs ? (int)(totsize / numbuffs) : 0;
- avgfree = numbuffs ? (int)(totfree / numbuffs) : 0;
+ /* Make sure we didn't lose any buffers. */
+ assert (total_buffers == numbuffs + 1);
+
+ printf (_("\n%s strcache buffers: %lu (%lu) / strings = %lu / storage = %lu B / avg = %lu B\n"),
+ prefix, numbuffs + 1, fullbuffs, total_strings, total_size,
+ (total_size / total_strings));
- printf (_("\n%s # of strings in strcache: %d / lookups = %lu / hits = %lu\n"),
- prefix, numstrs, total_adds, (total_adds - numstrs));
- printf (_("%s # of strcache buffers: %d (* %d B/buffer = %d B)\n"),
- prefix, (numbuffs + 1), bufsize, ((numbuffs + 1) * bufsize));
- printf (_("%s strcache used: total = %d (%d) / max = %d / min = %d / avg = %d\n"),
- prefix, totsize, lastused, maxsize, minsize, avgsize);
- printf (_("%s strcache free: total = %d (%d) / max = %d / min = %d / avg = %d\n"),
- prefix, totfree, lastfree, maxfree, minfree, avgfree);
+ printf (_("%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"),
+ prefix, bufsize, strcache->end, strcache->count,
+ (strcache->end / strcache->count));
+
+ if (numbuffs)
+ {
+ unsigned long sz = total_size - bufsize;
+ unsigned long cnt = total_strings - strcache->count;
+ sc_buflen_t avgfree = totfree / numbuffs;
+
+ printf (_("%s other used: total = %lu B / count = %lu / avg = %lu B\n"),
+ prefix, sz, cnt, sz / cnt);
+
+ printf (_("%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"),
+ prefix, totfree, maxfree, minfree, avgfree);
+ }
- fputs (_("\n# strcache hash-table stats:\n# "), stdout);
+ printf (_("\n%s strcache performance: lookups = %lu / hit rate = %lu%%\n"),
+ prefix, total_adds, (long unsigned)(100.0 * (total_adds - total_strings) / total_adds));
+ fputs (_("# hash-table stats:\n# "), stdout);
hash_print_stats (&strings, stdout);
}
diff --git a/subproc.bat b/subproc.bat
index e5a0528..9a90487 100644
--- a/subproc.bat
+++ b/subproc.bat
@@ -1,6 +1,5 @@
@echo off
-rem Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-rem 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+rem Copyright (C) 1996-2013 Free Software Foundation, Inc.
rem This file is part of GNU Make.
rem
rem GNU Make is free software; you can redistribute it and/or modify it under
diff --git a/tests/ChangeLog b/tests/ChangeLog
index d036568..653c5a7 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,354 @@
+2013-10-09 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/patspecific_vars: Typo fixes.
+
+2013-10-05 Paul Smith <psmith@gnu.org>
+
+ * test_driver.pl (run_all_tests): Rewrite to be more clear.
+ * scripts/features/jobserver: Avoid using $ENV{HOME} as it doesn't
+ exist everywhere.
+ * scripts/features/default_names: End with 1;
+
+ * scripts/features/loadapi: Use new calling signatures. Verify
+ the NOEXPAND flag works. Test with all valid function name
+ characters.
+
+2013-09-29 Paul Smith <psmith@gnu.org>
+
+ * scripts/variables/SHELL: Solaris /bin/sh can't handle options in
+ multiple words; skip that test.
+ * scripts/targets/ONESHELL: Ditto.
+
+ * scripts/variables/GNUMAKEFLAGS: Verify that GNUMAKEFLAGS is
+ cleared and options are not duplicated.
+
+2013-09-23 Paul Smith <psmith@gnu.org>
+
+ * scripts/options/print-directory: Rename dash-w to
+ print-directory to avoid conflicts with dash-W on case-insensitive
+ filesystems.
+
+2013-09-22 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/se_implicit: Verify that order-only tokens
+ inside second expansion are parsed correctly.
+ Test for Savannah bug #31155.
+
+ * run_make_tests.pl (set_more_defaults): If we can't find
+ gnumake.h based on the make program we might be running from a
+ remote build directory. Parse the Makefile for the right path.
+
+ Fix some test issues on Solaris.
+
+ * scripts/features/archives: Determine what output ar gives when
+ adding and replacing objects and compare with that.
+ * scripts/features/escape: Solaris /bin/sh doesn't properly handle
+ backslashes inside single quotes, so don't rely on it.
+ * scripts/features/output-sync: false(1) gives different exit
+ codes on different systems; use "exit 1" instead.
+ * scripts/features/parallelism: Increase the timeout for slower systems.
+
+2013-09-21 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/archives: Some versions of ar (MacOSX) generate
+ different output when creating archives. Run it and verify the
+ real output.
+ * scripts/features/default_names: MacOSX is, like Windows,
+ case-preserving / case-insensitive. Redo the test to avoid
+ checking for "UNIX".
+ * test_driver.pl (attach_default_output): Don't dup stdout into
+ stderr. Reported by Denis Excoffier <bug-tar@Denis-Excoffier.org>
+
+ * scripts/features/se_explicit: Fix a test that behaves
+ differently with/without archive capability enabled.
+ * scripts/features/output-sync: Don't test output-sync if it's not
+ enabled. We also skip it if parallelism is not enabled, although
+ strictly speaking some of the output-sync tests are valid even
+ without parallelism.
+ * scripts/features/jobserver: Move some tests that require the
+ jobserver from features/parallelism to a separate suite. Only run
+ this if jobserver mode is enabled.
+
+ * scripts/features/output-sync: Test shell functions writing to
+ stderr in recipes: ensure it's captured via output-sync. Test
+ output generated while reading makefiles and make sure it's
+ captured via output-sync. Make sure that fatal errors dump the
+ output so it's not lost.
+
+ * scripts/options/dash-w: Add a test for -w flag.
+
+2013-09-15 Paul Smith <psmith@gnu.org>
+
+ * scripts/misc/fopen-fail: Check for failure on infinite recursion.
+ * run_make_tests.pl (run_make_test): Allow the answer string to be
+ undef, which means that we shouldn't compare it at all. Only the
+ exit code matters in this case.
+ * test_driver.pl (compare_output): Ditto.
+ Test for Savannah bug #27374.
+
+ * scripts/features/parallelism: Test broken jobserver on recursion.
+ Test for Savannah bug #39934.
+
+ * scripts/options/eval: Verify --eval during restart.
+ Test for Savannah bug #39203.
+
+2013-09-14 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/output-sync: Verify -Orecurse properly.
+
+2013-09-12 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/output-sync: Modify for output sync behavior.
+ * scripts/variables/MAKE_RESTARTS: Ditto.
+ * scripts/variables/MAKEFLAGS: Remove mode for --trace.
+ * scripts/variables/GNUMAKEFLAGS: Ditto.
+
+2013-07-22 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/rule_glob: Add tests for wildcards in rules.
+ Test for Savannah bug #39310.
+
+2013-07-09 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/se_implicit: Add a test for SE rules depending
+ on other SE rules to be built.
+
+2013-05-26 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/archives: Test for Savannah bug #38442.
+
+ * scripts/misc/bs-nl: Test for Savannah bug #39035.
+ Add a test for Savannah bug #38945.
+
+2013-05-22 Paul Smith <psmith@gnu.org>
+
+ * scripts/options/dash-n: Fix results after MAKEFLAGS fixes.
+ * scripts/variables/MAKEFLAGS: Ditto.
+ * scripts/variables/GNUMAKEFLAGS: Ditto.
+
+2013-05-14 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/loadapi: Add plugin_is_GPL_compatible symbol.
+ * scripts/features/load: Ditto.
+
+2013-05-13 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/output-sync (output_sync_set): Update for new
+ --trace behavior.
+
+2013-05-05 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/output-sync (output_sync_set): Remove
+ extraneous enter/leave lines, which are no longer printed.
+ Add tests for syncing command line printing.
+ (output_sync_set): Rename options: "job"->"line"; "make"->"recurse"
+
+2013-05-04 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/loadapi: Use the new alloc functions.
+
+ * scripts/features/output-sync (output_sync_set): New test for
+ ordered recursive output for -Ojob / -Otarget.
+
+2013-05-03 Eli Zaretskii <eliz@gnu.org>
+
+ * scripts/features/load: Fix signatures of testload_gmk_setup and
+ explicit_setup, to bring them in line with the documentation.
+
+2013-04-28 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/output-sync (output_sync_set): Add tests for
+ the per-job syntax mode.
+ (output_sync_set): Test improved error message location.
+
+2013-04-15 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/output-sync (output_sync_set): New arg syntax.
+
+2013-04-14 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/output-sync: Rewrite to be more reliable.
+
+ * test_driver.pl (_run_command): Don't set SIGALRM until after we
+ start the child. Print errors to the top-level output, which will
+ be stderr.
+ (attach_default_output): Use a list of file handles as the stack.
+ (detach_default_output): Ditto.
+
+ * scripts/features/output-sync: Add a test for output-sync.
+
+2013-02-25 Paul Smith <psmith@gnu.org>
+
+ * run_make_tests.pl (valid_option): Support the -srcdir flag.
+ (set_more_defaults): Set up $srcdir if it's not set yet.
+
+ * scripts/functions/guile: Verify gmk-eval doesn't expand twice.
+ * scripts/features/load: Rework to test just the load capability.
+ * scripts/features/loadapi: New set of tests for the load API.
+
+2013-01-19 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/load: Test loaded files with and without "./"
+ prefix. Add tests for automatically rebuilding loaded files if
+ they are out of date or non-existent.
+
+2013-01-13 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/archives: Add a check targets that have parens,
+ but are not archives. See Savannah bug #37878.
+
+ * scripts/options/dash-n: Verify -n is preserved after recursive /
+ re-exec. See Savannah bug #38051.
+
+2013-01-12 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/parallelism: Change rule so it doesn't depend
+ on invocation order, etc.
+
+2012-10-29 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/load: New test suite for the "load" directive.
+
+2012-09-09 Paul Smith <psmith@gnu.org>
+
+ * scripts/functions/file: Get errors in the C locale, not the
+ current locale. Fixes Savannah bug #35764.
+
+ * scripts/features/escape: Check that backslashes before
+ non-special characters are not removed.
+
+ * scripts/features/utf8: New test for UTF-8 support.
+ See Savannah bug #36529.
+
+ * scripts/targets/POSIX: Add tests for default macro values as
+ specified by IEEE Std 1003.1-2008. See Savannah bug #37069.
+
+2012-03-04 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/se_explicit: Test $(x:%=%) format in secondary
+ expansion prerequisite lists. See Savannah bug #16545.
+
+ * scripts/features/escape: Test escaped ":" in prerequisite lists.
+ See Savannah bug #12126.
+
+ * scripts/variables/private: Test appending private variables in
+ pattern-specific target rules. See Savannah bug #35468.
+
+2012-03-03 Paul Smith <psmith@gnu.org>
+
+ * scripts/variables/SHELL: Ensure .SHELLFLAGS works with options
+ separated by whitespace.
+
+ * scripts/targets/ONESHELL: Try .ONESHELL in combination with
+ whitespace-separated options in .SHELLFLAGS. See Savannah bug #35397.
+
+ * scripts/functions/filter-out: Add filter tests and test escape
+ operations. See Savannah bug #35410.
+
+ * guile.supp: Suppress valgrind errors from Guile
+ * run_make_tests.pl: Use the Guile suppression file.
+
+ * scripts/misc/bs-nl: Check for POSIX and non-POSIX
+ backslash/newline handling. Addresses Savannah bug #16670.
+
+2012-01-29 Paul Smith <psmith@gnu.org>
+
+ * scripts/variables/flavors: Add tests for ::=
+ * scripts/variables/define: Ditto
+
+ * scripts/functions/file: Test the new $(file ...) function.
+
+2012-01-12 Paul Smith <psmith@gnu.org>
+
+ * scripts/functions/guile: New regression tests for Guile support.
+
+2011-12-10 Paul Smith <psmith@gnu.org>
+
+ * scripts/targets/SECONDARY: Add prereq statements to ensure rules
+ are printed in the right order for test #9
+
+2011-11-14 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/double_colon: Check double-colon with escaped
+ filenames. See Savannah bug #33399.
+
+2011-09-18 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/parallelism: On re-exec make sure we preserve
+ the value of MAKEFLAGS when necessary. See Savannah bug #33873.
+
+ * scripts/features/vpath3: Verify handling of -lfoo libraries
+ found via vpath vs. the standard directory search.
+ See Savannah bug #32511.
+
+2011-09-12 Paul Smith <psmith@gnu.org>
+
+ * scripts/functions/call: Verify that using export in a $(call ...)
+ context creates a global variable. See Savannah bug #32498.
+
+2011-09-02 Paul Smith <psmith@gnu.org>
+
+ * scripts/options/dash-n: Verify that in "-n -t", the -n takes
+ priority. Patch from Michael Witten <mfwitten@gmail.com>.
+
+2011-08-29 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/varnesting: Test resetting of variables while
+ expanding them. See Savannah patch #7534
+
+2011-06-12 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/archives: Check archives with whitespace at the
+ beginning, end, and extra in the middle.
+ Another test for Savannah bug #30612.
+
+2011-05-07 Paul Smith <psmith@gnu.org>
+
+ * scripts/variables/private: Ensure we skip private variables when
+ appending. Test for Savannah bug #32872.
+
+ * scripts/functions/wildcard: Verify wildcard used to test for
+ file existence/non-existence.
+
+2011-05-02 Paul Smith <psmith@gnu.org>
+
+ * scripts/functions/sort: Add a test for Savannah bug #33125.
+
+2011-04-17 David A. Wheeler <dwheeler@dwheeler.com>
+
+ * scripts/features/shell_assignment: Regression for "!=" feature
+
+2010-11-06 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/targetvars: Fix known-good output for BS/NL changes.
+ * scripts/functions/call: Ditto.
+ * scripts/variables/special: Ditto.
+
+ * scripts/misc/bs-nl: New test suite for backslash/newline testing.
+
+2010-08-29 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/errors: Add new error message to output text.
+ * scripts/variables/SHELL: Ditto.
+ * scripts/targets/POSIX: Ditto.
+ * scripts/options/dash-k: Ditto.
+ * scripts/features/vpathplus: Ditto.
+ * scripts/features/patternrules: Ditto.
+ * scripts/features/parallelism: Ditto.
+
+2010-08-13 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/archives: New regression tests for archive
+ support. Test for fix to Savannah bug #30612.
+
+ * run_make_tests.pl (set_more_defaults): Set a %FEATURES hash to
+ the features available in $(.FEATURES).
+
+2010-08-10 Paul Smith <psmith@gnu.org>
+
+ * scripts/features/reinvoke: Ensure command line variable settings
+ are preserved across make re-exec. Tests Savannah bug #30723.
+
2010-07-28 Paul Smith <psmith@gnu.org>
* scripts/targets/POSIX: Compatibility issues with Solaris (and
@@ -299,7 +650,7 @@
* test_driver.pl (toplevel): Skip all hidden files/directories (ones
beginning with ".").
- * scripts/functions/andor: Tests for $(and ..) and $(or ...)
+ * scripts/functions/andor: Tests for $(and ...) and $(or ...)
functions.
2006-02-08 Boris Kolpackov <boris@kolpackov.net>
@@ -386,9 +737,9 @@
2005-08-13 Boris Kolpackov <boris@kolpackov.net>
- * scripts/functions/wildcard: Wrap calls to $(wildcard ) with
+ * scripts/functions/wildcard: Wrap calls to $(wildcard) with
$(sort) so that the resulting order is no longer filesystem-
- dependant.
+ dependent.
2005-08-10 Boris Kolpackov <boris@kolpackov.net>
@@ -459,7 +810,7 @@
2005-06-09 Paul D. Smith <psmith@gnu.org>
- * scripts/functions/foreach: Add a test for Savannah bug #11913.
+ * scripts/functions/foreach: Add a test for Savannah bug #11913.
2005-05-31 Boris Kolpackov <boris@kolpackov.net>
@@ -479,7 +830,7 @@
2005-05-02 Paul D. Smith <psmith@gnu.org>
* scripts/features/parallelism: Add a test for exporting recursive
- variables containing $(shell ) calls. Rewrite this script to use
+ variables containing $(shell) calls. Rewrite this script to use
run_make_test() everywhere.
2005-04-07 Paul D. Smith <psmith@gnu.org>
@@ -1062,8 +1413,7 @@
ChangeLog file for the test suite created.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+Copyright (C) 1992-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/tests/NEWS b/tests/NEWS
index 43971ec..7fb864c 100644
--- a/tests/NEWS
+++ b/tests/NEWS
@@ -72,7 +72,7 @@ Changes from 0.4.4 to 0.4.5 (April 29, 1995):
Also, some tests and stuff still haven't made it in because I
haven't had time to write the test scripts for them. But they,
- too, will get in eventually. Contributions of scripts (ie, tests
+ too, will get in eventually. Contributions of scripts (i.e., tests
that I can just drop in) are particularly welcome and will be
incorporated immediately.
@@ -162,8 +162,7 @@ Changes from 0.1 to 0.2 (5-4-92):
-------------------------------------------------------------------------------
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+Copyright (C) 1992-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/tests/README b/tests/README
index 3860bdb..0663082 100644
--- a/tests/README
+++ b/tests/README
@@ -7,8 +7,7 @@ This entire test suite, including all test files, are copyright and
distributed under the following terms:
-----------------------------------------------------------------------------
- Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+ Copyright (C) 1992-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -39,7 +38,7 @@ To run the test suite on Windows NT or DOS systems, use
"perl.exe ./run_make-tests.pl".
By default, the test engine picks up the first executable called "make"
-that it finds in your path. You may use the -make_path option (ie,
+that it finds in your path. You may use the -make_path option (i.e.,
"perl run_make_tests -make_path /usr/local/src/make-3.78/make") if
you want to run a particular copy. This now works correctly with
relative paths and when make is called something other than "make" (like
@@ -59,7 +58,7 @@ The options/dash-l test will not really test anything if the copy of
make you are using can't obtain the system load. Some systems require
make to be setgid sys or kmem for this; if you don't want to install
make just to test it, make it setgid to kmem or whatever group /dev/kmem
-is (ie, "chgrp kmem make;chmod g+s make" as root). In any case, the
+is (i.e., "chgrp kmem make;chmod g+s make" as root). In any case, the
options/dash-l test should no longer *fail* because make can't read
/dev/kmem.
diff --git a/tests/guile.supp b/tests/guile.supp
new file mode 100644
index 0000000..9e9b01b
--- /dev/null
+++ b/tests/guile.supp
@@ -0,0 +1,31 @@
+# Guile valgrind suppression file
+# Created with Guile 1.8.7
+
+# --- Garbage collection
+{
+ guilegc
+ Memcheck:Cond
+ ...
+ fun:scm_gc_for_newcell
+}
+{
+ guilegc
+ Memcheck:Value4
+ ...
+ fun:scm_gc_for_newcell
+}
+{
+ guilegc
+ Memcheck:Value8
+ ...
+ fun:scm_gc_for_newcell
+}
+
+
+# -- scm_alloc_struct
+{
+ guileheap
+ Memcheck:Leak
+ ...
+ fun:scm_alloc_struct
+}
diff --git a/tests/mkshadow b/tests/mkshadow
index d41b40e..5e0a402 100755
--- a/tests/mkshadow
+++ b/tests/mkshadow
@@ -3,9 +3,7 @@
# Simple script to make a "shadow" test directory, using symbolic links.
# Typically you'd put the shadow in /tmp or another local disk
#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 1992-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
@@ -28,7 +26,7 @@ esac
dest="$1"
if [ ! -d "$dest" ]; then
- echo "Destination directory \`$dest' must exist!"
+ echo "Destination directory '$dest' must exist!"
exit 1
fi
@@ -55,5 +53,5 @@ done
rm -rf work
-echo "Shadow test suite created in \`$dest/$name'."
+echo "Shadow test suite created in '$dest/$name'."
exit 0
diff --git a/tests/run_make_tests.pl b/tests/run_make_tests.pl
index 2c8c08b..54c2892 100755..100644
--- a/tests/run_make_tests.pl
+++ b/tests/run_make_tests.pl
@@ -11,9 +11,7 @@
# [-make <make prog>]
# (and others)
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 1992-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
@@ -29,13 +27,17 @@
# You should have received a copy of the GNU General Public License along with
# this program. If not, see <http://www.gnu.org/licenses/>.
+%FEATURES = ();
$valgrind = 0; # invoke make with valgrind
$valgrind_args = '';
-$memcheck_args = '--num-callers=15 --tool=memcheck --leak-check=full';
+$memcheck_args = '--num-callers=15 --tool=memcheck --leak-check=full --suppressions=guile.supp';
$massif_args = '--num-callers=15 --tool=massif --alloc-fn=xmalloc --alloc-fn=xcalloc --alloc-fn=xrealloc --alloc-fn=xstrdup --alloc-fn=xstrndup';
$pure_log = undef;
+# The location of the GNU make source directory
+$srcdir = '';
+
$command_string = '';
$all_tests = 0;
@@ -60,6 +62,15 @@ sub valid_option
return 1;
}
+ if ($option =~ /^-srcdir$/i) {
+ $srcdir = shift @argv;
+ if (! -f "$srcdir/gnumake.h") {
+ print "$option $srcdir: Not a valid GNU make source directory.\n";
+ exit 0;
+ }
+ return 1;
+ }
+
if ($option =~ /^-all([-_]?tests)?$/i) {
$all_tests = 1;
return 1;
@@ -98,6 +109,17 @@ sub valid_option
$old_makefile = undef;
+sub subst_make_string
+{
+ local $_ = shift;
+ $makefile and s/#MAKEFILE#/$makefile/g;
+ s/#MAKEPATH#/$mkpath/g;
+ s/#MAKE#/$make_name/g;
+ s/#PERL#/$perl_name/g;
+ s/#PWD#/$pwd/g;
+ return $_;
+}
+
sub run_make_test
{
local ($makestring, $options, $answer, $err_code, $timeout) = @_;
@@ -115,16 +137,9 @@ sub run_make_test
$makefile = &get_tmpfile();
}
- # Make sure it ends in a newline.
+ # Make sure it ends in a newline and substitute any special tokens.
$makestring && $makestring !~ /\n$/s and $makestring .= "\n";
-
- # Replace @MAKEFILE@ with the makefile name and @MAKE@ with the path to
- # make
- $makestring =~ s/#MAKEFILE#/$makefile/g;
- $makestring =~ s/#MAKEPATH#/$mkpath/g;
- $makestring =~ s/#MAKE#/$make_name/g;
- $makestring =~ s/#PERL#/$perl_name/g;
- $makestring =~ s/#PWD#/$pwd/g;
+ $makestring = subst_make_string($makestring);
# Populate the makefile!
open(MAKEFILE, "> $makefile") || die "Failed to open $makefile: $!\n";
@@ -133,13 +148,10 @@ sub run_make_test
}
# Do the same processing on $answer as we did on $makestring.
-
- $answer && $answer !~ /\n$/s and $answer .= "\n";
- $answer =~ s/#MAKEFILE#/$makefile/g;
- $answer =~ s/#MAKEPATH#/$mkpath/g;
- $answer =~ s/#MAKE#/$make_name/g;
- $answer =~ s/#PERL#/$perl_name/g;
- $answer =~ s/#PWD#/$pwd/g;
+ if (defined $answer) {
+ $answer && $answer !~ /\n$/s and $answer .= "\n";
+ $answer = subst_make_string($answer);
+ }
run_make_with_options($makefile, $options, &get_logfile(0),
$err_code, $timeout);
@@ -228,14 +240,16 @@ sub run_make_with_options {
sub print_usage
{
&print_standard_usage ("run_make_tests",
- "[-make_path make_pathname] [-memcheck] [-massif]",);
+ "[-make MAKE_PATHNAME] [-srcdir SRCDIR] [-memcheck] [-massif]",);
}
sub print_help
{
&print_standard_help (
- "-make_path",
+ "-make",
"\tYou may specify the pathname of the copy of make to run.",
+ "-srcdir",
+ "\tSpecify the make source directory.",
"-valgrind",
"-memcheck",
"\tRun the test suite under valgrind's memcheck tool.",
@@ -317,7 +331,7 @@ sub set_more_defaults
$mk or die "FATAL ERROR: Cannot determine the value of \$(MAKE):\n
'echo \"all:;\@echo \\\$(MAKE)\" | $make_path -f-' failed!\n";
$make_path = $mk;
- print "Make\t= `$make_path'\n" if $debug;
+ print "Make\t= '$make_path'\n" if $debug;
$string = `$make_path -v -f /dev/null 2> /dev/null`;
@@ -329,12 +343,8 @@ sub set_more_defaults
$make_name = $1;
}
else {
- if ($make_path =~ /$pathsep([^\n$pathsep]*)$/) {
- $make_name = $1;
- }
- else {
- $make_name = $make_path;
- }
+ $make_path =~ /^(?:.*$pathsep)?(.+)$/;
+ $make_name = $1;
}
# prepend pwd if this is a relative path (ie, does not
@@ -350,6 +360,24 @@ sub set_more_defaults
$mkpath = $make_path;
}
+ # If srcdir wasn't provided on the command line, see if the
+ # location of the make program gives us a clue. Don't fail if not;
+ # we'll assume it's been installed into /usr/include or wherever.
+ if (! $srcdir) {
+ $make_path =~ /^(.*$pathsep)?/;
+ my $d = $1 || '../';
+ -f "${d}gnumake.h" and $srcdir = $d;
+ }
+
+ # Not with the make program, so see if we can get it out of the makefile
+ if (! $srcdir && open(MF, "< ../Makefile")) {
+ local $/ = undef;
+ $_ = <MF>;
+ close(MF);
+ /^abs_srcdir\s*=\s*(.*?)\s*$/m;
+ -f "$1/gnumake.h" and $srcdir = $1;
+ }
+
# Get Purify log info--if any.
if (exists $ENV{PURIFYOPTIONS}
@@ -367,6 +395,8 @@ sub set_more_defaults
$parallel_jobs = 1;
}
+ %FEATURES = map { $_ => 1 } split /\s+/, `sh -c "echo '\\\$(info \\\$(.FEATURES))' | $make_path -f- 2>/dev/null"`;
+
# Set up for valgrind, if requested.
if ($valgrind) {
diff --git a/tests/scripts/features/archives b/tests/scripts/features/archives
new file mode 100644
index 0000000..a7ec881
--- /dev/null
+++ b/tests/scripts/features/archives
@@ -0,0 +1,95 @@
+# -*-mode: perl-*-
+
+$description = "Test GNU make's archive management features.";
+
+$details = "\
+This only works on systems that support it.";
+
+# If this instance of make doesn't support archives, skip it
+exists $FEATURES{archives} or return -1;
+
+# Create some .o files to work with
+utouch(-60, qw(a1.o a2.o a3.o));
+
+# Some versions of ar print different things on creation. Find out.
+my $created = `ar rv libxx.a a1.o 2>&1`;
+
+# Some versions of ar print different things on add. Find out.
+my $add = `ar rv libxx.a a2.o 2>&1`;
+$add =~ s/a2\.o/#OBJECT#/g;
+
+# Some versions of ar print different things on replacement. Find out.
+my $repl = `ar rv libxx.a a2.o 2>&1`;
+$repl =~ s/a2\.o/#OBJECT#/g;
+
+unlink('libxx.a');
+
+# Very simple
+run_make_test('all: libxx.a(a1.o)',
+ '', "ar rv libxx.a a1.o\n$created");
+
+# Multiple .o's. Add a new one to the existing library
+($_ = $add) =~ s/#OBJECT#/a2.o/g;
+run_make_test('all: libxx.a(a1.o a2.o)',
+ '', "ar rv libxx.a a2.o\n$_");
+
+# Touch one of the .o's so it's rebuilt
+utouch(-40, 'a1.o');
+($_ = $repl) =~ s/#OBJECT#/a1.o/g;
+run_make_test(undef, '', "ar rv libxx.a a1.o\n$_");
+
+# Use wildcards
+run_make_test('all: libxx.a(*.o)',
+ '', "#MAKE#: Nothing to be done for 'all'.\n");
+
+# Touch one of the .o's so it's rebuilt
+utouch(-30, 'a1.o');
+($_ = $repl) =~ s/#OBJECT#/a1.o/g;
+run_make_test(undef, '', "ar rv libxx.a a1.o\n$_");
+
+# Use both wildcards and simple names
+utouch(-50, 'a2.o');
+($_ = $add) =~ s/#OBJECT#/a3.o/g;
+$_ .= "ar rv libxx.a a2.o\n";
+($_ .= $repl) =~ s/#OBJECT#/a2.o/g;
+run_make_test('all: libxx.a(a3.o *.o)', '',
+ "ar rv libxx.a a3.o\n$_");
+
+# Check whitespace handling
+utouch(-40, 'a2.o');
+($_ = $repl) =~ s/#OBJECT#/a2.o/g;
+run_make_test('all: libxx.a( a3.o *.o )', '',
+ "ar rv libxx.a a2.o\n$_");
+
+rmfiles(qw(a1.o a2.o a3.o libxx.a));
+
+# Check non-archive targets
+# See Savannah bug #37878
+run_make_test(q!
+all: foo(bar).baz
+foo(bar).baz: ; @echo '$@'
+!,
+ '', "foo(bar).baz\n");
+
+# Check renaming of archive targets.
+# See Savannah bug #38442
+
+mkdir('artest', 0777);
+touch('foo.vhd');
+
+run_make_test(q!
+DIR = artest
+vpath % $(DIR)
+default: lib(foo)
+(%): %.vhd ; @cd $(DIR) && touch $(*F) && $(AR) $(ARFLAGS) $@ $(*F) >/dev/null 2>&1 && rm $(*F)
+.PHONY: default
+!,
+ '', "");
+
+run_make_test(undef, '', "#MAKE#: Nothing to be done for 'default'.\n");
+
+unlink('foo.vhd');
+remove_directory_tree('artest');
+
+# This tells the test driver that the perl test script executed properly.
+1;
diff --git a/tests/scripts/features/default_names b/tests/scripts/features/default_names
index e53127e..2e83880 100644
--- a/tests/scripts/features/default_names
+++ b/tests/scripts/features/default_names
@@ -10,32 +10,35 @@ open(MAKEFILE,"> $makefile");
print MAKEFILE "FIRST: ; \@echo It chose GNUmakefile\n";
close(MAKEFILE);
-# DOS/WIN32 platforms preserve case, but Makefile is the same file as makefile.
-# Just test what we can here (avoid Makefile versus makefile test).
-
-if ($port_type eq 'UNIX') {
- # Create another makefile called "makefile"
- open(MAKEFILE,"> makefile");
- print MAKEFILE "SECOND: ; \@echo It chose makefile\n";
- close(MAKEFILE);
-}
-
-# Create another makefile called "Makefile"
-open(MAKEFILE,"> Makefile");
-print MAKEFILE "THIRD: ; \@echo It chose Makefile\n";
+# Create another makefile called "makefile"
+open(MAKEFILE,"> makefile");
+print MAKEFILE "SECOND: ; \@echo It chose makefile\n";
close(MAKEFILE);
+# DOS/WIN32/MacOSX platforms are case-insensitive / case-preserving, so
+# Makefile is the same file as makefile. Just test what we can here.
+
+my $case_sensitive = 0;
+if (! -f 'Makefile') {
+ # Create another makefile called "Makefile"
+ $case_sensitive = 1;
+ open(MAKEFILE,"> Makefile");
+ print MAKEFILE "THIRD: ; \@echo It chose Makefile\n";
+ close(MAKEFILE);
+}
+
+run_make_with_options("","",&get_logfile);
+compare_output("It chose GNUmakefile\n",&get_logfile(1));
+unlink($makefile);
-&run_make_with_options("","",&get_logfile);
-&compare_output("It chose GNUmakefile\n",&get_logfile(1));
-unlink $makefile;
+run_make_with_options("","",&get_logfile);
+compare_output("It chose makefile\n",&get_logfile(1));
+unlink("makefile");
-if ($port_type eq 'UNIX') {
- &run_make_with_options("","",&get_logfile);
- &compare_output("It chose makefile\n",&get_logfile(1));
- unlink "makefile";
+if ($case_sensitive) {
+ run_make_with_options("","",&get_logfile);
+ compare_output("It chose Makefile\n",&get_logfile(1));
+ unlink("Makefile");
}
-&run_make_with_options("","",&get_logfile);
-&compare_output("It chose Makefile\n",&get_logfile(1));
-unlink "Makefile";
+1;
diff --git a/tests/scripts/features/double_colon b/tests/scripts/features/double_colon
index cad605d..1097775 100644
--- a/tests/scripts/features/double_colon
+++ b/tests/scripts/features/double_colon
@@ -151,5 +151,14 @@ two');
unlink('result','one','two');
+# TEST 10: check for proper backslash handling
+# Savannah bug #33399
+
+run_make_test('
+a\ xb :: ; @echo one
+a\ xb :: ; @echo two
+',
+ '', "one\ntwo\n");
+
# This tells the test driver that the perl test script executed properly.
1;
diff --git a/tests/scripts/features/errors b/tests/scripts/features/errors
index e372fe0..c0339cb 100644
--- a/tests/scripts/features/errors
+++ b/tests/scripts/features/errors
@@ -42,15 +42,17 @@ close(MAKEFILE);
unlink("cleanit");
$cleanit_error = `sh -c "$rm_command cleanit 2>&1"`;
+chomp $cleanit_error;
$delete_error_code = $? >> 8;
# TEST #1
# -------
-$answer = "$rm_command cleanit\n"
- . $cleanit_error
- ."$make_name: [clean] Error $delete_error_code (ignored)\n"
- ."$rm_command foo\n";
+$answer = "$rm_command cleanit
+$cleanit_error
+$makefile:2: recipe for target 'clean' failed
+$make_name: [clean] Error $delete_error_code (ignored)
+$rm_command foo\n";
&run_make_with_options($makefile,"",&get_logfile);
@@ -74,10 +76,11 @@ if (!$vos)
# TEST #2
# -------
-$answer = "$rm_command cleanit\n"
- . $cleanit_error
- ."$make_name: [clean2] Error $delete_error_code (ignored)\n"
- ."$rm_command foo\n";
+$answer = "$rm_command cleanit
+$cleanit_error
+$makefile:5: recipe for target 'clean2' failed
+$make_name: [clean2] Error $delete_error_code (ignored)
+$rm_command foo\n";
&run_make_with_options($makefile,"clean2 -i",&get_logfile);
diff --git a/tests/scripts/features/escape b/tests/scripts/features/escape
index 97a2994..bf069df 100644
--- a/tests/scripts/features/escape
+++ b/tests/scripts/features/escape
@@ -2,12 +2,10 @@
$description = "Test various types of escaping in makefiles.";
$details = "\
-Make sure that escaping of `:' works in target names.
+Make sure that escaping of ':' works in target names.
Make sure escaping of whitespace works in target names.
-Make sure that escaping of '#' works.";
-
-
-close(MAKEFILE);
+Make sure that escaping of '#' works.
+Make sure that backslash before non-special characters are kept.";
# TEST 1
@@ -26,7 +24,7 @@ foo\#bar.ext: ; @echo "foo#bar.ext = ($@)"',
run_make_test(undef,
'path=pre:',
- "#MAKEFILE#:2: *** target pattern contains no `%'. Stop.",
+ "#MAKEFILE#:2: *** target pattern contains no '%'. Stop.",
512);
# TEST 3: This one should work, since we escape the ":".
@@ -39,7 +37,7 @@ run_make_test(undef,
run_make_test(undef,
"'path=pre\\\\:'",
- "#MAKEFILE#:2: *** target pattern contains no `%'. Stop.",
+ "#MAKEFILE#:2: *** target pattern contains no '%'. Stop.",
512);
# TEST 5: This one should work
@@ -54,5 +52,23 @@ run_make_test(undef,
'sharp',
'foo#bar.ext = (foo#bar.ext)');
+# Test escaped colons in prerequisites
+# Quoting of backslashes in q!! is kind of messy.
+# Solaris sh does not properly handle backslashes even in '' so just
+# check the output make prints, not what the shell interprets.
+run_make_test(q!
+foo: foo\\:bar foo\\\\\\:bar foo\\\\\\\\\\:bar
+foo foo\\:bar foo\\\\\\:bar foo\\\\\\\\\\:bar: ; : '$@'
+!,
+ '', ": 'foo:bar'\n: 'foo\\:bar'\n: 'foo\\\\:bar'\n: 'foo'\n");
+
+# Test backslash before non-special chars: should be kept as-is
+
+run_make_test(q!
+all: ..\foo
+.DEFAULT: ; : '$@'
+!,
+ '', ": '..\\foo'\n");
+
# This tells the test driver that the perl test script executed properly.
1;
diff --git a/tests/scripts/features/include b/tests/scripts/features/include
index ba8908c..ee014bd 100644
--- a/tests/scripts/features/include
+++ b/tests/scripts/features/include
@@ -1,6 +1,6 @@
# -*-mode: perl; rm-trailing-spaces: nil-*-
-$description = "Test various forms of the GNU make `include' command.";
+$description = "Test various forms of the GNU make 'include' command.";
$details = "\
Test include, -include, sinclude and various regressions involving them.
@@ -60,7 +60,7 @@ run_make_test
error: foo.mk ; @echo $@
',
'',
- "#MAKE#: *** No rule to make target `foo.mk', needed by `error'. Stop.\n",
+ "#MAKE#: *** No rule to make target 'foo.mk', needed by 'error'. Stop.\n",
512
);
@@ -128,7 +128,7 @@ foo: baz
bar: baz
',
'',
-"#MAKE#: *** No rule to make target `baz', needed by `bar'. Stop.\n",
+"#MAKE#: *** No rule to make target 'baz', needed by 'bar'. Stop.\n",
512);
# Test that the diagnostics is issued even if the target has been
@@ -144,7 +144,7 @@ bar: baz
baz: end
',
'',
-"#MAKE#: *** No rule to make target `end', needed by `baz'. Stop.\n",
+"#MAKE#: *** No rule to make target 'end', needed by 'baz'. Stop.\n",
512);
# Test that the diagnostics is issued even if the target has been
@@ -162,7 +162,7 @@ baz: end
',
'',
"#MAKEFILE#:2: bar: No such file or directory
-#MAKE#: *** No rule to make target `end', needed by `baz'. Stop.\n",
+#MAKE#: *** No rule to make target 'end', needed by 'baz'. Stop.\n",
512);
if ($all_tests) {
@@ -172,7 +172,7 @@ if ($all_tests) {
include foo
foo: ; @echo foo = bar > $@
!,
- '', "#MAKE#: `foo' is up to date.\n");
+ '', "#MAKE#: 'foo' is up to date.\n");
rmfiles('foo');
}
diff --git a/tests/scripts/features/jobserver b/tests/scripts/features/jobserver
new file mode 100644
index 0000000..cedd4b3
--- /dev/null
+++ b/tests/scripts/features/jobserver
@@ -0,0 +1,61 @@
+# -*-perl-*-
+
+$description = "Test jobserver.";
+
+$details = "These tests are ones that specifically are different when the
+jobserver feature is available. Most -j tests are the same whether or not
+jobserver is available, and those appear in the 'parallelism' test suite.";
+
+exists $FEATURES{'jobserver'} or return -1;
+
+if (!$parallel_jobs) {
+ return -1;
+}
+
+# Don't put --jobserver-fds into a re-exec'd MAKEFLAGS.
+# We can't test this directly because there's no way a makefile can
+# show the value of MAKEFLAGS we were re-exec'd with. We can intuit it
+# by looking for "disabling jobserver mode" warnings; we should only
+# get one from the original invocation and none from the re-exec.
+# See Savannah bug #18124
+
+unlink('inc.mk');
+
+run_make_test(q!
+-include inc.mk
+recur:
+# @echo 'MAKEFLAGS = $(MAKEFLAGS)'
+ @rm -f inc.mk
+ @$(MAKE) -j2 -f #MAKEFILE# all
+all:
+# @echo 'MAKEFLAGS = $(MAKEFLAGS)'
+ @echo $@
+inc.mk:
+# @echo 'MAKEFLAGS = $(MAKEFLAGS)'
+ @echo 'FOO = bar' > $@
+!,
+ '--no-print-directory -j2', "#MAKE#[1]: warning: -jN forced in submake: disabling jobserver mode.\nall\n");
+
+unlink('inc.mk');
+
+# Test recursion when make doesn't think it exists.
+# See Savannah bug #39934
+# Or Red Hat bug https://bugzilla.redhat.com/show_bug.cgi?id=885474
+
+open(MAKEFILE,"> Makefile2");
+print MAKEFILE '
+vpath %.c ../
+foo:
+';
+close(MAKEFILE);
+
+run_make_test(q!
+default: ; @ #MAKEPATH# -f Makefile2
+!,
+ '-j2 --no-print-directory',
+"#MAKE#[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
+#MAKE#[1]: Nothing to be done for 'foo'.");
+
+rmfiles('Makefile2');
+
+1;
diff --git a/tests/scripts/features/load b/tests/scripts/features/load
new file mode 100644
index 0000000..2e3f263
--- /dev/null
+++ b/tests/scripts/features/load
@@ -0,0 +1,102 @@
+# -*-perl-*-
+$description = "Test the load operator.";
+
+$details = "Test dynamic loading of modules.";
+
+# Don't do anything if this system doesn't support "load"
+exists $FEATURES{load} or return -1;
+
+my $sobuild = '$(CC) '.($srcdir? "-I$srcdir":'').' -g -shared -fPIC -o $@ $<';
+
+# First build a shared object
+# Provide both a default and non-default load symbol
+
+unlink(qw(testload.c testload.so));
+
+open(my $F, '> testload.c') or die "open: testload.c: $!\n";
+print $F <<'EOF' ;
+#include <string.h>
+#include <stdio.h>
+
+#include "gnumake.h"
+
+int plugin_is_GPL_compatible;
+
+int
+testload_gmk_setup (gmk_floc *pos)
+{
+ gmk_eval ("TESTLOAD = implicit", 0);
+ return 1;
+}
+
+int
+explicit_setup (gmk_floc *pos)
+{
+ gmk_eval ("TESTLOAD = explicit", 0);
+ return 1;
+}
+EOF
+close($F) or die "close: testload.c: $!\n";
+
+# Make sure we can compile
+run_make_test('testload.so: testload.c ; @'.$sobuild, '', '');
+
+# TEST 1
+run_make_test(q!
+PRE := $(.LOADED)
+load testload.so
+POST := $(.LOADED)
+all: ; @echo pre=$(PRE) post=$(POST) $(TESTLOAD)
+!,
+ '', "pre= post=testload.so implicit\n");
+
+# TEST 2
+# Load using an explicit function
+run_make_test(q!
+PRE := $(.LOADED)
+load ./testload.so(explicit_setup)
+POST := $(.LOADED)
+all: ; @echo pre=$(PRE) post=$(POST) $(TESTLOAD)
+!,
+ '', "pre= post=testload.so explicit\n");
+
+# TEST 4
+# Check multiple loads
+run_make_test(q!
+PRE := $(.LOADED)
+load ./testload.so
+load testload.so(explicit_setup)
+POST := $(.LOADED)
+all: ; @echo pre=$(PRE) post=$(POST) $(TESTLOAD)
+!,
+ '', "pre= post=testload.so implicit\n");
+
+# TEST 5
+# Check auto-rebuild of loaded file that's out of date
+utouch(-10, 'testload.so');
+touch('testload.c');
+
+run_make_test(q!
+PRE := $(.LOADED)
+load ./testload.so
+POST := $(.LOADED)
+all: ; @echo pre=$(PRE) post=$(POST) $(TESTLOAD)
+testload.so: testload.c ; @echo "rebuilding $@"; !.$sobuild,
+ '', "rebuilding testload.so\npre= post=testload.so implicit\n");
+
+# TEST 5
+# Check auto-rebuild of loaded file when it doesn't exist
+unlink('testload.so');
+
+run_make_test(q!
+PRE := $(.LOADED)
+-load ./testload.so(explicit_setup)
+POST := $(.LOADED)
+all: ; @echo pre=$(PRE) post=$(POST) $(TESTLOAD)
+%.so: %.c ; @echo "rebuilding $@"; !.$sobuild,
+ '', "rebuilding testload.so\npre= post=testload.so explicit\n");
+
+unlink(qw(testload.c testload.so)) unless $keep;
+
+# This tells the test driver that the perl test script executed properly.
+1;
diff --git a/tests/scripts/features/loadapi b/tests/scripts/features/loadapi
new file mode 100644
index 0000000..6d3b03f
--- /dev/null
+++ b/tests/scripts/features/loadapi
@@ -0,0 +1,112 @@
+# -*-perl-*-
+$description = "Test the shared object load API.";
+
+$details = "Verify the different aspects of the shared object API.";
+
+# Don't do anything if this system doesn't support "load"
+exists $FEATURES{load} or return -1;
+
+my $sobuild = '$(CC) '.($srcdir? "-I$srcdir":'').' -g -shared -fPIC -o $@ $<';
+
+# First build a shared object
+# Provide both a default and non-default load symbol
+
+unlink(qw(testapi.c testapi.so));
+
+open(my $F, '> testapi.c') or die "open: testapi.c: $!\n";
+print $F <<'EOF' ;
+#include <string.h>
+#include <stdio.h>
+
+#include "gnumake.h"
+
+int plugin_is_GPL_compatible;
+
+static char *
+test_eval (const char *buf)
+{
+ gmk_eval (buf, 0);
+ return NULL;
+}
+
+static char *
+test_expand (const char *val)
+{
+ return gmk_expand (val);
+}
+
+static char *
+test_noexpand (const char *val)
+{
+ char *str = gmk_alloc (strlen (val));
+ strcpy (str, val);
+ return str;
+}
+
+static char *
+func_test (const char *funcname, unsigned int argc, char **argv)
+{
+ char *mem;
+
+ if (strcmp (funcname, "test-expand") == 0)
+ return test_expand (argv[0]);
+
+ if (strcmp (funcname, "test-eval") == 0)
+ return test_eval (argv[0]);
+
+ if (strcmp (funcname, "test-noexpand") == 0)
+ return test_noexpand (argv[0]);
+
+ mem = gmk_alloc (sizeof ("unknown"));
+ strcpy (mem, "unknown");
+ return mem;
+}
+
+int
+testapi_gmk_setup ()
+{
+ gmk_add_function ("test-expand", func_test, 1, 1, GMK_FUNC_DEFAULT);
+ gmk_add_function ("test-noexpand", func_test, 1, 1, GMK_FUNC_NOEXPAND);
+ gmk_add_function ("test-eval", func_test, 1, 1, GMK_FUNC_DEFAULT);
+ gmk_add_function ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.", func_test, 0, 0, 0);
+ return 1;
+}
+EOF
+close($F) or die "close: testapi.c: $!\n";
+
+run_make_test('testapi.so: testapi.c ; @'.$sobuild, '', '');
+
+# TEST 1
+# Check the gmk_expand() function
+run_make_test(q!
+EXPAND = expansion
+all: ; @echo $(test-expand $$(EXPAND))
+load testapi.so
+!,
+ '', "expansion\n");
+
+# TEST 2
+# Check the eval operation. Prove that the argument is expanded only once
+run_make_test(q!
+load testapi.so
+TEST = bye
+ASSIGN = VAR = $(TEST) $(shell echo there)
+$(test-eval $(value ASSIGN))
+TEST = hi
+all:;@echo '$(VAR)'
+!,
+ '', "hi there\n");
+
+# TEST 2
+# Check the no-expand capability
+run_make_test(q!
+load testapi.so
+TEST = hi
+all:;@echo '$(test-noexpand $(TEST))'
+!,
+ '', "\$(TEST)\n");
+
+unlink(qw(testapi.c testapi.so)) unless $keep;
+
+# This tells the test driver that the perl test script executed properly.
+1;
diff --git a/tests/scripts/features/mult_rules b/tests/scripts/features/mult_rules
index 6f120f1..e706e17 100644
--- a/tests/scripts/features/mult_rules
+++ b/tests/scripts/features/mult_rules
@@ -47,7 +47,7 @@ else
$error_code);
# Create the answer to what should be produced by this Makefile
-$answer = "$make_name: *** No rule to make target `extra.h', needed by `foo.o'. Stop.\n";
+$answer = "$make_name: *** No rule to make target 'extra.h', needed by 'foo.o'. Stop.\n";
&compare_output($answer,&get_logfile(1));
diff --git a/tests/scripts/features/output-sync b/tests/scripts/features/output-sync
new file mode 100644
index 0000000..75d7e81
--- /dev/null
+++ b/tests/scripts/features/output-sync
@@ -0,0 +1,334 @@
+# -*-perl-*-
+
+$description = "Test --output-sync (-O) option.";
+
+$details = "Test the synchronization of output from parallel jobs.";
+
+# If we don't have output sync support, never mind.
+exists $FEATURES{'output-sync'} or return -1;
+
+# Output sync can't be tested without parallelization
+$parallel_jobs or return -1;
+
+
+if ($vos) {
+ $sleep_command = "sleep -seconds";
+}
+else {
+ $sleep_command = "sleep";
+}
+
+# The following subdirectories with Makefiles are used in several
+# of the following tests. The model is:
+# foo/Makefile - has a "foo" target that waits for the bar target
+# bar/Makefile - has a "bar" target that runs immediately
+# - has a "baz" target that waits for the foo target
+#
+# So, you start the two sub-makes in parallel and first the "bar" target is
+# built, followed by "foo", followed by "baz". The trick is that first each
+# target prints a "start" statement, then waits (if appropriate), then prints
+# an end statement. Thus we can tell if the -O flag is working, since
+# otherwise these statements would be mixed together.
+
+@syncfiles = ();
+
+sub output_sync_clean {
+ rmfiles('foo/Makefile', 'bar/Makefile', @syncfiles);
+ rmdir('foo');
+ rmdir('bar');
+}
+
+# We synchronize the different jobs by having them wait for a sentinel file to
+# be created, instead of relying on a certain amount of time passing.
+# Unfortunately in this test we have to sleep after we see the sync file,
+# since we also want to make the obtaining of the write synchronization lock
+# reliable. If things are too fast, then sometimes a different job will steal
+# the output sync lock and the output is mis-ordered from what we expect.
+sub output_sync_wait {
+ return "while [ ! -f ../mksync.$_[0] ]; do :; done; rm -f ../mksync.$_[0].wait; $sleep_command 1";
+}
+sub output_sync_set {
+ return "date > ../mksync.$_[0]";
+}
+
+@syncfiles = qw(mksync.foo mksync.foo_start mksync.bar mksync.bar_start);
+
+output_sync_clean();
+mkdir('foo', 0777);
+mkdir('bar', 0777);
+
+$set_foo = output_sync_set('foo');
+$set_bar = output_sync_set('bar');
+$set_foo_start = output_sync_set('foo_start');
+$set_bar_start = output_sync_set('bar_start');
+
+$wait_foo = output_sync_wait('foo');
+$wait_bar = output_sync_wait('bar');
+$wait_foo_start = output_sync_set('foo_start');
+$wait_bar_start = output_sync_set('bar_start');
+
+open(MAKEFILE,"> foo/Makefile");
+print MAKEFILE <<EOF;
+all: foo
+
+foo: foo-base ; \@$set_foo
+
+foo-base:
+\t\@echo foo: start
+\t\@$wait_bar
+\t\@echo foo: end
+
+foo-job: foo-job-base ; \@$set_foo
+
+foo-job-base:
+\t\@$wait_bar_start
+\t\@echo foo: start
+\t\@$set_foo_start
+\t\@$wait_bar
+\t\@echo foo: end
+
+foo-fail:
+\t\@echo foo-fail: start
+\t\@$wait_bar
+\t\@echo foo-fail: end
+\t\@exit 1
+EOF
+close(MAKEFILE);
+
+open(MAKEFILE,"> bar/Makefile");
+print MAKEFILE <<EOF;
+all: bar baz
+
+bar: bar-base ; \@$set_bar
+bar-base:
+\t\@echo bar: start
+\t\@echo bar: end
+
+bar-job: bar-job-base ; \@$set_bar
+
+bar-job-base:
+\t\@echo bar: start
+\t\@$set_bar_start
+\t\@$wait_foo_start
+\t\@echo bar: end
+
+baz: baz-base
+baz-base:
+\t\@echo baz: start
+\t\@$wait_foo
+\t\@echo baz: end
+EOF
+close(MAKEFILE);
+
+# Test per-make synchronization.
+unlink(@syncfiles);
+run_make_test(qq!
+all: make-foo make-bar
+
+make-foo: ; \$(MAKE) -C foo
+
+make-bar: ; \$(MAKE) -C bar!,
+ '-j -Orecurse',
+"#MAKEPATH# -C foo
+#MAKE#[1]: Entering directory '#PWD#/foo'
+foo: start
+foo: end
+#MAKE#[1]: Leaving directory '#PWD#/foo'
+#MAKEPATH# -C bar
+#MAKE#[1]: Entering directory '#PWD#/bar'
+bar: start
+bar: end
+baz: start
+baz: end
+#MAKE#[1]: Leaving directory '#PWD#/bar'\n", 0, 6);
+
+# Test per-target synchronization.
+# Note we have to sleep again here after starting the foo makefile before
+# starting the bar makefile, otherwise the "entering/leaving" messages for the
+# submakes might be ordered differently than we expect.
+
+unlink(@syncfiles);
+run_make_test(qq!
+x=1
+\$xMAKEFLAGS += --no-print-directory
+
+all: make-foo make-bar
+
+make-foo: ; \$(MAKE) -C foo
+
+make-bar: ; $sleep_command 1 ; \$(MAKE) -C bar!,
+ '-j --output-sync=target',
+"#MAKEPATH# -C foo
+$sleep_command 1 ; #MAKEPATH# -C bar
+#MAKE#[1]: Entering directory '#PWD#/bar'
+bar: start
+bar: end
+#MAKE#[1]: Leaving directory '#PWD#/bar'
+#MAKE#[1]: Entering directory '#PWD#/foo'
+foo: start
+foo: end
+#MAKE#[1]: Leaving directory '#PWD#/foo'
+#MAKE#[1]: Entering directory '#PWD#/bar'
+baz: start
+baz: end
+#MAKE#[1]: Leaving directory '#PWD#/bar'\n", 0, 6);
+
+# Rerun but this time suppress the directory tracking
+unlink(@syncfiles);
+run_make_test(undef, '-j --output-sync=target x=',
+ "#MAKEPATH# -C foo
+$sleep_command 1 ; #MAKEPATH# -C bar
+bar: start
+bar: end
+foo: start
+foo: end
+baz: start
+baz: end\n", 0, 6);
+
+# Test that messages from make itself are enclosed with
+# "Entering/Leaving directory" messages.
+unlink(@syncfiles);
+run_make_test(qq!
+all: make-foo-fail make-bar-bar
+
+make-foo-fail: ; \$(MAKE) -C foo foo-fail
+
+make-bar-bar: ; $sleep_command 1 ; \$(MAKE) -C bar bar!,
+ '-j -O',
+"#MAKEPATH# -C foo foo-fail
+$sleep_command 1 ; #MAKEPATH# -C bar bar
+#MAKE#[1]: Entering directory '#PWD#/bar'
+bar: start
+bar: end
+#MAKE#[1]: Leaving directory '#PWD#/bar'
+#MAKE#[1]: Entering directory '#PWD#/foo'
+foo-fail: start
+foo-fail: end
+Makefile:20: recipe for target 'foo-fail' failed
+#MAKE#[1]: *** [foo-fail] Error 1
+#MAKE#[1]: Leaving directory '#PWD#/foo'
+#MAKEFILE#:4: recipe for target 'make-foo-fail' failed
+#MAKE#: *** [make-foo-fail] Error 2\n",
+512);
+
+# Test the per-job synchronization.
+# For this we'll have bar-job:
+# print start, invoke bar-start, wait for foo-start, print end, print-bar-end
+# And foo-job:
+# wait for bar-start, print foo-start, wait for bar-end, print end
+
+unlink(@syncfiles);
+run_make_test(qq!
+all: make-foo make-bar
+
+make-foo: ; \$(MAKE) -C foo foo-job
+
+make-bar: ; $sleep_command 1 ; \$(MAKE) -C bar bar-job!,
+ '-j --output-sync=line',
+"#MAKEPATH# -C foo foo-job
+$sleep_command 1 ; #MAKEPATH# -C bar bar-job
+#MAKE#[1]: Entering directory '#PWD#/foo'
+foo: start
+#MAKE#[1]: Leaving directory '#PWD#/foo'
+#MAKE#[1]: Entering directory '#PWD#/bar'
+bar: start
+#MAKE#[1]: Leaving directory '#PWD#/bar'
+#MAKE#[1]: Entering directory '#PWD#/bar'
+bar: end
+#MAKE#[1]: Leaving directory '#PWD#/bar'
+#MAKE#[1]: Entering directory '#PWD#/foo'
+foo: end
+#MAKE#[1]: Leaving directory '#PWD#/foo'\n", 0, 6);
+
+
+# Remove temporary directories and contents.
+output_sync_clean();
+
+# Ensure recursion doesn't mis-order or double-print output
+run_make_test(qq!
+all:
+\t\@echo foo
+\t\@+echo bar
+!,
+ '-j -Oline', "foo\nbar\n");
+
+run_make_test(undef, '-j -Otarget', "foo\nbar\n");
+
+# Ensure when make writes out command it's not misordered
+run_make_test(qq!
+all:
+\t\@echo foobar
+\ttrue
+!,
+ '-j -Oline', "foobar\ntrue\n");
+
+run_make_test(undef, '-j -Otarget', "foobar\ntrue\n");
+
+# Ensure that shell functions inside recipes write stderr to the sync file
+run_make_test(q!
+all: ; @: $(shell echo foo 1>&2)
+!,
+ '-w -Oline', "#MAKE#: Entering directory '#PWD#'\nfoo\n#MAKE#: Leaving directory '#PWD#'\n");
+
+# Ensure that output generated while parsing makefiles is synced
+# when appropriate.
+run_make_test(q!
+$(shell echo foo 1>&2)
+all: ; echo bar
+!,
+ '-s -w -Otarget', "#MAKE#: Entering directory '#PWD#'\nfoo\n#MAKE#: Leaving directory '#PWD#'\n#MAKE#: Entering directory '#PWD#'\nbar\n#MAKE#: Leaving directory '#PWD#'\n");
+
+# Test recursion
+$m1 = get_tmpfile();
+$m2 = get_tmpfile();
+
+open(M1, "> $m1");
+print M1 <<'EOF';
+$(shell echo d1 stderr 1>&2)
+$(info d1 stdout)
+all:; @:
+EOF
+close(M1);
+
+open(M2, "> $m2");
+print M2 <<'EOF';
+$(shell echo d2 stderr 1>&2)
+$(info d2 stdout)
+all:; @:
+# Force an ordering on the output
+$(shell sleep 1)
+EOF
+close(M2);
+
+run_make_test(qq!
+all: t1 t2
+t1: ; \@\$(MAKE) -f $m1
+t2: ; \@\$(MAKE) -f $m2
+!,
+ "-j -Oline", "#MAKE#[1]: Entering directory '#PWD#'\nd1 stderr\nd1 stdout\n#MAKE#[1]: Leaving directory '#PWD#'\n#MAKE#[1]: Entering directory '#PWD#'\nd2 stderr\nd2 stdout\n#MAKE#[1]: Leaving directory '#PWD#'\n");
+
+rmfiles($m1, $m2);
+
+# Ensure that output generated while parsing makefiles is synced
+# when appropriate.
+$m1 = get_tmpfile();
+
+open(M1, "> $m1");
+print M1 <<'EOF';
+$(shell echo d1 stderr 1>&2)
+$(info d1 stdout)
+$(error d1 failed)
+all:; @:
+EOF
+close(M1);
+
+run_make_test(qq!
+all: t1
+t1: ; -\@\$(MAKE) -f $m1
+!,
+ "-j -Oline", "#MAKE#[1]: Entering directory '#PWD#'\nd1 stderr\nd1 stdout\n$m1:3: *** d1 failed. Stop.\n#MAKE#[1]: Leaving directory '#PWD#'\n#MAKEFILE#:3: recipe for target 't1' failed\n#MAKE#: [t1] Error 2 (ignored)\n");
+
+rmfiles($m1);
+
+# This tells the test driver that the perl test script executed properly.
+1;
diff --git a/tests/scripts/features/parallelism b/tests/scripts/features/parallelism
index cc0f84f..c702c26 100644
--- a/tests/scripts/features/parallelism
+++ b/tests/scripts/features/parallelism
@@ -41,7 +41,7 @@ all: 1 2; \@echo success
1.inc: ; \@echo ONE.inc; $sleep_command 2; echo TWO.inc; echo '1: ; \@echo ONE; $sleep_command 2; echo TWO' > \$\@
2.inc: ; \@$sleep_command 1; echo THREE.inc; echo '2: ; \@$sleep_command 1; echo THREE' > \$\@",
"-j4",
- "ONE.inc\nTHREE.inc\nTWO.inc\nONE\nTHREE\nTWO\nsuccess\n");
+ "ONE.inc\nTHREE.inc\nTWO.inc\nONE\nTHREE\nTWO\nsuccess\n", 0, 7);
rmfiles(qw(1.inc 2.inc));
@@ -60,7 +60,7 @@ endif
1.inc: ; \@echo ONE.inc; $sleep_command 2; echo TWO.inc; echo '1: ; \@echo ONE; $sleep_command 2; echo TWO' > \$\@
2.inc: ; \@$sleep_command 1; echo THREE.inc; echo '2: ; \@$sleep_command 1; echo THREE' > \$\@",
"-j4",
- "ONE.inc\nTHREE.inc\nTWO.inc\nONE\nTHREE\nTWO\nsuccess\n");
+ "ONE.inc\nTHREE.inc\nTWO.inc\nONE\nTHREE\nTWO\nsuccess\n", 0, 7);
rmfiles(qw(1.inc 2.inc));
@@ -91,21 +91,24 @@ run_make_test("
all: fail.1 ok fail.2 fail.3
fail.1 fail.2 fail.3:
- \@sleep \$(patsubst fail.%,%,\$\@)
+ \@$sleep_command \$(patsubst fail.%,%,\$\@)
\@echo Fail
\@exit 1
ok:
- \@sleep 4
+ \@$sleep_command 4
\@echo Ok done",
- '-rR -j5', 'Fail
+ '-rR -j5', "Fail
+#MAKEFILE#:6: recipe for target 'fail.1' failed
#MAKE#: *** [fail.1] Error 1
#MAKE#: *** Waiting for unfinished jobs....
Fail
+#MAKEFILE#:6: recipe for target 'fail.2' failed
#MAKE#: *** [fail.2] Error 1
Fail
+#MAKEFILE#:6: recipe for target 'fail.3' failed
#MAKE#: *** [fail.3] Error 1
-Ok done',
+Ok done",
512);
@@ -140,81 +143,40 @@ intermed: | phony ; touch $@
phony: ; : phony', '-rR -j', ': phony');
rmfiles('target');
-# TEST #10: Don't put --jobserver-fds into a re-exec'd MAKEFLAGS.
-# We can't test this directly because there's no way a makefile can
-# show the value of MAKEFLAGS we were re-exec'd with. We can intuit it
-# by looking for "disabling jobserver mode" warnings; we should only
-# get one from the original invocation and none from the re-exec.
-# See Savannah bug #18124
+# TEST #11: Make sure -jN from MAKEFLAGS is processed even when we re-exec
+# See Savannah bug #33873
+
+$extraENV{MAKEFLAGS} = '-j4';
run_make_test(q!
+things = thing1 thing2
+all: $(things)
+thing1:; @sleep 1; echo '$@ start'; sleep 2; echo '$@ end'
+thing2:; @echo '$@ start'; sleep 2; echo '$@ end'
-include inc.mk
-recur:
-# @echo 'MAKEFLAGS = $(MAKEFLAGS)'
- @rm -f inc.mk
- @$(MAKE) -j2 -f #MAKEFILE# all
-all:
-# @echo 'MAKEFLAGS = $(MAKEFLAGS)'
- @echo $@
-inc.mk:
-# @echo 'MAKEFLAGS = $(MAKEFLAGS)'
- @echo 'FOO = bar' > $@
+inc.mk: ; @touch $@
!,
- '--no-print-directory -j2', "#MAKE#[1]: warning: -jN forced in submake: disabling jobserver mode.\nall\n");
+ '', "thing2 start\nthing1 start\nthing2 end\nthing1 end\n");
+delete $extraENV{MAKEFLAGS};
rmfiles('inc.mk');
-if ($all_tests) {
- # Implicit files aren't properly recreated during parallel builds
- # Savannah bug #26864
+# Ensure intermediate/secondary files are not pruned incorrectly.
+# See Savannah bug #30653
- # The first run works fine
- run_make_test(q!
-%.bar: %.x foo.y ; cat $^ > $@
-%.x: ; touch $@
-foo.y: foo.y.in ; cp $< $@
-foo.y.in: ; touch $@
-!,
- '-j2 main.bar',
- "touch foo.y.in
-touch main.x
-cp foo.y.in foo.y
-cat main.x foo.y > main.bar
-rm main.x");
-
- # Now we touch the .in file and make sure it still works
- touch('foo.y.in');
-
- run_make_test(undef, '-j2 main.bar', "cp foo.y.in foo.y
-touch main.x
-cat main.x foo.y > main.bar
-rm main.x");
-
- # Clean up
- rmfiles(qw(foo.y foo.y.in main.bar));
-}
+utouch(-15, 'file2');
+utouch(-10, 'file4');
+utouch(-5, 'file1');
-if ($all_tests) {
- # Jobserver FD handling is messed up in some way.
- # Savannah bug #28189
- # It doesn't look like that bug anymore but this is the code it runs
-
- run_make_test(q!
-ifdef EXTRA
-vpath %.dst /
-xxx.dst: ; true
-yyy.dst: ; true
-endif
-
-M := $(MAKE)
-xx: ; $M --no-print-directory -j2 -f $(MAKEFILE_LIST) xxx.dst yyy.dst EXTRA=1
+run_make_test(q!
+.INTERMEDIATE: file3
+file4: file3 ; @mv -f $< $@
+file3: file2 ; touch $@
+file2: file1 ; @touch $@
!,
- '-j2',
- '#MAKE#[1]: warning: -jN forced in submake: disabling jobserver mode.
-true
-true
-');
-}
+ '--no-print-directory -j2', "touch file3");
+
+rmfiles('file1', 'file2', 'file3', 'file4');
# Make sure that all jobserver FDs are closed if we need to re-exec the
# master copy.
diff --git a/tests/scripts/features/patspecific_vars b/tests/scripts/features/patspecific_vars
index 8ca228d..a530bba 100644
--- a/tests/scripts/features/patspecific_vars
+++ b/tests/scripts/features/patspecific_vars
@@ -81,7 +81,7 @@ all: bar baz
b%: pattern := good $$t
-global := orginal $$t
+global := original $$t
# normal target
@@ -103,14 +103,14 @@ else
%z: a := global: $(global) pattern: $(pattern) inherit: $(inherit)
endif
-%z: ; @echo \'pattrn: $a;\'
+%z: ; @echo \'pattern: $a;\'
global := new $$t
',
'',
-'normal: global: orginal $t pattern: inherit: ;
-pattrn: global: orginal $t pattern: inherit: ;');
+'normal: global: original $t pattern: inherit: ;
+pattern: global: original $t pattern: inherit: ;');
# TEST #7 -- test expansion of pattern-specific recursive variables
@@ -118,7 +118,7 @@ pattrn: global: orginal $t pattern: inherit: ;');
run_make_test(undef, # reuse previous makefile
'rec=1',
'normal: global: new $t pattern: good $t inherit: good $t;
-pattrn: global: new $t pattern: good $t inherit: good $t;');
+pattern: global: new $t pattern: good $t inherit: good $t;');
# TEST #8: override in pattern-specific variables
diff --git a/tests/scripts/features/patternrules b/tests/scripts/features/patternrules
index eebe7c0..0ff49a7 100644
--- a/tests/scripts/features/patternrules
+++ b/tests/scripts/features/patternrules
@@ -110,7 +110,8 @@ $(dir)/foo.bar:
',
"dir=$dir",
-"#MAKE#: *** [$dir/foo.bar] Error 1",
+"#MAKEFILE#:6: recipe for target '$dir/foo.bar' failed
+#MAKE#: *** [$dir/foo.bar] Error 1",
512);
unlink("$dir/foo.bar");
@@ -203,7 +204,7 @@ CWEAVE := :
%.tex : %.w %.ch
!,
'foo.tex',
- "#MAKE#: *** No rule to make target `foo.tex'. Stop.", 512);
+ "#MAKE#: *** No rule to make target 'foo.tex'. Stop.", 512);
unlink(@f);
diff --git a/tests/scripts/features/recursion b/tests/scripts/features/recursion
index a6b8f90..fd5e351 100644
--- a/tests/scripts/features/recursion
+++ b/tests/scripts/features/recursion
@@ -18,7 +18,7 @@ last:
',
('CFLAGS=-O -w' . ($parallel_jobs ? ' -j 2' : '')),
($vos
- ? "#MAKE#: Entering directory `#PWD#'
+ ? "#MAKE#: Entering directory '#PWD#'
make 'CFLAGS=-O' -f #MAKEFILE# foo
make CFLAGS=-O
MAKELEVEL = 0
@@ -26,20 +26,20 @@ make 'CFLAGS=-O' -f #MAKEFILE# last
make CFLAGS=-O
MAKELEVEL = 0
THE END
-#MAKE#: Leaving directory `#PWD#'"
- : "#MAKE#: Entering directory `#PWD#'
+#MAKE#: Leaving directory '#PWD#'"
+ : "#MAKE#: Entering directory '#PWD#'
#MAKEPATH# -f #MAKEFILE# foo
-#MAKE#[1]: Entering directory `#PWD#'
+#MAKE#[1]: Entering directory '#PWD#'
#MAKEPATH#
MAKELEVEL = 1
#MAKEPATH# -f #MAKEFILE# last
-#MAKE#[2]: Entering directory `#PWD#'
+#MAKE#[2]: Entering directory '#PWD#'
#MAKEPATH#
MAKELEVEL = 2
THE END
-#MAKE#[2]: Leaving directory `#PWD#'
-#MAKE#[1]: Leaving directory `#PWD#'
-#MAKE#: Leaving directory `#PWD#'"));
+#MAKE#[2]: Leaving directory '#PWD#'
+#MAKE#[1]: Leaving directory '#PWD#'
+#MAKE#: Leaving directory '#PWD#'"));
# Test command line overrides.
diff --git a/tests/scripts/features/reinvoke b/tests/scripts/features/reinvoke
index 9952ced..eb1a349 100644
--- a/tests/scripts/features/reinvoke
+++ b/tests/scripts/features/reinvoke
@@ -57,9 +57,24 @@ include $(F)',
# Now try with the file we're not updating being the actual file we're
# including: this and the previous one test different parts of the code.
-run_make_test(undef, "F=b", "[ -f b ] || echo >> b\nhello\n")
+run_make_test(undef, 'F=b', "[ -f b ] || echo >> b\nhello\n")
&rmfiles('a','b','c');
+# Ensure command line variables are preserved properly across re-exec
+# Tests for Savannah bug #30723
+
+run_make_test('
+ifdef RECURSE
+-include foo30723
+endif
+recurse: ; @$(MAKE) -f $(MAKEFILE_LIST) RECURSE=1 test
+test: ; @echo F.O=$(F.O)
+foo30723: ; @touch $@
+',
+ '--no-print-directory F.O=bar', "F.O=bar\n");
+
+unlink('foo30723');
+
# This tells the test driver that the perl test script executed properly.
1;
diff --git a/tests/scripts/features/rule_glob b/tests/scripts/features/rule_glob
new file mode 100644
index 0000000..2d377e7
--- /dev/null
+++ b/tests/scripts/features/rule_glob
@@ -0,0 +1,37 @@
+# -*-perl-*-
+
+$description = "Test globbing in targets and prerequisites.";
+
+$details = "";
+
+touch(qw(a.one a.two a.three));
+
+# Test wildcards in regular targets and prerequisites
+run_make_test(q{
+.PHONY: all a.one a.two a.three
+all: a.one* a.t[a-z0-9]o a.th[!q]ee
+a.o[Nn][Ee] a.t*: ; @echo $@
+},
+ '', "a.one\na.two\na.three");
+
+# Test wildcards in pattern targets and prerequisites
+run_make_test(q{
+.PHONY: all
+all: a.four
+%.four : %.t* ; @echo $@: $(sort $^)
+},
+ '', "a.four: a.three a.two");
+
+# Test wildcards in second expansion targets and prerequisites
+run_make_test(q{
+.PHONY: all
+all: a.four
+.SECONDEXPANSION:
+%.four : $$(sort %.t*) ; @echo $@: $(sort $^)
+},
+ '', "a.four: a.three a.two");
+
+unlink(qw(a.one a.two a.three));
+
+# This tells the test driver that the perl test script executed properly.
+1;
diff --git a/tests/scripts/features/se_explicit b/tests/scripts/features/se_explicit
index 79e0a36..790017a 100644
--- a/tests/scripts/features/se_explicit
+++ b/tests/scripts/features/se_explicit
@@ -6,6 +6,9 @@ $details = "";
# TEST #0: Test handing of '$' in prerequisites with and without second
# expansion.
+# If we don't support archives then the prerequisite is different
+my $prereq = exists $FEATURES{'archives'} ? '$' : '$(PRE)';
+
run_make_test(q!
ifdef SE
.SECONDEXPANSION:
@@ -18,7 +21,7 @@ PRE = three four
.DEFAULT: ; @echo '$@'
!,
'',
- "\$\nbar\$biz\nfoo\$bar : bar\$baz bar\$biz");
+ "$prereq\nbar\$biz\nfoo\$bar : bar\$baz bar\$biz");
run_make_test(undef, 'SE=1', "three\nfour\nbariz\nfoo\$bar : baraz bariz");
@@ -115,7 +118,7 @@ run_make_test(q!
.SECONDEXPANSION:
all : $$(eval $$(info test))
!,
- '', "test\n#MAKE#: Nothing to be done for `all'.\n");
+ '', "test\n#MAKE#: Nothing to be done for 'all'.\n");
# TEST #5: (NEGATIVE) catch eval in a prereq list trying to create new
# target/prereq relationships.
@@ -152,5 +155,13 @@ a%l: q1x $$+ q2x ; @echo '$+'
'', "q1x bar bar q2x bar bar\n");
-# This tells the test driver that the perl test script executed properly.
+# Allow patsubst shorthand in second expansion context.
+# Requires the colon to be quoted. Savannah bug #16545
+run_make_test(q!
+.PHONY: foo.bar
+.SECONDEXPANSION:
+foo: $$(@\\:%=%.bar); @echo '$^'
+!,
+ '', "foo.bar\n");
+
1;
diff --git a/tests/scripts/features/se_implicit b/tests/scripts/features/se_implicit
index e9acb2f..ec09d8d 100644
--- a/tests/scripts/features/se_implicit
+++ b/tests/scripts/features/se_implicit
@@ -222,5 +222,39 @@ foo.o:
!,
'', "\n");
+# Test #10: Test second expansion with second expansion prerequisites
+# Ensures pattern_search() recurses with SE prereqs.
+touch('a');
+run_make_test(q!
+.SECONDEXPANSION:
+sim_base_rgg := just_a_name
+sim_base_src := a
+sim_base_f := a a a
+sim_%.f: $${sim_$$*_f}
+ echo $@
+sim_%.src: $${sim_$$*_src}
+ echo $@
+sim_%: \
+ $$(if $$(sim_$$*_src),sim_%.src) \
+ $$(if $$(sim_$$*_f),sim_%.f) \
+ $$(if $$(sim_$$*_rgg),$$(sim_$$*_rgg).s)
+ echo $@
+!,
+ '-s sim_base', "#MAKE#: *** No rule to make target 'sim_base'. Stop.", 512);
+
+unlink('a');
+
+# Ensure that order-only tokens embedded in second expansions are parsed
+run_make_test(q!
+.SECONDEXPANSION:
+PREREQS=p1|p2
+P2=p2
+all : foo bar
+f%o: $$(PREREQS) ; @echo '$@' from '$^' and '$|'
+b%r: p1|$$(P2) ; @echo '$@' from '$^' and '$|'
+p% : ; : $@
+!,
+ "", ": p1\n: p2\nfoo from p1 and p2\nbar from p1 and p2\n");
+
# This tells the test driver that the perl test script executed properly.
1;
diff --git a/tests/scripts/features/shell_assignment b/tests/scripts/features/shell_assignment
new file mode 100644
index 0000000..686e4bd
--- /dev/null
+++ b/tests/scripts/features/shell_assignment
@@ -0,0 +1,65 @@
+# -*-perl-*-
+
+$description = "Test BSD-style shell assignments (VAR != VAL) for variables.";
+
+$details = "";
+
+# TEST 0: Basic shell assignment (!=).
+
+run_make_test('
+.POSIX:
+
+demo1!=printf \' 1 2 3\n4\n\n5 \n \n 6\n\n\n\n\'
+demo2 != printf \'7 8\n \'
+demo3 != printf \'$$(demo2)\'
+demo4 != printf \' 2 3 \n\'
+demo5 != printf \' 2 3 \n\n\'
+all: ; @echo "<$(demo1)> <$(demo2)> <$(demo3)> <$(demo4)> <${demo5}>"
+',
+ '', "< 1 2 3 4 5 6 > <7 8 > <7 8 > < 2 3 > < 2 3 >\n");
+
+# TEST 1: Handle '#' the same way as BSD make
+
+run_make_test('
+foo1!=echo bar#baz
+hash != printf \'\043\'
+foo2!= echo "bar$(hash)baz"
+
+all: ; @echo "<$(foo1)> <$(hash)> <$(foo2)>"
+',
+ '', "<bar> <#> <bar#baz>\n");
+
+# TEST 2: shell assignment variables (from !=) should be recursive.
+# Note that variables are re-evaluated later, so the shell can output
+# a value like $(XYZZY) as part of !=. The $(XYZZY) will be EVALUATED
+# when the value containing it is evaluated. On the negative side, this
+# means if you don't want this, you need to escape dollar signs as $$.
+# On the positive side, it means that shell programs can output macros
+# that are then evaluated as they are traditionally evaluated.. and that
+# you can use traditional macro evaluation semantics to implement !=.
+
+run_make_test('
+XYZZY = fiddle-dee-dee
+dollar = $$
+VAR3 != printf \'%s\' \'$(dollar)(XYZZY)\'
+
+all: ; @echo "<$(VAR3)>"
+',
+ '', "<fiddle-dee-dee>\n");
+
+
+# TEST 3: Overrides invoke shell anyway; they just don't store the result
+# in a way that is visible.
+
+run_make_test('
+
+override != echo abc > ,abc ; cat ,abc
+
+all: ; @echo "<$(override)>" ; cat ,abc
+',
+ 'override=xyz', "<xyz>\nabc\n");
+
+unlink(',abc');
+
+
+1;
diff --git a/tests/scripts/features/targetvars b/tests/scripts/features/targetvars
index ddd6c1f..a9b8dbe 100644
--- a/tests/scripts/features/targetvars
+++ b/tests/scripts/features/targetvars
@@ -237,10 +237,20 @@ a: ; @echo "$(FOO)"
run_make_test(undef, 'FOO=C', "C f1\n");
+# TEST #19: Conditional variables with command-line settings
+
+run_make_test('
+a: FOO ?= f1
+a: ; @echo "$(FOO)"
+',
+ '', "f1\n");
+
+run_make_test(undef, 'FOO=C', "C\n");
+
# TEST #20: Check for continuation after semicolons
run_make_test(q!
-a: A = 'hello; \
+a: A = 'hello;\
world'
a: ; @echo $(A)
!,
diff --git a/tests/scripts/features/utf8 b/tests/scripts/features/utf8
new file mode 100644
index 0000000..54bc471
--- /dev/null
+++ b/tests/scripts/features/utf8
@@ -0,0 +1,11 @@
+# -*-perl-*-
+
+$description = "Test support for UTF-8.";
+
+$details = "";
+
+# Verify that the UTF-8 BOM is ignored.
+run_make_test("\xEF\xBB\xBFall: ; \@echo \$\@\n", '', "all");
+
+# This tells the test driver that the perl test script executed properly.
+1;
diff --git a/tests/scripts/features/varnesting b/tests/scripts/features/varnesting
index 15d5071..d8f3ffb 100644
--- a/tests/scripts/features/varnesting
+++ b/tests/scripts/features/varnesting
@@ -1,29 +1,30 @@
-$description = "The following test creates a makefile to ...";
+# -*-perl-*-
+$description = "Test recursive variables";
$details = "";
-open(MAKEFILE,"> $makefile");
-
-# The Contents of the MAKEFILE ...
-
-print MAKEFILE "x = variable1\n"
- ."variable2 := Hello\n"
- ."y = \$(subst 1,2,\$(x))\n"
- ."z = y\n"
- ."a := \$(\$(\$(z)))\n"
- ."all: \n"
- ."\t\@echo \$(a)\n";
-
-# END of Contents of MAKEFILE
-
-close(MAKEFILE);
-
-&run_make_with_options($makefile,"",&get_logfile);
-
-# Create the answer to what should be produced by this Makefile
-$answer = "Hello\n";
-
-&compare_output($answer,&get_logfile(1));
+run_make_test('
+x = variable1
+variable2 := Hello
+y = $(subst 1,2,$(x))
+z = y
+a := $($($(z)))
+all:
+ @echo $(a)
+',
+ '', "Hello\n");
+
+# This tests resetting the value of a variable while expanding it.
+# You may only see problems with this if you're using valgrind or
+# some other memory checker that poisons freed memory.
+# See Savannah patch #7534
+
+run_make_test('
+VARIABLE = $(eval VARIABLE := echo hi)$(VARIABLE)
+wololo:
+ @$(VARIABLE)
+',
+ '', "hi\n");
1;
diff --git a/tests/scripts/features/vpath b/tests/scripts/features/vpath
index a3aebd9..ec24165 100644
--- a/tests/scripts/features/vpath
+++ b/tests/scripts/features/vpath
@@ -74,7 +74,7 @@ vpath-d/a: fail.te
vpath-d/b : fail.te
vpath-d/fail.te:
!,
- '', "#MAKE#: Nothing to be done for `default'.\n");
+ '', "#MAKE#: Nothing to be done for 'default'.\n");
rmdir('vpath-d');
diff --git a/tests/scripts/features/vpath3 b/tests/scripts/features/vpath3
index 978c5ee..c6ede28 100644
--- a/tests/scripts/features/vpath3
+++ b/tests/scripts/features/vpath3
@@ -1,50 +1,35 @@
-# -*-perl-*-
+# -*-perl-*-
$description = "Test the interaction of the -lfoo feature and vpath";
$details = "";
-open(MAKEFILE,"> $makefile");
-
-# The Contents of the MAKEFILE ...
-
-print MAKEFILE "vpath %.a a1\n";
-print MAKEFILE "vpath %.so b1\n";
-print MAKEFILE "vpath % a2 b2\n";
-print MAKEFILE "vpath % b3\n";
-print MAKEFILE "all: -l1 -l2 -l3; \@echo \$^\n";
-
-# END of Contents of MAKEFILE
-
-close(MAKEFILE);
-
-mkdir("a1", 0777);
-mkdir("b1", 0777);
-mkdir("a2", 0777);
-mkdir("b2", 0777);
-mkdir("b3", 0777);
-
-@files_to_touch = ("a1${pathsep}lib1.a",
- "b1${pathsep}lib1.so",
- "a2${pathsep}lib2.a",
- "b2${pathsep}lib2.so",
- "lib3.a",
- "b3${pathsep}lib3.so");
+my @dirs_to_make = qw(a1 b1 a2 b2 b3);
+for my $d (@dirs_to_make) {
+ mkdir($d, 0777);
+}
+my @files_to_touch = ("a1${pathsep}lib1.a",
+ "a1${pathsep}libc.a",
+ "b1${pathsep}lib1.so",
+ "a2${pathsep}lib2.a",
+ "b2${pathsep}lib2.so",
+ "lib3.a",
+ "b3${pathsep}lib3.so");
&touch(@files_to_touch);
-&run_make_with_options($makefile,"",&get_logfile);
-
-# Create the answer to what should be produced by this Makefile
-$answer = "a1${pathsep}lib1.a a2${pathsep}lib2.a lib3.a\n";
-
-if (&compare_output($answer,&get_logfile(1)))
-{
- unlink @files_to_touch;
- rmdir("a1");
- rmdir("b1");
- rmdir("a2");
- rmdir("b2");
- rmdir("b3");
+run_make_test('
+vpath %.h b3
+vpath %.a a1
+vpath %.so b1
+vpath % a2 b2
+vpath % b3
+all: -l1 -lc -l2 -l3; @echo $^
+',
+ '', "a1${pathsep}lib1.a a1${pathsep}libc.a a2${pathsep}lib2.a lib3.a\n");
+
+unlink(@files_to_touch);
+for my $d (@dirs_to_make) {
+ rmdir($d);
}
1;
diff --git a/tests/scripts/features/vpathgpath b/tests/scripts/features/vpathgpath
index f7683f5..5e6217b 100644
--- a/tests/scripts/features/vpathgpath
+++ b/tests/scripts/features/vpathgpath
@@ -57,7 +57,7 @@ sub touchfiles {
push(@touchedfiles, "bar.c");
-$answer = "$make_name: Nothing to be done for `general'.\n";
+$answer = "$make_name: Nothing to be done for 'general'.\n";
&compare_output($answer,&get_logfile(1));
diff --git a/tests/scripts/features/vpathplus b/tests/scripts/features/vpathplus
index a37fbed..361788c 100644
--- a/tests/scripts/features/vpathplus
+++ b/tests/scripts/features/vpathplus
@@ -86,6 +86,7 @@ cat ${VP}foo.c bar.c > foo.b 2>/dev/null || exit 1
$answer = "not creating notarget.c from notarget.d
cat notarget.c > notarget.b 2>/dev/null || exit 1
+$makefile:16: recipe for target 'notarget.b' failed
$make_name: *** [notarget.b] Error 1
";
diff --git a/tests/scripts/functions/call b/tests/scripts/functions/call
index f3c5470..9db9da7 100644
--- a/tests/scripts/functions/call
+++ b/tests/scripts/functions/call
@@ -13,7 +13,7 @@ print MAKEFILE <<'EOMAKE';
#
reverse = $2 $1
-# A complex `map' function, using recursive `call'.
+# A complex 'map' function, using recursive 'call'.
#
map = $(foreach a,$2,$(call $1,$a))
@@ -38,7 +38,7 @@ two = $(call one,$(1),foo,$(2))
DEP_foo = bar baz quux
DEP_baz = quux blarp
rest = $(wordlist 2,$(words ${1}),${1})
-tclose = $(if $1,$(firstword $1) \
+tclose = $(if $1,$(firstword $1)\
$(call tclose,$(sort ${DEP_$(firstword $1)} $(call rest,$1))))
all: ; @echo '$(call reverse,bar,foo)'; \
@@ -96,4 +96,15 @@ close(MAKEFILE);
$answer = "1 2 3 4 5 6 7 8 9\n1 2 3 4 5\n1 2 3\n1 2 3\n";
&compare_output($answer,&get_logfile(1));
+# Ensure that variables are defined in global scope even in a $(call ...)
+
+delete $ENV{X123};
+
+run_make_test('
+tst = $(eval export X123)
+$(call tst)
+all: ; @echo "$${X123-not set}"
+',
+ '', "\n");
+
1;
diff --git a/tests/scripts/functions/file b/tests/scripts/functions/file
new file mode 100644
index 0000000..9a4cd02
--- /dev/null
+++ b/tests/scripts/functions/file
@@ -0,0 +1,101 @@
+# -*-perl-*-
+
+$description = 'Test the $(file ...) function.';
+
+# Test > and >>
+run_make_test(q!
+define A
+a
+b
+endef
+B = c d
+$(file >file.out,$(A))
+$(foreach L,$(B),$(file >> file.out,$L))
+x:;@echo hi; cat file.out
+!,
+ '', "hi\na\nb\nc\nd");
+
+unlink('file.out');
+
+# Test >> to a non-existent file
+run_make_test(q!
+define A
+a
+b
+endef
+$(file >> file.out,$(A))
+x:;@cat file.out
+!,
+ '', "a\nb");
+
+unlink('file.out');
+
+# Test > to a read-only file
+touch('file.out');
+chmod(0444, 'file.out');
+
+# Find the error that will be printed
+# This seems complicated, but we need the message from the C locale
+my $loc = undef;
+if ($has_POSIX) {
+ $loc = POSIX::setlocale(POSIX::LC_MESSAGES);
+ POSIX::setlocale(POSIX::LC_MESSAGES, 'C');
+}
+my $e;
+open(my $F, '>', 'file.out') and die "Opened read-only file!\n";
+$e = "$!";
+$loc and POSIX::setlocale(POSIX::LC_MESSAGES, $loc);
+
+run_make_test(q!
+define A
+a
+b
+endef
+$(file > file.out,$(A))
+x:;@cat file.out
+!,
+ '', "#MAKEFILE#:6: *** open: file.out: $e. Stop.",
+ 512);
+
+unlink('file.out');
+
+# Use variables for operator and filename
+run_make_test(q!
+define A
+a
+b
+endef
+OP = >
+FN = file.out
+$(file $(OP) $(FN),$(A))
+x:;@cat file.out
+!,
+ '', "a\nb");
+
+unlink('file.out');
+
+# Don't add newlines if one already exists
+run_make_test(q!
+define A
+a
+b
+
+endef
+$(file >file.out,$(A))
+x:;@cat file.out
+!,
+ '', "a\nb");
+
+unlink('file.out');
+
+# Empty text
+run_make_test(q!
+$(file >file.out,)
+$(file >>file.out,)
+x:;@cat file.out
+!,
+ '', "\n\n");
+
+unlink('file.out');
+
+1;
diff --git a/tests/scripts/functions/filter-out b/tests/scripts/functions/filter-out
index 6c8b27a..1fe4819 100644
--- a/tests/scripts/functions/filter-out
+++ b/tests/scripts/functions/filter-out
@@ -1,6 +1,6 @@
# -*-perl-*-
-$description = "Test the filter-out function.";
+$description = "Test the filter and filter-out functions.";
$details = "The makefile created in this test has two variables. The
filter-out function is first used to discard names ending in
@@ -11,18 +11,32 @@ which is only used if there are multiple literals present in both
the pattern and text arguments. The result of both filter-out
functions is the same single .elc name.\n";
-open(MAKEFILE,"> $makefile");
+# Basic test -- filter
+run_make_test(q!
+files1 := $(filter %.o, foo.elc bar.o lose.o)
+files2 := $(filter %.o foo.i, foo.i bar.i lose.i foo.elc bar.o lose.o)
+all: ; @echo '$(files1) $(files2)'
+!,
+ '', "bar.o lose.o foo.i bar.o lose.o\n");
-print MAKEFILE <<'EOF';
+# Basic test -- filter-out
+run_make_test(q!
files1 := $(filter-out %.o, foo.elc bar.o lose.o)
files2 := $(filter-out foo.i bar.i lose.i %.o, foo.i bar.i lose.i foo.elc bar.o lose.o)
-all: ; @echo $(files1) $(files2)
-EOF
+all: ; @echo '$(files1) $(files2)'
+!,
+ '', "foo.elc foo.elc\n");
-close(MAKEFILE);
+# Escaped patterns
+run_make_test(q!all:;@echo '$(filter foo\%bar,foo%bar fooXbar)'!,
+ '', "foo%bar\n");
-&run_make_with_options($makefile, "", &get_logfile, 0);
-$answer = "foo.elc foo.elc\n";
-&compare_output($answer,&get_logfile(1));
+run_make_test(q!all:;@echo '$(filter foo\%\%\\\\\%\%bar,foo%%\\%%bar fooX\\Ybar)'!,
+ '', "foo%%\\%%bar\n");
+
+run_make_test(q!
+X = $(filter foo\\\\\%bar,foo\%bar foo\Xbar)
+all:;@echo '$(X)'!,
+ '', "foo\\%bar\n");
1;
diff --git a/tests/scripts/functions/foreach b/tests/scripts/functions/foreach
index 82e99d7..4d1a11d 100644
--- a/tests/scripts/functions/foreach
+++ b/tests/scripts/functions/foreach
@@ -1,5 +1,5 @@
# -*-perl-*-
-# $Id: foreach,v 1.5 2006/03/10 02:20:46 psmith Exp $
+# $Id$
$description = "Test the foreach function.";
@@ -62,7 +62,7 @@ y = $x
all: ; @echo $y',
'',
- "#MAKEFILE#:2: *** insufficient number of arguments (1) to function `foreach'. Stop.",
+ "#MAKEFILE#:2: *** insufficient number of arguments (1) to function 'foreach'. Stop.",
512);
run_make_test('
@@ -71,7 +71,7 @@ y := $x
all: ; @echo $y',
'',
- "#MAKEFILE#:2: *** insufficient number of arguments (1) to function `foreach'. Stop.",
+ "#MAKEFILE#:2: *** insufficient number of arguments (1) to function 'foreach'. Stop.",
512);
1;
diff --git a/tests/scripts/functions/guile b/tests/scripts/functions/guile
new file mode 100644
index 0000000..c63bec9
--- /dev/null
+++ b/tests/scripts/functions/guile
@@ -0,0 +1,99 @@
+# -*-perl-*-
+
+$description = 'Test the $(guile ...) function.';
+
+$details = 'This only works on systems that support it.';
+
+# If this instance of make doesn't support GNU Guile, skip it
+# This detects if guile is loaded using the "load" directive
+# $makefile = get_tmpfile();
+# open(MAKEFILE, "> $makefile") || die "Failed to open $makefile: $!\n";
+# print MAKEFILE q!
+# -load guile
+# all: ; @echo $(filter guile,$(.LOADED))
+# !;
+# close(MAKEFILE) || die "Failed to write $makefile: $!\n";
+# $cmd = subst_make_string("#MAKEPATH# -f $makefile");
+# $log = get_logfile(0);
+# $code = run_command_with_output($log, $cmd);
+# read_file_into_string ($log) eq "guile\n" and $FEATURES{guile} = 1;
+
+# If we don't have Guile support, never mind.
+exists $FEATURES{guile} or return -1;
+
+# Verify simple data type conversions
+# Currently we don't support vectors:
+# echo '$(guile (vector 1 2 3))'; \
+run_make_test(q!
+x:;@echo '$(guile #f)'; \
+ echo '$(guile #t)'; \
+ echo '$(guile #\c)'; \
+ echo '$(guile 1234)'; \
+ echo '$(guile 'foo)'; \
+ echo '$(guile "bar")'; \
+ echo '$(guile (cons 'a 'b))'; \
+ echo '$(guile '(a b (c . d) 1 (2) 3))'
+!,
+ '', "\n#t\nc\n1234\nfoo\nbar\na b\na b c d 1 2 3");
+
+# Verify the gmk-expand function
+run_make_test(q!
+VAR = $(guile (gmk-expand "$(shell echo hi)"))
+x:;@echo '$(VAR)'
+!,
+ '', "hi");
+
+# Verify the gmk-eval function
+# Prove that the string is expanded only once (by eval)
+run_make_test(q!
+TEST = bye
+EVAL = VAR = $(TEST) $(shell echo there)
+$(guile (gmk-eval "$(value EVAL)"))
+TEST = hi
+x:;@echo '$(VAR)'
+!,
+ '', "hi there");
+
+# Verify the gmk-eval function with a list
+run_make_test(q!
+$(guile (gmk-eval '(VAR = 1 (2) () 3)))
+x:;@echo '$(VAR)'
+!,
+ '', "1 2 3");
+
+# Verify the gmk-var function
+run_make_test(q!
+VALUE = hi $(shell echo there)
+VAR = $(guile (gmk-var "VALUE"))
+x:;@echo '$(VAR)'
+!,
+ '', "hi there");
+
+# Verify the gmk-var function with a symbol
+run_make_test(q!
+VALUE = hi $(shell echo there)
+VAR = $(guile (gmk-var 'VALUE))
+x:;@echo '$(VAR)'
+!,
+ '', "hi there");
+
+# Write a Guile program using define and run it
+run_make_test(q!
+# Define the "fib" function in Guile
+define fib
+;; A procedure for counting the n:th Fibonacci number
+;; See SICP, p. 37
+(define (fib n)
+ (cond ((= n 0) 0)
+ ((= n 1) 1)
+ (else (+ (fib (- n 1))
+ (fib (- n 2))))))
+endef
+$(guile $(fib))
+
+# Now run it
+x:;@echo $(guile (fib $(FIB)))
+!,
+ 'FIB=10', "55");
+
+1;
diff --git a/tests/scripts/functions/sort b/tests/scripts/functions/sort
index d472102..b558910 100644
--- a/tests/scripts/functions/sort
+++ b/tests/scripts/functions/sort
@@ -1,55 +1,47 @@
-$description = "The following test creates a makefile to verify\n"
- ."the ability of make to sort lists of object. Sort\n"
- ."will also remove any duplicate entries. This will also\n"
- ."be tested.";
-
-$details = "The make file is built with a list of object in a random order\n"
- ."and includes some duplicates. Make should sort all of the elements\n"
- ."remove all duplicates\n";
-
-open(MAKEFILE,"> $makefile");
-
-# The Contents of the MAKEFILE ...
-
-print MAKEFILE "foo := moon_light days \n"
- ."foo1:= jazz\n"
- ."bar := captured \n"
- ."bar2 = boy end, has rise A midnight \n"
- ."bar3:= \$(foo)\n"
- ."s1 := _by\n"
- ."s2 := _and_a\n"
- ."t1 := \$(addsuffix \$(s1), \$(bar) )\n"
- ."t2 := \$(addsuffix \$(s2), \$(foo1) )\n"
- ."t3 := \$(t2) \$(t2) \$(t2) \$(t2) \$(t2) \$(t2) \$(t2) \$(t2) \$(t2) \$(t2) \n"
- ."t4 := \$(t3) \$(t3) \$(t3) \$(t3) \$(t3) \$(t3) \$(t3) \$(t3) \$(t3) \$(t3) \n"
- ."t5 := \$(t4) \$(t4) \$(t4) \$(t4) \$(t4) \$(t4) \$(t4) \$(t4) \$(t4) \$(t4) \n"
- ."t6 := \$(t5) \$(t5) \$(t5) \$(t5) \$(t5) \$(t5) \$(t5) \$(t5) \$(t5) \$(t5) \n"
- ."t7 := \$(t6) \$(t6) \$(t6) \n"
- ."p1 := \$(addprefix \$(foo1), \$(s2) )\n"
- ."blank:= \n"
- ."all:\n"
- ."\t\@echo \$(sort \$(bar2) \$(foo) \$(addsuffix \$(s1), \$(bar) ) \$(t2) \$(bar2) \$(bar3))\n"
- ."\t\@echo \$(sort \$(blank) \$(foo) \$(bar2) \$(t1) \$(p1) )\n"
- ."\t\@echo \$(sort \$(foo) \$(bar2) \$(t1) \$(t4) \$(t5) \$(t7) \$(t6) )\n";
-
-
-# END of Contents of MAKEFILE
-
-close(MAKEFILE);
-
-&run_make_with_options($makefile,"",&get_logfile);
-
-# Create the answer to what should be produced by this Makefile
-$answer = "A boy captured_by days end, has jazz_and_a midnight moon_light rise\n"
- ."A boy captured_by days end, has jazz_and_a midnight moon_light rise\n"
- ."A boy captured_by days end, has jazz_and_a midnight moon_light rise\n";
-
-&compare_output($answer,&get_logfile(1));
+# -*-perl-*-
+
+$description = "The following test creates a makefile to verify
+the ability of make to sort lists of object. Sort
+will also remove any duplicate entries. This will also
+be tested.";
+
+$details = "The make file is built with a list of object in a random order
+and includes some duplicates. Make should sort all of the elements
+remove all duplicates\n";
+
+run_make_test('
+foo := moon_light days
+foo1:= jazz
+bar := captured
+bar2 = boy end, has rise A midnight
+bar3:= $(foo)
+s1 := _by
+s2 := _and_a
+t1 := $(addsuffix $(s1), $(bar) )
+t2 := $(addsuffix $(s2), $(foo1) )
+t3 := $(t2) $(t2) $(t2) $(t2) $(t2) $(t2) $(t2) $(t2) $(t2) $(t2)
+t4 := $(t3) $(t3) $(t3) $(t3) $(t3) $(t3) $(t3) $(t3) $(t3) $(t3)
+t5 := $(t4) $(t4) $(t4) $(t4) $(t4) $(t4) $(t4) $(t4) $(t4) $(t4)
+t6 := $(t5) $(t5) $(t5) $(t5) $(t5) $(t5) $(t5) $(t5) $(t5) $(t5)
+t7 := $(t6) $(t6) $(t6)
+p1 := $(addprefix $(foo1), $(s2) )
+blank:=
+all:
+ @echo $(sort $(bar2) $(foo) $(addsuffix $(s1), $(bar) ) $(t2) $(bar2) $(bar3))
+ @echo $(sort $(blank) $(foo) $(bar2) $(t1) $(p1) )
+ @echo $(sort $(foo) $(bar2) $(t1) $(t4) $(t5) $(t7) $(t6) )
+',
+ '', 'A boy captured_by days end, has jazz_and_a midnight moon_light rise
+A boy captured_by days end, has jazz_and_a midnight moon_light rise
+A boy captured_by days end, has jazz_and_a midnight moon_light rise
+');
+
+
+# Test with non-space/tab whitespace. Note that you can't see the
+# original bug except using valgrind.
+
+run_make_test("FOO = a b\tc\rd\fe \f \f \f \f \ff
+all: ; \@echo \$(words \$(sort \$(FOO)))\n",
+ '', "5\n");
1;
-
-
-
-
-
-
diff --git a/tests/scripts/functions/wildcard b/tests/scripts/functions/wildcard
index 2841f5d..bcd84ad 100644
--- a/tests/scripts/functions/wildcard
+++ b/tests/scripts/functions/wildcard
@@ -88,4 +88,16 @@ all: ; @echo $(wildcard xz--y*.7)
!,
'', "\n");
+# TEST #5: wildcard used to verify file existence
+
+touch('xxx.yyy');
+
+run_make_test(q!exists: ; @echo file=$(wildcard xxx.yyy)!,
+ '', "file=xxx.yyy\n");
+
+unlink('xxx.yyy');
+
+run_make_test(q!exists: ; @echo file=$(wildcard xxx.yyy)!,
+ '', "file=\n");
+
1;
diff --git a/tests/scripts/functions/word b/tests/scripts/functions/word
index 34527ea..4dcc940 100644
--- a/tests/scripts/functions/word
+++ b/tests/scripts/functions/word
@@ -56,32 +56,32 @@ wordlist-e1: ; @echo $(wordlist ,,$(FOO))
wordlist-e2: ; @echo $(wordlist abc ,,$(FOO))
wordlist-e3: ; @echo $(wordlist 1, 12a ,$(FOO))',
'word-e1',
- "#MAKEFILE#:3: *** non-numeric first argument to `word' function: ''. Stop.",
+ "#MAKEFILE#:3: *** non-numeric first argument to 'word' function: ''. Stop.",
512);
run_make_test(undef,
'word-e2',
- "#MAKEFILE#:4: *** non-numeric first argument to `word' function: 'abc '. Stop.",
+ "#MAKEFILE#:4: *** non-numeric first argument to 'word' function: 'abc '. Stop.",
512);
run_make_test(undef,
'word-e3',
- "#MAKEFILE#:5: *** non-numeric first argument to `word' function: '1a'. Stop.",
+ "#MAKEFILE#:5: *** non-numeric first argument to 'word' function: '1a'. Stop.",
512);
run_make_test(undef,
'wordlist-e1',
- "#MAKEFILE#:7: *** non-numeric first argument to `wordlist' function: ''. Stop.",
+ "#MAKEFILE#:7: *** non-numeric first argument to 'wordlist' function: ''. Stop.",
512);
run_make_test(undef,
'wordlist-e2',
- "#MAKEFILE#:8: *** non-numeric first argument to `wordlist' function: 'abc '. Stop.",
+ "#MAKEFILE#:8: *** non-numeric first argument to 'wordlist' function: 'abc '. Stop.",
512);
run_make_test(undef,
'wordlist-e3',
- "#MAKEFILE#:9: *** non-numeric second argument to `wordlist' function: ' 12a '. Stop.",
+ "#MAKEFILE#:9: *** non-numeric second argument to 'wordlist' function: ' 12a '. Stop.",
512);
# Test error conditions again, but this time in a variable reference
@@ -94,37 +94,37 @@ WL = $(wordlist $s,$e,$(FOO))
word-e: ; @echo $(W)
wordlist-e: ; @echo $(WL)',
'word-e x=',
- "#MAKEFILE#:3: *** non-numeric first argument to `word' function: ''. Stop.",
+ "#MAKEFILE#:3: *** non-numeric first argument to 'word' function: ''. Stop.",
512);
run_make_test(undef,
'word-e x=abc',
- "#MAKEFILE#:3: *** non-numeric first argument to `word' function: 'abc'. Stop.",
+ "#MAKEFILE#:3: *** non-numeric first argument to 'word' function: 'abc'. Stop.",
512);
run_make_test(undef,
'word-e x=0',
- "#MAKEFILE#:3: *** first argument to `word' function must be greater than 0. Stop.",
+ "#MAKEFILE#:3: *** first argument to 'word' function must be greater than 0. Stop.",
512);
run_make_test(undef,
'wordlist-e s= e=',
- "#MAKEFILE#:4: *** non-numeric first argument to `wordlist' function: ''. Stop.",
+ "#MAKEFILE#:4: *** non-numeric first argument to 'wordlist' function: ''. Stop.",
512);
run_make_test(undef,
'wordlist-e s=abc e=',
- "#MAKEFILE#:4: *** non-numeric first argument to `wordlist' function: 'abc'. Stop.",
+ "#MAKEFILE#:4: *** non-numeric first argument to 'wordlist' function: 'abc'. Stop.",
512);
run_make_test(undef,
'wordlist-e s=4 e=12a',
- "#MAKEFILE#:4: *** non-numeric second argument to `wordlist' function: '12a'. Stop.",
+ "#MAKEFILE#:4: *** non-numeric second argument to 'wordlist' function: '12a'. Stop.",
512);
run_make_test(undef,
'wordlist-e s=0 e=12',
- "#MAKEFILE#:4: *** invalid first argument to `wordlist' function: `0'. Stop.",
+ "#MAKEFILE#:4: *** invalid first argument to 'wordlist' function: '0'. Stop.",
512);
diff --git a/tests/scripts/misc/bs-nl b/tests/scripts/misc/bs-nl
new file mode 100644
index 0000000..4fc3f63
--- /dev/null
+++ b/tests/scripts/misc/bs-nl
@@ -0,0 +1,129 @@
+# -*-perl-*-
+$description = "Test backslash-newline handling.";
+
+$details = "";
+
+# TEST #1
+# -------
+
+# Backslash-newlines in recipes
+
+# These are basic backslash-newlines with no tricks
+run_make_test("fast:;\@echo fa\\\nst\n",
+ '', 'fast');
+
+run_make_test("slow:;\@: no-op; echo sl\\\now\n",
+ '', 'slow');
+
+run_make_test("dquote:;\@echo \"dqu\\\note\"\n",
+ '', 'dquote');
+
+run_make_test("squote:;\@echo 'squ\\\note'\n",
+ '', "squ\\\note");
+
+# Ensure that a leading prefix character is omitted
+run_make_test("fast:;\@echo fa\\\n\tst\n",
+ '', 'fast');
+
+run_make_test("slow:;\@: no-op; echo sl\\\n\tow\n",
+ '', 'slow');
+
+run_make_test("dquote:;\@echo \"dqu\\\n\tote\"\n",
+ '', 'dquote');
+
+run_make_test("squote:;\@echo 'squ\\\n\tote'\n",
+ '', "squ\\\note");
+
+# Ensure that ONLY the leading prefix character is omitted
+run_make_test("fast:;\@echo fa\\\n\t st\n",
+ '', 'fa st');
+
+run_make_test("slow:;\@: no-op; echo sl\\\n\t\tow\n",
+ '', "sl ow");
+
+run_make_test("dquote:;\@echo \"dqu\\\n\t ote\"\n",
+ '', 'dqu ote');
+
+run_make_test("squote:;\@echo 'squ\\\n\t\t ote'\n",
+ '', "squ\\\n\t ote");
+
+# Backslash-newlines in variable values
+
+# Simple
+run_make_test(q!
+var = he\
+llo
+var:;@echo '|$(var)|'!,
+ '', "|he llo|");
+
+# Condense trailing space
+run_make_test(q!
+var = he \
+llo
+var:;@echo '|$(var)|'!,
+ '', "|he llo|");
+
+# Remove leading space
+run_make_test(q!
+var = he\
+ llo
+var:;@echo '|$(var)|'!,
+ '', "|he llo|");
+
+# Multiple bs/nl condensed
+run_make_test(q!
+var = he\
+\
+\
+ llo
+var:;@echo '|$(var)|'!,
+ '', "|he llo|");
+
+# POSIX: Preserve trailing space
+run_make_test(q!
+.POSIX:
+x = y
+var = he \
+llo
+var:;@echo '|$(var)|'!,
+ '', "|he llo|");
+
+# POSIX: One space per bs-nl
+run_make_test(q!
+.POSIX:
+x = y
+var = he\
+\
+\
+ llo
+var:;@echo '|$(var)|'!,
+ '', "|he llo|");
+
+# Savannah #39035: handle whitespace in call
+run_make_test(q!
+f = echo $(1)
+t:; @$(call f,"a \
+ b"); \
+ $(call f,"a \
+ b")
+!,
+ '', "a b\na b\n");
+
+# Savannah #38945: handle backslash CRLF
+# We need our own makefile so we can set binmode
+my $m1 = get_tmpfile();
+open(MAKEFILE, "> $m1");
+binmode(MAKEFILE);
+print MAKEFILE "FOO = foo \\\r\n";
+close(MAKEFILE);
+
+my $m2 = get_tmpfile();
+open(MAKEFILE, "> $m2");
+print MAKEFILE "include $m1\ndefine BAR\nall: ; \@echo \$(FOO) bar\nendef\n\$(eval \$(BAR))\n";
+close(MAKEFILE);
+
+run_make_with_options($m2, '', get_logfile());
+compare_output("foo bar\n", get_logfile(1));
+
+
+1;
diff --git a/tests/scripts/misc/fopen-fail b/tests/scripts/misc/fopen-fail
new file mode 100644
index 0000000..6580e51
--- /dev/null
+++ b/tests/scripts/misc/fopen-fail
@@ -0,0 +1,15 @@
+# -*-perl-*-
+
+$description = "Make sure make exits with an error if fopen fails.";
+
+# Recurse infinitely until we run out of open files, and ensure we
+# fail with a non-zero exit code. Don't bother to test the output
+# since it's hard to know what it will be, exactly.
+# See Savannah bug #27374.
+
+run_make_test(q!
+include $(lastword $(MAKEFILE_LIST))
+!,
+ '', undef, 512);
+
+1;
diff --git a/tests/scripts/misc/general3 b/tests/scripts/misc/general3
index b3142c2..8ad0f8e 100644
--- a/tests/scripts/misc/general3
+++ b/tests/scripts/misc/general3
@@ -26,7 +26,7 @@ TAB = \t \# A TAB and some spaces
\$(STR)
\$(STR) \$(TAB)",
- '', "#MAKE#: Nothing to be done for `all'.");
+ '', "#MAKE#: Nothing to be done for 'all'.");
# TEST 2
diff --git a/tests/scripts/options/dash-B b/tests/scripts/options/dash-B
index e36842e..9c708b7 100644
--- a/tests/scripts/options/dash-B
+++ b/tests/scripts/options/dash-B
@@ -22,13 +22,13 @@ foo: bar.x
',
'', 'cp bar.x foo');
-run_make_test(undef, '', "#MAKE#: Nothing to be done for `all'.");
+run_make_test(undef, '', "#MAKE#: Nothing to be done for 'all'.");
run_make_test(undef, '-B', 'cp bar.x foo');
# Put the timestamp for foo into the future; it should still be remade.
utouch(1000, 'foo');
-run_make_test(undef, '', "#MAKE#: Nothing to be done for `all'.");
+run_make_test(undef, '', "#MAKE#: Nothing to be done for 'all'.");
run_make_test(undef, '-B', 'cp bar.x foo');
# Clean up
diff --git a/tests/scripts/options/dash-C b/tests/scripts/options/dash-C
index 5864ffd..42d0a8b 100644
--- a/tests/scripts/options/dash-C
+++ b/tests/scripts/options/dash-C
@@ -34,9 +34,9 @@ if (-f $example) {
}
# Create the answer to what should be produced by this Makefile
-$answer = "$make_name: Entering directory `$wpath'\n"
+$answer = "$make_name: Entering directory '$wpath'\n"
. "$delete_command EXAMPLE\n"
- . "$make_name: Leaving directory `$wpath'\n";
+ . "$make_name: Leaving directory '$wpath'\n";
&compare_output($answer,&get_logfile(1));
@@ -62,9 +62,9 @@ if (-f $example) {
}
# Create the answer to what should be produced by this Makefile
-$answer = "$make_name: Entering directory `$wpath'\n"
+$answer = "$make_name: Entering directory '$wpath'\n"
. "$delete_command EXAMPLEslash\n"
- . "$make_name: Leaving directory `$wpath'\n";
+ . "$make_name: Leaving directory '$wpath'\n";
&compare_output($answer,&get_logfile(1));
diff --git a/tests/scripts/options/dash-I b/tests/scripts/options/dash-I
index 8dc5d9b..d47a8d8 100644
--- a/tests/scripts/options/dash-I
+++ b/tests/scripts/options/dash-I
@@ -51,9 +51,9 @@ $answer = "This is another included makefile\n";
$answer = "$mkpath ANOTHER -f $makefile
-${make_name}[1]: Entering directory `$pwd'
+${make_name}[1]: Entering directory '$pwd'
This is another included makefile
-${make_name}[1]: Leaving directory `$pwd'\n";
+${make_name}[1]: Leaving directory '$pwd'\n";
&run_make_with_options($makefile,"-I $workdir recurse",&get_logfile);
&compare_output($answer,&get_logfile(1));
diff --git a/tests/scripts/options/dash-W b/tests/scripts/options/dash-W
index d3fde87..20b9f74 100644
--- a/tests/scripts/options/dash-W
+++ b/tests/scripts/options/dash-W
@@ -12,7 +12,7 @@ a.x b.x: ; echo >> $@
# Run it again: nothing should happen
-run_make_test(undef, '', "#MAKE#: `a.x' is up to date.");
+run_make_test(undef, '', "#MAKE#: 'a.x' is up to date.");
# Now run it with -W b.x: should rebuild a.x
@@ -21,7 +21,7 @@ run_make_test(undef, '-W b.x', 'echo >> a.x');
# Put the timestamp for a.x into the future; it should still be remade.
utouch(1000, 'a.x');
-run_make_test(undef, '', "#MAKE#: `a.x' is up to date.");
+run_make_test(undef, '', "#MAKE#: 'a.x' is up to date.");
run_make_test(undef, '-W b.x', 'echo >> a.x');
# Clean up
diff --git a/tests/scripts/options/dash-k b/tests/scripts/options/dash-k
index d87a786..e784e0d 100644
--- a/tests/scripts/options/dash-k
+++ b/tests/scripts/options/dash-k
@@ -57,10 +57,10 @@ else {
# Create the answer to what should be produced by this Makefile
$answer = "cc -c main.c
-$make_name: *** No rule to make target `kbd.c', needed by `kbd.o'.
+$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";
+$make_name: Target 'edit' not remade because of errors.\n";
# COMPARE RESULTS
@@ -92,8 +92,9 @@ close(MAKEFILE);
&run_make_with_options($makefile2, "-k", &get_logfile, $error_code);
$answer = "exit 1
+$makefile2:9: recipe for target 'foo.o' failed
$make_name: *** [foo.o] Error 1
-$make_name: Target `all' not remade because of errors.\n";
+$make_name: Target 'all' not remade because of errors.\n";
&compare_output($answer, &get_logfile(1));
@@ -106,8 +107,8 @@ ifile: no-such-file; @false
',
'-k',
"#MAKEFILE#:2: ifile: No such file or directory
-#MAKE#: *** No rule to make target `no-such-file', needed by `ifile'.
-#MAKE#: Failed to remake makefile `ifile'.
+#MAKE#: *** No rule to make target 'no-such-file', needed by 'ifile'.
+#MAKE#: Failed to remake makefile 'ifile'.
hi\n",
512);
diff --git a/tests/scripts/options/dash-n b/tests/scripts/options/dash-n
index de19f42..dfed419 100644
--- a/tests/scripts/options/dash-n
+++ b/tests/scripts/options/dash-n
@@ -3,37 +3,24 @@ $description = "Test the -n option.\n";
$details = "Try various uses of -n and ensure they all give the correct results.\n";
-open(MAKEFILE, "> $makefile");
-
-# The Contents of the MAKEFILE ...
-
-print MAKEFILE <<'EOMAKE';
+touch('orig');
+run_make_test(q!
final: intermediate ; echo >> $@
intermediate: orig ; echo >> $@
-
-EOMAKE
-
-close(MAKEFILE);
-
-&touch('orig');
-
-# TEST 0
-
-&run_make_with_options($makefile, "", &get_logfile);
-$answer = "echo >> intermediate\necho >> final\n";
-&compare_output($answer, &get_logfile(1));
+!,
+ '', "echo >> intermediate\necho >> final\n");
# TEST 1
-&run_make_with_options($makefile, "-Worig -n", &get_logfile);
-$answer = "echo >> intermediate\necho >> final\n";
-&compare_output($answer, &get_logfile(1));
+run_make_test(undef, '-Worig -n', "echo >> intermediate\necho >> final\n");
-unlink('orig', 'intermediate', 'final');
+rmfiles(qw(orig intermediate final));
# We consider the actual updated timestamp of targets with all
-# recursive commands, even with -n.
+# recursive commands, even with -n. Switching this to the new model
+# is non-trivial because we use a trick below to change the log content
+# before we compare it ...
$makefile2 = &get_tmpfile;
@@ -56,15 +43,58 @@ close(MAKEFILE);
# TEST 2
&run_make_with_options($makefile2, "", &get_logfile);
-$answer = "$make_name: `a' is up to date.\n";
+$answer = "$make_name: 'a' is up to date.\n";
&compare_output($answer, &get_logfile(1));
# TEST 3
&run_make_with_options($makefile2, "-n", &get_logfile);
-$answer = "$make_name: `a' is up to date.\n";
+$answer = "$make_name: 'a' is up to date.\n";
+&compare_output($answer, &get_logfile(1));
+
+# TEST 4
+
+unlink(qw(a b));
+
+&run_make_with_options($makefile2, "-t -n", &get_logfile);
+
+open(DASH_N_LOG, ">>" . &get_logfile(1));
+print DASH_N_LOG "a exists but should not!\n" if -e 'a';
+print DASH_N_LOG "b exists but should not!\n" if -e 'b';
+close(DASH_N_LOG);
+
+&compare_output("touch b\ntouch a\n", &get_logfile(1));
+
+# CLEANUP
+
+unlink(qw(a b c));
+
+# Ensure -n continues to be included with recursive/re-execed make
+# See Savannah bug #38051
+
+$topmake = &get_tmpfile;
+$submake = &get_tmpfile;
+
+open(MAKEFILE, "> $topmake");
+print MAKEFILE <<"EOF";
+foo: ; \@\$(MAKE) -f "$submake" bar
+EOF
+close(MAKEFILE);
+
+
+# The bar target should print what would happen, but not actually run
+open(MAKEFILE, "> $submake");
+print MAKEFILE <<'EOF';
+inc: ; touch $@
+-include inc
+bar: ; @echo $(strip $(MAKEFLAGS))
+EOF
+close(MAKEFILE);
+
+&run_make_with_options($topmake, '-n --no-print-directory', &get_logfile);
+$answer = "$make_path -f \"$submake\" bar\ntouch inc\necho n --no-print-directory\n";
&compare_output($answer, &get_logfile(1));
-unlink('a', 'b', 'c');
+unlink('inc');
1;
diff --git a/tests/scripts/options/eval b/tests/scripts/options/eval
index 06a035c..0f82409 100644
--- a/tests/scripts/options/eval
+++ b/tests/scripts/options/eval
@@ -16,4 +16,14 @@ recurse: ; @$(MAKE) -f #MAKEFILE# && echo recurse!,
run_make_test(undef, '--no-print-directory --eval=\$\(info\ eval\) recurse',
"eval\neval\nall\nrecurse");
+# Make sure that --eval is handled correctly during restarting
+run_make_test(q!
+all: ; @echo $@
+-include gen.mk
+gen.mk: ; @echo > $@
+!,
+ '--eval=\$\(info\ eval\)', "eval\neval\nall");
+
+unlink('gen.mk');
+
1;
diff --git a/tests/scripts/options/print-directory b/tests/scripts/options/print-directory
new file mode 100644
index 0000000..a05bbee
--- /dev/null
+++ b/tests/scripts/options/print-directory
@@ -0,0 +1,33 @@
+# -*-perl-*-
+
+$description = "Test the -w option to GNU make.";
+
+# Simple test without -w
+run_make_test(q!
+all: ; @echo hi
+!,
+ "", "hi\n");
+
+# Simple test with -w
+run_make_test(undef, "-w",
+ "#MAKE#: Entering directory '#PWD#'\nhi\n#MAKE#: Leaving directory '#PWD#'\n");
+
+# Test makefile rebuild to ensure no enter/leave
+run_make_test(q!
+include foo
+all: ;@:
+foo: ; touch foo
+!,
+ "", "#MAKEFILE#:2: foo: No such file or directory\ntouch foo\n");
+unlink('foo');
+
+# Test makefile rebuild with -w
+run_make_test(q!
+include foo
+all: ;@:
+foo: ; touch foo
+!,
+ "-w", "#MAKE#: Entering directory '#PWD#'\n#MAKEFILE#:2: foo: No such file or directory\ntouch foo\n#MAKE#: Leaving directory '#PWD#'\n");
+unlink('foo');
+
+1;
diff --git a/tests/scripts/options/symlinks b/tests/scripts/options/symlinks
index 40d2564..a1bfce0 100644
--- a/tests/scripts/options/symlinks
+++ b/tests/scripts/options/symlinks
@@ -26,7 +26,7 @@ if ($port_type eq 'W32' || !( eval { symlink("",""); 1 })) {
# Without -L, nothing should happen
# With -L, it should update targ
run_make_test('targ: sym ; @echo make $@ from $<', '',
- "#MAKE#: `targ' is up to date.");
+ "#MAKE#: 'targ' is up to date.");
run_make_test(undef, '-L', "make targ from sym");
# Now update dep; in all cases targ should be out of date.
@@ -36,8 +36,8 @@ if ($port_type eq 'W32' || !( eval { symlink("",""); 1 })) {
# Now update targ; in all cases targ should be up to date.
&touch('targ');
- run_make_test(undef, '', "#MAKE#: `targ' is up to date.");
- run_make_test(undef, '-L', "#MAKE#: `targ' is up to date.");
+ run_make_test(undef, '', "#MAKE#: 'targ' is up to date.");
+ run_make_test(undef, '-L', "#MAKE#: 'targ' is up to date.");
# Add in a new link between sym and dep. Be sure it's newer than targ.
sleep(1);
@@ -46,7 +46,7 @@ if ($port_type eq 'W32' || !( eval { symlink("",""); 1 })) {
# Without -L, nothing should happen
# With -L, it should update targ
- run_make_test(undef, '', "#MAKE#: `targ' is up to date.");
+ run_make_test(undef, '', "#MAKE#: 'targ' is up to date.");
run_make_test(undef, '-L', "make targ from sym");
rmfiles('targ', 'dep', 'sym', 'dep1');
@@ -56,7 +56,7 @@ if ($port_type eq 'W32' || !( eval { symlink("",""); 1 })) {
symlink("../$dirname/dep", 'sym');
run_make_test('targ: sym ; @echo make $@ from $<', '',
- "#MAKE#: *** No rule to make target `sym', needed by `targ'. Stop.", 512);
+ "#MAKE#: *** No rule to make target 'sym', needed by 'targ'. Stop.", 512);
run_make_test('targ: sym ; @echo make $@ from $<', '-L',
'make targ from sym');
diff --git a/tests/scripts/options/warn-undefined-variables b/tests/scripts/options/warn-undefined-variables
index 34bfaea..ce15507 100644
--- a/tests/scripts/options/warn-undefined-variables
+++ b/tests/scripts/options/warn-undefined-variables
@@ -18,8 +18,8 @@ all: ; @echo ref $(EREF) $(UREF)',
# With --warn-undefined-variables, it should warn me
run_make_test(undef, '--warn-undefined-variables',
- "#MAKEFILE#:7: warning: undefined variable `UNDEFINED'
-#MAKEFILE#:9: warning: undefined variable `UNDEFINED'
+ "#MAKEFILE#:7: warning: undefined variable 'UNDEFINED'
+#MAKEFILE#:9: warning: undefined variable 'UNDEFINED'
ref");
1;
diff --git a/tests/scripts/targets/DEFAULT b/tests/scripts/targets/DEFAULT
index 0cabde9..f3d5148 100644
--- a/tests/scripts/targets/DEFAULT
+++ b/tests/scripts/targets/DEFAULT
@@ -35,9 +35,9 @@ close(MAKEFILE);
&run_make_with_options($makefile,'bar',&get_logfile);
# Create the answer to what should be produced by this Makefile
-$answer = "${make_name}[1]: Entering directory `$pwd'\n"
+$answer = "${make_name}[1]: Entering directory '$pwd'\n"
. "Executing rule BAR\n"
- . "${make_name}[1]: Leaving directory `$pwd'\n";
+ . "${make_name}[1]: Leaving directory '$pwd'\n";
# COMPARE RESULTS
diff --git a/tests/scripts/targets/INTERMEDIATE b/tests/scripts/targets/INTERMEDIATE
index 4fdd7a2..2b3021b 100644
--- a/tests/scripts/targets/INTERMEDIATE
+++ b/tests/scripts/targets/INTERMEDIATE
@@ -42,7 +42,7 @@ $answer = "cp foo.f foo.e\ncp foo.e foo.d\nrm foo.e\n";
# TEST #1
&run_make_with_options($makefile,'foo.d',&get_logfile);
-$answer = "$make_name: `foo.d' is up to date.\n";
+$answer = "$make_name: 'foo.d' is up to date.\n";
&compare_output($answer, &get_logfile(1));
# TEST #2
@@ -63,7 +63,7 @@ $answer = "cp foo.f foo.e\ncp bar.f bar.e\ncat foo.e bar.e > foo.c\nrm bar.e foo
# TEST #4
&run_make_with_options($makefile,'foo.c',&get_logfile);
-$answer = "$make_name: `foo.c' is up to date.\n";
+$answer = "$make_name: 'foo.c' is up to date.\n";
&compare_output($answer, &get_logfile(1));
# TEST #5
diff --git a/tests/scripts/targets/ONESHELL b/tests/scripts/targets/ONESHELL
index 997423f..87713da 100644
--- a/tests/scripts/targets/ONESHELL
+++ b/tests/scripts/targets/ONESHELL
@@ -4,6 +4,10 @@ $description = "Test the behaviour of the .ONESHELL target.";
$details = "";
+# Some shells (*shakes fist at Solaris*) cannot handle multiple flags in
+# separate arguments.
+my $t = `/bin/sh -e -c true 2>/dev/null`;
+my $multi_ok = $? == 0;
# Simple
@@ -17,6 +21,21 @@ all:
[ 0"$a" -eq "$$" ] || echo fail
');
+# Simple but use multi-word SHELLFLAGS
+
+if ($multi_ok) {
+ run_make_test(q!
+.ONESHELL:
+.SHELLFLAGS = -e -c
+all:
+ a=$$$$
+ [ 0"$$a" -eq "$$$$" ] || echo fail
+!,
+ '', 'a=$$
+[ 0"$a" -eq "$$" ] || echo fail
+');
+}
+
# Again, but this time with inner prefix chars
run_make_test(q!
diff --git a/tests/scripts/targets/POSIX b/tests/scripts/targets/POSIX
index 9c30e18..a24e3bc 100644
--- a/tests/scripts/targets/POSIX
+++ b/tests/scripts/targets/POSIX
@@ -1,6 +1,6 @@
# -*-perl-*-
-$description = "Test the behaviour of the .PHONY target.";
+$description = "Test the behaviour of the .POSIX target.";
$details = "";
@@ -17,7 +17,8 @@ run_make_test(qq!
.POSIX:
all: ; \@$script
!,
- '', "#MAKE#: *** [all] Error $err\n", 512);
+ '', "#MAKEFILE#:3: recipe for target 'all' failed
+#MAKE#: *** [all] Error $err\n", 512);
# User settings must override .POSIX
$flags = '-xc';
@@ -29,5 +30,28 @@ all: ; \@$script
!,
'', $out);
+# Test the default value of various POSIX-specific variables
+my %POSIX = (AR => 'ar', ARFLAGS => '-rv',
+ YACC => 'yacc', YFLAGS => '',
+ LEX => 'lex', LFLAGS => '',
+ LDFLAGS => '',
+ CC => 'c99', CFLAGS => '-O',
+ FC => 'fort77', FFLAGS => '-O 1',
+ GET => 'get', GFLAGS => '',
+ SCCSFLAGS => '', SCCSGETFLAGS => '-s');
+my $make = join('', map { "\t\@echo '$_=\$($_)'\n" } sort keys %POSIX);
+my $r = join('', map { "$_=$POSIX{$_}\n"} sort keys %POSIX);
+run_make_test(qq!
+.POSIX:
+all:
+$make
+!,
+ '', $r);
+
+# Make sure that local settings take precedence
+%extraENV = map { $_ => "xx-$_" } keys %POSIX;
+$r = join('', map { "$_=xx-$_\n"} sort keys %POSIX);
+run_make_test(undef, '', $r);
+
# This tells the test driver that the perl test script executed properly.
1;
diff --git a/tests/scripts/targets/SECONDARY b/tests/scripts/targets/SECONDARY
index c954ee9..447c275 100644
--- a/tests/scripts/targets/SECONDARY
+++ b/tests/scripts/targets/SECONDARY
@@ -44,7 +44,7 @@ $answer = "cp foo.f foo.e\ncp foo.e foo.d\n";
unlink('foo.e');
&run_make_with_options($makefile,'foo.d',&get_logfile);
-$answer = "$make_name: `foo.d' is up to date.\n";
+$answer = "$make_name: 'foo.d' is up to date.\n";
&compare_output($answer, &get_logfile(1));
# TEST #3
@@ -67,7 +67,7 @@ $answer = "cp foo.e foo.c\n";
unlink('foo.e');
&run_make_with_options($makefile,'foo.c',&get_logfile);
-$answer = "$make_name: `foo.c' is up to date.\n";
+$answer = "$make_name: 'foo.c' is up to date.\n";
&compare_output($answer, &get_logfile(1));
# TEST #6
@@ -103,7 +103,7 @@ close(MAKEFILE);
touch('final');
&run_make_with_options($makefile2, '', &get_logfile);
-$answer = "$make_name: `final' is up to date.\n";
+$answer = "$make_name: 'final' is up to date.\n";
&compare_output($answer, &get_logfile(1));
unlink('source', 'final', 'intermediate');
@@ -129,10 +129,11 @@ touch(qw(1.a 2.a));
run_make_test('
%.c : %.b ; cp $< $@
%.b : %.a ; cp $< $@
-all : 1.c 2.c', '-rR -j',
+all : 1.c 2.c
+2.a: 1.c', '-rR -j',
'cp 1.a 1.b
-cp 2.a 2.b
cp 1.b 1.c
+cp 2.a 2.b
cp 2.b 2.c
rm 1.b 2.b');
diff --git a/tests/scripts/variables/DEFAULT_GOAL b/tests/scripts/variables/DEFAULT_GOAL
index 1c06506..8188ce7 100644
--- a/tests/scripts/variables/DEFAULT_GOAL
+++ b/tests/scripts/variables/DEFAULT_GOAL
@@ -42,7 +42,7 @@ run_make_test('
.DEFAULT_GOAL = foo
',
'',
-'#MAKE#: *** No rule to make target `foo\'. Stop.',
+"#MAKE#: *** No rule to make target 'foo'. Stop.",
512);
diff --git a/tests/scripts/variables/GNUMAKEFLAGS b/tests/scripts/variables/GNUMAKEFLAGS
new file mode 100644
index 0000000..e9c0d55
--- /dev/null
+++ b/tests/scripts/variables/GNUMAKEFLAGS
@@ -0,0 +1,42 @@
+# -*-perl-*-
+
+$description = "Test proper behavior of GNUMAKEFLAGS";
+
+# Accept flags from GNUMAKEFLAGS as well as MAKEFLAGS
+# Results always go in MAKEFLAGS
+
+$extraENV{'GNUMAKEFLAGS'} = '-e -r -R';
+
+run_make_test(q!
+all: ; @echo $(MAKEFLAGS)
+!,
+ '', 'erR');
+
+# Long arguments mean everything is prefixed with "-"
+
+$extraENV{'GNUMAKEFLAGS'} = '--no-print-directory -e -r -R --trace';
+
+run_make_test(q!
+all: ; @echo $(MAKEFLAGS)
+!,
+ '', "#MAKEFILE#:2: target 'all' does not exist
+echo erR --trace --no-print-directory
+erR --trace --no-print-directory");
+
+# Verify that re-exec / recursion doesn't duplicate flags from GNUMAKEFLAGS
+
+unlink('x.mk');
+
+$extraENV{GNUMAKEFLAGS} = '-Itst/bad -Oline';
+
+run_make_test(q!
+recurse: ; @echo $@; echo MAKEFLAGS = $$MAKEFLAGS; echo GNUMAKEFLAGS = $$GNUMAKEFLAGS; #MAKEPATH# -f #MAKEFILE# all
+all: ; @echo $@; echo MAKEFLAGS = $$MAKEFLAGS; echo GNUMAKEFLAGS = $$GNUMAKEFLAGS
+-include x.mk
+x.mk: ; @echo $@; echo MAKEFLAGS = $$MAKEFLAGS; echo GNUMAKEFLAGS = $$GNUMAKEFLAGS; echo > $@
+!,
+ "", "x.mk\nMAKEFLAGS = -Itst/bad -Oline\nGNUMAKEFLAGS =\nrecurse\nMAKEFLAGS = -Itst/bad -Oline\nGNUMAKEFLAGS =\n#MAKE#[1]: Entering directory '#PWD#'\nall\nMAKEFLAGS = w -Itst/bad -Oline\nGNUMAKEFLAGS =\n#MAKE#[1]: Leaving directory '#PWD#'\n");
+
+unlink('x.mk');
+
+1;
diff --git a/tests/scripts/variables/LIBPATTERNS b/tests/scripts/variables/LIBPATTERNS
index 826f2fa..9182954 100644
--- a/tests/scripts/variables/LIBPATTERNS
+++ b/tests/scripts/variables/LIBPATTERNS
@@ -20,7 +20,7 @@ run_make_test('
.LIBPATTERNS = mtest_foo.a mtest_%.a
all: -lfoo ; @echo "build $@ from $<"
',
- '', "#MAKE#: .LIBPATTERNS element `mtest_foo.a' is not a pattern
+ '', "#MAKE#: .LIBPATTERNS element 'mtest_foo.a' is not a pattern
build all from mtest_foo.a\n");
# TEST 2: target-specific override
diff --git a/tests/scripts/variables/MAKE b/tests/scripts/variables/MAKE
index d1081da..dc62160 100644
--- a/tests/scripts/variables/MAKE
+++ b/tests/scripts/variables/MAKE
@@ -16,8 +16,8 @@ foo:
!,
'',
"#MAKEPATH#\n#MAKEPATH# -f #MAKEFILE# foo\n"
- . "#MAKE#[1]: Entering directory `#PWD#'\n"
- . "#MAKEPATH#\n#MAKE#[1]: Leaving directory `#PWD#'\n");
+ . "#MAKE#[1]: Entering directory '#PWD#'\n"
+ . "#MAKEPATH#\n#MAKE#[1]: Leaving directory '#PWD#'\n");
rmfiles("foo");
diff --git a/tests/scripts/variables/MAKEFLAGS b/tests/scripts/variables/MAKEFLAGS
index 0b567e8..8a5d0f6 100644
--- a/tests/scripts/variables/MAKEFLAGS
+++ b/tests/scripts/variables/MAKEFLAGS
@@ -1,4 +1,4 @@
-# -*-perl-*-
+# -*-perl-*-
$description = "Test proper behavior of MAKEFLAGS";
@@ -8,36 +8,34 @@ $details = "DETAILS";
run_make_test(q!
all: ; @echo $(MAKEFLAGS)
!,
- '-e -r -R', 'Rre');
+ '-e -r -R', 'erR');
# Long arguments mean everything is prefixed with "-"
run_make_test(q!
all: ; @echo $(MAKEFLAGS)
!,
- '--no-print-directory -e -r -R', '--no-print-directory -Rre');
+ '--no-print-directory -e -r -R --trace', "#MAKEFILE#:2: target 'all' does not exist
+echo erR --trace --no-print-directory
+erR --trace --no-print-directory");
-if ($all_tests) {
- # Recursive invocations of make should accumulate MAKEFLAGS values.
- # Savannah bug #2216
- run_make_test(q!
+# Recursive invocations of make should accumulate MAKEFLAGS values.
+# Savannah bug #2216
+run_make_test(q!
MSG = Fails
all:
@echo '$@: MAKEFLAGS=$(MAKEFLAGS)'
@MSG=Works $(MAKE) -e -f #MAKEFILE# jump
jump:
- @echo '$@: MAKEFLAGS=$(MAKEFLAGS)'
+ @echo '$@ $(MSG): MAKEFLAGS=$(MAKEFLAGS)'
@$(MAKE) -f #MAKEFILE# print
print:
- @echo '$@: MAKEFLAGS=$(MAKEFLAGS)'
- @echo $(MSG)
+ @echo '$@ $(MSG): MAKEFLAGS=$(MAKEFLAGS)'
.PHONY: all jump print
!,
'--no-print-directory',
'all: MAKEFLAGS= --no-print-directory
-jump: MAKEFLAGS= --no-print-directory -e
-print: MAKEFLAGS= --no-print-directory -e
-Works');
-}
+jump Works: MAKEFLAGS=e --no-print-directory
+print Works: MAKEFLAGS=e --no-print-directory');
1;
diff --git a/tests/scripts/variables/MAKE_RESTARTS b/tests/scripts/variables/MAKE_RESTARTS
index 53ab738..ef8e368 100644
--- a/tests/scripts/variables/MAKE_RESTARTS
+++ b/tests/scripts/variables/MAKE_RESTARTS
@@ -52,10 +52,10 @@ MAKE_RESTARTS=1
foo.x:1: bar.x: No such file or directory
MAKE_RESTARTS=2
recurse MAKE_RESTARTS=
+#MAKE#[1]: Entering directory '#PWD#'
MAKE_RESTARTS=
-#MAKE#[1]: Entering directory `#PWD#'
all MAKE_RESTARTS=
-#MAKE#[1]: Leaving directory `#PWD#'");
+#MAKE#[1]: Leaving directory '#PWD#'");
rmfiles('foo.x', 'bar.x');
diff --git a/tests/scripts/variables/SHELL b/tests/scripts/variables/SHELL
index 7b7e7fe..1d01ba3 100644
--- a/tests/scripts/variables/SHELL
+++ b/tests/scripts/variables/SHELL
@@ -70,6 +70,22 @@ all: ; \@$script
!,
'', $out);
+# Do it again but add spaces to SHELLFLAGS
+
+# Some shells (*shakes fist at Solaris*) cannot handle multiple flags in
+# separate arguments.
+my $t = `/bin/sh -e -c true 2>/dev/null`;
+my $multi_ok = $? == 0;
+
+if ($multi_ok) {
+ $flags = '-x -c';
+ run_make_test(qq!
+.SHELLFLAGS = $flags
+all: ; \@$script
+!,
+ '', $out);
+}
+
# We can't just use "false" because on different systems it provides a
# different exit code--once again Solaris: false exits with 255 not 1
$script = 'true; false; true';
@@ -81,6 +97,7 @@ run_make_test(qq!
.SHELLFLAGS = $flags
all: ; \@$script
!,
- '', "$out#MAKE#: *** [all] Error $err\n", 512);
+ '', "$out#MAKEFILE#:3: recipe for target 'all' failed
+#MAKE#: *** [all] Error $err\n", 512);
1;
diff --git a/tests/scripts/variables/define b/tests/scripts/variables/define
index f91519e..7324cbc 100644
--- a/tests/scripts/variables/define
+++ b/tests/scripts/variables/define
@@ -30,6 +30,10 @@ define simple :=
@echo $(FOO)
endef
+define posix ::=
+@echo $(FOO)
+endef
+
append = @echo a
define append +=
@@ -49,10 +53,54 @@ FOO = there
all: ; $(multi)
$(simple)
+ $(posix)
+ $(append)
+ $(cond)
+',
+ '', "echo hi\nhi\nthere\nfoo\nfoo\na\nb\nfirst\n");
+
+# TEST 1a: Various new-style define/endef, with no spaces
+
+run_make_test('
+FOO = foo
+
+define multi=
+echo hi
+@echo $(FOO)
+endef # this is the end
+
+define simple:=
+@echo $(FOO)
+endef
+
+define posix::=
+@echo $(FOO)
+endef
+
+append = @echo a
+
+define append+=
+
+@echo b
+endef
+
+define cond?= # this is a conditional
+@echo first
+endef
+
+define cond?=
+@echo second
+endef
+
+FOO = there
+
+all: ; $(multi)
+ $(simple)
+ $(posix)
$(append)
$(cond)
',
- '', "echo hi\nhi\nthere\nfoo\na\nb\nfirst\n");
+ '', "echo hi\nhi\nthere\nfoo\nfoo\na\nb\nfirst\n");
# TEST 2: define in true section of conditional (containing conditional)
@@ -112,7 +160,7 @@ ouch
endef
all: ; @echo ok
',
- '', "#MAKEFILE#:3: extraneous text after `define' directive\nok\n");
+ '', "#MAKEFILE#:3: extraneous text after 'define' directive\nok\n");
# TEST 7: NEGATIVE: extra text after endef
@@ -123,7 +171,7 @@ ouch
endef $(NAME)
all: ; @echo ok
',
- '', "#MAKEFILE#:5: extraneous text after `endef' directive\nok\n");
+ '', "#MAKEFILE#:5: extraneous text after 'endef' directive\nok\n");
# TEST 8: NEGATIVE: missing endef
@@ -134,7 +182,7 @@ define NAME =
ouch
endef$(NAME)
',
- '', "#MAKEFILE#:4: *** missing `endef', unterminated `define'. Stop.\n", 512);
+ '', "#MAKEFILE#:4: *** missing 'endef', unterminated 'define'. Stop.\n", 512);
# -------------------------
# Make sure that prefix characters apply properly to define/endef values.
diff --git a/tests/scripts/variables/flavors b/tests/scripts/variables/flavors
index 92feed6..ba133ea 100644
--- a/tests/scripts/variables/flavors
+++ b/tests/scripts/variables/flavors
@@ -73,4 +73,24 @@ all: ; @echo $(foo)
',
'', "Hello\n");
+# TEST 6: Simple using POSIX syntax
+run_make_test('
+bar = Goodbye
+foo ::= $(bar)
+bar = ${ugh}
+ugh = Hello
+all: ; @echo $(foo)
+',
+ '', "Goodbye\n");
+
+# TEST 7: POSIX syntax no spaces
+run_make_test('
+bar = Goodbye
+foo::=$(bar)
+bar = ${ugh}
+ugh = Hello
+all: ; @echo $(foo)
+',
+ '', "Goodbye\n");
+
1;
diff --git a/tests/scripts/variables/private b/tests/scripts/variables/private
index b4baf5f..8967ffb 100644
--- a/tests/scripts/variables/private
+++ b/tests/scripts/variables/private
@@ -75,4 +75,48 @@ a b: ; @echo $@=$(private)
',
'', "b=a\na=a\n");
+# 9: make sure private suppresses inheritance
+run_make_test(q!
+DEFS = FOO
+all: bar1
+bar1: private DEFS += 1
+bar3: private DEFS += 3
+bar1: bar2
+bar2: bar3
+bar1 bar2 bar3: ; @echo '$@: $(DEFS)'
+!,
+ '', "bar3: FOO 3\nbar2: FOO\nbar1: FOO 1\n");
+
+# 10: Test append with pattern-specific variables and private
+
+run_make_test(q!
+IA = global
+PA = global
+PS = global
+S = global
+PS = global
+SV = global
+b%: IA += b%
+b%: private PA += b%
+b%: private PS = b%
+bar: all
+bar: IA += bar
+bar: private PA += bar
+bar: private PS = bar
+a%: IA += a%
+a%: private PA += a%
+a%: private PS = a%
+all: IA += all
+all: private PA += all
+all: private PS = all
+
+bar all: ; @echo '$@: IA=$(IA)'; echo '$@: PA=$(PA)'; echo '$@: PS=$(PS)'
+!,
+ '', "all: IA=global b% bar a% all
+all: PA=global a% all
+all: PS=all
+bar: IA=global b% bar
+bar: PA=global b% bar
+bar: PS=bar\n");
+
1;
diff --git a/tests/scripts/variables/special b/tests/scripts/variables/special
index a1e15c2..4637b2a 100644
--- a/tests/scripts/variables/special
+++ b/tests/scripts/variables/special
@@ -53,7 +53,7 @@ all:
# Test the .RECIPEPREFIX variable
&run_make_test('
define foo
-: foo-one \
+: foo-one\
foo-two
: foo-three
: foo-four
diff --git a/tests/test_driver.pl b/tests/test_driver.pl
index dec869d..2f83270 100644
--- a/tests/test_driver.pl
+++ b/tests/test_driver.pl
@@ -5,9 +5,7 @@
# Written 91-12-02 through 92-01-01 by Stephen McGee.
# Modified 92-02-11 through 92-02-22 by Chris Arthur to further generalize.
#
-# Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-# 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 1991-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
@@ -30,7 +28,7 @@
# this routine controls the whole mess; each test suite sets up a few
# variables and then calls &toplevel, which does all the real work.
-# $Id: test_driver.pl,v 1.30 2010/07/28 05:39:50 psmith Exp $
+# $Id$
# The number of test categories we've run
@@ -89,6 +87,7 @@ sub toplevel
foreach (# UNIX-specific things
'TZ', 'TMPDIR', 'HOME', 'USER', 'LOGNAME', 'PATH',
+ 'LD_LIBRARY_PATH',
# Purify things
'PURIFYOPTIONS',
# Windows NT-specific stuff
@@ -131,7 +130,7 @@ sub toplevel
&parse_command_line (@ARGV);
- print "OS name = `$osname'\n" if $debug;
+ print "OS name = '$osname'\n" if $debug;
$workpath = "$cwdslash$workdir";
$scriptpath = "$cwdslash$scriptdir";
@@ -166,7 +165,7 @@ sub toplevel
$dir = $1;
push (@rmdirs, $dir);
-d "$workpath/$dir"
- || mkdir ("$workpath/$dir", 0777)
+ || mkdir ("$workpath/$dir", 0777)
|| &error ("Couldn't mkdir $workpath/$dir: $!\n");
}
}
@@ -175,7 +174,7 @@ sub toplevel
{
print "Finding tests...\n";
opendir (SCRIPTDIR, $scriptpath)
- || &error ("Couldn't opendir $scriptpath: $!\n");
+ || &error ("Couldn't opendir $scriptpath: $!\n");
@dirs = grep (!/^(\..*|CVS|RCS)$/, readdir (SCRIPTDIR) );
closedir (SCRIPTDIR);
foreach $dir (@dirs)
@@ -185,13 +184,13 @@ sub toplevel
mkdir ("$workpath/$dir", 0777)
|| &error ("Couldn't mkdir $workpath/$dir: $!\n");
opendir (SCRIPTDIR, "$scriptpath/$dir")
- || &error ("Couldn't opendir $scriptpath/$dir: $!\n");
+ || &error ("Couldn't opendir $scriptpath/$dir: $!\n");
@files = grep (!/^(\..*|CVS|RCS|.*~)$/, readdir (SCRIPTDIR) );
closedir (SCRIPTDIR);
foreach $test (@files)
{
-d $test and next;
- push (@TESTS, "$dir/$test");
+ push (@TESTS, "$dir/$test");
}
}
}
@@ -203,7 +202,7 @@ sub toplevel
print "\n";
- &run_each_test;
+ run_all_tests();
foreach $dir (@rmdirs)
{
@@ -221,7 +220,7 @@ sub toplevel
print "s" unless $total_tests_failed == 1;
print " in $categories_failed Categor";
print ($categories_failed == 1 ? "y" : "ies");
- print " Failed (See .$diffext files in $workdir dir for details) :-(\n\n";
+ print " Failed (See .$diffext* files in $workdir dir for details) :-(\n\n";
return 0;
}
else
@@ -276,15 +275,15 @@ sub get_osname
eval "chop (\$osname = `sh -c 'uname -nmsr 2>&1'`)";
if ($osname =~ /not found/i)
{
- $osname = "(something posixy with no uname)";
+ $osname = "(something posixy with no uname)";
}
elsif ($@ ne "" || $?)
{
eval "chop (\$osname = `sh -c 'uname -a 2>&1'`)";
if ($@ ne "" || $?)
{
- $osname = "(something posixy)";
- }
+ $osname = "(something posixy)";
+ }
}
$vos = 0;
$pathsep = "/";
@@ -416,128 +415,133 @@ sub print_banner
print "\n";
}
-sub run_each_test
+sub run_all_tests
{
- $categories_run = 0;
+ $categories_run = 0;
+
+ foreach $testname (sort @TESTS) {
+ $suite_passed = 1; # reset by test on failure
+ $num_of_logfiles = 0;
+ $num_of_tmpfiles = 0;
+ $description = "";
+ $details = "";
+ $old_makefile = undef;
+ $testname =~ s/^$scriptpath$pathsep//;
+ $perl_testname = "$scriptpath$pathsep$testname";
+ $testname =~ s/(\.pl|\.perl)$//;
+ $testpath = "$workpath$pathsep$testname";
+ # Leave enough space in the extensions to append a number, even
+ # though it needs to fit into 8+3 limits.
+ if ($short_filenames) {
+ $logext = 'l';
+ $diffext = 'd';
+ $baseext = 'b';
+ $runext = 'r';
+ $extext = '';
+ } else {
+ $logext = 'log';
+ $diffext = 'diff';
+ $baseext = 'base';
+ $runext = 'run';
+ $extext = '.';
+ }
+ $log_filename = "$testpath.$logext";
+ $diff_filename = "$testpath.$diffext";
+ $base_filename = "$testpath.$baseext";
+ $run_filename = "$testpath.$runext";
+ $tmp_filename = "$testpath.$tmpfilesuffix";
- foreach $testname (sort @TESTS)
- {
- ++$categories_run;
- $suite_passed = 1; # reset by test on failure
- $num_of_logfiles = 0;
- $num_of_tmpfiles = 0;
- $description = "";
- $details = "";
- $old_makefile = undef;
- $testname =~ s/^$scriptpath$pathsep//;
- $perl_testname = "$scriptpath$pathsep$testname";
- $testname =~ s/(\.pl|\.perl)$//;
- $testpath = "$workpath$pathsep$testname";
- # Leave enough space in the extensions to append a number, even
- # though it needs to fit into 8+3 limits.
- if ($short_filenames) {
- $logext = 'l';
- $diffext = 'd';
- $baseext = 'b';
- $runext = 'r';
- $extext = '';
- } else {
- $logext = 'log';
- $diffext = 'diff';
- $baseext = 'base';
- $runext = 'run';
- $extext = '.';
- }
- $log_filename = "$testpath.$logext";
- $diff_filename = "$testpath.$diffext";
- $base_filename = "$testpath.$baseext";
- $run_filename = "$testpath.$runext";
- $tmp_filename = "$testpath.$tmpfilesuffix";
+ setup_for_test();
- &setup_for_test; # suite-defined
+ $output = "........................................................ ";
- $output = "........................................................ ";
+ substr($output,0,length($testname)) = "$testname ";
- substr($output,0,length($testname)) = "$testname ";
+ print $output;
- print $output;
+ $tests_run = 0;
+ $tests_passed = 0;
- # Run the actual test!
- $tests_run = 0;
- $tests_passed = 0;
+ # Run the test!
+ $code = do $perl_testname;
- $code = do $perl_testname;
+ ++$categories_run;
+ $total_tests_run += $tests_run;
+ $total_tests_passed += $tests_passed;
- $total_tests_run += $tests_run;
- $total_tests_passed += $tests_passed;
+ # How did it go?
+ if (!defined($code)) {
+ # Failed to parse or called die
+ if (length ($@)) {
+ warn "\n*** Test died ($testname): $@\n";
+ } else {
+ warn "\n*** Couldn't parse $perl_testname\n";
+ }
+ $status = "FAILED ($tests_passed/$tests_run passed)";
+ }
- # How did it go?
- if (!defined($code))
- {
- $suite_passed = 0;
- if (length ($@)) {
- warn "\n*** Test died ($testname): $@\n";
- } else {
- warn "\n*** Couldn't run $perl_testname\n";
- }
- }
- elsif ($code == -1) {
- $suite_passed = 0;
- }
- elsif ($code != 1 && $code != -1) {
- $suite_passed = 0;
- warn "\n*** Test returned $code\n";
- }
+ elsif ($code == -1) {
+ # Skipped... not supported
+ $status = "N/A";
+ --$categories_run;
+ }
- if ($suite_passed) {
- ++$categories_passed;
- $status = "ok ($tests_passed passed)";
- for ($i = $num_of_tmpfiles; $i; $i--)
- {
- &rmfiles ($tmp_filename . &num_suffix ($i) );
- }
+ elsif ($code != 1) {
+ # Bad result... this shouldn't really happen. Usually means that
+ # the suite forgot to end with "1;".
+ warn "\n*** Test returned $code\n";
+ $status = "FAILED ($tests_passed/$tests_run passed)";
+ }
- for ($i = $num_of_logfiles ? $num_of_logfiles : 1; $i; $i--)
- {
- &rmfiles ($log_filename . &num_suffix ($i) );
- &rmfiles ($base_filename . &num_suffix ($i) );
- }
- }
- elsif (!defined $code || $code > 0) {
- $status = "FAILED ($tests_passed/$tests_run passed)";
- }
- elsif ($code < 0) {
- $status = "N/A";
- --$categories_run;
- }
+ elsif ($tests_run == 0) {
+ # Nothing was done!!
+ $status = "FAILED (no tests found!)";
+ }
- # If the verbose option has been specified, then a short description
- # of each test is printed before displaying the results of each test
- # describing WHAT is being tested.
+ elsif ($tests_run > $tests_passed) {
+ # Lose!
+ $status = "FAILED ($tests_passed/$tests_run passed)";
+ }
- if ($verbose)
- {
- if ($detail)
- {
- print "\nWHAT IS BEING TESTED\n";
- print "--------------------";
- }
- print "\n\n$description\n\n";
- }
+ else {
+ # Win!
+ ++$categories_passed;
+ $status = "ok ($tests_passed passed)";
+
+ # Clean up
+ for ($i = $num_of_tmpfiles; $i; $i--) {
+ rmfiles($tmp_filename . num_suffix($i));
+ }
+ for ($i = $num_of_logfiles ? $num_of_logfiles : 1; $i; $i--) {
+ rmfiles($log_filename . num_suffix($i));
+ rmfiles($base_filename . num_suffix($i));
+ }
+ }
- # If the detail option has been specified, then the details of HOW
- # the test is testing what it says it is testing in the verbose output
- # will be displayed here before the results of the test are displayed.
+ # If the verbose option has been specified, then a short description
+ # of each test is printed before displaying the results of each test
+ # describing WHAT is being tested.
- if ($detail)
- {
- print "\nHOW IT IS TESTED\n";
- print "----------------";
- print "\n\n$details\n\n";
- }
+ if ($verbose) {
+ if ($detail) {
+ print "\nWHAT IS BEING TESTED\n";
+ print "--------------------";
+ }
+ print "\n\n$description\n\n";
+ }
- print "$status\n";
- }
+ # If the detail option has been specified, then the details of HOW
+ # the test is testing what it says it is testing in the verbose output
+ # will be displayed here before the results of the test are displayed.
+
+ if ($detail) {
+ print "\nHOW IT IS TESTED\n";
+ print "----------------";
+ print "\n\n$details\n\n";
+ }
+
+ print "$status\n";
+ }
}
# If the keep flag is not set, this subroutine deletes all filenames that
@@ -654,38 +658,43 @@ sub compare_output
local($answer,$logfile) = @_;
local($slurp, $answer_matched) = ('', 0);
- print "Comparing Output ........ " if $debug;
+ ++$tests_run;
- $slurp = &read_file_into_string ($logfile);
+ if (! defined $answer) {
+ print "Ignoring output ........ " if $debug;
+ $answer_matched = 1;
+ } else {
+ print "Comparing Output ........ " if $debug;
- # For make, get rid of any time skew error before comparing--too bad this
- # has to go into the "generic" driver code :-/
- $slurp =~ s/^.*modification time .*in the future.*\n//gm;
- $slurp =~ s/^.*Clock skew detected.*\n//gm;
+ $slurp = &read_file_into_string ($logfile);
- ++$tests_run;
+ # For make, get rid of any time skew error before comparing--too bad this
+ # has to go into the "generic" driver code :-/
+ $slurp =~ s/^.*modification time .*in the future.*\n//gm;
+ $slurp =~ s/^.*Clock skew detected.*\n//gm;
- if ($slurp eq $answer) {
- $answer_matched = 1;
- } else {
- # See if it is a slash or CRLF problem
- local ($answer_mod, $slurp_mod) = ($answer, $slurp);
+ if ($slurp eq $answer) {
+ $answer_matched = 1;
+ } else {
+ # See if it is a slash or CRLF problem
+ local ($answer_mod, $slurp_mod) = ($answer, $slurp);
- $answer_mod =~ tr,\\,/,;
- $answer_mod =~ s,\r\n,\n,gs;
+ $answer_mod =~ tr,\\,/,;
+ $answer_mod =~ s,\r\n,\n,gs;
- $slurp_mod =~ tr,\\,/,;
- $slurp_mod =~ s,\r\n,\n,gs;
+ $slurp_mod =~ tr,\\,/,;
+ $slurp_mod =~ s,\r\n,\n,gs;
- $answer_matched = ($slurp_mod eq $answer_mod);
+ $answer_matched = ($slurp_mod eq $answer_mod);
- # If it still doesn't match, see if the answer might be a regex.
- if (!$answer_matched && $answer =~ m,^/(.+)/$,) {
- $answer_matched = ($slurp =~ /$1/);
- if (!$answer_matched && $answer_mod =~ m,^/(.+)/$,) {
- $answer_matched = ($slurp_mod =~ /$1/);
+ # If it still doesn't match, see if the answer might be a regex.
+ if (!$answer_matched && $answer =~ m,^/(.+)/$,) {
+ $answer_matched = ($slurp =~ /$1/);
+ if (!$answer_matched && $answer_mod =~ m,^/(.+)/$,) {
+ $answer_matched = ($slurp_mod =~ /$1/);
+ }
+ }
}
- }
}
if ($answer_matched && $test_passed)
@@ -707,11 +716,8 @@ sub compare_output
local($command) = "diff -c " . &get_basefile . " " . $logfile;
&run_command_with_output(&get_difffile,$command);
- } else {
- &rmfiles ();
}
- $suite_passed = 0;
return 0;
}
@@ -731,6 +737,9 @@ sub read_file_into_string
return $slurp;
}
+my @OUTSTACK = ();
+my @ERRSTACK = ();
+
sub attach_default_output
{
local ($filename) = @_;
@@ -743,17 +752,16 @@ sub attach_default_output
return 1;
}
- open ("SAVEDOS" . $default_output_stack_level . "out", ">&STDOUT")
- || &error ("ado: $! duping STDOUT\n", 1);
- open ("SAVEDOS" . $default_output_stack_level . "err", ">&STDERR")
- || &error ("ado: $! duping STDERR\n", 1);
+ my $dup = undef;
+ open($dup, '>&', STDOUT) or error("ado: $! duping STDOUT\n", 1);
+ push @OUTSTACK, $dup;
- open (STDOUT, "> " . $filename)
- || &error ("ado: $filename: $!\n", 1);
- open (STDERR, ">&STDOUT")
- || &error ("ado: $filename: $!\n", 1);
+ $dup = undef;
+ open($dup, '>&', STDERR) or error("ado: $! duping STDERR\n", 1);
+ push @ERRSTACK, $dup;
- $default_output_stack_level++;
+ open(STDOUT, '>', $filename) or error("ado: $filename: $!\n", 1);
+ open(STDERR, ">&STDOUT") or error("ado: $filename: $!\n", 1);
}
# close the current stdout/stderr, and restore the previous ones from
@@ -770,23 +778,13 @@ sub detach_default_output
return 1;
}
- if (--$default_output_stack_level < 0)
- {
- &error ("default output stack has flown under!\n", 1);
- }
-
- close (STDOUT);
- close (STDERR);
+ @OUTSTACK or error("default output stack has flown under!\n", 1);
- open (STDOUT, ">&SAVEDOS" . $default_output_stack_level . "out")
- || &error ("ddo: $! duping STDOUT\n", 1);
- open (STDERR, ">&SAVEDOS" . $default_output_stack_level . "err")
- || &error ("ddo: $! duping STDERR\n", 1);
+ close(STDOUT);
+ close(STDERR);
- close ("SAVEDOS" . $default_output_stack_level . "out")
- || &error ("ddo: $! closing SCSDOSout\n", 1);
- close ("SAVEDOS" . $default_output_stack_level . "err")
- || &error ("ddo: $! closing SAVEDOSerr\n", 1);
+ open (STDOUT, '>&', pop @OUTSTACK) or error("ddo: $! duping STDOUT\n", 1);
+ open (STDERR, '>&', pop @ERRSTACK) or error("ddo: $! duping STDERR\n", 1);
}
# This runs a command without any debugging info.
@@ -800,14 +798,19 @@ sub _run_command
resetENV();
eval {
- local $SIG{ALRM} = sub { die "timeout\n"; };
+ my $pid = fork();
+ if (! $pid) {
+ exec(@_) or die "Cannot execute $_[0]\n";
+ }
+ local $SIG{ALRM} = sub { my $e = $ERRSTACK[0]; print $e "\nTest timed out after $test_timeout seconds\n"; die "timeout\n"; };
alarm $test_timeout;
- $code = system(@_);
+ waitpid($pid, 0) > 0 or die "No such pid: $pid\n";
+ $code = $?;
alarm 0;
};
if ($@) {
# The eval failed. If it wasn't SIGALRM then die.
- $@ eq "timeout\n" or die;
+ $@ eq "timeout\n" or die "Command failed: $@";
# Timed out. Resend the alarm to our process group to kill the children.
$SIG{ALRM} = 'IGNORE';
@@ -841,8 +844,12 @@ sub run_command_with_output
print "\nrun_command_with_output($filename,$runname): @_\n" if $debug;
&attach_default_output ($filename);
- my $code = _run_command(@_);
+ my $code = eval { _run_command(@_) };
+ my $err = $@;
&detach_default_output;
+
+ $err and die $err;
+
print "run_command_with_output returned $code.\n" if $debug;
return $code;
@@ -942,7 +949,7 @@ sub touch
foreach $file (@_) {
(open(T, ">> $file") && print(T "\n") && close(T))
- || &error("Couldn't touch $file: $!\n", 1);
+ || &error("Couldn't touch $file: $!\n", 1);
}
}
diff --git a/variable.c b/variable.c
index 915be20..2ff14b6 100644
--- a/variable.c
+++ b/variable.c
@@ -1,7 +1,5 @@
/* Internals of variables for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,12 +14,12 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
#include <assert.h>
-#include "dep.h"
#include "filedef.h"
+#include "dep.h"
#include "job.h"
#include "commands.h"
#include "variable.h"
@@ -100,7 +98,7 @@ static struct pattern_var *
lookup_pattern_var (struct pattern_var *start, const char *target)
{
struct pattern_var *p;
- unsigned int targlen = strlen(target);
+ unsigned int targlen = strlen (target);
for (p = start ? start->next : pattern_vars; p != 0; p = p->next)
{
@@ -160,14 +158,14 @@ variable_hash_cmp (const void *xv, const void *yv)
return_STRING_N_COMPARE (x->name, y->name, x->length);
}
-#ifndef VARIABLE_BUCKETS
-#define VARIABLE_BUCKETS 523
+#ifndef VARIABLE_BUCKETS
+#define VARIABLE_BUCKETS 523
#endif
-#ifndef PERFILE_VARIABLE_BUCKETS
-#define PERFILE_VARIABLE_BUCKETS 23
+#ifndef PERFILE_VARIABLE_BUCKETS
+#define PERFILE_VARIABLE_BUCKETS 23
#endif
-#ifndef SMALL_SCOPE_VARIABLE_BUCKETS
-#define SMALL_SCOPE_VARIABLE_BUCKETS 13
+#ifndef SMALL_SCOPE_VARIABLE_BUCKETS
+#define SMALL_SCOPE_VARIABLE_BUCKETS 13
#endif
static struct variable_set global_variable_set;
@@ -181,7 +179,7 @@ void
init_hash_global_variable_set (void)
{
hash_init (&global_variable_set.table, VARIABLE_BUCKETS,
- variable_hash_1, variable_hash_2, variable_hash_cmp);
+ variable_hash_1, variable_hash_2, variable_hash_cmp);
}
/* Define variable named NAME with value VALUE in SET. VALUE is copied.
@@ -195,7 +193,7 @@ struct variable *
define_variable_in_set (const char *name, unsigned int length,
const char *value, enum variable_origin origin,
int recursive, struct variable_set *set,
- const struct floc *flocp)
+ const gmk_floc *flocp)
{
struct variable *v;
struct variable **var_slot;
@@ -215,25 +213,25 @@ define_variable_in_set (const char *name, unsigned int length,
if (! HASH_VACANT (v))
{
if (env_overrides && v->origin == o_env)
- /* V came from in the environment. Since it was defined
- before the switches were parsed, it wasn't affected by -e. */
- v->origin = o_env_override;
+ /* V came from in the environment. Since it was defined
+ before the switches were parsed, it wasn't affected by -e. */
+ v->origin = o_env_override;
/* A variable of this name is already defined.
- If the old definition is from a stronger source
- than this one, don't redefine it. */
+ If the old definition is from a stronger source
+ than this one, don't redefine it. */
if ((int) origin >= (int) v->origin)
- {
- if (v->value != 0)
- free (v->value);
- v->value = xstrdup (value);
+ {
+ if (v->value != 0)
+ free (v->value);
+ v->value = xstrdup (value);
if (flocp != 0)
v->fileinfo = *flocp;
else
v->fileinfo.filenm = 0;
- v->origin = origin;
- v->recursive = recursive;
- }
+ v->origin = origin;
+ v->recursive = recursive;
+ }
return v;
}
@@ -282,7 +280,21 @@ define_variable_in_set (const char *name, unsigned int length,
variable (makefile, command line or environment). */
static void
-free_variable_name_and_value (const void *item);
+free_variable_name_and_value (const void *item)
+{
+ struct variable *v = (struct variable *) item;
+ free (v->name);
+ free (v->value);
+}
+
+void
+free_variable_set (struct variable_set_list *list)
+{
+ hash_map (&list->set->table, free_variable_name_and_value);
+ hash_free (&list->set->table, 1);
+ free (list->set);
+ free (list);
+}
void
undefine_variable_in_set (const char *name, unsigned int length,
@@ -307,17 +319,17 @@ undefine_variable_in_set (const char *name, unsigned int length,
if (! HASH_VACANT (v))
{
if (env_overrides && v->origin == o_env)
- /* V came from in the environment. Since it was defined
- before the switches were parsed, it wasn't affected by -e. */
- v->origin = o_env_override;
+ /* V came from in the environment. Since it was defined
+ before the switches were parsed, it wasn't affected by -e. */
+ v->origin = o_env_override;
/* If the definition is from a stronger source than this one, don't
undefine it. */
if ((int) origin >= (int) v->origin)
- {
+ {
hash_delete_at (&set->table, var_slot);
free_variable_name_and_value (v);
- }
+ }
}
}
@@ -412,7 +424,7 @@ lookup_special_var (struct variable *var)
/* Lookup a variable whose name is a string starting at NAME
and with LENGTH chars. NAME need not be null-terminated.
- Returns address of the `struct variable' containing all info
+ Returns address of the 'struct variable' containing all info
on the variable, or nil if no such variable is defined. */
struct variable *
@@ -433,7 +445,7 @@ lookup_variable (const char *name, unsigned int length)
v = (struct variable *) hash_find_item ((struct hash_table *) &set->table, &var_key);
if (v && (!is_parent || !v->private_var))
- return v->special ? lookup_special_var (v) : v;
+ return v->special ? lookup_special_var (v) : v;
is_parent |= setlist->next_is_parent;
}
@@ -499,7 +511,7 @@ lookup_variable (const char *name, unsigned int length)
/* Lookup a variable whose name is a string starting at NAME
and with LENGTH chars in set SET. NAME need not be null-terminated.
- Returns address of the `struct variable' containing all info
+ Returns address of the 'struct variable' containing all info
on the variable, or nil if no such variable is defined. */
struct variable *
@@ -531,7 +543,7 @@ initialize_file_variables (struct file *file, int reading)
if (l == 0)
{
l = (struct variable_set_list *)
- xmalloc (sizeof (struct variable_set_list));
+ xmalloc (sizeof (struct variable_set_list));
l->set = xmalloc (sizeof (struct variable_set));
hash_init (&l->set->table, PERFILE_VARIABLE_BUCKETS,
variable_hash_1, variable_hash_2, variable_hash_cmp);
@@ -634,7 +646,7 @@ create_new_variable_set (void)
set = xmalloc (sizeof (struct variable_set));
hash_init (&set->table, SMALL_SCOPE_VARIABLE_BUCKETS,
- variable_hash_1, variable_hash_2, variable_hash_cmp);
+ variable_hash_1, variable_hash_2, variable_hash_cmp);
setlist = (struct variable_set_list *)
xmalloc (sizeof (struct variable_set_list));
@@ -645,23 +657,6 @@ create_new_variable_set (void)
return setlist;
}
-static void
-free_variable_name_and_value (const void *item)
-{
- struct variable *v = (struct variable *) item;
- free (v->name);
- free (v->value);
-}
-
-void
-free_variable_set (struct variable_set_list *list)
-{
- hash_map (&list->set->table, free_variable_name_and_value);
- hash_free (&list->set->table, 1);
- free (list->set);
- free (list);
-}
-
/* Create a new variable set and push it on the current setlist.
If we're pushing a global scope (that is, the current scope is the global
scope) then we need to "push" it the other way: file variable sets point
@@ -671,7 +666,7 @@ free_variable_set (struct variable_set_list *list)
struct variable_set_list *
push_new_variable_scope (void)
{
- current_variable_set_list = create_new_variable_set();
+ current_variable_set_list = create_new_variable_set ();
if (current_variable_set_list->next == &global_setlist)
{
/* It was the global, so instead of new -> &global we want to replace
@@ -694,7 +689,7 @@ pop_variable_scope (void)
struct variable_set *set;
/* Can't call this if there's no scope to pop! */
- assert(current_variable_set_list->next != NULL);
+ assert (current_variable_set_list->next != NULL);
if (current_variable_set_list != &global_setlist)
{
@@ -734,17 +729,17 @@ merge_variable_sets (struct variable_set *to_set,
for ( ; from_var_slot < from_var_end; from_var_slot++)
if (! HASH_VACANT (*from_var_slot))
{
- struct variable *from_var = *from_var_slot;
- struct variable **to_var_slot
- = (struct variable **) hash_find_slot (&to_set->table, *from_var_slot);
- if (HASH_VACANT (*to_var_slot))
- hash_insert_at (&to_set->table, from_var, to_var_slot);
- else
- {
- /* GKM FIXME: delete in from_set->table */
- free (from_var->value);
- free (from_var);
- }
+ struct variable *from_var = *from_var_slot;
+ struct variable **to_var_slot
+ = (struct variable **) hash_find_slot (&to_set->table, *from_var_slot);
+ if (HASH_VACANT (*to_var_slot))
+ hash_insert_at (&to_set->table, from_var, to_var_slot);
+ else
+ {
+ /* GKM FIXME: delete in from_set->table */
+ free (from_var->value);
+ free (from_var);
+ }
}
}
@@ -778,9 +773,9 @@ merge_variable_set_lists (struct variable_set_list **setlist0,
if (setlist1 != &global_setlist)
{
if (last0 == 0)
- *setlist0 = setlist1;
+ *setlist0 = setlist1;
else
- last0->next = setlist1;
+ last0->next = setlist1;
}
}
@@ -802,12 +797,13 @@ define_automatic_variables (void)
define_variable_cname (MAKELEVEL_NAME, buf, o_env, 0);
sprintf (buf, "%s%s%s",
- version_string,
- (remote_description == 0 || remote_description[0] == '\0')
- ? "" : "-",
- (remote_description == 0 || remote_description[0] == '\0')
- ? "" : remote_description);
+ version_string,
+ (remote_description == 0 || remote_description[0] == '\0')
+ ? "" : "-",
+ (remote_description == 0 || remote_description[0] == '\0')
+ ? "" : remote_description);
define_variable_cname ("MAKE_VERSION", buf, o_default, 0);
+ define_variable_cname ("MAKE_HOST", make_host, o_default, 0);
#ifdef __MSDOS__
/* Allow to specify a special shell just for Make,
@@ -821,14 +817,14 @@ define_automatic_variables (void)
/* $(MAKESHELL) overrides $(SHELL) even if -e is in effect. */
if (mshp)
(void) define_variable (shell_str, shlen,
- mshp->value, o_env_override, 0);
+ mshp->value, o_env_override, 0);
else if (comp)
{
- /* $(COMSPEC) shouldn't override $(SHELL). */
- struct variable *shp = lookup_variable (shell_str, shlen);
+ /* $(COMSPEC) shouldn't override $(SHELL). */
+ struct variable *shp = lookup_variable (shell_str, shlen);
- if (!shp)
- (void) define_variable (shell_str, shlen, comp->value, o_env, 0);
+ if (!shp)
+ (void) define_variable (shell_str, shlen, comp->value, o_env, 0);
}
}
#elif defined(__EMX__)
@@ -846,13 +842,13 @@ define_automatic_variables (void)
did not come from the environment */
if (!replace || !*replace->value)
if (shell && *shell->value && (shell->origin == o_env
- || shell->origin == o_env_override))
- {
- /* overwrite whatever we got from the environment */
- free(shell->value);
- shell->value = xstrdup (default_shell);
- shell->origin = o_default;
- }
+ || shell->origin == o_env_override))
+ {
+ /* overwrite whatever we got from the environment */
+ free (shell->value);
+ shell->value = xstrdup (default_shell);
+ shell->origin = o_default;
+ }
/* Some people do not like cmd to be used as the default
if $SHELL is not defined in the Makefile.
@@ -872,11 +868,11 @@ define_automatic_variables (void)
if (replace && *replace->value)
/* overwrite $SHELL */
(void) define_variable (shell_str, shlen, replace->value,
- replace->origin, 0);
+ replace->origin, 0);
else
/* provide a definition if there is none */
(void) define_variable (shell_str, shlen, default_shell,
- o_default, 0);
+ o_default, 0);
}
#endif
@@ -917,7 +913,23 @@ define_automatic_variables (void)
define_variable_cname ("?D", "$(dir $?)", o_automatic, 1);
define_variable_cname ("^D", "$(dir $^)", o_automatic, 1);
define_variable_cname ("+D", "$(dir $+)", o_automatic, 1);
-#else
+#elif defined(__MSDOS__) || defined(WINDOWS32)
+ /* For consistency, remove the trailing backslash as well as slash. */
+ define_variable_cname ("@D", "$(patsubst %/,%,$(patsubst %\\,%,$(dir $@)))",
+ o_automatic, 1);
+ define_variable_cname ("%D", "$(patsubst %/,%,$(patsubst %\\,%,$(dir $%)))",
+ o_automatic, 1);
+ define_variable_cname ("*D", "$(patsubst %/,%,$(patsubst %\\,%,$(dir $*)))",
+ o_automatic, 1);
+ define_variable_cname ("<D", "$(patsubst %/,%,$(patsubst %\\,%,$(dir $<)))",
+ o_automatic, 1);
+ define_variable_cname ("?D", "$(patsubst %/,%,$(patsubst %\\,%,$(dir $?)))",
+ o_automatic, 1);
+ define_variable_cname ("^D", "$(patsubst %/,%,$(patsubst %\\,%,$(dir $^)))",
+ o_automatic, 1);
+ define_variable_cname ("+D", "$(patsubst %/,%,$(patsubst %\\,%,$(dir $+)))",
+ o_automatic, 1);
+#else /* not __MSDOS__, not WINDOWS32 */
define_variable_cname ("@D", "$(patsubst %/,%,$(dir $@))", o_automatic, 1);
define_variable_cname ("%D", "$(patsubst %/,%,$(dir $%))", o_automatic, 1);
define_variable_cname ("*D", "$(patsubst %/,%,$(dir $*))", o_automatic, 1);
@@ -938,7 +950,7 @@ define_automatic_variables (void)
int export_all_variables;
/* Create a new environment for FILE's commands.
- If FILE is nil, this is for the `shell' function.
+ If FILE is nil, this is for the 'shell' function.
The child's MAKELEVEL variable is incremented. */
char **
@@ -959,7 +971,7 @@ target_environment (struct file *file)
set_list = file->variables;
hash_init (&table, VARIABLE_BUCKETS,
- variable_hash_1, variable_hash_2, variable_hash_cmp);
+ variable_hash_1, variable_hash_2, variable_hash_cmp);
/* Run through all the variable sets in the list,
accumulating variables in TABLE. */
@@ -969,68 +981,68 @@ target_environment (struct file *file)
v_slot = (struct variable **) set->table.ht_vec;
v_end = v_slot + set->table.ht_size;
for ( ; v_slot < v_end; v_slot++)
- if (! HASH_VACANT (*v_slot))
- {
- struct variable **new_slot;
- struct variable *v = *v_slot;
-
- /* If this is a per-target variable and it hasn't been touched
- already then look up the global version and take its export
- value. */
- if (v->per_target && v->export == v_default)
- {
- struct variable *gv;
-
- gv = lookup_variable_in_set (v->name, strlen(v->name),
+ if (! HASH_VACANT (*v_slot))
+ {
+ struct variable **new_slot;
+ struct variable *v = *v_slot;
+
+ /* If this is a per-target variable and it hasn't been touched
+ already then look up the global version and take its export
+ value. */
+ if (v->per_target && v->export == v_default)
+ {
+ struct variable *gv;
+
+ gv = lookup_variable_in_set (v->name, strlen (v->name),
&global_variable_set);
- if (gv)
- v->export = gv->export;
- }
+ if (gv)
+ v->export = gv->export;
+ }
- switch (v->export)
- {
- case v_default:
- if (v->origin == o_default || v->origin == o_automatic)
- /* Only export default variables by explicit request. */
- continue;
+ switch (v->export)
+ {
+ case v_default:
+ if (v->origin == o_default || v->origin == o_automatic)
+ /* Only export default variables by explicit request. */
+ continue;
/* The variable doesn't have a name that can be exported. */
if (! v->exportable)
continue;
- if (! export_all_variables
- && v->origin != o_command
- && v->origin != o_env && v->origin != o_env_override)
- continue;
- break;
-
- case v_export:
- break;
-
- case v_noexport:
- {
- /* If this is the SHELL variable and it's not exported,
- then add the value from our original environment, if
- the original environment defined a value for SHELL. */
- extern struct variable shell_var;
- if (streq (v->name, "SHELL") && shell_var.value)
- {
- v = &shell_var;
- break;
- }
- continue;
- }
-
- case v_ifset:
- if (v->origin == o_default)
- continue;
- break;
- }
-
- new_slot = (struct variable **) hash_find_slot (&table, v);
- if (HASH_VACANT (*new_slot))
- hash_insert_at (&table, v, new_slot);
- }
+ if (! export_all_variables
+ && v->origin != o_command
+ && v->origin != o_env && v->origin != o_env_override)
+ continue;
+ break;
+
+ case v_export:
+ break;
+
+ case v_noexport:
+ {
+ /* If this is the SHELL variable and it's not exported,
+ then add the value from our original environment, if
+ the original environment defined a value for SHELL. */
+ extern struct variable shell_var;
+ if (streq (v->name, "SHELL") && shell_var.value)
+ {
+ v = &shell_var;
+ break;
+ }
+ continue;
+ }
+
+ case v_ifset:
+ if (v->origin == o_default)
+ continue;
+ break;
+ }
+
+ new_slot = (struct variable **) hash_find_slot (&table, v);
+ if (HASH_VACANT (*new_slot))
+ hash_insert_at (&table, v, new_slot);
+ }
}
makelevel_key.name = MAKELEVEL_NAME;
@@ -1044,32 +1056,32 @@ target_environment (struct file *file)
for ( ; v_slot < v_end; v_slot++)
if (! HASH_VACANT (*v_slot))
{
- struct variable *v = *v_slot;
-
- /* If V is recursively expanded and didn't come from the environment,
- expand its value. If it came from the environment, it should
- go back into the environment unchanged. */
- if (v->recursive
- && v->origin != o_env && v->origin != o_env_override)
- {
- char *value = recursively_expand_for_file (v, file);
+ struct variable *v = *v_slot;
+
+ /* If V is recursively expanded and didn't come from the environment,
+ expand its value. If it came from the environment, it should
+ go back into the environment unchanged. */
+ if (v->recursive
+ && v->origin != o_env && v->origin != o_env_override)
+ {
+ char *value = recursively_expand_for_file (v, file);
#ifdef WINDOWS32
- if (strcmp(v->name, "Path") == 0 ||
- strcmp(v->name, "PATH") == 0)
- convert_Path_to_windows32(value, ';');
+ if (strcmp (v->name, "Path") == 0 ||
+ strcmp (v->name, "PATH") == 0)
+ convert_Path_to_windows32 (value, ';');
#endif
- *result++ = xstrdup (concat (3, v->name, "=", value));
- free (value);
- }
- else
- {
+ *result++ = xstrdup (concat (3, v->name, "=", value));
+ free (value);
+ }
+ else
+ {
#ifdef WINDOWS32
- if (strcmp(v->name, "Path") == 0 ||
- strcmp(v->name, "PATH") == 0)
- convert_Path_to_windows32(v->value, ';');
+ if (strcmp (v->name, "Path") == 0 ||
+ strcmp (v->name, "PATH") == 0)
+ convert_Path_to_windows32 (v->value, ';');
#endif
- *result++ = xstrdup (concat (3, v->name, "=", v->value));
- }
+ *result++ = xstrdup (concat (3, v->name, "=", v->value));
+ }
}
*result = xmalloc (100);
@@ -1095,11 +1107,34 @@ set_special_var (struct variable *var)
return var;
}
+/* Given a string, shell-execute it and return a malloc'ed string of the
+ * result. This removes only ONE newline (if any) at the end, for maximum
+ * compatibility with the *BSD makes. If it fails, returns NULL. */
+
+char *
+shell_result (const char *p)
+{
+ char *buf;
+ unsigned int len;
+ char *args[2];
+ char *result;
+
+ install_variable_buffer (&buf, &len);
+
+ args[0] = (char *) p;
+ args[1] = NULL;
+ variable_buffer_output (func_shell_base (variable_buffer, args, 0), "\0", 1);
+ result = strdup (variable_buffer);
+
+ restore_variable_buffer (buf, len);
+ return result;
+}
+
/* Given a variable, a value, and a flavor, define the variable.
See the try_variable_definition() function for details on the parameters. */
struct variable *
-do_variable_definition (const struct floc *flocp, const char *varname,
+do_variable_definition (const gmk_floc *flocp, const char *varname,
const char *value, enum variable_origin origin,
enum variable_flavor flavor, int target_var)
{
@@ -1120,10 +1155,20 @@ do_variable_definition (const struct floc *flocp, const char *varname,
case f_simple:
/* A simple variable definition "var := value". Expand the value.
We have to allocate memory since otherwise it'll clobber the
- variable buffer, and we may still need that if we're looking at a
+ variable buffer, and we may still need that if we're looking at a
target-specific variable. */
p = alloc_value = allocated_variable_expand (value);
break;
+ case f_shell:
+ {
+ /* A shell definition "var != value". Expand value, pass it to
+ the shell, and store the result in recursively-expanded var. */
+ char *q = allocated_variable_expand (value);
+ p = alloc_value = shell_result (q);
+ free (q);
+ flavor = f_recursive;
+ break;
+ }
case f_conditional:
/* A conditional variable definition "var ?= value".
The value is set IFF the variable is not defined yet. */
@@ -1136,7 +1181,7 @@ do_variable_definition (const struct floc *flocp, const char *varname,
/* FALLTHROUGH */
case f_recursive:
/* A recursive variable definition "var = value".
- The value is used verbatim. */
+ The value is used verbatim. */
p = value;
break;
case f_append:
@@ -1201,7 +1246,7 @@ do_variable_definition (const struct floc *flocp, const char *varname,
#ifdef __MSDOS__
/* Many Unix Makefiles include a line saying "SHELL=/bin/sh", but
non-Unix systems don't conform to this default configuration (in
- fact, most of them don't even have `/bin'). On the other hand,
+ fact, most of them don't even have '/bin'). On the other hand,
$SHELL in the environment, if set, points to the real pathname of
the shell.
Therefore, we generally won't let lines like "SHELL=/bin/sh" from
@@ -1220,62 +1265,62 @@ do_variable_definition (const struct floc *flocp, const char *varname,
/* See if we can find "/bin/sh.exe", "/bin/sh.com", etc. */
if (__dosexec_find_on_path (p, NULL, shellpath))
- {
- char *tp;
+ {
+ char *tp;
- for (tp = shellpath; *tp; tp++)
+ for (tp = shellpath; *tp; tp++)
if (*tp == '\\')
*tp = '/';
- v = define_variable_loc (varname, strlen (varname),
+ v = define_variable_loc (varname, strlen (varname),
shellpath, origin, flavor == f_recursive,
flocp);
- }
+ }
else
- {
- const char *shellbase, *bslash;
- struct variable *pathv = lookup_variable ("PATH", 4);
- char *path_string;
- char *fake_env[2];
- size_t pathlen = 0;
-
- shellbase = strrchr (p, '/');
- bslash = strrchr (p, '\\');
- if (!shellbase || bslash > shellbase)
- shellbase = bslash;
- if (!shellbase && p[1] == ':')
- shellbase = p + 1;
- if (shellbase)
- shellbase++;
- else
- shellbase = p;
-
- /* Search for the basename of the shell (with standard
- executable extensions) along the $PATH. */
- if (pathv)
- pathlen = strlen (pathv->value);
- path_string = xmalloc (5 + pathlen + 2 + 1);
- /* On MSDOS, current directory is considered as part of $PATH. */
- sprintf (path_string, "PATH=.;%s", pathv ? pathv->value : "");
- fake_env[0] = path_string;
- fake_env[1] = 0;
- if (__dosexec_find_on_path (shellbase, fake_env, shellpath))
- {
- char *tp;
-
- for (tp = shellpath; *tp; tp++)
+ {
+ const char *shellbase, *bslash;
+ struct variable *pathv = lookup_variable ("PATH", 4);
+ char *path_string;
+ char *fake_env[2];
+ size_t pathlen = 0;
+
+ shellbase = strrchr (p, '/');
+ bslash = strrchr (p, '\\');
+ if (!shellbase || bslash > shellbase)
+ shellbase = bslash;
+ if (!shellbase && p[1] == ':')
+ shellbase = p + 1;
+ if (shellbase)
+ shellbase++;
+ else
+ shellbase = p;
+
+ /* Search for the basename of the shell (with standard
+ executable extensions) along the $PATH. */
+ if (pathv)
+ pathlen = strlen (pathv->value);
+ path_string = xmalloc (5 + pathlen + 2 + 1);
+ /* On MSDOS, current directory is considered as part of $PATH. */
+ sprintf (path_string, "PATH=.;%s", pathv ? pathv->value : "");
+ fake_env[0] = path_string;
+ fake_env[1] = 0;
+ if (__dosexec_find_on_path (shellbase, fake_env, shellpath))
+ {
+ char *tp;
+
+ for (tp = shellpath; *tp; tp++)
if (*tp == '\\')
*tp = '/';
- v = define_variable_loc (varname, strlen (varname),
+ v = define_variable_loc (varname, strlen (varname),
shellpath, origin,
flavor == f_recursive, flocp);
- }
- else
- v = lookup_variable (varname, strlen (varname));
+ }
+ else
+ v = lookup_variable (varname, strlen (varname));
- free (path_string);
- }
+ free (path_string);
+ }
}
else
#endif /* __MSDOS__ */
@@ -1286,7 +1331,7 @@ do_variable_definition (const struct floc *flocp, const char *varname,
extern char *default_shell;
/* Call shell locator function. If it returns TRUE, then
- set no_default_sh_exe to indicate sh was found and
+ set no_default_sh_exe to indicate sh was found and
set new value for SHELL variable. */
if (find_and_set_default_shell (p))
@@ -1347,61 +1392,72 @@ do_variable_definition (const struct floc *flocp, const char *varname,
/* Parse P (a null-terminated string) as a variable definition.
- If it is not a variable definition, return NULL.
+ If it is not a variable definition, return NULL and the contents of *VAR
+ are undefined, except NAME is set to the first non-space character or NIL.
If it is a variable definition, return a pointer to the char after the
- assignment token and set *FLAVOR to the type of variable assignment. */
+ assignment token and set the following fields (only) of *VAR:
+ name : name of the variable (ALWAYS SET) (NOT NUL-TERMINATED!)
+ length : length of the variable name
+ value : value of the variable (nul-terminated)
+ flavor : flavor of the variable
+ Other values in *VAR are unchanged.
+ */
char *
-parse_variable_definition (const char *p, enum variable_flavor *flavor)
+parse_variable_definition (const char *p, struct variable *var)
{
int wspace = 0;
+ const char *e = NULL;
p = next_token (p);
+ var->name = (char *)p;
+ var->length = 0;
while (1)
{
int c = *p++;
/* If we find a comment or EOS, it's not a variable definition. */
- if (c == '\0' || c == '#')
- return NULL;
+ if (STOP_SET (c, MAP_COMMENT|MAP_NUL))
+ return NULL;
if (c == '$')
- {
- /* This begins a variable expansion reference. Make sure we don't
- treat chars inside the reference as assignment tokens. */
- char closeparen;
- int count;
- c = *p++;
- if (c == '(')
- closeparen = ')';
- else if (c == '{')
- closeparen = '}';
- else
+ {
+ /* This begins a variable expansion reference. Make sure we don't
+ treat chars inside the reference as assignment tokens. */
+ char closeparen;
+ int count;
+ c = *p++;
+ if (c == '(')
+ closeparen = ')';
+ else if (c == '{')
+ closeparen = '}';
+ else
/* '$$' or '$X'. Either way, nothing special to do here. */
- continue;
-
- /* P now points past the opening paren or brace.
- Count parens or braces until it is matched. */
- count = 0;
- for (; *p != '\0'; ++p)
- {
- if (*p == c)
- ++count;
- else if (*p == closeparen && --count < 0)
- {
- ++p;
- break;
- }
- }
+ continue;
+
+ /* P now points past the opening paren or brace.
+ Count parens or braces until it is matched. */
+ count = 0;
+ for (; *p != '\0'; ++p)
+ {
+ if (*p == c)
+ ++count;
+ else if (*p == closeparen && --count < 0)
+ {
+ ++p;
+ break;
+ }
+ }
continue;
- }
+ }
/* If we find whitespace skip it, and remember we found it. */
if (isblank ((unsigned char)c))
{
wspace = 1;
+ e = p - 1;
p = next_token (p);
c = *p;
if (c == '\0')
@@ -1411,24 +1467,29 @@ parse_variable_definition (const char *p, enum variable_flavor *flavor)
if (c == '=')
- {
- *flavor = f_recursive;
- return (char *)p;
- }
+ {
+ var->flavor = f_recursive;
+ if (! e)
+ e = p - 1;
+ break;
+ }
- /* Match assignment variants (:=, +=, ?=) */
+ /* Match assignment variants (:=, +=, ?=, !=) */
if (*p == '=')
{
switch (c)
{
case ':':
- *flavor = f_simple;
+ var->flavor = f_simple;
break;
case '+':
- *flavor = f_append;
+ var->flavor = f_append;
break;
case '?':
- *flavor = f_conditional;
+ var->flavor = f_conditional;
+ break;
+ case '!':
+ var->flavor = f_shell;
break;
default:
/* If we skipped whitespace, non-assignments means no var. */
@@ -1438,50 +1499,55 @@ parse_variable_definition (const char *p, enum variable_flavor *flavor)
/* Might be assignment, or might be $= or #=. Check. */
continue;
}
- return (char *)++p;
+ if (! e)
+ e = p - 1;
+ ++p;
+ break;
+ }
+
+ /* Check for POSIX ::= syntax */
+ if (c == ':')
+ {
+ /* A colon other than :=/::= is not a variable defn. */
+ if (*p != ':' || p[1] != '=')
+ return NULL;
+
+ /* POSIX allows ::= to be the same as GNU make's := */
+ var->flavor = f_simple;
+ if (! e)
+ e = p - 1;
+ p += 2;
+ break;
}
- else if (c == ':')
- /* A colon other than := is a rule line, not a variable defn. */
- return NULL;
/* If we skipped whitespace, non-assignments means no var. */
if (wspace)
return NULL;
}
+ var->length = e - var->name;
+ var->value = next_token (p);
return (char *)p;
}
/* Try to interpret LINE (a null-terminated string) as a variable definition.
- If LINE was recognized as a variable definition, a pointer to its `struct
+ If LINE was recognized as a variable definition, a pointer to its 'struct
variable' is returned. If LINE is not a variable definition, NULL is
returned. */
struct variable *
assign_variable_definition (struct variable *v, char *line)
{
- char *beg;
- char *end;
- enum variable_flavor flavor;
char *name;
- beg = next_token (line);
- line = parse_variable_definition (beg, &flavor);
- if (!line)
+ if (!parse_variable_definition (line, v))
return NULL;
- end = line - (flavor == f_recursive ? 1 : 2);
- while (end > beg && isblank ((unsigned char)end[-1]))
- --end;
- line = next_token (line);
- v->value = line;
- v->flavor = flavor;
-
/* Expand the name, so "$(foo)bar = baz" works. */
- name = alloca (end - beg + 1);
- memcpy (name, beg, end - beg);
- name[end - beg] = '\0';
+ name = alloca (v->length + 1);
+ memcpy (name, v->name, v->length);
+ name[v->length] = '\0';
v->name = allocated_variable_expand (name);
if (v->name[0] == '\0')
@@ -1499,12 +1565,12 @@ assign_variable_definition (struct variable *v, char *line)
See the comments for assign_variable_definition().
- If LINE was recognized as a variable definition, a pointer to its `struct
+ If LINE was recognized as a variable definition, a pointer to its 'struct
variable' is returned. If LINE is not a variable definition, NULL is
returned. */
struct variable *
-try_variable_definition (const struct floc *flocp, char *line,
+try_variable_definition (const gmk_floc *flocp, char *line,
enum variable_origin origin, int target_var)
{
struct variable v;
@@ -1537,6 +1603,9 @@ print_variable (const void *item, void *arg)
switch (v->origin)
{
+ case o_automatic:
+ origin = _("automatic");
+ break;
case o_default:
origin = _("default");
break;
@@ -1553,10 +1622,7 @@ print_variable (const void *item, void *arg)
origin = _("command line");
break;
case o_override:
- origin = _("`override' directive");
- break;
- case o_automatic:
- origin = _("automatic");
+ origin = _("'override' directive");
break;
case o_invalid:
default:
@@ -1567,12 +1633,12 @@ print_variable (const void *item, void *arg)
if (v->private_var)
fputs (" private", stdout);
if (v->fileinfo.filenm)
- printf (_(" (from `%s', line %lu)"),
+ printf (_(" (from '%s', line %lu)"),
v->fileinfo.filenm, v->fileinfo.lineno);
putchar ('\n');
fputs (prefix, stdout);
- /* Is this a `define'? */
+ /* Is this a 'define'? */
if (v->recursive && strchr (v->value, '\n') != 0)
printf ("define %s\n%s\nendef\n", v->name, v->value);
else
@@ -1584,30 +1650,51 @@ print_variable (const void *item, void *arg)
/* Check if the value is just whitespace. */
p = next_token (v->value);
if (p != v->value && *p == '\0')
- /* All whitespace. */
- printf ("$(subst ,,%s)", v->value);
+ /* All whitespace. */
+ printf ("$(subst ,,%s)", v->value);
else if (v->recursive)
- fputs (v->value, stdout);
+ fputs (v->value, stdout);
else
- /* Double up dollar signs. */
- for (p = v->value; *p != '\0'; ++p)
- {
- if (*p == '$')
- putchar ('$');
- putchar (*p);
- }
+ /* Double up dollar signs. */
+ for (p = v->value; *p != '\0'; ++p)
+ {
+ if (*p == '$')
+ putchar ('$');
+ putchar (*p);
+ }
putchar ('\n');
}
}
+static void
+print_auto_variable (const void *item, void *arg)
+{
+ const struct variable *v = item;
+
+ if (v->origin == o_automatic)
+ print_variable (item, arg);
+}
+
+
+static void
+print_noauto_variable (const void *item, void *arg)
+{
+ const struct variable *v = item;
+
+ if (v->origin != o_automatic)
+ print_variable (item, arg);
+}
+
+
/* Print all the variables in SET. PREFIX is printed before
the actual variable definitions (everything else is comments). */
void
-print_variable_set (struct variable_set *set, char *prefix)
+print_variable_set (struct variable_set *set, char *prefix, int pauto)
{
- hash_map_arg (&set->table, print_variable, prefix);
+ hash_map_arg (&set->table, (pauto ? print_auto_variable : print_variable),
+ prefix);
fputs (_("# variable set hash-table stats:\n"), stdout);
fputs ("# ", stdout);
@@ -1622,7 +1709,7 @@ print_variable_data_base (void)
{
puts (_("\n# Variables\n"));
- print_variable_set (&global_variable_set, "");
+ print_variable_set (&global_variable_set, "", 0);
puts (_("\n# Pattern-specific Variable Values"));
@@ -1651,7 +1738,24 @@ void
print_file_variables (const struct file *file)
{
if (file->variables != 0)
- print_variable_set (file->variables->set, "# ");
+ print_variable_set (file->variables->set, "# ", 1);
+}
+
+void
+print_target_variables (const struct file *file)
+{
+ if (file->variables != 0)
+ {
+ int l = strlen (file->name);
+ char *t = alloca (l + 3);
+
+ strcpy (t, file->name);
+ t[l] = ':';
+ t[l+1] = ' ';
+ t[l+2] = '\0';
+
+ hash_map_arg (&file->variables->set->table, print_noauto_variable, t);
+ }
}
#ifdef WINDOWS32
diff --git a/variable.h b/variable.h
index c215867..dec75b1 100644
--- a/variable.h
+++ b/variable.h
@@ -1,7 +1,5 @@
/* Definitions for using variables in GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -22,62 +20,63 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
Increasing numeric values signify less-overridable definitions. */
enum variable_origin
{
- o_default, /* Variable from the default set. */
- o_env, /* Variable from environment. */
- o_file, /* Variable given in a makefile. */
- o_env_override, /* Variable from environment, if -e. */
- o_command, /* Variable given by user. */
- o_override, /* Variable from an `override' directive. */
- o_automatic, /* Automatic variable -- cannot be set. */
- o_invalid /* Core dump time. */
+ o_default, /* Variable from the default set. */
+ o_env, /* Variable from environment. */
+ o_file, /* Variable given in a makefile. */
+ o_env_override, /* Variable from environment, if -e. */
+ o_command, /* Variable given by user. */
+ o_override, /* Variable from an 'override' directive. */
+ o_automatic, /* Automatic variable -- cannot be set. */
+ o_invalid /* Core dump time. */
};
enum variable_flavor
{
f_bogus, /* Bogus (error) */
- f_simple, /* Simple definition (:=) */
+ f_simple, /* Simple definition (:= or ::=) */
f_recursive, /* Recursive definition (=) */
f_append, /* Appending definition (+=) */
- f_conditional /* Conditional definition (?=) */
+ f_conditional, /* Conditional definition (?=) */
+ f_shell /* Shell assignment (!=) */
};
/* Structure that represents one variable definition.
Each bucket of the hash table is a chain of these,
- chained through `next'. */
+ chained through 'next'. */
#define EXP_COUNT_BITS 15 /* This gets all the bitfields into 32 bits */
#define EXP_COUNT_MAX ((1<<EXP_COUNT_BITS)-1)
struct variable
{
- char *name; /* Variable name. */
- int length; /* strlen (name) */
- char *value; /* Variable value. */
- struct floc fileinfo; /* Where the variable was defined. */
- unsigned int recursive:1; /* Gets recursively re-evaluated. */
- unsigned int append:1; /* Nonzero if an appending target-specific
+ char *name; /* Variable name. */
+ char *value; /* Variable value. */
+ gmk_floc fileinfo; /* Where the variable was defined. */
+ int length; /* strlen (name) */
+ unsigned int recursive:1; /* Gets recursively re-evaluated. */
+ unsigned int append:1; /* Nonzero if an appending target-specific
variable. */
unsigned int conditional:1; /* Nonzero if set with a ?=. */
- unsigned int per_target:1; /* Nonzero if a target-specific variable. */
+ unsigned int per_target:1; /* Nonzero if a target-specific variable. */
unsigned int special:1; /* Nonzero if this is a special variable. */
unsigned int exportable:1; /* Nonzero if the variable _could_ be
exported. */
- unsigned int expanding:1; /* Nonzero if currently being expanded. */
+ unsigned int expanding:1; /* Nonzero if currently being expanded. */
unsigned int private_var:1; /* Nonzero avoids inheritance of this
target-specific variable. */
unsigned int exp_count:EXP_COUNT_BITS;
/* If >1, allow this many self-referential
expansions. */
enum variable_flavor
- flavor ENUM_BITFIELD (3); /* Variable flavor. */
+ flavor ENUM_BITFIELD (3); /* Variable flavor. */
enum variable_origin
- origin ENUM_BITFIELD (3); /* Variable origin. */
+ origin ENUM_BITFIELD (3); /* Variable origin. */
enum variable_export
{
- v_export, /* Export this variable. */
- v_noexport, /* Don't export this variable. */
- v_ifset, /* Export it if it has a non-default value. */
- v_default /* Decide in target_environment. */
+ v_export, /* Export this variable. */
+ v_noexport, /* Don't export this variable. */
+ v_ifset, /* Export it if it has a non-default value. */
+ v_default /* Decide in target_environment. */
} export ENUM_BITFIELD (2);
};
@@ -85,15 +84,15 @@ struct variable
struct variable_set
{
- struct hash_table table; /* Hash table of variables. */
+ struct hash_table table; /* Hash table of variables. */
};
/* Structure that represents a list of variable sets. */
struct variable_set_list
{
- struct variable_set_list *next; /* Link in the chain. */
- struct variable_set *set; /* Variable set. */
+ struct variable_set_list *next; /* Link in the chain. */
+ struct variable_set *set; /* Variable set. */
int next_is_parent; /* True if next is a parent target. */
};
@@ -117,7 +116,7 @@ char *variable_buffer_output (char *ptr, const char *string, unsigned int length
char *variable_expand (const char *line);
char *variable_expand_for_file (const char *line, struct file *file);
char *allocated_variable_expand_for_file (const char *line, struct file *file);
-#define allocated_variable_expand(line) \
+#define allocated_variable_expand(line) \
allocated_variable_expand_for_file (line, (struct file *) 0)
char *expand_argument (const char *str, const char *end);
char *variable_expand_string (char *line, const char *string, long length);
@@ -134,6 +133,8 @@ char *patsubst_expand_pat (char *o, const char *text, const char *pattern,
const char *replace, const char *pattern_percent,
const char *replace_percent);
char *patsubst_expand (char *o, const char *text, char *pattern, char *replace);
+char *func_shell_base (char *o, char **argv, int trim_newlines);
+
/* expand.c */
char *recursively_expand_for_file (struct variable *v, struct file *file);
@@ -147,22 +148,26 @@ void pop_variable_scope (void);
void define_automatic_variables (void);
void initialize_file_variables (struct file *file, int reading);
void print_file_variables (const struct file *file);
-void print_variable_set (struct variable_set *set, char *prefix);
+void print_file_variables (const struct file *file);
+void print_target_variables (const struct file *file);
void merge_variable_set_lists (struct variable_set_list **to_list,
struct variable_set_list *from_list);
-struct variable *do_variable_definition (const struct floc *flocp,
+struct variable *do_variable_definition (const gmk_floc *flocp,
const char *name, const char *value,
enum variable_origin origin,
enum variable_flavor flavor,
int target_var);
char *parse_variable_definition (const char *line,
- enum variable_flavor *flavor);
+ struct variable *v);
struct variable *assign_variable_definition (struct variable *v, char *line);
-struct variable *try_variable_definition (const struct floc *flocp, char *line,
+struct variable *try_variable_definition (const gmk_floc *flocp, char *line,
enum variable_origin origin,
int target_var);
void init_hash_global_variable_set (void);
void hash_init_function_table (void);
+void define_new_function(const gmk_floc *flocp, const char *name,
+ unsigned int min, unsigned int max, unsigned int flags,
+ gmk_func_ptr func);
struct variable *lookup_variable (const char *name, unsigned int length);
struct variable *lookup_variable_in_set (const char *name, unsigned int length,
const struct variable_set *set);
@@ -172,7 +177,7 @@ struct variable *define_variable_in_set (const char *name, unsigned int length,
enum variable_origin origin,
int recursive,
struct variable_set *set,
- const struct floc *flocp);
+ const gmk_floc *flocp);
/* Define a variable in the current variable set. */
@@ -216,7 +221,7 @@ void undefine_variable_in_set (const char *name, unsigned int length,
#define warn_undefined(n,l) do{\
if (warn_undefined_variables_flag) \
error (reading_file, \
- _("warning: undefined variable `%.*s'"), \
+ _("warning: undefined variable '%.*s'"), \
(int)(l), (n)); \
}while(0)
@@ -228,4 +233,4 @@ struct pattern_var *create_pattern_var (const char *target,
extern int export_all_variables;
#define MAKELEVEL_NAME "MAKELEVEL"
-#define MAKELEVEL_LENGTH (sizeof (MAKELEVEL_NAME) - 1)
+#define MAKELEVEL_LENGTH (CSTRLEN (MAKELEVEL_NAME))
diff --git a/version.c b/version.c
index a770e22..af461f7 100644
--- a/version.c
+++ b/version.c
@@ -1,7 +1,5 @@
/* Record version and build host architecture for GNU make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -18,7 +16,7 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/* We use <config.h> instead of "config.h" so that a compilation
using -I. -I$srcdir will use ./config.h rather than $srcdir/config.h
- (which it would do because make.h was found in $srcdir). */
+ (which it would do because makeint.h was found in $srcdir). */
#include <config.h>
#ifndef MAKE_HOST
diff --git a/vmsdir.h b/vmsdir.h
index cb17818..ef53acc 100644
--- a/vmsdir.h
+++ b/vmsdir.h
@@ -1,6 +1,5 @@
/* dirent.h for vms
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -45,7 +44,7 @@ struct direct
+ ((dp)->d_namlen+1)) \
+ 3) & ~3)
-#define d_ino d_fileno /* compatability */
+#define d_ino d_fileno /* compatibility */
/*
diff --git a/vmsfunctions.c b/vmsfunctions.c
index 5b867d9..1907e3a 100644
--- a/vmsfunctions.c
+++ b/vmsfunctions.c
@@ -1,6 +1,5 @@
/* VMS functions
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -15,7 +14,7 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
#include "debug.h"
#include "job.h"
diff --git a/vmsify.c b/vmsify.c
index f58fee7..c87d68c 100644
--- a/vmsify.c
+++ b/vmsify.c
@@ -1,6 +1,5 @@
/* vmsify.c -- Module for vms <-> unix file name conversion
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/vmsjobs.c b/vmsjobs.c
index 05c8dba..8bacc86 100644
--- a/vmsjobs.c
+++ b/vmsjobs.c
@@ -1,8 +1,7 @@
/* --------------- Moved here from job.c ---------------
This file must be #included in job.c, as it accesses static functions.
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -32,10 +31,10 @@ vmsWaitForChildren(int *status)
while (1)
{
if (!vms_jobsefnmask)
- {
- *status = 0;
- return;
- }
+ {
+ *status = 0;
+ return;
+ }
*status = sys$wflor (32, vms_jobsefnmask);
}
@@ -60,9 +59,9 @@ vms_redirect (struct dsc$descriptor_s *desc, char *fname, char *ibuf)
{
strcpy (fname, vmsify (fptr, 0));
if (strchr (fname, '.') == 0)
- strcat (fname, ".");
+ strcat (fname, ".");
}
- desc->dsc$w_length = strlen(fname);
+ desc->dsc$w_length = strlen (fname);
desc->dsc$a_pointer = fname;
desc->dsc$b_dtype = DSC$K_DTYPE_T;
desc->dsc$b_class = DSC$K_CLASS_S;
@@ -75,7 +74,7 @@ vms_redirect (struct dsc$descriptor_s *desc, char *fname, char *ibuf)
/* found apostrophe at (p-1)
inc p until after closing apostrophe.
- */
+*/
char *
vms_handle_apos (char *p)
@@ -87,25 +86,21 @@ vms_handle_apos (char *p)
alast = 0;
while (*p != 0)
- {
- if (*p == '"')
- {
- if (alast)
- {
- alast = 0;
- p++;
- }
- else
- {
- p++;
- if (strchr (SEPCHARS, *p))
- break;
- alast = 1;
- }
- }
+ if (*p == '"')
+ if (alast)
+ {
+ alast = 0;
+ p++;
+ }
else
- p++;
- }
+ {
+ p++;
+ if (strchr (SEPCHARS, *p))
+ break;
+ alast = 1;
+ }
+ else
+ p++;
return p;
}
@@ -119,100 +114,99 @@ static int ctrlYPressed= 0;
int
vmsHandleChildTerm(struct child *child)
{
- int status;
- register struct child *lastc, *c;
- int child_failed;
+ int status;
+ register struct child *lastc, *c;
+ int child_failed;
- vms_jobsefnmask &= ~(1 << (child->efn - 32));
+ vms_jobsefnmask &= ~(1 << (child->efn - 32));
- lib$free_ef(&child->efn);
- if (child->comname)
- {
- if (!ISDB (DB_JOBS)&&!ctrlYPressed)
- unlink (child->comname);
- free (child->comname);
- }
+ lib$free_ef (&child->efn);
+ if (child->comname)
+ {
+ if (!ISDB (DB_JOBS) && !ctrlYPressed)
+ unlink (child->comname);
+ free (child->comname);
+ }
- (void) sigblock (fatal_signal_mask);
+ (void) sigblock (fatal_signal_mask);
- child_failed = !(child->cstatus & 1 || ((child->cstatus & 7) == 0));
+ child_failed = !(child->cstatus & 1 || ((child->cstatus & 7) == 0));
- /* Search for a child matching the deceased one. */
- lastc = 0;
+ /* Search for a child matching the deceased one. */
+ lastc = 0;
#if defined(RECURSIVEJOBS) /* I've had problems with recursive stuff and process handling */
- for (c = children; c != 0 && c != child; lastc = c, c = c->next)
- ;
+ for (c = children; c != 0 && c != child; lastc = c, c = c->next)
+ ;
#else
- c = child;
+ c = child;
#endif
- if (child_failed && !c->noerror && !ignore_errors_flag)
- {
- /* The commands failed. Write an error message,
- delete non-precious targets, and abort. */
- child_error (c->file->name, c->cstatus, 0, 0, 0);
- c->file->update_status = 1;
- delete_child_targets (c);
- }
- else
- {
- if (child_failed)
- {
- /* The commands failed, but we don't care. */
- child_error (c->file->name, c->cstatus, 0, 0, 1);
- child_failed = 0;
- }
+ if (child_failed && !c->noerror && !ignore_errors_flag)
+ {
+ /* The commands failed. Write an error message,
+ delete non-precious targets, and abort. */
+ child_error (c, c->cstatus, 0, 0, 0);
+ c->file->update_status = us_failed;
+ delete_child_targets (c);
+ }
+ else
+ {
+ if (child_failed)
+ {
+ /* The commands failed, but we don't care. */
+ child_error (c, c->cstatus, 0, 0, 1);
+ child_failed = 0;
+ }
#if defined(RECURSIVEJOBS) /* I've had problems with recursive stuff and process handling */
- /* If there are more commands to run, try to start them. */
- start_job (c);
-
- switch (c->file->command_state)
- {
- case cs_running:
- /* Successfully started. */
- break;
-
- case cs_finished:
- if (c->file->update_status != 0) {
- /* We failed to start the commands. */
- delete_child_targets (c);
- }
- break;
-
- default:
- error (NILF, _("internal error: `%s' command_state"),
- c->file->name);
- abort ();
- break;
- }
+ /* If there are more commands to run, try to start them. */
+ start_job (c);
+
+ switch (c->file->command_state)
+ {
+ case cs_running:
+ /* Successfully started. */
+ break;
+
+ case cs_finished:
+ if (c->file->update_status != us_success)
+ /* We failed to start the commands. */
+ delete_child_targets (c);
+ break;
+
+ default:
+ error (NILF, _("internal error: '%s' command_state"),
+ c->file->name);
+ abort ();
+ break;
+ }
#endif /* RECURSIVEJOBS */
- }
+ }
- /* Set the state flag to say the commands have finished. */
- c->file->command_state = cs_finished;
- notice_finished_file (c->file);
+ /* Set the state flag to say the commands have finished. */
+ c->file->command_state = cs_finished;
+ notice_finished_file (c->file);
#if defined(RECURSIVEJOBS) /* I've had problems with recursive stuff and process handling */
- /* Remove the child from the chain and free it. */
- if (lastc == 0)
- children = c->next;
- else
- lastc->next = c->next;
- free_child (c);
+ /* Remove the child from the chain and free it. */
+ if (lastc == 0)
+ children = c->next;
+ else
+ lastc->next = c->next;
+ free_child (c);
#endif /* RECURSIVEJOBS */
- /* There is now another slot open. */
- if (job_slots_used > 0)
- --job_slots_used;
+ /* There is now another slot open. */
+ if (job_slots_used > 0)
+ --job_slots_used;
- /* If the job failed, and the -k flag was not given, die. */
- if (child_failed && !keep_going_flag)
- die (EXIT_FAILURE);
+ /* If the job failed, and the -k flag was not given, die. */
+ if (child_failed && !keep_going_flag)
+ die (EXIT_FAILURE);
- (void) sigsetmask (sigblock (0) & ~(fatal_signal_mask));
+ (void) sigsetmask (sigblock (0) & ~(fatal_signal_mask));
- return 1;
+ return 1;
}
/* VMS:
@@ -233,67 +227,71 @@ static unsigned short int chan= 0;
static void
reEnableAst(void)
{
- lib$enable_ctrl (&oldCtrlMask,0);
+ lib$enable_ctrl (&oldCtrlMask,0);
}
static int
astYHandler (void)
{
- struct child *c;
- for (c = children; c != 0; c = c->next)
- sys$delprc (&c->pid, 0, 0);
- ctrlYPressed= 1;
- kill (getpid(),SIGQUIT);
- return SS$_NORMAL;
+ struct child *c;
+ for (c = children; c != 0; c = c->next)
+ sys$delprc (&c->pid, 0, 0);
+ ctrlYPressed= 1;
+ kill (getpid(),SIGQUIT);
+ return SS$_NORMAL;
}
static void
tryToSetupYAst(void)
{
- $DESCRIPTOR(inputDsc,"SYS$COMMAND");
- int status;
- struct {
- short int status, count;
- int dvi;
- } iosb;
- unsigned short int loc_chan;
-
- setupYAstTried++;
-
- if (chan)
- loc_chan= chan;
- else {
- status= sys$assign(&inputDsc,&loc_chan,0,0);
- if (!(status&SS$_NORMAL)) {
- lib$signal(status);
- return;
- }
- }
- status= sys$qiow (0, loc_chan, IO$_SETMODE|IO$M_CTRLYAST,&iosb,0,0,
- astYHandler,0,0,0,0,0);
- if (status==SS$_NORMAL)
- status= iosb.status;
- if (status!=SS$_NORMAL) {
- if (!chan)
- sys$dassgn(loc_chan);
- if (status!=SS$_ILLIOFUNC && status!=SS$_NOPRIV)
- lib$signal(status);
- return;
- }
-
- /* called from AST handler ? */
- if (setupYAstTried>1)
- return;
- if (atexit(reEnableAst))
- fprintf (stderr,
- _("-warning, you may have to re-enable CTRL-Y handling from DCL.\n"));
- status= lib$disable_ctrl (&ctrlMask, &oldCtrlMask);
- if (!(status&SS$_NORMAL)) {
- lib$signal(status);
- return;
- }
- if (!chan)
- chan = loc_chan;
+ $DESCRIPTOR(inputDsc,"SYS$COMMAND");
+ int status;
+ struct {
+ short int status, count;
+ int dvi;
+ } iosb;
+ unsigned short int loc_chan;
+
+ setupYAstTried++;
+
+ if (chan)
+ loc_chan= chan;
+ else
+ {
+ status= sys$assign(&inputDsc,&loc_chan,0,0);
+ if (!(status&SS$_NORMAL))
+ {
+ lib$signal(status);
+ return;
+ }
+ }
+ status= sys$qiow (0, loc_chan, IO$_SETMODE|IO$M_CTRLYAST,&iosb,0,0,
+ astYHandler,0,0,0,0,0);
+ if (status==SS$_NORMAL)
+ status= iosb.status;
+ if (status!=SS$_NORMAL)
+ {
+ if (!chan)
+ sys$dassgn(loc_chan);
+ if (status!=SS$_ILLIOFUNC && status!=SS$_NOPRIV)
+ lib$signal(status);
+ return;
+ }
+
+ /* called from AST handler ? */
+ if (setupYAstTried>1)
+ return;
+ if (atexit(reEnableAst))
+ fprintf (stderr,
+ _("-warning, you may have to re-enable CTRL-Y handling from DCL.\n"));
+ status= lib$disable_ctrl (&ctrlMask, &oldCtrlMask);
+ if (!(status&SS$_NORMAL))
+ {
+ lib$signal(status);
+ return;
+ }
+ if (!chan)
+ chan = loc_chan;
}
int
@@ -350,63 +348,61 @@ child_execute_job (char *argv, struct child *child)
continue;
}
switch (*p)
- {
- case '#':
- *p-- = 0;
- *q-- = 0;
- break;
- case '\\':
- p++;
- if (*p == '\n')
- p++;
- if (isspace ((unsigned char)*p))
- {
- do { p++; } while (isspace ((unsigned char)*p));
- p--;
- }
- *q = *p;
- break;
- case '<':
- p = vms_redirect (&ifiledsc, ifile, p);
- *q = ' ';
- have_redirection = 1;
- break;
- case '>':
- have_redirection = 1;
- if (*(p-1) == '2')
- {
- q--;
- if (strncmp (p, ">&1", 3) == 0)
- {
- p += 3;
- strcpy (efile, "sys$output");
- efiledsc.dsc$w_length = strlen(efile);
- efiledsc.dsc$a_pointer = efile;
- efiledsc.dsc$b_dtype = DSC$K_DTYPE_T;
- efiledsc.dsc$b_class = DSC$K_CLASS_S;
- }
- else
- {
- p = vms_redirect (&efiledsc, efile, p);
- }
- }
- else
- {
- if (*(p+1) == '>')
- {
- have_append = 1;
- p += 1;
- }
- p = vms_redirect (&ofiledsc, ofile, p);
- }
- *q = ' ';
- break;
- case '\n':
- have_newline = 1;
- default:
- *q = *p;
- break;
- }
+ {
+ case '#':
+ *p-- = 0;
+ *q-- = 0;
+ break;
+ case '\\':
+ p++;
+ if (*p == '\n')
+ p++;
+ if (isspace ((unsigned char)*p))
+ {
+ do { p++; } while (isspace ((unsigned char)*p));
+ p--;
+ }
+ *q = *p;
+ break;
+ case '<':
+ p = vms_redirect (&ifiledsc, ifile, p);
+ *q = ' ';
+ have_redirection = 1;
+ break;
+ case '>':
+ have_redirection = 1;
+ if (*(p-1) == '2')
+ {
+ q--;
+ if (strncmp (p, ">&1", 3) == 0)
+ {
+ p += 3;
+ strcpy (efile, "sys$output");
+ efiledsc.dsc$w_length = strlen(efile);
+ efiledsc.dsc$a_pointer = efile;
+ efiledsc.dsc$b_dtype = DSC$K_DTYPE_T;
+ efiledsc.dsc$b_class = DSC$K_CLASS_S;
+ }
+ else
+ p = vms_redirect (&efiledsc, efile, p);
+ }
+ else
+ {
+ if (*(p+1) == '>')
+ {
+ have_append = 1;
+ p += 1;
+ }
+ p = vms_redirect (&ofiledsc, ofile, p);
+ }
+ *q = ' ';
+ break;
+ case '\n':
+ have_newline = 1;
+ default:
+ *q = *p;
+ break;
+ }
}
*q = *p;
while (isspace ((unsigned char)*--q))
@@ -423,55 +419,55 @@ child_execute_job (char *argv, struct child *child)
p = cmd + 8;
if ((*(p) == 'c')
- && (*(p+1) == 'd')
- && ((*(p+2) == ' ') || (*(p+2) == '\t')))
- {
- p += 3;
- while ((*p == ' ') || (*p == '\t'))
- p++;
- DB (DB_JOBS, (_("BUILTIN CD %s\n"), p));
- if (chdir (p))
- return 0;
- else
- return 1;
- }
+ && (*(p+1) == 'd')
+ && ((*(p+2) == ' ') || (*(p+2) == '\t')))
+ {
+ p += 3;
+ while ((*p == ' ') || (*p == '\t'))
+ p++;
+ DB (DB_JOBS, (_("BUILTIN CD %s\n"), p));
+ if (chdir (p))
+ return 0;
+ else
+ return 1;
+ }
else if ((*(p) == 'r')
- && (*(p+1) == 'm')
- && ((*(p+2) == ' ') || (*(p+2) == '\t')))
- {
- int in_arg;
-
- /* rm */
- p += 3;
- while ((*p == ' ') || (*p == '\t'))
- p++;
- in_arg = 1;
-
- DB (DB_JOBS, (_("BUILTIN RM %s\n"), p));
- while (*p)
- {
- switch (*p)
- {
- case ' ':
- case '\t':
- if (in_arg)
- {
- *p++ = ';';
- in_arg = 0;
- }
- break;
- default:
- break;
- }
- p++;
- }
- }
+ && (*(p+1) == 'm')
+ && ((*(p+2) == ' ') || (*(p+2) == '\t')))
+ {
+ int in_arg;
+
+ /* rm */
+ p += 3;
+ while ((*p == ' ') || (*p == '\t'))
+ p++;
+ in_arg = 1;
+
+ DB (DB_JOBS, (_("BUILTIN RM %s\n"), p));
+ while (*p)
+ {
+ switch (*p)
+ {
+ case ' ':
+ case '\t':
+ if (in_arg)
+ {
+ *p++ = ';';
+ in_arg = 0;
+ }
+ break;
+ default:
+ break;
+ }
+ p++;
+ }
+ }
else
- {
- printf(_("Unknown builtin command '%s'\n"), cmd);
- fflush(stdout);
- return 0;
- }
+ {
+ printf (_("Unknown builtin command '%s'\n"), cmd);
+ fflush (stdout);
+ return 0;
+ }
}
/* Create a *.com file if either the command is too long for
@@ -486,56 +482,54 @@ child_execute_job (char *argv, struct child *child)
FILE *outfile;
char c;
char *sep;
- int alevel = 0; /* apostrophe level */
+ int alevel = 0; /* apostrophe level */
if (strlen (cmd) == 0)
- {
- printf (_("Error, empty command\n"));
- fflush (stdout);
- return 0;
- }
+ {
+ printf (_("Error, empty command\n"));
+ fflush (stdout);
+ return 0;
+ }
- outfile = open_tmpfile (&child->comname, "sys$scratch:CMDXXXXXX.COM");
+ outfile = output_tmpfile (&child->comname, "sys$scratch:CMDXXXXXX.COM");
if (outfile == 0)
- pfatal_with_name (_("fopen (temporary file)"));
+ pfatal_with_name (_("fopen (temporary file)"));
comnamelen = strlen (child->comname);
if (ifile[0])
- {
- fprintf (outfile, "$ assign/user %s sys$input\n", ifile);
+ {
+ fprintf (outfile, "$ assign/user %s sys$input\n", ifile);
DB (DB_JOBS, (_("Redirected input from %s\n"), ifile));
- ifiledsc.dsc$w_length = 0;
- }
+ ifiledsc.dsc$w_length = 0;
+ }
if (efile[0])
- {
- fprintf (outfile, "$ define sys$error %s\n", efile);
+ {
+ fprintf (outfile, "$ define sys$error %s\n", efile);
DB (DB_JOBS, (_("Redirected error to %s\n"), efile));
- efiledsc.dsc$w_length = 0;
- }
+ efiledsc.dsc$w_length = 0;
+ }
if (ofile[0])
- {
- if (have_append)
- {
- fprintf (outfile, "$ set noon\n");
- fprintf (outfile, "$ define sys$output %.*s\n", comnamelen-3, child->comname);
- DB (DB_JOBS, (_("Append output to %s\n"), ofile));
- ofiledsc.dsc$w_length = 0;
- }
- else
- {
- fprintf (outfile, "$ define sys$output %s\n", ofile);
- DB (DB_JOBS, (_("Redirected output to %s\n"), ofile));
- ofiledsc.dsc$w_length = 0;
- }
- }
+ if (have_append)
+ {
+ fprintf (outfile, "$ set noon\n");
+ fprintf (outfile, "$ define sys$output %.*s\n", comnamelen-3, child->comname);
+ DB (DB_JOBS, (_("Append output to %s\n"), ofile));
+ ofiledsc.dsc$w_length = 0;
+ }
+ else
+ {
+ fprintf (outfile, "$ define sys$output %s\n", ofile);
+ DB (DB_JOBS, (_("Redirected output to %s\n"), ofile));
+ ofiledsc.dsc$w_length = 0;
+ }
p = sep = q = cmd;
for (c = '\n'; c; c = *q++)
- {
- switch (c)
- {
+ {
+ switch (c)
+ {
case '\n':
/* At a newline, skip any whitespace around a leading $
from the command and issue exactly one $ into the DCL. */
@@ -552,8 +546,8 @@ child_execute_job (char *argv, struct child *child)
p = sep = q;
break;
- /* Nice places for line breaks are after strings, after
- comma or space and before slash. */
+ /* Nice places for line breaks are after strings, after
+ comma or space and before slash. */
case '"':
q = vms_handle_apos (q);
sep = q;
@@ -568,25 +562,25 @@ child_execute_job (char *argv, struct child *child)
break;
default:
break;
- }
- if (sep - p > 78)
- {
- /* Enough stuff for a line. */
- fwrite (p, 1, sep - p, outfile);
- p = sep;
- if (*sep)
- {
- /* The command continues. */
- fputc ('-', outfile);
- }
- fputc ('\n', outfile);
- }
- }
+ }
+ if (sep - p > 78)
+ {
+ /* Enough stuff for a line. */
+ fwrite (p, 1, sep - p, outfile);
+ p = sep;
+ if (*sep)
+ {
+ /* The command continues. */
+ fputc ('-', outfile);
+ }
+ fputc ('\n', outfile);
+ }
+ }
if (*p)
{
fwrite (p, 1, --q - p, outfile);
- fputc ('\n', outfile);
+ fputc ('\n', outfile);
}
if (have_append)
@@ -631,66 +625,66 @@ child_execute_job (char *argv, struct child *child)
vms_jobsefnmask |= (1 << (child->efn - 32));
-/*
- LIB$SPAWN [command-string]
- [,input-file]
- [,output-file]
- [,flags]
- [,process-name]
- [,process-id] [,completion-status-address] [,byte-integer-event-flag-num]
- [,AST-address] [,varying-AST-argument]
- [,prompt-string] [,cli] [,table]
-*/
+ /*
+ LIB$SPAWN [command-string]
+ [,input-file]
+ [,output-file]
+ [,flags]
+ [,process-name]
+ [,process-id] [,completion-status-address] [,byte-integer-event-flag-num]
+ [,AST-address] [,varying-AST-argument]
+ [,prompt-string] [,cli] [,table]
+ */
#ifndef DONTWAITFORCHILD
-/*
- * Code to make ctrl+c and ctrl+y working.
- * The problem starts with the synchronous case where after lib$spawn is
- * called any input will go to the child. But with input re-directed,
- * both control characters won't make it to any of the programs, neither
- * the spawning nor to the spawned one. Hence the caller needs to spawn
- * with CLI$M_NOWAIT to NOT give up the input focus. A sys$waitfr
- * has to follow to simulate the wanted synchronous behaviour.
- * The next problem is ctrl+y which isn't caught by the crtl and
- * therefore isn't converted to SIGQUIT (for a signal handler which is
- * already established). The only way to catch ctrl+y, is an AST
- * assigned to the input channel. But ctrl+y handling of DCL needs to be
- * disabled, otherwise it will handle it. Not to mention the previous
- * ctrl+y handling of DCL needs to be re-established before make exits.
- * One more: At the time of LIB$SPAWN signals are blocked. SIGQUIT will
- * make it to the signal handler after the child "normally" terminates.
- * This isn't enough. It seems reasonable for simple command lines like
- * a 'cc foobar.c' spawned in a subprocess but it is unacceptable for
- * spawning make. Therefore we need to abort the process in the AST.
- *
- * Prior to the spawn it is checked if an AST is already set up for
- * ctrl+y, if not one is set up for a channel to SYS$COMMAND. In general
- * this will work except if make is run in a batch environment, but there
- * nobody can press ctrl+y. During the setup the DCL handling of ctrl+y
- * is disabled and an exit handler is established to re-enable it.
- * If the user interrupts with ctrl+y, the assigned AST will fire, force
- * an abort to the subprocess and signal SIGQUIT, which will be caught by
- * the already established handler and will bring us back to common code.
- * After the spawn (now /nowait) a sys$waitfr simulates the /wait and
- * enables the ctrl+y be delivered to this code. And the ctrl+c too,
- * which the crtl converts to SIGINT and which is caught by the common
- * signal handler. Because signals were blocked before entering this code
- * sys$waitfr will always complete and the SIGQUIT will be processed after
- * it (after termination of the current block, somewhere in common code).
- * And SIGINT too will be delayed. That is ctrl+c can only abort when the
- * current command completes. Anyway it's better than nothing :-)
- */
+ /*
+ * Code to make ctrl+c and ctrl+y working.
+ * The problem starts with the synchronous case where after lib$spawn is
+ * called any input will go to the child. But with input re-directed,
+ * both control characters won't make it to any of the programs, neither
+ * the spawning nor to the spawned one. Hence the caller needs to spawn
+ * with CLI$M_NOWAIT to NOT give up the input focus. A sys$waitfr
+ * has to follow to simulate the wanted synchronous behaviour.
+ * The next problem is ctrl+y which isn't caught by the crtl and
+ * therefore isn't converted to SIGQUIT (for a signal handler which is
+ * already established). The only way to catch ctrl+y, is an AST
+ * assigned to the input channel. But ctrl+y handling of DCL needs to be
+ * disabled, otherwise it will handle it. Not to mention the previous
+ * ctrl+y handling of DCL needs to be re-established before make exits.
+ * One more: At the time of LIB$SPAWN signals are blocked. SIGQUIT will
+ * make it to the signal handler after the child "normally" terminates.
+ * This isn't enough. It seems reasonable for simple command lines like
+ * a 'cc foobar.c' spawned in a subprocess but it is unacceptable for
+ * spawning make. Therefore we need to abort the process in the AST.
+ *
+ * Prior to the spawn it is checked if an AST is already set up for
+ * ctrl+y, if not one is set up for a channel to SYS$COMMAND. In general
+ * this will work except if make is run in a batch environment, but there
+ * nobody can press ctrl+y. During the setup the DCL handling of ctrl+y
+ * is disabled and an exit handler is established to re-enable it.
+ * If the user interrupts with ctrl+y, the assigned AST will fire, force
+ * an abort to the subprocess and signal SIGQUIT, which will be caught by
+ * the already established handler and will bring us back to common code.
+ * After the spawn (now /nowait) a sys$waitfr simulates the /wait and
+ * enables the ctrl+y be delivered to this code. And the ctrl+c too,
+ * which the crtl converts to SIGINT and which is caught by the common
+ * signal handler. Because signals were blocked before entering this code
+ * sys$waitfr will always complete and the SIGQUIT will be processed after
+ * it (after termination of the current block, somewhere in common code).
+ * And SIGINT too will be delayed. That is ctrl+c can only abort when the
+ * current command completes. Anyway it's better than nothing :-)
+ */
if (!setupYAstTried)
tryToSetupYAst();
- status = lib$spawn (&cmddsc, /* cmd-string */
- (ifiledsc.dsc$w_length == 0)?0:&ifiledsc, /* input-file */
- (ofiledsc.dsc$w_length == 0)?0:&ofiledsc, /* output-file */
- &spflags, /* flags */
- &pnamedsc, /* proc name */
- &child->pid, &child->cstatus, &child->efn,
- 0, 0,
- 0, 0, 0);
+ status = lib$spawn (&cmddsc, /* cmd-string */
+ (ifiledsc.dsc$w_length == 0)?0:&ifiledsc, /* input-file */
+ (ofiledsc.dsc$w_length == 0)?0:&ofiledsc, /* output-file */
+ &spflags, /* flags */
+ &pnamedsc, /* proc name */
+ &child->pid, &child->cstatus, &child->efn,
+ 0, 0,
+ 0, 0, 0);
if (status & 1)
{
status= sys$waitfr (child->efn);
@@ -698,13 +692,13 @@ child_execute_job (char *argv, struct child *child)
}
#else
status = lib$spawn (&cmddsc,
- (ifiledsc.dsc$w_length == 0)?0:&ifiledsc,
- (ofiledsc.dsc$w_length == 0)?0:&ofiledsc,
- &spflags,
- &pnamedsc,
- &child->pid, &child->cstatus, &child->efn,
- vmsHandleChildTerm, child,
- 0, 0, 0);
+ (ifiledsc.dsc$w_length == 0)?0:&ifiledsc,
+ (ofiledsc.dsc$w_length == 0)?0:&ofiledsc,
+ &spflags,
+ &pnamedsc,
+ &child->pid, &child->cstatus, &child->efn,
+ vmsHandleChildTerm, child,
+ 0, 0, 0);
#endif
if (!(status & 1))
diff --git a/vpath.c b/vpath.c
index 9f41b27..94956fa 100644
--- a/vpath.c
+++ b/vpath.c
@@ -1,7 +1,5 @@
/* Implementation of pattern-matching file search paths for GNU Make.
-Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
-1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-2010 Free Software Foundation, Inc.
+Copyright (C) 1988-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -16,7 +14,7 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
#include "filedef.h"
#include "variable.h"
#ifdef WINDOWS32
@@ -28,9 +26,9 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
struct vpath
{
- struct vpath *next; /* Pointer to next struct in the linked list. */
+ struct vpath *next; /* Pointer to next struct in the linked list. */
const char *pattern;/* The pattern to match. */
- const char *percent;/* Pointer into `pattern' where the `%' is. */
+ const char *percent;/* Pointer into 'pattern' where the '%' is. */
unsigned int patlen;/* Length of the pattern. */
const char **searchpath; /* Null-terminated list of directories. */
unsigned int maxlen;/* Maximum length of any entry in the list. */
@@ -90,15 +88,15 @@ build_vpath_lists ()
struct vpath *save_vpaths = vpaths;
char gp[] = "%";
- /* Empty `vpaths' so the new one will have no next, and `vpaths'
- will still be nil if P contains no existing directories. */
+ /* Empty 'vpaths' so the new one will have no next, and 'vpaths'
+ will still be nil if P contains no existing directories. */
vpaths = 0;
/* Parse P. */
construct_vpath_list (gp, p);
/* Store the created path as the general path,
- and restore the old list of vpaths. */
+ and restore the old list of vpaths. */
general_vpath = vpaths;
vpaths = save_vpaths;
}
@@ -123,15 +121,15 @@ build_vpath_lists ()
struct vpath *save_vpaths = vpaths;
char gp[] = "%";
- /* Empty `vpaths' so the new one will have no next, and `vpaths'
- will still be nil if P contains no existing directories. */
+ /* Empty 'vpaths' so the new one will have no next, and 'vpaths'
+ will still be nil if P contains no existing directories. */
vpaths = 0;
/* Parse P. */
construct_vpath_list (gp, p);
/* Store the created path as the GPATH,
- and restore the old list of vpaths. */
+ and restore the old list of vpaths. */
gpaths = vpaths;
vpaths = save_vpaths;
}
@@ -148,7 +146,7 @@ build_vpath_lists ()
If DIRPATH is nil, remove all previous listings with the same
pattern. If PATTERN is nil, remove all VPATH listings. Existing
and readable directories that are not "." given in the DIRPATH
- separated by the path element separator (defined in make.h) are
+ separated by the path element separator (defined in makeint.h) are
loaded into the directory hash table if they are not there already
and put in the VPATH searchpath for the given pattern with trailing
slashes stripped off if present (and if the directory is not the
@@ -177,36 +175,36 @@ construct_vpath_list (char *pattern, char *dirpath)
lastpath = 0;
path = vpaths;
while (path != 0)
- {
- struct vpath *next = path->next;
-
- if (pattern == 0
- || (((percent == 0 && path->percent == 0)
- || (percent - pattern == path->percent - path->pattern))
- && streq (pattern, path->pattern)))
- {
- /* Remove it from the linked list. */
- if (lastpath == 0)
- vpaths = path->next;
- else
- lastpath->next = next;
-
- /* Free its unused storage. */
+ {
+ struct vpath *next = path->next;
+
+ if (pattern == 0
+ || (((percent == 0 && path->percent == 0)
+ || (percent - pattern == path->percent - path->pattern))
+ && streq (pattern, path->pattern)))
+ {
+ /* Remove it from the linked list. */
+ if (lastpath == 0)
+ vpaths = path->next;
+ else
+ lastpath->next = next;
+
+ /* Free its unused storage. */
/* MSVC erroneously warns without a cast here. */
- free ((void *)path->searchpath);
- free (path);
- }
- else
- lastpath = path;
+ free ((void *)path->searchpath);
+ free (path);
+ }
+ else
+ lastpath = path;
- path = next;
- }
+ path = next;
+ }
return;
}
#ifdef WINDOWS32
- convert_vpath_to_windows32(dirpath, ';');
+ convert_vpath_to_windows32 (dirpath, ';');
#endif
/* Skip over any initial separators and blanks. */
@@ -237,49 +235,49 @@ construct_vpath_list (char *pattern, char *dirpath)
v = p;
while (*p != '\0'
#if defined(HAVE_DOS_PATHS) && (PATH_SEPARATOR_CHAR == ':')
- /* Platforms whose PATH_SEPARATOR_CHAR is ':' and which
- also define HAVE_DOS_PATHS would like us to recognize
- colons after the drive letter in the likes of
- "D:/foo/bar:C:/xyzzy". */
- && (*p != PATH_SEPARATOR_CHAR
- || (p == v + 1 && (p[1] == '/' || p[1] == '\\')))
+ /* Platforms whose PATH_SEPARATOR_CHAR is ':' and which
+ also define HAVE_DOS_PATHS would like us to recognize
+ colons after the drive letter in the likes of
+ "D:/foo/bar:C:/xyzzy". */
+ && (*p != PATH_SEPARATOR_CHAR
+ || (p == v + 1 && (p[1] == '/' || p[1] == '\\')))
#else
- && *p != PATH_SEPARATOR_CHAR
+ && *p != PATH_SEPARATOR_CHAR
#endif
- && !isblank ((unsigned char)*p))
- ++p;
+ && !isblank ((unsigned char)*p))
+ ++p;
len = p - v;
/* Make sure there's no trailing slash,
- but still allow "/" as a directory. */
+ but still allow "/" as a directory. */
#if defined(__MSDOS__) || defined(__EMX__) || defined(HAVE_DOS_PATHS)
/* We need also to leave alone a trailing slash in "d:/". */
if (len > 3 || (len > 1 && v[1] != ':'))
#endif
if (len > 1 && p[-1] == '/')
- --len;
+ --len;
/* Put the directory on the vpath list. */
if (len > 1 || *v != '.')
- {
+ {
vpath[elem++] = dir_name (strcache_add_len (v, len));
if (len > maxvpath)
maxvpath = len;
- }
+ }
/* Skip over separators and blanks between entries. */
while (*p == PATH_SEPARATOR_CHAR || isblank ((unsigned char)*p))
- ++p;
+ ++p;
}
if (elem > 0)
{
struct vpath *path;
/* ELEM is now incremented one element past the last
- entry, to where the nil-pointer terminator goes.
- Usually this is maxelem - 1. If not, shrink down. */
+ entry, to where the nil-pointer terminator goes.
+ Usually this is maxelem - 1. If not, shrink down. */
if (elem < (maxelem - 1))
- vpath = xrealloc (vpath, (elem+1) * sizeof (const char *));
+ vpath = xrealloc (vpath, (elem+1) * sizeof (const char *));
/* Put the nil-pointer terminator on the end of the VPATH list. */
vpath[elem] = NULL;
@@ -308,12 +306,13 @@ construct_vpath_list (char *pattern, char *dirpath)
int
gpath_search (const char *file, unsigned int len)
{
- const char **gp;
-
if (gpaths && (len <= gpaths->maxlen))
- for (gp = gpaths->searchpath; *gp != NULL; ++gp)
- if (strneq (*gp, file, len) && (*gp)[len] == '\0')
- return 1;
+ {
+ const char **gp;
+ for (gp = gpaths->searchpath; *gp != NULL; ++gp)
+ if (strneq (*gp, file, len) && (*gp)[len] == '\0')
+ return 1;
+ }
return 0;
}
@@ -336,7 +335,7 @@ selective_vpath_search (struct vpath *path, const char *file,
const char **vpath = path->searchpath;
unsigned int maxvpath = path->maxlen;
unsigned int i;
- unsigned int flen, vlen, name_dplen;
+ unsigned int flen, name_dplen;
int exists = 0;
/* Find out if *FILE is a target.
@@ -357,7 +356,7 @@ selective_vpath_search (struct vpath *path, const char *file,
#ifdef HAVE_DOS_PATHS
/* We need the rightmost slash or backslash. */
{
- const char *bslash = strrchr(file, '\\');
+ const char *bslash = strrchr (file, '\\');
if (!n || bslash > n)
n = bslash;
}
@@ -376,54 +375,52 @@ selective_vpath_search (struct vpath *path, const char *file,
for (i = 0; vpath[i] != 0; ++i)
{
int exists_in_cache = 0;
- char *p;
-
- p = name;
+ char *p = name;
+ unsigned int vlen = strlen (vpath[i]);
/* Put the next VPATH entry into NAME at P and increment P past it. */
- vlen = strlen (vpath[i]);
memcpy (p, vpath[i], vlen);
p += vlen;
/* Add the directory prefix already in *FILE. */
if (name_dplen > 0)
- {
+ {
#ifndef VMS
- *p++ = '/';
+ *p++ = '/';
#endif
- memcpy (p, file, name_dplen);
- p += name_dplen;
- }
+ memcpy (p, file, name_dplen);
+ p += name_dplen;
+ }
#ifdef HAVE_DOS_PATHS
/* Cause the next if to treat backslash and slash alike. */
if (p != name && p[-1] == '\\' )
- p[-1] = '/';
+ p[-1] = '/';
#endif
/* Now add the name-within-directory at the end of NAME. */
#ifndef VMS
if (p != name && p[-1] != '/')
- {
- *p = '/';
- memcpy (p + 1, filename, flen + 1);
- }
+ {
+ *p = '/';
+ memcpy (p + 1, filename, flen + 1);
+ }
else
#endif
- memcpy (p, filename, flen + 1);
+ memcpy (p, filename, flen + 1);
/* Check if the file is mentioned in a makefile. If *FILE is not
- a target, that is enough for us to decide this file exists.
- If *FILE is a target, then the file must be mentioned in the
- makefile also as a target to be chosen.
+ a target, that is enough for us to decide this file exists.
+ If *FILE is a target, then the file must be mentioned in the
+ makefile also as a target to be chosen.
- The restriction that *FILE must not be a target for a
- makefile-mentioned file to be chosen was added by an
- inadequately commented change in July 1990; I am not sure off
- hand what problem it fixes.
+ The restriction that *FILE must not be a target for a
+ makefile-mentioned file to be chosen was added by an
+ inadequately commented change in July 1990; I am not sure off
+ hand what problem it fixes.
- In December 1993 I loosened this restriction to allow a file
- to be chosen if it is mentioned as a target in a makefile. This
- seem logical.
+ In December 1993 I loosened this restriction to allow a file
+ to be chosen if it is mentioned as a target in a makefile. This
+ seem logical.
Special handling for -W / -o: make sure we preserve the special
values here. Actually this whole thing is a little bogus: I think
@@ -433,8 +430,8 @@ selective_vpath_search (struct vpath *path, const char *file,
we use it.
*/
{
- struct file *f = lookup_file (name);
- if (f != 0)
+ struct file *f = lookup_file (name);
+ if (f != 0)
{
exists = not_target || f->is_target;
if (exists && mtime_ptr
@@ -447,41 +444,41 @@ selective_vpath_search (struct vpath *path, const char *file,
}
if (!exists)
- {
- /* That file wasn't mentioned in the makefile.
- See if it actually exists. */
+ {
+ /* That file wasn't mentioned in the makefile.
+ See if it actually exists. */
#ifdef VMS
- exists_in_cache = exists = dir_file_exists_p (vpath[i], filename);
+ exists_in_cache = exists = dir_file_exists_p (vpath[i], filename);
#else
- /* Clobber a null into the name at the last slash.
- Now NAME is the name of the directory to look in. */
- *p = '\0';
-
- /* We know the directory is in the hash table now because either
- construct_vpath_list or the code just above put it there.
- Does the file we seek exist in it? */
- exists_in_cache = exists = dir_file_exists_p (name, filename);
+ /* Clobber a null into the name at the last slash.
+ Now NAME is the name of the directory to look in. */
+ *p = '\0';
+
+ /* We know the directory is in the hash table now because either
+ construct_vpath_list or the code just above put it there.
+ Does the file we seek exist in it? */
+ exists_in_cache = exists = dir_file_exists_p (name, filename);
#endif
- }
+ }
if (exists)
- {
- /* The file is in the directory cache.
- Now check that it actually exists in the filesystem.
- The cache may be out of date. When vpath thinks a file
- exists, but stat fails for it, confusion results in the
- higher levels. */
+ {
+ /* The file is in the directory cache.
+ Now check that it actually exists in the filesystem.
+ The cache may be out of date. When vpath thinks a file
+ exists, but stat fails for it, confusion results in the
+ higher levels. */
- struct stat st;
+ struct stat st;
#ifndef VMS
- /* Put the slash back in NAME. */
- *p = '/';
+ /* Put the slash back in NAME. */
+ *p = '/';
#endif
- if (exists_in_cache) /* Makefile-mentioned file need not exist. */
- {
+ if (exists_in_cache) /* Makefile-mentioned file need not exist. */
+ {
int e;
EINTRLOOP (e, stat (name, &st)); /* Does it really exist? */
@@ -511,7 +508,7 @@ selective_vpath_search (struct vpath *path, const char *file,
*path_index = i;
return strcache_add_len (name, (p + 1 - name) + flen);
- }
+ }
}
return 0;
@@ -595,26 +592,26 @@ print_vpath_data_base (void)
printf ("vpath %s ", v->pattern);
for (i = 0; v->searchpath[i] != 0; ++i)
- printf ("%s%c", v->searchpath[i],
- v->searchpath[i + 1] == 0 ? '\n' : PATH_SEPARATOR_CHAR);
+ printf ("%s%c", v->searchpath[i],
+ v->searchpath[i + 1] == 0 ? '\n' : PATH_SEPARATOR_CHAR);
}
if (vpaths == 0)
- puts (_("# No `vpath' search paths."));
+ puts (_("# No 'vpath' search paths."));
else
- printf (_("\n# %u `vpath' search paths.\n"), nvpaths);
+ printf (_("\n# %u 'vpath' search paths.\n"), nvpaths);
if (general_vpath == 0)
- puts (_("\n# No general (`VPATH' variable) search path."));
+ puts (_("\n# No general ('VPATH' variable) search path."));
else
{
const char **path = general_vpath->searchpath;
unsigned int i;
- fputs (_("\n# General (`VPATH' variable) search path:\n# "), stdout);
+ fputs (_("\n# General ('VPATH' variable) search path:\n# "), stdout);
for (i = 0; path[i] != 0; ++i)
- printf ("%s%c", path[i],
- path[i + 1] == 0 ? '\n' : PATH_SEPARATOR_CHAR);
+ printf ("%s%c", path[i],
+ path[i + 1] == 0 ? '\n' : PATH_SEPARATOR_CHAR);
}
}
diff --git a/w32/.deps/libw32_a-misc.Po b/w32/.deps/libw32_a-misc.Po
deleted file mode 100644
index 9ce06a8..0000000
--- a/w32/.deps/libw32_a-misc.Po
+++ /dev/null
@@ -1 +0,0 @@
-# dummy
diff --git a/w32/.deps/libw32_a-pathstuff.Po b/w32/.deps/libw32_a-pathstuff.Po
deleted file mode 100644
index 9ce06a8..0000000
--- a/w32/.deps/libw32_a-pathstuff.Po
+++ /dev/null
@@ -1 +0,0 @@
-# dummy
diff --git a/w32/.deps/libw32_a-sub_proc.Po b/w32/.deps/libw32_a-sub_proc.Po
deleted file mode 100644
index 9ce06a8..0000000
--- a/w32/.deps/libw32_a-sub_proc.Po
+++ /dev/null
@@ -1 +0,0 @@
-# dummy
diff --git a/w32/.deps/libw32_a-w32err.Po b/w32/.deps/libw32_a-w32err.Po
deleted file mode 100644
index 9ce06a8..0000000
--- a/w32/.deps/libw32_a-w32err.Po
+++ /dev/null
@@ -1 +0,0 @@
-# dummy
diff --git a/w32/Makefile b/w32/Makefile
deleted file mode 100644
index 8c95760..0000000
--- a/w32/Makefile
+++ /dev/null
@@ -1,536 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# w32/Makefile. Generated from Makefile.in by configure.
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-# Makefile.am to create libw32.a for mingw32 host.
-# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
-# This file is part of GNU Make.
-#
-# GNU Make is free software; you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 3 of the License, or (at your option) any later
-# version.
-#
-# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-# details.
-#
-# You should have received a copy of the GNU General Public License along with
-# this program. If not, see <http://www.gnu.org/licenses/>.
-
-
-pkgdatadir = $(datadir)/make
-pkgincludedir = $(includedir)/make
-pkglibdir = $(libdir)/make
-pkglibexecdir = $(libexecdir)/make
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = x86_64-unknown-linux-gnu
-host_triplet = x86_64-unknown-linux-gnu
-subdir = w32
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/config/dospaths.m4 \
- $(top_srcdir)/config/gettext.m4 $(top_srcdir)/config/iconv.m4 \
- $(top_srcdir)/config/isc-posix.m4 \
- $(top_srcdir)/config/lib-ld.m4 \
- $(top_srcdir)/config/lib-link.m4 \
- $(top_srcdir)/config/lib-prefix.m4 $(top_srcdir)/config/nls.m4 \
- $(top_srcdir)/config/po.m4 $(top_srcdir)/config/progtest.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-ARFLAGS = cru
-libw32_a_AR = $(AR) $(ARFLAGS)
-libw32_a_LIBADD =
-am_libw32_a_OBJECTS = libw32_a-misc.$(OBJEXT) \
- libw32_a-sub_proc.$(OBJEXT) libw32_a-w32err.$(OBJEXT) \
- libw32_a-pathstuff.$(OBJEXT)
-libw32_a_OBJECTS = $(am_libw32_a_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libw32_a_SOURCES)
-DIST_SOURCES = $(libw32_a_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /home/psmith/src/make/make-rel/config/missing --run aclocal-1.11
-ALLOCA =
-AMTAR = ${SHELL} /home/psmith/src/make/make-rel/config/missing --run tar
-AR = ar
-AUTOCONF = ${SHELL} /home/psmith/src/make/make-rel/config/missing --run autoconf
-AUTOHEADER = ${SHELL} /home/psmith/src/make/make-rel/config/missing --run autoheader
-AUTOMAKE = ${SHELL} /home/psmith/src/make/make-rel/config/missing --run automake-1.11
-AWK = gawk
-CC = gcc
-CCDEPMODE = depmode=gcc3
-CFLAGS = -g -O2
-CPP = gcc -E
-CPPFLAGS =
-CYGPATH_W = echo
-DEFS = -DHAVE_CONFIG_H
-DEPDIR = .deps
-ECHO_C =
-ECHO_N = -n
-ECHO_T =
-EGREP = /bin/grep -E
-EXEEXT =
-GETLOADAVG_LIBS =
-GLOBINC =
-GLOBLIB =
-GMSGFMT = /usr/bin/msgfmt
-GREP = /bin/grep
-INSTALL = /usr/bin/install -c
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
-INTLLIBS =
-KMEM_GROUP =
-LDFLAGS =
-LIBICONV = -liconv
-LIBINTL =
-LIBOBJS =
-LIBS = -lrt
-LTLIBICONV = -liconv
-LTLIBINTL =
-LTLIBOBJS =
-MAKEINFO = ${SHELL} /home/psmith/src/make/make-rel/config/missing --run makeinfo
-MAKE_HOST = x86_64-unknown-linux-gnu
-MKDIR_P = /bin/mkdir -p
-MKINSTALLDIRS = $(top_builddir)/config/mkinstalldirs
-MSGFMT = /usr/bin/msgfmt
-MSGMERGE = /usr/bin/msgmerge
-NEED_SETGID = false
-OBJEXT = o
-PACKAGE = make
-PACKAGE_BUGREPORT = bug-make@gnu.org
-PACKAGE_NAME = GNU make
-PACKAGE_STRING = GNU make 3.82
-PACKAGE_TARNAME = make
-PACKAGE_URL = http://www.gnu.org/software/make/
-PACKAGE_VERSION = 3.82
-PATH_SEPARATOR = :
-PERL = perl
-POSUB = po
-RANLIB = ranlib
-REMOTE = stub
-SET_MAKE =
-SHELL = /bin/bash
-STRIP =
-USE_NLS = yes
-VERSION = 3.82
-XGETTEXT = /usr/bin/xgettext
-abs_builddir = /home/psmith/src/make/make-rel/w32
-abs_srcdir = /home/psmith/src/make/make-rel/w32
-abs_top_builddir = /home/psmith/src/make/make-rel
-abs_top_srcdir = /home/psmith/src/make/make-rel
-ac_ct_CC = gcc
-am__include = include
-am__leading_dot = .
-am__quote =
-am__tar = ${AMTAR} chof - "$$tardir"
-am__untar = ${AMTAR} xf -
-bindir = ${exec_prefix}/bin
-build = x86_64-unknown-linux-gnu
-build_alias =
-build_cpu = x86_64
-build_os = linux-gnu
-build_vendor = unknown
-builddir = .
-datadir = ${datarootdir}
-datarootdir = ${prefix}/share
-docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
-dvidir = ${docdir}
-exec_prefix = ${prefix}
-host = x86_64-unknown-linux-gnu
-host_alias =
-host_cpu = x86_64
-host_os = linux-gnu
-host_vendor = unknown
-htmldir = ${docdir}
-includedir = ${prefix}/include
-infodir = ${datarootdir}/info
-install_sh = ${SHELL} /home/psmith/src/make/make-rel/config/install-sh
-libdir = ${exec_prefix}/lib
-libexecdir = ${exec_prefix}/libexec
-localedir = ${datarootdir}/locale
-localstatedir = ${prefix}/var
-mandir = ${datarootdir}/man
-mkdir_p = /bin/mkdir -p
-oldincludedir = /usr/include
-pdfdir = ${docdir}
-prefix = /usr/local
-program_transform_name = s,x,x,
-psdir = ${docdir}
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-srcdir = .
-sysconfdir = ${prefix}/etc
-target_alias =
-top_build_prefix = ../
-top_builddir = ..
-top_srcdir = ..
-noinst_LIBRARIES = libw32.a
-libw32_a_SOURCES = subproc/misc.c subproc/sub_proc.c subproc/w32err.c \
- pathstuff.c
-
-libw32_a_CPPFLAGS = -I$(srcdir)/include -I$(srcdir)/subproc -I$(top_srcdir)
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu w32/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu w32/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libw32.a: $(libw32_a_OBJECTS) $(libw32_a_DEPENDENCIES)
- -rm -f libw32.a
- $(libw32_a_AR) libw32.a $(libw32_a_OBJECTS) $(libw32_a_LIBADD)
- $(RANLIB) libw32.a
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-include ./$(DEPDIR)/libw32_a-misc.Po
-include ./$(DEPDIR)/libw32_a-pathstuff.Po
-include ./$(DEPDIR)/libw32_a-sub_proc.Po
-include ./$(DEPDIR)/libw32_a-w32err.Po
-
-.c.o:
- $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-# source='$<' object='$@' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(COMPILE) -c $<
-
-.c.obj:
- $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-# source='$<' object='$@' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-libw32_a-misc.o: subproc/misc.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-misc.o -MD -MP -MF $(DEPDIR)/libw32_a-misc.Tpo -c -o libw32_a-misc.o `test -f 'subproc/misc.c' || echo '$(srcdir)/'`subproc/misc.c
- $(am__mv) $(DEPDIR)/libw32_a-misc.Tpo $(DEPDIR)/libw32_a-misc.Po
-# source='subproc/misc.c' object='libw32_a-misc.o' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-misc.o `test -f 'subproc/misc.c' || echo '$(srcdir)/'`subproc/misc.c
-
-libw32_a-misc.obj: subproc/misc.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-misc.obj -MD -MP -MF $(DEPDIR)/libw32_a-misc.Tpo -c -o libw32_a-misc.obj `if test -f 'subproc/misc.c'; then $(CYGPATH_W) 'subproc/misc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/misc.c'; fi`
- $(am__mv) $(DEPDIR)/libw32_a-misc.Tpo $(DEPDIR)/libw32_a-misc.Po
-# source='subproc/misc.c' object='libw32_a-misc.obj' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-misc.obj `if test -f 'subproc/misc.c'; then $(CYGPATH_W) 'subproc/misc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/misc.c'; fi`
-
-libw32_a-sub_proc.o: subproc/sub_proc.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-sub_proc.o -MD -MP -MF $(DEPDIR)/libw32_a-sub_proc.Tpo -c -o libw32_a-sub_proc.o `test -f 'subproc/sub_proc.c' || echo '$(srcdir)/'`subproc/sub_proc.c
- $(am__mv) $(DEPDIR)/libw32_a-sub_proc.Tpo $(DEPDIR)/libw32_a-sub_proc.Po
-# source='subproc/sub_proc.c' object='libw32_a-sub_proc.o' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-sub_proc.o `test -f 'subproc/sub_proc.c' || echo '$(srcdir)/'`subproc/sub_proc.c
-
-libw32_a-sub_proc.obj: subproc/sub_proc.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-sub_proc.obj -MD -MP -MF $(DEPDIR)/libw32_a-sub_proc.Tpo -c -o libw32_a-sub_proc.obj `if test -f 'subproc/sub_proc.c'; then $(CYGPATH_W) 'subproc/sub_proc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/sub_proc.c'; fi`
- $(am__mv) $(DEPDIR)/libw32_a-sub_proc.Tpo $(DEPDIR)/libw32_a-sub_proc.Po
-# source='subproc/sub_proc.c' object='libw32_a-sub_proc.obj' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-sub_proc.obj `if test -f 'subproc/sub_proc.c'; then $(CYGPATH_W) 'subproc/sub_proc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/sub_proc.c'; fi`
-
-libw32_a-w32err.o: subproc/w32err.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-w32err.o -MD -MP -MF $(DEPDIR)/libw32_a-w32err.Tpo -c -o libw32_a-w32err.o `test -f 'subproc/w32err.c' || echo '$(srcdir)/'`subproc/w32err.c
- $(am__mv) $(DEPDIR)/libw32_a-w32err.Tpo $(DEPDIR)/libw32_a-w32err.Po
-# source='subproc/w32err.c' object='libw32_a-w32err.o' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-w32err.o `test -f 'subproc/w32err.c' || echo '$(srcdir)/'`subproc/w32err.c
-
-libw32_a-w32err.obj: subproc/w32err.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-w32err.obj -MD -MP -MF $(DEPDIR)/libw32_a-w32err.Tpo -c -o libw32_a-w32err.obj `if test -f 'subproc/w32err.c'; then $(CYGPATH_W) 'subproc/w32err.c'; else $(CYGPATH_W) '$(srcdir)/subproc/w32err.c'; fi`
- $(am__mv) $(DEPDIR)/libw32_a-w32err.Tpo $(DEPDIR)/libw32_a-w32err.Po
-# source='subproc/w32err.c' object='libw32_a-w32err.obj' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-w32err.obj `if test -f 'subproc/w32err.c'; then $(CYGPATH_W) 'subproc/w32err.c'; else $(CYGPATH_W) '$(srcdir)/subproc/w32err.c'; fi`
-
-libw32_a-pathstuff.o: pathstuff.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-pathstuff.o -MD -MP -MF $(DEPDIR)/libw32_a-pathstuff.Tpo -c -o libw32_a-pathstuff.o `test -f 'pathstuff.c' || echo '$(srcdir)/'`pathstuff.c
- $(am__mv) $(DEPDIR)/libw32_a-pathstuff.Tpo $(DEPDIR)/libw32_a-pathstuff.Po
-# source='pathstuff.c' object='libw32_a-pathstuff.o' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-pathstuff.o `test -f 'pathstuff.c' || echo '$(srcdir)/'`pathstuff.c
-
-libw32_a-pathstuff.obj: pathstuff.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-pathstuff.obj -MD -MP -MF $(DEPDIR)/libw32_a-pathstuff.Tpo -c -o libw32_a-pathstuff.obj `if test -f 'pathstuff.c'; then $(CYGPATH_W) 'pathstuff.c'; else $(CYGPATH_W) '$(srcdir)/pathstuff.c'; fi`
- $(am__mv) $(DEPDIR)/libw32_a-pathstuff.Tpo $(DEPDIR)/libw32_a-pathstuff.Po
-# source='pathstuff.c' object='libw32_a-pathstuff.obj' libtool=no \
-# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-# $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-pathstuff.obj `if test -f 'pathstuff.c'; then $(CYGPATH_W) 'pathstuff.c'; else $(CYGPATH_W) '$(srcdir)/pathstuff.c'; fi`
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- set x; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LIBRARIES)
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-noinstLIBRARIES ctags distclean distclean-compile \
- distclean-generic distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
- uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/w32/Makefile.am b/w32/Makefile.am
index b8e2071..be757fe 100644
--- a/w32/Makefile.am
+++ b/w32/Makefile.am
@@ -1,6 +1,5 @@
# Makefile.am to create libw32.a for mingw32 host.
-# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
@@ -19,6 +18,6 @@
noinst_LIBRARIES = libw32.a
libw32_a_SOURCES = subproc/misc.c subproc/sub_proc.c subproc/w32err.c \
- pathstuff.c
+ compat/posixfcn.c pathstuff.c
libw32_a_CPPFLAGS = -I$(srcdir)/include -I$(srcdir)/subproc -I$(top_srcdir)
diff --git a/w32/Makefile.in b/w32/Makefile.in
index c5ea5b5..9683105 100644
--- a/w32/Makefile.in
+++ b/w32/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,8 +16,7 @@
@SET_MAKE@
# Makefile.am to create libw32.a for mingw32 host.
-# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
@@ -34,6 +33,23 @@
# this program. If not, see <http://www.gnu.org/licenses/>.
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -57,42 +73,67 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/config/dospaths.m4 \
$(top_srcdir)/config/gettext.m4 $(top_srcdir)/config/iconv.m4 \
- $(top_srcdir)/config/isc-posix.m4 \
+ $(top_srcdir)/config/intlmacosx.m4 \
$(top_srcdir)/config/lib-ld.m4 \
$(top_srcdir)/config/lib-link.m4 \
$(top_srcdir)/config/lib-prefix.m4 $(top_srcdir)/config/nls.m4 \
$(top_srcdir)/config/po.m4 $(top_srcdir)/config/progtest.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
LIBRARIES = $(noinst_LIBRARIES)
ARFLAGS = cru
+AM_V_AR = $(am__v_AR_@AM_V@)
+am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+am__v_AR_0 = @echo " AR " $@;
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
libw32_a_AR = $(AR) $(ARFLAGS)
libw32_a_LIBADD =
am_libw32_a_OBJECTS = libw32_a-misc.$(OBJEXT) \
libw32_a-sub_proc.$(OBJEXT) libw32_a-w32err.$(OBJEXT) \
- libw32_a-pathstuff.$(OBJEXT)
+ libw32_a-posixfcn.$(OBJEXT) libw32_a-pathstuff.$(OBJEXT)
libw32_a_OBJECTS = $(am_libw32_a_OBJECTS)
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/config/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
SOURCES = $(libw32_a_SOURCES)
DIST_SOURCES = $(libw32_a_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AM_LDFLAGS = @AM_LDFLAGS@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -112,16 +153,21 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
GLOBINC = @GLOBINC@
GLOBLIB = @GLOBLIB@
GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
GREP = @GREP@
+GUILE_CFLAGS = @GUILE_CFLAGS@
+GUILE_LIBS = @GUILE_LIBS@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
KMEM_GROUP = @KMEM_GROUP@
LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
@@ -134,8 +180,8 @@ LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MAKE_HOST = @MAKE_HOST@
MKDIR_P = @MKDIR_P@
-MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
MSGMERGE = @MSGMERGE@
NEED_SETGID = @NEED_SETGID@
OBJEXT = @OBJEXT@
@@ -148,6 +194,9 @@ PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POSUB = @POSUB@
RANLIB = @RANLIB@
REMOTE = @REMOTE@
@@ -157,6 +206,8 @@ STRIP = @STRIP@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
@@ -209,7 +260,7 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
noinst_LIBRARIES = libw32.a
libw32_a_SOURCES = subproc/misc.c subproc/sub_proc.c subproc/w32err.c \
- pathstuff.c
+ compat/posixfcn.c pathstuff.c
libw32_a_CPPFLAGS = -I$(srcdir)/include -I$(srcdir)/subproc -I$(top_srcdir)
all: all-am
@@ -249,10 +300,10 @@ $(am__aclocal_m4_deps):
clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-libw32.a: $(libw32_a_OBJECTS) $(libw32_a_DEPENDENCIES)
- -rm -f libw32.a
- $(libw32_a_AR) libw32.a $(libw32_a_OBJECTS) $(libw32_a_LIBADD)
- $(RANLIB) libw32.a
+libw32.a: $(libw32_a_OBJECTS) $(libw32_a_DEPENDENCIES) $(EXTRA_libw32_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f libw32.a
+ $(AM_V_AR)$(libw32_a_AR) libw32.a $(libw32_a_OBJECTS) $(libw32_a_LIBADD)
+ $(AM_V_at)$(RANLIB) libw32.a
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -262,78 +313,93 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libw32_a-misc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libw32_a-pathstuff.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libw32_a-posixfcn.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libw32_a-sub_proc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libw32_a-w32err.Po@am__quote@
.c.o:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
.c.obj:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
libw32_a-misc.o: subproc/misc.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-misc.o -MD -MP -MF $(DEPDIR)/libw32_a-misc.Tpo -c -o libw32_a-misc.o `test -f 'subproc/misc.c' || echo '$(srcdir)/'`subproc/misc.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libw32_a-misc.Tpo $(DEPDIR)/libw32_a-misc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='subproc/misc.c' object='libw32_a-misc.o' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-misc.o -MD -MP -MF $(DEPDIR)/libw32_a-misc.Tpo -c -o libw32_a-misc.o `test -f 'subproc/misc.c' || echo '$(srcdir)/'`subproc/misc.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libw32_a-misc.Tpo $(DEPDIR)/libw32_a-misc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='subproc/misc.c' object='libw32_a-misc.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-misc.o `test -f 'subproc/misc.c' || echo '$(srcdir)/'`subproc/misc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-misc.o `test -f 'subproc/misc.c' || echo '$(srcdir)/'`subproc/misc.c
libw32_a-misc.obj: subproc/misc.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-misc.obj -MD -MP -MF $(DEPDIR)/libw32_a-misc.Tpo -c -o libw32_a-misc.obj `if test -f 'subproc/misc.c'; then $(CYGPATH_W) 'subproc/misc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/misc.c'; fi`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libw32_a-misc.Tpo $(DEPDIR)/libw32_a-misc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='subproc/misc.c' object='libw32_a-misc.obj' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-misc.obj -MD -MP -MF $(DEPDIR)/libw32_a-misc.Tpo -c -o libw32_a-misc.obj `if test -f 'subproc/misc.c'; then $(CYGPATH_W) 'subproc/misc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/misc.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libw32_a-misc.Tpo $(DEPDIR)/libw32_a-misc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='subproc/misc.c' object='libw32_a-misc.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-misc.obj `if test -f 'subproc/misc.c'; then $(CYGPATH_W) 'subproc/misc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/misc.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-misc.obj `if test -f 'subproc/misc.c'; then $(CYGPATH_W) 'subproc/misc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/misc.c'; fi`
libw32_a-sub_proc.o: subproc/sub_proc.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-sub_proc.o -MD -MP -MF $(DEPDIR)/libw32_a-sub_proc.Tpo -c -o libw32_a-sub_proc.o `test -f 'subproc/sub_proc.c' || echo '$(srcdir)/'`subproc/sub_proc.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libw32_a-sub_proc.Tpo $(DEPDIR)/libw32_a-sub_proc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='subproc/sub_proc.c' object='libw32_a-sub_proc.o' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-sub_proc.o -MD -MP -MF $(DEPDIR)/libw32_a-sub_proc.Tpo -c -o libw32_a-sub_proc.o `test -f 'subproc/sub_proc.c' || echo '$(srcdir)/'`subproc/sub_proc.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libw32_a-sub_proc.Tpo $(DEPDIR)/libw32_a-sub_proc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='subproc/sub_proc.c' object='libw32_a-sub_proc.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-sub_proc.o `test -f 'subproc/sub_proc.c' || echo '$(srcdir)/'`subproc/sub_proc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-sub_proc.o `test -f 'subproc/sub_proc.c' || echo '$(srcdir)/'`subproc/sub_proc.c
libw32_a-sub_proc.obj: subproc/sub_proc.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-sub_proc.obj -MD -MP -MF $(DEPDIR)/libw32_a-sub_proc.Tpo -c -o libw32_a-sub_proc.obj `if test -f 'subproc/sub_proc.c'; then $(CYGPATH_W) 'subproc/sub_proc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/sub_proc.c'; fi`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libw32_a-sub_proc.Tpo $(DEPDIR)/libw32_a-sub_proc.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='subproc/sub_proc.c' object='libw32_a-sub_proc.obj' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-sub_proc.obj -MD -MP -MF $(DEPDIR)/libw32_a-sub_proc.Tpo -c -o libw32_a-sub_proc.obj `if test -f 'subproc/sub_proc.c'; then $(CYGPATH_W) 'subproc/sub_proc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/sub_proc.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libw32_a-sub_proc.Tpo $(DEPDIR)/libw32_a-sub_proc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='subproc/sub_proc.c' object='libw32_a-sub_proc.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-sub_proc.obj `if test -f 'subproc/sub_proc.c'; then $(CYGPATH_W) 'subproc/sub_proc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/sub_proc.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-sub_proc.obj `if test -f 'subproc/sub_proc.c'; then $(CYGPATH_W) 'subproc/sub_proc.c'; else $(CYGPATH_W) '$(srcdir)/subproc/sub_proc.c'; fi`
libw32_a-w32err.o: subproc/w32err.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-w32err.o -MD -MP -MF $(DEPDIR)/libw32_a-w32err.Tpo -c -o libw32_a-w32err.o `test -f 'subproc/w32err.c' || echo '$(srcdir)/'`subproc/w32err.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libw32_a-w32err.Tpo $(DEPDIR)/libw32_a-w32err.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='subproc/w32err.c' object='libw32_a-w32err.o' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-w32err.o -MD -MP -MF $(DEPDIR)/libw32_a-w32err.Tpo -c -o libw32_a-w32err.o `test -f 'subproc/w32err.c' || echo '$(srcdir)/'`subproc/w32err.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libw32_a-w32err.Tpo $(DEPDIR)/libw32_a-w32err.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='subproc/w32err.c' object='libw32_a-w32err.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-w32err.o `test -f 'subproc/w32err.c' || echo '$(srcdir)/'`subproc/w32err.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-w32err.o `test -f 'subproc/w32err.c' || echo '$(srcdir)/'`subproc/w32err.c
libw32_a-w32err.obj: subproc/w32err.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-w32err.obj -MD -MP -MF $(DEPDIR)/libw32_a-w32err.Tpo -c -o libw32_a-w32err.obj `if test -f 'subproc/w32err.c'; then $(CYGPATH_W) 'subproc/w32err.c'; else $(CYGPATH_W) '$(srcdir)/subproc/w32err.c'; fi`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libw32_a-w32err.Tpo $(DEPDIR)/libw32_a-w32err.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='subproc/w32err.c' object='libw32_a-w32err.obj' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-w32err.obj -MD -MP -MF $(DEPDIR)/libw32_a-w32err.Tpo -c -o libw32_a-w32err.obj `if test -f 'subproc/w32err.c'; then $(CYGPATH_W) 'subproc/w32err.c'; else $(CYGPATH_W) '$(srcdir)/subproc/w32err.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libw32_a-w32err.Tpo $(DEPDIR)/libw32_a-w32err.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='subproc/w32err.c' object='libw32_a-w32err.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-w32err.obj `if test -f 'subproc/w32err.c'; then $(CYGPATH_W) 'subproc/w32err.c'; else $(CYGPATH_W) '$(srcdir)/subproc/w32err.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-w32err.obj `if test -f 'subproc/w32err.c'; then $(CYGPATH_W) 'subproc/w32err.c'; else $(CYGPATH_W) '$(srcdir)/subproc/w32err.c'; fi`
+
+libw32_a-posixfcn.o: compat/posixfcn.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-posixfcn.o -MD -MP -MF $(DEPDIR)/libw32_a-posixfcn.Tpo -c -o libw32_a-posixfcn.o `test -f 'compat/posixfcn.c' || echo '$(srcdir)/'`compat/posixfcn.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libw32_a-posixfcn.Tpo $(DEPDIR)/libw32_a-posixfcn.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='compat/posixfcn.c' object='libw32_a-posixfcn.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-posixfcn.o `test -f 'compat/posixfcn.c' || echo '$(srcdir)/'`compat/posixfcn.c
+
+libw32_a-posixfcn.obj: compat/posixfcn.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-posixfcn.obj -MD -MP -MF $(DEPDIR)/libw32_a-posixfcn.Tpo -c -o libw32_a-posixfcn.obj `if test -f 'compat/posixfcn.c'; then $(CYGPATH_W) 'compat/posixfcn.c'; else $(CYGPATH_W) '$(srcdir)/compat/posixfcn.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libw32_a-posixfcn.Tpo $(DEPDIR)/libw32_a-posixfcn.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='compat/posixfcn.c' object='libw32_a-posixfcn.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-posixfcn.obj `if test -f 'compat/posixfcn.c'; then $(CYGPATH_W) 'compat/posixfcn.c'; else $(CYGPATH_W) '$(srcdir)/compat/posixfcn.c'; fi`
libw32_a-pathstuff.o: pathstuff.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-pathstuff.o -MD -MP -MF $(DEPDIR)/libw32_a-pathstuff.Tpo -c -o libw32_a-pathstuff.o `test -f 'pathstuff.c' || echo '$(srcdir)/'`pathstuff.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libw32_a-pathstuff.Tpo $(DEPDIR)/libw32_a-pathstuff.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pathstuff.c' object='libw32_a-pathstuff.o' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-pathstuff.o -MD -MP -MF $(DEPDIR)/libw32_a-pathstuff.Tpo -c -o libw32_a-pathstuff.o `test -f 'pathstuff.c' || echo '$(srcdir)/'`pathstuff.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libw32_a-pathstuff.Tpo $(DEPDIR)/libw32_a-pathstuff.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pathstuff.c' object='libw32_a-pathstuff.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-pathstuff.o `test -f 'pathstuff.c' || echo '$(srcdir)/'`pathstuff.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-pathstuff.o `test -f 'pathstuff.c' || echo '$(srcdir)/'`pathstuff.c
libw32_a-pathstuff.obj: pathstuff.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-pathstuff.obj -MD -MP -MF $(DEPDIR)/libw32_a-pathstuff.Tpo -c -o libw32_a-pathstuff.obj `if test -f 'pathstuff.c'; then $(CYGPATH_W) 'pathstuff.c'; else $(CYGPATH_W) '$(srcdir)/pathstuff.c'; fi`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libw32_a-pathstuff.Tpo $(DEPDIR)/libw32_a-pathstuff.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pathstuff.c' object='libw32_a-pathstuff.obj' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libw32_a-pathstuff.obj -MD -MP -MF $(DEPDIR)/libw32_a-pathstuff.Tpo -c -o libw32_a-pathstuff.obj `if test -f 'pathstuff.c'; then $(CYGPATH_W) 'pathstuff.c'; else $(CYGPATH_W) '$(srcdir)/pathstuff.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libw32_a-pathstuff.Tpo $(DEPDIR)/libw32_a-pathstuff.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pathstuff.c' object='libw32_a-pathstuff.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-pathstuff.obj `if test -f 'pathstuff.c'; then $(CYGPATH_W) 'pathstuff.c'; else $(CYGPATH_W) '$(srcdir)/pathstuff.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libw32_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libw32_a-pathstuff.obj `if test -f 'pathstuff.c'; then $(CYGPATH_W) 'pathstuff.c'; else $(CYGPATH_W) '$(srcdir)/pathstuff.c'; fi`
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -431,10 +497,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
diff --git a/w32/compat/dirent.c b/w32/compat/dirent.c
index 8d66e47..bc776dd 100644
--- a/w32/compat/dirent.c
+++ b/w32/compat/dirent.c
@@ -1,6 +1,5 @@
/* Directory entry code for Window platforms.
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/w32/compat/posixfcn.c b/w32/compat/posixfcn.c
new file mode 100644
index 0000000..1d852f5
--- /dev/null
+++ b/w32/compat/posixfcn.c
@@ -0,0 +1,456 @@
+/* Replacements for Posix functions and Posix functionality for MS-Windows.
+
+Copyright (C) 2013 Free Software Foundation, Inc.
+This file is part of GNU Make.
+
+GNU Make is free software; you can redistribute it and/or modify it under the
+terms of the GNU General Public License as published by the Free Software
+Foundation; either version 3 of the License, or (at your option) any later
+version.
+
+GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with
+this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <string.h>
+#include <io.h>
+#include <stdarg.h>
+#include <errno.h>
+#include <windows.h>
+
+#include "dlfcn.h"
+
+#include "makeint.h"
+#include "job.h"
+
+#ifndef NO_OUTPUT_SYNC
+/* Support for OUTPUT_SYNC and related functionality. */
+
+/* Emulation of fcntl that supports only F_GETFD and F_SETLKW. */
+int
+fcntl (intptr_t fd, int cmd, ...)
+{
+ va_list ap;
+
+ va_start (ap, cmd);
+
+ switch (cmd)
+ {
+ case F_GETFD:
+ va_end (ap);
+ /* Could have used GetHandleInformation, but that isn't
+ supported on Windows 9X. */
+ if (_get_osfhandle (fd) == -1)
+ return -1;
+ return 0;
+ case F_SETLKW:
+ {
+ void *buf = va_arg (ap, void *);
+ struct flock *fl = (struct flock *)buf;
+ HANDLE hmutex = (HANDLE)fd;
+ static struct flock last_fl;
+ short last_type = last_fl.l_type;
+
+ va_end (ap);
+
+ if (hmutex == INVALID_HANDLE_VALUE || !hmutex)
+ return -1;
+
+ last_fl = *fl;
+
+ switch (fl->l_type)
+ {
+
+ case F_WRLCK:
+ {
+ DWORD result;
+
+ if (last_type == F_WRLCK)
+ {
+ /* Don't call WaitForSingleObject if we already
+ own the mutex, because doing so will require
+ us to call ReleaseMutex an equal number of
+ times, before the mutex is actually
+ released. */
+ return 0;
+ }
+
+ result = WaitForSingleObject (hmutex, INFINITE);
+ switch (result)
+ {
+ case WAIT_OBJECT_0:
+ /* We don't care if the mutex owner crashed or
+ exited. */
+ case WAIT_ABANDONED:
+ return 0;
+ case WAIT_FAILED:
+ case WAIT_TIMEOUT: /* cannot happen, really */
+ {
+ DWORD err = GetLastError ();
+
+ /* Invalidate the last command. */
+ memset (&last_fl, 0, sizeof (last_fl));
+
+ switch (err)
+ {
+ case ERROR_INVALID_HANDLE:
+ case ERROR_INVALID_FUNCTION:
+ errno = EINVAL;
+ return -1;
+ default:
+ errno = EDEADLOCK;
+ return -1;
+ }
+ }
+ }
+ }
+ case F_UNLCK:
+ {
+ /* FIXME: Perhaps we should call ReleaseMutex
+ repatedly until it errors out, to make sure the
+ mutext is released even if we somehow managed to
+ to take ownership multiple times? */
+ BOOL status = ReleaseMutex (hmutex);
+
+ if (status)
+ return 0;
+ else
+ {
+ DWORD err = GetLastError ();
+
+ if (err == ERROR_NOT_OWNER)
+ errno = EPERM;
+ else
+ {
+ memset (&last_fl, 0, sizeof (last_fl));
+ errno = EINVAL;
+ }
+ return -1;
+ }
+ }
+ default:
+ errno = ENOSYS;
+ return -1;
+ }
+ }
+ default:
+ errno = ENOSYS;
+ va_end (ap);
+ return -1;
+ }
+}
+
+static intptr_t mutex_handle = -1;
+
+/* Record in a static variable the mutex handle we were requested to
+ use. That nameless mutex was created by the top-level Make, and
+ its handle was passed to us via inheritance. The value of that
+ handle is passed via the command-line arguments, so that we know
+ which handle to use. */
+void
+record_sync_mutex (const char *str)
+{
+ char *endp;
+ intptr_t hmutex = strtol (str, &endp, 16);
+
+ if (*endp == '\0')
+ mutex_handle = hmutex;
+ else
+ {
+ mutex_handle = -1;
+ errno = EINVAL;
+ }
+}
+
+/* Create a new mutex or reuse one created by our parent. */
+intptr_t
+create_mutex (void)
+{
+ SECURITY_ATTRIBUTES secattr;
+ intptr_t hmutex = -1;
+
+ /* If we have a mutex handle passed from the parent Make, just use
+ that. */
+ if (mutex_handle > 0)
+ return mutex_handle;
+
+ /* We are the top-level Make, and we want the handle to be inherited
+ by our child processes. */
+ secattr.nLength = sizeof (secattr);
+ secattr.lpSecurityDescriptor = NULL; /* use default security descriptor */
+ secattr.bInheritHandle = TRUE;
+
+ hmutex = (intptr_t)CreateMutex (&secattr, FALSE, NULL);
+ if (!hmutex)
+ {
+ DWORD err = GetLastError ();
+
+ fprintf (stderr, "CreateMutex: error %lu\n", err);
+ errno = ENOLCK;
+ hmutex = -1;
+ }
+
+ mutex_handle = hmutex;
+ return hmutex;
+}
+
+/* Return non-zero if F1 and F2 are 2 streams representing the same
+ file or pipe or device. */
+int
+same_stream (FILE *f1, FILE *f2)
+{
+ HANDLE fh1 = (HANDLE)_get_osfhandle (fileno (f1));
+ HANDLE fh2 = (HANDLE)_get_osfhandle (fileno (f2));
+
+ /* Invalid file descriptors get treated as different streams. */
+ if (fh1 && fh1 != INVALID_HANDLE_VALUE
+ && fh2 && fh2 != INVALID_HANDLE_VALUE)
+ {
+ if (fh1 == fh2)
+ return 1;
+ else
+ {
+ DWORD ftyp1 = GetFileType (fh1), ftyp2 = GetFileType (fh2);
+
+ if (ftyp1 != ftyp2
+ || ftyp1 == FILE_TYPE_UNKNOWN || ftyp2 == FILE_TYPE_UNKNOWN)
+ return 0;
+ else if (ftyp1 == FILE_TYPE_CHAR)
+ {
+ /* For character devices, check if they both refer to a
+ console. This loses if both handles refer to the
+ null device (FIXME!), but in that case we don't care
+ in the context of Make. */
+ DWORD conmode1, conmode2;
+
+ /* Each process on Windows can have at most 1 console,
+ so if both handles are for the console device, they
+ are the same. We also compare the console mode to
+ distinguish between stdin and stdout/stderr. */
+ if (GetConsoleMode (fh1, &conmode1)
+ && GetConsoleMode (fh2, &conmode2)
+ && conmode1 == conmode2)
+ return 1;
+ }
+ else
+ {
+ /* For disk files and pipes, compare their unique
+ attributes. */
+ BY_HANDLE_FILE_INFORMATION bhfi1, bhfi2;
+
+ /* Pipes get zero in the volume serial number, but do
+ appear to have meaningful information in file index
+ attributes. We test file attributes as well, for a
+ good measure. */
+ if (GetFileInformationByHandle (fh1, &bhfi1)
+ && GetFileInformationByHandle (fh2, &bhfi2))
+ return (bhfi1.dwVolumeSerialNumber == bhfi2.dwVolumeSerialNumber
+ && bhfi1.nFileIndexLow == bhfi2.nFileIndexLow
+ && bhfi1.nFileIndexHigh == bhfi2.nFileIndexHigh
+ && bhfi1.dwFileAttributes == bhfi2.dwFileAttributes);
+ }
+ }
+ }
+ return 0;
+}
+
+/* A replacement for tmpfile, since the MSVCRT implementation creates
+ the file in the root directory of the current drive, which might
+ not be writable by our user. Most of the code borrowed from
+ create_batch_file, see job.c. */
+FILE *
+tmpfile (void)
+{
+ char temp_path[MAXPATHLEN];
+ unsigned path_size = GetTempPath (sizeof temp_path, temp_path);
+ int path_is_dot = 0;
+ /* The following variable is static so we won't try to reuse a name
+ that was generated a little while ago, because that file might
+ not be on disk yet, since we use FILE_ATTRIBUTE_TEMPORARY below,
+ which tells the OS it doesn't need to flush the cache to disk.
+ If the file is not yet on disk, we might think the name is
+ available, while it really isn't. This happens in parallel
+ builds, where Make doesn't wait for one job to finish before it
+ launches the next one. */
+ static unsigned uniq = 0;
+ static int second_loop = 0;
+ const char base[] = "gmake_tmpf";
+ const unsigned sizemax = sizeof base - 1 + 4 + 10 + 10;
+ unsigned pid = GetCurrentProcessId ();
+
+ if (path_size == 0)
+ {
+ path_size = GetCurrentDirectory (sizeof temp_path, temp_path);
+ path_is_dot = 1;
+ }
+
+ ++uniq;
+ if (uniq >= 0x10000 && !second_loop)
+ {
+ /* If we already had 64K batch files in this
+ process, make a second loop through the numbers,
+ looking for free slots, i.e. files that were
+ deleted in the meantime. */
+ second_loop = 1;
+ uniq = 1;
+ }
+ while (path_size > 0 &&
+ path_size + sizemax < sizeof temp_path &&
+ !(uniq >= 0x10000 && second_loop))
+ {
+ HANDLE h;
+
+ sprintf (temp_path + path_size,
+ "%s%s%u-%x.tmp",
+ temp_path[path_size - 1] == '\\' ? "" : "\\",
+ base, pid, uniq);
+ h = CreateFile (temp_path, /* file name */
+ GENERIC_READ | GENERIC_WRITE | DELETE, /* desired access */
+ FILE_SHARE_READ | FILE_SHARE_WRITE, /* share mode */
+ NULL, /* default security attributes */
+ CREATE_NEW, /* creation disposition */
+ FILE_ATTRIBUTE_NORMAL | /* flags and attributes */
+ FILE_ATTRIBUTE_TEMPORARY |
+ FILE_FLAG_DELETE_ON_CLOSE,
+ NULL); /* no template file */
+
+ if (h == INVALID_HANDLE_VALUE)
+ {
+ const DWORD er = GetLastError ();
+
+ if (er == ERROR_FILE_EXISTS || er == ERROR_ALREADY_EXISTS)
+ {
+ ++uniq;
+ if (uniq == 0x10000 && !second_loop)
+ {
+ second_loop = 1;
+ uniq = 1;
+ }
+ }
+
+ /* The temporary path is not guaranteed to exist, or might
+ not be writable by user. Use the current directory as
+ fallback. */
+ else if (path_is_dot == 0)
+ {
+ path_size = GetCurrentDirectory (sizeof temp_path, temp_path);
+ path_is_dot = 1;
+ }
+
+ else
+ {
+ errno = EACCES;
+ break;
+ }
+ }
+ else
+ {
+ int fd = _open_osfhandle ((intptr_t)h, 0);
+
+ return _fdopen (fd, "w+b");
+ }
+ }
+
+ if (uniq >= 0x10000)
+ errno = EEXIST;
+ return NULL;
+}
+
+#endif /* !NO_OUTPUT_SYNC */
+
+#if MAKE_LOAD
+
+/* Support for dynamic loading of objects. */
+
+
+static DWORD last_err;
+
+void *
+dlopen (const char *file, int mode)
+{
+ char dllfn[MAX_PATH], *p;
+ HANDLE dllhandle;
+
+ if ((mode & ~(RTLD_LAZY | RTLD_NOW | RTLD_GLOBAL)) != 0)
+ {
+ errno = EINVAL;
+ last_err = ERROR_INVALID_PARAMETER;
+ return NULL;
+ }
+
+ if (!file)
+ dllhandle = GetModuleHandle (NULL);
+ else
+ {
+ /* MSDN says to be sure to use backslashes in the DLL file name. */
+ strcpy (dllfn, file);
+ for (p = dllfn; *p; p++)
+ if (*p == '/')
+ *p = '\\';
+
+ dllhandle = LoadLibrary (dllfn);
+ }
+ if (!dllhandle)
+ last_err = GetLastError ();
+
+ return dllhandle;
+}
+
+char *
+dlerror (void)
+{
+ static char errbuf[1024];
+ DWORD ret;
+
+ if (!last_err)
+ return NULL;
+
+ ret = FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM
+ | FORMAT_MESSAGE_IGNORE_INSERTS,
+ NULL, last_err, 0, errbuf, sizeof (errbuf), NULL);
+ while (ret > 0 && (errbuf[ret - 1] == '\n' || errbuf[ret - 1] == '\r'))
+ --ret;
+
+ errbuf[ret] = '\0';
+ if (!ret)
+ sprintf (errbuf, "Error code %lu", last_err);
+
+ last_err = 0;
+ return errbuf;
+}
+
+void *
+dlsym (void *handle, const char *name)
+{
+ FARPROC addr = NULL;
+
+ if (!handle || handle == INVALID_HANDLE_VALUE)
+ {
+ last_err = ERROR_INVALID_PARAMETER;
+ return NULL;
+ }
+
+ addr = GetProcAddress (handle, name);
+ if (!addr)
+ last_err = GetLastError ();
+
+ return (void *)addr;
+}
+
+int
+dlclose (void *handle)
+{
+ if (!handle || handle == INVALID_HANDLE_VALUE)
+ return -1;
+ if (!FreeLibrary (handle))
+ return -1;
+
+ return 0;
+}
+
+
+#endif /* MAKE_LOAD */
+
diff --git a/w32/include/dirent.h b/w32/include/dirent.h
index 6e77c8b..e75a1b1 100644
--- a/w32/include/dirent.h
+++ b/w32/include/dirent.h
@@ -1,6 +1,5 @@
/* Windows version of dirent.h
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/w32/include/dlfcn.h b/w32/include/dlfcn.h
new file mode 100644
index 0000000..e920703
--- /dev/null
+++ b/w32/include/dlfcn.h
@@ -0,0 +1,29 @@
+/* dlfcn.h replacement for MS-Windows build.
+Copyright (C) 2013 Free Software Foundation, Inc.
+This file is part of GNU Make.
+
+GNU Make is free software; you can redistribute it and/or modify it under the
+terms of the GNU General Public License as published by the Free Software
+Foundation; either version 3 of the License, or (at your option) any later
+version.
+
+GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along with
+this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef DLFCN_H
+#define DLFCN_H
+
+#define RTLD_LAZY 1
+#define RTLD_NOW 2
+#define RTLD_GLOBAL 4
+
+extern void *dlopen (const char *, int);
+extern void *dlsym (void *, const char *);
+extern char *dlerror (void);
+extern int dlclose (void *);
+
+#endif /* DLFCN_H */
diff --git a/w32/include/pathstuff.h b/w32/include/pathstuff.h
index e56e822..4e34a13 100644
--- a/w32/include/pathstuff.h
+++ b/w32/include/pathstuff.h
@@ -1,6 +1,5 @@
/* Definitions for Windows path manipulation.
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/w32/include/sub_proc.h b/w32/include/sub_proc.h
index 8166dce..c7d9fee 100644
--- a/w32/include/sub_proc.h
+++ b/w32/include/sub_proc.h
@@ -1,6 +1,5 @@
/* Definitions for Windows process invocation.
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -21,11 +20,11 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
/*
* Component Name:
*
- * $Date: 2010/07/13 01:20:43 $
+ * $Date$
*
- * $Source: /sources/make/make/w32/include/sub_proc.h,v $
+ * $Source$
*
- * $Id: sub_proc.h,v 1.12 2010/07/13 01:20:43 psmith Exp $
+ * $Id$
*/
#define EXTERN_DECL(entry, args) extern entry args
@@ -40,9 +39,10 @@ EXTERN_DECL(long process_pipe_io, (HANDLE proc, char *stdin_data,
int stdin_data_len));
EXTERN_DECL(long process_file_io, (HANDLE proc));
EXTERN_DECL(void process_cleanup, (HANDLE proc));
-EXTERN_DECL(HANDLE process_wait_for_any, (VOID_DECL));
+EXTERN_DECL(HANDLE process_wait_for_any, (int block, DWORD* pdwWaitStatus));
EXTERN_DECL(void process_register, (HANDLE proc));
-EXTERN_DECL(HANDLE process_easy, (char** argv, char** env));
+EXTERN_DECL(HANDLE process_easy, (char** argv, char** env,
+ int outfd, int errfd));
EXTERN_DECL(BOOL process_kill, (HANDLE proc, int signal));
EXTERN_DECL(int process_used_slots, (VOID_DECL));
@@ -56,5 +56,16 @@ EXTERN_DECL(char * process_errbuf, (HANDLE proc));
EXTERN_DECL(int process_outcnt, (HANDLE proc));
EXTERN_DECL(int process_errcnt, (HANDLE proc));
EXTERN_DECL(void process_pipes, (HANDLE proc, int pipes[3]));
+EXTERN_DECL(void process_noinherit, (int fildes));
+
+/* jobserver routines */
+EXTERN_DECL(int open_jobserver_semaphore, (const char* name));
+EXTERN_DECL(int create_jobserver_semaphore, (int tokens));
+EXTERN_DECL(void free_jobserver_semaphore, (VOID_DECL));
+EXTERN_DECL(int acquire_jobserver_semaphore, (VOID_DECL));
+EXTERN_DECL(int release_jobserver_semaphore, (VOID_DECL));
+EXTERN_DECL(int has_jobserver_semaphore, (VOID_DECL));
+EXTERN_DECL(char* get_jobserver_semaphore_name, (VOID_DECL));
+EXTERN_DECL(int wait_for_semaphore_or_child_process, (VOID_DECL));
#endif
diff --git a/w32/include/w32err.h b/w32/include/w32err.h
index 65369ba..938a119 100644
--- a/w32/include/w32err.h
+++ b/w32/include/w32err.h
@@ -1,6 +1,5 @@
/* Definitions for Windows error handling.
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -22,6 +21,6 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
#define EXTERN_DECL(entry, args) entry args
#endif
-EXTERN_DECL(char * map_windows32_error_to_string, (DWORD error));
+EXTERN_DECL(const char * map_windows32_error_to_string, (DWORD error));
#endif /* !_W32ERR_H */
diff --git a/w32/pathstuff.c b/w32/pathstuff.c
index 1f8269e..0e33821 100644
--- a/w32/pathstuff.c
+++ b/w32/pathstuff.c
@@ -1,6 +1,5 @@
/* Path conversion for Windows pathnames.
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -15,7 +14,7 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "make.h"
+#include "makeint.h"
#include <string.h>
#include <stdlib.h>
#include "pathstuff.h"
diff --git a/w32/subproc/NMakefile b/w32/subproc/NMakefile
index 46c838c..5258fa3 100644
--- a/w32/subproc/NMakefile
+++ b/w32/subproc/NMakefile
@@ -1,8 +1,7 @@
-# NOTE: If you have no `make' program at all to process this makefile, run
-# `build.bat' instead.
+# NOTE: If you have no 'make' program at all to process this makefile, run
+# 'build.bat' instead.
#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-# 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
diff --git a/w32/subproc/build.bat b/w32/subproc/build.bat
index dee4072..ecd2ab7 100644
--- a/w32/subproc/build.bat
+++ b/w32/subproc/build.bat
@@ -1,24 +1,23 @@
-@if "%1" == "gcc" GoTo GCCBuild
+@if "%COMPILER%" == "gcc" GoTo GCCBuild
if not exist .\WinDebug\nul mkdir .\WinDebug
-cl.exe /nologo /MT /W4 /GX /Z7 /YX /Od /I .. /I . /I ../include /D WIN32 /D WINDOWS32 /D _DEBUG /D _WINDOWS /FR.\WinDebug/ /Fp.\WinDebug/subproc.pch /Fo.\WinDebug/ /c misc.c
+cl.exe /nologo /MT /W4 /GX /Z7 /YX /Od /I .. /I . /I ../include /I ../.. /D WIN32 /D WINDOWS32 /D _DEBUG /D _WINDOWS /FR.\WinDebug/ /Fp.\WinDebug/subproc.pch /Fo.\WinDebug/ /c misc.c
cl.exe /nologo /MT /W4 /GX /Z7 /YX /Od /I .. /I . /I ../include /I ../.. /D WIN32 /D WINDOWS32 /D _DEBUG /D _WINDOWS /FR.\WinDebug/ /Fp.\WinDebug/subproc.pch /Fo.\WinDebug/ /c sub_proc.c
-cl.exe /nologo /MT /W4 /GX /Z7 /YX /Od /I .. /I . /I ../include /D WIN32 /D WINDOWS32 /D _DEBUG /D _WINDOWS /FR.\WinDebug/ /Fp.\WinDebug/subproc.pch /Fo.\WinDebug/ /c w32err.c
+cl.exe /nologo /MT /W4 /GX /Z7 /YX /Od /I .. /I . /I ../include /I ../.. /D WIN32 /D WINDOWS32 /D _DEBUG /D _WINDOWS /FR.\WinDebug/ /Fp.\WinDebug/subproc.pch /Fo.\WinDebug/ /c w32err.c
lib.exe /NOLOGO /OUT:.\WinDebug\subproc.lib .\WinDebug/misc.obj .\WinDebug/sub_proc.obj .\WinDebug/w32err.obj
if not exist .\WinRel\nul mkdir .\WinRel
-cl.exe /nologo /MT /W4 /GX /YX /O2 /I ../include /D WIN32 /D WINDOWS32 /D NDEBUG /D _WINDOWS /FR.\WinRel/ /Fp.\WinRel/subproc.pch /Fo.\WinRel/ /c misc.c
-cl.exe /nologo /MT /W4 /GX /YX /O2 /I ../include /I ../.. /D WIN32 /D WINDOWS32 /D NDEBUG /D _WINDOWS /FR.\WinRel/ /Fp.\WinRel/subproc.pch /Fo.\WinRel/ /c sub_proc.c
-cl.exe /nologo /MT /W4 /GX /YX /O2 /I ../include /D WIN32 /D WINDOWS32 /D NDEBUG /D _WINDOWS /FR.\WinRel/ /Fp.\WinRel/subproc.pch /Fo.\WinRel/ /c w32err.c
+cl.exe /nologo /MT /W4 /GX /YX /O2 /I .. /I . /I ../include /I ../.. /D WIN32 /D WINDOWS32 /D NDEBUG /D _WINDOWS /FR.\WinRel/ /Fp.\WinRel/subproc.pch /Fo.\WinRel/ /c misc.c
+cl.exe /nologo /MT /W4 /GX /YX /O2 /I .. /I . /I ../include /I ../.. /D WIN32 /D WINDOWS32 /D NDEBUG /D _WINDOWS /FR.\WinRel/ /Fp.\WinRel/subproc.pch /Fo.\WinRel/ /c sub_proc.c
+cl.exe /nologo /MT /W4 /GX /YX /O2 /I .. /I . /I ../include /I ../.. /D WIN32 /D WINDOWS32 /D NDEBUG /D _WINDOWS /FR.\WinRel/ /Fp.\WinRel/subproc.pch /Fo.\WinRel/ /c w32err.c
lib.exe /NOLOGO /OUT:.\WinRel\subproc.lib .\WinRel/misc.obj .\WinRel/sub_proc.obj .\WinRel/w32err.obj
GoTo BuildEnd
:GCCBuild
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I.. -I. -I../include -I../.. -DWINDOWS32 -c misc.c -o ../../w32_misc.o
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I.. -I. -I../include -I../.. -DWINDOWS32 -c sub_proc.c -o ../../sub_proc.o
-gcc -mthreads -Wall -gdwarf-2 -g3 -O2 -I.. -I. -I../include -I../.. -DWINDOWS32 -c w32err.c -o ../../w32err.o
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I.. -I. -I../include -I../.. -DWINDOWS32 -c misc.c -o ../../w32_misc.o
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I.. -I. -I../include -I../.. -DWINDOWS32 -c sub_proc.c -o ../../sub_proc.o
+gcc -mthreads -Wall -gdwarf-2 -g3 %OPT% -I.. -I. -I../include -I../.. -DWINDOWS32 -c w32err.c -o ../../w32err.o
:BuildEnd
@echo off
-rem Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-rem 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+rem Copyright (C) 1996-2013 Free Software Foundation, Inc.
rem This file is part of GNU Make.
rem
rem GNU Make is free software; you can redistribute it and/or modify it under
diff --git a/w32/subproc/misc.c b/w32/subproc/misc.c
index 6759c17..1e3f3a1 100644
--- a/w32/subproc/misc.c
+++ b/w32/subproc/misc.c
@@ -1,6 +1,5 @@
/* Process handling for Windows
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/w32/subproc/proc.h b/w32/subproc/proc.h
index 00b4bac..259a119 100644
--- a/w32/subproc/proc.h
+++ b/w32/subproc/proc.h
@@ -1,6 +1,5 @@
/* Definitions for Windows
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
diff --git a/w32/subproc/sub_proc.c b/w32/subproc/sub_proc.c
index dcb77bf..f790ca3 100644
--- a/w32/subproc/sub_proc.c
+++ b/w32/subproc/sub_proc.c
@@ -1,6 +1,5 @@
/* Process handling for Windows.
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -18,22 +17,24 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
#include <stdlib.h>
#include <stdio.h>
+#include <io.h> /* for _get_osfhandle */
#ifdef _MSC_VER
# include <stddef.h> /* for intptr_t */
#else
# include <stdint.h>
#endif
+#include <string.h>
#include <process.h> /* for msvc _beginthreadex, _endthreadex */
#include <signal.h>
#include <windows.h>
+#include "makeint.h"
#include "sub_proc.h"
#include "proc.h"
#include "w32err.h"
#include "debug.h"
static char *make_command_line(char *shell_name, char *exec_path, char **argv);
-extern char *xmalloc (unsigned int);
typedef struct sub_process_t {
intptr_t sv_stdin[2];
@@ -58,6 +59,126 @@ static sub_process *proc_array[MAXIMUM_WAIT_OBJECTS];
static int proc_index = 0;
static int fake_exits_pending = 0;
+/* Windows jobserver implementation variables */
+static char jobserver_semaphore_name[MAX_PATH + 1];
+static HANDLE jobserver_semaphore = NULL;
+
+/* Open existing jobserver semaphore */
+int open_jobserver_semaphore(const char* name)
+{
+ jobserver_semaphore = OpenSemaphore(
+ SEMAPHORE_ALL_ACCESS, // Semaphore access setting
+ FALSE, // Child processes DON'T inherit
+ name); // Semaphore name
+
+ if (jobserver_semaphore == NULL)
+ return 0;
+
+ return 1;
+}
+
+/* Create new jobserver semaphore */
+int create_jobserver_semaphore(int tokens)
+{
+ sprintf(jobserver_semaphore_name, "gmake_semaphore_%d", _getpid());
+
+ jobserver_semaphore = CreateSemaphore(
+ NULL, // Use default security descriptor
+ tokens, // Initial count
+ tokens, // Maximum count
+ jobserver_semaphore_name); // Semaphore name
+
+ if (jobserver_semaphore == NULL)
+ return 0;
+
+ return 1;
+}
+
+/* Close jobserver semaphore */
+void free_jobserver_semaphore()
+{
+ if (jobserver_semaphore != NULL)
+ {
+ CloseHandle(jobserver_semaphore);
+ jobserver_semaphore = NULL;
+ }
+}
+
+/* Decrement semaphore count */
+int acquire_jobserver_semaphore()
+{
+ DWORD dwEvent = WaitForSingleObject(
+ jobserver_semaphore, // Handle to semaphore
+ 0); // DON'T wait on semaphore
+
+ return (dwEvent == WAIT_OBJECT_0);
+}
+
+/* Increment semaphore count */
+int release_jobserver_semaphore()
+{
+ BOOL bResult = ReleaseSemaphore(
+ jobserver_semaphore, // handle to semaphore
+ 1, // increase count by one
+ NULL); // not interested in previous count
+
+ return (bResult);
+}
+
+int has_jobserver_semaphore()
+{
+ return (jobserver_semaphore != NULL);
+}
+
+char* get_jobserver_semaphore_name()
+{
+ return (jobserver_semaphore_name);
+}
+
+/* Wait for either the jobserver semaphore to become signalled or one of our
+ * child processes to terminate.
+ */
+int wait_for_semaphore_or_child_process()
+{
+ HANDLE handles[MAXIMUM_WAIT_OBJECTS];
+ DWORD dwHandleCount = 1;
+ DWORD dwEvent;
+ int i;
+
+ /* Add jobserver semaphore to first slot. */
+ handles[0] = jobserver_semaphore;
+
+ /* Build array of handles to wait for */
+ for (i = 0; i < proc_index; i++)
+ {
+ /* Don't wait on child processes that have already finished */
+ if (fake_exits_pending && proc_array[i]->exit_code)
+ continue;
+
+ handles[dwHandleCount++] = (HANDLE) proc_array[i]->pid;
+ }
+
+ dwEvent = WaitForMultipleObjects(
+ dwHandleCount, // number of objects in array
+ handles, // array of objects
+ FALSE, // wait for any object
+ INFINITE); // wait until object is signalled
+
+ switch(dwEvent)
+ {
+ case WAIT_FAILED:
+ return -1;
+
+ case WAIT_OBJECT_0:
+ /* Indicate that the semaphore was signalled */
+ return 1;
+
+ default:
+ /* Assume that one or more of the child processes terminated. */
+ return 0;
+ }
+}
+
/*
* When a process has been waited for, adjust the wait state
* array so that we don't wait for it again
@@ -87,7 +208,7 @@ process_adjust_wait_state(sub_process* pproc)
* Waits for any of the registered child processes to finish.
*/
static sub_process *
-process_wait_for_any_private(void)
+process_wait_for_any_private(int block, DWORD* pdwWaitStatus)
{
HANDLE handles[MAXIMUM_WAIT_OBJECTS];
DWORD retval, which;
@@ -106,7 +227,7 @@ process_wait_for_any_private(void)
/* wait for someone to exit */
if (!fake_exits_pending) {
- retval = WaitForMultipleObjects(proc_index, handles, FALSE, INFINITE);
+ retval = WaitForMultipleObjects(proc_index, handles, FALSE, (block ? INFINITE : 0));
which = retval - WAIT_OBJECT_0;
} else {
fake_exits_pending--;
@@ -114,13 +235,19 @@ process_wait_for_any_private(void)
which = i;
}
+ /* If the pointer is not NULL, set the wait status result variable. */
+ if (pdwWaitStatus)
+ *pdwWaitStatus = retval;
+
/* return pointer to process */
- if (retval != WAIT_FAILED) {
+ if ((retval == WAIT_TIMEOUT) || (retval == WAIT_FAILED)) {
+ return NULL;
+ }
+ else {
sub_process* pproc = proc_array[which];
process_adjust_wait_state(pproc);
return pproc;
- } else
- return NULL;
+ }
}
/*
@@ -179,9 +306,9 @@ process_used_slots(void)
*/
HANDLE
-process_wait_for_any(void)
+process_wait_for_any(int block, DWORD* pdwWaitStatus)
{
- sub_process* pproc = process_wait_for_any_private();
+ sub_process* pproc = process_wait_for_any_private(block, pdwWaitStatus);
if (!pproc)
return NULL;
@@ -216,6 +343,15 @@ process_exit_code(HANDLE proc)
return (((sub_process *)proc)->exit_code);
}
+void
+process_noinherit(int fd)
+{
+ HANDLE fh = (HANDLE)_get_osfhandle(fd);
+
+ if (fh && fh != INVALID_HANDLE_VALUE)
+ SetHandleInformation(fh, HANDLE_FLAG_INHERIT, 0);
+}
+
/*
2006-02:
All the following functions are currently unused.
@@ -336,17 +472,19 @@ process_init_fd(HANDLE stdinh, HANDLE stdouth, HANDLE stderrh)
sub_process *pproc;
pproc = malloc(sizeof(*pproc));
- memset(pproc, 0, sizeof(*pproc));
+ if (pproc) {
+ memset(pproc, 0, sizeof(*pproc));
- /*
- * Just pass the provided file handles to the 'child side' of the
- * pipe, bypassing pipes altogether.
- */
- pproc->sv_stdin[1] = (intptr_t) stdinh;
- pproc->sv_stdout[1] = (intptr_t) stdouth;
- pproc->sv_stderr[1] = (intptr_t) stderrh;
+ /*
+ * Just pass the provided file handles to the 'child
+ * side' of the pipe, bypassing pipes altogether.
+ */
+ pproc->sv_stdin[1] = (intptr_t) stdinh;
+ pproc->sv_stdout[1] = (intptr_t) stdouth;
+ pproc->sv_stderr[1] = (intptr_t) stderrh;
- pproc->last_err = pproc->lerrno = 0;
+ pproc->last_err = pproc->lerrno = 0;
+ }
return((HANDLE)pproc);
}
@@ -403,6 +541,26 @@ find_file(const char *exec_path, const char *path_var,
return INVALID_HANDLE_VALUE;
}
+/*
+ * Return non-zero of FNAME specifies a batch file and its name
+ * includes embedded whitespace.
+ */
+
+static int
+batch_file_with_spaces(const char *fname)
+{
+ size_t fnlen = strlen(fname);
+
+ return (fnlen > 4
+ && (_strnicmp(fname + fnlen - 4, ".bat", 4) == 0
+ || _strnicmp(fname + fnlen - 4, ".cmd", 4) == 0)
+ /* The set of characters in the 2nd arg to strpbrk
+ should be the same one used by make_command_line
+ below to decide whether an argv[] element needs
+ quoting. */
+ && strpbrk(fname, " \t") != NULL);
+}
+
/*
* Description: Create the child process to be helped
@@ -433,6 +591,7 @@ process_begin(
STARTUPINFO startInfo;
PROCESS_INFORMATION procInfo;
char *envblk=NULL;
+ int pass_null_exec_path = 0;
/*
* Shell script detection... if the exec_path starts with #! then
@@ -514,8 +673,28 @@ process_begin(
if (file_not_found)
command_line = make_command_line( shell_name, exec_path, argv);
- else
+ else {
+ /* If exec_fname includes whitespace, CreateProcess
+ behaves erratically and unreliably, and often fails
+ if argv[0] also includes whitespace (and thus will
+ be quoted by make_command_line below). So in that
+ case, we don't pass exec_fname as the 1st arg to
+ CreateProcess, but instead replace argv[0] with
+ exec_fname (to keep its leading directories and
+ extension as found by find_file), and pass NULL to
+ CreateProcess as its 1st arg. This works around
+ the bugs in CreateProcess, which are probably
+ caused by its passing the command to cmd.exe with
+ some incorrect quoting. */
+ if (!shell_name
+ && batch_file_with_spaces(exec_fname)
+ && _stricmp(exec_path, argv[0]) == 0) {
+ pass_null_exec_path = 1;
+ free (argv[0]);
+ argv[0] = xstrdup(exec_fname);
+ }
command_line = make_command_line( shell_name, exec_fname, argv);
+ }
if ( command_line == NULL ) {
pproc->last_err = 0;
@@ -532,7 +711,7 @@ process_begin(
}
}
- if ((shell_name) || (file_not_found)) {
+ if (shell_name || file_not_found || pass_null_exec_path) {
exec_path = 0; /* Search for the program in %Path% */
} else {
exec_path = exec_fname;
@@ -585,9 +764,12 @@ process_begin(
CloseHandle(procInfo.hThread);
/* Close the halves of the pipes we don't need */
- CloseHandle((HANDLE)pproc->sv_stdin[1]);
- CloseHandle((HANDLE)pproc->sv_stdout[1]);
- CloseHandle((HANDLE)pproc->sv_stderr[1]);
+ if ((HANDLE)pproc->sv_stdin[1] != INVALID_HANDLE_VALUE)
+ CloseHandle((HANDLE)pproc->sv_stdin[1]);
+ if ((HANDLE)pproc->sv_stdout[1] != INVALID_HANDLE_VALUE)
+ CloseHandle((HANDLE)pproc->sv_stdout[1]);
+ if ((HANDLE)pproc->sv_stderr[1] != INVALID_HANDLE_VALUE)
+ CloseHandle((HANDLE)pproc->sv_stderr[1]);
pproc->sv_stdin[1] = 0;
pproc->sv_stdout[1] = 0;
pproc->sv_stderr[1] = 0;
@@ -600,6 +782,7 @@ process_begin(
+#if 0 /* unused */
static DWORD
proc_stdin_thread(sub_process *pproc)
{
@@ -844,6 +1027,7 @@ process_pipe_io(
return(0);
}
+#endif /* unused */
/*
* Purpose: collects output from child process and returns results
@@ -865,7 +1049,7 @@ process_file_io(
DWORD ierr;
if (proc == NULL)
- pproc = process_wait_for_any_private();
+ pproc = process_wait_for_any_private(1, 0);
else
pproc = (sub_process *)proc;
@@ -927,7 +1111,7 @@ done2:
/*
* Description: Clean up any leftover handles, etc. It is up to the
- * caller to manage and free the input, ouput, and stderr buffers.
+ * caller to manage and free the input, output, and stderr buffers.
*/
void
process_cleanup(
@@ -938,11 +1122,14 @@ process_cleanup(
if (pproc->using_pipes) {
for (i= 0; i <= 1; i++) {
- if ((HANDLE)pproc->sv_stdin[i])
+ if ((HANDLE)pproc->sv_stdin[i]
+ && (HANDLE)pproc->sv_stdin[i] != INVALID_HANDLE_VALUE)
CloseHandle((HANDLE)pproc->sv_stdin[i]);
- if ((HANDLE)pproc->sv_stdout[i])
+ if ((HANDLE)pproc->sv_stdout[i]
+ && (HANDLE)pproc->sv_stdout[i] != INVALID_HANDLE_VALUE)
CloseHandle((HANDLE)pproc->sv_stdout[i]);
- if ((HANDLE)pproc->sv_stderr[i])
+ if ((HANDLE)pproc->sv_stderr[i]
+ && (HANDLE)pproc->sv_stderr[i] != INVALID_HANDLE_VALUE)
CloseHandle((HANDLE)pproc->sv_stderr[i]);
}
}
@@ -1205,52 +1392,110 @@ make_command_line( char *shell_name, char *full_exec_path, char **argv)
HANDLE
process_easy(
char **argv,
- char **envp)
+ char **envp,
+ int outfd,
+ int errfd)
{
- HANDLE hIn;
- HANDLE hOut;
- HANDLE hErr;
- HANDLE hProcess;
+ HANDLE hIn = INVALID_HANDLE_VALUE;
+ HANDLE hOut = INVALID_HANDLE_VALUE;
+ HANDLE hErr = INVALID_HANDLE_VALUE;
+ HANDLE hProcess, tmpIn, tmpOut, tmpErr;
+ DWORD e;
if (proc_index >= MAXIMUM_WAIT_OBJECTS) {
DB (DB_JOBS, ("process_easy: All process slots used up\n"));
return INVALID_HANDLE_VALUE;
}
+ /* Standard handles returned by GetStdHandle can be NULL or
+ INVALID_HANDLE_VALUE if the parent process closed them. If that
+ happens, we open the null device and pass its handle to
+ CreateProcess as the corresponding handle to inherit. */
+ tmpIn = GetStdHandle(STD_INPUT_HANDLE);
if (DuplicateHandle(GetCurrentProcess(),
- GetStdHandle(STD_INPUT_HANDLE),
- GetCurrentProcess(),
- &hIn,
- 0,
- TRUE,
- DUPLICATE_SAME_ACCESS) == FALSE) {
- fprintf(stderr,
- "process_easy: DuplicateHandle(In) failed (e=%ld)\n",
- GetLastError());
- return INVALID_HANDLE_VALUE;
+ tmpIn,
+ GetCurrentProcess(),
+ &hIn,
+ 0,
+ TRUE,
+ DUPLICATE_SAME_ACCESS) == FALSE) {
+ if ((e = GetLastError()) == ERROR_INVALID_HANDLE) {
+ tmpIn = CreateFile("NUL", GENERIC_READ,
+ FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
+ OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+ if (tmpIn != INVALID_HANDLE_VALUE
+ && DuplicateHandle(GetCurrentProcess(),
+ tmpIn,
+ GetCurrentProcess(),
+ &hIn,
+ 0,
+ TRUE,
+ DUPLICATE_SAME_ACCESS) == FALSE)
+ CloseHandle(tmpIn);
+ }
+ if (hIn == INVALID_HANDLE_VALUE) {
+ fprintf(stderr, "process_easy: DuplicateHandle(In) failed (e=%ld)\n", e);
+ return INVALID_HANDLE_VALUE;
+ }
}
+ if (outfd >= 0)
+ tmpOut = (HANDLE)_get_osfhandle (outfd);
+ else
+ tmpOut = GetStdHandle (STD_OUTPUT_HANDLE);
if (DuplicateHandle(GetCurrentProcess(),
- GetStdHandle(STD_OUTPUT_HANDLE),
- GetCurrentProcess(),
- &hOut,
- 0,
- TRUE,
- DUPLICATE_SAME_ACCESS) == FALSE) {
- fprintf(stderr,
- "process_easy: DuplicateHandle(Out) failed (e=%ld)\n",
- GetLastError());
- return INVALID_HANDLE_VALUE;
+ tmpOut,
+ GetCurrentProcess(),
+ &hOut,
+ 0,
+ TRUE,
+ DUPLICATE_SAME_ACCESS) == FALSE) {
+ if ((e = GetLastError()) == ERROR_INVALID_HANDLE) {
+ tmpOut = CreateFile("NUL", GENERIC_WRITE,
+ FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
+ OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+ if (tmpOut != INVALID_HANDLE_VALUE
+ && DuplicateHandle(GetCurrentProcess(),
+ tmpOut,
+ GetCurrentProcess(),
+ &hOut,
+ 0,
+ TRUE,
+ DUPLICATE_SAME_ACCESS) == FALSE)
+ CloseHandle(tmpOut);
+ }
+ if (hOut == INVALID_HANDLE_VALUE) {
+ fprintf(stderr, "process_easy: DuplicateHandle(Out) failed (e=%ld)\n", e);
+ return INVALID_HANDLE_VALUE;
+ }
}
+ if (errfd >= 0)
+ tmpErr = (HANDLE)_get_osfhandle (errfd);
+ else
+ tmpErr = GetStdHandle(STD_ERROR_HANDLE);
if (DuplicateHandle(GetCurrentProcess(),
- GetStdHandle(STD_ERROR_HANDLE),
- GetCurrentProcess(),
- &hErr,
- 0,
- TRUE,
- DUPLICATE_SAME_ACCESS) == FALSE) {
- fprintf(stderr,
- "process_easy: DuplicateHandle(Err) failed (e=%ld)\n",
- GetLastError());
- return INVALID_HANDLE_VALUE;
+ tmpErr,
+ GetCurrentProcess(),
+ &hErr,
+ 0,
+ TRUE,
+ DUPLICATE_SAME_ACCESS) == FALSE) {
+ if ((e = GetLastError()) == ERROR_INVALID_HANDLE) {
+ tmpErr = CreateFile("NUL", GENERIC_WRITE,
+ FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
+ OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+ if (tmpErr != INVALID_HANDLE_VALUE
+ && DuplicateHandle(GetCurrentProcess(),
+ tmpErr,
+ GetCurrentProcess(),
+ &hErr,
+ 0,
+ TRUE,
+ DUPLICATE_SAME_ACCESS) == FALSE)
+ CloseHandle(tmpErr);
+ }
+ if (hErr == INVALID_HANDLE_VALUE) {
+ fprintf(stderr, "process_easy: DuplicateHandle(Err) failed (e=%ld)\n", e);
+ return INVALID_HANDLE_VALUE;
+ }
}
hProcess = process_init_fd(hIn, hOut, hErr);
@@ -1263,9 +1508,12 @@ process_easy(
((sub_process*) hProcess)->exit_code = process_last_err(hProcess);
/* close up unused handles */
- CloseHandle(hIn);
- CloseHandle(hOut);
- CloseHandle(hErr);
+ if (hIn != INVALID_HANDLE_VALUE)
+ CloseHandle(hIn);
+ if (hOut != INVALID_HANDLE_VALUE)
+ CloseHandle(hOut);
+ if (hErr != INVALID_HANDLE_VALUE)
+ CloseHandle(hErr);
}
process_register(hProcess);
diff --git a/w32/subproc/w32err.c b/w32/subproc/w32err.c
index 80d796e..facfabc 100644
--- a/w32/subproc/w32err.c
+++ b/w32/subproc/w32err.c
@@ -1,6 +1,5 @@
/* Error handling for Windows
-Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1996-2013 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -15,7 +14,9 @@ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>. */
+#include <stdlib.h>
#include <windows.h>
+#include "makeint.h"
#include "w32err.h"
/*
@@ -26,14 +27,24 @@ this program. If not, see <http://www.gnu.org/licenses/>. */
* Notes/Dependencies: I got this from
* comp.os.ms-windows.programmer.win32
*/
-char *
+const char *
map_windows32_error_to_string (DWORD ercode) {
-/* __declspec (thread) necessary if you will use multiple threads on MSVC */
-#ifdef _MSC_VER
-__declspec (thread) static char szMessageBuffer[128];
-#else
-static char szMessageBuffer[128];
-#endif
+/*
+ * We used to have an MSVC-specific '__declspec (thread)' qualifier
+ * here, with the following comment:
+ *
+ * __declspec (thread) necessary if you will use multiple threads on MSVC
+ *
+ * However, Make was never multithreaded on Windows (except when
+ * Ctrl-C is hit, in which case the main thread is stopped
+ * immediately, so it doesn't matter in this context). The functions
+ * on sub_proc.c that started and stopped additional threads were
+ * never used, and are now #ifdef'ed away. Until we need more than
+ * one thread, we have no problems with the following buffer being
+ * static. (If and when we do need it to be in thread-local storage,
+ * the corresponding GCC qualifier is '__thread'.)
+ */
+ static char szMessageBuffer[128];
/* Fill message buffer with a default message in
* case FormatMessage fails
*/
@@ -43,6 +54,7 @@ static char szMessageBuffer[128];
* Special code for winsock error handling.
*/
if (ercode > WSABASEERR) {
+#if 0
HMODULE hModule = GetModuleHandle("wsock32");
if (hModule != NULL) {
FormatMessage(FORMAT_MESSAGE_FROM_HMODULE,
@@ -54,6 +66,9 @@ static char szMessageBuffer[128];
NULL);
FreeLibrary(hModule);
}
+#else
+ fatal(NILF, szMessageBuffer);
+#endif
} else {
/*
* Default system message handling