aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBertrand Jacquin <bertrand@jacquin.bzh>2024-03-29 19:53:25 +0000
committerBertrand Jacquin <bertrand@jacquin.bzh>2024-04-01 03:22:50 +0000
commit3455cfeca5032698ea16b9971ef30bbb0fbfd0a4 (patch)
treedfb34ae0112ddd2c5020679cadf73c1129352d5c
parentCVE-2024-3094: remove .gitignore (diff)
downloadxz-jiatan/v5.6.1/unpack.tar.xz
CVE-2024-3094: import xz-5.6.1.tar.xzjiatan/v5.6.1/unpack
-rw-r--r--.codespellrc24
-rw-r--r--.github/SECURITY.md29
-rw-r--r--.github/workflows/ci.yml160
-rw-r--r--.github/workflows/windows-ci.yml124
-rw-r--r--ABOUT-NLS1
-rw-r--r--ChangeLog10071
-rw-r--r--Makefile.in1096
-rw-r--r--aclocal.m41196
-rwxr-xr-xbuild-aux/ci_build.sh287
-rwxr-xr-xbuild-aux/compile348
-rwxr-xr-xbuild-aux/config.guess1754
-rwxr-xr-xbuild-aux/config.rpath684
-rwxr-xr-xbuild-aux/config.sub1890
-rwxr-xr-xbuild-aux/depcomp791
-rwxr-xr-xbuild-aux/install-sh541
-rw-r--r--build-aux/ltmain.sh11437
-rwxr-xr-xbuild-aux/missing215
-rwxr-xr-xbuild-aux/test-driver153
-rw-r--r--config.h.in637
-rwxr-xr-xconfigure25752
-rw-r--r--debug/Makefile.in736
-rw-r--r--doc/api/COPYING.CC-BY-SA-4.0427
-rw-r--r--doc/api/annotated.html74
-rw-r--r--doc/api/base_8h.html586
-rw-r--r--doc/api/bc_s.pngbin0 -> 675 bytes
-rw-r--r--doc/api/bc_sd.pngbin0 -> 604 bytes
-rw-r--r--doc/api/bcj_8h.html115
-rw-r--r--doc/api/block_8h.html764
-rw-r--r--doc/api/check_8h.html346
-rw-r--r--doc/api/classes.html66
-rw-r--r--doc/api/closed.pngbin0 -> 132 bytes
-rw-r--r--doc/api/container_8h.html1317
-rw-r--r--doc/api/delta_8h.html138
-rw-r--r--doc/api/dir_b17a1d403082bd69a703ed987cf158fb.html110
-rw-r--r--doc/api/doc.svg12
-rw-r--r--doc/api/docd.svg12
-rw-r--r--doc/api/doxygen.css2017
-rw-r--r--doc/api/doxygen.svg28
-rw-r--r--doc/api/files.html80
-rw-r--r--doc/api/filter_8h.html1348
-rw-r--r--doc/api/folderclosed.svg11
-rw-r--r--doc/api/folderclosedd.svg11
-rw-r--r--doc/api/folderopen.svg17
-rw-r--r--doc/api/folderopend.svg12
-rw-r--r--doc/api/functions.html216
-rw-r--r--doc/api/functions_vars.html216
-rw-r--r--doc/api/globals.html284
-rw-r--r--doc/api/globals_defs.html130
-rw-r--r--doc/api/globals_enum.html77
-rw-r--r--doc/api/globals_eval.html109
-rw-r--r--doc/api/globals_func.html184
-rw-r--r--doc/api/globals_type.html74
-rw-r--r--doc/api/hardware_8h.html129
-rw-r--r--doc/api/index.html60
-rw-r--r--doc/api/index_8h.html1311
-rw-r--r--doc/api/index__hash_8h.html317
-rw-r--r--doc/api/lzma12_8h.html442
-rw-r--r--doc/api/lzma_8h.html115
-rw-r--r--doc/api/nav_f.pngbin0 -> 167 bytes
-rw-r--r--doc/api/nav_fd.pngbin0 -> 144 bytes
-rw-r--r--doc/api/nav_g.pngbin0 -> 95 bytes
-rw-r--r--doc/api/nav_h.pngbin0 -> 97 bytes
-rw-r--r--doc/api/nav_hd.pngbin0 -> 104 bytes
-rw-r--r--doc/api/open.pngbin0 -> 121 bytes
-rw-r--r--doc/api/splitbar.pngbin0 -> 309 bytes
-rw-r--r--doc/api/splitbard.pngbin0 -> 278 bytes
-rw-r--r--doc/api/stream__flags_8h.html354
-rw-r--r--doc/api/structlzma__allocator.html159
-rw-r--r--doc/api/structlzma__block.html353
-rw-r--r--doc/api/structlzma__filter.html120
-rw-r--r--doc/api/structlzma__index__iter.html413
-rw-r--r--doc/api/structlzma__mt.html262
-rw-r--r--doc/api/structlzma__options__bcj.html101
-rw-r--r--doc/api/structlzma__options__delta.html119
-rw-r--r--doc/api/structlzma__options__lzma.html369
-rw-r--r--doc/api/structlzma__stream.html257
-rw-r--r--doc/api/structlzma__stream__flags.html140
-rw-r--r--doc/api/sync_off.pngbin0 -> 857 bytes
-rw-r--r--doc/api/sync_on.pngbin0 -> 851 bytes
-rw-r--r--doc/api/tab_a.pngbin0 -> 135 bytes
-rw-r--r--doc/api/tab_ad.pngbin0 -> 133 bytes
-rw-r--r--doc/api/tab_b.pngbin0 -> 178 bytes
-rw-r--r--doc/api/tab_bd.pngbin0 -> 157 bytes
-rw-r--r--doc/api/tab_h.pngbin0 -> 179 bytes
-rw-r--r--doc/api/tab_hd.pngbin0 -> 168 bytes
-rw-r--r--doc/api/tab_s.pngbin0 -> 208 bytes
-rw-r--r--doc/api/tab_sd.pngbin0 -> 171 bytes
-rw-r--r--doc/api/tabs.css62
-rw-r--r--doc/api/version_8h.html245
-rw-r--r--doc/api/vli_8h.html329
-rw-r--r--doc/api/xz-logo.pngbin0 -> 6771 bytes
-rw-r--r--doc/man/pdf-a4/lzmainfo-a4.pdfbin0 -> 16384 bytes
-rw-r--r--doc/man/pdf-a4/xz-a4.pdfbin0 -> 119630 bytes
-rw-r--r--doc/man/pdf-a4/xzdec-a4.pdfbin0 -> 19927 bytes
-rw-r--r--doc/man/pdf-a4/xzdiff-a4.pdfbin0 -> 17124 bytes
-rw-r--r--doc/man/pdf-a4/xzgrep-a4.pdfbin0 -> 20371 bytes
-rw-r--r--doc/man/pdf-a4/xzless-a4.pdfbin0 -> 14933 bytes
-rw-r--r--doc/man/pdf-a4/xzmore-a4.pdfbin0 -> 14809 bytes
-rw-r--r--doc/man/pdf-letter/lzmainfo-letter.pdfbin0 -> 16394 bytes
-rw-r--r--doc/man/pdf-letter/xz-letter.pdfbin0 -> 121063 bytes
-rw-r--r--doc/man/pdf-letter/xzdec-letter.pdfbin0 -> 19919 bytes
-rw-r--r--doc/man/pdf-letter/xzdiff-letter.pdfbin0 -> 17102 bytes
-rw-r--r--doc/man/pdf-letter/xzgrep-letter.pdfbin0 -> 20311 bytes
-rw-r--r--doc/man/pdf-letter/xzless-letter.pdfbin0 -> 14951 bytes
-rw-r--r--doc/man/pdf-letter/xzmore-letter.pdfbin0 -> 14814 bytes
-rw-r--r--doc/man/txt/lzmainfo.txt40
-rw-r--r--doc/man/txt/xz.txt1683
-rw-r--r--doc/man/txt/xzdec.txt80
-rw-r--r--doc/man/txt/xzdiff.txt42
-rw-r--r--doc/man/txt/xzgrep.txt73
-rw-r--r--doc/man/txt/xzless.txt40
-rw-r--r--doc/man/txt/xzmore.txt35
-rw-r--r--lib/Makefile.in611
-rw-r--r--m4/build-to-host.m4106
-rw-r--r--m4/gettext.m4405
-rw-r--r--m4/host-cpu-c-abi.m4679
-rw-r--r--m4/iconv.m4293
-rw-r--r--m4/intlmacosx.m469
-rw-r--r--m4/lib-ld.m4168
-rw-r--r--m4/lib-link.m4813
-rw-r--r--m4/lib-prefix.m4323
-rw-r--r--m4/libtool.m48399
-rw-r--r--m4/ltoptions.m4437
-rw-r--r--m4/ltsugar.m4124
-rw-r--r--m4/ltversion.m424
-rw-r--r--m4/lt~obsolete.m499
-rw-r--r--m4/nls.m432
-rw-r--r--m4/po.m4454
-rw-r--r--m4/progtest.m491
-rw-r--r--po/Makefile.in.in514
-rw-r--r--po/Rules-quot62
-rw-r--r--po/boldquot.sed10
-rw-r--r--po/ca.gmobin0 -> 22289 bytes
-rw-r--r--po/ca.po557
-rw-r--r--po/cs.gmobin0 -> 15436 bytes
-rw-r--r--po/cs.po813
-rw-r--r--po/da.gmobin0 -> 11042 bytes
-rw-r--r--po/da.po797
-rw-r--r--po/de.gmobin0 -> 32560 bytes
-rw-r--r--po/de.po193
-rw-r--r--po/en@boldquot.header25
-rw-r--r--po/en@quot.header22
-rw-r--r--po/eo.gmobin0 -> 29979 bytes
-rw-r--r--po/eo.po193
-rw-r--r--po/es.gmobin0 -> 31175 bytes
-rw-r--r--po/es.po193
-rw-r--r--po/fi.gmobin0 -> 21441 bytes
-rw-r--r--po/fi.po572
-rw-r--r--po/fr.gmobin0 -> 19342 bytes
-rw-r--r--po/fr.po524
-rw-r--r--po/hr.gmobin0 -> 30343 bytes
-rw-r--r--po/hr.po193
-rw-r--r--po/hu.gmobin0 -> 31658 bytes
-rw-r--r--po/hu.po193
-rw-r--r--po/insert-header.sin28
-rw-r--r--po/it.gmobin0 -> 19130 bytes
-rw-r--r--po/it.po842
-rw-r--r--po/ko.gmobin0 -> 31480 bytes
-rw-r--r--po/ko.po193
-rw-r--r--po/pl.gmobin0 -> 30611 bytes
-rw-r--r--po/pl.po193
-rw-r--r--po/pt.gmobin0 -> 18992 bytes
-rw-r--r--po/pt.po834
-rw-r--r--po/pt_BR.gmobin0 -> 22302 bytes
-rw-r--r--po/pt_BR.po553
-rw-r--r--po/quot.sed6
-rw-r--r--po/remove-potcdate.sin25
-rw-r--r--po/ro.gmobin0 -> 32640 bytes
-rw-r--r--po/ro.po193
-rw-r--r--po/sr.gmobin0 -> 23849 bytes
-rw-r--r--po/sr.po830
-rw-r--r--po/stamp-po1
-rw-r--r--po/sv.gmobin0 -> 30379 bytes
-rw-r--r--po/sv.po193
-rw-r--r--po/tr.gmobin0 -> 22029 bytes
-rw-r--r--po/tr.po557
-rw-r--r--po/uk.gmobin0 -> 40332 bytes
-rw-r--r--po/uk.po193
-rw-r--r--po/vi.gmobin0 -> 32859 bytes
-rw-r--r--po/vi.po193
-rw-r--r--po/xz.pot1020
-rw-r--r--po/zh_CN.gmobin0 -> 22476 bytes
-rw-r--r--po/zh_CN.po421
-rw-r--r--po/zh_TW.gmobin0 -> 20613 bytes
-rw-r--r--po/zh_TW.po544
-rw-r--r--po4a/de.po.authors4
-rw-r--r--po4a/fr.po387
-rw-r--r--po4a/fr.po.authors6
-rw-r--r--po4a/ko.po.authors4
-rw-r--r--po4a/man/de/lzmainfo.146
-rw-r--r--po4a/man/de/xz.12049
-rw-r--r--po4a/man/de/xzdec.188
-rw-r--r--po4a/man/de/xzdiff.158
-rw-r--r--po4a/man/de/xzgrep.196
-rw-r--r--po4a/man/de/xzless.149
-rw-r--r--po4a/man/de/xzmore.149
-rw-r--r--po4a/man/fr/lzmainfo.147
-rw-r--r--po4a/man/fr/xz.11964
-rw-r--r--po4a/man/fr/xzdec.190
-rw-r--r--po4a/man/fr/xzless.149
-rw-r--r--po4a/man/ko/lzmainfo.138
-rw-r--r--po4a/man/ko/xz.11527
-rw-r--r--po4a/man/ko/xzdec.172
-rw-r--r--po4a/man/ko/xzdiff.151
-rw-r--r--po4a/man/ko/xzgrep.184
-rw-r--r--po4a/man/ko/xzless.141
-rw-r--r--po4a/man/ko/xzmore.142
-rw-r--r--po4a/man/pt_BR/lzmainfo.145
-rw-r--r--po4a/man/pt_BR/xz.11930
-rw-r--r--po4a/man/pt_BR/xzdec.187
-rw-r--r--po4a/man/pt_BR/xzless.148
-rw-r--r--po4a/man/ro/lzmainfo.154
-rw-r--r--po4a/man/ro/xz.12039
-rw-r--r--po4a/man/ro/xzdec.198
-rw-r--r--po4a/man/ro/xzdiff.166
-rw-r--r--po4a/man/ro/xzgrep.1103
-rw-r--r--po4a/man/ro/xzless.157
-rw-r--r--po4a/man/ro/xzmore.157
-rw-r--r--po4a/man/uk/lzmainfo.145
-rw-r--r--po4a/man/uk/xz.11971
-rw-r--r--po4a/man/uk/xzdec.185
-rw-r--r--po4a/man/uk/xzdiff.155
-rw-r--r--po4a/man/uk/xzgrep.195
-rw-r--r--po4a/man/uk/xzless.148
-rw-r--r--po4a/man/uk/xzmore.148
-rw-r--r--po4a/pt_BR.po264
-rw-r--r--po4a/pt_BR.po.authors5
-rw-r--r--po4a/ro.po3470
-rw-r--r--po4a/ro.po.authors13
-rw-r--r--po4a/uk.po.authors4
-rw-r--r--po4a/xz-man.pot4917
-rw-r--r--src/Makefile.in697
-rw-r--r--src/liblzma/Makefile.in2252
-rw-r--r--src/liblzma/api/Makefile.in631
-rw-r--r--src/lzmainfo/Makefile.in867
-rw-r--r--src/scripts/Makefile.in701
-rw-r--r--src/xz/Makefile.in1183
-rw-r--r--src/xzdec/Makefile.in970
-rw-r--r--tests/Makefile.in1381
-rwxr-xr-xtests/code_coverage.sh77
240 files changed, 125093 insertions, 5275 deletions
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 @@
+<https://www.gnu.org/software/gettext/manual/html_node/Users.html>
diff --git a/ChangeLog b/ChangeLog
index a24858d9..c696f633 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,10068 @@
-See the commit log in the git repository:
+commit fd1b975b7851e081ed6e5cf63df946cd5cbdbb94
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2024-03-09 11:42:50 +0800
- git clone https://github.com/tukaani-project/xz
+ Bump version and soname for 5.6.1.
-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 | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit a2cda572498e96163fe4e2bde096d5dd7b814668
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2024-03-09 11:27:27 +0800
+
+ Add NEWS for 5.6.1
+
+ NEWS | 26 ++++++++++++++++++++++++++
+ 1 file changed, 26 insertions(+)
+
+commit 8583c6021124e388bce044a09f00ebabfd6165a7
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2024-03-09 10:43:20 +0800
+
+ Translations: Add missing --riscv option to man page translations.
+
+ po4a/de.po | 702 +++++++++++++++++++++++++++++-----------------------------
+ po4a/fr.po | 549 ++++++++++++++++++++++-----------------------
+ po4a/ko.po | 702 +++++++++++++++++++++++++++++-----------------------------
+ po4a/pt_BR.po | 641 +++++++++++++++++++++++++++--------------------------
+ po4a/ro.po | 702 +++++++++++++++++++++++++++++-----------------------------
+ po4a/uk.po | 702 +++++++++++++++++++++++++++++-----------------------------
+ 6 files changed, 2024 insertions(+), 1974 deletions(-)
+
+commit 74b138d2a6529f2c07729d7c77b1725a8e8b16f1
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2024-03-09 10:18:29 +0800
+
+ Tests: Update two test files.
+
+ The original files were generated with random local to my machine.
+ To better reproduce these files in the future, a constant seed was used
+ to recreate these files.
+
+ tests/files/bad-3-corrupt_lzma2.xz | Bin 484 -> 512 bytes
+ tests/files/good-large_compressed.lzma | Bin 35430 -> 35421 bytes
+ 2 files changed, 0 insertions(+), 0 deletions(-)
+
+commit 3ec6dfd656bdd40ede2a5f11e6be338988e38be4
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2024-03-09 10:08:32 +0800
+
+ Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz.
+
+ The first stream in this file is valid, so this tests that xz properly
+ stops after decompressing it.
+
+ tests/test_files.sh | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+commit a67dcce6109c2f932a0a86abb0d7a95d3c31fb3e
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2024-03-09 10:05:32 +0800
+
+ Tests: Update RISC-V test files.
+
+ This increases code coverage and tests for possible shifting bugs.
+
+ tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7424 bytes
+ tests/files/good-1-riscv-lzma2-2.xz | Bin 7512 -> 7432 bytes
+ 2 files changed, 0 insertions(+), 0 deletions(-)
+
+commit 058337b0f1da9f166049ecc972fa5c499c1af08c
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2024-03-09 09:52:32 +0800
+
+ liblzma: Fix typos in crc32_fast.c and crc64_fast.c.
+
+ src/liblzma/check/crc32_fast.c | 4 ++--
+ src/liblzma/check/crc64_fast.c | 3 +--
+ 2 files changed, 3 insertions(+), 4 deletions(-)
+
+commit cd5de9c1bbab3dd41b34b37a89c193fb6ff51ca5
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2024-03-09 09:49:55 +0800
+
+ Tests: Replace HAVE_MICROLZMA usage in CMake and Autotools builds.
+
+ This reverts commit adaacafde6661496ca2814b1e94a3ba5186428cb.
+
+ CMakeLists.txt | 15 ++++++++++-----
+ configure.ac | 9 ++-------
+ tests/Makefile.am | 9 ++++++---
+ tests/test_microlzma.c | 12 ++++--------
+ 4 files changed, 22 insertions(+), 23 deletions(-)
+
+commit 651a1545c8b6150051a0b44857136efd419afc6f
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2024-03-09 09:20:57 +0800
+
+ liblzma: Fix false Valgrind error report with GCC.
+
+ With GCC and a certain combination of flags, Valgrind will falsely
+ trigger an invalid write. This appears to be due to the omission of
+ instructions to properly save, set up, and restore the frame pointer.
+
+ The IFUNC resolver is a leaf function since it only calls a function
+ that is inlined. So sometimes GCC omits the frame pointer instructions
+ in the resolver unless this optimization is explictly disabled.
+
+ This fixes https://bugzilla.redhat.com/show_bug.cgi?id=2267598.
+
+ src/liblzma/check/crc32_fast.c | 9 +++------
+ src/liblzma/check/crc64_fast.c | 7 +++----
+ src/liblzma/check/crc_common.h | 25 +++++++++++++++++++++++++
+ 3 files changed, 31 insertions(+), 10 deletions(-)
+
+commit 6e97b299f1b22e366ec42ba5dc5b9d0746e87b84
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2024-03-05 23:21:26 +0200
+
+ liblzma: Fix a typo in a comment in the RISC-V filter.
+
+ src/liblzma/simple/riscv.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 4e1c97052b5f14f4d6dda99d12cbbd01e66e3712
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2024-03-05 00:34:46 +0800
+
+ liblzma: Use attribute no_profile_instrument_function with ifunc.
+
+ Thanks to Sam James for determining this was the attribute needed to
+ workaround the GCC bug and for his version of the patch in Gentoo.
+
+ src/liblzma/check/crc32_fast.c | 5 +++++
+ src/liblzma/check/crc64_fast.c | 3 +++
+ 2 files changed, 8 insertions(+)
+
+commit ed957d39426695e948b06de0ed952a2fbbe84bd1
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2024-03-05 00:27:31 +0800
+
+ Build: Require attribute no_profile_instrument_function for ifunc usage.
+
+ Using __attribute__((__no_profile_instrument_function__)) on the ifunc
+ resolver works around a bug in GCC -fprofile-generate:
+ it adds profiling code even to ifunc resolvers which can make
+ the ifunc resolver crash at program startup. This attribute
+ was not introduced until GCC 7 and Clang 13, so ifunc won't
+ be used with prior versions of these compilers.
+
+ This bug was brought to our attention by:
+
+ https://bugs.gentoo.org/925415
+
+ And was reported to upstream GCC by:
+
+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=11411
+
+ CMakeLists.txt | 7 +++++++
+ configure.ac | 7 +++++++
+ 2 files changed, 14 insertions(+)
+
+commit e98ddaf85a1a8fb3cc863637f83356cc9db31e13
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2024-03-04 19:23:18 +0200
+
+ liblzma: Fix a comment in the RISC-V filter.
+
+ src/liblzma/simple/riscv.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 319cec142f67fe294e0486402f1569f223d9a83d
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2024-02-29 16:35:52 +0200
+
+ CMake: Warn if translated man pages are missing.
+
+ CMakeLists.txt | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+commit 46c3e113d8eeb1a731a60829fa7f5d1b519f7f26
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2024-02-29 16:35:52 +0200
+
+ CMake: Warn if gettext tools and pre-created .gmo files are missing.
+
+ It's only done with CMake >= 3.20 and if library support
+ for translation was already found.
+
+ Sort of fixes: https://github.com/tukaani-project/xz/issues/82
+
+ CMakeLists.txt | 25 +++++++++++++++++++++++++
+ 1 file changed, 25 insertions(+)
+
+commit 86bec8334bb1dcb6d9293a11cdccd895b17f364b
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2024-02-28 18:26:25 +0200
+
+ xz: Add comments.
+
+ src/xz/coder.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+commit 5c91b454c24e043ca8f2cc7d2b09bd091dafe655
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2024-02-27 23:42:41 +0800
+
+ xz: Change logging level for thread reduction to highest verbosity only.
+
+ Now that multi threaded encoding is the default, users do not need to
+ see a warning message everytime the number of threads is reduced. On
+ some machines, this could happen very often. It is not unreasonable for
+ users to need to set double verbose mode to see this kind of
+ information.
+
+ To see these warning messages -vv or --verbose --verbose must be passed
+ to set xz into the highest possible verbosity mode.
+
+ These warnings had caused automated testing frameworks to fail when they
+ expected no output to stderr.
+
+ Thanks to Sebastian Andrzej Siewior for reporting this and for the
+ initial version of the patch.
+
+ src/xz/coder.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit d0e57b2f159f8fd03a9a89f2f593a768d0487898
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2024-02-26 23:06:13 +0200
+
+ Fix sorting in THANKS.
+
+ THANKS | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit d416be55ac02af1144fed455fb18b710147bb490
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2024-02-26 23:39:29 +0800
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit f06b33edd2aeabdb11836a2bf0b681768dad29d3
+Author: Chien Wong <m@xv97.com>
+Date: 2024-02-25 21:38:13 +0800
+
+ xz: Add missing RISC-V on the filter list in the man page
+
+ Signed-off-by: Chien Wong <m@xv97.com>
+
+ src/xz/xz.1 | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit a100f9111c8cc7f5b5f0e4a5e8af3de7161c7975
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2024-02-26 23:02:06 +0800
+
+ Build: Fix Linux Landlock feature test in Autotools and CMake builds.
+
+ The previous Linux Landlock feature test assumed that having the
+ linux/landlock.h header file was enough. The new feature tests also
+ requires that prctl() and the required Landlock system calls are
+ supported.
+
+ CMakeLists.txt | 25 ++++++++++++++++++++++---
+ configure.ac | 27 ++++++++++++++++++++++++++-
+ src/xz/sandbox.c | 2 +-
+ src/xz/sandbox.h | 2 +-
+ src/xzdec/xzdec.c | 8 ++++----
+ 5 files changed, 54 insertions(+), 10 deletions(-)
+
+commit d85efdc8911e6e8964ec920af44c8a6fe0a4c3c2
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2024-02-26 20:06:10 +0800
+
+ Tests: Add test_microlzma to .gitignore and CMakeLists.txt.
+
+ .gitignore | 1 +
+ CMakeLists.txt | 1 +
+ 2 files changed, 2 insertions(+)
+
+commit 42ee4256739779005a7f921946c8a8e483d1f2ed
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2024-02-26 19:56:25 +0800
+
+ Tests: Correct license header in test_microlzma.c.
+
+ tests/test_microlzma.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+commit c83349dfd9cf9c495005b6d30e2fd34a9cafc18a
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2024-02-25 21:41:55 +0800
+
+ Fix typos in NEWS and CMakeLists.
+
+ CMakeLists.txt | 2 +-
+ NEWS | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 2d7d862e3ffa8cec4fd3fdffcd84e984a17aa429
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2024-02-24 15:55:08 +0800
+
+ Bump version and soname for 5.6.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(-)
+
+commit a18fb1edef0d0aac12a09eed05e9c448c777af7b
+Author: Jia Tan <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+Date: 2024-02-17 18:10:40 +0200
+
+ CMake: Install documentation.
+
+ CMakeLists.txt | 32 ++++++++++++++++++++++++++++++++
+ 1 file changed, 32 insertions(+)
+
+commit 7a0405bea9cb0df9318b70f779f82b2c473e98ac
+Author: Lasse Collin <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+Date: 2024-02-17 15:35:35 +0200
+
+ CMake: Build lzmainfo.
+
+ CMakeLists.txt | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 54 insertions(+)
+
+commit 998d0b29536094a89cf385a3b894e157db1ccefe
+Author: Lasse Collin <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <sebastian@breakpoint.cc>
+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 <sebastian@breakpoint.cc>
+
+ src/liblzma/rangecoder/range_decoder.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 3d198fb13b87f8803442e5799d465f7434a70555
+Author: Jia Tan <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+Date: 2024-02-15 22:26:43 +0800
+
+ Update m4/.gitignore.
+
+ m4/.gitignore | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 5394a1665b7a108a54cb8b4ef3ebe59d3dbcca3a
+Author: Lasse Collin <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 </body> </html>
+ 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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+Date: 2024-02-02 01:39:28 +0800
+
+ Update AUTHORS.
+
+ AUTHORS | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit 7f68a68c19d0ae57bd0e802be0ea8f974e41299f
+Author: Jia Tan <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <arm_acle.h> 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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <chenxi.mao2013@gmail.com>
+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 <chenxi.mao2013@gmail.com>
+
+ 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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+Date: 2024-01-22 23:33:39 +0800
+
+ liblzma: Add RISC-V BCJ filter.
+
+ The new Filter ID is 0x0B.
+
+ Thanks to Chien Wong <m@xv97.com> 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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+Date: 2023-12-20 21:16:24 +0200
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit cd64dd70d5665b6048829c45772d08606f44672e
+Author: Lasse Collin <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+Date: 2023-12-06 18:39:03 +0800
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit ee2f48350099201694a7586e41d7aa2f09fc74da
+Author: Jia Tan <jiat0218@gmail.com>
+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 <maksym.vatsyk@leviathansecurity.com>
+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 <maksym.vatsyk@leviathansecurity.com>
+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 <maksym.vatsyk@leviathansecurity.com>
+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 <maksym.vatsyk@leviathansecurity.com>
+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 <maksym.vatsyk@leviathansecurity.com>
+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 <jiat0218@gmail.com>
+Date: 2023-11-30 23:10:43 +0800
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 3b3023e00b0071e10f589bbc3674e0ec432b8add
+Author: Kian-Meng Ang <kianmeng@cpan.org>
+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 <kianmeng@cpan.org>
+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 <jiat0218@gmail.com>
+Date: 2023-11-30 20:41:00 +0800
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit fd170e8557727bed6bec0518c16415064d972e4e
+Author: Jia Tan <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <https://osdn.net/projects/mingw/>) 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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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
+ <sys/capability.h> instead of <sys/capsicum.h>. 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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <hansjansen162@outlook.com>
+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 <hansjansen162@outlook.com>
+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 <hansjansen162@outlook.com>
+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 <gabigutierrez@google.com>
+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 <gabigutierrez@google.com>
+
+ .github/workflows/windows-ci.yml | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit f28cc9bd481ce493da11f98c18526d324211599a
+Author: Gabriela Gutierrez <gabigutierrez@google.com>
+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 <gabigutierrez@google.com>
+
+ .github/workflows/ci.yml | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit f74f1740067b75042497edbfa6ea457ff75484b9
+Author: Jia Tan <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+Date: 2023-10-06 19:36:35 +0300
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit d91cb6e884c73d0b05d7e7d68ad4e6eb29f4b44b
+Author: Lasse Collin <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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.
+
+ <unistd.h> 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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+Date: 2023-09-12 20:55:10 +0300
+
+ lib/getopt*.c: Include <config.h> 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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <stdnoreturn.h>)
+ 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 <lasse.collin@tukaani.org>
+Date: 2023-09-11 17:22:44 +0300
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 79334e7f20f2bf9e0de095835b48868f1238f584
+Author: Lasse Collin <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <kiyolee@gmail.com>
+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 <kiyolee@gmail.com>
+Date: 2023-09-05 15:01:10 +0300
+
+ MSVC: xz: Use _isatty() from <io.h> to implement isatty().
+
+ src/xz/message.c | 5 +++++
+ src/xz/util.c | 5 +++++
+ 2 files changed, 10 insertions(+)
+
+commit d14bba8fc2be02a9fed8c9bcaaf61103451755f8
+Author: Kelvin Lee <kiyolee@gmail.com>
+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 <kiyolee@gmail.com>
+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 <kiyolee@gmail.com>
+Date: 2023-09-05 14:37:50 +0300
+
+ MSVC: Don't #include <unistd.h>.
+
+ 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 <lasse.collin@tukaani.org>
+Date: 2023-09-19 14:03:45 +0300
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 953e775941a25bfcfa353f802b13e66acb1edf2c
+Author: Jia Tan <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+Date: 2023-09-14 16:35:46 +0300
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 4f44ef86758a41a8ec814096f4cb6ee6de04c82e
+Author: Lasse Collin <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+Date: 2023-08-28 21:52:54 +0800
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 721e3d9f7a82f59f32795d5fb97e0210d1aa839a
+Author: Jia Tan <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lukaszcz18@wp.pl>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+Date: 2023-08-01 19:10:43 +0300
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 33e25a0f5650754c38bed640deedefe3b4fec5ef
+Author: Lasse Collin <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+Date: 2023-07-26 20:26:23 +0800
+
+ Update .gitignore.
+
+ .gitignore | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit f97a1afd564c48ad9cb94682e10972a72e11fa08
+Author: Jia Tan <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+Date: 2023-06-28 20:22:38 +0800
+
+ liblzma: Prevent warning for MSYS2 Windows build.
+
+ In lzma_memcmplen(), the <intrin.h> 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
+ <intrin.h>.
+
+ 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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+Date: 2023-06-27 23:38:32 +0800
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 3d1fdddf92321b516d55651888b9c669e254634e
+Author: Jia Tan <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <hansjansen162@outlook.com>
+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 <hansjansen162@outlook.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+Date: 2023-06-07 00:10:38 +0800
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 0d94ba69220d894d2a86081821d2d7a89df5a10b
+Author: Benjamin Buch <bebuch@users.noreply.github.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+Date: 2023-04-20 20:15:00 +0800
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit f41df2ac2fed347d3f107f3533e76e000d29c6cb
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2023-04-19 22:22:16 +0800
+
+ Windows: Include <intrin.h> when needed.
+
+ Legacy Windows did not need to #include <intrin.h> 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 <intrin.h> 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 <jiat0218@gmail.com>
+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
+ <intrin.h> 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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+Date: 2023-04-07 20:43:22 +0800
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 537c6cd8a9db0dd6b13683e64ddac2943190d715
+Author: Jia Tan <jiat0218@gmail.com>
+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 <gabigutierrez@google.com>
+Date: 2023-04-07 12:08:30 +0000
+
+ Docs: Create SECURITY.md
+
+ Signed-off-by: Gabriela Gutierrez <gabigutierrez@google.com>
+
+ .github/SECURITY.md | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+commit d0faa85df5a5d253a4625d45313cf5e9277e6cd2
+Author: Jia Tan <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+Date: 2023-03-21 13:12:03 +0200
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 5a5bd7f871818029d5ccbe189f087f591258c294
+Author: Lasse Collin <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+Date: 2023-02-23 20:46:16 +0200
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 30e95bb44c36ae26b2ab12a94343b215fec285e7
+Author: Lasse Collin <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+Date: 2023-02-17 20:56:49 +0200
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 2ee86d20e49985b903b78ebcfa3fa672e73e93aa
+Author: Lasse Collin <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <strings.h> 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 <string.h>,
+ there should be no need to include <strings.h> in sysdefs.h.
+
+ src/common/sysdefs.h | 6 ------
+ 1 file changed, 6 deletions(-)
+
+commit ec2fc39fe4f4e6e242b3a669585049763968cdeb
+Author: Lasse Collin <lasse.collin@tukaani.org>
+Date: 2023-01-10 11:23:41 +0200
+
+ xz: Include <strings.h> in suffix.c if needed for strcasecmp().
+
+ SUSv2 and POSIX.1â€2017 declare only a few functions in <strings.h>.
+ Of these, strcasecmp() is used on some platforms in suffix.c.
+ Nothing else in the project needs <strings.h> (at least if
+ building on a modern system).
+
+ sysdefs.h currently includes <strings.h> 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 <string.h> in DJGPP.
+
+ src/xz/suffix.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit 7049c4a76c805ad27d6cf4ee119a2ef2a7add59f
+Author: Lasse Collin <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+Date: 2023-01-08 00:24:23 +0200
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit dd38655f80c113c9db73b9ed370dc900e1c4dc41
+Author: Lasse Collin <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+Date: 2023-01-07 19:50:35 +0200
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 6e38e595dd56ac1800478cef1f6f754d0eba0d2e
+Author: Lasse Collin <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+Date: 2023-01-04 22:40:54 +0200
+
+ Update THANKS.
+
+ THANKS | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit aafd67fba045ab99683971263a5a26fb2a6e8ce2
+Author: Lasse Collin <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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 <jiat0218@gmail.com>
+Date: 2022-12-29 01:55:19 +0800
+
+ xz: Includes <time.h> and <sys/time.h> conditionally in mytime.c.
+
+ Previously, mytime.c depended on mythread.h for <time.h> to be included.
+
+ src/xz/mytime.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit f82294c8318a7a0990583d51ac5c7de682ad36ef
+Author: Jia Tan <jiat0218@gmail.com>
+Date: 2022-12-29 01:15:27 +0800
+
+ liblzma: Includes sys/time.h conditionally in mythread
+
+ Previously, <sys/time.h> was always included, even if mythread only used
+ clock_gettime. <time.h> 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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <jiat0218@gmail.com>
+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 <lasse.collin@tukaani.org>
+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 <lasse.collin@tukaani.org>
+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..a7699a5c
--- /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/depcomp 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:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+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: <http://austingroupbugs.net/view.php?id=542>
+
+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: <https://www.gnu.org/software/coreutils/>.
+
+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 <conftest.tar])
+ AM_RUN_LOG([cat conftest.dir/file])
+ grep GrepMe conftest.dir/file >/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 <tromey@cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, 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 <https://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" "" $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+ file=$1
+ case $file in
+ / | /[!/]*) # absolute file, and not a UNC file
+ if test -z "$file_conv"; then
+ # lazily determine how to convert abs files
+ case `uname -s` in
+ MINGW*)
+ file_conv=mingw
+ ;;
+ CYGWIN* | 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 <bug-automake@gnu.org>.
+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 <https://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that
+# program. 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 <config-patches@gnu.org>.
+
+
+# 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 <config-patches@gnu.org>."
+
+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 <features.h>
+ #if defined(__UCLIBC__)
+ LIBC=uclibc
+ #elif defined(__dietlibc__)
+ LIBC=dietlibc
+ #elif defined(__GLIBC__)
+ LIBC=gnu
+ #else
+ #include <stdarg.h>
+ /* 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 <stdio.h> /* 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 <sys/systemcfg.h>
+
+ 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 <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ 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 <unistd.h>
+ 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' </usr/options/cb.name`
+ GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/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 <Richard.M.Bartel@ccMail.Census.GOV>
+ GUESS=i586-unisys-sysv4
+ ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # 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" <<EOF
+#ifdef _SEQUENT_
+#include <sys/types.h>
+#include <sys/utsname.h>
+#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 <signal.h>
+#if defined(_SIZE_T_) || defined(SIGLOST)
+#include <sys/utsname.h>
+#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 <sys/param.h>
+ 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 <sys/param.h>
+#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 <<EOF
+
+NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
+the system type. Please install a C compiler and try again.
+EOF
+ ;;
+esac
+
+cat >&2 <<EOF
+
+This script (version $timestamp), has failed to recognize the
+operating system you are using. If your script is old, overwrite *all*
+copies of config.guess and config.sub with the latest versions from:
+
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
+and
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
+EOF
+
+our_year=`echo $timestamp | sed 's,-.*,,'`
+thisyear=`date +%Y`
+# shellcheck disable=SC2003
+script_age=`expr "$thisyear" - "$our_year"`
+if test "$script_age" -lt 3 ; then
+ cat >&2 <<EOF
+
+If $0 has already been updated, send the following data and any
+information you think might be pertinent to config-patches@gnu.org to
+provide the necessary information to handle your system.
+
+config.guess timestamp = $timestamp
+
+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`
+/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 <gord@gnu.ai.mit.edu>, 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=/' <<EOF
+
+# How to pass a linker flag through the compiler.
+wl="$escaped_wl"
+
+# Static library suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally "so").
+shlibext="$shlibext"
+
+# Format of library name prefix.
+libname_spec="$escaped_libname_spec"
+
+# Library names that the linker finds when passed -lNAME.
+library_names_spec="$escaped_library_names_spec"
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator="$hardcode_libdir_separator"
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct="$hardcode_direct"
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L="$hardcode_minus_L"
+
+EOF
diff --git a/build-aux/config.sub b/build-aux/config.sub
new file mode 100755
index 00000000..9b62e37c
--- /dev/null
+++ b/build-aux/config.sub
@@ -0,0 +1,1890 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+# Copyright 1992-2021 Free Software Foundation, Inc.
+
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2021-12-25'
+
+# 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 <https://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+
+
+# Please send patches to <config-patches@gnu.org>.
+#
+# 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 <config-patches@gnu.org>."
+
+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 <<EOF
+$1
+EOF
+IFS=$saved_IFS
+
+# Separate into logical components for further validation
+case $1 in
+ *-*-*-*-*)
+ echo Invalid configuration \`"$1"\': more than four components >&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 <<EOF
+$basic_machine
+EOF
+ IFS=$saved_IFS
+ ;;
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ cpu=$basic_machine
+ vendor=pc
+ ;;
+ # These rules are duplicated from below for sake of the special case above;
+ # i.e. things that normalized to x86 arches should also default to "pc"
+ pc98)
+ cpu=i386
+ vendor=pc
+ ;;
+ x64 | amd64)
+ cpu=x86_64
+ vendor=pc
+ ;;
+ # Recognize the basic CPU types without company name.
+ *)
+ cpu=$basic_machine
+ vendor=unknown
+ ;;
+esac
+
+unset -v basic_machine
+
+# Decode basic machines in the full and proper CPU-Company form.
+case $cpu-$vendor in
+ # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ craynv-unknown)
+ vendor=cray
+ basic_os=${basic_os:-unicosmp}
+ ;;
+ c90-unknown | c90-cray)
+ vendor=cray
+ basic_os=${Basic_os:-unicos}
+ ;;
+ fx80-unknown)
+ vendor=alliant
+ ;;
+ romp-unknown)
+ vendor=ibm
+ ;;
+ mmix-unknown)
+ vendor=knuth
+ ;;
+ microblaze-unknown | microblazeel-unknown)
+ vendor=xilinx
+ ;;
+ rs6000-unknown)
+ vendor=ibm
+ ;;
+ vax-unknown)
+ vendor=dec
+ ;;
+ pdp11-unknown)
+ vendor=dec
+ ;;
+ we32k-unknown)
+ vendor=att
+ ;;
+ cydra-unknown)
+ vendor=cydrome
+ ;;
+ i370-ibm*)
+ vendor=ibm
+ ;;
+ orion-unknown)
+ vendor=highlevel
+ ;;
+ xps-unknown | xps100-unknown)
+ cpu=xps100
+ vendor=honeywell
+ ;;
+
+ # Here we normalize CPU types with a missing or matching vendor
+ armh-unknown | armh-alt)
+ cpu=armv7l
+ vendor=alt
+ basic_os=${basic_os:-linux-gnueabihf}
+ ;;
+ dpx20-unknown | dpx20-bull)
+ cpu=rs6000
+ vendor=bull
+ basic_os=${basic_os:-bosx}
+ ;;
+
+ # Here we normalize CPU types irrespective of the vendor
+ amd64-*)
+ cpu=x86_64
+ ;;
+ blackfin-*)
+ cpu=bfin
+ basic_os=linux
+ ;;
+ c54x-*)
+ cpu=tic54x
+ ;;
+ c55x-*)
+ cpu=tic55x
+ ;;
+ c6x-*)
+ cpu=tic6x
+ ;;
+ e500v[12]-*)
+ cpu=powerpc
+ basic_os=${basic_os}"spe"
+ ;;
+ mips3*-*)
+ cpu=mips64
+ ;;
+ ms1-*)
+ cpu=mt
+ ;;
+ m68knommu-*)
+ cpu=m68k
+ basic_os=linux
+ ;;
+ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+ cpu=s12z
+ ;;
+ openrisc-*)
+ cpu=or32
+ ;;
+ parisc-*)
+ cpu=hppa
+ basic_os=linux
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ cpu=i586
+ ;;
+ pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
+ cpu=i686
+ ;;
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ cpu=i686
+ ;;
+ pentium4-*)
+ cpu=i786
+ ;;
+ pc98-*)
+ cpu=i386
+ ;;
+ ppc-* | ppcbe-*)
+ cpu=powerpc
+ ;;
+ ppcle-* | powerpclittle-*)
+ cpu=powerpcle
+ ;;
+ ppc64-*)
+ cpu=powerpc64
+ ;;
+ ppc64le-* | powerpc64little-*)
+ cpu=powerpc64le
+ ;;
+ sb1-*)
+ cpu=mipsisa64sb1
+ ;;
+ sb1el-*)
+ cpu=mipsisa64sb1el
+ ;;
+ sh5e[lb]-*)
+ cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
+ ;;
+ spur-*)
+ cpu=spur
+ ;;
+ strongarm-* | thumb-*)
+ cpu=arm
+ ;;
+ tx39-*)
+ cpu=mipstx39
+ ;;
+ tx39el-*)
+ cpu=mipstx39el
+ ;;
+ x64-*)
+ cpu=x86_64
+ ;;
+ xscale-* | xscalee[bl]-*)
+ cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
+ ;;
+ arm64-* | aarch64le-*)
+ cpu=aarch64
+ ;;
+
+ # Recognize the canonical CPU Types that limit and/or modify the
+ # company names they are paired with.
+ cr16-*)
+ basic_os=${basic_os:-elf}
+ ;;
+ crisv32-* | etraxfs*-*)
+ cpu=crisv32
+ vendor=axis
+ ;;
+ cris-* | etrax*-*)
+ cpu=cris
+ vendor=axis
+ ;;
+ crx-*)
+ basic_os=${basic_os:-elf}
+ ;;
+ neo-tandem)
+ cpu=neo
+ vendor=tandem
+ ;;
+ nse-tandem)
+ cpu=nse
+ vendor=tandem
+ ;;
+ nsr-tandem)
+ cpu=nsr
+ vendor=tandem
+ ;;
+ nsv-tandem)
+ cpu=nsv
+ vendor=tandem
+ ;;
+ nsx-tandem)
+ cpu=nsx
+ vendor=tandem
+ ;;
+ mipsallegrexel-sony)
+ cpu=mipsallegrexel
+ vendor=sony
+ ;;
+ tile*-*)
+ basic_os=${basic_os:-linux-gnu}
+ ;;
+
+ *)
+ # Recognize the canonical CPU types that are allowed with any
+ # company name.
+ case $cpu in
+ 1750a | 580 \
+ | a29k \
+ | aarch64 | aarch64_be \
+ | abacus \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
+ | alphapca5[67] | alpha64pca5[67] \
+ | am33_2.0 \
+ | amdgcn \
+ | arc | arceb | arc32 | arc64 \
+ | arm | arm[lb]e | arme[lb] | armv* \
+ | avr | avr32 \
+ | asmjs \
+ | ba \
+ | be32 | be64 \
+ | bfin | bpf | bs2000 \
+ | c[123]* | c30 | [cjt]90 | c4x \
+ | c8051 | clipper | craynv | csky | cydra \
+ | d10v | d30v | dlx | dsp16xx \
+ | e2k | elxsi | epiphany \
+ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+ | h8300 | h8500 \
+ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
+ | i370 | i*86 | i860 | i960 | ia16 | ia64 \
+ | ip2k | iq2000 \
+ | k1om \
+ | le32 | le64 \
+ | lm32 \
+ | loongarch32 | loongarch64 | loongarchx32 \
+ | m32c | m32r | m32rle \
+ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
+ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
+ | m88110 | m88k | maxq | mb | mcore | mep | metag \
+ | microblaze | microblazeel \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64eb | mips64el \
+ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa32r3 | mipsisa32r3el \
+ | mipsisa32r5 | mipsisa32r5el \
+ | mipsisa32r6 | mipsisa32r6el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64r3 | mipsisa64r3el \
+ | mipsisa64r5 | mipsisa64r5el \
+ | mipsisa64r6 | mipsisa64r6el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
+ | mipstx39 | mipstx39el \
+ | mmix \
+ | mn10200 | mn10300 \
+ | moxie \
+ | mt \
+ | msp430 \
+ | nds32 | nds32le | nds32be \
+ | nfp \
+ | nios | nios2 | nios2eb | nios2el \
+ | none | np1 | ns16k | ns32k | nvptx \
+ | open8 \
+ | or1k* \
+ | or32 \
+ | orion \
+ | picochip \
+ | pdp10 | pdp11 | pj | pjl | pn | power \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
+ | pru \
+ | pyramid \
+ | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
+ | rl78 | romp | rs6000 | rx \
+ | s390 | s390x \
+ | score \
+ | sh | shl \
+ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
+ | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+ | spu \
+ | tahoe \
+ | thumbv7* \
+ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+ | tron \
+ | ubicom32 \
+ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+ | vax \
+ | visium \
+ | w65 \
+ | wasm32 | wasm64 \
+ | we32k \
+ | x86 | x86_64 | xc16x | xgate | xps100 \
+ | xstormy16 | xtensa* \
+ | ymp \
+ | z8k | z80)
+ ;;
+
+ *)
+ echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&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 <<EOF
+$basic_os
+EOF
+ IFS=$saved_IFS
+ ;;
+ # Default OS when just kernel was specified
+ nto*)
+ kernel=nto
+ os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
+ ;;
+ linux*)
+ kernel=linux
+ os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
+ ;;
+ *)
+ kernel=
+ os=$basic_os
+ ;;
+esac
+
+# Now, normalize the OS (knowing we just have one component, it's not a kernel,
+# etc.)
+case $os in
+ # First match some system type aliases that might get confused
+ # with valid system types.
+ # solaris* is a basic system type, with this one exception.
+ auroraux)
+ os=auroraux
+ ;;
+ bluegene*)
+ os=cnk
+ ;;
+ solaris1 | solaris1.*)
+ os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
+ ;;
+ solaris)
+ os=solaris2
+ ;;
+ unixware*)
+ os=sysv4.2uw
+ ;;
+ # es1800 is here to avoid being matched by es* (a different OS)
+ es1800*)
+ os=ose
+ ;;
+ # Some version numbers need modification
+ chorusos*)
+ os=chorusos
+ ;;
+ isc)
+ os=isc2.2
+ ;;
+ sco6)
+ os=sco5v6
+ ;;
+ sco5)
+ os=sco3.2v5
+ ;;
+ sco4)
+ os=sco3.2v4
+ ;;
+ sco3.2.[4-9]*)
+ os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
+ ;;
+ sco*v* | scout)
+ # Don't match below
+ ;;
+ sco*)
+ os=sco3.2v2
+ ;;
+ psos*)
+ os=psos
+ ;;
+ qnx*)
+ os=qnx
+ ;;
+ hiux*)
+ os=hiuxwe2
+ ;;
+ lynx*178)
+ os=lynxos178
+ ;;
+ lynx*5)
+ os=lynxos5
+ ;;
+ lynxos*)
+ # don't get caught up in next wildcard
+ ;;
+ lynx*)
+ os=lynxos
+ ;;
+ mac[0-9]*)
+ os=`echo "$os" | sed -e 's|mac|macos|'`
+ ;;
+ opened*)
+ os=openedition
+ ;;
+ os400*)
+ os=os400
+ ;;
+ sunos5*)
+ os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
+ ;;
+ sunos6*)
+ os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
+ ;;
+ wince*)
+ os=wince
+ ;;
+ utek*)
+ os=bsd
+ ;;
+ dynix*)
+ os=bsd
+ ;;
+ acis*)
+ os=aos
+ ;;
+ atheos*)
+ os=atheos
+ ;;
+ syllable*)
+ os=syllable
+ ;;
+ 386bsd)
+ os=bsd
+ ;;
+ ctix* | uts*)
+ os=sysv
+ ;;
+ nova*)
+ os=rtmk-nova
+ ;;
+ ns2)
+ os=nextstep2
+ ;;
+ # Preserve the version number of sinix5.
+ sinix5.*)
+ os=`echo "$os" | sed -e 's|sinix|sysv|'`
+ ;;
+ sinix*)
+ os=sysv4
+ ;;
+ tpf*)
+ os=tpf
+ ;;
+ triton*)
+ os=sysv3
+ ;;
+ oss*)
+ os=sysv3
+ ;;
+ svr4*)
+ os=sysv4
+ ;;
+ svr3)
+ os=sysv3
+ ;;
+ sysvr4)
+ os=sysv4
+ ;;
+ ose*)
+ os=ose
+ ;;
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+ os=mint
+ ;;
+ dicos*)
+ os=dicos
+ ;;
+ pikeos*)
+ # Until real need of OS specific support for
+ # particular features comes up, bare metal
+ # configurations are quite functional.
+ case $cpu in
+ arm*)
+ os=eabi
+ ;;
+ *)
+ os=elf
+ ;;
+ esac
+ ;;
+ *)
+ # No normalization, but not necessarily accepted, that comes below.
+ ;;
+esac
+
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system. Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+kernel=
+case $cpu-$vendor in
+ score-*)
+ os=elf
+ ;;
+ spu-*)
+ os=elf
+ ;;
+ *-acorn)
+ os=riscix1.2
+ ;;
+ arm*-rebel)
+ kernel=linux
+ os=gnu
+ ;;
+ arm*-semi)
+ os=aout
+ ;;
+ c4x-* | tic4x-*)
+ os=coff
+ ;;
+ c8051-*)
+ os=elf
+ ;;
+ clipper-intergraph)
+ os=clix
+ ;;
+ hexagon-*)
+ os=elf
+ ;;
+ tic54x-*)
+ os=coff
+ ;;
+ tic55x-*)
+ os=coff
+ ;;
+ tic6x-*)
+ os=coff
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=tops20
+ ;;
+ pdp11-*)
+ os=none
+ ;;
+ *-dec | vax-*)
+ os=ultrix4.2
+ ;;
+ m68*-apollo)
+ os=domain
+ ;;
+ i386-sun)
+ os=sunos4.0.2
+ ;;
+ m68000-sun)
+ os=sunos3
+ ;;
+ m68*-cisco)
+ os=aout
+ ;;
+ mep-*)
+ os=elf
+ ;;
+ mips*-cisco)
+ os=elf
+ ;;
+ mips*-*)
+ os=elf
+ ;;
+ or32-*)
+ os=coff
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=sysv3
+ ;;
+ sparc-* | *-sun)
+ os=sunos4.1.1
+ ;;
+ pru-*)
+ os=elf
+ ;;
+ *-be)
+ os=beos
+ ;;
+ *-ibm)
+ os=aix
+ ;;
+ *-knuth)
+ os=mmixware
+ ;;
+ *-wec)
+ os=proelf
+ ;;
+ *-winbond)
+ os=proelf
+ ;;
+ *-oki)
+ os=proelf
+ ;;
+ *-hp)
+ os=hpux
+ ;;
+ *-hitachi)
+ os=hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+ os=sysv
+ ;;
+ *-cbm)
+ os=amigaos
+ ;;
+ *-dg)
+ os=dgux
+ ;;
+ *-dolphin)
+ os=sysv3
+ ;;
+ m68k-ccur)
+ os=rtu
+ ;;
+ m88k-omron*)
+ os=luna
+ ;;
+ *-next)
+ os=nextstep
+ ;;
+ *-sequent)
+ os=ptx
+ ;;
+ *-crds)
+ os=unos
+ ;;
+ *-ns)
+ os=genix
+ ;;
+ i370-*)
+ os=mvs
+ ;;
+ *-gould)
+ os=sysv
+ ;;
+ *-highlevel)
+ os=bsd
+ ;;
+ *-encore)
+ os=bsd
+ ;;
+ *-sgi)
+ os=irix
+ ;;
+ *-siemens)
+ os=sysv4
+ ;;
+ *-masscomp)
+ os=rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+ os=uxpv
+ ;;
+ *-rom68k)
+ os=coff
+ ;;
+ *-*bug)
+ os=coff
+ ;;
+ *-apple)
+ os=macos
+ ;;
+ *-atari*)
+ os=mint
+ ;;
+ *-wrs)
+ os=vxworks
+ ;;
+ *)
+ os=none
+ ;;
+esac
+
+fi
+
+# Now, validate our (potentially fixed-up) OS.
+case $os in
+ # Sometimes we do "kernel-libc", so those need to count as OSes.
+ musl* | newlib* | relibc* | uclibc*)
+ ;;
+ # Likewise for "kernel-abi"
+ eabi* | gnueabi*)
+ ;;
+ # VxWorks passes extra cpu info in the 4th filed.
+ simlinux | simwindows | spe)
+ ;;
+ # Now accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST end in a * to match a version number.
+ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
+ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
+ | hiux* | abug | nacl* | netware* | windows* \
+ | os9* | macos* | osx* | ios* \
+ | mpw* | magic* | mmixware* | mon960* | lnews* \
+ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+ | aos* | aros* | cloudabi* | sortix* | twizzler* \
+ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+ | mirbsd* | netbsd* | dicos* | openedition* | ose* \
+ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
+ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
+ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+ | udi* | lites* | ieee* | go32* | aux* | hcos* \
+ | chorusrdb* | cegcc* | glidix* | serenity* \
+ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+ | midipix* | mingw32* | mingw64* | mint* \
+ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+ | interix* | uwin* | mks* | rhapsody* | darwin* \
+ | openstep* | oskit* | conix* | pw32* | nonstopux* \
+ | storm-chaos* | tops10* | tenex* | tops20* | its* \
+ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
+ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
+ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
+ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
+ | fiwix* )
+ ;;
+ # This one is extra strict with allowed versions
+ sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ ;;
+ none)
+ ;;
+ *)
+ echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&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 <https://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+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 <bug-automake@gnu.org>.
+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 <gord@gnu.ai.mit.edu>, 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 <http://www.gnu.org/licenses/>.
+
+
+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
+# <https://opensource.org/license/MIT>, and GPL version 2 or later
+# <http://www.gnu.org/licenses/gpl-2.0.html>. 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:
+# <https://github.com/gnulib-modules/bootstrap/issues>
+
+
+## ------ ##
+## 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.nl >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.nl >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
+# <https://opensource.org/license/MIT>, and GPL version 2 or later
+# <http://www.gnu.org/licenses/gpl-2.0.html>. 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:
+# <https://github.com/gnulib-modules/bootstrap/issues>
+
+# 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 '<hooked_function_name>_result', escaped
+# suitably for 'eval'.
+#
+# The '<hooked_function_name>_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 <bug-libtool@gnu.org>.
+GNU libtool home page: <http://www.gnu.org/s/libtool/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>."
+ 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 <<EOF
+# $write_libobj - a libtool object file
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object=$write_lobj
+
+# Name of the non-PIC object
+non_pic_object=$write_oldobj
+
+EOF
+ $MV "${write_libobj}T" "$write_libobj"
+ }
+}
+
+
+##################################################
+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
+##################################################
+
+# func_convert_core_file_wine_to_w32 ARG
+# Helper function used by file name 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.
+#
+# ARG is the $build file name to be converted to w32 format.
+# Result is available in $func_convert_core_file_wine_to_w32_result, and will
+# be empty on error (or when ARG is empty)
+func_convert_core_file_wine_to_w32 ()
+{
+ $debug_cmd
+
+ func_convert_core_file_wine_to_w32_result=$1
+ if test -n "$1"; then
+ # Unfortunately, winepath does not exit with a non-zero error code, so we
+ # are forced to check the contents of stdout. On the other hand, if the
+ # command is not found, the shell will set an exit code of 127 and print
+ # *an error message* to stdout. So we must check for both error code of
+ # zero AND non-empty stdout, which explains the odd construction:
+ func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/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 <import library>.
+ $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 >/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 *) &lt_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 <<EOF
+
+/* $cwrappersource - temporary wrapper executable 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 executable should never be moved out of the build directory.
+ If it is, it will not operate correctly.
+*/
+EOF
+ cat <<"EOF"
+#ifdef _MSC_VER
+# define _CRT_SECURE_NO_DEPRECATE 1
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef _MSC_VER
+# include <direct.h>
+# include <process.h>
+# include <io.h>
+#else
+# include <unistd.h>
+# include <stdint.h>
+# ifdef __CYGWIN__
+# include <io.h>
+# endif
+#endif
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+#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 <<EOF
+#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
+# define externally_visible volatile
+#else
+# define externally_visible __attribute__((externally_visible)) volatile
+#endif
+externally_visible const char * MAGIC_EXE = "$magic_exe";
+const char * LIB_PATH_VARNAME = "$shlibpath_var";
+EOF
+
+ if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ func_to_host_path "$temp_rpath"
+ cat <<EOF
+const char * LIB_PATH_VALUE = "$func_to_host_path_result";
+EOF
+ else
+ cat <<"EOF"
+const char * LIB_PATH_VALUE = "";
+EOF
+ fi
+
+ if test -n "$dllsearchpath"; then
+ func_to_host_path "$dllsearchpath:"
+ cat <<EOF
+const char * EXE_PATH_VARNAME = "PATH";
+const char * EXE_PATH_VALUE = "$func_to_host_path_result";
+EOF
+ else
+ cat <<"EOF"
+const char * EXE_PATH_VARNAME = "";
+const char * EXE_PATH_VALUE = "";
+EOF
+ fi
+
+ if test yes = "$fast_install"; then
+ cat <<EOF
+const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
+EOF
+ else
+ cat <<EOF
+const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
+EOF
+ fi
+
+
+ cat <<"EOF"
+
+#define LTWRAPPER_OPTION_PREFIX "--lt-"
+
+static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
+static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
+static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
+
+int
+main (int argc, char *argv[])
+{
+ char **newargz;
+ int newargc;
+ char *tmp_pathspec;
+ char *actual_cwrapper_path;
+ char *actual_cwrapper_name;
+ char *target_name;
+ char *lt_argv_zero;
+ int rval = 127;
+
+ int i;
+
+ program_name = (char *) xstrdup (base_name (argv[0]));
+ newargz = XMALLOC (char *, (size_t) argc + 1);
+
+ /* very simple arg parsing; don't want to rely on getopt
+ * also, copy all non cwrapper options to newargz, except
+ * argz[0], which is handled differently
+ */
+ newargc=0;
+ for (i = 1; i < argc; i++)
+ {
+ if (STREQ (argv[i], dumpscript_opt))
+ {
+EOF
+ case $host in
+ *mingw* | *cygwin* )
+ # make stdout use "unix" line endings
+ echo " setmode(1,_O_BINARY);"
+ ;;
+ esac
+
+ cat <<"EOF"
+ lt_dump_script (stdout);
+ return 0;
+ }
+ if (STREQ (argv[i], debug_opt))
+ {
+ lt_debug = 1;
+ continue;
+ }
+ if (STREQ (argv[i], ltwrapper_option_prefix))
+ {
+ /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+ namespace, but it is not one of the ones we know about and
+ have already dealt with, above (inluding dump-script), then
+ report an error. Otherwise, targets might begin to believe
+ they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+ namespace. The first time any user complains about this, we'll
+ need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+ or a configure.ac-settable value.
+ */
+ lt_fatal (__FILE__, __LINE__,
+ "unrecognized %s option: '%s'",
+ ltwrapper_option_prefix, argv[i]);
+ }
+ /* otherwise ... */
+ newargz[++newargc] = xstrdup (argv[i]);
+ }
+ newargz[++newargc] = NULL;
+
+EOF
+ cat <<EOF
+ /* The GNU banner must be the first non-error debug message */
+ lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE) $VERSION\n");
+EOF
+ cat <<"EOF"
+ lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
+ lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
+
+ tmp_pathspec = find_executable (argv[0]);
+ if (tmp_pathspec == NULL)
+ lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) found exe (before symlink chase) at: %s\n",
+ tmp_pathspec);
+
+ actual_cwrapper_path = chase_symlinks (tmp_pathspec);
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) found exe (after symlink chase) at: %s\n",
+ actual_cwrapper_path);
+ XFREE (tmp_pathspec);
+
+ actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
+ strendzap (actual_cwrapper_path, actual_cwrapper_name);
+
+ /* wrapper name transforms */
+ strendzap (actual_cwrapper_name, ".exe");
+ tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
+ XFREE (actual_cwrapper_name);
+ actual_cwrapper_name = tmp_pathspec;
+ tmp_pathspec = 0;
+
+ /* target_name transforms -- use actual target program name; might have lt- prefix */
+ target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
+ strendzap (target_name, ".exe");
+ tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
+ XFREE (target_name);
+ target_name = tmp_pathspec;
+ tmp_pathspec = 0;
+
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) libtool target name: %s\n",
+ target_name);
+EOF
+
+ cat <<EOF
+ newargz[0] =
+ XMALLOC (char, (strlen (actual_cwrapper_path) +
+ strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
+ strcpy (newargz[0], actual_cwrapper_path);
+ strcat (newargz[0], "$objdir");
+ strcat (newargz[0], "/");
+EOF
+
+ cat <<"EOF"
+ /* stop here, and copy so we don't have to do this twice */
+ tmp_pathspec = xstrdup (newargz[0]);
+
+ /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
+ strcat (newargz[0], actual_cwrapper_name);
+
+ /* DO want the lt- prefix here if it exists, so use target_name */
+ lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
+ XFREE (tmp_pathspec);
+ tmp_pathspec = NULL;
+EOF
+
+ case $host_os in
+ mingw*)
+ cat <<"EOF"
+ {
+ char* p;
+ while ((p = strchr (newargz[0], '\\')) != NULL)
+ {
+ *p = '/';
+ }
+ while ((p = strchr (lt_argv_zero, '\\')) != NULL)
+ {
+ *p = '/';
+ }
+ }
+EOF
+ ;;
+ esac
+
+ cat <<"EOF"
+ XFREE (target_name);
+ XFREE (actual_cwrapper_path);
+ XFREE (actual_cwrapper_name);
+
+ lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
+ lt_setenv ("DUALCASE", "1"); /* for MSK sh */
+ /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
+ be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
+ because on Windows, both *_VARNAMEs are PATH but uninstalled
+ libraries must come first. */
+ lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+ lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+
+ lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
+ nonnull (lt_argv_zero));
+ for (i = 0; i < newargc; i++)
+ {
+ lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
+ i, nonnull (newargz[i]));
+ }
+
+EOF
+
+ case $host_os in
+ mingw*)
+ cat <<"EOF"
+ /* execv doesn't actually work on mingw as expected on unix */
+ newargz = prepare_spawn (newargz);
+ rval = (int) _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
+ if (rval == -1)
+ {
+ /* failed to start process */
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) failed to launch target \"%s\": %s\n",
+ lt_argv_zero, nonnull (strerror (errno)));
+ return 127;
+ }
+ return rval;
+EOF
+ ;;
+ *)
+ cat <<"EOF"
+ execv (lt_argv_zero, newargz);
+ return rval; /* =127, but avoids unused variable warning */
+EOF
+ ;;
+ esac
+
+ cat <<"EOF"
+}
+
+void *
+xmalloc (size_t num)
+{
+ void *p = (void *) malloc (num);
+ if (!p)
+ lt_fatal (__FILE__, __LINE__, "memory exhausted");
+
+ return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+ return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
+ string) : NULL;
+}
+
+const char *
+base_name (const char *name)
+{
+ const char *base;
+
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
+ /* Skip over the disk name in MSDOS pathnames. */
+ if (isalpha ((unsigned char) name[0]) && name[1] == ':')
+ name += 2;
+#endif
+
+ for (base = name; *name; name++)
+ if (IS_DIR_SEPARATOR (*name))
+ base = name + 1;
+ return base;
+}
+
+int
+check_executable (const char *path)
+{
+ struct stat st;
+
+ lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
+ nonempty (path));
+ if ((!path) || (!*path))
+ return 0;
+
+ if ((stat (path, &st) >= 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 <<EOF
+ int main() { return 0; }
+EOF
+ $opt_dry_run || $RM conftest
+ if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+ ldd_output=`ldd conftest`
+ for i in $deplibs; do
+ case $i in
+ -l*)
+ func_stripname -l '' "$i"
+ name=$func_stripname_result
+ if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ func_append newdeplibs " $i"
+ i=
+ ;;
+ esac
+ fi
+ if test -n "$i"; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+ set dummy $deplib_matches; shift
+ deplib_match=$1
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
+ func_append newdeplibs " $i"
+ else
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+ 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 I believe you do not have"
+ echo "*** because a test_compile did reveal that the linker did not use it for"
+ echo "*** its dynamic dependency list that programs get resolved with at runtime."
+ fi
+ fi
+ ;;
+ *)
+ func_append newdeplibs " $i"
+ ;;
+ esac
+ done
+ else
+ # Error occurred in the first compile. Let's try to salvage
+ # the situation: Compile a separate program for each library.
+ for i in $deplibs; do
+ case $i in
+ -l*)
+ func_stripname -l '' "$i"
+ name=$func_stripname_result
+ $opt_dry_run || $RM conftest
+ if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+ ldd_output=`ldd conftest`
+ if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ func_append newdeplibs " $i"
+ i=
+ ;;
+ esac
+ fi
+ if test -n "$i"; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+ set dummy $deplib_matches; shift
+ deplib_match=$1
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
+ func_append newdeplibs " $i"
+ else
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+ 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 a test_compile did reveal that the linker did not use this one"
+ echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+ fi
+ fi
+ else
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
+ echo "*** make it link in! You will probably need to install it or some"
+ echo "*** library that it depends on before this library will be fully"
+ echo "*** functional. Installing it before continuing would be even better."
+ fi
+ ;;
+ *)
+ func_append newdeplibs " $i"
+ ;;
+ esac
+ done
+ fi
+ ;;
+ file_magic*)
+ set dummy $deplibs_check_method; shift
+ file_magic_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\""`
+ if test -n "$file_magic_glob"; then
+ libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
+ else
+ libnameglob=$libname
+ fi
+ test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ if test yes = "$want_nocaseglob"; then
+ shopt -s nocaseglob
+ potential_libs=`ls $i/$libnameglob[.-]* 2>/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 <pinard@iro.umontreal.ca>, 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 <https://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+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 <bug-automake@gnu.org>."
+ 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 <https://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+# 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 <<END
+Usage:
+ test-driver --test-name NAME --log-file PATH --trs-file PATH
+ [--expect-failure {yes|no}] [--color-tests {yes|no}]
+ [--enable-hard-errors {yes|no}] [--]
+ TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
+
+The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+See the GNU Automake documentation for information.
+END
+}
+
+test_name= # Used for reporting.
+log_file= # Where to save the output of the test script.
+trs_file= # Where to save the metadata of the test run.
+expect_failure=no
+color_tests=no
+enable_hard_errors=yes
+while test $# -gt 0; do
+ case $1 in
+ --help) print_usage; exit $?;;
+ --version) echo "test-driver $scriptversion"; exit $?;;
+ --test-name) test_name=$2; shift;;
+ --log-file) log_file=$2; shift;;
+ --trs-file) trs_file=$2; shift;;
+ --color-tests) color_tests=$2; shift;;
+ --expect-failure) expect_failure=$2; shift;;
+ --enable-hard-errors) enable_hard_errors=$2; shift;;
+ --) shift; break;;
+ -*) usage_error "invalid option: '$1'";;
+ *) break;;
+ esac
+ shift
+done
+
+missing_opts=
+test x"$test_name" = x && missing_opts="$missing_opts --test-name"
+test x"$log_file" = x && missing_opts="$missing_opts --log-file"
+test x"$trs_file" = x && missing_opts="$missing_opts --trs-file"
+if test x"$missing_opts" != x; then
+ usage_error "the following mandatory options are missing:$missing_opts"
+fi
+
+if test $# -eq 0; then
+ usage_error "missing argument"
+fi
+
+if test $color_tests = yes; then
+ # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
+ red='' # Red.
+ grn='' # Green.
+ lgn='' # Light green.
+ blu='' # Blue.
+ mgn='' # Magenta.
+ std='' # No color.
+else
+ red= grn= lgn= blu= mgn= std=
+fi
+
+do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
+trap "st=129; $do_exit" 1
+trap "st=130; $do_exit" 2
+trap "st=141; $do_exit" 13
+trap "st=143; $do_exit" 15
+
+# Test script is run here. We create the file first, then append to it,
+# to ameliorate tests themselves also writing to the log file. Our tests
+# don't, but others can (automake bug#35762).
+: >"$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..c7f5c27f
--- /dev/null
+++ b/config.h.in
@@ -0,0 +1,637 @@
+/* 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 <byteswap.h> 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 <time.h>. */
+#undef HAVE_CLOCK_MONOTONIC
+
+/* Define to 1 if you have the <CommonCrypto/CommonDigest.h> header file. */
+#undef HAVE_COMMONCRYPTO_COMMONDIGEST_H
+
+/* Define to 1 if you have the <cpuid.h> 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 <dlfcn.h> 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 <fcntl.h> 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 <getopt.h> 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 <immintrin.h> header file. */
+#undef HAVE_IMMINTRIN_H
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <limits.h> header file. */
+#undef HAVE_LIMITS_H
+
+/* Define to 1 if Linux Landlock is supported. See configure.ac for details.
+ */
+#undef HAVE_LINUX_LANDLOCK
+
+/* 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 you have the <minix/config.h> 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 <errno.h>. */
+#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 <sha256.h> 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 <sha2.h> 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 <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdio.h> header file. */
+#undef HAVE_STDIO_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> 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 <sys/byteorder.h> header file. */
+#undef HAVE_SYS_BYTEORDER_H
+
+/* Define to 1 if you have the <sys/cdefs.h> header file. */
+#undef HAVE_SYS_CDEFS_H
+
+/* Define to 1 if you have the <sys/endian.h> header file. */
+#undef HAVE_SYS_ENDIAN_H
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#undef HAVE_SYS_PARAM_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#undef HAVE_SYS_TIME_H
+
+/* Define to 1 if you have the <sys/types.h> 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 <unistd.h> 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 <wchar.h> 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 <sys/synch.h>,
+ <pthread.h>, or <semaphore.h> 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 <sys/synch.h>,
+ <pthread.h>, or <semaphore.h> 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 <sys/synch.h>,
+ <pthread.h>, or <semaphore.h> 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..676e8a3e
--- /dev/null
+++ b/configure
@@ -0,0 +1,25752 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.72 for XZ Utils 5.6.1.
+#
+# Report bugs to <xz@tukaani.org>.
+#
+#
+# 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</dev/null; fi
+if (exec 3>&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 </dev/null
+exec 6>&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.1'
+PACKAGE_STRING='XZ Utils 5.6.1'
+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 <stddef.h>
+#ifdef HAVE_STDIO_H
+# include <stdio.h>
+#endif
+#ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
+#ifdef HAVE_STRING_H
+# include <string.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#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.1 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.1:";;
+ 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<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ 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@tukaani.org>.
+XZ Utils home page: <https://xz.tukaani.org/xz-utils/>.
+_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.1
+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 <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> 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 <limits.h>
+#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 <stdio.h>
+#include <stdlib.h>
+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 <conftest.val; ac_retval=0
+else case e in #(
+ e) ac_retval=1 ;;
+esac
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
+
+ fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_compute_int
+
+# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
+# ----------------------------------------------------
+# Tries to find if the field MEMBER exists in type AGGR, after including
+# INCLUDES, setting cache variable VAR accordingly.
+ac_fn_c_check_member ()
+{
+ 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.$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.1, 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 <stddef.h>
+#include <stdarg.h>
+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 <stdbool.h>
+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 | no)
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_microlzma" >&5
+printf "%s\n" "$enable_microlzma" >&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.1'
+
+
+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:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+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: <http://austingroupbugs.net/view.php?id=542>
+
+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: <https://www.gnu.org/software/coreutils/>.
+
+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 <stdio.h>
+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 <wchar.h>
+ 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 <wchar.h>
+ 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 <limits.h>
+ 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 <ac_nonexistent.h>
+_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 <limits.h>
+ 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 <ac_nonexistent.h>
+_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 <pthread.h>
+# 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 <pthread.h>
+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 <pthread.h>
+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 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test no != "$with_gnu_ld" && break
+ ;;
+ *)
+ test yes != "$with_gnu_ld" && break
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+else
+ lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi ;;
+esac
+fi
+
+LD=$lt_cv_path_LD
+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; }
+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 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&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 <conftest2.i >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 <conftest2.i >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 <jrb3@best.com> 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<name>.so
+ # instead of lib<name>.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 <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#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 <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#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 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$acl_save_ifs"
+ fi
+ case $host in
+ *-*-aix*)
+ 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 :
+ # 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 </dev/null` in
+*GNU* | *'with BFD'*)
+ acl_cv_prog_gnu_ld=yes
+ ;;
+*)
+ acl_cv_prog_gnu_ld=no
+ ;;
+esac ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&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 <CoreFoundation/CFPreferences.h>
+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 <CoreFoundation/CFLocale.h>
+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 <libintl.h>
+#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 <stdlib.h>
+#include <iconv.h>
+
+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 <stdlib.h>
+#include <iconv.h>
+
+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 <iconv.h>
+#include <string.h>
+
+#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
+ <https://www.ibm.com/support/knowledgecenter/ssw_aix_72/i_bostechref/iconv.html> */
+ {
+ 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 <libintl.h>
+#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 <libintl.h>
+#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 <stdbool.h>
+
+ /* "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 <sys/types.h>
+#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 <time.h>
+ /* 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 <sys/types.h>
+ #include <sys/param.h>
+
+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 <sys/types.h>
+ #include <sys/param.h>
+
+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 <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+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 <limits.h>
+
+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 <features.h>
+ # if !defined(__GLIBC__) || defined(__UCLIBC__)
+ compile error
+ # endif
+ #elif !defined(__FreeBSD__)
+ compile error
+ #endif
+
+ static void func(void) { return; }
+
+ /*
+ * The attribute __no_profile_instrument_function__ is
+ * needed with GCC to prevent improper instrumentation in
+ * the ifunc resolver.
+ */
+ __attribute__((__no_profile_instrument_function__))
+ 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 <float.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stddef.h>
+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 <getopt.h>
+" "$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 <time.h>
+" "$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 <errno.h>
+" "$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 <byteswap.h>
+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 <byteswap.h>
+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 <byteswap.h>
+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 <sys/systemcfg.h>
+
+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 <unistd.h>
+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 <sys/param.h>
+#endif
+#include <sys/sysctl.h>
+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 <sys/sysinfo.h>
+#include <machine/hal_sysinfo.h>
+
+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 <sys/param.h>
+#include <sys/pstat.h>
+
+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 <invent.h>
+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 <sys/sysinfo.h>
+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 <sched.h>
+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 <sys/param.h>
+#include <sys/cpuset.h>
+
+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 <sys/param.h>
+#endif
+#include <sys/sysctl.h>
+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 <unistd.h>
+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 <sys/param.h>
+#include <sys/pstat.h>
+
+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 <wchar.h>
+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 <sys/types.h>
+ #endif
+ #ifdef HAVE_COMMONCRYPTO_COMMONDIGEST_H
+ # include <CommonCrypto/CommonDigest.h>
+ #endif
+ #ifdef HAVE_SHA256_H
+ # include <sha256.h>
+ #endif
+ #ifdef HAVE_SHA2_H
+ # include <sha2.h>
+ #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 <sys/types.h>
+ #endif
+ #ifdef HAVE_COMMONCRYPTO_COMMONDIGEST_H
+ # include <CommonCrypto/CommonDigest.h>
+ #endif
+ #ifdef HAVE_SHA256_H
+ # include <sha256.h>
+ #endif
+ #ifdef HAVE_SHA2_H
+ # include <sha2.h>
+ #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 <sys/types.h>
+ #endif
+ #ifdef HAVE_COMMONCRYPTO_COMMONDIGEST_H
+ # include <CommonCrypto/CommonDigest.h>
+ #endif
+ #ifdef HAVE_SHA256_H
+ # include <sha256.h>
+ #endif
+ #ifdef HAVE_SHA2_H
+ # include <sha2.h>
+ #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 <immintrin.h>
+#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 <immintrin.h>.
+# 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 <immintrin.h>. 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 <immintrin.h>
+
+// 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 <arm_acle.h>
+#include <stdint.h>
+
+#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) :
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if Linux Landlock is usable" >&5
+printf %s "checking if Linux Landlock is usable... " >&6; }
+
+ # A compile check is done here because some systems have
+ # linux/landlock.h, but do not have the syscalls defined
+ # in order to actually use Linux Landlock.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <linux/landlock.h>
+ #include <sys/syscall.h>
+ #include <sys/prctl.h>
+
+ void my_sandbox(void)
+ {
+ (void)prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0);
+ (void)SYS_landlock_create_ruleset;
+ (void)SYS_landlock_restrict_self;
+ (void)LANDLOCK_CREATE_RULESET_VERSION;
+ return;
+ }
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+ 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
+
+
+printf "%s\n" "#define HAVE_LINUX_LANDLOCK 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_ext
+
+ ;; #(
+ *) :
+ ;;
+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</dev/null; fi
+if (exec 3>&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.1, 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@tukaani.org>.
+XZ Utils home page: <https://xz.tukaani.org/xz-utils/>."
+
+_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.1
+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 2>/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
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$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
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$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 <http://www.gnu.org/licenses/>.
+
+
+# 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..d630665f
--- /dev/null
+++ b/doc/api/annotated.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): Data Structures</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Data Structures</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__allocator.html" target="_self">lzma_allocator</a></td><td class="desc">Custom functions for memory handling </td></tr>
+<tr id="row_1_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__block.html" target="_self">lzma_block</a></td><td class="desc">Options for the Block and Block Header encoders and decoders </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__filter.html" target="_self">lzma_filter</a></td><td class="desc">Filter options </td></tr>
+<tr id="row_3_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__index__iter.html" target="_self">lzma_index_iter</a></td><td class="desc">Iterator to get information about Blocks and Streams </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__mt.html" target="_self">lzma_mt</a></td><td class="desc">Multithreading options </td></tr>
+<tr id="row_5_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__options__bcj.html" target="_self">lzma_options_bcj</a></td><td class="desc">Options for BCJ filters </td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__options__delta.html" target="_self">lzma_options_delta</a></td><td class="desc">Options for the Delta filter </td></tr>
+<tr id="row_7_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__options__lzma.html" target="_self">lzma_options_lzma</a></td><td class="desc">Options specific to the LZMA1 and LZMA2 filters </td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__stream.html" target="_self">lzma_stream</a></td><td class="desc">Passing data to and from liblzma </td></tr>
+<tr id="row_9_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlzma__stream__flags.html" target="_self">lzma_stream_flags</a></td><td class="desc">Options for encoding/decoding Stream Header and Stream Footer </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/base_8h.html b/doc/api/base_8h.html
new file mode 100644
index 00000000..f4407927
--- /dev/null
+++ b/doc/api/base_8h.html
@@ -0,0 +1,586 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma/base.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">base.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Data types and functions used in many places in liblzma API.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__allocator.html">lzma_allocator</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Custom functions for memory handling. <a href="structlzma__allocator.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html">lzma_stream</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Passing data to and from liblzma. <a href="structlzma__stream.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:af31f0c8b6f14359cd082b9559f7f3e01"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#af31f0c8b6f14359cd082b9559f7f3e01">LZMA_STREAM_INIT</a></td></tr>
+<tr class="memdesc:af31f0c8b6f14359cd082b9559f7f3e01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization for <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a>. <br /></td></tr>
+<tr class="separator:af31f0c8b6f14359cd082b9559f7f3e01"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:abbc819c74b484c846825ae1388a50a59"><td class="memItemLeft" align="right" valign="top">typedef unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a></td></tr>
+<tr class="memdesc:abbc819c74b484c846825ae1388a50a59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boolean. <br /></td></tr>
+<tr class="separator:abbc819c74b484c846825ae1388a50a59"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab1a60127c640135687a5bcc232cec906"><td class="memItemLeft" align="right" valign="top">typedef struct lzma_internal_s&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#ab1a60127c640135687a5bcc232cec906">lzma_internal</a></td></tr>
+<tr class="memdesc:ab1a60127c640135687a5bcc232cec906"><td class="mdescLeft">&#160;</td><td class="mdescRight">Internal data structure. <br /></td></tr>
+<tr class="separator:ab1a60127c640135687a5bcc232cec906"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a05805a07754b2aa22f7d443eb7ece41a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#a05805a07754b2aa22f7d443eb7ece41a">lzma_reserved_enum</a> { <b>LZMA_RESERVED_ENUM</b> = 0
+ }</td></tr>
+<tr class="memdesc:a05805a07754b2aa22f7d443eb7ece41a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of reserved enumeration variable in structures. <a href="base_8h.html#a05805a07754b2aa22f7d443eb7ece41a">More...</a><br /></td></tr>
+<tr class="separator:a05805a07754b2aa22f7d443eb7ece41a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8494e0457e1463d6d2b6836018d87b6e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> { <br />
+&#160;&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eac003781ccb81bbd5578e29abed8a8cfe">LZMA_OK</a> = 0
+, <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea91ecc6fab14c13ad36224afbcb4e55c4">LZMA_STREAM_END</a> = 1
+, <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa720d30092d504d7d138a320db1905ef">LZMA_NO_CHECK</a> = 2
+, <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea989f393a1772d85bf545a9da48fc7ac2">LZMA_UNSUPPORTED_CHECK</a> = 3
+, <br />
+&#160;&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa5b648c18da0f584f621cfdf7fef1bdb">LZMA_GET_CHECK</a> = 4
+, <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea567e1464feca03900a5425fb45b2f5b6">LZMA_MEM_ERROR</a> = 5
+, <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa1d705effe6026f32c0fe9756b6326bc">LZMA_MEMLIMIT_ERROR</a> = 6
+, <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea63b7a58949854eb9307f8e351358d56c">LZMA_FORMAT_ERROR</a> = 7
+, <br />
+&#160;&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa9ff6dfee36b7aba4fae60706d37425f">LZMA_OPTIONS_ERROR</a> = 8
+, <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea3aa72729a844790e39b4e1101a731dfb">LZMA_DATA_ERROR</a> = 9
+, <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea9ca0ecb62459bdc84d6af47d16b23ae5">LZMA_BUF_ERROR</a> = 10
+, <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea2dac8d451cb38da8550653d0d7be4ec2">LZMA_PROG_ERROR</a> = 11
+, <br />
+&#160;&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea6cf28e5345851f13bd798a4eab8cc939">LZMA_SEEK_NEEDED</a> = 12
+, <b>LZMA_RET_INTERNAL1</b> = 101
+, <b>LZMA_RET_INTERNAL2</b> = 102
+, <b>LZMA_RET_INTERNAL3</b> = 103
+, <br />
+&#160;&#160;<b>LZMA_RET_INTERNAL4</b> = 104
+, <b>LZMA_RET_INTERNAL5</b> = 105
+, <b>LZMA_RET_INTERNAL6</b> = 106
+, <b>LZMA_RET_INTERNAL7</b> = 107
+, <br />
+&#160;&#160;<b>LZMA_RET_INTERNAL8</b> = 108
+<br />
+ }</td></tr>
+<tr class="memdesc:a8494e0457e1463d6d2b6836018d87b6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return values used by several functions in liblzma. <a href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">More...</a><br /></td></tr>
+<tr class="separator:a8494e0457e1463d6d2b6836018d87b6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa92efcbf3cecfcac79c81fc645fce77e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77e">lzma_action</a> { <br />
+&#160;&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77ea868472b76492afcaef54020a481890b1">LZMA_RUN</a> = 0
+, <a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77ea14d75152afcda85d215e877fdd9c4170">LZMA_SYNC_FLUSH</a> = 1
+, <a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77eaab46f0d7c721f1ec377e9575eab2586f">LZMA_FULL_FLUSH</a> = 2
+, <a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77eaf7bf60e3555a4d10ffad3ecc3d2e01f1">LZMA_FULL_BARRIER</a> = 4
+, <br />
+&#160;&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77ea7d24fb3c6c144d13bcb091195b8ebec1">LZMA_FINISH</a> = 3
+<br />
+ }</td></tr>
+<tr class="memdesc:aa92efcbf3cecfcac79c81fc645fce77e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The 'action' argument for <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> <a href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77e">More...</a><br /></td></tr>
+<tr class="separator:aa92efcbf3cecfcac79c81fc645fce77e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a28cc09bc422d5ba1e0187c9f2af5d957"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957">lzma_code</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, <a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77e">lzma_action</a> action) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a28cc09bc422d5ba1e0187c9f2af5d957"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode or decode data. <br /></td></tr>
+<tr class="separator:a28cc09bc422d5ba1e0187c9f2af5d957"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a854ff37464ae1225febf14db1af43308"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308">lzma_end</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm) lzma_nothrow</td></tr>
+<tr class="memdesc:a854ff37464ae1225febf14db1af43308"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free memory allocated for the coder data structures. <br /></td></tr>
+<tr class="separator:a854ff37464ae1225febf14db1af43308"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab6447cd68eeecbd6b88f21daeb8ce751"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#ab6447cd68eeecbd6b88f21daeb8ce751">lzma_get_progress</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, uint64_t *progress_in, uint64_t *progress_out) lzma_nothrow</td></tr>
+<tr class="memdesc:ab6447cd68eeecbd6b88f21daeb8ce751"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get progress information. <br /></td></tr>
+<tr class="separator:ab6447cd68eeecbd6b88f21daeb8ce751"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a418b210cf206782a73cd9de7dc27f670"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#a418b210cf206782a73cd9de7dc27f670">lzma_memusage</a> (const <a class="el" href="structlzma__stream.html">lzma_stream</a> *strm) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:a418b210cf206782a73cd9de7dc27f670"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the memory usage of decoder filter chain. <br /></td></tr>
+<tr class="separator:a418b210cf206782a73cd9de7dc27f670"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac871bc2ead5d482c6d6b3d51bfec365c"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#ac871bc2ead5d482c6d6b3d51bfec365c">lzma_memlimit_get</a> (const <a class="el" href="structlzma__stream.html">lzma_stream</a> *strm) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:ac871bc2ead5d482c6d6b3d51bfec365c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current memory usage limit. <br /></td></tr>
+<tr class="separator:ac871bc2ead5d482c6d6b3d51bfec365c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc49d4cf75b73128a167df3407505f7b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html#afc49d4cf75b73128a167df3407505f7b">lzma_memlimit_set</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, uint64_t memlimit) lzma_nothrow</td></tr>
+<tr class="memdesc:afc49d4cf75b73128a167df3407505f7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the memory usage limit. <br /></td></tr>
+<tr class="separator:afc49d4cf75b73128a167df3407505f7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Data types and functions used in many places in liblzma API. </p>
+<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="af31f0c8b6f14359cd082b9559f7f3e01" name="af31f0c8b6f14359cd082b9559f7f3e01"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af31f0c8b6f14359cd082b9559f7f3e01">&#9670;&#160;</a></span>LZMA_STREAM_INIT</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_STREAM_INIT</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"> { NULL, 0, 0, NULL, 0, 0, NULL, NULL, \</div>
+<div class="line"> NULL, NULL, NULL, NULL, 0, 0, 0, 0, \</div>
+<div class="line"> LZMA_RESERVED_ENUM, LZMA_RESERVED_ENUM }</div>
+</div><!-- fragment -->
+<p>Initialization for <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a>. </p>
+<p>When you declare an instance of <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a>, you can immediately initialize it so that initialization functions know that no memory has been allocated yet:</p>
+<p><a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> strm = LZMA_STREAM_INIT;</p>
+<p>If you need to initialize a dynamically allocated <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a>, 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:</p>
+<p><a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> tmp = LZMA_STREAM_INIT; *strm = tmp; </p>
+
+</div>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a id="abbc819c74b484c846825ae1388a50a59" name="abbc819c74b484c846825ae1388a50a59"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abbc819c74b484c846825ae1388a50a59">&#9670;&#160;</a></span>lzma_bool</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef unsigned char <a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Boolean. </p>
+<p>This is here because C89 doesn't have stdbool.h. To set a value for variables having type lzma_bool, you can use</p><ul>
+<li>C99's 'true' and 'false' from stdbool.h;</li>
+<li>C++'s internal 'true' and 'false'; or</li>
+<li>integers one (true) and zero (false). </li>
+</ul>
+
+</div>
+</div>
+<a id="ab1a60127c640135687a5bcc232cec906" name="ab1a60127c640135687a5bcc232cec906"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab1a60127c640135687a5bcc232cec906">&#9670;&#160;</a></span>lzma_internal</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef struct lzma_internal_s <a class="el" href="base_8h.html#ab1a60127c640135687a5bcc232cec906">lzma_internal</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Internal data structure. </p>
+<p>The contents of this structure is not visible outside the library. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="a05805a07754b2aa22f7d443eb7ece41a" name="a05805a07754b2aa22f7d443eb7ece41a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a05805a07754b2aa22f7d443eb7ece41a">&#9670;&#160;</a></span>lzma_reserved_enum</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="base_8h.html#a05805a07754b2aa22f7d443eb7ece41a">lzma_reserved_enum</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of reserved enumeration variable in structures. </p>
+<p>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. </p>
+
+</div>
+</div>
+<a id="a8494e0457e1463d6d2b6836018d87b6e" name="a8494e0457e1463d6d2b6836018d87b6e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8494e0457e1463d6d2b6836018d87b6e">&#9670;&#160;</a></span>lzma_ret</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Return values used by several functions in liblzma. </p>
+<p>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. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6eac003781ccb81bbd5578e29abed8a8cfe" name="a8494e0457e1463d6d2b6836018d87b6eac003781ccb81bbd5578e29abed8a8cfe"></a>LZMA_OK&#160;</td><td class="fielddoc"><p>Operation completed successfully. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6ea91ecc6fab14c13ad36224afbcb4e55c4" name="a8494e0457e1463d6d2b6836018d87b6ea91ecc6fab14c13ad36224afbcb4e55c4"></a>LZMA_STREAM_END&#160;</td><td class="fielddoc"><p>End of stream was reached. </p>
+<p>In encoder, LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, or LZMA_FINISH was finished. In decoder, this indicates that all the data was successfully decoded.</p>
+<p>In all cases, when LZMA_STREAM_END is returned, the last output bytes should be picked from strm-&gt;next_out. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6eaa720d30092d504d7d138a320db1905ef" name="a8494e0457e1463d6d2b6836018d87b6eaa720d30092d504d7d138a320db1905ef"></a>LZMA_NO_CHECK&#160;</td><td class="fielddoc"><p>Input stream has no integrity check. </p>
+<p>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.</p>
+<p>It is possible to call <a class="el" href="check_8h.html#a8d7c3ffabfd024485f03fa209536c746" title="Get the type of the integrity check.">lzma_get_check()</a> immediately after lzma_code has returned LZMA_NO_CHECK. The result will naturally be LZMA_CHECK_NONE, but the possibility to call <a class="el" href="check_8h.html#a8d7c3ffabfd024485f03fa209536c746" title="Get the type of the integrity check.">lzma_get_check()</a> may be convenient in some applications. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6ea989f393a1772d85bf545a9da48fc7ac2" name="a8494e0457e1463d6d2b6836018d87b6ea989f393a1772d85bf545a9da48fc7ac2"></a>LZMA_UNSUPPORTED_CHECK&#160;</td><td class="fielddoc"><p>Cannot calculate the integrity check. </p>
+<p>The usage of this return value is different in encoders and decoders.</p>
+<p>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.</p>
+<p>Decoders can return this value only from <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> 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.</p>
+<p>With decoder, it is possible to call <a class="el" href="check_8h.html#a8d7c3ffabfd024485f03fa209536c746" title="Get the type of the integrity check.">lzma_get_check()</a> immediately after <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> has returned LZMA_UNSUPPORTED_CHECK. This way it is possible to find out what the unsupported Check ID was. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6eaa5b648c18da0f584f621cfdf7fef1bdb" name="a8494e0457e1463d6d2b6836018d87b6eaa5b648c18da0f584f621cfdf7fef1bdb"></a>LZMA_GET_CHECK&#160;</td><td class="fielddoc"><p>Integrity check type is now available. </p>
+<p>This value can be returned only by the <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> 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 <a class="el" href="check_8h.html#a8d7c3ffabfd024485f03fa209536c746" title="Get the type of the integrity check.">lzma_get_check()</a> 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. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6ea567e1464feca03900a5425fb45b2f5b6" name="a8494e0457e1463d6d2b6836018d87b6ea567e1464feca03900a5425fb45b2f5b6"></a>LZMA_MEM_ERROR&#160;</td><td class="fielddoc"><p>Cannot allocate memory. </p>
+<p>Memory allocation failed, or the size of the allocation would be greater than SIZE_MAX.</p>
+<p>Due to internal implementation reasons, the coding cannot be continued even if more memory were made available after LZMA_MEM_ERROR. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6eaa1d705effe6026f32c0fe9756b6326bc" name="a8494e0457e1463d6d2b6836018d87b6eaa1d705effe6026f32c0fe9756b6326bc"></a>LZMA_MEMLIMIT_ERROR&#160;</td><td class="fielddoc"><p>Memory usage limit was reached. </p>
+<p>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 <a class="el" href="base_8h.html#afc49d4cf75b73128a167df3407505f7b" title="Set the memory usage limit.">lzma_memlimit_set()</a>.</p>
+<p>liblzma 5.2.6 and earlier had a bug in single-threaded .xz decoder (<a class="el" href="container_8h.html#a02b7683ef98d8049788961370a8b28c0" title="Initialize .xz Stream decoder.">lzma_stream_decoder()</a>) which made it impossible to continue decoding after LZMA_MEMLIMIT_ERROR even if the limit was increased using <a class="el" href="base_8h.html#afc49d4cf75b73128a167df3407505f7b" title="Set the memory usage limit.">lzma_memlimit_set()</a>. Other decoders worked correctly. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6ea63b7a58949854eb9307f8e351358d56c" name="a8494e0457e1463d6d2b6836018d87b6ea63b7a58949854eb9307f8e351358d56c"></a>LZMA_FORMAT_ERROR&#160;</td><td class="fielddoc"><p>File format not recognized. </p>
+<p>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. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6eaa9ff6dfee36b7aba4fae60706d37425f" name="a8494e0457e1463d6d2b6836018d87b6eaa9ff6dfee36b7aba4fae60706d37425f"></a>LZMA_OPTIONS_ERROR&#160;</td><td class="fielddoc"><p>Invalid or unsupported options. </p>
+<p>Invalid or unsupported options, for example</p><ul>
+<li>unsupported filter(s) or filter options; or</li>
+<li>reserved bits set in headers (decoder only).</li>
+</ul>
+<p>Rebuilding liblzma with more features enabled, or upgrading to a newer version of liblzma may help. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6ea3aa72729a844790e39b4e1101a731dfb" name="a8494e0457e1463d6d2b6836018d87b6ea3aa72729a844790e39b4e1101a731dfb"></a>LZMA_DATA_ERROR&#160;</td><td class="fielddoc"><p>Data is corrupt. </p>
+<p>The usage of this return value is different in encoders and decoders. In both encoder and decoder, the coding cannot continue after this error.</p>
+<p>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).</p>
+<p>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. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6ea9ca0ecb62459bdc84d6af47d16b23ae5" name="a8494e0457e1463d6d2b6836018d87b6ea9ca0ecb62459bdc84d6af47d16b23ae5"></a>LZMA_BUF_ERROR&#160;</td><td class="fielddoc"><p>No progress is possible. </p>
+<p>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.</p>
+<p>This error is not fatal. Coding can be continued normally by providing more input and/or more output space, if possible.</p>
+<p>Typically the first call to <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> 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.</p>
+<p>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. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6ea2dac8d451cb38da8550653d0d7be4ec2" name="a8494e0457e1463d6d2b6836018d87b6ea2dac8d451cb38da8550653d0d7be4ec2"></a>LZMA_PROG_ERROR&#160;</td><td class="fielddoc"><p>Programming error. </p>
+<p>This indicates that the arguments given to the function are invalid or the internal state of the decoder is corrupt.</p><ul>
+<li>Function arguments are invalid or the structures pointed by the argument pointers are invalid e.g. if strm-&gt;next_out has been set to NULL and strm-&gt;avail_out &gt; 0 when calling <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>.</li>
+<li>lzma_* functions have been called in wrong order e.g. <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> was called right after <a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308" title="Free memory allocated for the coder data structures.">lzma_end()</a>.</li>
+<li>If errors occur randomly, the reason might be flaky hardware.</li>
+</ul>
+<p>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. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a8494e0457e1463d6d2b6836018d87b6ea6cf28e5345851f13bd798a4eab8cc939" name="a8494e0457e1463d6d2b6836018d87b6ea6cf28e5345851f13bd798a4eab8cc939"></a>LZMA_SEEK_NEEDED&#160;</td><td class="fielddoc"><p>Request to change the input file position. </p>
+<p>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.</p>
+<p>When this value is returned, the application must seek to the file position given in <a class="el" href="structlzma__stream.html#af7c43a61f3dfeb0b9c8487b7f275054e" title="New seek input position for LZMA_SEEK_NEEDED.">lzma_stream.seek_pos</a>. This value is guaranteed to never exceed the file size that was specified at the coder initialization.</p>
+<p>After seeking the application should read new input and pass it normally via <a class="el" href="structlzma__stream.html#a72fdc738c793f07a5c29715aa57802cf">lzma_stream.next_in</a> and .avail_in. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a id="aa92efcbf3cecfcac79c81fc645fce77e" name="aa92efcbf3cecfcac79c81fc645fce77e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa92efcbf3cecfcac79c81fc645fce77e">&#9670;&#160;</a></span>lzma_action</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77e">lzma_action</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>The 'action' argument for <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> </p>
+<p>After the first use of LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, LZMA_FULL_BARRIER, or LZMA_FINISH, the same 'action' must be used until <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> returns LZMA_STREAM_END. Also, the amount of input (that is, strm-&gt;avail_in) must not be modified by the application until <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> returns LZMA_STREAM_END. Changing the 'action' or modifying the amount of input will make <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> return LZMA_PROG_ERROR. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aa92efcbf3cecfcac79c81fc645fce77ea868472b76492afcaef54020a481890b1" name="aa92efcbf3cecfcac79c81fc645fce77ea868472b76492afcaef54020a481890b1"></a>LZMA_RUN&#160;</td><td class="fielddoc"><p>Continue coding. </p>
+<p>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 <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> call.</p>
+<p>Decoder: Decode as much input as possible and produce as much output as possible. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="aa92efcbf3cecfcac79c81fc645fce77ea14d75152afcda85d215e877fdd9c4170" name="aa92efcbf3cecfcac79c81fc645fce77ea14d75152afcda85d215e877fdd9c4170"></a>LZMA_SYNC_FLUSH&#160;</td><td class="fielddoc"><p>Make all the input available at output. </p>
+<p>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.</p>
+<p>Only some filters support LZMA_SYNC_FLUSH. Trying to use LZMA_SYNC_FLUSH with filters that don't support it will make <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> return LZMA_OPTIONS_ERROR. For example, LZMA1 doesn't support LZMA_SYNC_FLUSH but LZMA2 does.</p>
+<p>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).</p>
+<p>Decoders don't support LZMA_SYNC_FLUSH. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="aa92efcbf3cecfcac79c81fc645fce77eaab46f0d7c721f1ec377e9575eab2586f" name="aa92efcbf3cecfcac79c81fc645fce77eaab46f0d7c721f1ec377e9575eab2586f"></a>LZMA_FULL_FLUSH&#160;</td><td class="fielddoc"><p>Finish encoding of the current Block. </p>
+<p>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 <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> with LZMA_FULL_FLUSH until it returns LZMA_STREAM_END. Then continue normally with LZMA_RUN or finish the Stream with LZMA_FINISH.</p>
+<p>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. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="aa92efcbf3cecfcac79c81fc645fce77eaf7bf60e3555a4d10ffad3ecc3d2e01f1" name="aa92efcbf3cecfcac79c81fc645fce77eaf7bf60e3555a4d10ffad3ecc3d2e01f1"></a>LZMA_FULL_BARRIER&#160;</td><td class="fielddoc"><p>Finish encoding of the current Block. </p>
+<p>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, <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> might return LZMA_STREAM_END as soon as all the input has been consumed (avail_in == 0).</p>
+<p>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 <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> wait until all the threads have finished until more data could be passed to the encoder.</p>
+<p>With a <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> initialized with the single-threaded <a class="el" href="container_8h.html#a1a97aec94c9fedd7646cfa51c4f4cd52" title="Initialize .xz Stream encoder using a custom filter chain.">lzma_stream_encoder()</a> or <a class="el" href="container_8h.html#acbdad999c544872f0f5d242f0d1a4ed4" title="Initialize .xz Stream encoder using a preset number.">lzma_easy_encoder()</a>, LZMA_FULL_BARRIER is an alias for LZMA_FULL_FLUSH. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="aa92efcbf3cecfcac79c81fc645fce77ea7d24fb3c6c144d13bcb091195b8ebec1" name="aa92efcbf3cecfcac79c81fc645fce77ea7d24fb3c6c144d13bcb091195b8ebec1"></a>LZMA_FINISH&#160;</td><td class="fielddoc"><p>Finish the coding operation. </p>
+<p>All the input data must have been given to the encoder (the last bytes can still be pending in next_in). Call <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> 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.</p>
+<p>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. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="a28cc09bc422d5ba1e0187c9f2af5d957" name="a28cc09bc422d5ba1e0187c9f2af5d957"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a28cc09bc422d5ba1e0187c9f2af5d957">&#9670;&#160;</a></span>lzma_code()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_code </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77e">lzma_action</a>&#160;</td>
+ <td class="paramname"><em>action</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Encode or decode data. </p>
+<p>Once the <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> has been successfully initialized (e.g. with <a class="el" href="container_8h.html#a1a97aec94c9fedd7646cfa51c4f4cd52" title="Initialize .xz Stream encoder using a custom filter chain.">lzma_stream_encoder()</a>), the actual encoding or decoding is done using this function. The application has to update strm-&gt;next_in, strm-&gt;avail_in, strm-&gt;next_out, and strm-&gt;avail_out to pass input to and get output from liblzma.</p>
+<p>See the description of the coder-specific initialization function to find out what 'action' values are supported by the coder.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ <tr><td class="paramname">action</td><td>Action for this function to take. Must be a valid lzma_action enum value.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Any valid lzma_ret. See the lzma_ret enum description for more information. </dd></dl>
+
+</div>
+</div>
+<a id="a854ff37464ae1225febf14db1af43308" name="a854ff37464ae1225febf14db1af43308"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a854ff37464ae1225febf14db1af43308">&#9670;&#160;</a></span>lzma_end()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void lzma_end </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Free memory allocated for the coder data structures. </p>
+<p>After lzma_end(strm), strm-&gt;internal is guaranteed to be NULL. No other members of the <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> structure are touched.</p>
+<dl class="section note"><dt>Note</dt><dd>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.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a id="ab6447cd68eeecbd6b88f21daeb8ce751" name="ab6447cd68eeecbd6b88f21daeb8ce751"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab6447cd68eeecbd6b88f21daeb8ce751">&#9670;&#160;</a></span>lzma_get_progress()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void lzma_get_progress </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint64_t *&#160;</td>
+ <td class="paramname"><em>progress_in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint64_t *&#160;</td>
+ <td class="paramname"><em>progress_out</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get progress information. </p>
+<p>In single-threaded mode, applications can get progress information from strm-&gt;total_in and strm-&gt;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.</p>
+<p>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-&gt;total_in and strm-&gt;total_out, respectively.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">progress_in</td><td>Pointer to the number of input bytes processed. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">progress_out</td><td>Pointer to the number of output bytes processed. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a id="a418b210cf206782a73cd9de7dc27f670" name="a418b210cf206782a73cd9de7dc27f670"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a418b210cf206782a73cd9de7dc27f670">&#9670;&#160;</a></span>lzma_memusage()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t lzma_memusage </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the memory usage of decoder filter chain. </p>
+<p>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. <a class="el" href="filter_8h.html#a730f9391e85a5979bcd1b32643ae7176" title="Calculate approximate memory requirements for raw encoder.">lzma_raw_encoder_memusage()</a> or <a class="el" href="filter_8h.html#a58511249ae9206d7de7c5d1f05842297" title="Calculate approximate memory requirements for raw decoder.">lzma_raw_decoder_memusage()</a> to estimate the memory requirements.</p>
+<p>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.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>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.</dd></dl>
+<p>If this function isn't supported by *strm or some other error occurs, zero is returned. </p>
+
+</div>
+</div>
+<a id="ac871bc2ead5d482c6d6b3d51bfec365c" name="ac871bc2ead5d482c6d6b3d51bfec365c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac871bc2ead5d482c6d6b3d51bfec365c">&#9670;&#160;</a></span>lzma_memlimit_get()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t lzma_memlimit_get </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the current memory usage limit. </p>
+<p>This function is supported only when *strm has been initialized with a function that takes a memlimit argument.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>On success, the current memory usage limit is returned (always non-zero). On error, zero is returned. </dd></dl>
+
+</div>
+</div>
+<a id="afc49d4cf75b73128a167df3407505f7b" name="afc49d4cf75b73128a167df3407505f7b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afc49d4cf75b73128a167df3407505f7b">&#9670;&#160;</a></span>lzma_memlimit_set()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_memlimit_set </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint64_t&#160;</td>
+ <td class="paramname"><em>memlimit</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Set the memory usage limit. </p>
+<p>This function is supported only when *strm has been initialized with a function that takes a memlimit argument.</p>
+<p>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 <a class="el" href="base_8h.html#ac871bc2ead5d482c6d6b3d51bfec365c" title="Get the current memory usage limit.">lzma_memlimit_get()</a> will return 1 even if you specify 0 here).</p>
+<p>liblzma 5.2.6 and earlier had a bug in single-threaded .xz decoder (<a class="el" href="container_8h.html#a02b7683ef98d8049788961370a8b28c0" title="Initialize .xz Stream decoder.">lzma_stream_decoder()</a>) which made it impossible to continue decoding after LZMA_MEMLIMIT_ERROR even if the limit was increased using <a class="el" href="base_8h.html#afc49d4cf75b73128a167df3407505f7b" title="Set the memory usage limit.">lzma_memlimit_set()</a>. Other decoders worked correctly.</p>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: New memory usage limit successfully set.</li>
+<li>LZMA_MEMLIMIT_ERROR: The new limit is too small. The limit was not changed.</li>
+<li>LZMA_PROG_ERROR: Invalid arguments, e.g. *strm doesn't support memory usage limit. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/bc_s.png b/doc/api/bc_s.png
new file mode 100644
index 00000000..bb50b827
--- /dev/null
+++ b/doc/api/bc_s.png
Binary files differ
diff --git a/doc/api/bc_sd.png b/doc/api/bc_sd.png
new file mode 100644
index 00000000..8d8be4c2
--- /dev/null
+++ b/doc/api/bc_sd.png
Binary files differ
diff --git a/doc/api/bcj_8h.html b/doc/api/bcj_8h.html
new file mode 100644
index 00000000..a1c90a19
--- /dev/null
+++ b/doc/api/bcj_8h.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma/bcj.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> </div>
+ <div class="headertitle"><div class="title">bcj.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Branch/Call/Jump conversion filters.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__bcj.html">lzma_options_bcj</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options for BCJ filters. <a href="structlzma__options__bcj.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:aa9eac1f580ddde3309518cd153d596b1"><td class="memItemLeft" align="right" valign="top"><a id="aa9eac1f580ddde3309518cd153d596b1" name="aa9eac1f580ddde3309518cd153d596b1"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_FILTER_X86</b>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x04)</td></tr>
+<tr class="memdesc:aa9eac1f580ddde3309518cd153d596b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter for x86 binaries. <br /></td></tr>
+<tr class="separator:aa9eac1f580ddde3309518cd153d596b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab7f667d4a5d319f227f23163cbea086f"><td class="memItemLeft" align="right" valign="top"><a id="ab7f667d4a5d319f227f23163cbea086f" name="ab7f667d4a5d319f227f23163cbea086f"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_FILTER_POWERPC</b>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x05)</td></tr>
+<tr class="memdesc:ab7f667d4a5d319f227f23163cbea086f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter for Big endian PowerPC binaries. <br /></td></tr>
+<tr class="separator:ab7f667d4a5d319f227f23163cbea086f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2fe36218a38f400e1ce40820758f7427"><td class="memItemLeft" align="right" valign="top"><a id="a2fe36218a38f400e1ce40820758f7427" name="a2fe36218a38f400e1ce40820758f7427"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_FILTER_IA64</b>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x06)</td></tr>
+<tr class="memdesc:a2fe36218a38f400e1ce40820758f7427"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter for IA-64 (Itanium) binaries. <br /></td></tr>
+<tr class="separator:a2fe36218a38f400e1ce40820758f7427"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a495a58f63ebc7a8b756099efba492f8b"><td class="memItemLeft" align="right" valign="top"><a id="a495a58f63ebc7a8b756099efba492f8b" name="a495a58f63ebc7a8b756099efba492f8b"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_FILTER_ARM</b>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x07)</td></tr>
+<tr class="memdesc:a495a58f63ebc7a8b756099efba492f8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter for ARM binaries. <br /></td></tr>
+<tr class="separator:a495a58f63ebc7a8b756099efba492f8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ec62e7e5e7df3d9af5b2ea3f857689a"><td class="memItemLeft" align="right" valign="top"><a id="a5ec62e7e5e7df3d9af5b2ea3f857689a" name="a5ec62e7e5e7df3d9af5b2ea3f857689a"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_FILTER_ARMTHUMB</b>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x08)</td></tr>
+<tr class="memdesc:a5ec62e7e5e7df3d9af5b2ea3f857689a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter for ARM-Thumb binaries. <br /></td></tr>
+<tr class="separator:a5ec62e7e5e7df3d9af5b2ea3f857689a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a50941088e93ef659c6b000bbcaf58143"><td class="memItemLeft" align="right" valign="top"><a id="a50941088e93ef659c6b000bbcaf58143" name="a50941088e93ef659c6b000bbcaf58143"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_FILTER_SPARC</b>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x09)</td></tr>
+<tr class="memdesc:a50941088e93ef659c6b000bbcaf58143"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter for SPARC binaries. <br /></td></tr>
+<tr class="separator:a50941088e93ef659c6b000bbcaf58143"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a01765158cd31cac21b272b180628fc4b"><td class="memItemLeft" align="right" valign="top"><a id="a01765158cd31cac21b272b180628fc4b" name="a01765158cd31cac21b272b180628fc4b"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_FILTER_ARM64</b>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x0A)</td></tr>
+<tr class="memdesc:a01765158cd31cac21b272b180628fc4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter for ARM64 binaries. <br /></td></tr>
+<tr class="separator:a01765158cd31cac21b272b180628fc4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a932e9d66e945f5601b8fad7445a9b40c"><td class="memItemLeft" align="right" valign="top"><a id="a932e9d66e945f5601b8fad7445a9b40c" name="a932e9d66e945f5601b8fad7445a9b40c"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_FILTER_RISCV</b>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x0B)</td></tr>
+<tr class="memdesc:a932e9d66e945f5601b8fad7445a9b40c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter for RISC-V binaries. <br /></td></tr>
+<tr class="separator:a932e9d66e945f5601b8fad7445a9b40c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Branch/Call/Jump conversion filters. </p>
+<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
+</div></div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/block_8h.html b/doc/api/block_8h.html
new file mode 100644
index 00000000..01a0a0dd
--- /dev/null
+++ b/doc/api/block_8h.html
@@ -0,0 +1,764 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma/block.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">block.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>.xz Block handling
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__block.html">lzma_block</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options for the Block and Block Header encoders and decoders. <a href="structlzma__block.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a9263c5b314592e658772e5eb83ffdd78"><td class="memItemLeft" align="right" valign="top"><a id="a9263c5b314592e658772e5eb83ffdd78" name="a9263c5b314592e658772e5eb83ffdd78"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_BLOCK_HEADER_SIZE_MIN</b>&#160;&#160;&#160;8</td></tr>
+<tr class="separator:a9263c5b314592e658772e5eb83ffdd78"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af7a39189d0721c55313a401b63811e49"><td class="memItemLeft" align="right" valign="top"><a id="af7a39189d0721c55313a401b63811e49" name="af7a39189d0721c55313a401b63811e49"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_BLOCK_HEADER_SIZE_MAX</b>&#160;&#160;&#160;1024</td></tr>
+<tr class="separator:af7a39189d0721c55313a401b63811e49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac025c940683a70f4c7f956bad814fd5f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#ac025c940683a70f4c7f956bad814fd5f">lzma_block_header_size_decode</a>(b)&#160;&#160;&#160;(((uint32_t)(b) + 1) * 4)</td></tr>
+<tr class="memdesc:ac025c940683a70f4c7f956bad814fd5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode the Block Header Size field. <br /></td></tr>
+<tr class="separator:ac025c940683a70f4c7f956bad814fd5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ae9b47abc872d0b02c2da9d3fa5a7dacd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd">lzma_block_header_size</a> (<a class="el" href="structlzma__block.html">lzma_block</a> *block) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:ae9b47abc872d0b02c2da9d3fa5a7dacd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate Block Header Size. <br /></td></tr>
+<tr class="separator:ae9b47abc872d0b02c2da9d3fa5a7dacd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0eedbd6331d5708ea963260e6f2a92d0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0">lzma_block_header_encode</a> (const <a class="el" href="structlzma__block.html">lzma_block</a> *block, uint8_t *out) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a0eedbd6331d5708ea963260e6f2a92d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode Block Header. <br /></td></tr>
+<tr class="separator:a0eedbd6331d5708ea963260e6f2a92d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f5487c21a7b36a8bd17be36074d43c9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9">lzma_block_header_decode</a> (<a class="el" href="structlzma__block.html">lzma_block</a> *block, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, const uint8_t *in) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a7f5487c21a7b36a8bd17be36074d43c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode Block Header. <br /></td></tr>
+<tr class="separator:a7f5487c21a7b36a8bd17be36074d43c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c3e102d76db06a07126a569abc6e2bc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#a6c3e102d76db06a07126a569abc6e2bc">lzma_block_compressed_size</a> (<a class="el" href="structlzma__block.html">lzma_block</a> *block, <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> unpadded_size) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a6c3e102d76db06a07126a569abc6e2bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate and set Compressed Size according to Unpadded Size. <br /></td></tr>
+<tr class="separator:a6c3e102d76db06a07126a569abc6e2bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a412d5605280fa29befae1b89e344bf30"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30">lzma_block_unpadded_size</a> (const <a class="el" href="structlzma__block.html">lzma_block</a> *block) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:a412d5605280fa29befae1b89e344bf30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate Unpadded Size. <br /></td></tr>
+<tr class="separator:a412d5605280fa29befae1b89e344bf30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a694424f9dfdd5151e01debac1c501fa9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#a694424f9dfdd5151e01debac1c501fa9">lzma_block_total_size</a> (const <a class="el" href="structlzma__block.html">lzma_block</a> *block) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:a694424f9dfdd5151e01debac1c501fa9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the total encoded size of a Block. <br /></td></tr>
+<tr class="separator:a694424f9dfdd5151e01debac1c501fa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2218a49025a0b44f9a6f9d6d24359359"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359">lzma_block_encoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, <a class="el" href="structlzma__block.html">lzma_block</a> *block) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a2218a49025a0b44f9a6f9d6d24359359"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .xz Block encoder. <br /></td></tr>
+<tr class="separator:a2218a49025a0b44f9a6f9d6d24359359"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa92c73b2a228efe921fa2376aa7adc92"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92">lzma_block_decoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, <a class="el" href="structlzma__block.html">lzma_block</a> *block) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:aa92c73b2a228efe921fa2376aa7adc92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .xz Block decoder. <br /></td></tr>
+<tr class="separator:aa92c73b2a228efe921fa2376aa7adc92"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a58ff73e2572b529f48cc590bfffe5b4f"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#a58ff73e2572b529f48cc590bfffe5b4f">lzma_block_buffer_bound</a> (size_t uncompressed_size) lzma_nothrow</td></tr>
+<tr class="memdesc:a58ff73e2572b529f48cc590bfffe5b4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate maximum output size for single-call Block encoding. <br /></td></tr>
+<tr class="separator:a58ff73e2572b529f48cc590bfffe5b4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af415fa5130ab64e8760e9c39e856fa54"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54">lzma_block_buffer_encode</a> (<a class="el" href="structlzma__block.html">lzma_block</a> *block, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *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</td></tr>
+<tr class="memdesc:af415fa5130ab64e8760e9c39e856fa54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call .xz Block encoder. <br /></td></tr>
+<tr class="separator:af415fa5130ab64e8760e9c39e856fa54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a260f634ccd5f54fb98f570d8d92d8c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#a5a260f634ccd5f54fb98f570d8d92d8c">lzma_block_uncomp_encode</a> (<a class="el" href="structlzma__block.html">lzma_block</a> *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</td></tr>
+<tr class="memdesc:a5a260f634ccd5f54fb98f570d8d92d8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call uncompressed .xz Block encoder. <br /></td></tr>
+<tr class="separator:a5a260f634ccd5f54fb98f570d8d92d8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c6eb869d91b08f68648b1aa7a32ee9f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f">lzma_block_buffer_decode</a> (<a class="el" href="structlzma__block.html">lzma_block</a> *block, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *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</td></tr>
+<tr class="memdesc:a0c6eb869d91b08f68648b1aa7a32ee9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call .xz Block decoder. <br /></td></tr>
+<tr class="separator:a0c6eb869d91b08f68648b1aa7a32ee9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>.xz Block handling </p>
+<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="ac025c940683a70f4c7f956bad814fd5f" name="ac025c940683a70f4c7f956bad814fd5f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac025c940683a70f4c7f956bad814fd5f">&#9670;&#160;</a></span>lzma_block_header_size_decode</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define lzma_block_header_size_decode</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">b</td><td>)</td>
+ <td>&#160;&#160;&#160;(((uint32_t)(b) + 1) * 4)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Decode the Block Header Size field. </p>
+<p>To decode Block Header using <a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a>, the size of the Block Header has to be known and stored into <a class="el" href="structlzma__block.html#a6689c4f7524b2c05772a2d6151138610" title="Size of the Block Header field in bytes.">lzma_block.header_size</a>. 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.</p>
+<p>There is no encoding macro because <a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a> and <a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a> should be used. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ae9b47abc872d0b02c2da9d3fa5a7dacd" name="ae9b47abc872d0b02c2da9d3fa5a7dacd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae9b47abc872d0b02c2da9d3fa5a7dacd">&#9670;&#160;</a></span>lzma_block_header_size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_block_header_size </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
+ <td class="paramname"><em>block</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Calculate Block Header Size. </p>
+<p>Calculate the minimum size needed for the Block Header field using the settings specified in the <a class="el" href="structlzma__block.html" title="Options for the Block and Block Header encoders and decoders.">lzma_block</a> 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 <a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a> will add Header Padding.</p>
+<dl class="section note"><dt>Note</dt><dd>This doesn't check that all the options are valid i.e. this may return LZMA_OK even if <a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a> or <a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a> would fail. If you want to validate the filter chain, consider using lzma_memlimit_encoder() which as a side-effect validates the filter chain.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">block</td><td>Block options</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Size calculated successfully and stored to block-&gt;header_size.</li>
+<li>LZMA_OPTIONS_ERROR: Unsupported version, filters or filter options.</li>
+<li>LZMA_PROG_ERROR: Invalid values like compressed_size == 0. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a0eedbd6331d5708ea963260e6f2a92d0" name="a0eedbd6331d5708ea963260e6f2a92d0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0eedbd6331d5708ea963260e6f2a92d0">&#9670;&#160;</a></span>lzma_block_header_encode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_block_header_encode </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
+ <td class="paramname"><em>block</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t *&#160;</td>
+ <td class="paramname"><em>out</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Encode Block Header. </p>
+<p>The caller must have calculated the size of the Block Header already with <a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a>. If a value larger than the one calculated by <a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a> is used, the Block Header will be padded to the specified size.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">block</td><td>Block options to be encoded. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer. This must be at least block-&gt;header_size bytes.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Encoding was successful. block-&gt;header_size bytes were written to output buffer.</li>
+<li>LZMA_OPTIONS_ERROR: Invalid or unsupported options.</li>
+<li>LZMA_PROG_ERROR: Invalid arguments, for example block-&gt;header_size is invalid or block-&gt;filters is NULL. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a7f5487c21a7b36a8bd17be36074d43c9" name="a7f5487c21a7b36a8bd17be36074d43c9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7f5487c21a7b36a8bd17be36074d43c9">&#9670;&#160;</a></span>lzma_block_header_decode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_block_header_decode </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
+ <td class="paramname"><em>block</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const uint8_t *&#160;</td>
+ <td class="paramname"><em>in</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Decode Block Header. </p>
+<p>block-&gt;version should (usually) be set to the highest value supported by the application. If the application sets block-&gt;version to a value higher than supported by the current liblzma version, this function will downgrade block-&gt;version to the highest value supported by it. Thus one should check the value of block-&gt;version after calling this function if block-&gt;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-&gt;version.</p>
+<p>The size of the Block Header must have already been decoded with <a class="el" href="block_8h.html#ac025c940683a70f4c7f956bad814fd5f" title="Decode the Block Header Size field.">lzma_block_header_size_decode()</a> macro and stored to block-&gt;header_size.</p>
+<p>The integrity check type from Stream Header must have been stored to block-&gt;check.</p>
+<p>block-&gt;filters must have been allocated, but they don't need to be initialized (possible existing filter options are not freed).</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">block</td><td>Destination for Block options </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() (and also free() if an error occurs). </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer. This must be at least block-&gt;header_size bytes.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Decoding was successful. block-&gt;header_size bytes were read from the input buffer.</li>
+<li>LZMA_OPTIONS_ERROR: The Block Header specifies some unsupported options such as unsupported filters. This can happen also if block-&gt;version was set to a too low value compared to what would be required to properly represent the information stored in the Block Header.</li>
+<li>LZMA_DATA_ERROR: Block Header is corrupt, for example, the CRC32 doesn't match.</li>
+<li>LZMA_PROG_ERROR: Invalid arguments, for example block-&gt;header_size is invalid or block-&gt;filters is NULL. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a6c3e102d76db06a07126a569abc6e2bc" name="a6c3e102d76db06a07126a569abc6e2bc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6c3e102d76db06a07126a569abc6e2bc">&#9670;&#160;</a></span>lzma_block_compressed_size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_block_compressed_size </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
+ <td class="paramname"><em>block</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
+ <td class="paramname"><em>unpadded_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Validate and set Compressed Size according to Unpadded Size. </p>
+<p>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:</p>
+<ul>
+<li>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.</li>
+<li>If Compressed Size was present in Block Header, the new value calculated from Unpadded Size is compared against the value from Block Header.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>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.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">block</td><td>Block options: block-&gt;header_size must already be set with <a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a>. </td></tr>
+ <tr><td class="paramname">unpadded_size</td><td>Unpadded Size from the Index field in bytes</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: block-&gt;compressed_size was set successfully.</li>
+<li>LZMA_DATA_ERROR: unpadded_size is too small compared to block-&gt;header_size and lzma_check_size(block-&gt;check).</li>
+<li>LZMA_PROG_ERROR: Some values are invalid. For example, block-&gt;header_size must be a multiple of four and between 8 and 1024 inclusive. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a412d5605280fa29befae1b89e344bf30" name="a412d5605280fa29befae1b89e344bf30"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a412d5605280fa29befae1b89e344bf30">&#9670;&#160;</a></span>lzma_block_unpadded_size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_block_unpadded_size </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
+ <td class="paramname"><em>block</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Calculate Unpadded Size. </p>
+<p>The Index field stores Unpadded Size and Uncompressed Size. The latter can be taken directly from the <a class="el" href="structlzma__block.html" title="Options for the Block and Block Header encoders and decoders.">lzma_block</a> 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.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">block</td><td>Block options: block-&gt;header_size must already be set with <a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a>.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Unpadded Size on success, or zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a694424f9dfdd5151e01debac1c501fa9" name="a694424f9dfdd5151e01debac1c501fa9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a694424f9dfdd5151e01debac1c501fa9">&#9670;&#160;</a></span>lzma_block_total_size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_block_total_size </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
+ <td class="paramname"><em>block</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Calculate the total encoded size of a Block. </p>
+<p>This is equivalent to <a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30" title="Calculate Unpadded Size.">lzma_block_unpadded_size()</a> except that the returned value includes the size of the Block Padding field.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">block</td><td>Block options: block-&gt;header_size must already be set with <a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a>.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>On success, total encoded size of the Block. On error, zero is returned. </dd></dl>
+
+</div>
+</div>
+<a id="a2218a49025a0b44f9a6f9d6d24359359" name="a2218a49025a0b44f9a6f9d6d24359359"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2218a49025a0b44f9a6f9d6d24359359">&#9670;&#160;</a></span>lzma_block_encoder()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_block_encoder </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
+ <td class="paramname"><em>block</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialize .xz Block encoder. </p>
+<p>Valid actions for <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> are LZMA_RUN, LZMA_SYNC_FLUSH (only if the filter chain supports it), and LZMA_FINISH.</p>
+<p>The Block encoder encodes the Block Data, Block Padding, and Check value. It does NOT encode the Block Header which can be encoded with <a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ <tr><td class="paramname">block</td><td>Block options: block-&gt;version, block-&gt;check, and block-&gt;filters must have been initialized.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: All good, continue with <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>.</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_UNSUPPORTED_CHECK: block-&gt;check specifies a Check ID that is not supported by this build of liblzma. Initializing the encoder failed.</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="aa92c73b2a228efe921fa2376aa7adc92" name="aa92c73b2a228efe921fa2376aa7adc92"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa92c73b2a228efe921fa2376aa7adc92">&#9670;&#160;</a></span>lzma_block_decoder()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_block_decoder </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
+ <td class="paramname"><em>block</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialize .xz Block decoder. </p>
+<p>Valid actions for <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> are LZMA_RUN and LZMA_FINISH. Using LZMA_FINISH is not required. It is supported only for convenience.</p>
+<p>The Block decoder decodes the Block Data, Block Padding, and Check value. It does NOT decode the Block Header which can be decoded with <a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ <tr><td class="paramname">block</td><td>Block options</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: All good, continue with <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>.</li>
+<li>LZMA_PROG_ERROR</li>
+<li>LZMA_MEM_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a58ff73e2572b529f48cc590bfffe5b4f" name="a58ff73e2572b529f48cc590bfffe5b4f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a58ff73e2572b529f48cc590bfffe5b4f">&#9670;&#160;</a></span>lzma_block_buffer_bound()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">size_t lzma_block_buffer_bound </td>
+ <td>(</td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>uncompressed_size</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Calculate maximum output size for single-call Block encoding. </p>
+<p>This is equivalent to <a class="el" href="container_8h.html#a66d4366a47b8332bff2a512f44f5c45e" title="Calculate output buffer size for single-call Stream encoder.">lzma_stream_buffer_bound()</a> but for .xz Blocks. See the documentation of <a class="el" href="container_8h.html#a66d4366a47b8332bff2a512f44f5c45e" title="Calculate output buffer size for single-call Stream encoder.">lzma_stream_buffer_bound()</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">uncompressed_size</td><td>Size of the data to be encoded with the single-call Block encoder.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Maximum output size in bytes for single-call Block encoding. </dd></dl>
+
+</div>
+</div>
+<a id="af415fa5130ab64e8760e9c39e856fa54" name="af415fa5130ab64e8760e9c39e856fa54"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af415fa5130ab64e8760e9c39e856fa54">&#9670;&#160;</a></span>lzma_block_buffer_encode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_block_buffer_encode </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
+ <td class="paramname"><em>block</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const uint8_t *&#160;</td>
+ <td class="paramname"><em>in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>in_size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t *&#160;</td>
+ <td class="paramname"><em>out</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>out_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>out_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-call .xz Block encoder. </p>
+<p>In contrast to the multi-call encoder initialized with <a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a>, 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.</p>
+<p>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-&gt;filters, because that isn't necessarily the filter chain that was actually used to encode the data. <a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30" title="Calculate Unpadded Size.">lzma_block_unpadded_size()</a> still works normally, because it doesn't read the filters array.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">block</td><td>Block options: block-&gt;version, block-&gt;check, and block-&gt;filters must have been initialized. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Encoding was successful.</li>
+<li>LZMA_BUF_ERROR: Not enough output buffer space.</li>
+<li>LZMA_UNSUPPORTED_CHECK</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_DATA_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a5a260f634ccd5f54fb98f570d8d92d8c" name="a5a260f634ccd5f54fb98f570d8d92d8c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5a260f634ccd5f54fb98f570d8d92d8c">&#9670;&#160;</a></span>lzma_block_uncomp_encode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_block_uncomp_encode </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
+ <td class="paramname"><em>block</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const uint8_t *&#160;</td>
+ <td class="paramname"><em>in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>in_size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t *&#160;</td>
+ <td class="paramname"><em>out</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>out_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>out_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-call uncompressed .xz Block encoder. </p>
+<p>This is like <a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54" title="Single-call .xz Block encoder.">lzma_block_buffer_encode()</a> 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 <a class="el" href="block_8h.html#a58ff73e2572b529f48cc590bfffe5b4f" title="Calculate maximum output size for single-call Block encoding.">lzma_block_buffer_bound()</a>.</p>
+<p>Since the data won't be compressed, this function ignores block-&gt;filters. This function doesn't take <a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> because this function doesn't allocate any memory from the heap.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">block</td><td>Block options: block-&gt;version, block-&gt;check, and block-&gt;filters must have been initialized. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Encoding was successful.</li>
+<li>LZMA_BUF_ERROR: Not enough output buffer space.</li>
+<li>LZMA_UNSUPPORTED_CHECK</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_DATA_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a0c6eb869d91b08f68648b1aa7a32ee9f" name="a0c6eb869d91b08f68648b1aa7a32ee9f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0c6eb869d91b08f68648b1aa7a32ee9f">&#9670;&#160;</a></span>lzma_block_buffer_decode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_block_buffer_decode </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__block.html">lzma_block</a> *&#160;</td>
+ <td class="paramname"><em>block</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const uint8_t *&#160;</td>
+ <td class="paramname"><em>in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>in_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>in_size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t *&#160;</td>
+ <td class="paramname"><em>out</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>out_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>out_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-call .xz Block decoder. </p>
+<p>This is single-call equivalent of <a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a>, and requires that the caller has already decoded Block Header and checked its memory usage.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">block</td><td>Block options </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in_pos</td><td>The next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer; the first byte that won't be read is in[in_size]. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Decoding was successful.</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_DATA_ERROR</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_BUF_ERROR: Output buffer was too small.</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/check_8h.html b/doc/api/check_8h.html
new file mode 100644
index 00000000..78c192ab
--- /dev/null
+++ b/doc/api/check_8h.html
@@ -0,0 +1,346 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma/check.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">check.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Integrity checks.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:acd221ababe30230d9647aab469ad80cb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="check_8h.html#acd221ababe30230d9647aab469ad80cb">LZMA_CHECK_ID_MAX</a>&#160;&#160;&#160;15</td></tr>
+<tr class="memdesc:acd221ababe30230d9647aab469ad80cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum valid Check ID. <br /></td></tr>
+<tr class="separator:acd221ababe30230d9647aab469ad80cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a379e931cf86351ab1d97896cda9abbe0"><td class="memItemLeft" align="right" valign="top"><a id="a379e931cf86351ab1d97896cda9abbe0" name="a379e931cf86351ab1d97896cda9abbe0"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_CHECK_SIZE_MAX</b>&#160;&#160;&#160;64</td></tr>
+<tr class="memdesc:a379e931cf86351ab1d97896cda9abbe0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum size of a Check field. <br /></td></tr>
+<tr class="separator:a379e931cf86351ab1d97896cda9abbe0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a0a6100c719ac9aa49be3fdf7519e8c3f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> { <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa7b9851d75abfabc08d7fc5b4aaeb6f20">LZMA_CHECK_NONE</a> = 0
+, <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa0be65014a40b5cb4ab32252b3709bef7">LZMA_CHECK_CRC32</a> = 1
+, <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa87b4b0697a1e1ccb6766dd5c2fa24afc">LZMA_CHECK_CRC64</a> = 4
+, <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3faf26a55ddd204a50ae87ec3432e7bc309">LZMA_CHECK_SHA256</a> = 10
+ }</td></tr>
+<tr class="memdesc:a0a6100c719ac9aa49be3fdf7519e8c3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the integrity check (Check ID) <a href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">More...</a><br /></td></tr>
+<tr class="separator:a0a6100c719ac9aa49be3fdf7519e8c3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ae9391ed2acfad0ce9357b68c608f07d8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="check_8h.html#ae9391ed2acfad0ce9357b68c608f07d8">lzma_check_is_supported</a> (<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> check) lzma_nothrow lzma_attr_const</td></tr>
+<tr class="memdesc:ae9391ed2acfad0ce9357b68c608f07d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if the given Check ID is supported. <br /></td></tr>
+<tr class="separator:ae9391ed2acfad0ce9357b68c608f07d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd3fda19575d9d4f864c626c02b7cb48"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="check_8h.html#afd3fda19575d9d4f864c626c02b7cb48">lzma_check_size</a> (<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> check) lzma_nothrow lzma_attr_const</td></tr>
+<tr class="memdesc:afd3fda19575d9d4f864c626c02b7cb48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of the Check field with the given Check ID. <br /></td></tr>
+<tr class="separator:afd3fda19575d9d4f864c626c02b7cb48"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a760b569cce91bdd01e4ce9d78823c96d"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="check_8h.html#a760b569cce91bdd01e4ce9d78823c96d">lzma_crc32</a> (const uint8_t *buf, size_t size, uint32_t crc) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:a760b569cce91bdd01e4ce9d78823c96d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate CRC32. <br /></td></tr>
+<tr class="separator:a760b569cce91bdd01e4ce9d78823c96d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aff2e74ce671b9f82a96adb549c68cea2"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="check_8h.html#aff2e74ce671b9f82a96adb549c68cea2">lzma_crc64</a> (const uint8_t *buf, size_t size, uint64_t crc) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:aff2e74ce671b9f82a96adb549c68cea2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate CRC64. <br /></td></tr>
+<tr class="separator:aff2e74ce671b9f82a96adb549c68cea2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d7c3ffabfd024485f03fa209536c746"><td class="memItemLeft" align="right" valign="top"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="check_8h.html#a8d7c3ffabfd024485f03fa209536c746">lzma_get_check</a> (const <a class="el" href="structlzma__stream.html">lzma_stream</a> *strm) lzma_nothrow</td></tr>
+<tr class="memdesc:a8d7c3ffabfd024485f03fa209536c746"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the type of the integrity check. <br /></td></tr>
+<tr class="separator:a8d7c3ffabfd024485f03fa209536c746"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Integrity checks. </p>
+<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="acd221ababe30230d9647aab469ad80cb" name="acd221ababe30230d9647aab469ad80cb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acd221ababe30230d9647aab469ad80cb">&#9670;&#160;</a></span>LZMA_CHECK_ID_MAX</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_CHECK_ID_MAX&#160;&#160;&#160;15</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Maximum valid Check ID. </p>
+<p>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 <a class="el" href="container_8h.html" title="File formats.">container.h</a>. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="a0a6100c719ac9aa49be3fdf7519e8c3f" name="a0a6100c719ac9aa49be3fdf7519e8c3f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0a6100c719ac9aa49be3fdf7519e8c3f">&#9670;&#160;</a></span>lzma_check</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the integrity check (Check ID) </p>
+<p>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. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a0a6100c719ac9aa49be3fdf7519e8c3fa7b9851d75abfabc08d7fc5b4aaeb6f20" name="a0a6100c719ac9aa49be3fdf7519e8c3fa7b9851d75abfabc08d7fc5b4aaeb6f20"></a>LZMA_CHECK_NONE&#160;</td><td class="fielddoc"><p>No Check is calculated.</p>
+<p>Size of the Check field: 0 bytes </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a0a6100c719ac9aa49be3fdf7519e8c3fa0be65014a40b5cb4ab32252b3709bef7" name="a0a6100c719ac9aa49be3fdf7519e8c3fa0be65014a40b5cb4ab32252b3709bef7"></a>LZMA_CHECK_CRC32&#160;</td><td class="fielddoc"><p>CRC32 using the polynomial from the IEEE 802.3 standard</p>
+<p>Size of the Check field: 4 bytes </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a0a6100c719ac9aa49be3fdf7519e8c3fa87b4b0697a1e1ccb6766dd5c2fa24afc" name="a0a6100c719ac9aa49be3fdf7519e8c3fa87b4b0697a1e1ccb6766dd5c2fa24afc"></a>LZMA_CHECK_CRC64&#160;</td><td class="fielddoc"><p>CRC64 using the polynomial from the ECMA-182 standard</p>
+<p>Size of the Check field: 8 bytes </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a0a6100c719ac9aa49be3fdf7519e8c3faf26a55ddd204a50ae87ec3432e7bc309" name="a0a6100c719ac9aa49be3fdf7519e8c3faf26a55ddd204a50ae87ec3432e7bc309"></a>LZMA_CHECK_SHA256&#160;</td><td class="fielddoc"><p>SHA-256</p>
+<p>Size of the Check field: 32 bytes </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ae9391ed2acfad0ce9357b68c608f07d8" name="ae9391ed2acfad0ce9357b68c608f07d8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae9391ed2acfad0ce9357b68c608f07d8">&#9670;&#160;</a></span>lzma_check_is_supported()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> lzma_check_is_supported </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td>
+ <td class="paramname"><em>check</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Test if the given Check ID is supported. </p>
+<p>LZMA_CHECK_NONE and LZMA_CHECK_CRC32 are always supported (even if liblzma is built with limited features).</p>
+<dl class="section note"><dt>Note</dt><dd>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.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check</td><td>Check ID</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>lzma_bool:<ul>
+<li>true if Check ID is supported by this liblzma build.</li>
+<li>false otherwise. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="afd3fda19575d9d4f864c626c02b7cb48" name="afd3fda19575d9d4f864c626c02b7cb48"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afd3fda19575d9d4f864c626c02b7cb48">&#9670;&#160;</a></span>lzma_check_size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_check_size </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td>
+ <td class="paramname"><em>check</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the size of the Check field with the given Check ID. </p>
+<p>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 }</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">check</td><td>Check ID</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Size of the Check field in bytes. If the argument is not in the range [0, 15], UINT32_MAX is returned. </dd></dl>
+
+</div>
+</div>
+<a id="a760b569cce91bdd01e4ce9d78823c96d" name="a760b569cce91bdd01e4ce9d78823c96d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a760b569cce91bdd01e4ce9d78823c96d">&#9670;&#160;</a></span>lzma_crc32()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_crc32 </td>
+ <td>(</td>
+ <td class="paramtype">const uint8_t *&#160;</td>
+ <td class="paramname"><em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>crc</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Calculate CRC32. </p>
+<p>Calculate CRC32 using the polynomial from the IEEE 802.3 standard.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">buf</td><td>Pointer to the input buffer </td></tr>
+ <tr><td class="paramname">size</td><td>Size of the input buffer </td></tr>
+ <tr><td class="paramname">crc</td><td>Previously 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.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Updated CRC value, which can be passed to this function again to continue CRC calculation. </dd></dl>
+
+</div>
+</div>
+<a id="aff2e74ce671b9f82a96adb549c68cea2" name="aff2e74ce671b9f82a96adb549c68cea2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aff2e74ce671b9f82a96adb549c68cea2">&#9670;&#160;</a></span>lzma_crc64()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t lzma_crc64 </td>
+ <td>(</td>
+ <td class="paramtype">const uint8_t *&#160;</td>
+ <td class="paramname"><em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint64_t&#160;</td>
+ <td class="paramname"><em>crc</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Calculate CRC64. </p>
+<p>Calculate CRC64 using the polynomial from the ECMA-182 standard.</p>
+<p>This function is used similarly to <a class="el" href="check_8h.html#a760b569cce91bdd01e4ce9d78823c96d" title="Calculate CRC32.">lzma_crc32()</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">buf</td><td>Pointer to the input buffer </td></tr>
+ <tr><td class="paramname">size</td><td>Size of the input buffer </td></tr>
+ <tr><td class="paramname">crc</td><td>Previously 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.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Updated CRC value, which can be passed to this function again to continue CRC calculation. </dd></dl>
+
+</div>
+</div>
+<a id="a8d7c3ffabfd024485f03fa209536c746" name="a8d7c3ffabfd024485f03fa209536c746"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8d7c3ffabfd024485f03fa209536c746">&#9670;&#160;</a></span>lzma_get_check()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> lzma_get_check </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the type of the integrity check. </p>
+<p>This function can be called only immediately after <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> has returned LZMA_NO_CHECK, LZMA_UNSUPPORTED_CHECK, or LZMA_GET_CHECK. Calling this function in any other situation has undefined behavior.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> meeting the above conditions.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Check ID in the <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a>, or undefined if called improperly. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/classes.html b/doc/api/classes.html
new file mode 100644
index 00000000..c0fd5e6c
--- /dev/null
+++ b/doc/api/classes.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): Data Structure Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">Data Structure Index</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_L">L</a></div>
+<div class="classindex">
+<dl class="classindex even">
+<dt class="alphachar"><a id="letter_L" name="letter_L">L</a></dt>
+<dd><a class="el" href="structlzma__allocator.html">lzma_allocator</a></dd><dd><a class="el" href="structlzma__block.html">lzma_block</a></dd><dd><a class="el" href="structlzma__filter.html">lzma_filter</a></dd><dd><a class="el" href="structlzma__index__iter.html">lzma_index_iter</a></dd><dd><a class="el" href="structlzma__mt.html">lzma_mt</a></dd><dd><a class="el" href="structlzma__options__bcj.html">lzma_options_bcj</a></dd><dd><a class="el" href="structlzma__options__delta.html">lzma_options_delta</a></dd><dd><a class="el" href="structlzma__options__lzma.html">lzma_options_lzma</a></dd><dd><a class="el" href="structlzma__stream.html">lzma_stream</a></dd><dd><a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a></dd></dl>
+</div>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/closed.png b/doc/api/closed.png
new file mode 100644
index 00000000..91f4888e
--- /dev/null
+++ b/doc/api/closed.png
Binary files differ
diff --git a/doc/api/container_8h.html b/doc/api/container_8h.html
new file mode 100644
index 00000000..080f4ebd
--- /dev/null
+++ b/doc/api/container_8h.html
@@ -0,0 +1,1317 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma/container.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">container.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>File formats.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__mt.html">lzma_mt</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multithreading options. <a href="structlzma__mt.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:af3ca20ff228b363a82515c1aee9e27bc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#af3ca20ff228b363a82515c1aee9e27bc">LZMA_PRESET_DEFAULT</a>&#160;&#160;&#160;UINT32_C(6)</td></tr>
+<tr class="memdesc:af3ca20ff228b363a82515c1aee9e27bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default compression preset. <br /></td></tr>
+<tr class="separator:af3ca20ff228b363a82515c1aee9e27bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a97e40265e355a21bd2465aaa5b85f03d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a97e40265e355a21bd2465aaa5b85f03d">LZMA_PRESET_LEVEL_MASK</a>&#160;&#160;&#160;UINT32_C(0x1F)</td></tr>
+<tr class="memdesc:a97e40265e355a21bd2465aaa5b85f03d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mask for preset level. <br /></td></tr>
+<tr class="separator:a97e40265e355a21bd2465aaa5b85f03d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af524fe9af5737820fdadcd40a2c26deb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#af524fe9af5737820fdadcd40a2c26deb">LZMA_PRESET_EXTREME</a>&#160;&#160;&#160;(UINT32_C(1) &lt;&lt; 31)</td></tr>
+<tr class="memdesc:af524fe9af5737820fdadcd40a2c26deb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extreme compression preset. <br /></td></tr>
+<tr class="separator:af524fe9af5737820fdadcd40a2c26deb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ada9cd20febb28b5ed6656de9184a86e9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#ada9cd20febb28b5ed6656de9184a86e9">LZMA_TELL_NO_CHECK</a>&#160;&#160;&#160;UINT32_C(0x01)</td></tr>
+<tr class="separator:ada9cd20febb28b5ed6656de9184a86e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae21fb746037c82735d40d428c462e078"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#ae21fb746037c82735d40d428c462e078">LZMA_TELL_UNSUPPORTED_CHECK</a>&#160;&#160;&#160;UINT32_C(0x02)</td></tr>
+<tr class="separator:ae21fb746037c82735d40d428c462e078"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0bdde702a77ff42b90a99c0bf4147b6b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a0bdde702a77ff42b90a99c0bf4147b6b">LZMA_TELL_ANY_CHECK</a>&#160;&#160;&#160;UINT32_C(0x04)</td></tr>
+<tr class="separator:a0bdde702a77ff42b90a99c0bf4147b6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1289925ae1c63a8e86f69f3657118a4d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a1289925ae1c63a8e86f69f3657118a4d">LZMA_IGNORE_CHECK</a>&#160;&#160;&#160;UINT32_C(0x10)</td></tr>
+<tr class="separator:a1289925ae1c63a8e86f69f3657118a4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a563c84b5f368b3dd00d92ea903c5c33d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a563c84b5f368b3dd00d92ea903c5c33d">LZMA_CONCATENATED</a>&#160;&#160;&#160;UINT32_C(0x08)</td></tr>
+<tr class="separator:a563c84b5f368b3dd00d92ea903c5c33d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa1f469ed3d4b2eaf12f8081657efc9d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#aa1f469ed3d4b2eaf12f8081657efc9d5">LZMA_FAIL_FAST</a>&#160;&#160;&#160;UINT32_C(0x20)</td></tr>
+<tr class="separator:aa1f469ed3d4b2eaf12f8081657efc9d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a62c853cf7dbf008bdbd97b2685c3eabf"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a62c853cf7dbf008bdbd97b2685c3eabf">lzma_easy_encoder_memusage</a> (uint32_t preset) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:a62c853cf7dbf008bdbd97b2685c3eabf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate approximate memory usage of easy encoder. <br /></td></tr>
+<tr class="separator:a62c853cf7dbf008bdbd97b2685c3eabf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3562055d26c18fad067a7c7516eaddf5"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a3562055d26c18fad067a7c7516eaddf5">lzma_easy_decoder_memusage</a> (uint32_t preset) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:a3562055d26c18fad067a7c7516eaddf5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate approximate decoder memory usage of a preset. <br /></td></tr>
+<tr class="separator:a3562055d26c18fad067a7c7516eaddf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acbdad999c544872f0f5d242f0d1a4ed4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#acbdad999c544872f0f5d242f0d1a4ed4">lzma_easy_encoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, uint32_t preset, <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> check) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:acbdad999c544872f0f5d242f0d1a4ed4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .xz Stream encoder using a preset number. <br /></td></tr>
+<tr class="separator:acbdad999c544872f0f5d242f0d1a4ed4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac5e71f2711b57391186671967435faf2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#ac5e71f2711b57391186671967435faf2">lzma_easy_buffer_encode</a> (uint32_t preset, <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> check, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow</td></tr>
+<tr class="memdesc:ac5e71f2711b57391186671967435faf2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call .xz Stream encoding using a preset number. <br /></td></tr>
+<tr class="separator:ac5e71f2711b57391186671967435faf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a97aec94c9fedd7646cfa51c4f4cd52"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a1a97aec94c9fedd7646cfa51c4f4cd52">lzma_stream_encoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters, <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> check) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a1a97aec94c9fedd7646cfa51c4f4cd52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .xz Stream encoder using a custom filter chain. <br /></td></tr>
+<tr class="separator:a1a97aec94c9fedd7646cfa51c4f4cd52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad7cf41496d77f4d346e006b26ed8e101"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#ad7cf41496d77f4d346e006b26ed8e101">lzma_stream_encoder_mt_memusage</a> (const <a class="el" href="structlzma__mt.html">lzma_mt</a> *options) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:ad7cf41496d77f4d346e006b26ed8e101"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate approximate memory usage of multithreaded .xz encoder. <br /></td></tr>
+<tr class="separator:ad7cf41496d77f4d346e006b26ed8e101"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3f8793518711ee84d1abf12ea3aaba42"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a3f8793518711ee84d1abf12ea3aaba42">lzma_stream_encoder_mt</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, const <a class="el" href="structlzma__mt.html">lzma_mt</a> *options) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a3f8793518711ee84d1abf12ea3aaba42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize multithreaded .xz Stream encoder. <br /></td></tr>
+<tr class="separator:a3f8793518711ee84d1abf12ea3aaba42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7eaeda1cb811ac1f5a6403691df8a894"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a7eaeda1cb811ac1f5a6403691df8a894">lzma_mt_block_size</a> (const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters) lzma_nothrow</td></tr>
+<tr class="memdesc:a7eaeda1cb811ac1f5a6403691df8a894"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate recommended Block size for multithreaded .xz encoder. <br /></td></tr>
+<tr class="separator:a7eaeda1cb811ac1f5a6403691df8a894"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a26fcc5bccdf3f862caa4c992d01e1a72"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a26fcc5bccdf3f862caa4c992d01e1a72">lzma_alone_encoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, const <a class="el" href="structlzma__options__lzma.html">lzma_options_lzma</a> *options) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a26fcc5bccdf3f862caa4c992d01e1a72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .lzma encoder (legacy file format) <br /></td></tr>
+<tr class="separator:a26fcc5bccdf3f862caa4c992d01e1a72"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66d4366a47b8332bff2a512f44f5c45e"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a66d4366a47b8332bff2a512f44f5c45e">lzma_stream_buffer_bound</a> (size_t uncompressed_size) lzma_nothrow</td></tr>
+<tr class="memdesc:a66d4366a47b8332bff2a512f44f5c45e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate output buffer size for single-call Stream encoder. <br /></td></tr>
+<tr class="separator:a66d4366a47b8332bff2a512f44f5c45e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e645ccaeace3b13a6981e03c6e190ad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a6e645ccaeace3b13a6981e03c6e190ad">lzma_stream_buffer_encode</a> (<a class="el" href="structlzma__filter.html">lzma_filter</a> *filters, <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> check, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *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</td></tr>
+<tr class="memdesc:a6e645ccaeace3b13a6981e03c6e190ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call .xz Stream encoder. <br /></td></tr>
+<tr class="separator:a6e645ccaeace3b13a6981e03c6e190ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abfc8f11acf837b167aa94b7071b54c30"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#abfc8f11acf837b167aa94b7071b54c30">lzma_microlzma_encoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, const <a class="el" href="structlzma__options__lzma.html">lzma_options_lzma</a> *options) lzma_nothrow</td></tr>
+<tr class="memdesc:abfc8f11acf837b167aa94b7071b54c30"><td class="mdescLeft">&#160;</td><td class="mdescRight">MicroLZMA encoder. <br /></td></tr>
+<tr class="separator:abfc8f11acf837b167aa94b7071b54c30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02b7683ef98d8049788961370a8b28c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a02b7683ef98d8049788961370a8b28c0">lzma_stream_decoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, uint64_t memlimit, uint32_t flags) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a02b7683ef98d8049788961370a8b28c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .xz Stream decoder. <br /></td></tr>
+<tr class="separator:a02b7683ef98d8049788961370a8b28c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7179d178e6430c10e2006a467921e98e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a7179d178e6430c10e2006a467921e98e">lzma_stream_decoder_mt</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, const <a class="el" href="structlzma__mt.html">lzma_mt</a> *options) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a7179d178e6430c10e2006a467921e98e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize multithreaded .xz Stream decoder. <br /></td></tr>
+<tr class="separator:a7179d178e6430c10e2006a467921e98e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21cbebf2771617bb1e956385cfb353e3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a21cbebf2771617bb1e956385cfb353e3">lzma_auto_decoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, uint64_t memlimit, uint32_t flags) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a21cbebf2771617bb1e956385cfb353e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode .xz, .lzma, and .lz (lzip) files with autodetection. <br /></td></tr>
+<tr class="separator:a21cbebf2771617bb1e956385cfb353e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f43c3a1035e5a226dcd298f4162b861"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a5f43c3a1035e5a226dcd298f4162b861">lzma_alone_decoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, uint64_t memlimit) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a5f43c3a1035e5a226dcd298f4162b861"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .lzma decoder (legacy file format) <br /></td></tr>
+<tr class="separator:a5f43c3a1035e5a226dcd298f4162b861"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a97689f5709e0db1e2dac450f5ce4e5eb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#a97689f5709e0db1e2dac450f5ce4e5eb">lzma_lzip_decoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, uint64_t memlimit, uint32_t flags) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a97689f5709e0db1e2dac450f5ce4e5eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .lz (lzip) decoder (a foreign file format) <br /></td></tr>
+<tr class="separator:a97689f5709e0db1e2dac450f5ce4e5eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa58f237f6cea97ef0eb9bf5c37a3008d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#aa58f237f6cea97ef0eb9bf5c37a3008d">lzma_stream_buffer_decode</a> (uint64_t *memlimit, uint32_t flags, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *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</td></tr>
+<tr class="memdesc:aa58f237f6cea97ef0eb9bf5c37a3008d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call .xz Stream decoder. <br /></td></tr>
+<tr class="separator:aa58f237f6cea97ef0eb9bf5c37a3008d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa8372dae3e7c907c36f7bb5426aeacdf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html#aa8372dae3e7c907c36f7bb5426aeacdf">lzma_microlzma_decoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, uint64_t comp_size, uint64_t uncomp_size, <a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> uncomp_size_is_exact, uint32_t dict_size) lzma_nothrow</td></tr>
+<tr class="memdesc:aa8372dae3e7c907c36f7bb5426aeacdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">MicroLZMA decoder. <br /></td></tr>
+<tr class="separator:aa8372dae3e7c907c36f7bb5426aeacdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>File formats. </p>
+<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="af3ca20ff228b363a82515c1aee9e27bc" name="af3ca20ff228b363a82515c1aee9e27bc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af3ca20ff228b363a82515c1aee9e27bc">&#9670;&#160;</a></span>LZMA_PRESET_DEFAULT</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_PRESET_DEFAULT&#160;&#160;&#160;UINT32_C(6)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Default compression preset. </p>
+<p>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. </p>
+
+</div>
+</div>
+<a id="a97e40265e355a21bd2465aaa5b85f03d" name="a97e40265e355a21bd2465aaa5b85f03d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a97e40265e355a21bd2465aaa5b85f03d">&#9670;&#160;</a></span>LZMA_PRESET_LEVEL_MASK</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_PRESET_LEVEL_MASK&#160;&#160;&#160;UINT32_C(0x1F)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Mask for preset level. </p>
+<p>This is useful only if you need to extract the level from the preset variable. That should be rare. </p>
+
+</div>
+</div>
+<a id="af524fe9af5737820fdadcd40a2c26deb" name="af524fe9af5737820fdadcd40a2c26deb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af524fe9af5737820fdadcd40a2c26deb">&#9670;&#160;</a></span>LZMA_PRESET_EXTREME</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_PRESET_EXTREME&#160;&#160;&#160;(UINT32_C(1) &lt;&lt; 31)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Extreme compression preset. </p>
+<p>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.</p>
+<p>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). </p>
+
+</div>
+</div>
+<a id="ada9cd20febb28b5ed6656de9184a86e9" name="ada9cd20febb28b5ed6656de9184a86e9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ada9cd20febb28b5ed6656de9184a86e9">&#9670;&#160;</a></span>LZMA_TELL_NO_CHECK</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_TELL_NO_CHECK&#160;&#160;&#160;UINT32_C(0x01)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>This flag makes <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> return LZMA_NO_CHECK if the input stream being decoded has no integrity check. Note that when used with <a class="el" href="container_8h.html#a21cbebf2771617bb1e956385cfb353e3" title="Decode .xz, .lzma, and .lz (lzip) files with autodetection.">lzma_auto_decoder()</a>, all .lzma files will trigger LZMA_NO_CHECK if LZMA_TELL_NO_CHECK is used. </p>
+
+</div>
+</div>
+<a id="ae21fb746037c82735d40d428c462e078" name="ae21fb746037c82735d40d428c462e078"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae21fb746037c82735d40d428c462e078">&#9670;&#160;</a></span>LZMA_TELL_UNSUPPORTED_CHECK</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_TELL_UNSUPPORTED_CHECK&#160;&#160;&#160;UINT32_C(0x02)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>This flag makes <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> 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. </p>
+
+</div>
+</div>
+<a id="a0bdde702a77ff42b90a99c0bf4147b6b" name="a0bdde702a77ff42b90a99c0bf4147b6b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0bdde702a77ff42b90a99c0bf4147b6b">&#9670;&#160;</a></span>LZMA_TELL_ANY_CHECK</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_TELL_ANY_CHECK&#160;&#160;&#160;UINT32_C(0x04)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>This flag makes <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> return LZMA_GET_CHECK as soon as the type of the integrity check is known. The type can then be got with <a class="el" href="check_8h.html#a8d7c3ffabfd024485f03fa209536c746" title="Get the type of the integrity check.">lzma_get_check()</a>. </p>
+
+</div>
+</div>
+<a id="a1289925ae1c63a8e86f69f3657118a4d" name="a1289925ae1c63a8e86f69f3657118a4d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1289925ae1c63a8e86f69f3657118a4d">&#9670;&#160;</a></span>LZMA_IGNORE_CHECK</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_IGNORE_CHECK&#160;&#160;&#160;UINT32_C(0x10)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>This flag makes <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> 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.</p>
+<p>This flag only affects the checks of the compressed data itself; the CRC32 values in the .xz headers will still be verified normally.</p>
+<p>Don't use this flag unless you know what you are doing. Possible reasons to use this flag:</p>
+<ul>
+<li>Trying to recover data from a corrupt .xz file.</li>
+<li>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.</li>
+</ul>
+<p>Support for this flag was added in liblzma 5.1.4beta. </p>
+
+</div>
+</div>
+<a id="a563c84b5f368b3dd00d92ea903c5c33d" name="a563c84b5f368b3dd00d92ea903c5c33d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a563c84b5f368b3dd00d92ea903c5c33d">&#9670;&#160;</a></span>LZMA_CONCATENATED</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_CONCATENATED&#160;&#160;&#160;UINT32_C(0x08)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>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.</p>
+<p>This flag also affects the usage of the 'action' argument for <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>. When LZMA_CONCATENATED is used, <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> 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.</p>
+<p>If LZMA_CONCATENATED is not used, the decoders still accept LZMA_FINISH as 'action' for <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>, but the usage of LZMA_FINISH isn't required. </p>
+
+</div>
+</div>
+<a id="aa1f469ed3d4b2eaf12f8081657efc9d5" name="aa1f469ed3d4b2eaf12f8081657efc9d5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa1f469ed3d4b2eaf12f8081657efc9d5">&#9670;&#160;</a></span>LZMA_FAIL_FAST</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_FAIL_FAST&#160;&#160;&#160;UINT32_C(0x20)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>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.</p>
+<p>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!</p>
+<p>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).</p>
+<p>Single-threaded decoders currently ignore this flag.</p>
+<p>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. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="a62c853cf7dbf008bdbd97b2685c3eabf" name="a62c853cf7dbf008bdbd97b2685c3eabf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a62c853cf7dbf008bdbd97b2685c3eabf">&#9670;&#160;</a></span>lzma_easy_encoder_memusage()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t lzma_easy_encoder_memusage </td>
+ <td>(</td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>preset</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Calculate approximate memory usage of easy encoder. </p>
+<p>This function is a wrapper for <a class="el" href="filter_8h.html#a730f9391e85a5979bcd1b32643ae7176" title="Calculate approximate memory requirements for raw encoder.">lzma_raw_encoder_memusage()</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">preset</td><td>Compression preset (level and possible flags)</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Number of bytes of memory required for the given preset when encoding or UINT64_MAX on error. </dd></dl>
+
+</div>
+</div>
+<a id="a3562055d26c18fad067a7c7516eaddf5" name="a3562055d26c18fad067a7c7516eaddf5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3562055d26c18fad067a7c7516eaddf5">&#9670;&#160;</a></span>lzma_easy_decoder_memusage()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t lzma_easy_decoder_memusage </td>
+ <td>(</td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>preset</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Calculate approximate decoder memory usage of a preset. </p>
+<p>This function is a wrapper for <a class="el" href="filter_8h.html#a58511249ae9206d7de7c5d1f05842297" title="Calculate approximate memory requirements for raw decoder.">lzma_raw_decoder_memusage()</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">preset</td><td>Compression preset (level and possible flags)</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Number of bytes of memory required to decompress a file that was compressed using the given preset or UINT64_MAX on error. </dd></dl>
+
+</div>
+</div>
+<a id="acbdad999c544872f0f5d242f0d1a4ed4" name="acbdad999c544872f0f5d242f0d1a4ed4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acbdad999c544872f0f5d242f0d1a4ed4">&#9670;&#160;</a></span>lzma_easy_encoder()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_easy_encoder </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>preset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td>
+ <td class="paramname"><em>check</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialize .xz Stream encoder using a preset number. </p>
+<p>This function is intended for those who just want to use the basic features of liblzma (that is, most developers out there).</p>
+<p>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 <a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308" title="Free memory allocated for the coder data structures.">lzma_end()</a> after failed initialization.</p>
+<p>If initialization succeeds, use <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> to do the actual encoding. Valid values for 'action' (the second argument of <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>) 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.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ <tr><td class="paramname">preset</td><td>Compression 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. </td></tr>
+ <tr><td class="paramname">check</td><td>Integrity check type to use. See <a class="el" href="check_8h.html" title="Integrity checks.">check.h</a> 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.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Initialization succeeded. Use <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> to encode your data.</li>
+<li>LZMA_MEM_ERROR: Memory allocation failed.</li>
+<li>LZMA_OPTIONS_ERROR: The given compression preset is not supported by this build of liblzma.</li>
+<li>LZMA_UNSUPPORTED_CHECK: The given check type is not supported by this liblzma build.</li>
+<li>LZMA_PROG_ERROR: One or more of the parameters have values that will never be valid. For example, strm == NULL. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="ac5e71f2711b57391186671967435faf2" name="ac5e71f2711b57391186671967435faf2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac5e71f2711b57391186671967435faf2">&#9670;&#160;</a></span>lzma_easy_buffer_encode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_easy_buffer_encode </td>
+ <td>(</td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>preset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td>
+ <td class="paramname"><em>check</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const uint8_t *&#160;</td>
+ <td class="paramname"><em>in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>in_size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t *&#160;</td>
+ <td class="paramname"><em>out</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>out_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>out_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-call .xz Stream encoding using a preset number. </p>
+<p>The maximum required output buffer size can be calculated with <a class="el" href="container_8h.html#a66d4366a47b8332bff2a512f44f5c45e" title="Calculate output buffer size for single-call Stream encoder.">lzma_stream_buffer_bound()</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">preset</td><td>Compression preset to use. See the description in <a class="el" href="container_8h.html#acbdad999c544872f0f5d242f0d1a4ed4" title="Initialize .xz Stream encoder using a preset number.">lzma_easy_encoder()</a>. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">check</td><td>Type of the integrity check to calculate from uncompressed data. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Encoding was successful.</li>
+<li>LZMA_BUF_ERROR: Not enough output buffer space.</li>
+<li>LZMA_UNSUPPORTED_CHECK</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_DATA_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a1a97aec94c9fedd7646cfa51c4f4cd52" name="a1a97aec94c9fedd7646cfa51c4f4cd52"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1a97aec94c9fedd7646cfa51c4f4cd52">&#9670;&#160;</a></span>lzma_stream_encoder()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_encoder </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filters</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td>
+ <td class="paramname"><em>check</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialize .xz Stream encoder using a custom filter chain. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ <tr><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN. See filters.h for more information. </td></tr>
+ <tr><td class="paramname">check</td><td>Type of the integrity check to calculate from uncompressed data.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Initialization was successful.</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_UNSUPPORTED_CHECK</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="ad7cf41496d77f4d346e006b26ed8e101" name="ad7cf41496d77f4d346e006b26ed8e101"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad7cf41496d77f4d346e006b26ed8e101">&#9670;&#160;</a></span>lzma_stream_encoder_mt_memusage()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t lzma_stream_encoder_mt_memusage </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__mt.html">lzma_mt</a> *&#160;</td>
+ <td class="paramname"><em>options</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Calculate approximate memory usage of multithreaded .xz encoder. </p>
+<p>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-&gt;preset) or lzma_raw_decoder_memusage(options-&gt;filters) to calculate the decompressor memory requirements.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">options</td><td>Compression options</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>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. </dd></dl>
+
+</div>
+</div>
+<a id="a3f8793518711ee84d1abf12ea3aaba42" name="a3f8793518711ee84d1abf12ea3aaba42"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3f8793518711ee84d1abf12ea3aaba42">&#9670;&#160;</a></span>lzma_stream_encoder_mt()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_encoder_mt </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__mt.html">lzma_mt</a> *&#160;</td>
+ <td class="paramname"><em>options</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialize multithreaded .xz Stream encoder. </p>
+<p>This provides the functionality of <a class="el" href="container_8h.html#acbdad999c544872f0f5d242f0d1a4ed4" title="Initialize .xz Stream encoder using a preset number.">lzma_easy_encoder()</a> and <a class="el" href="container_8h.html#a1a97aec94c9fedd7646cfa51c4f4cd52" title="Initialize .xz Stream encoder using a custom filter chain.">lzma_stream_encoder()</a> as a single function for multithreaded use.</p>
+<p>The supported actions for <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> are LZMA_RUN, LZMA_FULL_FLUSH, LZMA_FULL_BARRIER, and LZMA_FINISH. Support for LZMA_SYNC_FLUSH might be added in the future.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ <tr><td class="paramname">options</td><td>Pointer to multithreaded compression options</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_UNSUPPORTED_CHECK</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a7eaeda1cb811ac1f5a6403691df8a894" name="a7eaeda1cb811ac1f5a6403691df8a894"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7eaeda1cb811ac1f5a6403691df8a894">&#9670;&#160;</a></span>lzma_mt_block_size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t lzma_mt_block_size </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filters</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Calculate recommended Block size for multithreaded .xz encoder. </p>
+<p>This calculates a recommended Block size for multithreaded encoding given a filter chain. This is used internally by <a class="el" href="container_8h.html#a3f8793518711ee84d1abf12ea3aaba42" title="Initialize multithreaded .xz Stream encoder.">lzma_stream_encoder_mt()</a> to determine the Block size if the block_size member is not set to the special value of 0 in the <a class="el" href="structlzma__mt.html" title="Multithreading options.">lzma_mt</a> options struct.</p>
+<p>If one wishes to change the filters between Blocks, this function is helpful to set the block_size member of the <a class="el" href="structlzma__mt.html" title="Multithreading options.">lzma_mt</a> struct before calling <a class="el" href="container_8h.html#a3f8793518711ee84d1abf12ea3aaba42" title="Initialize multithreaded .xz Stream encoder.">lzma_stream_encoder_mt()</a>. 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.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Recommended Block size in bytes, or UINT64_MAX if an error occurred. </dd></dl>
+
+</div>
+</div>
+<a id="a26fcc5bccdf3f862caa4c992d01e1a72" name="a26fcc5bccdf3f862caa4c992d01e1a72"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a26fcc5bccdf3f862caa4c992d01e1a72">&#9670;&#160;</a></span>lzma_alone_encoder()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_alone_encoder </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__options__lzma.html">lzma_options_lzma</a> *&#160;</td>
+ <td class="paramname"><em>options</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialize .lzma encoder (legacy file format) </p>
+<p>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.</p>
+<p>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.</p>
+<p>The valid action values for <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> are LZMA_RUN and LZMA_FINISH. No kind of flushing is supported, because the file format doesn't make it possible.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ <tr><td class="paramname">options</td><td>Pointer to encoder options</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a66d4366a47b8332bff2a512f44f5c45e" name="a66d4366a47b8332bff2a512f44f5c45e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a66d4366a47b8332bff2a512f44f5c45e">&#9670;&#160;</a></span>lzma_stream_buffer_bound()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">size_t lzma_stream_buffer_bound </td>
+ <td>(</td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>uncompressed_size</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Calculate output buffer size for single-call Stream encoder. </p>
+<p>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 <a class="el" href="container_8h.html#a6e645ccaeace3b13a6981e03c6e190ad" title="Single-call .xz Stream encoder.">lzma_stream_buffer_encode()</a> doesn't return LZMA_BUF_ERROR.</p>
+<p>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.</p>
+<p>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.</p>
+<dl class="section note"><dt>Note</dt><dd>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.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">uncompressed_size</td><td>Size in bytes of the uncompressed input data</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Maximum number of bytes needed to store the compressed data. </dd></dl>
+
+</div>
+</div>
+<a id="a6e645ccaeace3b13a6981e03c6e190ad" name="a6e645ccaeace3b13a6981e03c6e190ad"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6e645ccaeace3b13a6981e03c6e190ad">&#9670;&#160;</a></span>lzma_stream_buffer_encode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_buffer_encode </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filters</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td>
+ <td class="paramname"><em>check</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const uint8_t *&#160;</td>
+ <td class="paramname"><em>in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>in_size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t *&#160;</td>
+ <td class="paramname"><em>out</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>out_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>out_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-call .xz Stream encoder. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN. See filters.h for more information. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">check</td><td>Type of the integrity check to calculate from uncompressed data. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Encoding was successful.</li>
+<li>LZMA_BUF_ERROR: Not enough output buffer space.</li>
+<li>LZMA_UNSUPPORTED_CHECK</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_DATA_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="abfc8f11acf837b167aa94b7071b54c30" name="abfc8f11acf837b167aa94b7071b54c30"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abfc8f11acf837b167aa94b7071b54c30">&#9670;&#160;</a></span>lzma_microlzma_encoder()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_microlzma_encoder </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__options__lzma.html">lzma_options_lzma</a> *&#160;</td>
+ <td class="paramname"><em>options</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>MicroLZMA encoder. </p>
+<p>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.</p>
+<p>With the MicroLZMA encoder, <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> 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 <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> after the initialization. The benefit of the combination of initialization function and <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> is that memory allocations can be re-used for better performance.</p>
+<p><a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> 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 <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> (total_in and total_out in <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> can be convenient). Often <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> 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.</p>
+<p><a class="el" href="structlzma__stream.html#a5ff28ea4e39148723c19f59811627904">lzma_stream.avail_out</a> must be at least 6. Otherwise LZMA_PROG_ERROR will be returned.</p>
+<p>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.</p>
+<p>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.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ <tr><td class="paramname">options</td><td>Pointer to encoder options</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>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.</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_MEM_ERROR</li>
+<li>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. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a02b7683ef98d8049788961370a8b28c0" name="a02b7683ef98d8049788961370a8b28c0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a02b7683ef98d8049788961370a8b28c0">&#9670;&#160;</a></span>lzma_stream_decoder()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_decoder </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint64_t&#160;</td>
+ <td class="paramname"><em>memlimit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>flags</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialize .xz Stream decoder. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ <tr><td class="paramname">memlimit</td><td>Memory 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. </td></tr>
+ <tr><td class="paramname">flags</td><td>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</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Initialization was successful.</li>
+<li>LZMA_MEM_ERROR: Cannot allocate memory.</li>
+<li>LZMA_OPTIONS_ERROR: Unsupported flags</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a7179d178e6430c10e2006a467921e98e" name="a7179d178e6430c10e2006a467921e98e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7179d178e6430c10e2006a467921e98e">&#9670;&#160;</a></span>lzma_stream_decoder_mt()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_decoder_mt </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__mt.html">lzma_mt</a> *&#160;</td>
+ <td class="paramname"><em>options</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialize multithreaded .xz Stream decoder. </p>
+<p>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 <a class="el" href="container_8h.html#a3f8793518711ee84d1abf12ea3aaba42" title="Initialize multithreaded .xz Stream encoder.">lzma_stream_encoder_mt()</a>.</p>
+<p>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 <a class="el" href="container_8h.html#a02b7683ef98d8049788961370a8b28c0" title="Initialize .xz Stream decoder.">lzma_stream_decoder()</a>. Concatenated Streams are processed one Stream at a time; no inter-Stream parallelization is done.</p>
+<p>This function behaves like <a class="el" href="container_8h.html#a02b7683ef98d8049788961370a8b28c0" title="Initialize .xz Stream decoder.">lzma_stream_decoder()</a> when options-&gt;threads == 1 and options-&gt;memlimit_threading &lt;= 1.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ <tr><td class="paramname">options</td><td>Pointer to multithreaded compression options</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Initialization was successful.</li>
+<li>LZMA_MEM_ERROR: Cannot allocate memory.</li>
+<li>LZMA_MEMLIMIT_ERROR: Memory usage limit was reached.</li>
+<li>LZMA_OPTIONS_ERROR: Unsupported flags.</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a21cbebf2771617bb1e956385cfb353e3" name="a21cbebf2771617bb1e956385cfb353e3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a21cbebf2771617bb1e956385cfb353e3">&#9670;&#160;</a></span>lzma_auto_decoder()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_auto_decoder </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint64_t&#160;</td>
+ <td class="paramname"><em>memlimit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>flags</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Decode .xz, .lzma, and .lz (lzip) files with autodetection. </p>
+<p>This decoder autodetects between the .xz, .lzma, and .lz file formats, and calls <a class="el" href="container_8h.html#a02b7683ef98d8049788961370a8b28c0" title="Initialize .xz Stream decoder.">lzma_stream_decoder()</a>, <a class="el" href="container_8h.html#a5f43c3a1035e5a226dcd298f4162b861" title="Initialize .lzma decoder (legacy file format)">lzma_alone_decoder()</a>, or <a class="el" href="container_8h.html#a97689f5709e0db1e2dac450f5ce4e5eb" title="Initialize .lz (lzip) decoder (a foreign file format)">lzma_lzip_decoder()</a> once the type of the input file has been detected.</p>
+<p>Support for .lz was added in 5.4.0.</p>
+<p>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, <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> will return LZMA_DATA_ERROR. (<a class="el" href="container_8h.html#a5f43c3a1035e5a226dcd298f4162b861" title="Initialize .lzma decoder (legacy file format)">lzma_alone_decoder()</a> doesn't have such a check as it doesn't support any decoder flags. It will return LZMA_STREAM_END after one .lzma stream.)</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ <tr><td class="paramname">memlimit</td><td>Memory 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. </td></tr>
+ <tr><td class="paramname">flags</td><td>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</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Initialization was successful.</li>
+<li>LZMA_MEM_ERROR: Cannot allocate memory.</li>
+<li>LZMA_OPTIONS_ERROR: Unsupported flags</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a5f43c3a1035e5a226dcd298f4162b861" name="a5f43c3a1035e5a226dcd298f4162b861"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5f43c3a1035e5a226dcd298f4162b861">&#9670;&#160;</a></span>lzma_alone_decoder()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_alone_decoder </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint64_t&#160;</td>
+ <td class="paramname"><em>memlimit</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialize .lzma decoder (legacy file format) </p>
+<p>Valid 'action' arguments to <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> 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.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ <tr><td class="paramname">memlimit</td><td>Memory 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.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a97689f5709e0db1e2dac450f5ce4e5eb" name="a97689f5709e0db1e2dac450f5ce4e5eb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a97689f5709e0db1e2dac450f5ce4e5eb">&#9670;&#160;</a></span>lzma_lzip_decoder()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_lzip_decoder </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint64_t&#160;</td>
+ <td class="paramname"><em>memlimit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>flags</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialize .lz (lzip) decoder (a foreign file format) </p>
+<p>This decoder supports the .lz format version 0 and the unextended .lz format version 1:</p>
+<ul>
+<li>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.</li>
+<li>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. <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> 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.</li>
+</ul>
+<p>Just like with <a class="el" href="container_8h.html#a02b7683ef98d8049788961370a8b28c0" title="Initialize .xz Stream decoder.">lzma_stream_decoder()</a> for .xz files, LZMA_CONCATENATED should be used when decompressing normal standalone .lz files.</p>
+<p>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 <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> will return LZMA_STREAM_END and leave <a class="el" href="structlzma__stream.html#a72fdc738c793f07a5c29715aa57802cf">lzma_stream.next_in</a> 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 <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>. 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 &gt;= 1.20 requires it by default.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ <tr><td class="paramname">memlimit</td><td>Memory usage limit as bytes. Use UINT64_MAX to effectively disable the limiter. </td></tr>
+ <tr><td class="paramname">flags</td><td>Bitwise-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.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Initialization was successful.</li>
+<li>LZMA_MEM_ERROR: Cannot allocate memory.</li>
+<li>LZMA_OPTIONS_ERROR: Unsupported flags</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="aa58f237f6cea97ef0eb9bf5c37a3008d" name="aa58f237f6cea97ef0eb9bf5c37a3008d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa58f237f6cea97ef0eb9bf5c37a3008d">&#9670;&#160;</a></span>lzma_stream_buffer_decode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_buffer_decode </td>
+ <td>(</td>
+ <td class="paramtype">uint64_t *&#160;</td>
+ <td class="paramname"><em>memlimit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>flags</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const uint8_t *&#160;</td>
+ <td class="paramname"><em>in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>in_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>in_size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t *&#160;</td>
+ <td class="paramname"><em>out</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>out_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>out_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-call .xz Stream decoder. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">memlimit</td><td>Pointer 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. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">flags</td><td>Bitwise-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. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in_pos</td><td>The next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer; the first byte that won't be read is in[in_size]. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. *out_pos is updated only if decoding succeeds. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Decoding was successful.</li>
+<li>LZMA_FORMAT_ERROR</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_DATA_ERROR</li>
+<li>LZMA_NO_CHECK: This can be returned only if using the LZMA_TELL_NO_CHECK flag.</li>
+<li>LZMA_UNSUPPORTED_CHECK: This can be returned only if using the LZMA_TELL_UNSUPPORTED_CHECK flag.</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_MEMLIMIT_ERROR: Memory usage limit was reached. The minimum required memlimit value was stored to *memlimit.</li>
+<li>LZMA_BUF_ERROR: Output buffer was too small.</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="aa8372dae3e7c907c36f7bb5426aeacdf" name="aa8372dae3e7c907c36f7bb5426aeacdf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa8372dae3e7c907c36f7bb5426aeacdf">&#9670;&#160;</a></span>lzma_microlzma_decoder()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_microlzma_decoder </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint64_t&#160;</td>
+ <td class="paramname"><em>comp_size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint64_t&#160;</td>
+ <td class="paramname"><em>uncomp_size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td>
+ <td class="paramname"><em>uncomp_size_is_exact</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>dict_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>MicroLZMA decoder. </p>
+<p>See <a class="el" href="container_8h.html#abfc8f11acf837b167aa94b7071b54c30" title="MicroLZMA encoder.">lzma_microlzma_encoder()</a> for more information.</p>
+<p>The <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> usage with this decoder is completely normal. The special behavior of <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> applies to <a class="el" href="container_8h.html#abfc8f11acf837b167aa94b7071b54c30" title="MicroLZMA encoder.">lzma_microlzma_encoder()</a> only.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ <tr><td class="paramname">comp_size</td><td>Compressed size of the MicroLZMA stream. The caller must somehow know this exactly. </td></tr>
+ <tr><td class="paramname">uncomp_size</td><td>Uncompressed 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. </td></tr>
+ <tr><td class="paramname">uncomp_size_is_exact</td><td>If 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. </td></tr>
+ <tr><td class="paramname">dict_size</td><td>LZMA 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.)</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/delta_8h.html b/doc/api/delta_8h.html
new file mode 100644
index 00000000..e60d7596
--- /dev/null
+++ b/doc/api/delta_8h.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma/delta.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle"><div class="title">delta.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Delta filter.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__delta.html">lzma_options_delta</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options for the Delta filter. <a href="structlzma__options__delta.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a7ced67235ad7a01ae31d32ecf1e634cb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="delta_8h.html#a7ced67235ad7a01ae31d32ecf1e634cb">LZMA_FILTER_DELTA</a>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x03)</td></tr>
+<tr class="memdesc:a7ced67235ad7a01ae31d32ecf1e634cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter ID. <br /></td></tr>
+<tr class="separator:a7ced67235ad7a01ae31d32ecf1e634cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a466886d9d01392f61bdf267687a4f96e"><td class="memItemLeft" align="right" valign="top"><a id="a466886d9d01392f61bdf267687a4f96e" name="a466886d9d01392f61bdf267687a4f96e"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_DELTA_DIST_MIN</b>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:a466886d9d01392f61bdf267687a4f96e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum value for <a class="el" href="structlzma__options__delta.html#a31b4b0b5a2462cb9433c2663b8a62790" title="Delta distance.">lzma_options_delta.dist</a>. <br /></td></tr>
+<tr class="separator:a466886d9d01392f61bdf267687a4f96e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afdf8a5ce184ddf9f8070de637775da94"><td class="memItemLeft" align="right" valign="top"><a id="afdf8a5ce184ddf9f8070de637775da94" name="afdf8a5ce184ddf9f8070de637775da94"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_DELTA_DIST_MAX</b>&#160;&#160;&#160;256</td></tr>
+<tr class="memdesc:afdf8a5ce184ddf9f8070de637775da94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum value for <a class="el" href="structlzma__options__delta.html#a31b4b0b5a2462cb9433c2663b8a62790" title="Delta distance.">lzma_options_delta.dist</a>. <br /></td></tr>
+<tr class="separator:afdf8a5ce184ddf9f8070de637775da94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a04d84d7fa6cefdc219b6e2e96ff36fe1"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="delta_8h.html#a04d84d7fa6cefdc219b6e2e96ff36fe1">lzma_delta_type</a> { <b>LZMA_DELTA_TYPE_BYTE</b>
+ }</td></tr>
+<tr class="memdesc:a04d84d7fa6cefdc219b6e2e96ff36fe1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the delta calculation. <a href="delta_8h.html#a04d84d7fa6cefdc219b6e2e96ff36fe1">More...</a><br /></td></tr>
+<tr class="separator:a04d84d7fa6cefdc219b6e2e96ff36fe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Delta filter. </p>
+<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="a7ced67235ad7a01ae31d32ecf1e634cb" name="a7ced67235ad7a01ae31d32ecf1e634cb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7ced67235ad7a01ae31d32ecf1e634cb">&#9670;&#160;</a></span>LZMA_FILTER_DELTA</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_FILTER_DELTA&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x03)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Filter ID. </p>
+<p>Filter ID of the Delta filter. This is used as <a class="el" href="structlzma__filter.html#aef1d9709759f39e61db77547b2326929" title="Filter ID.">lzma_filter.id</a>. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="a04d84d7fa6cefdc219b6e2e96ff36fe1" name="a04d84d7fa6cefdc219b6e2e96ff36fe1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a04d84d7fa6cefdc219b6e2e96ff36fe1">&#9670;&#160;</a></span>lzma_delta_type</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="delta_8h.html#a04d84d7fa6cefdc219b6e2e96ff36fe1">lzma_delta_type</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of the delta calculation. </p>
+<p>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. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/dir_b17a1d403082bd69a703ed987cf158fb.html b/doc/api/dir_b17a1d403082bd69a703ed987cf158fb.html
new file mode 100644
index 00000000..1746d688
--- /dev/null
+++ b/doc/api/dir_b17a1d403082bd69a703ed987cf158fb.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">lzma Directory Reference</div></div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="base_8h.html">base.h</a></td></tr>
+<tr class="memdesc:base_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data types and functions used in many places in liblzma API. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bcj_8h.html">bcj.h</a></td></tr>
+<tr class="memdesc:bcj_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Branch/Call/Jump conversion filters. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="block_8h.html">block.h</a></td></tr>
+<tr class="memdesc:block_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">.xz Block handling <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="check_8h.html">check.h</a></td></tr>
+<tr class="memdesc:check_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Integrity checks. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="container_8h.html">container.h</a></td></tr>
+<tr class="memdesc:container_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">File formats. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="delta_8h.html">delta.h</a></td></tr>
+<tr class="memdesc:delta_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delta filter. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html">filter.h</a></td></tr>
+<tr class="memdesc:filter_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common filter related types and functions. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hardware_8h.html">hardware.h</a></td></tr>
+<tr class="memdesc:hardware_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hardware information. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html">index.h</a></td></tr>
+<tr class="memdesc:index_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handling of .xz Index and related information. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index__hash_8h.html">index_hash.h</a></td></tr>
+<tr class="memdesc:index__hash_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate Index by using a hash function. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html">lzma12.h</a></td></tr>
+<tr class="memdesc:lzma12_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">LZMA1 and LZMA2 filters. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream__flags_8h.html">stream_flags.h</a></td></tr>
+<tr class="memdesc:stream__flags_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">.xz Stream Header and Stream Footer encoder and decoder <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="version_8h.html">version.h</a></td></tr>
+<tr class="memdesc:version_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version number. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top"><span class="icondoc"></span>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html">vli.h</a></td></tr>
+<tr class="memdesc:vli_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Variable-length integer handling. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
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 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" width="16" height="24" viewBox="0 0 80 60" id="doc" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
+<g style="fill:#195794">
+<path d="m 14,-1.1445312 c -2.824372,0 -5.1445313,2.320159 -5.1445312,5.1445312 v 72 c 0,2.824372 2.3201592,5.144531 5.1445312,5.144531 h 52 c 2.824372,0 5.144531,-2.320159 5.144531,-5.144531 V 23.699219 a 1.1447968,1.1447968 0 0 0 -0.01563,-0.1875 C 70.977847,22.605363 70.406495,21.99048 70.007812,21.591797 L 48.208984,-0.20898438 C 47.606104,-0.81186474 46.804652,-1.1445313 46,-1.1445312 Z m 1.144531,6.2890624 H 42.855469 V 24 c 0,1.724372 1.420159,3.144531 3.144531,3.144531 H 64.855469 V 74.855469 H 15.144531 Z m 34,4.4179688 L 60.4375,20.855469 H 49.144531 Z"/>
+</g>
+<g style="fill:#BFD9F4;stroke-width:0">
+<path d="M 3.0307167,13.993174 V 7.0307167 h 2.7576792 2.7576792 v 1.8826151 c 0,1.2578262 0.0099,1.9287572 0.029818,2.0216512 0.03884,0.181105 0.168631,0.348218 0.33827,0.43554 l 0.1355017,0.06975 1.9598092,0.0079 1.959809,0.0078 v 4.749829 4.749829 H 8 3.0307167 Z" transform="matrix(5,0,0,5,0,-30)" />
+<path d="M 9.8293515,9.0581469 V 7.9456453 l 1.1058025,1.1055492 c 0.608191,0.6080521 1.105802,1.1086775 1.105802,1.1125015 0,0.0038 -0.497611,0.007 -1.105802,0.007 H 9.8293515 Z" transform="matrix(5,0,0,5,0,-30)" />
+</g>
+</svg>
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 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" width="16" height="24" viewBox="0 0 80 60" id="doc" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
+<g style="fill:#A0C7EE">
+<path d="m 14,-1.1445312 c -2.824372,0 -5.1445313,2.320159 -5.1445312,5.1445312 v 72 c 0,2.824372 2.3201592,5.144531 5.1445312,5.144531 h 52 c 2.824372,0 5.144531,-2.320159 5.144531,-5.144531 V 23.699219 a 1.1447968,1.1447968 0 0 0 -0.01563,-0.1875 C 70.977847,22.605363 70.406495,21.99048 70.007812,21.591797 L 48.208984,-0.20898438 C 47.606104,-0.81186474 46.804652,-1.1445313 46,-1.1445312 Z m 1.144531,6.2890624 H 42.855469 V 24 c 0,1.724372 1.420159,3.144531 3.144531,3.144531 H 64.855469 V 74.855469 H 15.144531 Z m 34,4.4179688 L 60.4375,20.855469 H 49.144531 Z"/>
+</g>
+<g style="fill:#195794;stroke-width:0">
+<path d="M 3.0307167,13.993174 V 7.0307167 h 2.7576792 2.7576792 v 1.8826151 c 0,1.2578262 0.0099,1.9287572 0.029818,2.0216512 0.03884,0.181105 0.168631,0.348218 0.33827,0.43554 l 0.1355017,0.06975 1.9598092,0.0079 1.959809,0.0078 v 4.749829 4.749829 H 8 3.0307167 Z" transform="matrix(5,0,0,5,0,-30)" />
+<path d="M 9.8293515,9.0581469 V 7.9456453 l 1.1058025,1.1055492 c 0.608191,0.6080521 1.105802,1.1086775 1.105802,1.1125015 0,0.0038 -0.497611,0.007 -1.105802,0.007 H 9.8293515 Z" transform="matrix(5,0,0,5,0,-30)" />
+</g>
+</svg>
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,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='10px' width='5px' fill='grey'><text x='0' y='5' font-size='10'>&%238595;</text></svg>");
+
+/** 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,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='10px' width='5px'><text x='0' y='5' font-size='10' fill='grey'>&%238595;</text></svg>");
+
+/** 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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" viewBox="0 0 104 31" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs>
+ <linearGradient id="a">
+ <stop stop-color="#1E67AF" offset="0"/>
+ <stop stop-color="#3488DC" offset="1"/>
+ </linearGradient>
+ <linearGradient id="d" x1="31.474" x2="31.474" y1="24.821" y2="26.773" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+ <linearGradient id="c" x1="31.474" x2="31.474" y1="24.821" y2="26.773" gradientTransform="matrix(.6816 0 0 1.0248 72.391 -.91809)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+ <linearGradient id="b" x1="56.295" x2="56.295" y1="24.622" y2="26.574" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+ <linearGradient id="e" x1="49.067" x2="48.956" y1="19.719" y2="9.5227" gradientTransform="matrix(.97968 0 0 1.0207 -.25579 -.25579)" gradientUnits="userSpaceOnUse">
+ <stop stop-color="#98C3ED" offset="0"/>
+ <stop stop-color="#E2EEFA" offset="1"/>
+ </linearGradient>
+ <filter id="f" x="-.010676" y="-.045304" width="1.0214" height="1.0906" color-interpolation-filters="sRGB">
+ <feGaussianBlur stdDeviation="0.45293203"/>
+ </filter>
+ </defs>
+ <g>
+ <path transform="translate(-2.5759 -27.848)" d="m13.609 32.203v6.8633h-0.05078c-0.40533-0.66867-0.96254-1.1715-1.6719-1.5059-0.69244-0.35193-1.4282-0.52734-2.2051-0.52734-0.96267 0-1.807 0.2027-2.5332 0.60742-0.72622 0.38713-1.3344 0.90556-1.8242 1.5566-0.47289 0.65108-0.83456 1.4092-1.0879 2.2715-0.23644 0.84464-0.35547 1.7236-0.35547 2.6387 0 0.95022 0.11902 1.8643 0.35547 2.7441 0.25333 0.87983 0.615 1.6633 1.0879 2.3496 0.48978 0.66867 1.1065 1.2066 1.8496 1.6113 0.74311 0.38713 1.6044 0.58008 2.584 0.58008 0.86133 0 1.6311-0.15787 2.3066-0.47461 0.69244-0.33434 1.2497-0.87227 1.6719-1.6113h0.05078v1.7422h3.4199v-18.846zm12.875 4.8301c-1.0302 0-1.9596 0.17541-2.7871 0.52734-0.82756 0.33434-1.5358 0.81965-2.127 1.4531-0.59111 0.61588-1.0483 1.3721-1.3691 2.2695-0.32089 0.87983-0.48047 1.866-0.48047 2.957s0.15958 2.0752 0.48047 2.9551c0.32089 0.87983 0.77803 1.6361 1.3691 2.2695 0.59111 0.61588 1.2994 1.0914 2.127 1.4258 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.0302 0 1.9596-0.16762 2.7871-0.50195 0.84444-0.33434 1.5612-0.8099 2.1523-1.4258 0.59111-0.63348 1.0483-1.3897 1.3691-2.2695 0.32089-0.87983 0.48047-1.8641 0.48047-2.9551s-0.15958-2.0772-0.48047-2.957c-0.32089-0.89743-0.77803-1.6536-1.3691-2.2695-0.59111-0.63348-1.3079-1.1188-2.1523-1.4531-0.82756-0.35193-1.7569-0.52734-2.7871-0.52734zm41.715 0c-0.912 0-1.7223 0.18516-2.4316 0.55469-0.69244 0.36953-1.2752 0.87043-1.748 1.5039-0.47289 0.61588-0.83651 1.337-1.0898 2.1641-0.23645 0.80944-0.35352 1.6553-0.35352 2.5352 0 0.93262 0.10007 1.8214 0.30273 2.666 0.21956 0.82704 0.55767 1.556 1.0137 2.1895 0.456 0.61588 1.0387 1.109 1.748 1.4785 0.70933 0.35193 1.5536 0.5293 2.5332 0.5293 0.79378 0 1.5446-0.16762 2.2539-0.50195 0.72622-0.35193 1.2834-0.88986 1.6719-1.6113h0.05078v1.7949c0.01689 0.96782-0.21071 1.7689-0.68359 2.4023-0.456 0.63348-1.1898 0.95117-2.2031 0.95117-0.64178 0-1.2075-0.14228-1.6973-0.42383-0.48978-0.26395-0.81939-0.74731-0.98828-1.4512h-3.5723c0.05067 0.77425 0.25276 1.435 0.60742 1.9805 0.37156 0.56309 0.8287 1.0192 1.3691 1.3711 0.55733 0.35193 1.1656 0.60726 1.8242 0.76562 0.67556 0.17597 1.3328 0.26562 1.9746 0.26562 1.5031 0 2.7025-0.21245 3.5977-0.63477 0.89511-0.42232 1.5798-0.94076 2.0527-1.5566 0.47289-0.59829 0.777-1.2493 0.91211-1.9531 0.152-0.70386 0.22656-1.3295 0.22656-1.875v-12.775h-3.4199v1.8223h-0.05078c-0.43911-0.79185-0.98782-1.3551-1.6465-1.6895-0.64178-0.33434-1.3926-0.50195-2.2539-0.50195zm16.523 0c-0.99644 0-1.9088 0.18516-2.7363 0.55469-0.81067 0.36953-1.5124 0.88018-2.1035 1.5312-0.59111 0.63348-1.0463 1.3897-1.3672 2.2695s-0.48047 1.831-0.48047 2.8516c0 1.0558 0.15108 2.0225 0.45508 2.9023 0.32089 0.87983 0.76758 1.6361 1.3418 2.2695 0.57422 0.63348 1.276 1.1266 2.1035 1.4785 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.4862 0 2.7517-0.35277 3.7988-1.0566 1.0471-0.70387 1.8254-1.8733 2.332-3.5098h-3.168c-0.11822 0.42232-0.43934 0.82772-0.96289 1.2148-0.52355 0.36953-1.1468 0.55274-1.873 0.55273-1.0133 0-1.7916-0.27286-2.332-0.81836-0.54044-0.5455-0.83605-1.4245-0.88672-2.6387h9.4492c0.06756-1.0558-0.01551-2.0673-0.25195-3.0352-0.23644-0.96782-0.62557-1.8293-1.166-2.5859-0.52356-0.75666-1.1998-1.355-2.0273-1.7949-0.82756-0.45751-1.7974-0.6875-2.9121-0.6875zm16.189 0c-0.76 0-1.5023 0.18516-2.2285 0.55469-0.72622 0.35193-1.3174 0.92299-1.7734 1.7148h-0.07617v-1.9004h-3.4199v13.646h3.5977v-7.1523c0-1.3901 0.21909-2.3841 0.6582-2.9824 0.43911-0.61588 1.1494-0.92383 2.1289-0.92383 0.86133 0 1.4611 0.28066 1.7988 0.84375 0.33777 0.5455 0.50586 1.3816 0.50586 2.5078v7.707h3.5976v-8.3926c0-0.84464-0.0765-1.6106-0.22851-2.2969-0.13511-0.70387-0.37971-1.2925-0.73438-1.7676-0.35466-0.49271-0.84386-0.87277-1.4688-1.1367-0.608-0.28155-1.3948-0.42188-2.3574-0.42188zm-66.063 0.36914 4.3066 6.4668-4.7129 7.1797h4.0293l2.7363-4.3027 2.7344 4.3027h4.1055l-4.8398-7.2578 4.3066-6.3887h-3.9766l-2.2793 3.5645-2.3066-3.5645zm13.275 0 4.584 12.803c0.10133 0.26395 0.15234 0.54461 0.15234 0.84375 0 0.40472-0.11707 0.77504-0.35352 1.1094-0.21956 0.33434-0.56617 0.52729-1.0391 0.58008-0.35467 0.0176-0.70979 0.0098-1.0645-0.02539-0.35467-0.03519-0.70128-0.07028-1.0391-0.10547v3.0879c0.37156 0.03519 0.73518 0.06051 1.0898 0.07813 0.37156 0.03519 0.74368 0.05273 1.1152 0.05273 1.2329 0 2.1943-0.23778 2.8867-0.71289 0.69244-0.47511 1.2326-1.2664 1.6211-2.375l5.4727-15.336h-3.7246l-2.8613 9.3438h-0.05078l-2.9648-9.3438zm-37.48 2.4551c0.59111 0 1.0823 0.12279 1.4707 0.36914 0.38844 0.24635 0.6991 0.57184 0.93555 0.97656 0.25333 0.38713 0.43187 0.84515 0.5332 1.373 0.10133 0.5103 0.15234 1.0482 0.15234 1.6113 0 0.56309-0.05101 1.1069-0.15234 1.6348-0.10133 0.5279-0.27137 1.0035-0.50781 1.4258-0.23644 0.40472-0.5556 0.73021-0.96094 0.97656-0.38844 0.24635-0.87959 0.36914-1.4707 0.36914-0.55733 0-1.038-0.12279-1.4434-0.36914-0.38844-0.26395-0.71806-0.59723-0.98828-1.002-0.25333-0.42232-0.43842-0.89788-0.55664-1.4258s-0.17773-1.0561-0.17773-1.584c-1e-7 -0.56309 0.05101-1.0991 0.15234-1.6094 0.11822-0.5279 0.29481-0.99567 0.53125-1.4004 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.24635 0.90303-0.36914 1.4941-0.36914zm15.84 0c0.608 0 1.1142 0.13253 1.5195 0.39648 0.42222 0.24635 0.75184 0.57184 0.98828 0.97656 0.25333 0.40472 0.42992 0.87054 0.53125 1.3984 0.10133 0.5279 0.15234 1.0658 0.15234 1.6113 0 0.5455-0.05101 1.0815-0.15234 1.6094-0.10134 0.5103-0.27792 0.97612-0.53125 1.3984-0.23644 0.40472-0.56606 0.73021-0.98828 0.97656-0.40533 0.24635-0.91153 0.36914-1.5195 0.36914-0.608 0-1.1142-0.12279-1.5195-0.36914s-0.73495-0.57184-0.98828-0.97656c-0.23644-0.42232-0.40648-0.88814-0.50781-1.3984-0.10133-0.5279-0.15234-1.0639-0.15234-1.6094 0-0.5455 0.05101-1.0834 0.15234-1.6113 0.10133-0.5279 0.27137-0.99371 0.50781-1.3984 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.26395 0.91153-0.39648 1.5195-0.39648zm42.602 0c0.59111 0 1.0803 0.11499 1.4688 0.34375 0.38844 0.22876 0.70105 0.5367 0.9375 0.92383 0.23644 0.38713 0.40648 0.8354 0.50781 1.3457 0.10133 0.49271 0.15039 1.0209 0.15039 1.584 0 0.4927-0.06606 0.96827-0.20117 1.4258-0.11822 0.43992-0.30526 0.83557-0.55859 1.1875-0.25333 0.35193-0.57445 0.63259-0.96289 0.84375-0.38844 0.21116-0.83513 0.31836-1.3418 0.31836-0.55733 0-1.021-0.12474-1.3926-0.37109-0.37156-0.24635-0.67566-0.56209-0.91211-0.94922-0.21956-0.38713-0.38109-0.81786-0.48242-1.293-0.08444-0.49271-0.12695-0.98581-0.12695-1.4785 0-0.5103 0.05101-0.99366 0.15234-1.4512 0.11822-0.47511 0.29676-0.89025 0.5332-1.2422 0.25333-0.36953 0.55744-0.65993 0.91211-0.87109 0.37156-0.21116 0.80974-0.31641 1.3164-0.31641zm15.535 0c0.87822 0 1.529 0.24753 1.9512 0.74023 0.43911 0.49271 0.74322 1.2138 0.91211 2.1641h-5.8535c0.01689-0.26395 0.0679-0.5641 0.15234-0.89844 0.10133-0.33434 0.26287-0.65008 0.48242-0.94922 0.23644-0.29914 0.54055-0.54667 0.91211-0.74023 0.38845-0.21116 0.86914-0.31641 1.4434-0.31641z" filter="url(#f)" opacity=".3" stroke="#969696"/>
+ <path d="m0.97202 24.161 43.605-0.0019 0.0508 3.3061-43.6 0.04174z" fill="url(#d)" stroke="#000" stroke-width=".5"/>
+ <path d="m10.283 3.5547v6.8633h-0.05078c-0.40533-0.66867-0.96254-1.1715-1.6719-1.5059-0.69244-0.35193-1.4282-0.52734-2.2051-0.52734-0.96267 0-1.807 0.2027-2.5332 0.60742-0.72622 0.38713-1.3344 0.90556-1.8242 1.5566-0.47289 0.65108-0.83456 1.4092-1.0879 2.2715-0.23644 0.84464-0.35547 1.7236-0.35547 2.6387 0 0.95022 0.11902 1.8643 0.35547 2.7441 0.25333 0.87983 0.615 1.6633 1.0879 2.3496 0.48978 0.66867 1.1065 1.2066 1.8496 1.6113 0.74311 0.38713 1.6044 0.58008 2.584 0.58008 0.86133 0 1.6311-0.15787 2.3066-0.47461 0.69244-0.33434 1.2497-0.87227 1.6719-1.6113h0.05078v1.7422h3.4199v-18.846zm12.875 4.8301c-1.0302 0-1.9596 0.17541-2.7871 0.52734-0.82756 0.33434-1.5358 0.81965-2.127 1.4531-0.59111 0.61588-1.0483 1.3721-1.3691 2.2695-0.32089 0.87983-0.48047 1.866-0.48047 2.957s0.15958 2.0752 0.48047 2.9551c0.32089 0.87983 0.77803 1.6361 1.3691 2.2695 0.59111 0.61588 1.2994 1.0914 2.127 1.4258 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.0302 0 1.9596-0.16762 2.7871-0.50195 0.84444-0.33434 1.5612-0.8099 2.1523-1.4258 0.59111-0.63348 1.0483-1.3897 1.3691-2.2695 0.32089-0.87983 0.48047-1.8641 0.48047-2.9551s-0.15958-2.0772-0.48047-2.957c-0.32089-0.89743-0.77803-1.6536-1.3691-2.2695-0.59111-0.63348-1.3079-1.1188-2.1523-1.4531-0.82756-0.35193-1.7569-0.52734-2.7871-0.52734zm41.715 0c-0.912 0-1.7223 0.18516-2.4316 0.55469-0.69244 0.36953-1.2752 0.87043-1.748 1.5039-0.47289 0.61588-0.83651 1.337-1.0898 2.1641-0.23644 0.80944-0.35352 1.6553-0.35352 2.5352 0 0.93262 0.10007 1.8214 0.30273 2.666 0.21956 0.82704 0.55767 1.556 1.0137 2.1895 0.456 0.61588 1.0387 1.109 1.748 1.4785 0.70933 0.35193 1.5536 0.5293 2.5332 0.5293 0.79378 0 1.5446-0.16762 2.2539-0.50195 0.72622-0.35193 1.2834-0.88986 1.6719-1.6113h0.05078v1.7949c0.01689 0.96782-0.21071 1.7689-0.68359 2.4023-0.456 0.63348-1.1898 0.95117-2.2031 0.95117-0.64178 0-1.2075-0.14228-1.6973-0.42383-0.48978-0.26395-0.81939-0.74731-0.98828-1.4512h-3.5723c0.05067 0.77425 0.25276 1.435 0.60742 1.9805 0.37156 0.56309 0.8287 1.0192 1.3691 1.3711 0.55733 0.35193 1.1656 0.60726 1.8242 0.76562 0.67556 0.17597 1.3328 0.26562 1.9746 0.26562 1.5031 0 2.7025-0.21245 3.5977-0.63477 0.89511-0.42232 1.5798-0.94076 2.0527-1.5566 0.47289-0.59829 0.777-1.2493 0.91211-1.9531 0.152-0.70386 0.22656-1.3295 0.22656-1.875v-12.775h-3.4199v1.8223h-0.05078c-0.43911-0.79185-0.98782-1.3551-1.6465-1.6895-0.64178-0.33434-1.3926-0.50195-2.2539-0.50195zm16.523 0c-0.99644 0-1.9088 0.18516-2.7363 0.55469-0.81067 0.36953-1.5124 0.88017-2.1035 1.5312-0.59111 0.63348-1.0463 1.3897-1.3672 2.2695s-0.48047 1.831-0.48047 2.8516c0 1.0558 0.15108 2.0225 0.45508 2.9023 0.32089 0.87983 0.76758 1.6361 1.3418 2.2695 0.57422 0.63348 1.276 1.1266 2.1035 1.4785 0.82756 0.33434 1.7569 0.50195 2.7871 0.50195 1.4862 0 2.7517-0.35278 3.7988-1.0566 1.0471-0.70386 1.8254-1.8733 2.332-3.5098h-3.168c-0.11822 0.42232-0.43934 0.82772-0.96289 1.2148-0.52355 0.36953-1.1468 0.55274-1.873 0.55273-1.0133 0-1.7916-0.27286-2.332-0.81836-0.54044-0.5455-0.83605-1.4245-0.88672-2.6387h9.4492c0.06756-1.0558-0.01551-2.0673-0.25195-3.0352-0.23644-0.96782-0.62557-1.8293-1.166-2.5859-0.52356-0.75666-1.1998-1.355-2.0273-1.7949-0.82756-0.45751-1.7974-0.6875-2.9121-0.6875zm16.189 0c-0.76 0-1.5023 0.18516-2.2285 0.55469-0.72622 0.35193-1.3174 0.923-1.7734 1.7148h-0.07617v-1.9004h-3.4199v13.646h3.5977v-7.1523c0-1.3901 0.21909-2.3841 0.6582-2.9824 0.43911-0.61588 1.1494-0.92383 2.1289-0.92383 0.86133 0 1.461 0.28066 1.7988 0.84375 0.33778 0.5455 0.50586 1.3816 0.50586 2.5078v7.707h3.5977v-8.3926c0-0.84464-0.0765-1.6106-0.22852-2.2969-0.13511-0.70387-0.3797-1.2925-0.73437-1.7676-0.35466-0.49271-0.84386-0.87277-1.4688-1.1367-0.608-0.28155-1.3948-0.42188-2.3574-0.42188zm-66.062 0.36914 4.3066 6.4668-4.7129 7.1797h4.0293l2.7363-4.3027 2.7344 4.3027h4.1055l-4.8398-7.2578 4.3066-6.3887h-3.9766l-2.2793 3.5645-2.3066-3.5645zm13.275 0 4.584 12.803c0.10133 0.26395 0.15234 0.54461 0.15234 0.84375 0 0.40472-0.11707 0.77504-0.35352 1.1094-0.21956 0.33434-0.56617 0.52729-1.0391 0.58008-0.35467 0.0176-0.70979 0.0098-1.0645-0.02539-0.35467-0.03519-0.70128-0.07027-1.0391-0.10547v3.0879c0.37156 0.03519 0.73518 0.06052 1.0898 0.07813 0.37156 0.03519 0.74368 0.05273 1.1152 0.05273 1.2329 0 2.1943-0.23778 2.8867-0.71289 0.69244-0.47511 1.2326-1.2664 1.6211-2.375l5.4727-15.336h-3.7246l-2.8613 9.3437h-0.05078l-2.9648-9.3437zm-37.48 2.4551c0.59111 0 1.0823 0.12279 1.4707 0.36914s0.6991 0.57184 0.93555 0.97656c0.25333 0.38713 0.43187 0.84515 0.5332 1.373 0.10133 0.5103 0.15234 1.0482 0.15234 1.6113 0 0.56309-0.05101 1.1069-0.15234 1.6348-0.10133 0.5279-0.27137 1.0035-0.50781 1.4258-0.23644 0.40472-0.5556 0.73021-0.96094 0.97656-0.38844 0.24635-0.87959 0.36914-1.4707 0.36914-0.55733 0-1.038-0.12279-1.4434-0.36914-0.38844-0.26395-0.71806-0.59723-0.98828-1.002-0.25333-0.42232-0.43842-0.89788-0.55664-1.4258s-0.17773-1.0561-0.17773-1.584c-1e-7 -0.56309 0.05101-1.0991 0.15234-1.6094 0.11822-0.5279 0.29481-0.99567 0.53125-1.4004 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.24635 0.90303-0.36914 1.4941-0.36914zm15.84 0c0.608 0 1.1142 0.13254 1.5195 0.39648 0.42222 0.24635 0.75184 0.57184 0.98828 0.97656 0.25333 0.40472 0.42992 0.87054 0.53125 1.3984 0.10133 0.5279 0.15234 1.0658 0.15234 1.6113 0 0.5455-0.05101 1.0815-0.15234 1.6094-0.10133 0.5103-0.27792 0.97612-0.53125 1.3984-0.23644 0.40472-0.56606 0.73021-0.98828 0.97656-0.40533 0.24635-0.91153 0.36914-1.5195 0.36914-0.608 0-1.1142-0.12279-1.5195-0.36914s-0.73495-0.57184-0.98828-0.97656c-0.23644-0.42232-0.40648-0.88813-0.50781-1.3984-0.10133-0.5279-0.15234-1.0639-0.15234-1.6094 0-0.5455 0.05101-1.0834 0.15234-1.6113 0.10133-0.5279 0.27137-0.99371 0.50781-1.3984 0.25333-0.40472 0.58295-0.73021 0.98828-0.97656 0.40533-0.26395 0.91153-0.39648 1.5195-0.39648zm42.602 0c0.59111 0 1.0803 0.11499 1.4688 0.34375 0.38844 0.22876 0.70106 0.5367 0.9375 0.92383 0.23644 0.38713 0.40648 0.8354 0.50781 1.3457 0.10133 0.49271 0.15039 1.0209 0.15039 1.584 0 0.49271-0.06606 0.96827-0.20117 1.4258-0.11822 0.43992-0.30526 0.83557-0.55859 1.1875-0.25333 0.35193-0.57445 0.63259-0.96289 0.84375-0.38844 0.21116-0.83513 0.31836-1.3418 0.31836-0.55733 0-1.021-0.12474-1.3926-0.37109-0.37156-0.24635-0.67566-0.56209-0.91211-0.94922-0.21956-0.38713-0.38109-0.81786-0.48242-1.293-0.08444-0.49271-0.12695-0.98581-0.12695-1.4785 0-0.5103 0.05101-0.99366 0.15234-1.4512 0.11822-0.47511 0.29676-0.89026 0.5332-1.2422 0.25333-0.36953 0.55744-0.65993 0.91211-0.87109 0.37156-0.21116 0.80974-0.31641 1.3164-0.31641zm15.535 0c0.87822 0 1.529 0.24753 1.9512 0.74024 0.43911 0.49271 0.74322 1.2138 0.91211 2.1641h-5.8535c0.01689-0.26395 0.0679-0.5641 0.15234-0.89844 0.10133-0.33434 0.26287-0.65008 0.48242-0.94922 0.23644-0.29914 0.54055-0.54667 0.91211-0.74023 0.38845-0.21116 0.86914-0.31641 1.4434-0.31641z" fill="url(#e)" stroke="#195794" stroke-width=".7"/>
+ <path d="m52.988 27.291c0.99602-1.0359 1.3944-1.8725 1.7928-3.1076l3.8247-0.03984c0.3113 1.6096 0.82413 2.5137 1.6335 3.1474z" fill="url(#b)" stroke="#000" stroke-width=".5"/>
+ <path d="m73.89 24.04 28.885-0.2011-0.12476 3.3879-31.033 0.16229c1.2621-1.0234 1.9665-2.2859 2.2724-3.3491z" fill="url(#c)" stroke="#000" stroke-width=".41788"/>
+ </g>
+</svg>
diff --git a/doc/api/files.html b/doc/api/files.html
new file mode 100644
index 00000000..54e9bb5e
--- /dev/null
+++ b/doc/api/files.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): File List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle"><div class="title">File List</div></div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
+<div class="levels">[detail level <span >1</span><span >2</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" >&#9660;</span><span id="img_0_" class="iconfopen" >&#160;</span><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html" target="_self">lzma</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="base_8h.html" target="_self">base.h</a></td><td class="desc">Data types and functions used in many places in liblzma API </td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="bcj_8h.html" target="_self">bcj.h</a></td><td class="desc">Branch/Call/Jump conversion filters </td></tr>
+<tr id="row_0_2_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="block_8h.html" target="_self">block.h</a></td><td class="desc">.xz Block handling </td></tr>
+<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="check_8h.html" target="_self">check.h</a></td><td class="desc">Integrity checks </td></tr>
+<tr id="row_0_4_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="container_8h.html" target="_self">container.h</a></td><td class="desc">File formats </td></tr>
+<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="delta_8h.html" target="_self">delta.h</a></td><td class="desc">Delta filter </td></tr>
+<tr id="row_0_6_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="filter_8h.html" target="_self">filter.h</a></td><td class="desc">Common filter related types and functions </td></tr>
+<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="hardware_8h.html" target="_self">hardware.h</a></td><td class="desc">Hardware information </td></tr>
+<tr id="row_0_8_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="index_8h.html" target="_self">index.h</a></td><td class="desc">Handling of .xz Index and related information </td></tr>
+<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="index__hash_8h.html" target="_self">index_hash.h</a></td><td class="desc">Validate Index by using a hash function </td></tr>
+<tr id="row_0_10_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="lzma12_8h.html" target="_self">lzma12.h</a></td><td class="desc">LZMA1 and LZMA2 filters </td></tr>
+<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="stream__flags_8h.html" target="_self">stream_flags.h</a></td><td class="desc">.xz Stream Header and Stream Footer encoder and decoder </td></tr>
+<tr id="row_0_12_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="version_8h.html" target="_self">version.h</a></td><td class="desc">Version number </td></tr>
+<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="vli_8h.html" target="_self">vli.h</a></td><td class="desc">Variable-length integer handling </td></tr>
+<tr id="row_1_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="lzma_8h.html" target="_self">lzma.h</a></td><td class="desc">The public API of liblzma data compression library </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/filter_8h.html b/doc/api/filter_8h.html
new file mode 100644
index 00000000..6e60b26f
--- /dev/null
+++ b/doc/api/filter_8h.html
@@ -0,0 +1,1348 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma/filter.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">filter.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Common filter related types and functions.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__filter.html">lzma_filter</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter options. <a href="structlzma__filter.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ab33c0cc1728bf390e5b84f8bce1928ba"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#ab33c0cc1728bf390e5b84f8bce1928ba">LZMA_FILTERS_MAX</a>&#160;&#160;&#160;4</td></tr>
+<tr class="memdesc:ab33c0cc1728bf390e5b84f8bce1928ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of filters in a chain. <br /></td></tr>
+<tr class="separator:ab33c0cc1728bf390e5b84f8bce1928ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a41aa51eeb53190404439c31d8e9c97cd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a41aa51eeb53190404439c31d8e9c97cd">LZMA_STR_ALL_FILTERS</a>&#160;&#160;&#160;UINT32_C(0x01)</td></tr>
+<tr class="memdesc:a41aa51eeb53190404439c31d8e9c97cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow or show all filters. <br /></td></tr>
+<tr class="separator:a41aa51eeb53190404439c31d8e9c97cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adc33f4c0c7b5d3ae36acc0437a904339"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#adc33f4c0c7b5d3ae36acc0437a904339">LZMA_STR_NO_VALIDATION</a>&#160;&#160;&#160;UINT32_C(0x02)</td></tr>
+<tr class="memdesc:adc33f4c0c7b5d3ae36acc0437a904339"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do not validate the filter chain in <a class="el" href="filter_8h.html#aa042cf11749bc2183b27de1c3142da30" title="Convert a string to a filter chain.">lzma_str_to_filters()</a> <br /></td></tr>
+<tr class="separator:adc33f4c0c7b5d3ae36acc0437a904339"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09a775f6a78d28ca136acfb51ad5fa02"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a09a775f6a78d28ca136acfb51ad5fa02">LZMA_STR_ENCODER</a>&#160;&#160;&#160;UINT32_C(0x10)</td></tr>
+<tr class="memdesc:a09a775f6a78d28ca136acfb51ad5fa02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stringify encoder options. <br /></td></tr>
+<tr class="separator:a09a775f6a78d28ca136acfb51ad5fa02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a0f3fc03bdb84a294cdd53a98783104"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a8a0f3fc03bdb84a294cdd53a98783104">LZMA_STR_DECODER</a>&#160;&#160;&#160;UINT32_C(0x20)</td></tr>
+<tr class="memdesc:a8a0f3fc03bdb84a294cdd53a98783104"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stringify decoder options. <br /></td></tr>
+<tr class="separator:a8a0f3fc03bdb84a294cdd53a98783104"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a87e9ac4ae5829b092262223256141a29"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a87e9ac4ae5829b092262223256141a29">LZMA_STR_GETOPT_LONG</a>&#160;&#160;&#160;UINT32_C(0x40)</td></tr>
+<tr class="memdesc:a87e9ac4ae5829b092262223256141a29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Produce xz-compatible getopt_long() syntax. <br /></td></tr>
+<tr class="separator:a87e9ac4ae5829b092262223256141a29"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac0113c47caf98a735db2297936c5e857"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#ac0113c47caf98a735db2297936c5e857">LZMA_STR_NO_SPACES</a>&#160;&#160;&#160;UINT32_C(0x80)</td></tr>
+<tr class="memdesc:ac0113c47caf98a735db2297936c5e857"><td class="mdescLeft">&#160;</td><td class="mdescRight">Use two dashes "--" instead of a space to separate filters. <br /></td></tr>
+<tr class="separator:ac0113c47caf98a735db2297936c5e857"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a3db3c36cd6e57658a74c53e4daa2bef6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a3db3c36cd6e57658a74c53e4daa2bef6">lzma_filter_encoder_is_supported</a> (<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> id) lzma_nothrow lzma_attr_const</td></tr>
+<tr class="memdesc:a3db3c36cd6e57658a74c53e4daa2bef6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if the given Filter ID is supported for encoding. <br /></td></tr>
+<tr class="separator:a3db3c36cd6e57658a74c53e4daa2bef6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acab0c67bf5b3a76f2b474c8e1da98938"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#acab0c67bf5b3a76f2b474c8e1da98938">lzma_filter_decoder_is_supported</a> (<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> id) lzma_nothrow lzma_attr_const</td></tr>
+<tr class="memdesc:acab0c67bf5b3a76f2b474c8e1da98938"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if the given Filter ID is supported for decoding. <br /></td></tr>
+<tr class="separator:acab0c67bf5b3a76f2b474c8e1da98938"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a611fe1176eeeda187b1bd8aef45040aa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a611fe1176eeeda187b1bd8aef45040aa">lzma_filters_copy</a> (const <a class="el" href="structlzma__filter.html">lzma_filter</a> *src, <a class="el" href="structlzma__filter.html">lzma_filter</a> *dest, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a611fe1176eeeda187b1bd8aef45040aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the filters array. <br /></td></tr>
+<tr class="separator:a611fe1176eeeda187b1bd8aef45040aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae06979d219897f5f4c29cbc7a96a8892"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#ae06979d219897f5f4c29cbc7a96a8892">lzma_filters_free</a> (<a class="el" href="structlzma__filter.html">lzma_filter</a> *filters, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow</td></tr>
+<tr class="memdesc:ae06979d219897f5f4c29cbc7a96a8892"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free the options in the array of <a class="el" href="structlzma__filter.html" title="Filter options.">lzma_filter</a> structures. <br /></td></tr>
+<tr class="separator:ae06979d219897f5f4c29cbc7a96a8892"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a730f9391e85a5979bcd1b32643ae7176"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a730f9391e85a5979bcd1b32643ae7176">lzma_raw_encoder_memusage</a> (const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:a730f9391e85a5979bcd1b32643ae7176"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate approximate memory requirements for raw encoder. <br /></td></tr>
+<tr class="separator:a730f9391e85a5979bcd1b32643ae7176"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a58511249ae9206d7de7c5d1f05842297"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a58511249ae9206d7de7c5d1f05842297">lzma_raw_decoder_memusage</a> (const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:a58511249ae9206d7de7c5d1f05842297"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate approximate memory requirements for raw decoder. <br /></td></tr>
+<tr class="separator:a58511249ae9206d7de7c5d1f05842297"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2368e4129032345eb0738b0c6e085703"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a2368e4129032345eb0738b0c6e085703">lzma_raw_encoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a2368e4129032345eb0738b0c6e085703"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize raw encoder. <br /></td></tr>
+<tr class="separator:a2368e4129032345eb0738b0c6e085703"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae77b3b6c5eccd9d77bbafef0a8a203c1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#ae77b3b6c5eccd9d77bbafef0a8a203c1">lzma_raw_decoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:ae77b3b6c5eccd9d77bbafef0a8a203c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize raw decoder. <br /></td></tr>
+<tr class="separator:ae77b3b6c5eccd9d77bbafef0a8a203c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4a8fd969df001e449ebe4421ab33bba5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a4a8fd969df001e449ebe4421ab33bba5">lzma_filters_update</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters) lzma_nothrow</td></tr>
+<tr class="memdesc:a4a8fd969df001e449ebe4421ab33bba5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update the filter chain in the encoder. <br /></td></tr>
+<tr class="separator:a4a8fd969df001e449ebe4421ab33bba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a226724ab3391b410281fdf656cc7c432"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a226724ab3391b410281fdf656cc7c432">lzma_raw_buffer_encode</a> (const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow</td></tr>
+<tr class="memdesc:a226724ab3391b410281fdf656cc7c432"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call raw encoder. <br /></td></tr>
+<tr class="separator:a226724ab3391b410281fdf656cc7c432"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b942df507e4f9a6d7525e5a4c6864e5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a3b942df507e4f9a6d7525e5a4c6864e5">lzma_raw_buffer_decode</a> (const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *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</td></tr>
+<tr class="memdesc:a3b942df507e4f9a6d7525e5a4c6864e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call raw decoder. <br /></td></tr>
+<tr class="separator:a3b942df507e4f9a6d7525e5a4c6864e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee038818cf7bbe044c3f7a7c86998c1b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#aee038818cf7bbe044c3f7a7c86998c1b">lzma_properties_size</a> (uint32_t *size, const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filter) lzma_nothrow</td></tr>
+<tr class="memdesc:aee038818cf7bbe044c3f7a7c86998c1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of the Filter Properties field. <br /></td></tr>
+<tr class="separator:aee038818cf7bbe044c3f7a7c86998c1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8e00887086df5a44084ac22e48415de3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a8e00887086df5a44084ac22e48415de3">lzma_properties_encode</a> (const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filter, uint8_t *props) lzma_nothrow</td></tr>
+<tr class="memdesc:a8e00887086df5a44084ac22e48415de3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode the Filter Properties field. <br /></td></tr>
+<tr class="separator:a8e00887086df5a44084ac22e48415de3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88d2e864b2039ac82802cc202278d478"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a88d2e864b2039ac82802cc202278d478">lzma_properties_decode</a> (<a class="el" href="structlzma__filter.html">lzma_filter</a> *filter, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, const uint8_t *props, size_t props_size) lzma_nothrow</td></tr>
+<tr class="memdesc:a88d2e864b2039ac82802cc202278d478"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode the Filter Properties field. <br /></td></tr>
+<tr class="separator:a88d2e864b2039ac82802cc202278d478"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a996c9c21840ed54e37bd1f664a79d940"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a996c9c21840ed54e37bd1f664a79d940">lzma_filter_flags_size</a> (uint32_t *size, const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filter) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a996c9c21840ed54e37bd1f664a79d940"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate encoded size of a Filter Flags field. <br /></td></tr>
+<tr class="separator:a996c9c21840ed54e37bd1f664a79d940"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96f23309bc21398fece18c00ebe7db98"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a96f23309bc21398fece18c00ebe7db98">lzma_filter_flags_encode</a> (const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filter, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a96f23309bc21398fece18c00ebe7db98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode Filter Flags into given buffer. <br /></td></tr>
+<tr class="separator:a96f23309bc21398fece18c00ebe7db98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4cba9a4c658cce0ff01fd102b31ea1a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a4cba9a4c658cce0ff01fd102b31ea1a7">lzma_filter_flags_decode</a> (<a class="el" href="structlzma__filter.html">lzma_filter</a> *filter, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, const uint8_t *in, size_t *in_pos, size_t in_size) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a4cba9a4c658cce0ff01fd102b31ea1a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode Filter Flags from given buffer. <br /></td></tr>
+<tr class="separator:a4cba9a4c658cce0ff01fd102b31ea1a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa042cf11749bc2183b27de1c3142da30"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#aa042cf11749bc2183b27de1c3142da30">lzma_str_to_filters</a> (const char *str, int *error_pos, <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters, uint32_t flags, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:aa042cf11749bc2183b27de1c3142da30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a string to a filter chain. <br /></td></tr>
+<tr class="separator:aa042cf11749bc2183b27de1c3142da30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7deeb86ef59a9111b8033681290e0fb0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#a7deeb86ef59a9111b8033681290e0fb0">lzma_str_from_filters</a> (char **str, const <a class="el" href="structlzma__filter.html">lzma_filter</a> *filters, uint32_t flags, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a7deeb86ef59a9111b8033681290e0fb0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a filter chain to a string. <br /></td></tr>
+<tr class="separator:a7deeb86ef59a9111b8033681290e0fb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab51585b68796ce0270f87e615b923809"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="filter_8h.html#ab51585b68796ce0270f87e615b923809">lzma_str_list_filters</a> (char **str, <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> filter_id, uint32_t flags, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:ab51585b68796ce0270f87e615b923809"><td class="mdescLeft">&#160;</td><td class="mdescRight">List available filters and/or their options (for help message) <br /></td></tr>
+<tr class="separator:ab51585b68796ce0270f87e615b923809"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Common filter related types and functions. </p>
+<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="ab33c0cc1728bf390e5b84f8bce1928ba" name="ab33c0cc1728bf390e5b84f8bce1928ba"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab33c0cc1728bf390e5b84f8bce1928ba">&#9670;&#160;</a></span>LZMA_FILTERS_MAX</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_FILTERS_MAX&#160;&#160;&#160;4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Maximum number of filters in a chain. </p>
+<p>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. </p>
+
+</div>
+</div>
+<a id="a41aa51eeb53190404439c31d8e9c97cd" name="a41aa51eeb53190404439c31d8e9c97cd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a41aa51eeb53190404439c31d8e9c97cd">&#9670;&#160;</a></span>LZMA_STR_ALL_FILTERS</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_STR_ALL_FILTERS&#160;&#160;&#160;UINT32_C(0x01)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Allow or show all filters. </p>
+<p>By default only the filters supported in the .xz format are accept by <a class="el" href="filter_8h.html#aa042cf11749bc2183b27de1c3142da30" title="Convert a string to a filter chain.">lzma_str_to_filters()</a> or shown by <a class="el" href="filter_8h.html#ab51585b68796ce0270f87e615b923809" title="List available filters and/or their options (for help message)">lzma_str_list_filters()</a>. </p>
+
+</div>
+</div>
+<a id="adc33f4c0c7b5d3ae36acc0437a904339" name="adc33f4c0c7b5d3ae36acc0437a904339"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adc33f4c0c7b5d3ae36acc0437a904339">&#9670;&#160;</a></span>LZMA_STR_NO_VALIDATION</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_STR_NO_VALIDATION&#160;&#160;&#160;UINT32_C(0x02)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Do not validate the filter chain in <a class="el" href="filter_8h.html#aa042cf11749bc2183b27de1c3142da30" title="Convert a string to a filter chain.">lzma_str_to_filters()</a> </p>
+<p>By default <a class="el" href="filter_8h.html#aa042cf11749bc2183b27de1c3142da30" title="Convert a string to a filter chain.">lzma_str_to_filters()</a> 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. </p>
+
+</div>
+</div>
+<a id="a09a775f6a78d28ca136acfb51ad5fa02" name="a09a775f6a78d28ca136acfb51ad5fa02"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a09a775f6a78d28ca136acfb51ad5fa02">&#9670;&#160;</a></span>LZMA_STR_ENCODER</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_STR_ENCODER&#160;&#160;&#160;UINT32_C(0x10)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Stringify encoder options. </p>
+<p>Show the filter-specific options that the encoder will use. This may be useful for verbose diagnostic messages.</p>
+<p>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. </p>
+
+</div>
+</div>
+<a id="a8a0f3fc03bdb84a294cdd53a98783104" name="a8a0f3fc03bdb84a294cdd53a98783104"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8a0f3fc03bdb84a294cdd53a98783104">&#9670;&#160;</a></span>LZMA_STR_DECODER</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_STR_DECODER&#160;&#160;&#160;UINT32_C(0x20)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Stringify decoder options. </p>
+<p>Show the filter-specific options that the decoder will use. This may be useful for showing what filter options were decoded from file headers. </p>
+
+</div>
+</div>
+<a id="a87e9ac4ae5829b092262223256141a29" name="a87e9ac4ae5829b092262223256141a29"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a87e9ac4ae5829b092262223256141a29">&#9670;&#160;</a></span>LZMA_STR_GETOPT_LONG</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_STR_GETOPT_LONG&#160;&#160;&#160;UINT32_C(0x40)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Produce xz-compatible getopt_long() syntax. </p>
+<p>That is, "delta:dist=2 lzma2:dict=4MiB,pb=1,lp=1" becomes "--delta=dist=2 --lzma2=dict=4MiB,pb=1,lp=1".</p>
+<p>This syntax is compatible with xz 5.0.0 as long as the filters and their options are supported too. </p>
+
+</div>
+</div>
+<a id="ac0113c47caf98a735db2297936c5e857" name="ac0113c47caf98a735db2297936c5e857"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac0113c47caf98a735db2297936c5e857">&#9670;&#160;</a></span>LZMA_STR_NO_SPACES</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_STR_NO_SPACES&#160;&#160;&#160;UINT32_C(0x80)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Use two dashes "--" instead of a space to separate filters. </p>
+<p>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.</p>
+<p>It is guaranteed that the single quote (') will never be used in filter chain strings (even if LZMA_STR_NO_SPACES isn't used). </p>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="a3db3c36cd6e57658a74c53e4daa2bef6" name="a3db3c36cd6e57658a74c53e4daa2bef6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3db3c36cd6e57658a74c53e4daa2bef6">&#9670;&#160;</a></span>lzma_filter_encoder_is_supported()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> lzma_filter_encoder_is_supported </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
+ <td class="paramname"><em>id</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Test if the given Filter ID is supported for encoding. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">id</td><td>Filter ID</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>lzma_bool:<ul>
+<li>true if the Filter ID is supported for encoding by this liblzma build.</li>
+<li>false otherwise. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="acab0c67bf5b3a76f2b474c8e1da98938" name="acab0c67bf5b3a76f2b474c8e1da98938"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acab0c67bf5b3a76f2b474c8e1da98938">&#9670;&#160;</a></span>lzma_filter_decoder_is_supported()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> lzma_filter_decoder_is_supported </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
+ <td class="paramname"><em>id</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Test if the given Filter ID is supported for decoding. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">id</td><td>Filter ID</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>lzma_bool:<ul>
+<li>true if the Filter ID is supported for decoding by this liblzma build.</li>
+<li>false otherwise. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a611fe1176eeeda187b1bd8aef45040aa" name="a611fe1176eeeda187b1bd8aef45040aa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a611fe1176eeeda187b1bd8aef45040aa">&#9670;&#160;</a></span>lzma_filters_copy()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_filters_copy </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>src</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>dest</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Copy the filters array. </p>
+<p>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.</p>
+<p>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.</p>
+<p>Old filter-specific options in dest are not freed, so dest doesn't need to be initialized by the caller in any way.</p>
+<p>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.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">src</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">dest</td><td>Destination filter array </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free().</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_OPTIONS_ERROR: Unsupported Filter ID and its options is not NULL.</li>
+<li>LZMA_PROG_ERROR: src or dest is NULL. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="ae06979d219897f5f4c29cbc7a96a8892" name="ae06979d219897f5f4c29cbc7a96a8892"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae06979d219897f5f4c29cbc7a96a8892">&#9670;&#160;</a></span>lzma_filters_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void lzma_filters_free </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filters</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Free the options in the array of <a class="el" href="structlzma__filter.html" title="Filter options.">lzma_filter</a> structures. </p>
+<p>This frees the filter chain options. The filters array itself is not freed.</p>
+<p>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:</p><ul>
+<li>options will be freed using the given <a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> or, if allocator is NULL, using free().</li>
+<li>options will be set to NULL.</li>
+<li>id will be set to LZMA_VLI_UNKNOWN.</li>
+</ul>
+<p>If filters is NULL, this does nothing. Again, this never frees the filters array itself.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN. </td></tr>
+ <tr><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a id="a730f9391e85a5979bcd1b32643ae7176" name="a730f9391e85a5979bcd1b32643ae7176"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a730f9391e85a5979bcd1b32643ae7176">&#9670;&#160;</a></span>lzma_raw_encoder_memusage()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t lzma_raw_encoder_memusage </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filters</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Calculate approximate memory requirements for raw encoder. </p>
+<p>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.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Number of bytes of memory required for the given filter chain when encoding or UINT64_MAX on error. </dd></dl>
+
+</div>
+</div>
+<a id="a58511249ae9206d7de7c5d1f05842297" name="a58511249ae9206d7de7c5d1f05842297"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a58511249ae9206d7de7c5d1f05842297">&#9670;&#160;</a></span>lzma_raw_decoder_memusage()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t lzma_raw_decoder_memusage </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filters</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Calculate approximate memory requirements for raw decoder. </p>
+<p>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.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Number of bytes of memory required for the given filter chain when decoding or UINT64_MAX on error. </dd></dl>
+
+</div>
+</div>
+<a id="a2368e4129032345eb0738b0c6e085703" name="a2368e4129032345eb0738b0c6e085703"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2368e4129032345eb0738b0c6e085703">&#9670;&#160;</a></span>lzma_raw_encoder()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_raw_encoder </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filters</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialize raw encoder. </p>
+<p>This function may be useful when implementing custom file formats.</p>
+<p>The 'action' with <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> can be LZMA_RUN, LZMA_SYNC_FLUSH (if the filter chain supports it), or LZMA_FINISH.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ <tr><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="ae77b3b6c5eccd9d77bbafef0a8a203c1" name="ae77b3b6c5eccd9d77bbafef0a8a203c1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae77b3b6c5eccd9d77bbafef0a8a203c1">&#9670;&#160;</a></span>lzma_raw_decoder()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_raw_decoder </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filters</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialize raw decoder. </p>
+<p>The initialization of raw decoder goes similarly to raw encoder.</p>
+<p>The 'action' with <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> can be LZMA_RUN or LZMA_FINISH. Using LZMA_FINISH is not required, it is supported just for convenience.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ <tr><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a4a8fd969df001e449ebe4421ab33bba5" name="a4a8fd969df001e449ebe4421ab33bba5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4a8fd969df001e449ebe4421ab33bba5">&#9670;&#160;</a></span>lzma_filters_update()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_filters_update </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filters</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Update the filter chain in the encoder. </p>
+<p>This function may be called after <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> has returned LZMA_STREAM_END when LZMA_FULL_BARRIER, LZMA_FULL_FLUSH, or LZMA_SYNC_FLUSH was used:</p>
+<ul>
+<li>After LZMA_FULL_BARRIER or LZMA_FULL_FLUSH: Single-threaded .xz Stream encoder (<a class="el" href="container_8h.html#a1a97aec94c9fedd7646cfa51c4f4cd52" title="Initialize .xz Stream encoder using a custom filter chain.">lzma_stream_encoder()</a>) and (since liblzma 5.4.0) multi-threaded Stream encoder (<a class="el" href="container_8h.html#a3f8793518711ee84d1abf12ea3aaba42" title="Initialize multithreaded .xz Stream encoder.">lzma_stream_encoder_mt()</a>) allow setting a new filter chain to be used for the next Block(s).</li>
+<li>After LZMA_SYNC_FLUSH: Raw encoder (<a class="el" href="filter_8h.html#a2368e4129032345eb0738b0c6e085703" title="Initialize raw encoder.">lzma_raw_encoder()</a>), Block encoder (<a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a>), and single-threaded .xz Stream encoder (<a class="el" href="container_8h.html#a1a97aec94c9fedd7646cfa51c4f4cd52" title="Initialize .xz Stream encoder using a custom filter chain.">lzma_stream_encoder()</a>) 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.</li>
+<li>In the future some filters might allow changing some of their options without any barrier or flushing but currently such filters don't exist.</li>
+</ul>
+<p>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.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> that is at least initialized with LZMA_STREAM_INIT. </td></tr>
+ <tr><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_MEMLIMIT_ERROR</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a226724ab3391b410281fdf656cc7c432" name="a226724ab3391b410281fdf656cc7c432"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a226724ab3391b410281fdf656cc7c432">&#9670;&#160;</a></span>lzma_raw_buffer_encode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_raw_buffer_encode </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filters</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const uint8_t *&#160;</td>
+ <td class="paramname"><em>in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>in_size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t *&#160;</td>
+ <td class="paramname"><em>out</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>out_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>out_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-call raw encoder. </p>
+<dl class="section note"><dt>Note</dt><dd>There is no function to calculate how big output buffer would surely be big enough. (<a class="el" href="container_8h.html#a66d4366a47b8332bff2a512f44f5c45e" title="Calculate output buffer size for single-call Stream encoder.">lzma_stream_buffer_bound()</a> works only for <a class="el" href="container_8h.html#a6e645ccaeace3b13a6981e03c6e190ad" title="Single-call .xz Stream encoder.">lzma_stream_buffer_encode()</a>; raw encoder won't necessarily meet that bound.)</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Encoding was successful.</li>
+<li>LZMA_BUF_ERROR: Not enough output buffer space.</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_DATA_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a3b942df507e4f9a6d7525e5a4c6864e5" name="a3b942df507e4f9a6d7525e5a4c6864e5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3b942df507e4f9a6d7525e5a4c6864e5">&#9670;&#160;</a></span>lzma_raw_buffer_decode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_raw_buffer_decode </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filters</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const uint8_t *&#160;</td>
+ <td class="paramname"><em>in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>in_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>in_size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t *&#160;</td>
+ <td class="paramname"><em>out</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>out_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>out_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-call raw decoder. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in_pos</td><td>The next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer; the first byte that won't be read is in[in_size]. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Decoding was successful.</li>
+<li>LZMA_BUF_ERROR: Not enough output buffer space.</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_DATA_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="aee038818cf7bbe044c3f7a7c86998c1b" name="aee038818cf7bbe044c3f7a7c86998c1b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aee038818cf7bbe044c3f7a7c86998c1b">&#9670;&#160;</a></span>lzma_properties_size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_properties_size </td>
+ <td>(</td>
+ <td class="paramtype">uint32_t *&#160;</td>
+ <td class="paramname"><em>size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filter</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the size of the Filter Properties field. </p>
+<p>This function may be useful when implementing custom file formats using the raw encoder and decoder.</p>
+<dl class="section note"><dt>Note</dt><dd>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 <a class="el" href="filter_8h.html#a8e00887086df5a44084ac22e48415de3" title="Encode the Filter Properties field.">lzma_properties_encode()</a> returns LZMA_OPTIONS_ERROR.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">size</td><td>Pointer to uint32_t to hold the size of the properties </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">filter</td><td>Filter ID and options (the size of the properties may vary depending on the options)</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a8e00887086df5a44084ac22e48415de3" name="a8e00887086df5a44084ac22e48415de3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8e00887086df5a44084ac22e48415de3">&#9670;&#160;</a></span>lzma_properties_encode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_properties_encode </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filter</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t *&#160;</td>
+ <td class="paramname"><em>props</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Encode the Filter Properties field. </p>
+<dl class="section note"><dt>Note</dt><dd>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.</dd>
+<dd>
+If <a class="el" href="filter_8h.html#aee038818cf7bbe044c3f7a7c86998c1b" title="Get the size of the Filter Properties field.">lzma_properties_size()</a> indicated that the size of the Filter Properties field is zero, calling <a class="el" href="filter_8h.html#a8e00887086df5a44084ac22e48415de3" title="Encode the Filter Properties field.">lzma_properties_encode()</a> is not required, but it won't do any harm either.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">filter</td><td>Filter ID and options </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">props</td><td>Buffer to hold the encoded options. The size of the buffer must have been already determined with <a class="el" href="filter_8h.html#aee038818cf7bbe044c3f7a7c86998c1b" title="Get the size of the Filter Properties field.">lzma_properties_size()</a>.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a88d2e864b2039ac82802cc202278d478" name="a88d2e864b2039ac82802cc202278d478"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a88d2e864b2039ac82802cc202278d478">&#9670;&#160;</a></span>lzma_properties_decode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_properties_decode </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filter</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const uint8_t *&#160;</td>
+ <td class="paramname"><em>props</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>props_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Decode the Filter Properties field. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">filter</td><td>filter-&gt;id must have been set to the correct Filter ID. filter-&gt;options doesn't need to be initialized (it's not freed by this function). The decoded options will be stored in filter-&gt;options; it's application's responsibility to free it when appropriate. filter-&gt;options is set to NULL if there are no properties or if an error occurs. </td></tr>
+ <tr><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). and in case of an error, also free(). </td></tr>
+ <tr><td class="paramname">props</td><td>Input buffer containing the properties. </td></tr>
+ <tr><td class="paramname">props_size</td><td>Size of the properties. This must be the exact size; giving too much or too little input will return LZMA_OPTIONS_ERROR.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_MEM_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a996c9c21840ed54e37bd1f664a79d940" name="a996c9c21840ed54e37bd1f664a79d940"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a996c9c21840ed54e37bd1f664a79d940">&#9670;&#160;</a></span>lzma_filter_flags_size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_filter_flags_size </td>
+ <td>(</td>
+ <td class="paramtype">uint32_t *&#160;</td>
+ <td class="paramname"><em>size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filter</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Calculate encoded size of a Filter Flags field. </p>
+<p>Knowing the size of Filter Flags is useful to know when allocating memory to hold the encoded Filter Flags.</p>
+<dl class="section note"><dt>Note</dt><dd>If you need to calculate size of List of Filter Flags, you need to loop over every <a class="el" href="structlzma__filter.html" title="Filter options.">lzma_filter</a> entry.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">size</td><td>Pointer to integer to hold the calculated size </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">filter</td><td>Filter ID and associated options whose encoded size is to be calculated</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: *size set successfully. Note that this doesn't guarantee that filter-&gt;options is valid, thus <a class="el" href="filter_8h.html#a96f23309bc21398fece18c00ebe7db98" title="Encode Filter Flags into given buffer.">lzma_filter_flags_encode()</a> may still fail.</li>
+<li>LZMA_OPTIONS_ERROR: Unknown Filter ID or unsupported options.</li>
+<li>LZMA_PROG_ERROR: Invalid options </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a96f23309bc21398fece18c00ebe7db98" name="a96f23309bc21398fece18c00ebe7db98"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a96f23309bc21398fece18c00ebe7db98">&#9670;&#160;</a></span>lzma_filter_flags_encode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_filter_flags_encode </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filter</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t *&#160;</td>
+ <td class="paramname"><em>out</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>out_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>out_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Encode Filter Flags into given buffer. </p>
+<p>In contrast to some functions, this doesn't allocate the needed buffer. This is due to how this function is used internally by liblzma.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">filter</td><td>Filter ID and options to be encoded </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>out[*out_pos] is the next write position. This is updated by the encoder. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>out[out_size] is the first byte to not write.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Encoding was successful.</li>
+<li>LZMA_OPTIONS_ERROR: Invalid or unsupported options.</li>
+<li>LZMA_PROG_ERROR: Invalid options or not enough output buffer space (you should have checked it with <a class="el" href="filter_8h.html#a996c9c21840ed54e37bd1f664a79d940" title="Calculate encoded size of a Filter Flags field.">lzma_filter_flags_size()</a>). </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a4cba9a4c658cce0ff01fd102b31ea1a7" name="a4cba9a4c658cce0ff01fd102b31ea1a7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4cba9a4c658cce0ff01fd102b31ea1a7">&#9670;&#160;</a></span>lzma_filter_flags_decode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_filter_flags_decode </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filter</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const uint8_t *&#160;</td>
+ <td class="paramname"><em>in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>in_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>in_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Decode Filter Flags from given buffer. </p>
+<p>The decoded result is stored into *filter. The old value of filter-&gt;options is not free()d. If anything other than LZMA_OK is returned, filter-&gt;options is set to NULL.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">filter</td><td>Destination filter. The decoded Filter ID will be stored in filter-&gt;id. If options are needed they will be allocated and the pointer will be stored in filter-&gt;options. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">in_pos</td><td>The next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer; the first byte that won't be read is in[in_size].</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>LZMA_OPTIONS_ERROR</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_DATA_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="aa042cf11749bc2183b27de1c3142da30" name="aa042cf11749bc2183b27de1c3142da30"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa042cf11749bc2183b27de1c3142da30">&#9670;&#160;</a></span>lzma_str_to_filters()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const char * lzma_str_to_filters </td>
+ <td>(</td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int *&#160;</td>
+ <td class="paramname"><em>error_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filters</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>flags</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert a string to a filter chain. </p>
+<p>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.</p>
+<p>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 "-".</p>
+<p>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.</p>
+<p>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.</p>
+<p>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 "=".</p>
+<p>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.</p>
+<p>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.</p>
+<p>The available filter names and their options are available via <a class="el" href="filter_8h.html#ab51585b68796ce0270f87e615b923809" title="List available filters and/or their options (for help message)">lzma_str_list_filters()</a>. See the xz man page for the description of filter names and options.</p>
+<p>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.</p>
+<div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span> *str = ...; <span class="comment">// From user</span></div>
+<div class="line"><a class="code hl_struct" href="structlzma__filter.html" title="Filter options.">lzma_filter</a> filters[<a class="code hl_define" href="filter_8h.html#ab33c0cc1728bf390e5b84f8bce1928ba" title="Maximum number of filters in a chain.">LZMA_FILTERS_MAX</a> + 1];</div>
+<div class="line"><span class="keywordtype">int</span> pos;</div>
+<div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span> *msg = <a class="code hl_function" href="filter_8h.html#aa042cf11749bc2183b27de1c3142da30" title="Convert a string to a filter chain.">lzma_str_to_filters</a>(str, &amp;pos, filters, 0, NULL);</div>
+<div class="line"><span class="keywordflow">if</span> (msg != NULL) {</div>
+<div class="line"> printf(<span class="stringliteral">&quot;%s: Error in XZ compression options:\n&quot;</span>, argv[0]);</div>
+<div class="line"> printf(<span class="stringliteral">&quot;%s: %s\n&quot;</span>, argv[0], str);</div>
+<div class="line"> printf(<span class="stringliteral">&quot;%s: %*s^\n&quot;</span>, argv[0], errpos, <span class="stringliteral">&quot;&quot;</span>);</div>
+<div class="line"> printf(<span class="stringliteral">&quot;%s: %s\n&quot;</span>, argv[0], msg);</div>
+<div class="line">}</div>
+</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">str</td><td>User-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. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">error_pos</td><td>If 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. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">filters</td><td>An array of <a class="el" href="structlzma__filter.html" title="Filter options.">lzma_filter</a> 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, <a class="el" href="filter_8h.html#ae06979d219897f5f4c29cbc7a96a8892" title="Free the options in the array of lzma_filter structures.">lzma_filters_free()</a> can be used to free the options (it doesn't free the filters array itself). </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">flags</td><td>Bitwise-or of zero or more of the flags LZMA_STR_ALL_FILTERS and LZMA_STR_NO_VALIDATION. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free().</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>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. </dd></dl>
+
+</div>
+</div>
+<a id="a7deeb86ef59a9111b8033681290e0fb0" name="a7deeb86ef59a9111b8033681290e0fb0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7deeb86ef59a9111b8033681290e0fb0">&#9670;&#160;</a></span>lzma_str_from_filters()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_str_from_filters </td>
+ <td>(</td>
+ <td class="paramtype">char **&#160;</td>
+ <td class="paramname"><em>str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td>
+ <td class="paramname"><em>filters</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>flags</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Convert a filter chain to a string. </p>
+<p>Use cases:</p>
+<ul>
+<li>Verbose output showing the full encoder options to the user (use LZMA_STR_ENCODER in flags)</li>
+<li>Showing the filters and options that are required to decode a file (use LZMA_STR_DECODER in flags)</li>
+<li>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.</li>
+</ul>
+<p>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 <a class="el" href="filter_8h.html#aa042cf11749bc2183b27de1c3142da30" title="Convert a string to a filter chain.">lzma_str_to_filters()</a> then <a class="el" href="filter_8h.html#a7deeb86ef59a9111b8033681290e0fb0" title="Convert a filter chain to a string.">lzma_str_from_filters()</a> will produce a string containing "lzma2".</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">str</td><td>On 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. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">filters</td><td>Array of filters terminated with .id == LZMA_VLI_UNKNOWN. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">flags</td><td>Bitwise-or of zero or more of the flags LZMA_STR_ENCODER, LZMA_STR_DECODER, LZMA_STR_GETOPT_LONG, and LZMA_STR_NO_SPACES. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free().</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>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.</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="ab51585b68796ce0270f87e615b923809" name="ab51585b68796ce0270f87e615b923809"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab51585b68796ce0270f87e615b923809">&#9670;&#160;</a></span>lzma_str_list_filters()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_str_list_filters </td>
+ <td>(</td>
+ <td class="paramtype">char **&#160;</td>
+ <td class="paramname"><em>str</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
+ <td class="paramname"><em>filter_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>flags</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>List available filters and/or their options (for help message) </p>
+<p>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.</p>
+<p>If filter_id is LZMA_VLI_UNKNOWN then all supported .xz-compatible filters are listed:</p>
+<ul>
+<li>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.</li>
+<li>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.</li>
+<li>If LZMA_STR_ALL_FILTERS is used then the list will include also those filters that cannot be used in the .xz format (LZMA1).</li>
+</ul>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">str</td><td>On 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. </td></tr>
+ <tr><td class="paramname">filter_id</td><td>Filter ID or LZMA_VLI_UNKNOWN. </td></tr>
+ <tr><td class="paramname">flags</td><td>Bitwise-or of zero or more of the flags LZMA_STR_ALL_FILTERS, LZMA_STR_ENCODER, LZMA_STR_DECODER, and LZMA_STR_GETOPT_LONG. </td></tr>
+ <tr><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free().</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>LZMA_OPTIONS_ERROR: Unsupported filter_id or flags</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
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 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
+<g style="fill:#195794;">
+<path d="M1,5.998l-0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm2,-0l-0,16.002c-0,0.796 0.316,1.559 0.879,2.121c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121c0,-3.486 0,-8.514 0,-12c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998Z"/>
+</g>
+<g style="fill:#BFD9F4;stroke-width:0;">
+<path d="M 5.6063709,24.951908 C 4.3924646,24.775461 3.4197129,23.899792 3.1031586,22.698521 L 3.0216155,22.389078 V 13.997725 5.6063709 L 3.1037477,5.2982247 C 3.3956682,4.2029881 4.1802788,3.412126 5.2787258,3.105917 5.5646428,3.0262132 5.6154982,3.0244963 8.0611641,3.0119829 l 2.4911989,-0.012746 1.932009,1.9300342 c 1.344142,1.3427669 1.976319,1.9498819 2.07763,1.9952626 0.137456,0.061571 0.474218,0.066269 6.006826,0.083795 l 5.861206,0.018568 0.29124,0.081916 c 1.094895,0.3079569 1.890116,1.109428 2.175567,2.192667 l 0.08154,0.3094425 V 16 22.389078 l -0.08154,0.309443 c -0.28446,1.079482 -1.086411,1.888085 -2.175567,2.193614 l -0.29124,0.0817 -10.302616,0.0049 c -5.700217,0.0027 -10.4001945,-0.0093 -10.5210471,-0.02684 z"/>
+</g>
+</svg>
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 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
+<g style="fill:#A0C7EE;">
+<path d="M1,5.998l-0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm2,-0l-0,16.002c-0,0.796 0.316,1.559 0.879,2.121c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121c0,-3.486 0,-8.514 0,-12c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998Z"/>
+</g>
+<g style="fill:#195794;stroke-width:0;">
+<path d="M 5.6063709,24.951908 C 4.3924646,24.775461 3.4197129,23.899792 3.1031586,22.698521 L 3.0216155,22.389078 V 13.997725 5.6063709 L 3.1037477,5.2982247 C 3.3956682,4.2029881 4.1802788,3.412126 5.2787258,3.105917 5.5646428,3.0262132 5.6154982,3.0244963 8.0611641,3.0119829 l 2.4911989,-0.012746 1.932009,1.9300342 c 1.344142,1.3427669 1.976319,1.9498819 2.07763,1.9952626 0.137456,0.061571 0.474218,0.066269 6.006826,0.083795 l 5.861206,0.018568 0.29124,0.081916 c 1.094895,0.3079569 1.890116,1.109428 2.175567,2.192667 l 0.08154,0.3094425 V 16 22.389078 l -0.08154,0.309443 c -0.28446,1.079482 -1.086411,1.888085 -2.175567,2.193614 l -0.29124,0.0817 -10.302616,0.0049 c -5.700217,0.0027 -10.4001945,-0.0093 -10.5210471,-0.02684 z"/>
+</g>
+</svg>
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 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
+<g style="fill:#195794;">
+<path
+ d="M1,5.998l0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm28,14.415l-3.456,-5.925c-0.538,-0.921 -1.524,-1.488 -2.591,-1.488c-0,0 -12.905,0 -12.906,0c-1.067,0 -2.053,0.567 -2.591,1.488l-4.453,7.635c0.03,0.751 0.342,1.465 0.876,1.998c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121l0,-1.587Zm0,-3.969l0,-6.444c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998l0,12.16l2.729,-4.677c0.896,-1.536 2.54,-2.481 4.318,-2.481c3.354,0 9.552,0 12.906,0c1.778,0 3.422,0.945 4.318,2.481l1.729,2.963Z"
+ id="path2" />
+</g>
+<g style="fill:#BFD9F4;stroke-width:0;">
+<path
+ d="M 5.3879408,24.913408 C 4.1598821,24.650818 3.1571088,23.558656 3.053503,22.370876 L 3.0312746,22.116041 5.2606813,18.293515 C 6.486855,16.191126 7.5598351,14.372696 7.6450818,14.25256 8.0043056,13.746312 8.5423079,13.363007 9.2104664,13.137285 l 0.2548351,-0.08609 6.9294785,-0.0097 c 6.805096,-0.0095 6.934944,-0.0084 7.234011,0.06267 0.695577,0.165199 1.290483,0.557253 1.714887,1.130141 0.08158,0.110125 0.938747,1.556711 1.90481,3.214634 l 1.756479,3.014406 -0.0186,0.971942 c -0.01387,0.724723 -0.03365,1.032131 -0.07778,1.208575 -0.242792,0.970733 -0.88732,1.735415 -1.772382,2.102793 -0.58835,0.244217 0.247209,0.227436 -11.161974,0.224159 -9.0281537,-0.0026 -10.3636023,-0.0098 -10.5862902,-0.05746 z"
+ id="path199" /><path
+ d="M 3.0126385,11.849829 3.0235061,5.5881684 3.1020974,5.2969283 C 3.3478146,4.3863605 3.93576,3.6757372 4.756668,3.2971229 5.3293315,3.0330025 5.1813272,3.0450949 8.0130385,3.0310668 l 2.5522875,-0.012644 1.918693,1.9107086 c 1.404146,1.3983023 1.964459,1.9332518 2.089351,1.9947704 l 0.170657,0.084062 5.897611,0.019367 c 5.553257,0.018236 5.910365,0.023213 6.116041,0.085231 1.102257,0.3323708 1.857042,1.1184422 2.154229,2.2435244 0.05645,0.2137228 0.06373,0.5643981 0.07519,3.6220748 0.0076,2.032169 -5.42e-4,3.370979 -0.02041,3.349261 -0.0182,-0.0199 -0.414296,-0.691472 -0.880217,-1.492382 -0.46592,-0.80091 -0.93093,-1.577954 -1.033354,-1.726764 -0.735716,-1.0689 -1.983568,-1.844244 -3.315972,-2.060353 -0.280375,-0.04548 -1.345158,-0.05334 -7.238708,-0.05347 -4.713933,-1.09e-4 -6.9931825,0.01221 -7.1717862,0.03874 -1.3002273,0.193134 -2.4770512,0.889916 -3.283628,1.944192 -0.1076466,0.140705 -0.8359664,1.353438 -1.6184885,2.694963 L 3.0017709,18.11149 Z"
+ id="path201" />
+</g>
+</svg>
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 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" width="16" height="24" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
+<g style="fill:#A0C7EE;">
+<path d="M1,5.998l0,16.002c-0,1.326 0.527,2.598 1.464,3.536c0.938,0.937 2.21,1.464 3.536,1.464c5.322,0 14.678,-0 20,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-3.486 0,-8.514 0,-12c0,-1.326 -0.527,-2.598 -1.464,-3.536c-0.938,-0.937 -2.21,-1.464 -3.536,-1.464c-0,0 -10.586,0 -10.586,0c0,-0 -3.707,-3.707 -3.707,-3.707c-0.187,-0.188 -0.442,-0.293 -0.707,-0.293l-5.002,0c-2.76,0 -4.998,2.238 -4.998,4.998Zm28,14.415l-3.456,-5.925c-0.538,-0.921 -1.524,-1.488 -2.591,-1.488c-0,0 -12.905,0 -12.906,0c-1.067,0 -2.053,0.567 -2.591,1.488l-4.453,7.635c0.03,0.751 0.342,1.465 0.876,1.998c0.562,0.563 1.325,0.879 2.121,0.879l20,0c0.796,0 1.559,-0.316 2.121,-0.879c0.563,-0.562 0.879,-1.325 0.879,-2.121l0,-1.587Zm0,-3.969l0,-6.444c0,-0.796 -0.316,-1.559 -0.879,-2.121c-0.562,-0.563 -1.325,-0.879 -2.121,-0.879c-7.738,0 -11,0 -11,0c-0.265,0 -0.52,-0.105 -0.707,-0.293c-0,0 -3.707,-3.707 -3.707,-3.707c-0,0 -4.588,0 -4.588,0c-1.656,0 -2.998,1.342 -2.998,2.998l0,12.16l2.729,-4.677c0.896,-1.536 2.54,-2.481 4.318,-2.481c3.354,0 9.552,0 12.906,0c1.778,0 3.422,0.945 4.318,2.481l1.729,2.963Z"/>
+</g>
+<g style="fill:#195794;stroke-width:0;">
+<path d="M 5.3879408,24.913408 C 4.1598821,24.650818 3.1571088,23.558656 3.053503,22.370876 L 3.0312746,22.116041 5.2606813,18.293515 C 6.486855,16.191126 7.5598351,14.372696 7.6450818,14.25256 8.0043056,13.746312 8.5423079,13.363007 9.2104664,13.137285 l 0.2548351,-0.08609 6.9294785,-0.0097 c 6.805096,-0.0095 6.934944,-0.0084 7.234011,0.06267 0.695577,0.165199 1.290483,0.557253 1.714887,1.130141 0.08158,0.110125 0.938747,1.556711 1.90481,3.214634 l 1.756479,3.014406 -0.0186,0.971942 c -0.01387,0.724723 -0.03365,1.032131 -0.07778,1.208575 -0.242792,0.970733 -0.88732,1.735415 -1.772382,2.102793 -0.58835,0.244217 0.247209,0.227436 -11.161974,0.224159 -9.0281537,-0.0026 -10.3636023,-0.0098 -10.5862902,-0.05746 z" />
+<path d="M 3.0126385,11.849829 3.0235061,5.5881684 3.1020974,5.2969283 C 3.3478146,4.3863605 3.93576,3.6757372 4.756668,3.2971229 5.3293315,3.0330025 5.1813272,3.0450949 8.0130385,3.0310668 l 2.5522875,-0.012644 1.918693,1.9107086 c 1.404146,1.3983023 1.964459,1.9332518 2.089351,1.9947704 l 0.170657,0.084062 5.897611,0.019367 c 5.553257,0.018236 5.910365,0.023213 6.116041,0.085231 1.102257,0.3323708 1.857042,1.1184422 2.154229,2.2435244 0.05645,0.2137228 0.06373,0.5643981 0.07519,3.6220748 0.0076,2.032169 -5.42e-4,3.370979 -0.02041,3.349261 -0.0182,-0.0199 -0.414296,-0.691472 -0.880217,-1.492382 -0.46592,-0.80091 -0.93093,-1.577954 -1.033354,-1.726764 -0.735716,-1.0689 -1.983568,-1.844244 -3.315972,-2.060353 -0.280375,-0.04548 -1.345158,-0.05334 -7.238708,-0.05347 -4.713933,-1.09e-4 -6.9931825,0.01221 -7.1717862,0.03874 -1.3002273,0.193134 -2.4770512,0.889916 -3.283628,1.944192 -0.1076466,0.140705 -0.8359664,1.353438 -1.6184885,2.694963 L 3.0017709,18.11149 Z" />
+</g>
+</svg>
diff --git a/doc/api/functions.html b/doc/api/functions.html
new file mode 100644
index 00000000..bcbb6f08
--- /dev/null
+++ b/doc/api/functions.html
@@ -0,0 +1,216 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): Data Fields</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="#index_a"><span>a</span></a></li>
+ <li><a href="#index_b"><span>b</span></a></li>
+ <li><a href="#index_c"><span>c</span></a></li>
+ <li><a href="#index_d"><span>d</span></a></li>
+ <li><a href="#index_e"><span>e</span></a></li>
+ <li><a href="#index_f"><span>f</span></a></li>
+ <li><a href="#index_h"><span>h</span></a></li>
+ <li><a href="#index_i"><span>i</span></a></li>
+ <li><a href="#index_l"><span>l</span></a></li>
+ <li><a href="#index_m"><span>m</span></a></li>
+ <li><a href="#index_n"><span>n</span></a></li>
+ <li><a href="#index_o"><span>o</span></a></li>
+ <li><a href="#index_p"><span>p</span></a></li>
+ <li><a href="#index_r"><span>r</span></a></li>
+ <li><a href="#index_s"><span>s</span></a></li>
+ <li><a href="#index_t"><span>t</span></a></li>
+ <li><a href="#index_u"><span>u</span></a></li>
+ <li class="current"><a href="#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="contents">
+<div class="textblock">Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:</div>
+
+<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
+<li>alloc&#160;:&#160;<a class="el" href="structlzma__allocator.html#aba5c4369af94cc9943423b49171462ec">lzma_allocator</a></li>
+<li>allocator&#160;:&#160;<a class="el" href="structlzma__stream.html#a4eb2f3e87e32cc4bea613898b0bd353f">lzma_stream</a></li>
+<li>avail_in&#160;:&#160;<a class="el" href="structlzma__stream.html#abb680ecea31910cbda1d7a6ad4f191c0">lzma_stream</a></li>
+<li>avail_out&#160;:&#160;<a class="el" href="structlzma__stream.html#a5ff28ea4e39148723c19f59811627904">lzma_stream</a></li>
+</ul>
+
+
+<h3><a id="index_b" name="index_b"></a>- b -</h3><ul>
+<li>backward_size&#160;:&#160;<a class="el" href="structlzma__stream__flags.html#aaa65ed7a55a098f829f04dba25d0f212">lzma_stream_flags</a></li>
+<li>block_count&#160;:&#160;<a class="el" href="structlzma__index__iter.html#abc6ee9be23e54f31aed07382c8caaf7c">lzma_index_iter</a></li>
+<li>block_size&#160;:&#160;<a class="el" href="structlzma__mt.html#a20cdc7865266ccb88da36a6e68f84d15">lzma_mt</a></li>
+</ul>
+
+
+<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
+<li>check&#160;:&#160;<a class="el" href="structlzma__block.html#a80cd9d3025991db4a476ce7588f853e6">lzma_block</a>, <a class="el" href="structlzma__mt.html#ae38846e8aca5b20d2a86a2364283b730">lzma_mt</a>, <a class="el" href="structlzma__stream__flags.html#ab1052ea7047c8d67f127f33278166647">lzma_stream_flags</a></li>
+<li>compressed_file_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a26436e75d4c2b5dd8d1de24140d8003e">lzma_index_iter</a></li>
+<li>compressed_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a426705df8dde4b094a42f91ea20a46ac">lzma_index_iter</a></li>
+<li>compressed_size&#160;:&#160;<a class="el" href="structlzma__block.html#a8383d489c9ffea8af390669a105c74e5">lzma_block</a>, <a class="el" href="structlzma__index__iter.html#a6e73b1f37e3fcf1e9491e4a53b2c52c7">lzma_index_iter</a></li>
+<li>compressed_stream_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a578bba553c43dc59a5e4032d4f6c89a3">lzma_index_iter</a></li>
+</ul>
+
+
+<h3><a id="index_d" name="index_d"></a>- d -</h3><ul>
+<li>depth&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a4226f686e8c9f6288595fe23d0e15713">lzma_options_lzma</a></li>
+<li>dict_size&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#aeb3f86002405a1191af86def46fca5ad">lzma_options_lzma</a></li>
+<li>dist&#160;:&#160;<a class="el" href="structlzma__options__delta.html#a31b4b0b5a2462cb9433c2663b8a62790">lzma_options_delta</a></li>
+</ul>
+
+
+<h3><a id="index_e" name="index_e"></a>- e -</h3><ul>
+<li>ext_flags&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#ade251d13ef46bcacb4e052b83693878c">lzma_options_lzma</a></li>
+<li>ext_size_high&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#ae5b3c2375c43ddfacf093980385fb9e3">lzma_options_lzma</a></li>
+<li>ext_size_low&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a971da8385dcebd01e60235afb3b717f9">lzma_options_lzma</a></li>
+</ul>
+
+
+<h3><a id="index_f" name="index_f"></a>- f -</h3><ul>
+<li>filters&#160;:&#160;<a class="el" href="structlzma__block.html#a5900e517e6e0a473a3184074ae7defd1">lzma_block</a>, <a class="el" href="structlzma__mt.html#ad43a62ef2178c76405e5be0ece7a98b4">lzma_mt</a></li>
+<li>flags&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a223a046bcf09077a6e720967682deeae">lzma_index_iter</a>, <a class="el" href="structlzma__mt.html#a1c2fe028f547bf58b48b5199557d9a9f">lzma_mt</a></li>
+<li>free&#160;:&#160;<a class="el" href="structlzma__allocator.html#a3726deffd08393934263c04660208009">lzma_allocator</a></li>
+</ul>
+
+
+<h3><a id="index_h" name="index_h"></a>- h -</h3><ul>
+<li>header_size&#160;:&#160;<a class="el" href="structlzma__block.html#a6689c4f7524b2c05772a2d6151138610">lzma_block</a></li>
+</ul>
+
+
+<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
+<li>id&#160;:&#160;<a class="el" href="structlzma__filter.html#aef1d9709759f39e61db77547b2326929">lzma_filter</a></li>
+<li>ignore_check&#160;:&#160;<a class="el" href="structlzma__block.html#a516ac9cc63bc1a4fadd9fbfc189a206b">lzma_block</a></li>
+<li>internal&#160;:&#160;<a class="el" href="structlzma__stream.html#a209da54c2fb5dea40ad011c8408300d0">lzma_stream</a></li>
+</ul>
+
+
+<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
+<li>lc&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a95f6188e5b5f05c50ec463a315df3585">lzma_options_lzma</a></li>
+<li>lp&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a0fe9c54e808fce3090b6994d95fe41fe">lzma_options_lzma</a></li>
+</ul>
+
+
+<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
+<li>memlimit_stop&#160;:&#160;<a class="el" href="structlzma__mt.html#ab5e0b530d4c572c7a2361aabbad656aa">lzma_mt</a></li>
+<li>memlimit_threading&#160;:&#160;<a class="el" href="structlzma__mt.html#a5a7fb0c7c2db350e09e77477bc3c9509">lzma_mt</a></li>
+<li>mf&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#aa99612cd52259093007f33513882dcd0">lzma_options_lzma</a></li>
+<li>mode&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a1d711df9bda046fd3899abf21fa250d5">lzma_options_lzma</a></li>
+</ul>
+
+
+<h3><a id="index_n" name="index_n"></a>- n -</h3><ul>
+<li>next_in&#160;:&#160;<a class="el" href="structlzma__stream.html#a72fdc738c793f07a5c29715aa57802cf">lzma_stream</a></li>
+<li>next_out&#160;:&#160;<a class="el" href="structlzma__stream.html#a14ee64ed636ddcb775edf87e2b9f42ec">lzma_stream</a></li>
+<li>nice_len&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a0352ea7f8b6a43b745a44f6cb4e2d263">lzma_options_lzma</a></li>
+<li>number&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a115a307dbc778a9de296376dc39c7b23">lzma_index_iter</a></li>
+<li>number_in_file&#160;:&#160;<a class="el" href="structlzma__index__iter.html#abe5333de53562189012d5ed084c0ef98">lzma_index_iter</a></li>
+<li>number_in_stream&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a35a752d344ff5d35d2a858a20bd6e5e8">lzma_index_iter</a></li>
+</ul>
+
+
+<h3><a id="index_o" name="index_o"></a>- o -</h3><ul>
+<li>opaque&#160;:&#160;<a class="el" href="structlzma__allocator.html#aab293a5007a93299cc97ee8b5fb81268">lzma_allocator</a></li>
+<li>options&#160;:&#160;<a class="el" href="structlzma__filter.html#a10dfbaa1601793657d12320bef933ee6">lzma_filter</a></li>
+</ul>
+
+
+<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
+<li>padding&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a48cfc856f283fe00b0df37402e012818">lzma_index_iter</a></li>
+<li>pb&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#acae107b3d3e9d0d4fe16103be22f4408">lzma_options_lzma</a></li>
+<li>preset&#160;:&#160;<a class="el" href="structlzma__mt.html#ab3883b5644752cdd15f01387d58dd050">lzma_mt</a></li>
+<li>preset_dict&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a16a58c1ee3ec18c820d5cb03dde3739a">lzma_options_lzma</a></li>
+<li>preset_dict_size&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a655ad4cce9e4dac9cf2a5c8daaa629e0">lzma_options_lzma</a></li>
+</ul>
+
+
+<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
+<li>raw_check&#160;:&#160;<a class="el" href="structlzma__block.html#a25e9bf1bb1699017694b18ca24f965d2">lzma_block</a></li>
+</ul>
+
+
+<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
+<li>seek_pos&#160;:&#160;<a class="el" href="structlzma__stream.html#af7c43a61f3dfeb0b9c8487b7f275054e">lzma_stream</a></li>
+<li>start_offset&#160;:&#160;<a class="el" href="structlzma__options__bcj.html#a3f5a3c62cd82ce89433684f12ed096ac">lzma_options_bcj</a></li>
+</ul>
+
+
+<h3><a id="index_t" name="index_t"></a>- t -</h3><ul>
+<li>threads&#160;:&#160;<a class="el" href="structlzma__mt.html#a881761f858dbda33c697e74acde0be70">lzma_mt</a></li>
+<li>timeout&#160;:&#160;<a class="el" href="structlzma__mt.html#a298992bf7d2154d8dd814560219d10c2">lzma_mt</a></li>
+<li>total_in&#160;:&#160;<a class="el" href="structlzma__stream.html#a1a411e1755d6185756caefabc3932c7b">lzma_stream</a></li>
+<li>total_out&#160;:&#160;<a class="el" href="structlzma__stream.html#a80d703ffdfd7661e344fe7b61ff737fa">lzma_stream</a></li>
+<li>total_size&#160;:&#160;<a class="el" href="structlzma__index__iter.html#ae164ca3d7492dcf5883769c38baac30e">lzma_index_iter</a></li>
+<li>type&#160;:&#160;<a class="el" href="structlzma__options__delta.html#af3f1ece7f8c472f4a794953b414c7cd7">lzma_options_delta</a></li>
+</ul>
+
+
+<h3><a id="index_u" name="index_u"></a>- u -</h3><ul>
+<li>uncompressed_file_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a2f3ecf341b5dc043e9673759b8ff47b9">lzma_index_iter</a></li>
+<li>uncompressed_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#abd374b748b4a42e122b90841709609bc">lzma_index_iter</a></li>
+<li>uncompressed_size&#160;:&#160;<a class="el" href="structlzma__block.html#a17362d38d1946dd16a9686557ec19a94">lzma_block</a>, <a class="el" href="structlzma__index__iter.html#aafc48408ed40060a84ecd66bae5e1b23">lzma_index_iter</a></li>
+<li>uncompressed_stream_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a0fc4959fab08e1a6a4902c728c735a99">lzma_index_iter</a></li>
+<li>unpadded_size&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a9f4e405b9884be08e3a35bc06e3e15df">lzma_index_iter</a></li>
+</ul>
+
+
+<h3><a id="index_v" name="index_v"></a>- v -</h3><ul>
+<li>version&#160;:&#160;<a class="el" href="structlzma__block.html#ac3936a5b0ec3f9b8f9c7ad68e7d149a5">lzma_block</a>, <a class="el" href="structlzma__stream__flags.html#a61e9151869d5b77c868aaa4958e74d10">lzma_stream_flags</a></li>
+</ul>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/functions_vars.html b/doc/api/functions_vars.html
new file mode 100644
index 00000000..3ad8a917
--- /dev/null
+++ b/doc/api/functions_vars.html
@@ -0,0 +1,216 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): Data Fields - Variables</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="#index_a"><span>a</span></a></li>
+ <li><a href="#index_b"><span>b</span></a></li>
+ <li><a href="#index_c"><span>c</span></a></li>
+ <li><a href="#index_d"><span>d</span></a></li>
+ <li><a href="#index_e"><span>e</span></a></li>
+ <li><a href="#index_f"><span>f</span></a></li>
+ <li><a href="#index_h"><span>h</span></a></li>
+ <li><a href="#index_i"><span>i</span></a></li>
+ <li><a href="#index_l"><span>l</span></a></li>
+ <li><a href="#index_m"><span>m</span></a></li>
+ <li><a href="#index_n"><span>n</span></a></li>
+ <li><a href="#index_o"><span>o</span></a></li>
+ <li><a href="#index_p"><span>p</span></a></li>
+ <li><a href="#index_r"><span>r</span></a></li>
+ <li><a href="#index_s"><span>s</span></a></li>
+ <li><a href="#index_t"><span>t</span></a></li>
+ <li><a href="#index_u"><span>u</span></a></li>
+ <li class="current"><a href="#index_v"><span>v</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="contents">
+<div class="textblock">Here is a list of all documented variables with links to the struct/union documentation for each field:</div>
+
+<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
+<li>alloc&#160;:&#160;<a class="el" href="structlzma__allocator.html#aba5c4369af94cc9943423b49171462ec">lzma_allocator</a></li>
+<li>allocator&#160;:&#160;<a class="el" href="structlzma__stream.html#a4eb2f3e87e32cc4bea613898b0bd353f">lzma_stream</a></li>
+<li>avail_in&#160;:&#160;<a class="el" href="structlzma__stream.html#abb680ecea31910cbda1d7a6ad4f191c0">lzma_stream</a></li>
+<li>avail_out&#160;:&#160;<a class="el" href="structlzma__stream.html#a5ff28ea4e39148723c19f59811627904">lzma_stream</a></li>
+</ul>
+
+
+<h3><a id="index_b" name="index_b"></a>- b -</h3><ul>
+<li>backward_size&#160;:&#160;<a class="el" href="structlzma__stream__flags.html#aaa65ed7a55a098f829f04dba25d0f212">lzma_stream_flags</a></li>
+<li>block_count&#160;:&#160;<a class="el" href="structlzma__index__iter.html#abc6ee9be23e54f31aed07382c8caaf7c">lzma_index_iter</a></li>
+<li>block_size&#160;:&#160;<a class="el" href="structlzma__mt.html#a20cdc7865266ccb88da36a6e68f84d15">lzma_mt</a></li>
+</ul>
+
+
+<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
+<li>check&#160;:&#160;<a class="el" href="structlzma__block.html#a80cd9d3025991db4a476ce7588f853e6">lzma_block</a>, <a class="el" href="structlzma__mt.html#ae38846e8aca5b20d2a86a2364283b730">lzma_mt</a>, <a class="el" href="structlzma__stream__flags.html#ab1052ea7047c8d67f127f33278166647">lzma_stream_flags</a></li>
+<li>compressed_file_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a26436e75d4c2b5dd8d1de24140d8003e">lzma_index_iter</a></li>
+<li>compressed_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a426705df8dde4b094a42f91ea20a46ac">lzma_index_iter</a></li>
+<li>compressed_size&#160;:&#160;<a class="el" href="structlzma__block.html#a8383d489c9ffea8af390669a105c74e5">lzma_block</a>, <a class="el" href="structlzma__index__iter.html#a6e73b1f37e3fcf1e9491e4a53b2c52c7">lzma_index_iter</a></li>
+<li>compressed_stream_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a578bba553c43dc59a5e4032d4f6c89a3">lzma_index_iter</a></li>
+</ul>
+
+
+<h3><a id="index_d" name="index_d"></a>- d -</h3><ul>
+<li>depth&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a4226f686e8c9f6288595fe23d0e15713">lzma_options_lzma</a></li>
+<li>dict_size&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#aeb3f86002405a1191af86def46fca5ad">lzma_options_lzma</a></li>
+<li>dist&#160;:&#160;<a class="el" href="structlzma__options__delta.html#a31b4b0b5a2462cb9433c2663b8a62790">lzma_options_delta</a></li>
+</ul>
+
+
+<h3><a id="index_e" name="index_e"></a>- e -</h3><ul>
+<li>ext_flags&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#ade251d13ef46bcacb4e052b83693878c">lzma_options_lzma</a></li>
+<li>ext_size_high&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#ae5b3c2375c43ddfacf093980385fb9e3">lzma_options_lzma</a></li>
+<li>ext_size_low&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a971da8385dcebd01e60235afb3b717f9">lzma_options_lzma</a></li>
+</ul>
+
+
+<h3><a id="index_f" name="index_f"></a>- f -</h3><ul>
+<li>filters&#160;:&#160;<a class="el" href="structlzma__block.html#a5900e517e6e0a473a3184074ae7defd1">lzma_block</a>, <a class="el" href="structlzma__mt.html#ad43a62ef2178c76405e5be0ece7a98b4">lzma_mt</a></li>
+<li>flags&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a223a046bcf09077a6e720967682deeae">lzma_index_iter</a>, <a class="el" href="structlzma__mt.html#a1c2fe028f547bf58b48b5199557d9a9f">lzma_mt</a></li>
+<li>free&#160;:&#160;<a class="el" href="structlzma__allocator.html#a3726deffd08393934263c04660208009">lzma_allocator</a></li>
+</ul>
+
+
+<h3><a id="index_h" name="index_h"></a>- h -</h3><ul>
+<li>header_size&#160;:&#160;<a class="el" href="structlzma__block.html#a6689c4f7524b2c05772a2d6151138610">lzma_block</a></li>
+</ul>
+
+
+<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
+<li>id&#160;:&#160;<a class="el" href="structlzma__filter.html#aef1d9709759f39e61db77547b2326929">lzma_filter</a></li>
+<li>ignore_check&#160;:&#160;<a class="el" href="structlzma__block.html#a516ac9cc63bc1a4fadd9fbfc189a206b">lzma_block</a></li>
+<li>internal&#160;:&#160;<a class="el" href="structlzma__stream.html#a209da54c2fb5dea40ad011c8408300d0">lzma_stream</a></li>
+</ul>
+
+
+<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
+<li>lc&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a95f6188e5b5f05c50ec463a315df3585">lzma_options_lzma</a></li>
+<li>lp&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a0fe9c54e808fce3090b6994d95fe41fe">lzma_options_lzma</a></li>
+</ul>
+
+
+<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
+<li>memlimit_stop&#160;:&#160;<a class="el" href="structlzma__mt.html#ab5e0b530d4c572c7a2361aabbad656aa">lzma_mt</a></li>
+<li>memlimit_threading&#160;:&#160;<a class="el" href="structlzma__mt.html#a5a7fb0c7c2db350e09e77477bc3c9509">lzma_mt</a></li>
+<li>mf&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#aa99612cd52259093007f33513882dcd0">lzma_options_lzma</a></li>
+<li>mode&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a1d711df9bda046fd3899abf21fa250d5">lzma_options_lzma</a></li>
+</ul>
+
+
+<h3><a id="index_n" name="index_n"></a>- n -</h3><ul>
+<li>next_in&#160;:&#160;<a class="el" href="structlzma__stream.html#a72fdc738c793f07a5c29715aa57802cf">lzma_stream</a></li>
+<li>next_out&#160;:&#160;<a class="el" href="structlzma__stream.html#a14ee64ed636ddcb775edf87e2b9f42ec">lzma_stream</a></li>
+<li>nice_len&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a0352ea7f8b6a43b745a44f6cb4e2d263">lzma_options_lzma</a></li>
+<li>number&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a115a307dbc778a9de296376dc39c7b23">lzma_index_iter</a></li>
+<li>number_in_file&#160;:&#160;<a class="el" href="structlzma__index__iter.html#abe5333de53562189012d5ed084c0ef98">lzma_index_iter</a></li>
+<li>number_in_stream&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a35a752d344ff5d35d2a858a20bd6e5e8">lzma_index_iter</a></li>
+</ul>
+
+
+<h3><a id="index_o" name="index_o"></a>- o -</h3><ul>
+<li>opaque&#160;:&#160;<a class="el" href="structlzma__allocator.html#aab293a5007a93299cc97ee8b5fb81268">lzma_allocator</a></li>
+<li>options&#160;:&#160;<a class="el" href="structlzma__filter.html#a10dfbaa1601793657d12320bef933ee6">lzma_filter</a></li>
+</ul>
+
+
+<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
+<li>padding&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a48cfc856f283fe00b0df37402e012818">lzma_index_iter</a></li>
+<li>pb&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#acae107b3d3e9d0d4fe16103be22f4408">lzma_options_lzma</a></li>
+<li>preset&#160;:&#160;<a class="el" href="structlzma__mt.html#ab3883b5644752cdd15f01387d58dd050">lzma_mt</a></li>
+<li>preset_dict&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a16a58c1ee3ec18c820d5cb03dde3739a">lzma_options_lzma</a></li>
+<li>preset_dict_size&#160;:&#160;<a class="el" href="structlzma__options__lzma.html#a655ad4cce9e4dac9cf2a5c8daaa629e0">lzma_options_lzma</a></li>
+</ul>
+
+
+<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
+<li>raw_check&#160;:&#160;<a class="el" href="structlzma__block.html#a25e9bf1bb1699017694b18ca24f965d2">lzma_block</a></li>
+</ul>
+
+
+<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
+<li>seek_pos&#160;:&#160;<a class="el" href="structlzma__stream.html#af7c43a61f3dfeb0b9c8487b7f275054e">lzma_stream</a></li>
+<li>start_offset&#160;:&#160;<a class="el" href="structlzma__options__bcj.html#a3f5a3c62cd82ce89433684f12ed096ac">lzma_options_bcj</a></li>
+</ul>
+
+
+<h3><a id="index_t" name="index_t"></a>- t -</h3><ul>
+<li>threads&#160;:&#160;<a class="el" href="structlzma__mt.html#a881761f858dbda33c697e74acde0be70">lzma_mt</a></li>
+<li>timeout&#160;:&#160;<a class="el" href="structlzma__mt.html#a298992bf7d2154d8dd814560219d10c2">lzma_mt</a></li>
+<li>total_in&#160;:&#160;<a class="el" href="structlzma__stream.html#a1a411e1755d6185756caefabc3932c7b">lzma_stream</a></li>
+<li>total_out&#160;:&#160;<a class="el" href="structlzma__stream.html#a80d703ffdfd7661e344fe7b61ff737fa">lzma_stream</a></li>
+<li>total_size&#160;:&#160;<a class="el" href="structlzma__index__iter.html#ae164ca3d7492dcf5883769c38baac30e">lzma_index_iter</a></li>
+<li>type&#160;:&#160;<a class="el" href="structlzma__options__delta.html#af3f1ece7f8c472f4a794953b414c7cd7">lzma_options_delta</a></li>
+</ul>
+
+
+<h3><a id="index_u" name="index_u"></a>- u -</h3><ul>
+<li>uncompressed_file_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a2f3ecf341b5dc043e9673759b8ff47b9">lzma_index_iter</a></li>
+<li>uncompressed_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#abd374b748b4a42e122b90841709609bc">lzma_index_iter</a></li>
+<li>uncompressed_size&#160;:&#160;<a class="el" href="structlzma__block.html#a17362d38d1946dd16a9686557ec19a94">lzma_block</a>, <a class="el" href="structlzma__index__iter.html#aafc48408ed40060a84ecd66bae5e1b23">lzma_index_iter</a></li>
+<li>uncompressed_stream_offset&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a0fc4959fab08e1a6a4902c728c735a99">lzma_index_iter</a></li>
+<li>unpadded_size&#160;:&#160;<a class="el" href="structlzma__index__iter.html#a9f4e405b9884be08e3a35bc06e3e15df">lzma_index_iter</a></li>
+</ul>
+
+
+<h3><a id="index_v" name="index_v"></a>- v -</h3><ul>
+<li>version&#160;:&#160;<a class="el" href="structlzma__block.html#ac3936a5b0ec3f9b8f9c7ad68e7d149a5">lzma_block</a>, <a class="el" href="structlzma__stream__flags.html#a61e9151869d5b77c868aaa4958e74d10">lzma_stream_flags</a></li>
+</ul>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/globals.html b/doc/api/globals.html
new file mode 100644
index 00000000..ba699862
--- /dev/null
+++ b/doc/api/globals.html
@@ -0,0 +1,284 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html#index_l"><span>l</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
+<li>lzma_action&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77e">base.h</a></li>
+<li>lzma_alone_decoder()&#160;:&#160;<a class="el" href="container_8h.html#a5f43c3a1035e5a226dcd298f4162b861">container.h</a></li>
+<li>lzma_alone_encoder()&#160;:&#160;<a class="el" href="container_8h.html#a26fcc5bccdf3f862caa4c992d01e1a72">container.h</a></li>
+<li>lzma_auto_decoder()&#160;:&#160;<a class="el" href="container_8h.html#a21cbebf2771617bb1e956385cfb353e3">container.h</a></li>
+<li>LZMA_BACKWARD_SIZE_MAX&#160;:&#160;<a class="el" href="stream__flags_8h.html#a2e5e09010880f8caa6cd6539c7341239">stream_flags.h</a></li>
+<li>LZMA_BACKWARD_SIZE_MIN&#160;:&#160;<a class="el" href="stream__flags_8h.html#ae8da8190f1396f66332073946bc45634">stream_flags.h</a></li>
+<li>lzma_block_buffer_bound()&#160;:&#160;<a class="el" href="block_8h.html#a58ff73e2572b529f48cc590bfffe5b4f">block.h</a></li>
+<li>lzma_block_buffer_decode()&#160;:&#160;<a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f">block.h</a></li>
+<li>lzma_block_buffer_encode()&#160;:&#160;<a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54">block.h</a></li>
+<li>lzma_block_compressed_size()&#160;:&#160;<a class="el" href="block_8h.html#a6c3e102d76db06a07126a569abc6e2bc">block.h</a></li>
+<li>lzma_block_decoder()&#160;:&#160;<a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92">block.h</a></li>
+<li>lzma_block_encoder()&#160;:&#160;<a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359">block.h</a></li>
+<li>lzma_block_header_decode()&#160;:&#160;<a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9">block.h</a></li>
+<li>lzma_block_header_encode()&#160;:&#160;<a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0">block.h</a></li>
+<li>lzma_block_header_size()&#160;:&#160;<a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd">block.h</a></li>
+<li>lzma_block_header_size_decode&#160;:&#160;<a class="el" href="block_8h.html#ac025c940683a70f4c7f956bad814fd5f">block.h</a></li>
+<li>lzma_block_total_size()&#160;:&#160;<a class="el" href="block_8h.html#a694424f9dfdd5151e01debac1c501fa9">block.h</a></li>
+<li>lzma_block_uncomp_encode()&#160;:&#160;<a class="el" href="block_8h.html#a5a260f634ccd5f54fb98f570d8d92d8c">block.h</a></li>
+<li>lzma_block_unpadded_size()&#160;:&#160;<a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30">block.h</a></li>
+<li>lzma_bool&#160;:&#160;<a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">base.h</a></li>
+<li>LZMA_BUF_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea9ca0ecb62459bdc84d6af47d16b23ae5">base.h</a></li>
+<li>lzma_check&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">check.h</a></li>
+<li>LZMA_CHECK_CRC32&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa0be65014a40b5cb4ab32252b3709bef7">check.h</a></li>
+<li>LZMA_CHECK_CRC64&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa87b4b0697a1e1ccb6766dd5c2fa24afc">check.h</a></li>
+<li>LZMA_CHECK_ID_MAX&#160;:&#160;<a class="el" href="check_8h.html#acd221ababe30230d9647aab469ad80cb">check.h</a></li>
+<li>lzma_check_is_supported()&#160;:&#160;<a class="el" href="check_8h.html#ae9391ed2acfad0ce9357b68c608f07d8">check.h</a></li>
+<li>LZMA_CHECK_NONE&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa7b9851d75abfabc08d7fc5b4aaeb6f20">check.h</a></li>
+<li>LZMA_CHECK_SHA256&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3faf26a55ddd204a50ae87ec3432e7bc309">check.h</a></li>
+<li>lzma_check_size()&#160;:&#160;<a class="el" href="check_8h.html#afd3fda19575d9d4f864c626c02b7cb48">check.h</a></li>
+<li>LZMA_CHECK_SIZE_MAX&#160;:&#160;<a class="el" href="check_8h.html#a379e931cf86351ab1d97896cda9abbe0">check.h</a></li>
+<li>lzma_code()&#160;:&#160;<a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957">base.h</a></li>
+<li>LZMA_CONCATENATED&#160;:&#160;<a class="el" href="container_8h.html#a563c84b5f368b3dd00d92ea903c5c33d">container.h</a></li>
+<li>lzma_cputhreads()&#160;:&#160;<a class="el" href="hardware_8h.html#a22f7a882b7a4b741a226abf62bdf46ca">hardware.h</a></li>
+<li>lzma_crc32()&#160;:&#160;<a class="el" href="check_8h.html#a760b569cce91bdd01e4ce9d78823c96d">check.h</a></li>
+<li>lzma_crc64()&#160;:&#160;<a class="el" href="check_8h.html#aff2e74ce671b9f82a96adb549c68cea2">check.h</a></li>
+<li>LZMA_DATA_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea3aa72729a844790e39b4e1101a731dfb">base.h</a></li>
+<li>LZMA_DELTA_DIST_MAX&#160;:&#160;<a class="el" href="delta_8h.html#afdf8a5ce184ddf9f8070de637775da94">delta.h</a></li>
+<li>LZMA_DELTA_DIST_MIN&#160;:&#160;<a class="el" href="delta_8h.html#a466886d9d01392f61bdf267687a4f96e">delta.h</a></li>
+<li>lzma_delta_type&#160;:&#160;<a class="el" href="delta_8h.html#a04d84d7fa6cefdc219b6e2e96ff36fe1">delta.h</a></li>
+<li>lzma_easy_buffer_encode()&#160;:&#160;<a class="el" href="container_8h.html#ac5e71f2711b57391186671967435faf2">container.h</a></li>
+<li>lzma_easy_decoder_memusage()&#160;:&#160;<a class="el" href="container_8h.html#a3562055d26c18fad067a7c7516eaddf5">container.h</a></li>
+<li>lzma_easy_encoder()&#160;:&#160;<a class="el" href="container_8h.html#acbdad999c544872f0f5d242f0d1a4ed4">container.h</a></li>
+<li>lzma_easy_encoder_memusage()&#160;:&#160;<a class="el" href="container_8h.html#a62c853cf7dbf008bdbd97b2685c3eabf">container.h</a></li>
+<li>lzma_end()&#160;:&#160;<a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308">base.h</a></li>
+<li>LZMA_FAIL_FAST&#160;:&#160;<a class="el" href="container_8h.html#aa1f469ed3d4b2eaf12f8081657efc9d5">container.h</a></li>
+<li>lzma_file_info_decoder()&#160;:&#160;<a class="el" href="index_8h.html#a7c5d77cf8532d95977d4571a1eb0a222">index.h</a></li>
+<li>LZMA_FILTER_ARM&#160;:&#160;<a class="el" href="bcj_8h.html#a495a58f63ebc7a8b756099efba492f8b">bcj.h</a></li>
+<li>LZMA_FILTER_ARM64&#160;:&#160;<a class="el" href="bcj_8h.html#a01765158cd31cac21b272b180628fc4b">bcj.h</a></li>
+<li>LZMA_FILTER_ARMTHUMB&#160;:&#160;<a class="el" href="bcj_8h.html#a5ec62e7e5e7df3d9af5b2ea3f857689a">bcj.h</a></li>
+<li>lzma_filter_decoder_is_supported()&#160;:&#160;<a class="el" href="filter_8h.html#acab0c67bf5b3a76f2b474c8e1da98938">filter.h</a></li>
+<li>LZMA_FILTER_DELTA&#160;:&#160;<a class="el" href="delta_8h.html#a7ced67235ad7a01ae31d32ecf1e634cb">delta.h</a></li>
+<li>lzma_filter_encoder_is_supported()&#160;:&#160;<a class="el" href="filter_8h.html#a3db3c36cd6e57658a74c53e4daa2bef6">filter.h</a></li>
+<li>lzma_filter_flags_decode()&#160;:&#160;<a class="el" href="filter_8h.html#a4cba9a4c658cce0ff01fd102b31ea1a7">filter.h</a></li>
+<li>lzma_filter_flags_encode()&#160;:&#160;<a class="el" href="filter_8h.html#a96f23309bc21398fece18c00ebe7db98">filter.h</a></li>
+<li>lzma_filter_flags_size()&#160;:&#160;<a class="el" href="filter_8h.html#a996c9c21840ed54e37bd1f664a79d940">filter.h</a></li>
+<li>LZMA_FILTER_IA64&#160;:&#160;<a class="el" href="bcj_8h.html#a2fe36218a38f400e1ce40820758f7427">bcj.h</a></li>
+<li>LZMA_FILTER_LZMA1&#160;:&#160;<a class="el" href="lzma12_8h.html#accedd16abcb758e7f748bac1102abda9">lzma12.h</a></li>
+<li>LZMA_FILTER_LZMA1EXT&#160;:&#160;<a class="el" href="lzma12_8h.html#a98a7fd42aa78a273a6b138629e46772d">lzma12.h</a></li>
+<li>LZMA_FILTER_LZMA2&#160;:&#160;<a class="el" href="lzma12_8h.html#a04f9d9a018a47cc99491e6e94e92f96b">lzma12.h</a></li>
+<li>LZMA_FILTER_POWERPC&#160;:&#160;<a class="el" href="bcj_8h.html#ab7f667d4a5d319f227f23163cbea086f">bcj.h</a></li>
+<li>LZMA_FILTER_RISCV&#160;:&#160;<a class="el" href="bcj_8h.html#a932e9d66e945f5601b8fad7445a9b40c">bcj.h</a></li>
+<li>LZMA_FILTER_SPARC&#160;:&#160;<a class="el" href="bcj_8h.html#a50941088e93ef659c6b000bbcaf58143">bcj.h</a></li>
+<li>LZMA_FILTER_X86&#160;:&#160;<a class="el" href="bcj_8h.html#aa9eac1f580ddde3309518cd153d596b1">bcj.h</a></li>
+<li>lzma_filters_copy()&#160;:&#160;<a class="el" href="filter_8h.html#a611fe1176eeeda187b1bd8aef45040aa">filter.h</a></li>
+<li>lzma_filters_free()&#160;:&#160;<a class="el" href="filter_8h.html#ae06979d219897f5f4c29cbc7a96a8892">filter.h</a></li>
+<li>LZMA_FILTERS_MAX&#160;:&#160;<a class="el" href="filter_8h.html#ab33c0cc1728bf390e5b84f8bce1928ba">filter.h</a></li>
+<li>lzma_filters_update()&#160;:&#160;<a class="el" href="filter_8h.html#a4a8fd969df001e449ebe4421ab33bba5">filter.h</a></li>
+<li>LZMA_FINISH&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77ea7d24fb3c6c144d13bcb091195b8ebec1">base.h</a></li>
+<li>LZMA_FORMAT_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea63b7a58949854eb9307f8e351358d56c">base.h</a></li>
+<li>LZMA_FULL_BARRIER&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77eaf7bf60e3555a4d10ffad3ecc3d2e01f1">base.h</a></li>
+<li>LZMA_FULL_FLUSH&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77eaab46f0d7c721f1ec377e9575eab2586f">base.h</a></li>
+<li>lzma_get_check()&#160;:&#160;<a class="el" href="check_8h.html#a8d7c3ffabfd024485f03fa209536c746">check.h</a></li>
+<li>LZMA_GET_CHECK&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa5b648c18da0f584f621cfdf7fef1bdb">base.h</a></li>
+<li>lzma_get_progress()&#160;:&#160;<a class="el" href="base_8h.html#ab6447cd68eeecbd6b88f21daeb8ce751">base.h</a></li>
+<li>LZMA_IGNORE_CHECK&#160;:&#160;<a class="el" href="container_8h.html#a1289925ae1c63a8e86f69f3657118a4d">container.h</a></li>
+<li>lzma_index&#160;:&#160;<a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">index.h</a></li>
+<li>lzma_index_append()&#160;:&#160;<a class="el" href="index_8h.html#ac347747eb933c7c408e6c801b33becc3">index.h</a></li>
+<li>lzma_index_block_count()&#160;:&#160;<a class="el" href="index_8h.html#add1a8c506f67dbc19cae6747107e3bec">index.h</a></li>
+<li>lzma_index_buffer_decode()&#160;:&#160;<a class="el" href="index_8h.html#a028b8b8d59a413f9682eea1269a6ae8b">index.h</a></li>
+<li>lzma_index_buffer_encode()&#160;:&#160;<a class="el" href="index_8h.html#add1ef06dec8a26d08ae8651cff0fd8d6">index.h</a></li>
+<li>lzma_index_cat()&#160;:&#160;<a class="el" href="index_8h.html#abc4db36b4bd67af01819be9dd045c34a">index.h</a></li>
+<li>LZMA_INDEX_CHECK_MASK_CRC32&#160;:&#160;<a class="el" href="index_8h.html#a6812319b2f335df98fcf5e97c144e4ac">index.h</a></li>
+<li>LZMA_INDEX_CHECK_MASK_CRC64&#160;:&#160;<a class="el" href="index_8h.html#a062a47783c17f64728d98b831411c5c3">index.h</a></li>
+<li>LZMA_INDEX_CHECK_MASK_NONE&#160;:&#160;<a class="el" href="index_8h.html#a2643014196abf129ddbb51ec2bd956d9">index.h</a></li>
+<li>LZMA_INDEX_CHECK_MASK_SHA256&#160;:&#160;<a class="el" href="index_8h.html#ad6540f1ecf60f186f7c0492937482169">index.h</a></li>
+<li>lzma_index_checks()&#160;:&#160;<a class="el" href="index_8h.html#af8d6528a04241841bd0a4322b0c57eaa">index.h</a></li>
+<li>lzma_index_decoder()&#160;:&#160;<a class="el" href="index_8h.html#abb56fd1d5914f8900ece7b88b78e5e23">index.h</a></li>
+<li>lzma_index_dup()&#160;:&#160;<a class="el" href="index_8h.html#a5161e3f67156577882e1d95dcb57e33e">index.h</a></li>
+<li>lzma_index_encoder()&#160;:&#160;<a class="el" href="index_8h.html#a6800d70f3b2afca085496460cd03211d">index.h</a></li>
+<li>lzma_index_end()&#160;:&#160;<a class="el" href="index_8h.html#a0c2d0009f07fc315d5ac89e4bcd25abd">index.h</a></li>
+<li>lzma_index_file_size()&#160;:&#160;<a class="el" href="index_8h.html#ac875ed47d35385e5dac461b25c5ea1c9">index.h</a></li>
+<li>lzma_index_hash&#160;:&#160;<a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">index_hash.h</a></li>
+<li>lzma_index_hash_append()&#160;:&#160;<a class="el" href="index__hash_8h.html#a2bdbe4f0b5fa2fadb7528447feaaa97f">index_hash.h</a></li>
+<li>lzma_index_hash_decode()&#160;:&#160;<a class="el" href="index__hash_8h.html#a891eb955284c9117155f92eb0ddba44c">index_hash.h</a></li>
+<li>lzma_index_hash_end()&#160;:&#160;<a class="el" href="index__hash_8h.html#a7dacb41b9ec1c8df5d33dfdae97743b3">index_hash.h</a></li>
+<li>lzma_index_hash_init()&#160;:&#160;<a class="el" href="index__hash_8h.html#aaafae4967a4a266d97dc34a98bfcabfb">index_hash.h</a></li>
+<li>lzma_index_hash_size()&#160;:&#160;<a class="el" href="index__hash_8h.html#a0f8ab3b57b117f9547866156755c917f">index_hash.h</a></li>
+<li>lzma_index_init()&#160;:&#160;<a class="el" href="index_8h.html#a0850627d011111326d4278a3e2edec25">index.h</a></li>
+<li>LZMA_INDEX_ITER_ANY&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8af46f6e5c414471c7c96586f380e48315">index.h</a></li>
+<li>LZMA_INDEX_ITER_BLOCK&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8a2702617d60d6fc15138a749e06ef3414">index.h</a></li>
+<li>lzma_index_iter_init()&#160;:&#160;<a class="el" href="index_8h.html#aa78f02f18ed29d289a6ef37b8ea98a21">index.h</a></li>
+<li>lzma_index_iter_locate()&#160;:&#160;<a class="el" href="index_8h.html#ac4f56df9d210712e5d7add5502c9eb93">index.h</a></li>
+<li>lzma_index_iter_mode&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8">index.h</a></li>
+<li>lzma_index_iter_next()&#160;:&#160;<a class="el" href="index_8h.html#af428522e1b3eef137c65c5a01f766e0e">index.h</a></li>
+<li>LZMA_INDEX_ITER_NONEMPTY_BLOCK&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8aa49bf4d561d8f2c61d300edbb6c282c7">index.h</a></li>
+<li>lzma_index_iter_rewind()&#160;:&#160;<a class="el" href="index_8h.html#ae81438be8deff4894b104e65d8acdd24">index.h</a></li>
+<li>LZMA_INDEX_ITER_STREAM&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8a5b31d985de1c823151acdd7e4a966fc9">index.h</a></li>
+<li>lzma_index_memusage()&#160;:&#160;<a class="el" href="index_8h.html#a880def3727ecdd7f242807083d228fc5">index.h</a></li>
+<li>lzma_index_memused()&#160;:&#160;<a class="el" href="index_8h.html#a4118805ac7be6618aca6d6d7e5e4dde7">index.h</a></li>
+<li>lzma_index_size()&#160;:&#160;<a class="el" href="index_8h.html#a669ed1a82b1941217cfbb07e7826afc2">index.h</a></li>
+<li>lzma_index_stream_count()&#160;:&#160;<a class="el" href="index_8h.html#afd159a765b09b0cf79186069a848d07e">index.h</a></li>
+<li>lzma_index_stream_flags()&#160;:&#160;<a class="el" href="index_8h.html#a79a19669237f19f0b11c9f3be80a62b4">index.h</a></li>
+<li>lzma_index_stream_padding()&#160;:&#160;<a class="el" href="index_8h.html#a3ed82f96c688f3c953f6509b6f4e2ef3">index.h</a></li>
+<li>lzma_index_stream_size()&#160;:&#160;<a class="el" href="index_8h.html#af3630369b43c9ccc906065d759b49663">index.h</a></li>
+<li>lzma_index_total_size()&#160;:&#160;<a class="el" href="index_8h.html#a7829942b83ee1fa5b6443cc248b81041">index.h</a></li>
+<li>lzma_index_uncompressed_size()&#160;:&#160;<a class="el" href="index_8h.html#a620fe6317f1f9d7af9cc27c748bf07d6">index.h</a></li>
+<li>lzma_internal&#160;:&#160;<a class="el" href="base_8h.html#ab1a60127c640135687a5bcc232cec906">base.h</a></li>
+<li>lzma_lzip_decoder()&#160;:&#160;<a class="el" href="container_8h.html#a97689f5709e0db1e2dac450f5ce4e5eb">container.h</a></li>
+<li>lzma_lzma_preset()&#160;:&#160;<a class="el" href="lzma12_8h.html#aa62c28944fe3575653a4c25780400d77">lzma12.h</a></li>
+<li>lzma_match_finder&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80">lzma12.h</a></li>
+<li>LZMA_MEM_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea567e1464feca03900a5425fb45b2f5b6">base.h</a></li>
+<li>LZMA_MEMLIMIT_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa1d705effe6026f32c0fe9756b6326bc">base.h</a></li>
+<li>lzma_memlimit_get()&#160;:&#160;<a class="el" href="base_8h.html#ac871bc2ead5d482c6d6b3d51bfec365c">base.h</a></li>
+<li>lzma_memlimit_set()&#160;:&#160;<a class="el" href="base_8h.html#afc49d4cf75b73128a167df3407505f7b">base.h</a></li>
+<li>lzma_memusage()&#160;:&#160;<a class="el" href="base_8h.html#a418b210cf206782a73cd9de7dc27f670">base.h</a></li>
+<li>LZMA_MF_BT2&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a7ab212446c3f6520f5c33ccfa4b3386a">lzma12.h</a></li>
+<li>LZMA_MF_BT3&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a983ecc59bf3e07a7c43fea551ea11865">lzma12.h</a></li>
+<li>LZMA_MF_BT4&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a468c32cdea9861d1ff98478364e6c547">lzma12.h</a></li>
+<li>LZMA_MF_HC3&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a6eb38f634021a192cada8a978b5de93b">lzma12.h</a></li>
+<li>LZMA_MF_HC4&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a0944620f4949289c2ebde613cae12b04">lzma12.h</a></li>
+<li>lzma_mf_is_supported()&#160;:&#160;<a class="el" href="lzma12_8h.html#aefba1f7214ddcf8cd408a0702e8642b5">lzma12.h</a></li>
+<li>lzma_microlzma_decoder()&#160;:&#160;<a class="el" href="container_8h.html#aa8372dae3e7c907c36f7bb5426aeacdf">container.h</a></li>
+<li>lzma_microlzma_encoder()&#160;:&#160;<a class="el" href="container_8h.html#abfc8f11acf837b167aa94b7071b54c30">container.h</a></li>
+<li>lzma_mode&#160;:&#160;<a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866">lzma12.h</a></li>
+<li>LZMA_MODE_FAST&#160;:&#160;<a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866ac8c0926a91b4f756e11121efd30648cc">lzma12.h</a></li>
+<li>lzma_mode_is_supported()&#160;:&#160;<a class="el" href="lzma12_8h.html#ad1add1c2600fdbb3d737e4fb3465dfcb">lzma12.h</a></li>
+<li>LZMA_MODE_NORMAL&#160;:&#160;<a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866ad37225f30d5cd21fc8bb3eaba283bbf9">lzma12.h</a></li>
+<li>lzma_mt_block_size()&#160;:&#160;<a class="el" href="container_8h.html#a7eaeda1cb811ac1f5a6403691df8a894">container.h</a></li>
+<li>LZMA_NO_CHECK&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa720d30092d504d7d138a320db1905ef">base.h</a></li>
+<li>LZMA_OK&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eac003781ccb81bbd5578e29abed8a8cfe">base.h</a></li>
+<li>LZMA_OPTIONS_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa9ff6dfee36b7aba4fae60706d37425f">base.h</a></li>
+<li>lzma_physmem()&#160;:&#160;<a class="el" href="hardware_8h.html#a85363e453b34272a9f26c9fdffb041ee">hardware.h</a></li>
+<li>LZMA_PRESET_DEFAULT&#160;:&#160;<a class="el" href="container_8h.html#af3ca20ff228b363a82515c1aee9e27bc">container.h</a></li>
+<li>LZMA_PRESET_EXTREME&#160;:&#160;<a class="el" href="container_8h.html#af524fe9af5737820fdadcd40a2c26deb">container.h</a></li>
+<li>LZMA_PRESET_LEVEL_MASK&#160;:&#160;<a class="el" href="container_8h.html#a97e40265e355a21bd2465aaa5b85f03d">container.h</a></li>
+<li>LZMA_PROG_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea2dac8d451cb38da8550653d0d7be4ec2">base.h</a></li>
+<li>lzma_properties_decode()&#160;:&#160;<a class="el" href="filter_8h.html#a88d2e864b2039ac82802cc202278d478">filter.h</a></li>
+<li>lzma_properties_encode()&#160;:&#160;<a class="el" href="filter_8h.html#a8e00887086df5a44084ac22e48415de3">filter.h</a></li>
+<li>lzma_properties_size()&#160;:&#160;<a class="el" href="filter_8h.html#aee038818cf7bbe044c3f7a7c86998c1b">filter.h</a></li>
+<li>lzma_raw_buffer_decode()&#160;:&#160;<a class="el" href="filter_8h.html#a3b942df507e4f9a6d7525e5a4c6864e5">filter.h</a></li>
+<li>lzma_raw_buffer_encode()&#160;:&#160;<a class="el" href="filter_8h.html#a226724ab3391b410281fdf656cc7c432">filter.h</a></li>
+<li>lzma_raw_decoder()&#160;:&#160;<a class="el" href="filter_8h.html#ae77b3b6c5eccd9d77bbafef0a8a203c1">filter.h</a></li>
+<li>lzma_raw_decoder_memusage()&#160;:&#160;<a class="el" href="filter_8h.html#a58511249ae9206d7de7c5d1f05842297">filter.h</a></li>
+<li>lzma_raw_encoder()&#160;:&#160;<a class="el" href="filter_8h.html#a2368e4129032345eb0738b0c6e085703">filter.h</a></li>
+<li>lzma_raw_encoder_memusage()&#160;:&#160;<a class="el" href="filter_8h.html#a730f9391e85a5979bcd1b32643ae7176">filter.h</a></li>
+<li>lzma_reserved_enum&#160;:&#160;<a class="el" href="base_8h.html#a05805a07754b2aa22f7d443eb7ece41a">base.h</a></li>
+<li>lzma_ret&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">base.h</a></li>
+<li>LZMA_RUN&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77ea868472b76492afcaef54020a481890b1">base.h</a></li>
+<li>LZMA_SEEK_NEEDED&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea6cf28e5345851f13bd798a4eab8cc939">base.h</a></li>
+<li>lzma_set_ext_size&#160;:&#160;<a class="el" href="lzma12_8h.html#a73ed0293db4e59d73a702d66fef537c3">lzma12.h</a></li>
+<li>LZMA_STR_ALL_FILTERS&#160;:&#160;<a class="el" href="filter_8h.html#a41aa51eeb53190404439c31d8e9c97cd">filter.h</a></li>
+<li>LZMA_STR_DECODER&#160;:&#160;<a class="el" href="filter_8h.html#a8a0f3fc03bdb84a294cdd53a98783104">filter.h</a></li>
+<li>LZMA_STR_ENCODER&#160;:&#160;<a class="el" href="filter_8h.html#a09a775f6a78d28ca136acfb51ad5fa02">filter.h</a></li>
+<li>lzma_str_from_filters()&#160;:&#160;<a class="el" href="filter_8h.html#a7deeb86ef59a9111b8033681290e0fb0">filter.h</a></li>
+<li>LZMA_STR_GETOPT_LONG&#160;:&#160;<a class="el" href="filter_8h.html#a87e9ac4ae5829b092262223256141a29">filter.h</a></li>
+<li>lzma_str_list_filters()&#160;:&#160;<a class="el" href="filter_8h.html#ab51585b68796ce0270f87e615b923809">filter.h</a></li>
+<li>LZMA_STR_NO_SPACES&#160;:&#160;<a class="el" href="filter_8h.html#ac0113c47caf98a735db2297936c5e857">filter.h</a></li>
+<li>LZMA_STR_NO_VALIDATION&#160;:&#160;<a class="el" href="filter_8h.html#adc33f4c0c7b5d3ae36acc0437a904339">filter.h</a></li>
+<li>lzma_str_to_filters()&#160;:&#160;<a class="el" href="filter_8h.html#aa042cf11749bc2183b27de1c3142da30">filter.h</a></li>
+<li>lzma_stream_buffer_bound()&#160;:&#160;<a class="el" href="container_8h.html#a66d4366a47b8332bff2a512f44f5c45e">container.h</a></li>
+<li>lzma_stream_buffer_decode()&#160;:&#160;<a class="el" href="container_8h.html#aa58f237f6cea97ef0eb9bf5c37a3008d">container.h</a></li>
+<li>lzma_stream_buffer_encode()&#160;:&#160;<a class="el" href="container_8h.html#a6e645ccaeace3b13a6981e03c6e190ad">container.h</a></li>
+<li>lzma_stream_decoder()&#160;:&#160;<a class="el" href="container_8h.html#a02b7683ef98d8049788961370a8b28c0">container.h</a></li>
+<li>lzma_stream_decoder_mt()&#160;:&#160;<a class="el" href="container_8h.html#a7179d178e6430c10e2006a467921e98e">container.h</a></li>
+<li>lzma_stream_encoder()&#160;:&#160;<a class="el" href="container_8h.html#a1a97aec94c9fedd7646cfa51c4f4cd52">container.h</a></li>
+<li>lzma_stream_encoder_mt()&#160;:&#160;<a class="el" href="container_8h.html#a3f8793518711ee84d1abf12ea3aaba42">container.h</a></li>
+<li>lzma_stream_encoder_mt_memusage()&#160;:&#160;<a class="el" href="container_8h.html#ad7cf41496d77f4d346e006b26ed8e101">container.h</a></li>
+<li>LZMA_STREAM_END&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea91ecc6fab14c13ad36224afbcb4e55c4">base.h</a></li>
+<li>lzma_stream_flags_compare()&#160;:&#160;<a class="el" href="stream__flags_8h.html#a3e25ca4205021302882a696283d45263">stream_flags.h</a></li>
+<li>lzma_stream_footer_decode()&#160;:&#160;<a class="el" href="stream__flags_8h.html#aa92a383f85753bb79ee23227fa68186c">stream_flags.h</a></li>
+<li>lzma_stream_footer_encode()&#160;:&#160;<a class="el" href="stream__flags_8h.html#a438249a75ea8da952a7474b92bfe7b7a">stream_flags.h</a></li>
+<li>lzma_stream_header_decode()&#160;:&#160;<a class="el" href="stream__flags_8h.html#ae03198e464f0d296e601ff841e100805">stream_flags.h</a></li>
+<li>lzma_stream_header_encode()&#160;:&#160;<a class="el" href="stream__flags_8h.html#a2ebb8d6dff23daeb3de398913b845eff">stream_flags.h</a></li>
+<li>LZMA_STREAM_HEADER_SIZE&#160;:&#160;<a class="el" href="stream__flags_8h.html#ada7e0a4f5e7146f547962cb9e9ef08ee">stream_flags.h</a></li>
+<li>LZMA_STREAM_INIT&#160;:&#160;<a class="el" href="base_8h.html#af31f0c8b6f14359cd082b9559f7f3e01">base.h</a></li>
+<li>LZMA_SYNC_FLUSH&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77ea14d75152afcda85d215e877fdd9c4170">base.h</a></li>
+<li>LZMA_TELL_ANY_CHECK&#160;:&#160;<a class="el" href="container_8h.html#a0bdde702a77ff42b90a99c0bf4147b6b">container.h</a></li>
+<li>LZMA_TELL_NO_CHECK&#160;:&#160;<a class="el" href="container_8h.html#ada9cd20febb28b5ed6656de9184a86e9">container.h</a></li>
+<li>LZMA_TELL_UNSUPPORTED_CHECK&#160;:&#160;<a class="el" href="container_8h.html#ae21fb746037c82735d40d428c462e078">container.h</a></li>
+<li>LZMA_UNSUPPORTED_CHECK&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea989f393a1772d85bf545a9da48fc7ac2">base.h</a></li>
+<li>LZMA_VERSION&#160;:&#160;<a class="el" href="version_8h.html#a156c47ff34aa0c2b726d0daf799f10a0">version.h</a></li>
+<li>LZMA_VERSION_COMMIT&#160;:&#160;<a class="el" href="version_8h.html#a7fd6169ff15ac7f01f94970359a331ea">version.h</a></li>
+<li>LZMA_VERSION_MAJOR&#160;:&#160;<a class="el" href="version_8h.html#aa0f450c9d3b0ff5f88b55888ed55701f">version.h</a></li>
+<li>LZMA_VERSION_MINOR&#160;:&#160;<a class="el" href="version_8h.html#af8fd295cf8aa349b0731423ad7a56134">version.h</a></li>
+<li>lzma_version_number()&#160;:&#160;<a class="el" href="version_8h.html#a72f929c9b9e8e730b790b3f8c80c3c80">version.h</a></li>
+<li>LZMA_VERSION_PATCH&#160;:&#160;<a class="el" href="version_8h.html#a8b550373cbff381f15d4308b852a3c2a">version.h</a></li>
+<li>LZMA_VERSION_STABILITY&#160;:&#160;<a class="el" href="version_8h.html#ae289abe5dcc203c7cda9f6a9a2f36b3a">version.h</a></li>
+<li>LZMA_VERSION_STRING&#160;:&#160;<a class="el" href="version_8h.html#a57bb143c993c305a53e9aade831a546c">version.h</a></li>
+<li>lzma_version_string()&#160;:&#160;<a class="el" href="version_8h.html#a8998c1d8b4b5c2c1218bdfd58fdb1baa">version.h</a></li>
+<li>lzma_vli&#160;:&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">vli.h</a></li>
+<li>LZMA_VLI_BYTES_MAX&#160;:&#160;<a class="el" href="vli_8h.html#a063ecff4133aa2f8899b9fa3fdefd310">vli.h</a></li>
+<li>LZMA_VLI_C&#160;:&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">vli.h</a></li>
+<li>lzma_vli_decode()&#160;:&#160;<a class="el" href="vli_8h.html#a7b7d50e1074e0e2bcd81c29a5f7461c7">vli.h</a></li>
+<li>lzma_vli_encode()&#160;:&#160;<a class="el" href="vli_8h.html#a50bbb77e9ec3b72c25586aa700c20970">vli.h</a></li>
+<li>lzma_vli_is_valid&#160;:&#160;<a class="el" href="vli_8h.html#a4f67ed698215d865a2b87a95ab1320dd">vli.h</a></li>
+<li>LZMA_VLI_MAX&#160;:&#160;<a class="el" href="vli_8h.html#a7b782528bd1934db7c020adbedb20ec9">vli.h</a></li>
+<li>lzma_vli_size()&#160;:&#160;<a class="el" href="vli_8h.html#a8d53e0b69934b43da8721fa6f1e8cc4f">vli.h</a></li>
+<li>LZMA_VLI_UNKNOWN&#160;:&#160;<a class="el" href="vli_8h.html#a5a4b28254a30c859018b896ed371d69a">vli.h</a></li>
+</ul>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/globals_defs.html b/doc/api/globals_defs.html
new file mode 100644
index 00000000..110a2c0d
--- /dev/null
+++ b/doc/api/globals_defs.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="#index_l"><span>l</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="contents">
+<div class="textblock">Here is a list of all documented macros with links to the documentation:</div>
+
+<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
+<li>LZMA_BACKWARD_SIZE_MAX&#160;:&#160;<a class="el" href="stream__flags_8h.html#a2e5e09010880f8caa6cd6539c7341239">stream_flags.h</a></li>
+<li>LZMA_BACKWARD_SIZE_MIN&#160;:&#160;<a class="el" href="stream__flags_8h.html#ae8da8190f1396f66332073946bc45634">stream_flags.h</a></li>
+<li>lzma_block_header_size_decode&#160;:&#160;<a class="el" href="block_8h.html#ac025c940683a70f4c7f956bad814fd5f">block.h</a></li>
+<li>LZMA_CHECK_ID_MAX&#160;:&#160;<a class="el" href="check_8h.html#acd221ababe30230d9647aab469ad80cb">check.h</a></li>
+<li>LZMA_CHECK_SIZE_MAX&#160;:&#160;<a class="el" href="check_8h.html#a379e931cf86351ab1d97896cda9abbe0">check.h</a></li>
+<li>LZMA_CONCATENATED&#160;:&#160;<a class="el" href="container_8h.html#a563c84b5f368b3dd00d92ea903c5c33d">container.h</a></li>
+<li>LZMA_DELTA_DIST_MAX&#160;:&#160;<a class="el" href="delta_8h.html#afdf8a5ce184ddf9f8070de637775da94">delta.h</a></li>
+<li>LZMA_DELTA_DIST_MIN&#160;:&#160;<a class="el" href="delta_8h.html#a466886d9d01392f61bdf267687a4f96e">delta.h</a></li>
+<li>LZMA_FAIL_FAST&#160;:&#160;<a class="el" href="container_8h.html#aa1f469ed3d4b2eaf12f8081657efc9d5">container.h</a></li>
+<li>LZMA_FILTER_ARM&#160;:&#160;<a class="el" href="bcj_8h.html#a495a58f63ebc7a8b756099efba492f8b">bcj.h</a></li>
+<li>LZMA_FILTER_ARM64&#160;:&#160;<a class="el" href="bcj_8h.html#a01765158cd31cac21b272b180628fc4b">bcj.h</a></li>
+<li>LZMA_FILTER_ARMTHUMB&#160;:&#160;<a class="el" href="bcj_8h.html#a5ec62e7e5e7df3d9af5b2ea3f857689a">bcj.h</a></li>
+<li>LZMA_FILTER_DELTA&#160;:&#160;<a class="el" href="delta_8h.html#a7ced67235ad7a01ae31d32ecf1e634cb">delta.h</a></li>
+<li>LZMA_FILTER_IA64&#160;:&#160;<a class="el" href="bcj_8h.html#a2fe36218a38f400e1ce40820758f7427">bcj.h</a></li>
+<li>LZMA_FILTER_LZMA1&#160;:&#160;<a class="el" href="lzma12_8h.html#accedd16abcb758e7f748bac1102abda9">lzma12.h</a></li>
+<li>LZMA_FILTER_LZMA1EXT&#160;:&#160;<a class="el" href="lzma12_8h.html#a98a7fd42aa78a273a6b138629e46772d">lzma12.h</a></li>
+<li>LZMA_FILTER_LZMA2&#160;:&#160;<a class="el" href="lzma12_8h.html#a04f9d9a018a47cc99491e6e94e92f96b">lzma12.h</a></li>
+<li>LZMA_FILTER_POWERPC&#160;:&#160;<a class="el" href="bcj_8h.html#ab7f667d4a5d319f227f23163cbea086f">bcj.h</a></li>
+<li>LZMA_FILTER_RISCV&#160;:&#160;<a class="el" href="bcj_8h.html#a932e9d66e945f5601b8fad7445a9b40c">bcj.h</a></li>
+<li>LZMA_FILTER_SPARC&#160;:&#160;<a class="el" href="bcj_8h.html#a50941088e93ef659c6b000bbcaf58143">bcj.h</a></li>
+<li>LZMA_FILTER_X86&#160;:&#160;<a class="el" href="bcj_8h.html#aa9eac1f580ddde3309518cd153d596b1">bcj.h</a></li>
+<li>LZMA_FILTERS_MAX&#160;:&#160;<a class="el" href="filter_8h.html#ab33c0cc1728bf390e5b84f8bce1928ba">filter.h</a></li>
+<li>LZMA_IGNORE_CHECK&#160;:&#160;<a class="el" href="container_8h.html#a1289925ae1c63a8e86f69f3657118a4d">container.h</a></li>
+<li>LZMA_INDEX_CHECK_MASK_CRC32&#160;:&#160;<a class="el" href="index_8h.html#a6812319b2f335df98fcf5e97c144e4ac">index.h</a></li>
+<li>LZMA_INDEX_CHECK_MASK_CRC64&#160;:&#160;<a class="el" href="index_8h.html#a062a47783c17f64728d98b831411c5c3">index.h</a></li>
+<li>LZMA_INDEX_CHECK_MASK_NONE&#160;:&#160;<a class="el" href="index_8h.html#a2643014196abf129ddbb51ec2bd956d9">index.h</a></li>
+<li>LZMA_INDEX_CHECK_MASK_SHA256&#160;:&#160;<a class="el" href="index_8h.html#ad6540f1ecf60f186f7c0492937482169">index.h</a></li>
+<li>LZMA_PRESET_DEFAULT&#160;:&#160;<a class="el" href="container_8h.html#af3ca20ff228b363a82515c1aee9e27bc">container.h</a></li>
+<li>LZMA_PRESET_EXTREME&#160;:&#160;<a class="el" href="container_8h.html#af524fe9af5737820fdadcd40a2c26deb">container.h</a></li>
+<li>LZMA_PRESET_LEVEL_MASK&#160;:&#160;<a class="el" href="container_8h.html#a97e40265e355a21bd2465aaa5b85f03d">container.h</a></li>
+<li>lzma_set_ext_size&#160;:&#160;<a class="el" href="lzma12_8h.html#a73ed0293db4e59d73a702d66fef537c3">lzma12.h</a></li>
+<li>LZMA_STR_ALL_FILTERS&#160;:&#160;<a class="el" href="filter_8h.html#a41aa51eeb53190404439c31d8e9c97cd">filter.h</a></li>
+<li>LZMA_STR_DECODER&#160;:&#160;<a class="el" href="filter_8h.html#a8a0f3fc03bdb84a294cdd53a98783104">filter.h</a></li>
+<li>LZMA_STR_ENCODER&#160;:&#160;<a class="el" href="filter_8h.html#a09a775f6a78d28ca136acfb51ad5fa02">filter.h</a></li>
+<li>LZMA_STR_GETOPT_LONG&#160;:&#160;<a class="el" href="filter_8h.html#a87e9ac4ae5829b092262223256141a29">filter.h</a></li>
+<li>LZMA_STR_NO_SPACES&#160;:&#160;<a class="el" href="filter_8h.html#ac0113c47caf98a735db2297936c5e857">filter.h</a></li>
+<li>LZMA_STR_NO_VALIDATION&#160;:&#160;<a class="el" href="filter_8h.html#adc33f4c0c7b5d3ae36acc0437a904339">filter.h</a></li>
+<li>LZMA_STREAM_HEADER_SIZE&#160;:&#160;<a class="el" href="stream__flags_8h.html#ada7e0a4f5e7146f547962cb9e9ef08ee">stream_flags.h</a></li>
+<li>LZMA_STREAM_INIT&#160;:&#160;<a class="el" href="base_8h.html#af31f0c8b6f14359cd082b9559f7f3e01">base.h</a></li>
+<li>LZMA_TELL_ANY_CHECK&#160;:&#160;<a class="el" href="container_8h.html#a0bdde702a77ff42b90a99c0bf4147b6b">container.h</a></li>
+<li>LZMA_TELL_NO_CHECK&#160;:&#160;<a class="el" href="container_8h.html#ada9cd20febb28b5ed6656de9184a86e9">container.h</a></li>
+<li>LZMA_TELL_UNSUPPORTED_CHECK&#160;:&#160;<a class="el" href="container_8h.html#ae21fb746037c82735d40d428c462e078">container.h</a></li>
+<li>LZMA_VERSION&#160;:&#160;<a class="el" href="version_8h.html#a156c47ff34aa0c2b726d0daf799f10a0">version.h</a></li>
+<li>LZMA_VERSION_COMMIT&#160;:&#160;<a class="el" href="version_8h.html#a7fd6169ff15ac7f01f94970359a331ea">version.h</a></li>
+<li>LZMA_VERSION_MAJOR&#160;:&#160;<a class="el" href="version_8h.html#aa0f450c9d3b0ff5f88b55888ed55701f">version.h</a></li>
+<li>LZMA_VERSION_MINOR&#160;:&#160;<a class="el" href="version_8h.html#af8fd295cf8aa349b0731423ad7a56134">version.h</a></li>
+<li>LZMA_VERSION_PATCH&#160;:&#160;<a class="el" href="version_8h.html#a8b550373cbff381f15d4308b852a3c2a">version.h</a></li>
+<li>LZMA_VERSION_STABILITY&#160;:&#160;<a class="el" href="version_8h.html#ae289abe5dcc203c7cda9f6a9a2f36b3a">version.h</a></li>
+<li>LZMA_VERSION_STRING&#160;:&#160;<a class="el" href="version_8h.html#a57bb143c993c305a53e9aade831a546c">version.h</a></li>
+<li>LZMA_VLI_BYTES_MAX&#160;:&#160;<a class="el" href="vli_8h.html#a063ecff4133aa2f8899b9fa3fdefd310">vli.h</a></li>
+<li>LZMA_VLI_C&#160;:&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">vli.h</a></li>
+<li>lzma_vli_is_valid&#160;:&#160;<a class="el" href="vli_8h.html#a4f67ed698215d865a2b87a95ab1320dd">vli.h</a></li>
+<li>LZMA_VLI_MAX&#160;:&#160;<a class="el" href="vli_8h.html#a7b782528bd1934db7c020adbedb20ec9">vli.h</a></li>
+<li>LZMA_VLI_UNKNOWN&#160;:&#160;<a class="el" href="vli_8h.html#a5a4b28254a30c859018b896ed371d69a">vli.h</a></li>
+</ul>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/globals_enum.html b/doc/api/globals_enum.html
new file mode 100644
index 00000000..d30cf3c0
--- /dev/null
+++ b/doc/api/globals_enum.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="contents">
+<div class="textblock">Here is a list of all documented enums with links to the documentation:</div><ul>
+<li>lzma_action&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77e">base.h</a></li>
+<li>lzma_check&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">check.h</a></li>
+<li>lzma_delta_type&#160;:&#160;<a class="el" href="delta_8h.html#a04d84d7fa6cefdc219b6e2e96ff36fe1">delta.h</a></li>
+<li>lzma_index_iter_mode&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8">index.h</a></li>
+<li>lzma_match_finder&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80">lzma12.h</a></li>
+<li>lzma_mode&#160;:&#160;<a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866">lzma12.h</a></li>
+<li>lzma_reserved_enum&#160;:&#160;<a class="el" href="base_8h.html#a05805a07754b2aa22f7d443eb7ece41a">base.h</a></li>
+<li>lzma_ret&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">base.h</a></li>
+</ul>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/globals_eval.html b/doc/api/globals_eval.html
new file mode 100644
index 00000000..735636a6
--- /dev/null
+++ b/doc/api/globals_eval.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="#index_l"><span>l</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="contents">
+<div class="textblock">Here is a list of all documented enum values with links to the documentation:</div>
+
+<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
+<li>LZMA_BUF_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea9ca0ecb62459bdc84d6af47d16b23ae5">base.h</a></li>
+<li>LZMA_CHECK_CRC32&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa0be65014a40b5cb4ab32252b3709bef7">check.h</a></li>
+<li>LZMA_CHECK_CRC64&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa87b4b0697a1e1ccb6766dd5c2fa24afc">check.h</a></li>
+<li>LZMA_CHECK_NONE&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa7b9851d75abfabc08d7fc5b4aaeb6f20">check.h</a></li>
+<li>LZMA_CHECK_SHA256&#160;:&#160;<a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3faf26a55ddd204a50ae87ec3432e7bc309">check.h</a></li>
+<li>LZMA_DATA_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea3aa72729a844790e39b4e1101a731dfb">base.h</a></li>
+<li>LZMA_FINISH&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77ea7d24fb3c6c144d13bcb091195b8ebec1">base.h</a></li>
+<li>LZMA_FORMAT_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea63b7a58949854eb9307f8e351358d56c">base.h</a></li>
+<li>LZMA_FULL_BARRIER&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77eaf7bf60e3555a4d10ffad3ecc3d2e01f1">base.h</a></li>
+<li>LZMA_FULL_FLUSH&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77eaab46f0d7c721f1ec377e9575eab2586f">base.h</a></li>
+<li>LZMA_GET_CHECK&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa5b648c18da0f584f621cfdf7fef1bdb">base.h</a></li>
+<li>LZMA_INDEX_ITER_ANY&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8af46f6e5c414471c7c96586f380e48315">index.h</a></li>
+<li>LZMA_INDEX_ITER_BLOCK&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8a2702617d60d6fc15138a749e06ef3414">index.h</a></li>
+<li>LZMA_INDEX_ITER_NONEMPTY_BLOCK&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8aa49bf4d561d8f2c61d300edbb6c282c7">index.h</a></li>
+<li>LZMA_INDEX_ITER_STREAM&#160;:&#160;<a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8a5b31d985de1c823151acdd7e4a966fc9">index.h</a></li>
+<li>LZMA_MEM_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea567e1464feca03900a5425fb45b2f5b6">base.h</a></li>
+<li>LZMA_MEMLIMIT_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa1d705effe6026f32c0fe9756b6326bc">base.h</a></li>
+<li>LZMA_MF_BT2&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a7ab212446c3f6520f5c33ccfa4b3386a">lzma12.h</a></li>
+<li>LZMA_MF_BT3&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a983ecc59bf3e07a7c43fea551ea11865">lzma12.h</a></li>
+<li>LZMA_MF_BT4&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a468c32cdea9861d1ff98478364e6c547">lzma12.h</a></li>
+<li>LZMA_MF_HC3&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a6eb38f634021a192cada8a978b5de93b">lzma12.h</a></li>
+<li>LZMA_MF_HC4&#160;:&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a0944620f4949289c2ebde613cae12b04">lzma12.h</a></li>
+<li>LZMA_MODE_FAST&#160;:&#160;<a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866ac8c0926a91b4f756e11121efd30648cc">lzma12.h</a></li>
+<li>LZMA_MODE_NORMAL&#160;:&#160;<a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866ad37225f30d5cd21fc8bb3eaba283bbf9">lzma12.h</a></li>
+<li>LZMA_NO_CHECK&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa720d30092d504d7d138a320db1905ef">base.h</a></li>
+<li>LZMA_OK&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eac003781ccb81bbd5578e29abed8a8cfe">base.h</a></li>
+<li>LZMA_OPTIONS_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6eaa9ff6dfee36b7aba4fae60706d37425f">base.h</a></li>
+<li>LZMA_PROG_ERROR&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea2dac8d451cb38da8550653d0d7be4ec2">base.h</a></li>
+<li>LZMA_RUN&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77ea868472b76492afcaef54020a481890b1">base.h</a></li>
+<li>LZMA_SEEK_NEEDED&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea6cf28e5345851f13bd798a4eab8cc939">base.h</a></li>
+<li>LZMA_STREAM_END&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea91ecc6fab14c13ad36224afbcb4e55c4">base.h</a></li>
+<li>LZMA_SYNC_FLUSH&#160;:&#160;<a class="el" href="base_8h.html#aa92efcbf3cecfcac79c81fc645fce77ea14d75152afcda85d215e877fdd9c4170">base.h</a></li>
+<li>LZMA_UNSUPPORTED_CHECK&#160;:&#160;<a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6ea989f393a1772d85bf545a9da48fc7ac2">base.h</a></li>
+</ul>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/globals_func.html b/doc/api/globals_func.html
new file mode 100644
index 00000000..5072b26b
--- /dev/null
+++ b/doc/api/globals_func.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="#index_l"><span>l</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions with links to the documentation:</div>
+
+<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
+<li>lzma_alone_decoder()&#160;:&#160;<a class="el" href="container_8h.html#a5f43c3a1035e5a226dcd298f4162b861">container.h</a></li>
+<li>lzma_alone_encoder()&#160;:&#160;<a class="el" href="container_8h.html#a26fcc5bccdf3f862caa4c992d01e1a72">container.h</a></li>
+<li>lzma_auto_decoder()&#160;:&#160;<a class="el" href="container_8h.html#a21cbebf2771617bb1e956385cfb353e3">container.h</a></li>
+<li>lzma_block_buffer_bound()&#160;:&#160;<a class="el" href="block_8h.html#a58ff73e2572b529f48cc590bfffe5b4f">block.h</a></li>
+<li>lzma_block_buffer_decode()&#160;:&#160;<a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f">block.h</a></li>
+<li>lzma_block_buffer_encode()&#160;:&#160;<a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54">block.h</a></li>
+<li>lzma_block_compressed_size()&#160;:&#160;<a class="el" href="block_8h.html#a6c3e102d76db06a07126a569abc6e2bc">block.h</a></li>
+<li>lzma_block_decoder()&#160;:&#160;<a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92">block.h</a></li>
+<li>lzma_block_encoder()&#160;:&#160;<a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359">block.h</a></li>
+<li>lzma_block_header_decode()&#160;:&#160;<a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9">block.h</a></li>
+<li>lzma_block_header_encode()&#160;:&#160;<a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0">block.h</a></li>
+<li>lzma_block_header_size()&#160;:&#160;<a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd">block.h</a></li>
+<li>lzma_block_total_size()&#160;:&#160;<a class="el" href="block_8h.html#a694424f9dfdd5151e01debac1c501fa9">block.h</a></li>
+<li>lzma_block_uncomp_encode()&#160;:&#160;<a class="el" href="block_8h.html#a5a260f634ccd5f54fb98f570d8d92d8c">block.h</a></li>
+<li>lzma_block_unpadded_size()&#160;:&#160;<a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30">block.h</a></li>
+<li>lzma_check_is_supported()&#160;:&#160;<a class="el" href="check_8h.html#ae9391ed2acfad0ce9357b68c608f07d8">check.h</a></li>
+<li>lzma_check_size()&#160;:&#160;<a class="el" href="check_8h.html#afd3fda19575d9d4f864c626c02b7cb48">check.h</a></li>
+<li>lzma_code()&#160;:&#160;<a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957">base.h</a></li>
+<li>lzma_cputhreads()&#160;:&#160;<a class="el" href="hardware_8h.html#a22f7a882b7a4b741a226abf62bdf46ca">hardware.h</a></li>
+<li>lzma_crc32()&#160;:&#160;<a class="el" href="check_8h.html#a760b569cce91bdd01e4ce9d78823c96d">check.h</a></li>
+<li>lzma_crc64()&#160;:&#160;<a class="el" href="check_8h.html#aff2e74ce671b9f82a96adb549c68cea2">check.h</a></li>
+<li>lzma_easy_buffer_encode()&#160;:&#160;<a class="el" href="container_8h.html#ac5e71f2711b57391186671967435faf2">container.h</a></li>
+<li>lzma_easy_decoder_memusage()&#160;:&#160;<a class="el" href="container_8h.html#a3562055d26c18fad067a7c7516eaddf5">container.h</a></li>
+<li>lzma_easy_encoder()&#160;:&#160;<a class="el" href="container_8h.html#acbdad999c544872f0f5d242f0d1a4ed4">container.h</a></li>
+<li>lzma_easy_encoder_memusage()&#160;:&#160;<a class="el" href="container_8h.html#a62c853cf7dbf008bdbd97b2685c3eabf">container.h</a></li>
+<li>lzma_end()&#160;:&#160;<a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308">base.h</a></li>
+<li>lzma_file_info_decoder()&#160;:&#160;<a class="el" href="index_8h.html#a7c5d77cf8532d95977d4571a1eb0a222">index.h</a></li>
+<li>lzma_filter_decoder_is_supported()&#160;:&#160;<a class="el" href="filter_8h.html#acab0c67bf5b3a76f2b474c8e1da98938">filter.h</a></li>
+<li>lzma_filter_encoder_is_supported()&#160;:&#160;<a class="el" href="filter_8h.html#a3db3c36cd6e57658a74c53e4daa2bef6">filter.h</a></li>
+<li>lzma_filter_flags_decode()&#160;:&#160;<a class="el" href="filter_8h.html#a4cba9a4c658cce0ff01fd102b31ea1a7">filter.h</a></li>
+<li>lzma_filter_flags_encode()&#160;:&#160;<a class="el" href="filter_8h.html#a96f23309bc21398fece18c00ebe7db98">filter.h</a></li>
+<li>lzma_filter_flags_size()&#160;:&#160;<a class="el" href="filter_8h.html#a996c9c21840ed54e37bd1f664a79d940">filter.h</a></li>
+<li>lzma_filters_copy()&#160;:&#160;<a class="el" href="filter_8h.html#a611fe1176eeeda187b1bd8aef45040aa">filter.h</a></li>
+<li>lzma_filters_free()&#160;:&#160;<a class="el" href="filter_8h.html#ae06979d219897f5f4c29cbc7a96a8892">filter.h</a></li>
+<li>lzma_filters_update()&#160;:&#160;<a class="el" href="filter_8h.html#a4a8fd969df001e449ebe4421ab33bba5">filter.h</a></li>
+<li>lzma_get_check()&#160;:&#160;<a class="el" href="check_8h.html#a8d7c3ffabfd024485f03fa209536c746">check.h</a></li>
+<li>lzma_get_progress()&#160;:&#160;<a class="el" href="base_8h.html#ab6447cd68eeecbd6b88f21daeb8ce751">base.h</a></li>
+<li>lzma_index_append()&#160;:&#160;<a class="el" href="index_8h.html#ac347747eb933c7c408e6c801b33becc3">index.h</a></li>
+<li>lzma_index_block_count()&#160;:&#160;<a class="el" href="index_8h.html#add1a8c506f67dbc19cae6747107e3bec">index.h</a></li>
+<li>lzma_index_buffer_decode()&#160;:&#160;<a class="el" href="index_8h.html#a028b8b8d59a413f9682eea1269a6ae8b">index.h</a></li>
+<li>lzma_index_buffer_encode()&#160;:&#160;<a class="el" href="index_8h.html#add1ef06dec8a26d08ae8651cff0fd8d6">index.h</a></li>
+<li>lzma_index_cat()&#160;:&#160;<a class="el" href="index_8h.html#abc4db36b4bd67af01819be9dd045c34a">index.h</a></li>
+<li>lzma_index_checks()&#160;:&#160;<a class="el" href="index_8h.html#af8d6528a04241841bd0a4322b0c57eaa">index.h</a></li>
+<li>lzma_index_decoder()&#160;:&#160;<a class="el" href="index_8h.html#abb56fd1d5914f8900ece7b88b78e5e23">index.h</a></li>
+<li>lzma_index_dup()&#160;:&#160;<a class="el" href="index_8h.html#a5161e3f67156577882e1d95dcb57e33e">index.h</a></li>
+<li>lzma_index_encoder()&#160;:&#160;<a class="el" href="index_8h.html#a6800d70f3b2afca085496460cd03211d">index.h</a></li>
+<li>lzma_index_end()&#160;:&#160;<a class="el" href="index_8h.html#a0c2d0009f07fc315d5ac89e4bcd25abd">index.h</a></li>
+<li>lzma_index_file_size()&#160;:&#160;<a class="el" href="index_8h.html#ac875ed47d35385e5dac461b25c5ea1c9">index.h</a></li>
+<li>lzma_index_hash_append()&#160;:&#160;<a class="el" href="index__hash_8h.html#a2bdbe4f0b5fa2fadb7528447feaaa97f">index_hash.h</a></li>
+<li>lzma_index_hash_decode()&#160;:&#160;<a class="el" href="index__hash_8h.html#a891eb955284c9117155f92eb0ddba44c">index_hash.h</a></li>
+<li>lzma_index_hash_end()&#160;:&#160;<a class="el" href="index__hash_8h.html#a7dacb41b9ec1c8df5d33dfdae97743b3">index_hash.h</a></li>
+<li>lzma_index_hash_init()&#160;:&#160;<a class="el" href="index__hash_8h.html#aaafae4967a4a266d97dc34a98bfcabfb">index_hash.h</a></li>
+<li>lzma_index_hash_size()&#160;:&#160;<a class="el" href="index__hash_8h.html#a0f8ab3b57b117f9547866156755c917f">index_hash.h</a></li>
+<li>lzma_index_init()&#160;:&#160;<a class="el" href="index_8h.html#a0850627d011111326d4278a3e2edec25">index.h</a></li>
+<li>lzma_index_iter_init()&#160;:&#160;<a class="el" href="index_8h.html#aa78f02f18ed29d289a6ef37b8ea98a21">index.h</a></li>
+<li>lzma_index_iter_locate()&#160;:&#160;<a class="el" href="index_8h.html#ac4f56df9d210712e5d7add5502c9eb93">index.h</a></li>
+<li>lzma_index_iter_next()&#160;:&#160;<a class="el" href="index_8h.html#af428522e1b3eef137c65c5a01f766e0e">index.h</a></li>
+<li>lzma_index_iter_rewind()&#160;:&#160;<a class="el" href="index_8h.html#ae81438be8deff4894b104e65d8acdd24">index.h</a></li>
+<li>lzma_index_memusage()&#160;:&#160;<a class="el" href="index_8h.html#a880def3727ecdd7f242807083d228fc5">index.h</a></li>
+<li>lzma_index_memused()&#160;:&#160;<a class="el" href="index_8h.html#a4118805ac7be6618aca6d6d7e5e4dde7">index.h</a></li>
+<li>lzma_index_size()&#160;:&#160;<a class="el" href="index_8h.html#a669ed1a82b1941217cfbb07e7826afc2">index.h</a></li>
+<li>lzma_index_stream_count()&#160;:&#160;<a class="el" href="index_8h.html#afd159a765b09b0cf79186069a848d07e">index.h</a></li>
+<li>lzma_index_stream_flags()&#160;:&#160;<a class="el" href="index_8h.html#a79a19669237f19f0b11c9f3be80a62b4">index.h</a></li>
+<li>lzma_index_stream_padding()&#160;:&#160;<a class="el" href="index_8h.html#a3ed82f96c688f3c953f6509b6f4e2ef3">index.h</a></li>
+<li>lzma_index_stream_size()&#160;:&#160;<a class="el" href="index_8h.html#af3630369b43c9ccc906065d759b49663">index.h</a></li>
+<li>lzma_index_total_size()&#160;:&#160;<a class="el" href="index_8h.html#a7829942b83ee1fa5b6443cc248b81041">index.h</a></li>
+<li>lzma_index_uncompressed_size()&#160;:&#160;<a class="el" href="index_8h.html#a620fe6317f1f9d7af9cc27c748bf07d6">index.h</a></li>
+<li>lzma_lzip_decoder()&#160;:&#160;<a class="el" href="container_8h.html#a97689f5709e0db1e2dac450f5ce4e5eb">container.h</a></li>
+<li>lzma_lzma_preset()&#160;:&#160;<a class="el" href="lzma12_8h.html#aa62c28944fe3575653a4c25780400d77">lzma12.h</a></li>
+<li>lzma_memlimit_get()&#160;:&#160;<a class="el" href="base_8h.html#ac871bc2ead5d482c6d6b3d51bfec365c">base.h</a></li>
+<li>lzma_memlimit_set()&#160;:&#160;<a class="el" href="base_8h.html#afc49d4cf75b73128a167df3407505f7b">base.h</a></li>
+<li>lzma_memusage()&#160;:&#160;<a class="el" href="base_8h.html#a418b210cf206782a73cd9de7dc27f670">base.h</a></li>
+<li>lzma_mf_is_supported()&#160;:&#160;<a class="el" href="lzma12_8h.html#aefba1f7214ddcf8cd408a0702e8642b5">lzma12.h</a></li>
+<li>lzma_microlzma_decoder()&#160;:&#160;<a class="el" href="container_8h.html#aa8372dae3e7c907c36f7bb5426aeacdf">container.h</a></li>
+<li>lzma_microlzma_encoder()&#160;:&#160;<a class="el" href="container_8h.html#abfc8f11acf837b167aa94b7071b54c30">container.h</a></li>
+<li>lzma_mode_is_supported()&#160;:&#160;<a class="el" href="lzma12_8h.html#ad1add1c2600fdbb3d737e4fb3465dfcb">lzma12.h</a></li>
+<li>lzma_mt_block_size()&#160;:&#160;<a class="el" href="container_8h.html#a7eaeda1cb811ac1f5a6403691df8a894">container.h</a></li>
+<li>lzma_physmem()&#160;:&#160;<a class="el" href="hardware_8h.html#a85363e453b34272a9f26c9fdffb041ee">hardware.h</a></li>
+<li>lzma_properties_decode()&#160;:&#160;<a class="el" href="filter_8h.html#a88d2e864b2039ac82802cc202278d478">filter.h</a></li>
+<li>lzma_properties_encode()&#160;:&#160;<a class="el" href="filter_8h.html#a8e00887086df5a44084ac22e48415de3">filter.h</a></li>
+<li>lzma_properties_size()&#160;:&#160;<a class="el" href="filter_8h.html#aee038818cf7bbe044c3f7a7c86998c1b">filter.h</a></li>
+<li>lzma_raw_buffer_decode()&#160;:&#160;<a class="el" href="filter_8h.html#a3b942df507e4f9a6d7525e5a4c6864e5">filter.h</a></li>
+<li>lzma_raw_buffer_encode()&#160;:&#160;<a class="el" href="filter_8h.html#a226724ab3391b410281fdf656cc7c432">filter.h</a></li>
+<li>lzma_raw_decoder()&#160;:&#160;<a class="el" href="filter_8h.html#ae77b3b6c5eccd9d77bbafef0a8a203c1">filter.h</a></li>
+<li>lzma_raw_decoder_memusage()&#160;:&#160;<a class="el" href="filter_8h.html#a58511249ae9206d7de7c5d1f05842297">filter.h</a></li>
+<li>lzma_raw_encoder()&#160;:&#160;<a class="el" href="filter_8h.html#a2368e4129032345eb0738b0c6e085703">filter.h</a></li>
+<li>lzma_raw_encoder_memusage()&#160;:&#160;<a class="el" href="filter_8h.html#a730f9391e85a5979bcd1b32643ae7176">filter.h</a></li>
+<li>lzma_str_from_filters()&#160;:&#160;<a class="el" href="filter_8h.html#a7deeb86ef59a9111b8033681290e0fb0">filter.h</a></li>
+<li>lzma_str_list_filters()&#160;:&#160;<a class="el" href="filter_8h.html#ab51585b68796ce0270f87e615b923809">filter.h</a></li>
+<li>lzma_str_to_filters()&#160;:&#160;<a class="el" href="filter_8h.html#aa042cf11749bc2183b27de1c3142da30">filter.h</a></li>
+<li>lzma_stream_buffer_bound()&#160;:&#160;<a class="el" href="container_8h.html#a66d4366a47b8332bff2a512f44f5c45e">container.h</a></li>
+<li>lzma_stream_buffer_decode()&#160;:&#160;<a class="el" href="container_8h.html#aa58f237f6cea97ef0eb9bf5c37a3008d">container.h</a></li>
+<li>lzma_stream_buffer_encode()&#160;:&#160;<a class="el" href="container_8h.html#a6e645ccaeace3b13a6981e03c6e190ad">container.h</a></li>
+<li>lzma_stream_decoder()&#160;:&#160;<a class="el" href="container_8h.html#a02b7683ef98d8049788961370a8b28c0">container.h</a></li>
+<li>lzma_stream_decoder_mt()&#160;:&#160;<a class="el" href="container_8h.html#a7179d178e6430c10e2006a467921e98e">container.h</a></li>
+<li>lzma_stream_encoder()&#160;:&#160;<a class="el" href="container_8h.html#a1a97aec94c9fedd7646cfa51c4f4cd52">container.h</a></li>
+<li>lzma_stream_encoder_mt()&#160;:&#160;<a class="el" href="container_8h.html#a3f8793518711ee84d1abf12ea3aaba42">container.h</a></li>
+<li>lzma_stream_encoder_mt_memusage()&#160;:&#160;<a class="el" href="container_8h.html#ad7cf41496d77f4d346e006b26ed8e101">container.h</a></li>
+<li>lzma_stream_flags_compare()&#160;:&#160;<a class="el" href="stream__flags_8h.html#a3e25ca4205021302882a696283d45263">stream_flags.h</a></li>
+<li>lzma_stream_footer_decode()&#160;:&#160;<a class="el" href="stream__flags_8h.html#aa92a383f85753bb79ee23227fa68186c">stream_flags.h</a></li>
+<li>lzma_stream_footer_encode()&#160;:&#160;<a class="el" href="stream__flags_8h.html#a438249a75ea8da952a7474b92bfe7b7a">stream_flags.h</a></li>
+<li>lzma_stream_header_decode()&#160;:&#160;<a class="el" href="stream__flags_8h.html#ae03198e464f0d296e601ff841e100805">stream_flags.h</a></li>
+<li>lzma_stream_header_encode()&#160;:&#160;<a class="el" href="stream__flags_8h.html#a2ebb8d6dff23daeb3de398913b845eff">stream_flags.h</a></li>
+<li>lzma_version_number()&#160;:&#160;<a class="el" href="version_8h.html#a72f929c9b9e8e730b790b3f8c80c3c80">version.h</a></li>
+<li>lzma_version_string()&#160;:&#160;<a class="el" href="version_8h.html#a8998c1d8b4b5c2c1218bdfd58fdb1baa">version.h</a></li>
+<li>lzma_vli_decode()&#160;:&#160;<a class="el" href="vli_8h.html#a7b7d50e1074e0e2bcd81c29a5f7461c7">vli.h</a></li>
+<li>lzma_vli_encode()&#160;:&#160;<a class="el" href="vli_8h.html#a50bbb77e9ec3b72c25586aa700c20970">vli.h</a></li>
+<li>lzma_vli_size()&#160;:&#160;<a class="el" href="vli_8h.html#a8d53e0b69934b43da8721fa6f1e8cc4f">vli.h</a></li>
+</ul>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/globals_type.html b/doc/api/globals_type.html
new file mode 100644
index 00000000..7fe32e52
--- /dev/null
+++ b/doc/api/globals_type.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li class="current"><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="contents">
+<div class="textblock">Here is a list of all documented typedefs with links to the documentation:</div><ul>
+<li>lzma_bool&#160;:&#160;<a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">base.h</a></li>
+<li>lzma_index&#160;:&#160;<a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">index.h</a></li>
+<li>lzma_index_hash&#160;:&#160;<a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">index_hash.h</a></li>
+<li>lzma_internal&#160;:&#160;<a class="el" href="base_8h.html#ab1a60127c640135687a5bcc232cec906">base.h</a></li>
+<li>lzma_vli&#160;:&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">vli.h</a></li>
+</ul>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/hardware_8h.html b/doc/api/hardware_8h.html
new file mode 100644
index 00000000..624906ca
--- /dev/null
+++ b/doc/api/hardware_8h.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma/hardware.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">hardware.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Hardware information.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a85363e453b34272a9f26c9fdffb041ee"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hardware_8h.html#a85363e453b34272a9f26c9fdffb041ee">lzma_physmem</a> (void) lzma_nothrow</td></tr>
+<tr class="memdesc:a85363e453b34272a9f26c9fdffb041ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the total amount of physical memory (RAM) in bytes. <br /></td></tr>
+<tr class="separator:a85363e453b34272a9f26c9fdffb041ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22f7a882b7a4b741a226abf62bdf46ca"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hardware_8h.html#a22f7a882b7a4b741a226abf62bdf46ca">lzma_cputhreads</a> (void) lzma_nothrow</td></tr>
+<tr class="memdesc:a22f7a882b7a4b741a226abf62bdf46ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of processor cores or threads. <br /></td></tr>
+<tr class="separator:a22f7a882b7a4b741a226abf62bdf46ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Hardware information. </p>
+<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead.</dd></dl>
+<p>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.</p>
+<dl class="section note"><dt>Note</dt><dd>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. </dd></dl>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a85363e453b34272a9f26c9fdffb041ee" name="a85363e453b34272a9f26c9fdffb041ee"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a85363e453b34272a9f26c9fdffb041ee">&#9670;&#160;</a></span>lzma_physmem()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t lzma_physmem </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the total amount of physical memory (RAM) in bytes. </p>
+<p>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.</p>
+<dl class="section return"><dt>Returns</dt><dd>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. </dd></dl>
+
+</div>
+</div>
+<a id="a22f7a882b7a4b741a226abf62bdf46ca" name="a22f7a882b7a4b741a226abf62bdf46ca"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a22f7a882b7a4b741a226abf62bdf46ca">&#9670;&#160;</a></span>lzma_cputhreads()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_cputhreads </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the number of processor cores or threads. </p>
+<p>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.</p>
+<dl class="section return"><dt>Returns</dt><dd>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. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/index.html b/doc/api/index.html
new file mode 100644
index 00000000..3b1d08bd
--- /dev/null
+++ b/doc/api/index.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): liblzma (XZ Utils)</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div><div class="header">
+ <div class="headertitle"><div class="title">liblzma (XZ Utils) </div></div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>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.</p>
+<p>liblzma is part of XZ Utils <a href="https://xz.tukaani.org/xz-utils/">https://xz.tukaani.org/xz-utils/</a>. 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.</p>
+<p>Major parts of liblzma are based on code written by Igor Pavlov, specifically the LZMA SDK <a href="https://7-zip.org/sdk.html">https://7-zip.org/sdk.html</a>.</p>
+<p>The SHA-256 implementation in liblzma is based on code written by Wei Dai in Crypto++ Library <a href="https://www.cryptopp.com/">https://www.cryptopp.com/</a>.</p>
+<p>liblzma is distributed under the BSD Zero Clause License (0BSD). </p>
+</div></div><!-- PageDoc -->
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/index_8h.html b/doc/api/index_8h.html
new file mode 100644
index 00000000..58e3204c
--- /dev/null
+++ b/doc/api/index_8h.html
@@ -0,0 +1,1311 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma/index.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">index.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Handling of .xz Index and related information.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__index__iter.html">lzma_index_iter</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator to get information about Blocks and Streams. <a href="structlzma__index__iter.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a2643014196abf129ddbb51ec2bd956d9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a2643014196abf129ddbb51ec2bd956d9">LZMA_INDEX_CHECK_MASK_NONE</a>&#160;&#160;&#160;(UINT32_C(1) &lt;&lt; <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa7b9851d75abfabc08d7fc5b4aaeb6f20">LZMA_CHECK_NONE</a>)</td></tr>
+<tr class="memdesc:a2643014196abf129ddbb51ec2bd956d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mask for return value from <a class="el" href="index_8h.html#af8d6528a04241841bd0a4322b0c57eaa" title="Get the types of integrity Checks.">lzma_index_checks()</a> for check none. <br /></td></tr>
+<tr class="separator:a2643014196abf129ddbb51ec2bd956d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6812319b2f335df98fcf5e97c144e4ac"><td class="memItemLeft" align="right" valign="top"><a id="a6812319b2f335df98fcf5e97c144e4ac" name="a6812319b2f335df98fcf5e97c144e4ac"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_INDEX_CHECK_MASK_CRC32</b>&#160;&#160;&#160;(UINT32_C(1) &lt;&lt; <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa0be65014a40b5cb4ab32252b3709bef7">LZMA_CHECK_CRC32</a>)</td></tr>
+<tr class="memdesc:a6812319b2f335df98fcf5e97c144e4ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mask for return value from <a class="el" href="index_8h.html#af8d6528a04241841bd0a4322b0c57eaa" title="Get the types of integrity Checks.">lzma_index_checks()</a> for check CRC32. <br /></td></tr>
+<tr class="separator:a6812319b2f335df98fcf5e97c144e4ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a062a47783c17f64728d98b831411c5c3"><td class="memItemLeft" align="right" valign="top"><a id="a062a47783c17f64728d98b831411c5c3" name="a062a47783c17f64728d98b831411c5c3"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_INDEX_CHECK_MASK_CRC64</b>&#160;&#160;&#160;(UINT32_C(1) &lt;&lt; <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa87b4b0697a1e1ccb6766dd5c2fa24afc">LZMA_CHECK_CRC64</a>)</td></tr>
+<tr class="memdesc:a062a47783c17f64728d98b831411c5c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mask for return value from <a class="el" href="index_8h.html#af8d6528a04241841bd0a4322b0c57eaa" title="Get the types of integrity Checks.">lzma_index_checks()</a> for check CRC64. <br /></td></tr>
+<tr class="separator:a062a47783c17f64728d98b831411c5c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad6540f1ecf60f186f7c0492937482169"><td class="memItemLeft" align="right" valign="top"><a id="ad6540f1ecf60f186f7c0492937482169" name="ad6540f1ecf60f186f7c0492937482169"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_INDEX_CHECK_MASK_SHA256</b>&#160;&#160;&#160;(UINT32_C(1) &lt;&lt; <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3faf26a55ddd204a50ae87ec3432e7bc309">LZMA_CHECK_SHA256</a>)</td></tr>
+<tr class="memdesc:ad6540f1ecf60f186f7c0492937482169"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mask for return value from <a class="el" href="index_8h.html#af8d6528a04241841bd0a4322b0c57eaa" title="Get the types of integrity Checks.">lzma_index_checks()</a> for check SHA256. <br /></td></tr>
+<tr class="separator:ad6540f1ecf60f186f7c0492937482169"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:afc18c1443b3b9aa0d146b44e8755b62e"><td class="memItemLeft" align="right" valign="top">typedef struct lzma_index_s&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a></td></tr>
+<tr class="memdesc:afc18c1443b3b9aa0d146b44e8755b62e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque data type to hold the Index(es) and other information. <br /></td></tr>
+<tr class="separator:afc18c1443b3b9aa0d146b44e8755b62e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a712b43192d944bf2f767711343cd9ca8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8">lzma_index_iter_mode</a> { <a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8af46f6e5c414471c7c96586f380e48315">LZMA_INDEX_ITER_ANY</a> = 0
+, <a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8a5b31d985de1c823151acdd7e4a966fc9">LZMA_INDEX_ITER_STREAM</a> = 1
+, <a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8a2702617d60d6fc15138a749e06ef3414">LZMA_INDEX_ITER_BLOCK</a> = 2
+, <a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8aa49bf4d561d8f2c61d300edbb6c282c7">LZMA_INDEX_ITER_NONEMPTY_BLOCK</a> = 3
+ }</td></tr>
+<tr class="memdesc:a712b43192d944bf2f767711343cd9ca8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operation mode for <a class="el" href="index_8h.html#af428522e1b3eef137c65c5a01f766e0e" title="Get the next Block or Stream.">lzma_index_iter_next()</a> <a href="index_8h.html#a712b43192d944bf2f767711343cd9ca8">More...</a><br /></td></tr>
+<tr class="separator:a712b43192d944bf2f767711343cd9ca8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a880def3727ecdd7f242807083d228fc5"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a880def3727ecdd7f242807083d228fc5">lzma_index_memusage</a> (<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> streams, <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> blocks) lzma_nothrow</td></tr>
+<tr class="memdesc:a880def3727ecdd7f242807083d228fc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate memory usage of lzma_index. <br /></td></tr>
+<tr class="separator:a880def3727ecdd7f242807083d228fc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4118805ac7be6618aca6d6d7e5e4dde7"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a4118805ac7be6618aca6d6d7e5e4dde7">lzma_index_memused</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow</td></tr>
+<tr class="memdesc:a4118805ac7be6618aca6d6d7e5e4dde7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the memory usage of an existing lzma_index. <br /></td></tr>
+<tr class="separator:a4118805ac7be6618aca6d6d7e5e4dde7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0850627d011111326d4278a3e2edec25"><td class="memItemLeft" align="right" valign="top"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a0850627d011111326d4278a3e2edec25">lzma_index_init</a> (const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow</td></tr>
+<tr class="memdesc:a0850627d011111326d4278a3e2edec25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate and initialize a new lzma_index structure. <br /></td></tr>
+<tr class="separator:a0850627d011111326d4278a3e2edec25"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c2d0009f07fc315d5ac89e4bcd25abd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a0c2d0009f07fc315d5ac89e4bcd25abd">lzma_index_end</a> (<a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow</td></tr>
+<tr class="memdesc:a0c2d0009f07fc315d5ac89e4bcd25abd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deallocate lzma_index. <br /></td></tr>
+<tr class="separator:a0c2d0009f07fc315d5ac89e4bcd25abd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac347747eb933c7c408e6c801b33becc3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#ac347747eb933c7c408e6c801b33becc3">lzma_index_append</a> (<a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> unpadded_size, <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> uncompressed_size) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:ac347747eb933c7c408e6c801b33becc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new Block to lzma_index. <br /></td></tr>
+<tr class="separator:ac347747eb933c7c408e6c801b33becc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79a19669237f19f0b11c9f3be80a62b4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a79a19669237f19f0b11c9f3be80a62b4">lzma_index_stream_flags</a> (<a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i, const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *stream_flags) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a79a19669237f19f0b11c9f3be80a62b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the Stream Flags. <br /></td></tr>
+<tr class="separator:a79a19669237f19f0b11c9f3be80a62b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af8d6528a04241841bd0a4322b0c57eaa"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#af8d6528a04241841bd0a4322b0c57eaa">lzma_index_checks</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:af8d6528a04241841bd0a4322b0c57eaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the types of integrity Checks. <br /></td></tr>
+<tr class="separator:af8d6528a04241841bd0a4322b0c57eaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ed82f96c688f3c953f6509b6f4e2ef3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a3ed82f96c688f3c953f6509b6f4e2ef3">lzma_index_stream_padding</a> (<a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i, <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> stream_padding) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a3ed82f96c688f3c953f6509b6f4e2ef3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the amount of Stream Padding. <br /></td></tr>
+<tr class="separator:a3ed82f96c688f3c953f6509b6f4e2ef3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd159a765b09b0cf79186069a848d07e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#afd159a765b09b0cf79186069a848d07e">lzma_index_stream_count</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:afd159a765b09b0cf79186069a848d07e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of Streams. <br /></td></tr>
+<tr class="separator:afd159a765b09b0cf79186069a848d07e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add1a8c506f67dbc19cae6747107e3bec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#add1a8c506f67dbc19cae6747107e3bec">lzma_index_block_count</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:add1a8c506f67dbc19cae6747107e3bec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of Blocks. <br /></td></tr>
+<tr class="separator:add1a8c506f67dbc19cae6747107e3bec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a669ed1a82b1941217cfbb07e7826afc2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a669ed1a82b1941217cfbb07e7826afc2">lzma_index_size</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:a669ed1a82b1941217cfbb07e7826afc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of the Index field as bytes. <br /></td></tr>
+<tr class="separator:a669ed1a82b1941217cfbb07e7826afc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3630369b43c9ccc906065d759b49663"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#af3630369b43c9ccc906065d759b49663">lzma_index_stream_size</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:af3630369b43c9ccc906065d759b49663"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the total size of the Stream. <br /></td></tr>
+<tr class="separator:af3630369b43c9ccc906065d759b49663"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7829942b83ee1fa5b6443cc248b81041"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a7829942b83ee1fa5b6443cc248b81041">lzma_index_total_size</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:a7829942b83ee1fa5b6443cc248b81041"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the total size of the Blocks. <br /></td></tr>
+<tr class="separator:a7829942b83ee1fa5b6443cc248b81041"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac875ed47d35385e5dac461b25c5ea1c9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#ac875ed47d35385e5dac461b25c5ea1c9">lzma_index_file_size</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:ac875ed47d35385e5dac461b25c5ea1c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the total size of the file. <br /></td></tr>
+<tr class="separator:ac875ed47d35385e5dac461b25c5ea1c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a620fe6317f1f9d7af9cc27c748bf07d6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a620fe6317f1f9d7af9cc27c748bf07d6">lzma_index_uncompressed_size</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:a620fe6317f1f9d7af9cc27c748bf07d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the uncompressed size of the file. <br /></td></tr>
+<tr class="separator:a620fe6317f1f9d7af9cc27c748bf07d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa78f02f18ed29d289a6ef37b8ea98a21"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#aa78f02f18ed29d289a6ef37b8ea98a21">lzma_index_iter_init</a> (<a class="el" href="structlzma__index__iter.html">lzma_index_iter</a> *iter, const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow</td></tr>
+<tr class="memdesc:aa78f02f18ed29d289a6ef37b8ea98a21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize an iterator. <br /></td></tr>
+<tr class="separator:aa78f02f18ed29d289a6ef37b8ea98a21"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae81438be8deff4894b104e65d8acdd24"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#ae81438be8deff4894b104e65d8acdd24">lzma_index_iter_rewind</a> (<a class="el" href="structlzma__index__iter.html">lzma_index_iter</a> *iter) lzma_nothrow</td></tr>
+<tr class="memdesc:ae81438be8deff4894b104e65d8acdd24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rewind the iterator. <br /></td></tr>
+<tr class="separator:ae81438be8deff4894b104e65d8acdd24"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af428522e1b3eef137c65c5a01f766e0e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#af428522e1b3eef137c65c5a01f766e0e">lzma_index_iter_next</a> (<a class="el" href="structlzma__index__iter.html">lzma_index_iter</a> *iter, <a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8">lzma_index_iter_mode</a> mode) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:af428522e1b3eef137c65c5a01f766e0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the next Block or Stream. <br /></td></tr>
+<tr class="separator:af428522e1b3eef137c65c5a01f766e0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac4f56df9d210712e5d7add5502c9eb93"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#ac4f56df9d210712e5d7add5502c9eb93">lzma_index_iter_locate</a> (<a class="el" href="structlzma__index__iter.html">lzma_index_iter</a> *iter, <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> target) lzma_nothrow</td></tr>
+<tr class="memdesc:ac4f56df9d210712e5d7add5502c9eb93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locate a Block. <br /></td></tr>
+<tr class="separator:ac4f56df9d210712e5d7add5502c9eb93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc4db36b4bd67af01819be9dd045c34a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#abc4db36b4bd67af01819be9dd045c34a">lzma_index_cat</a> (<a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *dest, <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *src, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:abc4db36b4bd67af01819be9dd045c34a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Concatenate lzma_indexes. <br /></td></tr>
+<tr class="separator:abc4db36b4bd67af01819be9dd045c34a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5161e3f67156577882e1d95dcb57e33e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a5161e3f67156577882e1d95dcb57e33e">lzma_index_dup</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a5161e3f67156577882e1d95dcb57e33e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate lzma_index. <br /></td></tr>
+<tr class="separator:a5161e3f67156577882e1d95dcb57e33e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6800d70f3b2afca085496460cd03211d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a6800d70f3b2afca085496460cd03211d">lzma_index_encoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a6800d70f3b2afca085496460cd03211d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .xz Index encoder. <br /></td></tr>
+<tr class="separator:a6800d70f3b2afca085496460cd03211d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb56fd1d5914f8900ece7b88b78e5e23"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#abb56fd1d5914f8900ece7b88b78e5e23">lzma_index_decoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> **i, uint64_t memlimit) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:abb56fd1d5914f8900ece7b88b78e5e23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize .xz Index decoder. <br /></td></tr>
+<tr class="separator:abb56fd1d5914f8900ece7b88b78e5e23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add1ef06dec8a26d08ae8651cff0fd8d6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#add1ef06dec8a26d08ae8651cff0fd8d6">lzma_index_buffer_encode</a> (const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *i, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow</td></tr>
+<tr class="memdesc:add1ef06dec8a26d08ae8651cff0fd8d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call .xz Index encoder. <br /></td></tr>
+<tr class="separator:add1ef06dec8a26d08ae8651cff0fd8d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a028b8b8d59a413f9682eea1269a6ae8b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a028b8b8d59a413f9682eea1269a6ae8b">lzma_index_buffer_decode</a> (<a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> **i, uint64_t *memlimit, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator, const uint8_t *in, size_t *in_pos, size_t in_size) lzma_nothrow</td></tr>
+<tr class="memdesc:a028b8b8d59a413f9682eea1269a6ae8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-call .xz Index decoder. <br /></td></tr>
+<tr class="separator:a028b8b8d59a413f9682eea1269a6ae8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c5d77cf8532d95977d4571a1eb0a222"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index_8h.html#a7c5d77cf8532d95977d4571a1eb0a222">lzma_file_info_decoder</a> (<a class="el" href="structlzma__stream.html">lzma_stream</a> *strm, <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> **dest_index, uint64_t memlimit, uint64_t file_size) lzma_nothrow</td></tr>
+<tr class="memdesc:a7c5d77cf8532d95977d4571a1eb0a222"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a .xz file information decoder. <br /></td></tr>
+<tr class="separator:a7c5d77cf8532d95977d4571a1eb0a222"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Handling of .xz Index and related information. </p>
+<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="a2643014196abf129ddbb51ec2bd956d9" name="a2643014196abf129ddbb51ec2bd956d9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2643014196abf129ddbb51ec2bd956d9">&#9670;&#160;</a></span>LZMA_INDEX_CHECK_MASK_NONE</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_INDEX_CHECK_MASK_NONE&#160;&#160;&#160;(UINT32_C(1) &lt;&lt; <a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3fa7b9851d75abfabc08d7fc5b4aaeb6f20">LZMA_CHECK_NONE</a>)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Mask for return value from <a class="el" href="index_8h.html#af8d6528a04241841bd0a4322b0c57eaa" title="Get the types of integrity Checks.">lzma_index_checks()</a> for check none. </p>
+<dl class="section note"><dt>Note</dt><dd>This and the other CHECK_MASK macros were added in 5.5.1alpha. </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a id="afc18c1443b3b9aa0d146b44e8755b62e" name="afc18c1443b3b9aa0d146b44e8755b62e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afc18c1443b3b9aa0d146b44e8755b62e">&#9670;&#160;</a></span>lzma_index</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef struct lzma_index_s <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Opaque data type to hold the Index(es) and other information. </p>
+<p>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 <a class="el" href="index_8h.html#abc4db36b4bd67af01819be9dd045c34a" title="Concatenate lzma_indexes.">lzma_index_cat()</a> and then there may be information about multiple Streams in the same lzma_index.</p>
+<p>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 <a class="el" href="structlzma__index__iter.html" title="Iterator to get information about Blocks and Streams.">lzma_index_iter</a>. 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. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="a712b43192d944bf2f767711343cd9ca8" name="a712b43192d944bf2f767711343cd9ca8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a712b43192d944bf2f767711343cd9ca8">&#9670;&#160;</a></span>lzma_index_iter_mode</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8">lzma_index_iter_mode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Operation mode for <a class="el" href="index_8h.html#af428522e1b3eef137c65c5a01f766e0e" title="Get the next Block or Stream.">lzma_index_iter_next()</a> </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a712b43192d944bf2f767711343cd9ca8af46f6e5c414471c7c96586f380e48315" name="a712b43192d944bf2f767711343cd9ca8af46f6e5c414471c7c96586f380e48315"></a>LZMA_INDEX_ITER_ANY&#160;</td><td class="fielddoc"><p>Get the next Block or Stream. </p>
+<p>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. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a712b43192d944bf2f767711343cd9ca8a5b31d985de1c823151acdd7e4a966fc9" name="a712b43192d944bf2f767711343cd9ca8a5b31d985de1c823151acdd7e4a966fc9"></a>LZMA_INDEX_ITER_STREAM&#160;</td><td class="fielddoc"><p>Get the next Stream. </p>
+<p>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. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a712b43192d944bf2f767711343cd9ca8a2702617d60d6fc15138a749e06ef3414" name="a712b43192d944bf2f767711343cd9ca8a2702617d60d6fc15138a749e06ef3414"></a>LZMA_INDEX_ITER_BLOCK&#160;</td><td class="fielddoc"><p>Get the next Block. </p>
+<p>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. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a712b43192d944bf2f767711343cd9ca8aa49bf4d561d8f2c61d300edbb6c282c7" name="a712b43192d944bf2f767711343cd9ca8aa49bf4d561d8f2c61d300edbb6c282c7"></a>LZMA_INDEX_ITER_NONEMPTY_BLOCK&#160;</td><td class="fielddoc"><p>Get the next non-empty Block. </p>
+<p>This is like LZMA_INDEX_ITER_BLOCK except that it will skip Blocks whose Uncompressed Size is zero. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="a880def3727ecdd7f242807083d228fc5" name="a880def3727ecdd7f242807083d228fc5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a880def3727ecdd7f242807083d228fc5">&#9670;&#160;</a></span>lzma_index_memusage()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t lzma_index_memusage </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
+ <td class="paramname"><em>streams</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
+ <td class="paramname"><em>blocks</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Calculate memory usage of lzma_index. </p>
+<p>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.</p>
+<p>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.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">streams</td><td>Number of Streams </td></tr>
+ <tr><td class="paramname">blocks</td><td>Number of Blocks</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Approximate memory in bytes needed in a lzma_index structure. </dd></dl>
+
+</div>
+</div>
+<a id="a4118805ac7be6618aca6d6d7e5e4dde7" name="a4118805ac7be6618aca6d6d7e5e4dde7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4118805ac7be6618aca6d6d7e5e4dde7">&#9670;&#160;</a></span>lzma_index_memused()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t lzma_index_memused </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>i</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Calculate the memory usage of an existing lzma_index. </p>
+<p>This is a shorthand for lzma_index_memusage(lzma_index_stream_count(i), lzma_index_block_count(i)).</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">i</td><td>Pointer to lzma_index structure</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Approximate memory in bytes used by the lzma_index structure. </dd></dl>
+
+</div>
+</div>
+<a id="a0850627d011111326d4278a3e2edec25" name="a0850627d011111326d4278a3e2edec25"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0850627d011111326d4278a3e2edec25">&#9670;&#160;</a></span>lzma_index_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> * lzma_index_init </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Allocate and initialize a new lzma_index structure. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free().</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>On success, a pointer to an empty initialized lzma_index is returned. If allocation fails, NULL is returned. </dd></dl>
+
+</div>
+</div>
+<a id="a0c2d0009f07fc315d5ac89e4bcd25abd" name="a0c2d0009f07fc315d5ac89e4bcd25abd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0c2d0009f07fc315d5ac89e4bcd25abd">&#9670;&#160;</a></span>lzma_index_end()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void lzma_index_end </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>i</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Deallocate lzma_index. </p>
+<p>If i is NULL, this does nothing.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">i</td><td>Pointer to lzma_index structure to deallocate </td></tr>
+ <tr><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a id="ac347747eb933c7c408e6c801b33becc3" name="ac347747eb933c7c408e6c801b33becc3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac347747eb933c7c408e6c801b33becc3">&#9670;&#160;</a></span>lzma_index_append()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_append </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>i</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
+ <td class="paramname"><em>unpadded_size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
+ <td class="paramname"><em>uncompressed_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Add a new Block to lzma_index. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">i</td><td>Pointer to a lzma_index structure </td></tr>
+ <tr><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
+ <tr><td class="paramname">unpadded_size</td><td>Unpadded Size of a Block. This can be calculated with <a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30" title="Calculate Unpadded Size.">lzma_block_unpadded_size()</a> after encoding or decoding the Block. </td></tr>
+ <tr><td class="paramname">uncompressed_size</td><td>Uncompressed Size of a Block. This can be taken directly from <a class="el" href="structlzma__block.html" title="Options for the Block and Block Header encoders and decoders.">lzma_block</a> structure after encoding or decoding the Block.</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Appending a new Block does not invalidate iterators. For example, if an iterator was pointing to the end of the lzma_index, after <a class="el" href="index_8h.html#ac347747eb933c7c408e6c801b33becc3" title="Add a new Block to lzma_index.">lzma_index_append()</a> it is possible to read the next Block with an existing iterator.</p>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_DATA_ERROR: Compressed or uncompressed size of the Stream or size of the Index field would grow too big.</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a79a19669237f19f0b11c9f3be80a62b4" name="a79a19669237f19f0b11c9f3be80a62b4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a79a19669237f19f0b11c9f3be80a62b4">&#9670;&#160;</a></span>lzma_index_stream_flags()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_stream_flags </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>i</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *&#160;</td>
+ <td class="paramname"><em>stream_flags</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Set the Stream Flags. </p>
+<p>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.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">i</td><td>Pointer to lzma_index structure </td></tr>
+ <tr><td class="paramname">stream_flags</td><td>Pointer to <a class="el" href="structlzma__stream__flags.html" title="Options for encoding/decoding Stream Header and Stream Footer.">lzma_stream_flags</a> 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.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>LZMA_OPTIONS_ERROR: Unsupported stream_flags-&gt;version.</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="af8d6528a04241841bd0a4322b0c57eaa" name="af8d6528a04241841bd0a4322b0c57eaa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af8d6528a04241841bd0a4322b0c57eaa">&#9670;&#160;</a></span>lzma_index_checks()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_index_checks </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>i</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the types of integrity Checks. </p>
+<p>If <a class="el" href="index_8h.html#a79a19669237f19f0b11c9f3be80a62b4" title="Set the Stream Flags.">lzma_index_stream_flags()</a> is used to set the Stream Flags for every Stream, <a class="el" href="index_8h.html#af8d6528a04241841bd0a4322b0c57eaa" title="Get the types of integrity Checks.">lzma_index_checks()</a> 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.</p>
+<p>The bitmask is 1 &lt;&lt; check_id, e.g. CRC32 is 1 &lt;&lt; 1 and SHA-256 is 1 &lt;&lt; 10. These masks are defined for convenience as LZMA_INDEX_CHECK_MASK_XXX</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">i</td><td>Pointer to lzma_index structure</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Bitmask indicating which Check types are used in the lzma_index </dd></dl>
+
+</div>
+</div>
+<a id="a3ed82f96c688f3c953f6509b6f4e2ef3" name="a3ed82f96c688f3c953f6509b6f4e2ef3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3ed82f96c688f3c953f6509b6f4e2ef3">&#9670;&#160;</a></span>lzma_index_stream_padding()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_stream_padding </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>i</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
+ <td class="paramname"><em>stream_padding</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Set the amount of Stream Padding. </p>
+<p>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.</p>
+<p>By default, the amount of Stream Padding is assumed to be zero bytes.</p>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>LZMA_DATA_ERROR: The file size would grow too big.</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="afd159a765b09b0cf79186069a848d07e" name="afd159a765b09b0cf79186069a848d07e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afd159a765b09b0cf79186069a848d07e">&#9670;&#160;</a></span>lzma_index_stream_count()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_stream_count </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>i</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the number of Streams. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">i</td><td>Pointer to lzma_index structure</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Number of Streams in the lzma_index </dd></dl>
+
+</div>
+</div>
+<a id="add1a8c506f67dbc19cae6747107e3bec" name="add1a8c506f67dbc19cae6747107e3bec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#add1a8c506f67dbc19cae6747107e3bec">&#9670;&#160;</a></span>lzma_index_block_count()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_block_count </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>i</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the number of Blocks. </p>
+<p>This returns the total number of Blocks in lzma_index. To get number of Blocks in individual Streams, use <a class="el" href="structlzma__index__iter.html" title="Iterator to get information about Blocks and Streams.">lzma_index_iter</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">i</td><td>Pointer to lzma_index structure</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Number of blocks in the lzma_index </dd></dl>
+
+</div>
+</div>
+<a id="a669ed1a82b1941217cfbb07e7826afc2" name="a669ed1a82b1941217cfbb07e7826afc2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a669ed1a82b1941217cfbb07e7826afc2">&#9670;&#160;</a></span>lzma_index_size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_size </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>i</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the size of the Index field as bytes. </p>
+<p>This is needed to verify the Backward Size field in the Stream Footer.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">i</td><td>Pointer to lzma_index structure</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Size in bytes of the Index </dd></dl>
+
+</div>
+</div>
+<a id="af3630369b43c9ccc906065d759b49663" name="af3630369b43c9ccc906065d759b49663"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af3630369b43c9ccc906065d759b49663">&#9670;&#160;</a></span>lzma_index_stream_size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_stream_size </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>i</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the total size of the Stream. </p>
+<p>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.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">i</td><td>Pointer to lzma_index structure</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Size in bytes of the Stream (if all Blocks are combined into one Stream). </dd></dl>
+
+</div>
+</div>
+<a id="a7829942b83ee1fa5b6443cc248b81041" name="a7829942b83ee1fa5b6443cc248b81041"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7829942b83ee1fa5b6443cc248b81041">&#9670;&#160;</a></span>lzma_index_total_size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_total_size </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>i</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the total size of the Blocks. </p>
+<p>This doesn't include the Stream Header, Stream Footer, Stream Padding, or Index fields.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">i</td><td>Pointer to lzma_index structure</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Size in bytes of all Blocks in the Stream(s) </dd></dl>
+
+</div>
+</div>
+<a id="ac875ed47d35385e5dac461b25c5ea1c9" name="ac875ed47d35385e5dac461b25c5ea1c9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac875ed47d35385e5dac461b25c5ea1c9">&#9670;&#160;</a></span>lzma_index_file_size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_file_size </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>i</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the total size of the file. </p>
+<p>When no lzma_indexes have been combined with <a class="el" href="index_8h.html#abc4db36b4bd67af01819be9dd045c34a" title="Concatenate lzma_indexes.">lzma_index_cat()</a> and there is no Stream Padding, this function is identical to <a class="el" href="index_8h.html#af3630369b43c9ccc906065d759b49663" title="Get the total size of the Stream.">lzma_index_stream_size()</a>. If multiple lzma_indexes have been combined, this includes also the headers of each separate Stream and the possible Stream Padding fields.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">i</td><td>Pointer to lzma_index structure</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Total size of the .xz file in bytes </dd></dl>
+
+</div>
+</div>
+<a id="a620fe6317f1f9d7af9cc27c748bf07d6" name="a620fe6317f1f9d7af9cc27c748bf07d6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a620fe6317f1f9d7af9cc27c748bf07d6">&#9670;&#160;</a></span>lzma_index_uncompressed_size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_uncompressed_size </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>i</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the uncompressed size of the file. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">i</td><td>Pointer to lzma_index structure</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Size in bytes of the uncompressed data in the file </dd></dl>
+
+</div>
+</div>
+<a id="aa78f02f18ed29d289a6ef37b8ea98a21" name="aa78f02f18ed29d289a6ef37b8ea98a21"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa78f02f18ed29d289a6ef37b8ea98a21">&#9670;&#160;</a></span>lzma_index_iter_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void lzma_index_iter_init </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__index__iter.html">lzma_index_iter</a> *&#160;</td>
+ <td class="paramname"><em>iter</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>i</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialize an iterator. </p>
+<p>This function associates the iterator with the given lzma_index, and calls <a class="el" href="index_8h.html#ae81438be8deff4894b104e65d8acdd24" title="Rewind the iterator.">lzma_index_iter_rewind()</a> on the iterator.</p>
+<p>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 <a class="el" href="index_8h.html#a0c2d0009f07fc315d5ac89e4bcd25abd" title="Deallocate lzma_index.">lzma_index_end()</a> or using it as source in <a class="el" href="index_8h.html#abc4db36b4bd67af01819be9dd045c34a" title="Concatenate lzma_indexes.">lzma_index_cat()</a>. Specifically, lzma_index doesn't become invalid if new Blocks are added to it with <a class="el" href="index_8h.html#ac347747eb933c7c408e6c801b33becc3" title="Add a new Block to lzma_index.">lzma_index_append()</a> or if it is used as the destination in <a class="el" href="index_8h.html#abc4db36b4bd67af01819be9dd045c34a" title="Concatenate lzma_indexes.">lzma_index_cat()</a>.</p>
+<p>It is safe to make copies of an initialized <a class="el" href="structlzma__index__iter.html" title="Iterator to get information about Blocks and Streams.">lzma_index_iter</a>, for example, to easily restart reading at some particular position.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">iter</td><td>Pointer to a <a class="el" href="structlzma__index__iter.html" title="Iterator to get information about Blocks and Streams.">lzma_index_iter</a> structure </td></tr>
+ <tr><td class="paramname">i</td><td>lzma_index to which the iterator will be associated </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a id="ae81438be8deff4894b104e65d8acdd24" name="ae81438be8deff4894b104e65d8acdd24"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae81438be8deff4894b104e65d8acdd24">&#9670;&#160;</a></span>lzma_index_iter_rewind()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void lzma_index_iter_rewind </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__index__iter.html">lzma_index_iter</a> *&#160;</td>
+ <td class="paramname"><em>iter</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Rewind the iterator. </p>
+<p>Rewind the iterator so that next call to <a class="el" href="index_8h.html#af428522e1b3eef137c65c5a01f766e0e" title="Get the next Block or Stream.">lzma_index_iter_next()</a> will return the first Block or Stream.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">iter</td><td>Pointer to a <a class="el" href="structlzma__index__iter.html" title="Iterator to get information about Blocks and Streams.">lzma_index_iter</a> structure </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a id="af428522e1b3eef137c65c5a01f766e0e" name="af428522e1b3eef137c65c5a01f766e0e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af428522e1b3eef137c65c5a01f766e0e">&#9670;&#160;</a></span>lzma_index_iter_next()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> lzma_index_iter_next </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__index__iter.html">lzma_index_iter</a> *&#160;</td>
+ <td class="paramname"><em>iter</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="index_8h.html#a712b43192d944bf2f767711343cd9ca8">lzma_index_iter_mode</a>&#160;</td>
+ <td class="paramname"><em>mode</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the next Block or Stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">iter</td><td>Iterator initialized with <a class="el" href="index_8h.html#aa78f02f18ed29d289a6ef37b8ea98a21" title="Initialize an iterator.">lzma_index_iter_init()</a> </td></tr>
+ <tr><td class="paramname">mode</td><td>Specify what kind of information the caller wants to get. See lzma_index_iter_mode for details.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>lzma_bool:<ul>
+<li>true if no Block or Stream matching the mode is found. *iter is not updated (failure).</li>
+<li>false if the next Block or Stream matching the mode was found. *iter is updated (success). </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="ac4f56df9d210712e5d7add5502c9eb93" name="ac4f56df9d210712e5d7add5502c9eb93"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac4f56df9d210712e5d7add5502c9eb93">&#9670;&#160;</a></span>lzma_index_iter_locate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> lzma_index_iter_locate </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__index__iter.html">lzma_index_iter</a> *&#160;</td>
+ <td class="paramname"><em>iter</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
+ <td class="paramname"><em>target</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Locate a Block. </p>
+<p>If it is possible to seek in the .xz file, it is possible to parse the Index field(s) and use <a class="el" href="index_8h.html#ac4f56df9d210712e5d7add5502c9eb93" title="Locate a Block.">lzma_index_iter_locate()</a> to do random-access reading with granularity of Block size.</p>
+<p>If the target is smaller than the uncompressed size of the Stream (can be checked with <a class="el" href="index_8h.html#a620fe6317f1f9d7af9cc27c748bf07d6" title="Get the uncompressed size of the file.">lzma_index_uncompressed_size()</a>):</p><ul>
+<li>Information about the Stream and Block containing the requested uncompressed offset is stored into *iter.</li>
+<li>Internal state of the iterator is adjusted so that <a class="el" href="index_8h.html#af428522e1b3eef137c65c5a01f766e0e" title="Get the next Block or Stream.">lzma_index_iter_next()</a> can be used to read subsequent Blocks or Streams.</li>
+</ul>
+<p>If the target is greater than the uncompressed size of the Stream, *iter is not modified.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">iter</td><td>Iterator that was earlier initialized with <a class="el" href="index_8h.html#aa78f02f18ed29d289a6ef37b8ea98a21" title="Initialize an iterator.">lzma_index_iter_init()</a>. </td></tr>
+ <tr><td class="paramname">target</td><td>Uncompressed target offset which the caller would like to locate from the Stream</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>lzma_bool:<ul>
+<li>true if the target is greater than or equal to the uncompressed size of the Stream (failure)</li>
+<li>false if the target is smaller than the uncompressed size of the Stream (success) </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="abc4db36b4bd67af01819be9dd045c34a" name="abc4db36b4bd67af01819be9dd045c34a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abc4db36b4bd67af01819be9dd045c34a">&#9670;&#160;</a></span>lzma_index_cat()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_cat </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>dest</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>src</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Concatenate lzma_indexes. </p>
+<p>Concatenating lzma_indexes is useful when doing random-access reading in multi-Stream .xz file, or when combining multiple Streams into single Stream.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">dest</td><td>lzma_index after which src is appended </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">src</td><td>lzma_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. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free().</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: lzma_indexes were concatenated successfully. src is now a dangling pointer.</li>
+<li>LZMA_DATA_ERROR: *dest would grow too big.</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a5161e3f67156577882e1d95dcb57e33e" name="a5161e3f67156577882e1d95dcb57e33e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5161e3f67156577882e1d95dcb57e33e">&#9670;&#160;</a></span>lzma_index_dup()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> * lzma_index_dup </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>i</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Duplicate lzma_index. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">i</td><td>Pointer to lzma_index structure to be duplicated </td></tr>
+ <tr><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free().</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A copy of the lzma_index, or NULL if memory allocation failed. </dd></dl>
+
+</div>
+</div>
+<a id="a6800d70f3b2afca085496460cd03211d" name="a6800d70f3b2afca085496460cd03211d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6800d70f3b2afca085496460cd03211d">&#9670;&#160;</a></span>lzma_index_encoder()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_encoder </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>i</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialize .xz Index encoder. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">strm</td><td>Pointer to properly prepared <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> </td></tr>
+ <tr><td class="paramname">i</td><td>Pointer to lzma_index which should be encoded.</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>The valid 'action' values for <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> are LZMA_RUN and LZMA_FINISH. It is enough to use only one of them (you can choose freely).</p>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Initialization succeeded, continue with <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>.</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="abb56fd1d5914f8900ece7b88b78e5e23" name="abb56fd1d5914f8900ece7b88b78e5e23"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abb56fd1d5914f8900ece7b88b78e5e23">&#9670;&#160;</a></span>lzma_index_decoder()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_decoder </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> **&#160;</td>
+ <td class="paramname"><em>i</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint64_t&#160;</td>
+ <td class="paramname"><em>memlimit</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialize .xz Index decoder. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">strm</td><td>Pointer to properly prepared <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">i</td><td>The 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 (<a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> returns LZMA_STREAM_END), *i will be set to point to a new lzma_index, which the application has to later free with <a class="el" href="index_8h.html#a0c2d0009f07fc315d5ac89e4bcd25abd" title="Deallocate lzma_index.">lzma_index_end()</a>. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">memlimit</td><td>How 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.</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Valid 'action' arguments to <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> 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.</p>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Initialization succeeded, continue with <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>.</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_PROG_ERROR</li>
+</ul>
+</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>liblzma 5.2.3 and older list also LZMA_MEMLIMIT_ERROR here but that error code has never been possible from this initialization function. </dd></dl>
+
+</div>
+</div>
+<a id="add1ef06dec8a26d08ae8651cff0fd8d6" name="add1ef06dec8a26d08ae8651cff0fd8d6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#add1ef06dec8a26d08ae8651cff0fd8d6">&#9670;&#160;</a></span>lzma_index_buffer_encode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_buffer_encode </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> *&#160;</td>
+ <td class="paramname"><em>i</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t *&#160;</td>
+ <td class="paramname"><em>out</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>out_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>out_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-call .xz Index encoder. </p>
+<dl class="section note"><dt>Note</dt><dd>This function doesn't take allocator argument since all the internal data is allocated on stack.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">i</td><td>lzma_index to be encoded </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. *out_pos is updated only if encoding succeeds. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Encoding was successful.</li>
+<li>LZMA_BUF_ERROR: Output buffer is too small. Use <a class="el" href="index_8h.html#a669ed1a82b1941217cfbb07e7826afc2" title="Get the size of the Index field as bytes.">lzma_index_size()</a> to find out how much output space is needed.</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a028b8b8d59a413f9682eea1269a6ae8b" name="a028b8b8d59a413f9682eea1269a6ae8b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a028b8b8d59a413f9682eea1269a6ae8b">&#9670;&#160;</a></span>lzma_index_buffer_decode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_buffer_decode </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> **&#160;</td>
+ <td class="paramname"><em>i</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint64_t *&#160;</td>
+ <td class="paramname"><em>memlimit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const uint8_t *&#160;</td>
+ <td class="paramname"><em>in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>in_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>in_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Single-call .xz Index decoder. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">i</td><td>If decoding succeeds, *i will point to a new lzma_index, which the application has to later free with <a class="el" href="index_8h.html#a0c2d0009f07fc315d5ac89e4bcd25abd" title="Deallocate lzma_index.">lzma_index_end()</a>. 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. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">memlimit</td><td>Pointer 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. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in_pos</td><td>The next byte will be read from in[*in_pos]. *in_pos is updated only if decoding succeeds. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer; the first byte that won't be read is in[in_size].</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Decoding was successful.</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_MEMLIMIT_ERROR: Memory usage limit was reached. The minimum required memlimit value was stored to *memlimit.</li>
+<li>LZMA_DATA_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a7c5d77cf8532d95977d4571a1eb0a222" name="a7c5d77cf8532d95977d4571a1eb0a222"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7c5d77cf8532d95977d4571a1eb0a222">&#9670;&#160;</a></span>lzma_file_info_decoder()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_file_info_decoder </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream.html">lzma_stream</a> *&#160;</td>
+ <td class="paramname"><em>strm</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="index_8h.html#afc18c1443b3b9aa0d146b44e8755b62e">lzma_index</a> **&#160;</td>
+ <td class="paramname"><em>dest_index</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint64_t&#160;</td>
+ <td class="paramname"><em>memlimit</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint64_t&#160;</td>
+ <td class="paramname"><em>file_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Initialize a .xz file information decoder. </p>
+<p>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.</p>
+<p>To get the required information from the .xz file, <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> may ask the application to seek in the input file by returning LZMA_SEEK_NEEDED and having the target file position specified in <a class="el" href="structlzma__stream.html#af7c43a61f3dfeb0b9c8487b7f275054e" title="New seek input position for LZMA_SEEK_NEEDED.">lzma_stream.seek_pos</a>. 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, <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> won't return LZMA_SEEK_NEEDED).</p>
+<p>The value in <a class="el" href="structlzma__stream.html#a1a411e1755d6185756caefabc3932c7b">lzma_stream.total_in</a> 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.</p>
+<p>Valid 'action' arguments to <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> 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 <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> asks the application to seek, remember to reset 'action' back to LZMA_RUN unless you hit the end of the file again.</p>
+<p>Possible return values from <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>:</p><ul>
+<li>LZMA_OK: All OK so far, more input needed</li>
+<li>LZMA_SEEK_NEEDED: Provide more input starting from the absolute file position strm-&gt;seek_pos</li>
+<li>LZMA_STREAM_END: Decoding was successful, *dest_index has been set</li>
+<li>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)</li>
+<li>LZMA_OPTIONS_ERROR: File looks valid but contains headers that aren't supported by this version of liblzma</li>
+<li>LZMA_DATA_ERROR: File is corrupt</li>
+<li>LZMA_BUF_ERROR</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_MEMLIMIT_ERROR</li>
+<li>LZMA_PROG_ERROR</li>
+</ul>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">strm</td><td>Pointer to a properly prepared <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">dest_index</td><td>Pointer to a pointer where the decoder will put the decoded lzma_index. The old value of *dest_index is ignored (not freed). </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">memlimit</td><td>How much memory the resulting lzma_index is allowed to require. Use UINT64_MAX to effectively disable the limiter. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">file_size</td><td>Size of the input .xz file</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>LZMA_MEM_ERROR</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/index__hash_8h.html b/doc/api/index__hash_8h.html
new file mode 100644
index 00000000..788548b4
--- /dev/null
+++ b/doc/api/index__hash_8h.html
@@ -0,0 +1,317 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma/index_hash.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">index_hash.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Validate Index by using a hash function.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a2db9f438838c8ff72a8a6fd3fc856f8c"><td class="memItemLeft" align="right" valign="top"><a id="a2db9f438838c8ff72a8a6fd3fc856f8c" name="a2db9f438838c8ff72a8a6fd3fc856f8c"></a>
+typedef struct lzma_index_hash_s&#160;</td><td class="memItemRight" valign="bottom"><b>lzma_index_hash</b></td></tr>
+<tr class="memdesc:a2db9f438838c8ff72a8a6fd3fc856f8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque data type to hold the Index hash. <br /></td></tr>
+<tr class="separator:a2db9f438838c8ff72a8a6fd3fc856f8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aaafae4967a4a266d97dc34a98bfcabfb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index__hash_8h.html#aaafae4967a4a266d97dc34a98bfcabfb">lzma_index_hash_init</a> (<a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *index_hash, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:aaafae4967a4a266d97dc34a98bfcabfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate and initialize a new lzma_index_hash structure. <br /></td></tr>
+<tr class="separator:aaafae4967a4a266d97dc34a98bfcabfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7dacb41b9ec1c8df5d33dfdae97743b3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index__hash_8h.html#a7dacb41b9ec1c8df5d33dfdae97743b3">lzma_index_hash_end</a> (<a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *index_hash, const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *allocator) lzma_nothrow</td></tr>
+<tr class="memdesc:a7dacb41b9ec1c8df5d33dfdae97743b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deallocate lzma_index_hash structure. <br /></td></tr>
+<tr class="separator:a7dacb41b9ec1c8df5d33dfdae97743b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2bdbe4f0b5fa2fadb7528447feaaa97f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index__hash_8h.html#a2bdbe4f0b5fa2fadb7528447feaaa97f">lzma_index_hash_append</a> (<a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *index_hash, <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> unpadded_size, <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> uncompressed_size) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a2bdbe4f0b5fa2fadb7528447feaaa97f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new Record to an Index hash. <br /></td></tr>
+<tr class="separator:a2bdbe4f0b5fa2fadb7528447feaaa97f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a891eb955284c9117155f92eb0ddba44c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index__hash_8h.html#a891eb955284c9117155f92eb0ddba44c">lzma_index_hash_decode</a> (<a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *index_hash, const uint8_t *in, size_t *in_pos, size_t in_size) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a891eb955284c9117155f92eb0ddba44c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode and validate the Index field. <br /></td></tr>
+<tr class="separator:a891eb955284c9117155f92eb0ddba44c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f8ab3b57b117f9547866156755c917f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="index__hash_8h.html#a0f8ab3b57b117f9547866156755c917f">lzma_index_hash_size</a> (const <a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *index_hash) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:a0f8ab3b57b117f9547866156755c917f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the size of the Index field as bytes. <br /></td></tr>
+<tr class="separator:a0f8ab3b57b117f9547866156755c917f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Validate Index by using a hash function. </p>
+<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead.</dd></dl>
+<p>Hashing makes it possible to use constant amount of memory to validate Index of arbitrary size. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="aaafae4967a4a266d97dc34a98bfcabfb" name="aaafae4967a4a266d97dc34a98bfcabfb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aaafae4967a4a266d97dc34a98bfcabfb">&#9670;&#160;</a></span>lzma_index_hash_init()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> * lzma_index_hash_init </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *&#160;</td>
+ <td class="paramname"><em>index_hash</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Allocate and initialize a new lzma_index_hash structure. </p>
+<p>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.</p>
+<p>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.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">index_hash</td><td>Pointer to a lzma_index_hash structure or NULL. </td></tr>
+ <tr><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free().</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Initialized lzma_index_hash structure on success or NULL on failure. </dd></dl>
+
+</div>
+</div>
+<a id="a7dacb41b9ec1c8df5d33dfdae97743b3" name="a7dacb41b9ec1c8df5d33dfdae97743b3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7dacb41b9ec1c8df5d33dfdae97743b3">&#9670;&#160;</a></span>lzma_index_hash_end()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void lzma_index_hash_end </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *&#160;</td>
+ <td class="paramname"><em>index_hash</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td>
+ <td class="paramname"><em>allocator</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Deallocate lzma_index_hash structure. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">index_hash</td><td>Pointer to a lzma_index_hash structure to free. </td></tr>
+ <tr><td class="paramname">allocator</td><td><a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for custom allocator functions. Set to NULL to use malloc() and free(). </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a id="a2bdbe4f0b5fa2fadb7528447feaaa97f" name="a2bdbe4f0b5fa2fadb7528447feaaa97f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2bdbe4f0b5fa2fadb7528447feaaa97f">&#9670;&#160;</a></span>lzma_index_hash_append()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_hash_append </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *&#160;</td>
+ <td class="paramname"><em>index_hash</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
+ <td class="paramname"><em>unpadded_size</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
+ <td class="paramname"><em>uncompressed_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Add a new Record to an Index hash. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">index_hash</td><td>Pointer to a lzma_index_hash structure </td></tr>
+ <tr><td class="paramname">unpadded_size</td><td>Unpadded Size of a Block </td></tr>
+ <tr><td class="paramname">uncompressed_size</td><td>Uncompressed Size of a Block</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK</li>
+<li>LZMA_DATA_ERROR: Compressed or uncompressed size of the Stream or size of the Index field would grow too big.</li>
+<li>LZMA_PROG_ERROR: Invalid arguments or this function is being used when <a class="el" href="index__hash_8h.html#a891eb955284c9117155f92eb0ddba44c" title="Decode and validate the Index field.">lzma_index_hash_decode()</a> has already been used. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a891eb955284c9117155f92eb0ddba44c" name="a891eb955284c9117155f92eb0ddba44c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a891eb955284c9117155f92eb0ddba44c">&#9670;&#160;</a></span>lzma_index_hash_decode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_index_hash_decode </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *&#160;</td>
+ <td class="paramname"><em>index_hash</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const uint8_t *&#160;</td>
+ <td class="paramname"><em>in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>in_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>in_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Decode and validate the Index field. </p>
+<p>After telling the sizes of all Blocks with <a class="el" href="index__hash_8h.html#a2bdbe4f0b5fa2fadb7528447feaaa97f" title="Add a new Record to an Index hash.">lzma_index_hash_append()</a>, 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 <a class="el" href="index__hash_8h.html#a2bdbe4f0b5fa2fadb7528447feaaa97f" title="Add a new Record to an Index hash.">lzma_index_hash_append()</a>.</p>
+<p>This function doesn't use <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> 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.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">index_hash</td><td>Pointer to a lzma_index_hash structure </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in</td><td>Pointer to the beginning of the input buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">in_pos</td><td>in[*in_pos] is the next byte to process </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>in[in_size] is the first byte not to process</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: So far good, but more input is needed.</li>
+<li>LZMA_STREAM_END: Index decoded successfully and it matches the Records given with <a class="el" href="index__hash_8h.html#a2bdbe4f0b5fa2fadb7528447feaaa97f" title="Add a new Record to an Index hash.">lzma_index_hash_append()</a>.</li>
+<li>LZMA_DATA_ERROR: Index is corrupt or doesn't match the information given with <a class="el" href="index__hash_8h.html#a2bdbe4f0b5fa2fadb7528447feaaa97f" title="Add a new Record to an Index hash.">lzma_index_hash_append()</a>.</li>
+<li>LZMA_BUF_ERROR: Cannot progress because *in_pos &gt;= in_size.</li>
+<li>LZMA_PROG_ERROR </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a0f8ab3b57b117f9547866156755c917f" name="a0f8ab3b57b117f9547866156755c917f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0f8ab3b57b117f9547866156755c917f">&#9670;&#160;</a></span>lzma_index_hash_size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_hash_size </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="index__hash_8h.html#a2db9f438838c8ff72a8a6fd3fc856f8c">lzma_index_hash</a> *&#160;</td>
+ <td class="paramname"><em>index_hash</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the size of the Index field as bytes. </p>
+<p>This is needed to verify the Backward Size field in the Stream Footer.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">index_hash</td><td>Pointer to a lzma_index_hash structure</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Size of the Index field in bytes. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/lzma12_8h.html b/doc/api/lzma12_8h.html
new file mode 100644
index 00000000..e2e3e7b9
--- /dev/null
+++ b/doc/api/lzma12_8h.html
@@ -0,0 +1,442 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma/lzma12.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">lzma12.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>LZMA1 and LZMA2 filters.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html">lzma_options_lzma</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options specific to the LZMA1 and LZMA2 filters. <a href="structlzma__options__lzma.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:accedd16abcb758e7f748bac1102abda9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html#accedd16abcb758e7f748bac1102abda9">LZMA_FILTER_LZMA1</a>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x4000000000000001)</td></tr>
+<tr class="memdesc:accedd16abcb758e7f748bac1102abda9"><td class="mdescLeft">&#160;</td><td class="mdescRight">LZMA1 Filter ID (for raw encoder/decoder only, not in .xz) <br /></td></tr>
+<tr class="separator:accedd16abcb758e7f748bac1102abda9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a98a7fd42aa78a273a6b138629e46772d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html#a98a7fd42aa78a273a6b138629e46772d">LZMA_FILTER_LZMA1EXT</a>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x4000000000000002)</td></tr>
+<tr class="memdesc:a98a7fd42aa78a273a6b138629e46772d"><td class="mdescLeft">&#160;</td><td class="mdescRight">LZMA1 Filter ID with extended options (for raw encoder/decoder) <br /></td></tr>
+<tr class="separator:a98a7fd42aa78a273a6b138629e46772d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a04f9d9a018a47cc99491e6e94e92f96b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html#a04f9d9a018a47cc99491e6e94e92f96b">LZMA_FILTER_LZMA2</a>&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x21)</td></tr>
+<tr class="memdesc:a04f9d9a018a47cc99491e6e94e92f96b"><td class="mdescLeft">&#160;</td><td class="mdescRight">LZMA2 Filter ID. <br /></td></tr>
+<tr class="separator:a04f9d9a018a47cc99491e6e94e92f96b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a221f69f8a1f604c1aa5d79ae8afec1e0"><td class="memItemLeft" align="right" valign="top"><a id="a221f69f8a1f604c1aa5d79ae8afec1e0" name="a221f69f8a1f604c1aa5d79ae8afec1e0"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_DICT_SIZE_MIN</b>&#160;&#160;&#160;UINT32_C(4096)</td></tr>
+<tr class="separator:a221f69f8a1f604c1aa5d79ae8afec1e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abadf9a9599c106a1381756219c16f8ee"><td class="memItemLeft" align="right" valign="top"><a id="abadf9a9599c106a1381756219c16f8ee" name="abadf9a9599c106a1381756219c16f8ee"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_DICT_SIZE_DEFAULT</b>&#160;&#160;&#160;(UINT32_C(1) &lt;&lt; 23)</td></tr>
+<tr class="separator:abadf9a9599c106a1381756219c16f8ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36552f4d49390d060692424817222d9c"><td class="memItemLeft" align="right" valign="top"><a id="a36552f4d49390d060692424817222d9c" name="a36552f4d49390d060692424817222d9c"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_LCLP_MIN</b>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:a36552f4d49390d060692424817222d9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6890226055b5069e83835af1fb804654"><td class="memItemLeft" align="right" valign="top"><a id="a6890226055b5069e83835af1fb804654" name="a6890226055b5069e83835af1fb804654"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_LCLP_MAX</b>&#160;&#160;&#160;4</td></tr>
+<tr class="separator:a6890226055b5069e83835af1fb804654"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3769f40103ec40516e1235c4b912d05"><td class="memItemLeft" align="right" valign="top"><a id="af3769f40103ec40516e1235c4b912d05" name="af3769f40103ec40516e1235c4b912d05"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_LC_DEFAULT</b>&#160;&#160;&#160;3</td></tr>
+<tr class="separator:af3769f40103ec40516e1235c4b912d05"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa8ed908b2c1a88f3a76c47610036e68"><td class="memItemLeft" align="right" valign="top"><a id="afa8ed908b2c1a88f3a76c47610036e68" name="afa8ed908b2c1a88f3a76c47610036e68"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_LP_DEFAULT</b>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:afa8ed908b2c1a88f3a76c47610036e68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a11ed595416a499021cd571f08bbd38bc"><td class="memItemLeft" align="right" valign="top"><a id="a11ed595416a499021cd571f08bbd38bc" name="a11ed595416a499021cd571f08bbd38bc"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_PB_MIN</b>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:a11ed595416a499021cd571f08bbd38bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5e2661cef9dbcbb309239ec243a7c034"><td class="memItemLeft" align="right" valign="top"><a id="a5e2661cef9dbcbb309239ec243a7c034" name="a5e2661cef9dbcbb309239ec243a7c034"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_PB_MAX</b>&#160;&#160;&#160;4</td></tr>
+<tr class="separator:a5e2661cef9dbcbb309239ec243a7c034"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5072e13ce7b6abcdffdf6456da5959a1"><td class="memItemLeft" align="right" valign="top"><a id="a5072e13ce7b6abcdffdf6456da5959a1" name="a5072e13ce7b6abcdffdf6456da5959a1"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_PB_DEFAULT</b>&#160;&#160;&#160;2</td></tr>
+<tr class="separator:a5072e13ce7b6abcdffdf6456da5959a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad088307349f27b38fda0d1f21588adc9"><td class="memItemLeft" align="right" valign="top"><a id="ad088307349f27b38fda0d1f21588adc9" name="ad088307349f27b38fda0d1f21588adc9"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_LZMA1EXT_ALLOW_EOPM</b>&#160;&#160;&#160;UINT32_C(0x01)</td></tr>
+<tr class="separator:ad088307349f27b38fda0d1f21588adc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a73ed0293db4e59d73a702d66fef537c3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html#a73ed0293db4e59d73a702d66fef537c3">lzma_set_ext_size</a>(opt_lzma2, u64size)</td></tr>
+<tr class="memdesc:a73ed0293db4e59d73a702d66fef537c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to set the 64-bit uncompressed size in ext_size_*. <br /></td></tr>
+<tr class="separator:a73ed0293db4e59d73a702d66fef537c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:acf740075f86fa61dc408d6d0dbf8fa80"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80">lzma_match_finder</a> { <br />
+&#160;&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a6eb38f634021a192cada8a978b5de93b">LZMA_MF_HC3</a> = 0x03
+, <a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a0944620f4949289c2ebde613cae12b04">LZMA_MF_HC4</a> = 0x04
+, <a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a7ab212446c3f6520f5c33ccfa4b3386a">LZMA_MF_BT2</a> = 0x12
+, <a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a983ecc59bf3e07a7c43fea551ea11865">LZMA_MF_BT3</a> = 0x13
+, <br />
+&#160;&#160;<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80a468c32cdea9861d1ff98478364e6c547">LZMA_MF_BT4</a> = 0x14
+<br />
+ }</td></tr>
+<tr class="memdesc:acf740075f86fa61dc408d6d0dbf8fa80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Match finders. <a href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80">More...</a><br /></td></tr>
+<tr class="separator:acf740075f86fa61dc408d6d0dbf8fa80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1032316e3075c2c8086fb17104b91866"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866">lzma_mode</a> { <a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866ac8c0926a91b4f756e11121efd30648cc">LZMA_MODE_FAST</a> = 1
+, <a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866ad37225f30d5cd21fc8bb3eaba283bbf9">LZMA_MODE_NORMAL</a> = 2
+ }</td></tr>
+<tr class="memdesc:a1032316e3075c2c8086fb17104b91866"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compression modes. <a href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866">More...</a><br /></td></tr>
+<tr class="separator:a1032316e3075c2c8086fb17104b91866"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:aefba1f7214ddcf8cd408a0702e8642b5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html#aefba1f7214ddcf8cd408a0702e8642b5">lzma_mf_is_supported</a> (<a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80">lzma_match_finder</a> match_finder) lzma_nothrow lzma_attr_const</td></tr>
+<tr class="memdesc:aefba1f7214ddcf8cd408a0702e8642b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if given match finder is supported. <br /></td></tr>
+<tr class="separator:aefba1f7214ddcf8cd408a0702e8642b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad1add1c2600fdbb3d737e4fb3465dfcb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html#ad1add1c2600fdbb3d737e4fb3465dfcb">lzma_mode_is_supported</a> (<a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866">lzma_mode</a> mode) lzma_nothrow lzma_attr_const</td></tr>
+<tr class="memdesc:ad1add1c2600fdbb3d737e4fb3465dfcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test if given compression mode is supported. <br /></td></tr>
+<tr class="separator:ad1add1c2600fdbb3d737e4fb3465dfcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa62c28944fe3575653a4c25780400d77"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="lzma12_8h.html#aa62c28944fe3575653a4c25780400d77">lzma_lzma_preset</a> (<a class="el" href="structlzma__options__lzma.html">lzma_options_lzma</a> *options, uint32_t preset) lzma_nothrow</td></tr>
+<tr class="memdesc:aa62c28944fe3575653a4c25780400d77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a compression preset to <a class="el" href="structlzma__options__lzma.html" title="Options specific to the LZMA1 and LZMA2 filters.">lzma_options_lzma</a> structure. <br /></td></tr>
+<tr class="separator:aa62c28944fe3575653a4c25780400d77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>LZMA1 and LZMA2 filters. </p>
+<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="accedd16abcb758e7f748bac1102abda9" name="accedd16abcb758e7f748bac1102abda9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#accedd16abcb758e7f748bac1102abda9">&#9670;&#160;</a></span>LZMA_FILTER_LZMA1</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_FILTER_LZMA1&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x4000000000000001)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>LZMA1 Filter ID (for raw encoder/decoder only, not in .xz) </p>
+<p>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. </p>
+
+</div>
+</div>
+<a id="a98a7fd42aa78a273a6b138629e46772d" name="a98a7fd42aa78a273a6b138629e46772d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a98a7fd42aa78a273a6b138629e46772d">&#9670;&#160;</a></span>LZMA_FILTER_LZMA1EXT</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_FILTER_LZMA1EXT&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x4000000000000002)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>LZMA1 Filter ID with extended options (for raw encoder/decoder) </p>
+<p>This is like LZMA_FILTER_LZMA1 but with this ID a few extra options are supported in the <a class="el" href="structlzma__options__lzma.html" title="Options specific to the LZMA1 and LZMA2 filters.">lzma_options_lzma</a> structure:</p>
+<ul>
+<li>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.</li>
+<li>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.</li>
+</ul>
+<p>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. </p>
+
+</div>
+</div>
+<a id="a04f9d9a018a47cc99491e6e94e92f96b" name="a04f9d9a018a47cc99491e6e94e92f96b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a04f9d9a018a47cc99491e6e94e92f96b">&#9670;&#160;</a></span>LZMA_FILTER_LZMA2</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_FILTER_LZMA2&#160;&#160;&#160;<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(0x21)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>LZMA2 Filter ID. </p>
+<p>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. </p>
+
+</div>
+</div>
+<a id="a73ed0293db4e59d73a702d66fef537c3" name="a73ed0293db4e59d73a702d66fef537c3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a73ed0293db4e59d73a702d66fef537c3">&#9670;&#160;</a></span>lzma_set_ext_size</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define lzma_set_ext_size</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">opt_lzma2, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">u64size&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
+<div class="line"> (opt_lzma2).ext_size_low = (uint32_t)(u64size); \</div>
+<div class="line"> (opt_lzma2).ext_size_high = (uint32_t)((uint64_t)(u64size) &gt;&gt; 32); \</div>
+<div class="line">} <span class="keywordflow">while</span> (0)</div>
+</div><!-- fragment -->
+<p>Macro to set the 64-bit uncompressed size in ext_size_*. </p>
+<p>This might be convenient when decoding using LZMA_FILTER_LZMA1EXT. This isn't used with LZMA_FILTER_LZMA1 or LZMA_FILTER_LZMA2. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="acf740075f86fa61dc408d6d0dbf8fa80" name="acf740075f86fa61dc408d6d0dbf8fa80"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acf740075f86fa61dc408d6d0dbf8fa80">&#9670;&#160;</a></span>lzma_match_finder</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80">lzma_match_finder</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Match finders. </p>
+<p>Match finder has major effect on both speed and compression ratio. Usually hash chains are faster than binary trees.</p>
+<p>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.</p>
+<p>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 <a class="el" href="filter_8h.html#a730f9391e85a5979bcd1b32643ae7176" title="Calculate approximate memory requirements for raw encoder.">lzma_raw_encoder_memusage()</a> to get more accurate estimate of memory usage. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="acf740075f86fa61dc408d6d0dbf8fa80a6eb38f634021a192cada8a978b5de93b" name="acf740075f86fa61dc408d6d0dbf8fa80a6eb38f634021a192cada8a978b5de93b"></a>LZMA_MF_HC3&#160;</td><td class="fielddoc"><p>Hash Chain with 2- and 3-byte hashing. </p>
+<p>Minimum nice_len: 3</p>
+<p>Memory usage:</p><ul>
+<li>dict_size &lt;= 16 MiB: dict_size * 7.5</li>
+<li>dict_size &gt; 16 MiB: dict_size * 5.5 + 64 MiB </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><a id="acf740075f86fa61dc408d6d0dbf8fa80a0944620f4949289c2ebde613cae12b04" name="acf740075f86fa61dc408d6d0dbf8fa80a0944620f4949289c2ebde613cae12b04"></a>LZMA_MF_HC4&#160;</td><td class="fielddoc"><p>Hash Chain with 2-, 3-, and 4-byte hashing. </p>
+<p>Minimum nice_len: 4</p>
+<p>Memory usage:</p><ul>
+<li>dict_size &lt;= 32 MiB: dict_size * 7.5</li>
+<li>dict_size &gt; 32 MiB: dict_size * 6.5 </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><a id="acf740075f86fa61dc408d6d0dbf8fa80a7ab212446c3f6520f5c33ccfa4b3386a" name="acf740075f86fa61dc408d6d0dbf8fa80a7ab212446c3f6520f5c33ccfa4b3386a"></a>LZMA_MF_BT2&#160;</td><td class="fielddoc"><p>Binary Tree with 2-byte hashing. </p>
+<p>Minimum nice_len: 2</p>
+<p>Memory usage: dict_size * 9.5 </p>
+</td></tr>
+<tr><td class="fieldname"><a id="acf740075f86fa61dc408d6d0dbf8fa80a983ecc59bf3e07a7c43fea551ea11865" name="acf740075f86fa61dc408d6d0dbf8fa80a983ecc59bf3e07a7c43fea551ea11865"></a>LZMA_MF_BT3&#160;</td><td class="fielddoc"><p>Binary Tree with 2- and 3-byte hashing. </p>
+<p>Minimum nice_len: 3</p>
+<p>Memory usage:</p><ul>
+<li>dict_size &lt;= 16 MiB: dict_size * 11.5</li>
+<li>dict_size &gt; 16 MiB: dict_size * 9.5 + 64 MiB </li>
+</ul>
+</td></tr>
+<tr><td class="fieldname"><a id="acf740075f86fa61dc408d6d0dbf8fa80a468c32cdea9861d1ff98478364e6c547" name="acf740075f86fa61dc408d6d0dbf8fa80a468c32cdea9861d1ff98478364e6c547"></a>LZMA_MF_BT4&#160;</td><td class="fielddoc"><p>Binary Tree with 2-, 3-, and 4-byte hashing. </p>
+<p>Minimum nice_len: 4</p>
+<p>Memory usage:</p><ul>
+<li>dict_size &lt;= 32 MiB: dict_size * 11.5</li>
+<li>dict_size &gt; 32 MiB: dict_size * 10.5 </li>
+</ul>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a id="a1032316e3075c2c8086fb17104b91866" name="a1032316e3075c2c8086fb17104b91866"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1032316e3075c2c8086fb17104b91866">&#9670;&#160;</a></span>lzma_mode</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866">lzma_mode</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compression modes. </p>
+<p>This selects the function used to analyze the data produced by the match finder. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a1032316e3075c2c8086fb17104b91866ac8c0926a91b4f756e11121efd30648cc" name="a1032316e3075c2c8086fb17104b91866ac8c0926a91b4f756e11121efd30648cc"></a>LZMA_MODE_FAST&#160;</td><td class="fielddoc"><p>Fast compression. </p>
+<p>Fast mode is usually at its best when combined with a hash chain match finder. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1032316e3075c2c8086fb17104b91866ad37225f30d5cd21fc8bb3eaba283bbf9" name="a1032316e3075c2c8086fb17104b91866ad37225f30d5cd21fc8bb3eaba283bbf9"></a>LZMA_MODE_NORMAL&#160;</td><td class="fielddoc"><p>Normal compression. </p>
+<p>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. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="aefba1f7214ddcf8cd408a0702e8642b5" name="aefba1f7214ddcf8cd408a0702e8642b5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aefba1f7214ddcf8cd408a0702e8642b5">&#9670;&#160;</a></span>lzma_mf_is_supported()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> lzma_mf_is_supported </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80">lzma_match_finder</a>&#160;</td>
+ <td class="paramname"><em>match_finder</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Test if given match finder is supported. </p>
+<p>It is safe to call this with a value that isn't listed in lzma_match_finder enumeration; the return value will be false.</p>
+<p>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.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">match_finder</td><td>Match finder ID</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>lzma_bool:<ul>
+<li>true if the match finder is supported by this liblzma build.</li>
+<li>false otherwise. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="ad1add1c2600fdbb3d737e4fb3465dfcb" name="ad1add1c2600fdbb3d737e4fb3465dfcb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad1add1c2600fdbb3d737e4fb3465dfcb">&#9670;&#160;</a></span>lzma_mode_is_supported()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> lzma_mode_is_supported </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866">lzma_mode</a>&#160;</td>
+ <td class="paramname"><em>mode</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Test if given compression mode is supported. </p>
+<p>It is safe to call this with a value that isn't listed in lzma_mode enumeration; the return value will be false.</p>
+<p>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.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">mode</td><td>Mode ID.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>lzma_bool:<ul>
+<li>true if the compression mode is supported by this liblzma build.</li>
+<li>false otherwise. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="aa62c28944fe3575653a4c25780400d77" name="aa62c28944fe3575653a4c25780400d77"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa62c28944fe3575653a4c25780400d77">&#9670;&#160;</a></span>lzma_lzma_preset()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> lzma_lzma_preset </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__options__lzma.html">lzma_options_lzma</a> *&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>preset</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Set a compression preset to <a class="el" href="structlzma__options__lzma.html" title="Options specific to the LZMA1 and LZMA2 filters.">lzma_options_lzma</a> structure. </p>
+<p>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 <a class="el" href="container_8h.html" title="File formats.">container.h</a>, because the flags are used also with <a class="el" href="container_8h.html#acbdad999c544872f0f5d242f0d1a4ed4" title="Initialize .xz Stream encoder using a preset number.">lzma_easy_encoder()</a>.</p>
+<p>The preset levels are subject to changes between liblzma versions.</p>
+<p>This function is available only if LZMA1 or LZMA2 encoder has been enabled when building liblzma.</p>
+<p>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).</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">options</td><td>Pointer to LZMA1 or LZMA2 options to be filled </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">preset</td><td>Preset level bitwse-ORed with preset flags</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>lzma_bool:<ul>
+<li>true if the preset is not supported (failure).</li>
+<li>false otherwise (success). </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/lzma_8h.html b/doc/api/lzma_8h.html
new file mode 100644
index 00000000..4be4b4da
--- /dev/null
+++ b/doc/api/lzma_8h.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> </div>
+ <div class="headertitle"><div class="title">lzma.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>The public API of liblzma data compression library.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &lt;stddef.h&gt;</code><br />
+<code>#include &lt;inttypes.h&gt;</code><br />
+<code>#include &lt;limits.h&gt;</code><br />
+<code>#include &quot;<a class="el" href="version_8h.html">lzma/version.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="base_8h.html">lzma/base.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="vli_8h.html">lzma/vli.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="check_8h.html">lzma/check.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="filter_8h.html">lzma/filter.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="bcj_8h.html">lzma/bcj.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="delta_8h.html">lzma/delta.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="lzma12_8h.html">lzma/lzma12.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="container_8h.html">lzma/container.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="stream__flags_8h.html">lzma/stream_flags.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="block_8h.html">lzma/block.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="index_8h.html">lzma/index.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="index__hash_8h.html">lzma/index_hash.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="hardware_8h.html">lzma/hardware.h</a>&quot;</code><br />
+</div><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:acecee981dc3f28418f54035e20d7e578"><td class="memItemLeft" align="right" valign="top"><a id="acecee981dc3f28418f54035e20d7e578" name="acecee981dc3f28418f54035e20d7e578"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>UINT32_C</b>(n)&#160;&#160;&#160;n ## U</td></tr>
+<tr class="separator:acecee981dc3f28418f54035e20d7e578"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6548785b283106d4d7bfc7a4ef87fc4"><td class="memItemLeft" align="right" valign="top"><a id="ac6548785b283106d4d7bfc7a4ef87fc4" name="ac6548785b283106d4d7bfc7a4ef87fc4"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>UINT64_C</b>(n)&#160;&#160;&#160;n ## UL</td></tr>
+<tr class="separator:ac6548785b283106d4d7bfc7a4ef87fc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab5eb23180f7cc12b7d6c04a8ec067fdd"><td class="memItemLeft" align="right" valign="top"><a id="ab5eb23180f7cc12b7d6c04a8ec067fdd" name="ab5eb23180f7cc12b7d6c04a8ec067fdd"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>UINT32_MAX</b>&#160;&#160;&#160;(UINT32_C(4294967295))</td></tr>
+<tr class="separator:ab5eb23180f7cc12b7d6c04a8ec067fdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a30654b4b67d97c42ca3f9b6052dda916"><td class="memItemLeft" align="right" valign="top"><a id="a30654b4b67d97c42ca3f9b6052dda916" name="a30654b4b67d97c42ca3f9b6052dda916"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>UINT64_MAX</b>&#160;&#160;&#160;(UINT64_C(18446744073709551615))</td></tr>
+<tr class="separator:a30654b4b67d97c42ca3f9b6052dda916"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55854429aba444dbb0bd8325fed4eece"><td class="memItemLeft" align="right" valign="top"><a id="a55854429aba444dbb0bd8325fed4eece" name="a55854429aba444dbb0bd8325fed4eece"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>lzma_nothrow</b></td></tr>
+<tr class="separator:a55854429aba444dbb0bd8325fed4eece"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adbc570ea8654f0c96699e38249ac8032"><td class="memItemLeft" align="right" valign="top"><a id="adbc570ea8654f0c96699e38249ac8032" name="adbc570ea8654f0c96699e38249ac8032"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>lzma_attr_pure</b>&#160;&#160;&#160;lzma_attribute((__pure__))</td></tr>
+<tr class="separator:adbc570ea8654f0c96699e38249ac8032"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0aaafb664f89a525ff22530d61704556"><td class="memItemLeft" align="right" valign="top"><a id="a0aaafb664f89a525ff22530d61704556" name="a0aaafb664f89a525ff22530d61704556"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>lzma_attr_const</b>&#160;&#160;&#160;lzma_attribute((__const__))</td></tr>
+<tr class="separator:a0aaafb664f89a525ff22530d61704556"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af15e147fcd7986ec4dd82660aec2b695"><td class="memItemLeft" align="right" valign="top"><a id="af15e147fcd7986ec4dd82660aec2b695" name="af15e147fcd7986ec4dd82660aec2b695"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>lzma_attr_warn_unused_result</b>&#160;&#160;&#160; lzma_attribute((__warn_unused_result__))</td></tr>
+<tr class="separator:af15e147fcd7986ec4dd82660aec2b695"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af828f75941ade54f8379bb847da37349"><td class="memItemLeft" align="right" valign="top"><a id="af828f75941ade54f8379bb847da37349" name="af828f75941ade54f8379bb847da37349"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_H_INTERNAL</b>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:af828f75941ade54f8379bb847da37349"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The public API of liblzma data compression library. </p>
+</div></div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/nav_f.png b/doc/api/nav_f.png
new file mode 100644
index 00000000..113913ea
--- /dev/null
+++ b/doc/api/nav_f.png
Binary files differ
diff --git a/doc/api/nav_fd.png b/doc/api/nav_fd.png
new file mode 100644
index 00000000..978df01c
--- /dev/null
+++ b/doc/api/nav_fd.png
Binary files differ
diff --git a/doc/api/nav_g.png b/doc/api/nav_g.png
new file mode 100644
index 00000000..2093a237
--- /dev/null
+++ b/doc/api/nav_g.png
Binary files differ
diff --git a/doc/api/nav_h.png b/doc/api/nav_h.png
new file mode 100644
index 00000000..4e34efd8
--- /dev/null
+++ b/doc/api/nav_h.png
Binary files differ
diff --git a/doc/api/nav_hd.png b/doc/api/nav_hd.png
new file mode 100644
index 00000000..b717d931
--- /dev/null
+++ b/doc/api/nav_hd.png
Binary files differ
diff --git a/doc/api/open.png b/doc/api/open.png
new file mode 100644
index 00000000..b4e49d8d
--- /dev/null
+++ b/doc/api/open.png
Binary files differ
diff --git a/doc/api/splitbar.png b/doc/api/splitbar.png
new file mode 100644
index 00000000..ee781cf3
--- /dev/null
+++ b/doc/api/splitbar.png
Binary files differ
diff --git a/doc/api/splitbard.png b/doc/api/splitbard.png
new file mode 100644
index 00000000..aa4d0290
--- /dev/null
+++ b/doc/api/splitbard.png
Binary files differ
diff --git a/doc/api/stream__flags_8h.html b/doc/api/stream__flags_8h.html
new file mode 100644
index 00000000..6f386469
--- /dev/null
+++ b/doc/api/stream__flags_8h.html
@@ -0,0 +1,354 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma/stream_flags.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">stream_flags.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>.xz Stream Header and Stream Footer encoder and decoder
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Options for encoding/decoding Stream Header and Stream Footer. <a href="structlzma__stream__flags.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ada7e0a4f5e7146f547962cb9e9ef08ee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream__flags_8h.html#ada7e0a4f5e7146f547962cb9e9ef08ee">LZMA_STREAM_HEADER_SIZE</a>&#160;&#160;&#160;12</td></tr>
+<tr class="memdesc:ada7e0a4f5e7146f547962cb9e9ef08ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of Stream Header and Stream Footer. <br /></td></tr>
+<tr class="separator:ada7e0a4f5e7146f547962cb9e9ef08ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae8da8190f1396f66332073946bc45634"><td class="memItemLeft" align="right" valign="top"><a id="ae8da8190f1396f66332073946bc45634" name="ae8da8190f1396f66332073946bc45634"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_BACKWARD_SIZE_MIN</b>&#160;&#160;&#160;4</td></tr>
+<tr class="memdesc:ae8da8190f1396f66332073946bc45634"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum value for <a class="el" href="structlzma__stream__flags.html#aaa65ed7a55a098f829f04dba25d0f212" title="Backward Size.">lzma_stream_flags.backward_size</a>. <br /></td></tr>
+<tr class="separator:ae8da8190f1396f66332073946bc45634"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e5e09010880f8caa6cd6539c7341239"><td class="memItemLeft" align="right" valign="top"><a id="a2e5e09010880f8caa6cd6539c7341239" name="a2e5e09010880f8caa6cd6539c7341239"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_BACKWARD_SIZE_MAX</b>&#160;&#160;&#160;(<a class="el" href="vli_8h.html#a2d8bf5322898bfa11945848420585881">LZMA_VLI_C</a>(1) &lt;&lt; 34)</td></tr>
+<tr class="memdesc:a2e5e09010880f8caa6cd6539c7341239"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum value for <a class="el" href="structlzma__stream__flags.html#aaa65ed7a55a098f829f04dba25d0f212" title="Backward Size.">lzma_stream_flags.backward_size</a>. <br /></td></tr>
+<tr class="separator:a2e5e09010880f8caa6cd6539c7341239"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a2ebb8d6dff23daeb3de398913b845eff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream__flags_8h.html#a2ebb8d6dff23daeb3de398913b845eff">lzma_stream_header_encode</a> (const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *options, uint8_t *out) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a2ebb8d6dff23daeb3de398913b845eff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode Stream Header. <br /></td></tr>
+<tr class="separator:a2ebb8d6dff23daeb3de398913b845eff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a438249a75ea8da952a7474b92bfe7b7a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream__flags_8h.html#a438249a75ea8da952a7474b92bfe7b7a">lzma_stream_footer_encode</a> (const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *options, uint8_t *out) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:a438249a75ea8da952a7474b92bfe7b7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode Stream Footer. <br /></td></tr>
+<tr class="separator:a438249a75ea8da952a7474b92bfe7b7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae03198e464f0d296e601ff841e100805"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream__flags_8h.html#ae03198e464f0d296e601ff841e100805">lzma_stream_header_decode</a> (<a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *options, const uint8_t *in) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:ae03198e464f0d296e601ff841e100805"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode Stream Header. <br /></td></tr>
+<tr class="separator:ae03198e464f0d296e601ff841e100805"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa92a383f85753bb79ee23227fa68186c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream__flags_8h.html#aa92a383f85753bb79ee23227fa68186c">lzma_stream_footer_decode</a> (<a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *options, const uint8_t *in) lzma_nothrow lzma_attr_warn_unused_result</td></tr>
+<tr class="memdesc:aa92a383f85753bb79ee23227fa68186c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode Stream Footer. <br /></td></tr>
+<tr class="separator:aa92a383f85753bb79ee23227fa68186c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3e25ca4205021302882a696283d45263"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream__flags_8h.html#a3e25ca4205021302882a696283d45263">lzma_stream_flags_compare</a> (const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *a, const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *b) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:a3e25ca4205021302882a696283d45263"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare two <a class="el" href="structlzma__stream__flags.html" title="Options for encoding/decoding Stream Header and Stream Footer.">lzma_stream_flags</a> structures. <br /></td></tr>
+<tr class="separator:a3e25ca4205021302882a696283d45263"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>.xz Stream Header and Stream Footer encoder and decoder </p>
+<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="ada7e0a4f5e7146f547962cb9e9ef08ee" name="ada7e0a4f5e7146f547962cb9e9ef08ee"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ada7e0a4f5e7146f547962cb9e9ef08ee">&#9670;&#160;</a></span>LZMA_STREAM_HEADER_SIZE</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_STREAM_HEADER_SIZE&#160;&#160;&#160;12</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Size of Stream Header and Stream Footer. </p>
+<p>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. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="a2ebb8d6dff23daeb3de398913b845eff" name="a2ebb8d6dff23daeb3de398913b845eff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2ebb8d6dff23daeb3de398913b845eff">&#9670;&#160;</a></span>lzma_stream_header_encode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_header_encode </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t *&#160;</td>
+ <td class="paramname"><em>out</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Encode Stream Header. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">options</td><td>Stream Header options to be encoded. options-&gt;backward_size is ignored and doesn't need to be initialized. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer of LZMA_STREAM_HEADER_SIZE bytes.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Encoding was successful.</li>
+<li>LZMA_OPTIONS_ERROR: options-&gt;version is not supported by this liblzma version.</li>
+<li>LZMA_PROG_ERROR: Invalid options. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a438249a75ea8da952a7474b92bfe7b7a" name="a438249a75ea8da952a7474b92bfe7b7a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a438249a75ea8da952a7474b92bfe7b7a">&#9670;&#160;</a></span>lzma_stream_footer_encode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_footer_encode </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t *&#160;</td>
+ <td class="paramname"><em>out</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Encode Stream Footer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">options</td><td>Stream Footer options to be encoded. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer of LZMA_STREAM_HEADER_SIZE bytes.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Encoding was successful.</li>
+<li>LZMA_OPTIONS_ERROR: options-&gt;version is not supported by this liblzma version.</li>
+<li>LZMA_PROG_ERROR: Invalid options. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="ae03198e464f0d296e601ff841e100805" name="ae03198e464f0d296e601ff841e100805"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae03198e464f0d296e601ff841e100805">&#9670;&#160;</a></span>lzma_stream_header_decode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_header_decode </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const uint8_t *&#160;</td>
+ <td class="paramname"><em>in</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Decode Stream Header. </p>
+<p>options-&gt;backward_size is always set to LZMA_VLI_UNKNOWN. This is to help comparing Stream Flags from Stream Header and Stream Footer with <a class="el" href="stream__flags_8h.html#a3e25ca4205021302882a696283d45263" title="Compare two lzma_stream_flags structures.">lzma_stream_flags_compare()</a>.</p>
+<dl class="section note"><dt>Note</dt><dd>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 <em>first</em> 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 <a class="el" href="stream__flags_8h.html#ae03198e464f0d296e601ff841e100805" title="Decode Stream Header.">lzma_stream_header_decode()</a> when decoding non-first Stream.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">options</td><td>Target for the decoded Stream Header options. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer of LZMA_STREAM_HEADER_SIZE bytes.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Decoding was successful.</li>
+<li>LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given buffer cannot be Stream Header.</li>
+<li>LZMA_DATA_ERROR: CRC32 doesn't match, thus the header is corrupt.</li>
+<li>LZMA_OPTIONS_ERROR: Unsupported options are present in the header. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="aa92a383f85753bb79ee23227fa68186c" name="aa92a383f85753bb79ee23227fa68186c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa92a383f85753bb79ee23227fa68186c">&#9670;&#160;</a></span>lzma_stream_footer_decode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_footer_decode </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *&#160;</td>
+ <td class="paramname"><em>options</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const uint8_t *&#160;</td>
+ <td class="paramname"><em>in</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Decode Stream Footer. </p>
+<dl class="section note"><dt>Note</dt><dd>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.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">options</td><td>Target for the decoded Stream Footer options. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer of LZMA_STREAM_HEADER_SIZE bytes.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Decoding was successful.</li>
+<li>LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given buffer cannot be Stream Footer.</li>
+<li>LZMA_DATA_ERROR: CRC32 doesn't match, thus the Stream Footer is corrupt.</li>
+<li>LZMA_OPTIONS_ERROR: Unsupported options are present in Stream Footer. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+<a id="a3e25ca4205021302882a696283d45263" name="a3e25ca4205021302882a696283d45263"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3e25ca4205021302882a696283d45263">&#9670;&#160;</a></span>lzma_stream_flags_compare()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_stream_flags_compare </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *&#160;</td>
+ <td class="paramname"><em>a</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *&#160;</td>
+ <td class="paramname"><em>b</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compare two <a class="el" href="structlzma__stream__flags.html" title="Options for encoding/decoding Stream Header and Stream Footer.">lzma_stream_flags</a> structures. </p>
+<p>backward_size values are compared only if both are not LZMA_VLI_UNKNOWN.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">a</td><td>Pointer to <a class="el" href="structlzma__stream__flags.html" title="Options for encoding/decoding Stream Header and Stream Footer.">lzma_stream_flags</a> structure </td></tr>
+ <tr><td class="paramname">b</td><td>Pointer to <a class="el" href="structlzma__stream__flags.html" title="Options for encoding/decoding Stream Header and Stream Footer.">lzma_stream_flags</a> structure</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Possible lzma_ret values:<ul>
+<li>LZMA_OK: Both are equal. If either had backward_size set to LZMA_VLI_UNKNOWN, backward_size values were not compared or validated.</li>
+<li>LZMA_DATA_ERROR: The structures differ.</li>
+<li>LZMA_OPTIONS_ERROR: version in either structure is greater than the maximum supported version (currently zero).</li>
+<li>LZMA_PROG_ERROR: Invalid value, e.g. invalid check or backward_size. </li>
+</ul>
+</dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/structlzma__allocator.html b/doc/api/structlzma__allocator.html
new file mode 100644
index 00000000..53a43ff6
--- /dev/null
+++ b/doc/api/structlzma__allocator.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma_allocator Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle"><div class="title">lzma_allocator Struct Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Custom functions for memory handling.
+ <a href="structlzma__allocator.html#details">More...</a></p>
+
+<p><code>#include &lt;base.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:aba5c4369af94cc9943423b49171462ec"><td class="memItemLeft" align="right" valign="top">void *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__allocator.html#aba5c4369af94cc9943423b49171462ec">alloc</a> )(void *<a class="el" href="structlzma__allocator.html#aab293a5007a93299cc97ee8b5fb81268">opaque</a>, size_t nmemb, size_t size)</td></tr>
+<tr class="memdesc:aba5c4369af94cc9943423b49171462ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to a custom memory allocation function. <br /></td></tr>
+<tr class="separator:aba5c4369af94cc9943423b49171462ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3726deffd08393934263c04660208009"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__allocator.html#a3726deffd08393934263c04660208009">free</a> )(void *<a class="el" href="structlzma__allocator.html#aab293a5007a93299cc97ee8b5fb81268">opaque</a>, void *ptr)</td></tr>
+<tr class="memdesc:a3726deffd08393934263c04660208009"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to a custom memory freeing function. <br /></td></tr>
+<tr class="separator:a3726deffd08393934263c04660208009"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aab293a5007a93299cc97ee8b5fb81268"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__allocator.html#aab293a5007a93299cc97ee8b5fb81268">opaque</a></td></tr>
+<tr class="memdesc:aab293a5007a93299cc97ee8b5fb81268"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer passed to .<a class="el" href="structlzma__allocator.html#aba5c4369af94cc9943423b49171462ec" title="Pointer to a custom memory allocation function.">alloc()</a> and .<a class="el" href="structlzma__allocator.html#a3726deffd08393934263c04660208009" title="Pointer to a custom memory freeing function.">free()</a> <br /></td></tr>
+<tr class="separator:aab293a5007a93299cc97ee8b5fb81268"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Custom functions for memory handling. </p>
+<p>A pointer to <a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> may be passed via <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> structure to liblzma, and some advanced functions take a pointer to <a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> as a separate function argument. The library will use the functions specified in <a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> for memory handling instead of the default malloc() and <a class="el" href="structlzma__allocator.html#a3726deffd08393934263c04660208009" title="Pointer to a custom memory freeing function.">free()</a>. C++ users should note that the custom memory handling functions must not throw exceptions.</p>
+<p>Single-threaded mode only: liblzma doesn't make an internal copy of <a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a>. 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).</p>
+<p>Multithreaded mode: liblzma might internally store pointers to the <a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> given via the <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> structure. The application must not change the allocator pointer in <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> or the contents of the pointed <a class="el" href="structlzma__allocator.html" title="Custom functions for memory handling.">lzma_allocator</a> structure until <a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308" title="Free memory allocated for the coder data structures.">lzma_end()</a> has been used to free the memory associated with that <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a>. The allocation functions might be called simultaneously from multiple threads, and thus they must be thread safe. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="aba5c4369af94cc9943423b49171462ec" name="aba5c4369af94cc9943423b49171462ec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aba5c4369af94cc9943423b49171462ec">&#9670;&#160;</a></span>alloc</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void *(* lzma_allocator::alloc) (void *<a class="el" href="structlzma__allocator.html#aab293a5007a93299cc97ee8b5fb81268">opaque</a>, size_t nmemb, size_t size)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Pointer to a custom memory allocation function. </p>
+<p>If you don't want a custom allocator, but still want custom <a class="el" href="structlzma__allocator.html#a3726deffd08393934263c04660208009" title="Pointer to a custom memory freeing function.">free()</a>, set this to NULL and liblzma will use the standard malloc().</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">opaque</td><td><a class="el" href="structlzma__allocator.html#aab293a5007a93299cc97ee8b5fb81268" title="Pointer passed to .alloc() and .free()">lzma_allocator.opaque</a> (see below) </td></tr>
+ <tr><td class="paramname">nmemb</td><td>Number 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. </td></tr>
+ <tr><td class="paramname">size</td><td>Size of an element in bytes. liblzma never sets this to zero.</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>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.</dd></dl>
+<p>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.</p>
+<dl class="section note"><dt>Note</dt><dd>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. </dd></dl>
+
+</div>
+</div>
+<a id="a3726deffd08393934263c04660208009" name="a3726deffd08393934263c04660208009"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3726deffd08393934263c04660208009">&#9670;&#160;</a></span>free</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void(* lzma_allocator::free) (void *<a class="el" href="structlzma__allocator.html#aab293a5007a93299cc97ee8b5fb81268">opaque</a>, void *ptr)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Pointer to a custom memory freeing function. </p>
+<p>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 <a class="el" href="structlzma__allocator.html#a3726deffd08393934263c04660208009" title="Pointer to a custom memory freeing function.">free()</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">opaque</td><td><a class="el" href="structlzma__allocator.html#aab293a5007a93299cc97ee8b5fb81268" title="Pointer passed to .alloc() and .free()">lzma_allocator.opaque</a> (see below) </td></tr>
+ <tr><td class="paramname">ptr</td><td>Pointer returned by <a class="el" href="structlzma__allocator.html#aba5c4369af94cc9943423b49171462ec" title="Pointer to a custom memory allocation function.">lzma_allocator.alloc()</a>, or when it is set to NULL, a pointer returned by the standard malloc(). </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a id="aab293a5007a93299cc97ee8b5fb81268" name="aab293a5007a93299cc97ee8b5fb81268"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aab293a5007a93299cc97ee8b5fb81268">&#9670;&#160;</a></span>opaque</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* lzma_allocator::opaque</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Pointer passed to .<a class="el" href="structlzma__allocator.html#aba5c4369af94cc9943423b49171462ec" title="Pointer to a custom memory allocation function.">alloc()</a> and .<a class="el" href="structlzma__allocator.html#a3726deffd08393934263c04660208009" title="Pointer to a custom memory freeing function.">free()</a> </p>
+<p>opaque is passed as the first argument to <a class="el" href="structlzma__allocator.html#aba5c4369af94cc9943423b49171462ec" title="Pointer to a custom memory allocation function.">lzma_allocator.alloc()</a> and <a class="el" href="structlzma__allocator.html#a3726deffd08393934263c04660208009" title="Pointer to a custom memory freeing function.">lzma_allocator.free()</a>. This intended to ease implementing custom memory allocation functions for use with liblzma.</p>
+<p>If you don't need this, you should set this to NULL. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>lzma/<a class="el" href="base_8h.html">base.h</a></li>
+</ul>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/structlzma__block.html b/doc/api/structlzma__block.html
new file mode 100644
index 00000000..5ba6a868
--- /dev/null
+++ b/doc/api/structlzma__block.html
@@ -0,0 +1,353 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma_block Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle"><div class="title">lzma_block Struct Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Options for the Block and Block Header encoders and decoders.
+ <a href="structlzma__block.html#details">More...</a></p>
+
+<p><code>#include &lt;block.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:ac3936a5b0ec3f9b8f9c7ad68e7d149a5"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__block.html#ac3936a5b0ec3f9b8f9c7ad68e7d149a5">version</a></td></tr>
+<tr class="memdesc:ac3936a5b0ec3f9b8f9c7ad68e7d149a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Block format version. <br /></td></tr>
+<tr class="separator:ac3936a5b0ec3f9b8f9c7ad68e7d149a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6689c4f7524b2c05772a2d6151138610"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__block.html#a6689c4f7524b2c05772a2d6151138610">header_size</a></td></tr>
+<tr class="memdesc:a6689c4f7524b2c05772a2d6151138610"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the Block Header field in bytes. <br /></td></tr>
+<tr class="separator:a6689c4f7524b2c05772a2d6151138610"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a80cd9d3025991db4a476ce7588f853e6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__block.html#a80cd9d3025991db4a476ce7588f853e6">check</a></td></tr>
+<tr class="memdesc:a80cd9d3025991db4a476ce7588f853e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of integrity Check. <br /></td></tr>
+<tr class="separator:a80cd9d3025991db4a476ce7588f853e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8383d489c9ffea8af390669a105c74e5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__block.html#a8383d489c9ffea8af390669a105c74e5">compressed_size</a></td></tr>
+<tr class="memdesc:a8383d489c9ffea8af390669a105c74e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the Compressed Data in bytes. <br /></td></tr>
+<tr class="separator:a8383d489c9ffea8af390669a105c74e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17362d38d1946dd16a9686557ec19a94"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__block.html#a17362d38d1946dd16a9686557ec19a94">uncompressed_size</a></td></tr>
+<tr class="memdesc:a17362d38d1946dd16a9686557ec19a94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uncompressed Size in bytes. <br /></td></tr>
+<tr class="separator:a17362d38d1946dd16a9686557ec19a94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5900e517e6e0a473a3184074ae7defd1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__block.html#a5900e517e6e0a473a3184074ae7defd1">filters</a></td></tr>
+<tr class="memdesc:a5900e517e6e0a473a3184074ae7defd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Array of filters. <br /></td></tr>
+<tr class="separator:a5900e517e6e0a473a3184074ae7defd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a25e9bf1bb1699017694b18ca24f965d2"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__block.html#a25e9bf1bb1699017694b18ca24f965d2">raw_check</a> [<a class="el" href="check_8h.html#a379e931cf86351ab1d97896cda9abbe0">LZMA_CHECK_SIZE_MAX</a>]</td></tr>
+<tr class="memdesc:a25e9bf1bb1699017694b18ca24f965d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Raw value stored in the Check field. <br /></td></tr>
+<tr class="separator:a25e9bf1bb1699017694b18ca24f965d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a516ac9cc63bc1a4fadd9fbfc189a206b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__block.html#a516ac9cc63bc1a4fadd9fbfc189a206b">ignore_check</a></td></tr>
+<tr class="memdesc:a516ac9cc63bc1a4fadd9fbfc189a206b"><td class="mdescLeft">&#160;</td><td class="mdescRight">A flag to Block decoder to not verify the Check field. <br /></td></tr>
+<tr class="separator:a516ac9cc63bc1a4fadd9fbfc189a206b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Options for the Block and Block Header encoders and decoders. </p>
+<p>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 <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="ac3936a5b0ec3f9b8f9c7ad68e7d149a5" name="ac3936a5b0ec3f9b8f9c7ad68e7d149a5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac3936a5b0ec3f9b8f9c7ad68e7d149a5">&#9670;&#160;</a></span>version</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_block::version</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Block format version. </p>
+<p>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:</p><ul>
+<li>liblzma &gt;= 5.0.0: version = 0 is supported.</li>
+<li>liblzma &gt;= 5.1.4beta: Support for version = 1 was added, which adds the ignore_check member.</li>
+</ul>
+<p>If version is greater than one, most Block related functions will return LZMA_OPTIONS_ERROR (<a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a> works with any version value).</p>
+<p>Read by:</p><ul>
+<li><a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a></li>
+<li><a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a></li>
+<li><a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a></li>
+<li><a class="el" href="block_8h.html#a6c3e102d76db06a07126a569abc6e2bc" title="Validate and set Compressed Size according to Unpadded Size.">lzma_block_compressed_size()</a></li>
+<li><a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30" title="Calculate Unpadded Size.">lzma_block_unpadded_size()</a></li>
+<li><a class="el" href="block_8h.html#a694424f9dfdd5151e01debac1c501fa9" title="Calculate the total encoded size of a Block.">lzma_block_total_size()</a></li>
+<li><a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a></li>
+<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
+<li><a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54" title="Single-call .xz Block encoder.">lzma_block_buffer_encode()</a></li>
+<li><a class="el" href="block_8h.html#a5a260f634ccd5f54fb98f570d8d92d8c" title="Single-call uncompressed .xz Block encoder.">lzma_block_uncomp_encode()</a></li>
+<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a></li>
+</ul>
+<p>Written by:</p><ul>
+<li><a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a> </li>
+</ul>
+
+</div>
+</div>
+<a id="a6689c4f7524b2c05772a2d6151138610" name="a6689c4f7524b2c05772a2d6151138610"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6689c4f7524b2c05772a2d6151138610">&#9670;&#160;</a></span>header_size</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_block::header_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Size of the Block Header field in bytes. </p>
+<p>This is always a multiple of four.</p>
+<p>Read by:</p><ul>
+<li><a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a></li>
+<li><a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a></li>
+<li><a class="el" href="block_8h.html#a6c3e102d76db06a07126a569abc6e2bc" title="Validate and set Compressed Size according to Unpadded Size.">lzma_block_compressed_size()</a></li>
+<li><a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30" title="Calculate Unpadded Size.">lzma_block_unpadded_size()</a></li>
+<li><a class="el" href="block_8h.html#a694424f9dfdd5151e01debac1c501fa9" title="Calculate the total encoded size of a Block.">lzma_block_total_size()</a></li>
+<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
+<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a></li>
+</ul>
+<p>Written by:</p><ul>
+<li><a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a></li>
+<li><a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54" title="Single-call .xz Block encoder.">lzma_block_buffer_encode()</a></li>
+<li><a class="el" href="block_8h.html#a5a260f634ccd5f54fb98f570d8d92d8c" title="Single-call uncompressed .xz Block encoder.">lzma_block_uncomp_encode()</a> </li>
+</ul>
+
+</div>
+</div>
+<a id="a80cd9d3025991db4a476ce7588f853e6" name="a80cd9d3025991db4a476ce7588f853e6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a80cd9d3025991db4a476ce7588f853e6">&#9670;&#160;</a></span>check</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> lzma_block::check</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Type of integrity Check. </p>
+<p>The Check ID is not stored into the Block Header, thus its value must be provided also when decoding.</p>
+<p>Read by:</p><ul>
+<li><a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a></li>
+<li><a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a></li>
+<li><a class="el" href="block_8h.html#a6c3e102d76db06a07126a569abc6e2bc" title="Validate and set Compressed Size according to Unpadded Size.">lzma_block_compressed_size()</a></li>
+<li><a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30" title="Calculate Unpadded Size.">lzma_block_unpadded_size()</a></li>
+<li><a class="el" href="block_8h.html#a694424f9dfdd5151e01debac1c501fa9" title="Calculate the total encoded size of a Block.">lzma_block_total_size()</a></li>
+<li><a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a></li>
+<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
+<li><a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54" title="Single-call .xz Block encoder.">lzma_block_buffer_encode()</a></li>
+<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a> </li>
+</ul>
+
+</div>
+</div>
+<a id="a8383d489c9ffea8af390669a105c74e5" name="a8383d489c9ffea8af390669a105c74e5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8383d489c9ffea8af390669a105c74e5">&#9670;&#160;</a></span>compressed_size</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_block::compressed_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Size of the Compressed Data in bytes. </p>
+<p>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.</p>
+<p>Decoding: If this is not LZMA_VLI_UNKNOWN, Block decoder will verify that the size of the Compressed Data field matches compressed_size.</p>
+<p>Usually you don't know this value when encoding in streamed mode, and thus cannot write this field into the Block Header.</p>
+<p>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:</p>
+<ul>
+<li>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.</li>
+<li>Call <a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a> to see how much space you need to reserve for the Block Header.</li>
+<li>Encode the Block using <a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a> and <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>. It sets compressed_size to the correct value.</li>
+<li>Use <a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a> to encode the Block Header. Because space was reserved in the first step, you don't need to call <a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a> anymore, because due to reserving, header_size has to be big enough. If it is "too big", <a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a> will add enough Header Padding to make Block Header to match the size specified by header_size.</li>
+</ul>
+<p>Read by:</p><ul>
+<li><a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a></li>
+<li><a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a></li>
+<li><a class="el" href="block_8h.html#a6c3e102d76db06a07126a569abc6e2bc" title="Validate and set Compressed Size according to Unpadded Size.">lzma_block_compressed_size()</a></li>
+<li><a class="el" href="block_8h.html#a412d5605280fa29befae1b89e344bf30" title="Calculate Unpadded Size.">lzma_block_unpadded_size()</a></li>
+<li><a class="el" href="block_8h.html#a694424f9dfdd5151e01debac1c501fa9" title="Calculate the total encoded size of a Block.">lzma_block_total_size()</a></li>
+<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
+<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a></li>
+</ul>
+<p>Written by:</p><ul>
+<li><a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a></li>
+<li><a class="el" href="block_8h.html#a6c3e102d76db06a07126a569abc6e2bc" title="Validate and set Compressed Size according to Unpadded Size.">lzma_block_compressed_size()</a></li>
+<li><a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a></li>
+<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
+<li><a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54" title="Single-call .xz Block encoder.">lzma_block_buffer_encode()</a></li>
+<li><a class="el" href="block_8h.html#a5a260f634ccd5f54fb98f570d8d92d8c" title="Single-call uncompressed .xz Block encoder.">lzma_block_uncomp_encode()</a></li>
+<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a> </li>
+</ul>
+
+</div>
+</div>
+<a id="a17362d38d1946dd16a9686557ec19a94" name="a17362d38d1946dd16a9686557ec19a94"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a17362d38d1946dd16a9686557ec19a94">&#9670;&#160;</a></span>uncompressed_size</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_block::uncompressed_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Uncompressed Size in bytes. </p>
+<p>This is handled very similarly to compressed_size above.</p>
+<p>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.</p>
+<p>Read by:</p><ul>
+<li><a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a></li>
+<li><a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a></li>
+<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
+<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a></li>
+</ul>
+<p>Written by:</p><ul>
+<li><a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a></li>
+<li><a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a></li>
+<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
+<li><a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54" title="Single-call .xz Block encoder.">lzma_block_buffer_encode()</a></li>
+<li><a class="el" href="block_8h.html#a5a260f634ccd5f54fb98f570d8d92d8c" title="Single-call uncompressed .xz Block encoder.">lzma_block_uncomp_encode()</a></li>
+<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a> </li>
+</ul>
+
+</div>
+</div>
+<a id="a5900e517e6e0a473a3184074ae7defd1" name="a5900e517e6e0a473a3184074ae7defd1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5900e517e6e0a473a3184074ae7defd1">&#9670;&#160;</a></span>filters</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="structlzma__filter.html">lzma_filter</a>* lzma_block::filters</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Array of filters. </p>
+<p>There can be 1-4 filters. The end of the array is marked with .id = LZMA_VLI_UNKNOWN.</p>
+<p>Read by:</p><ul>
+<li><a class="el" href="block_8h.html#ae9b47abc872d0b02c2da9d3fa5a7dacd" title="Calculate Block Header Size.">lzma_block_header_size()</a></li>
+<li><a class="el" href="block_8h.html#a0eedbd6331d5708ea963260e6f2a92d0" title="Encode Block Header.">lzma_block_header_encode()</a></li>
+<li><a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a></li>
+<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
+<li><a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54" title="Single-call .xz Block encoder.">lzma_block_buffer_encode()</a></li>
+<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a></li>
+</ul>
+<p>Written by:</p><ul>
+<li><a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a>: 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.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>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. </dd></dl>
+
+</div>
+</div>
+<a id="a25e9bf1bb1699017694b18ca24f965d2" name="a25e9bf1bb1699017694b18ca24f965d2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a25e9bf1bb1699017694b18ca24f965d2">&#9670;&#160;</a></span>raw_check</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t lzma_block::raw_check[<a class="el" href="check_8h.html#a379e931cf86351ab1d97896cda9abbe0">LZMA_CHECK_SIZE_MAX</a>]</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Raw value stored in the Check field. </p>
+<p>After successful coding, the first lzma_check_size(check) bytes of this array contain the raw value stored in the Check field.</p>
+<p>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.</p>
+<p>Written by:</p><ul>
+<li><a class="el" href="block_8h.html#a2218a49025a0b44f9a6f9d6d24359359" title="Initialize .xz Block encoder.">lzma_block_encoder()</a></li>
+<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
+<li><a class="el" href="block_8h.html#af415fa5130ab64e8760e9c39e856fa54" title="Single-call .xz Block encoder.">lzma_block_buffer_encode()</a></li>
+<li><a class="el" href="block_8h.html#a5a260f634ccd5f54fb98f570d8d92d8c" title="Single-call uncompressed .xz Block encoder.">lzma_block_uncomp_encode()</a></li>
+<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a> </li>
+</ul>
+
+</div>
+</div>
+<a id="a516ac9cc63bc1a4fadd9fbfc189a206b" name="a516ac9cc63bc1a4fadd9fbfc189a206b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a516ac9cc63bc1a4fadd9fbfc189a206b">&#9670;&#160;</a></span>ignore_check</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#abbc819c74b484c846825ae1388a50a59">lzma_bool</a> lzma_block::ignore_check</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>A flag to Block decoder to not verify the Check field. </p>
+<p>This member is supported by liblzma &gt;= 5.1.4beta if .version &gt;= 1.</p>
+<p>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.)</p>
+<p>If .version &gt;= 1, read by:</p><ul>
+<li><a class="el" href="block_8h.html#aa92c73b2a228efe921fa2376aa7adc92" title="Initialize .xz Block decoder.">lzma_block_decoder()</a></li>
+<li><a class="el" href="block_8h.html#a0c6eb869d91b08f68648b1aa7a32ee9f" title="Single-call .xz Block decoder.">lzma_block_buffer_decode()</a></li>
+</ul>
+<p>Written by (.version is ignored):</p><ul>
+<li><a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a> always sets this to false </li>
+</ul>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>lzma/<a class="el" href="block_8h.html">block.h</a></li>
+</ul>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/structlzma__filter.html b/doc/api/structlzma__filter.html
new file mode 100644
index 00000000..2a4835b7
--- /dev/null
+++ b/doc/api/structlzma__filter.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma_filter Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle"><div class="title">lzma_filter Struct Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Filter options.
+ <a href="structlzma__filter.html#details">More...</a></p>
+
+<p><code>#include &lt;filter.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:aef1d9709759f39e61db77547b2326929"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__filter.html#aef1d9709759f39e61db77547b2326929">id</a></td></tr>
+<tr class="memdesc:aef1d9709759f39e61db77547b2326929"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter ID. <br /></td></tr>
+<tr class="separator:aef1d9709759f39e61db77547b2326929"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10dfbaa1601793657d12320bef933ee6"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__filter.html#a10dfbaa1601793657d12320bef933ee6">options</a></td></tr>
+<tr class="memdesc:a10dfbaa1601793657d12320bef933ee6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to filter-specific options structure. <br /></td></tr>
+<tr class="separator:a10dfbaa1601793657d12320bef933ee6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Filter options. </p>
+<p>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 <a class="el" href="structlzma__filter.html" title="Filter options.">lzma_filter</a> structure, while most functions expect a filter chain.</p>
+<p>A filter chain is indicated with an array of <a class="el" href="structlzma__filter.html" title="Filter options.">lzma_filter</a> 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 <a class="el" href="block_8h.html#a7f5487c21a7b36a8bd17be36074d43c9" title="Decode Block Header.">lzma_block_header_decode()</a> from <a class="el" href="block_8h.html" title=".xz Block handling">block.h</a>, because a filter array that is too small would make liblzma write past the end of the array. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="aef1d9709759f39e61db77547b2326929" name="aef1d9709759f39e61db77547b2326929"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aef1d9709759f39e61db77547b2326929">&#9670;&#160;</a></span>id</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_filter::id</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Filter ID. </p>
+<p>Use constants whose name begin with 'LZMA_FILTER_' to specify different filters. In an array of <a class="el" href="structlzma__filter.html" title="Filter options.">lzma_filter</a> structures, use LZMA_VLI_UNKNOWN to indicate end of filters.</p>
+<dl class="section note"><dt>Note</dt><dd>This is not an enum, because on some systems enums cannot be 64-bit. </dd></dl>
+
+</div>
+</div>
+<a id="a10dfbaa1601793657d12320bef933ee6" name="a10dfbaa1601793657d12320bef933ee6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a10dfbaa1601793657d12320bef933ee6">&#9670;&#160;</a></span>options</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* lzma_filter::options</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Pointer to filter-specific options structure. </p>
+<p>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. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>lzma/<a class="el" href="filter_8h.html">filter.h</a></li>
+</ul>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/structlzma__index__iter.html b/doc/api/structlzma__index__iter.html
new file mode 100644
index 00000000..0e44f8e4
--- /dev/null
+++ b/doc/api/structlzma__index__iter.html
@@ -0,0 +1,413 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma_index_iter Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle"><div class="title">lzma_index_iter Struct Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Iterator to get information about Blocks and Streams.
+ <a href="structlzma__index__iter.html#details">More...</a></p>
+
+<p><code>#include &lt;index.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:ad92e1ccf25428b1a207dc1bdb4a45b2c"><td class="memItemLeft" ><a id="ad92e1ccf25428b1a207dc1bdb4a45b2c" name="ad92e1ccf25428b1a207dc1bdb4a45b2c"></a>
+struct {&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a49a96c22ae9b653df6263a7fe271807a"><td class="memItemLeft" >&#160;&#160;&#160;const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a> *&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a223a046bcf09077a6e720967682deeae">flags</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="memdesc:a49a96c22ae9b653df6263a7fe271807a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to Stream Flags. <a href="structlzma__index__iter.html#a223a046bcf09077a6e720967682deeae">More...</a><br /></td></tr>
+<tr class="separator:a49a96c22ae9b653df6263a7fe271807a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae8d181cfac5188dd4a678d4115fbbcb2"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a115a307dbc778a9de296376dc39c7b23">number</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="memdesc:ae8d181cfac5188dd4a678d4115fbbcb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stream number in the lzma_index. <a href="structlzma__index__iter.html#a115a307dbc778a9de296376dc39c7b23">More...</a><br /></td></tr>
+<tr class="separator:ae8d181cfac5188dd4a678d4115fbbcb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeff742c77bbdb23c7f31f6d179b47f31"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#abc6ee9be23e54f31aed07382c8caaf7c">block_count</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="memdesc:aeff742c77bbdb23c7f31f6d179b47f31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of Blocks in the Stream. <a href="structlzma__index__iter.html#abc6ee9be23e54f31aed07382c8caaf7c">More...</a><br /></td></tr>
+<tr class="separator:aeff742c77bbdb23c7f31f6d179b47f31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a286009ecb802eb150adb6c6ad1a50918"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a426705df8dde4b094a42f91ea20a46ac">compressed_offset</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="memdesc:a286009ecb802eb150adb6c6ad1a50918"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compressed start offset of this Stream. <a href="structlzma__index__iter.html#a426705df8dde4b094a42f91ea20a46ac">More...</a><br /></td></tr>
+<tr class="separator:a286009ecb802eb150adb6c6ad1a50918"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1203268640946888544f0af52c19a66"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#abd374b748b4a42e122b90841709609bc">uncompressed_offset</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="memdesc:af1203268640946888544f0af52c19a66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uncompressed start offset of this Stream. <a href="structlzma__index__iter.html#abd374b748b4a42e122b90841709609bc">More...</a><br /></td></tr>
+<tr class="separator:af1203268640946888544f0af52c19a66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e8737468f3bc6b779c78f45fe6c561c"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a6e73b1f37e3fcf1e9491e4a53b2c52c7">compressed_size</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="memdesc:a6e8737468f3bc6b779c78f45fe6c561c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compressed size of this Stream. <a href="structlzma__index__iter.html#a6e73b1f37e3fcf1e9491e4a53b2c52c7">More...</a><br /></td></tr>
+<tr class="separator:a6e8737468f3bc6b779c78f45fe6c561c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a591f6115029d2655276d7709a604cddc"><td class="memItemLeft" >
+&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<b>uncompressed_size</b>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="memdesc:a591f6115029d2655276d7709a604cddc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uncompressed size of this Stream. <br /></td></tr>
+<tr class="separator:a591f6115029d2655276d7709a604cddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a081a8169e2014da2f8c8539120809cb5"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a48cfc856f283fe00b0df37402e012818">padding</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="memdesc:a081a8169e2014da2f8c8539120809cb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of Stream Padding after this Stream. <a href="structlzma__index__iter.html#a48cfc856f283fe00b0df37402e012818">More...</a><br /></td></tr>
+<tr class="separator:a081a8169e2014da2f8c8539120809cb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad92e1ccf25428b1a207dc1bdb4a45b2c"><td class="memItemLeft" valign="top">}&#160;</td><td class="memItemRight" valign="bottom"><b>stream</b>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="separator:ad92e1ccf25428b1a207dc1bdb4a45b2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5092ff3be1ff1066585a9066dc5fd2b4"><td class="memItemLeft" ><a id="a5092ff3be1ff1066585a9066dc5fd2b4" name="a5092ff3be1ff1066585a9066dc5fd2b4"></a>
+struct {&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7f332b95b77bd86ea2b3f86fb30375bd"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#abe5333de53562189012d5ed084c0ef98">number_in_file</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="memdesc:a7f332b95b77bd86ea2b3f86fb30375bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Block number in the file. <a href="structlzma__index__iter.html#abe5333de53562189012d5ed084c0ef98">More...</a><br /></td></tr>
+<tr class="separator:a7f332b95b77bd86ea2b3f86fb30375bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc9701ec21240e8d2701afe55d742167"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a26436e75d4c2b5dd8d1de24140d8003e">compressed_file_offset</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="memdesc:abc9701ec21240e8d2701afe55d742167"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compressed start offset of this Block. <a href="structlzma__index__iter.html#a26436e75d4c2b5dd8d1de24140d8003e">More...</a><br /></td></tr>
+<tr class="separator:abc9701ec21240e8d2701afe55d742167"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae5593002adfeef61b9325b33a4eb687d"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a2f3ecf341b5dc043e9673759b8ff47b9">uncompressed_file_offset</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="memdesc:ae5593002adfeef61b9325b33a4eb687d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uncompressed start offset of this Block. <a href="structlzma__index__iter.html#a2f3ecf341b5dc043e9673759b8ff47b9">More...</a><br /></td></tr>
+<tr class="separator:ae5593002adfeef61b9325b33a4eb687d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a19a8e58670a1b22612428d5da300f2d2"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a35a752d344ff5d35d2a858a20bd6e5e8">number_in_stream</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="memdesc:a19a8e58670a1b22612428d5da300f2d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Block number in this Stream. <a href="structlzma__index__iter.html#a35a752d344ff5d35d2a858a20bd6e5e8">More...</a><br /></td></tr>
+<tr class="separator:a19a8e58670a1b22612428d5da300f2d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4111d3bc81eb08bf42421814cd76ef33"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a578bba553c43dc59a5e4032d4f6c89a3">compressed_stream_offset</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="memdesc:a4111d3bc81eb08bf42421814cd76ef33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compressed start offset of this Block. <a href="structlzma__index__iter.html#a578bba553c43dc59a5e4032d4f6c89a3">More...</a><br /></td></tr>
+<tr class="separator:a4111d3bc81eb08bf42421814cd76ef33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba1991fc46f4ebd0a3ac0bec43d36d56"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a0fc4959fab08e1a6a4902c728c735a99">uncompressed_stream_offset</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="memdesc:aba1991fc46f4ebd0a3ac0bec43d36d56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uncompressed start offset of this Block. <a href="structlzma__index__iter.html#a0fc4959fab08e1a6a4902c728c735a99">More...</a><br /></td></tr>
+<tr class="separator:aba1991fc46f4ebd0a3ac0bec43d36d56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8de4ea7cdf905303a31d851e222595db"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#aafc48408ed40060a84ecd66bae5e1b23">uncompressed_size</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="memdesc:a8de4ea7cdf905303a31d851e222595db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uncompressed size of this Block. <a href="structlzma__index__iter.html#aafc48408ed40060a84ecd66bae5e1b23">More...</a><br /></td></tr>
+<tr class="separator:a8de4ea7cdf905303a31d851e222595db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1eeb164c66c723607b3ee7ed68b4c22a"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#a9f4e405b9884be08e3a35bc06e3e15df">unpadded_size</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="memdesc:a1eeb164c66c723607b3ee7ed68b4c22a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unpadded size of this Block. <a href="structlzma__index__iter.html#a9f4e405b9884be08e3a35bc06e3e15df">More...</a><br /></td></tr>
+<tr class="separator:a1eeb164c66c723607b3ee7ed68b4c22a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a340f9c08cd05d0931468ab976050ffa2"><td class="memItemLeft" >&#160;&#160;&#160;<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;&#160;&#160;<a class="el" href="structlzma__index__iter.html#ae164ca3d7492dcf5883769c38baac30e">total_size</a>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="memdesc:a340f9c08cd05d0931468ab976050ffa2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Total compressed size. <a href="structlzma__index__iter.html#ae164ca3d7492dcf5883769c38baac30e">More...</a><br /></td></tr>
+<tr class="separator:a340f9c08cd05d0931468ab976050ffa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5092ff3be1ff1066585a9066dc5fd2b4"><td class="memItemLeft" valign="top">}&#160;</td><td class="memItemRight" valign="bottom"><b>block</b>&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
+<tr class="separator:a5092ff3be1ff1066585a9066dc5fd2b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Iterator to get information about Blocks and Streams. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="a223a046bcf09077a6e720967682deeae" name="a223a046bcf09077a6e720967682deeae"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a223a046bcf09077a6e720967682deeae">&#9670;&#160;</a></span>flags</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="structlzma__stream__flags.html">lzma_stream_flags</a>* lzma_index_iter::flags</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Pointer to Stream Flags. </p>
+<p>This is NULL if Stream Flags have not been set for this Stream with <a class="el" href="index_8h.html#a79a19669237f19f0b11c9f3be80a62b4" title="Set the Stream Flags.">lzma_index_stream_flags()</a>. </p>
+
+</div>
+</div>
+<a id="a115a307dbc778a9de296376dc39c7b23" name="a115a307dbc778a9de296376dc39c7b23"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a115a307dbc778a9de296376dc39c7b23">&#9670;&#160;</a></span>number</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::number</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Stream number in the lzma_index. </p>
+<p>The first Stream is 1. </p>
+
+</div>
+</div>
+<a id="abc6ee9be23e54f31aed07382c8caaf7c" name="abc6ee9be23e54f31aed07382c8caaf7c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abc6ee9be23e54f31aed07382c8caaf7c">&#9670;&#160;</a></span>block_count</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::block_count</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Number of Blocks in the Stream. </p>
+<p>If this is zero, the block structure below has undefined values. </p>
+
+</div>
+</div>
+<a id="a426705df8dde4b094a42f91ea20a46ac" name="a426705df8dde4b094a42f91ea20a46ac"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a426705df8dde4b094a42f91ea20a46ac">&#9670;&#160;</a></span>compressed_offset</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::compressed_offset</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compressed start offset of this Stream. </p>
+<p>The offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file). </p>
+
+</div>
+</div>
+<a id="abd374b748b4a42e122b90841709609bc" name="abd374b748b4a42e122b90841709609bc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abd374b748b4a42e122b90841709609bc">&#9670;&#160;</a></span>uncompressed_offset</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::uncompressed_offset</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Uncompressed start offset of this Stream. </p>
+<p>The offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file). </p>
+
+</div>
+</div>
+<a id="a6e73b1f37e3fcf1e9491e4a53b2c52c7" name="a6e73b1f37e3fcf1e9491e4a53b2c52c7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6e73b1f37e3fcf1e9491e4a53b2c52c7">&#9670;&#160;</a></span>compressed_size</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::compressed_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compressed size of this Stream. </p>
+<p>This includes all headers except the possible Stream Padding after this Stream. </p>
+
+</div>
+</div>
+<a id="aafc48408ed40060a84ecd66bae5e1b23" name="aafc48408ed40060a84ecd66bae5e1b23"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aafc48408ed40060a84ecd66bae5e1b23">&#9670;&#160;</a></span>uncompressed_size</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::uncompressed_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Uncompressed size of this Stream. </p>
+<p>Uncompressed size of this Block.</p>
+<p>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. </p>
+
+</div>
+</div>
+<a id="a48cfc856f283fe00b0df37402e012818" name="a48cfc856f283fe00b0df37402e012818"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a48cfc856f283fe00b0df37402e012818">&#9670;&#160;</a></span>padding</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::padding</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Size of Stream Padding after this Stream. </p>
+<p>If it hasn't been set with <a class="el" href="index_8h.html#a3ed82f96c688f3c953f6509b6f4e2ef3" title="Set the amount of Stream Padding.">lzma_index_stream_padding()</a>, this defaults to zero. Stream Padding is always a multiple of four bytes. </p>
+
+</div>
+</div>
+<a id="abe5333de53562189012d5ed084c0ef98" name="abe5333de53562189012d5ed084c0ef98"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abe5333de53562189012d5ed084c0ef98">&#9670;&#160;</a></span>number_in_file</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::number_in_file</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Block number in the file. </p>
+<p>The first Block is 1. </p>
+
+</div>
+</div>
+<a id="a26436e75d4c2b5dd8d1de24140d8003e" name="a26436e75d4c2b5dd8d1de24140d8003e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a26436e75d4c2b5dd8d1de24140d8003e">&#9670;&#160;</a></span>compressed_file_offset</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::compressed_file_offset</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compressed start offset of this Block. </p>
+<p>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. </p>
+
+</div>
+</div>
+<a id="a2f3ecf341b5dc043e9673759b8ff47b9" name="a2f3ecf341b5dc043e9673759b8ff47b9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2f3ecf341b5dc043e9673759b8ff47b9">&#9670;&#160;</a></span>uncompressed_file_offset</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::uncompressed_file_offset</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Uncompressed start offset of this Block. </p>
+<p>This offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file).</p>
+<p>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. </p>
+
+</div>
+</div>
+<a id="a35a752d344ff5d35d2a858a20bd6e5e8" name="a35a752d344ff5d35d2a858a20bd6e5e8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a35a752d344ff5d35d2a858a20bd6e5e8">&#9670;&#160;</a></span>number_in_stream</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::number_in_stream</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Block number in this Stream. </p>
+<p>The first Block is 1. </p>
+
+</div>
+</div>
+<a id="a578bba553c43dc59a5e4032d4f6c89a3" name="a578bba553c43dc59a5e4032d4f6c89a3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a578bba553c43dc59a5e4032d4f6c89a3">&#9670;&#160;</a></span>compressed_stream_offset</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::compressed_stream_offset</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Compressed start offset of this Block. </p>
+<p>This offset is relative to the beginning of the Stream containing this Block. </p>
+
+</div>
+</div>
+<a id="a0fc4959fab08e1a6a4902c728c735a99" name="a0fc4959fab08e1a6a4902c728c735a99"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0fc4959fab08e1a6a4902c728c735a99">&#9670;&#160;</a></span>uncompressed_stream_offset</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::uncompressed_stream_offset</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Uncompressed start offset of this Block. </p>
+<p>This offset is relative to the beginning of the Stream containing this Block. </p>
+
+</div>
+</div>
+<a id="a9f4e405b9884be08e3a35bc06e3e15df" name="a9f4e405b9884be08e3a35bc06e3e15df"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9f4e405b9884be08e3a35bc06e3e15df">&#9670;&#160;</a></span>unpadded_size</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::unpadded_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Unpadded size of this Block. </p>
+<p>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. </p>
+
+</div>
+</div>
+<a id="ae164ca3d7492dcf5883769c38baac30e" name="ae164ca3d7492dcf5883769c38baac30e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae164ca3d7492dcf5883769c38baac30e">&#9670;&#160;</a></span>total_size</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_index_iter::total_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Total compressed size. </p>
+<p>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. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>lzma/<a class="el" href="index_8h.html">index.h</a></li>
+</ul>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/structlzma__mt.html b/doc/api/structlzma__mt.html
new file mode 100644
index 00000000..37fdbcdc
--- /dev/null
+++ b/doc/api/structlzma__mt.html
@@ -0,0 +1,262 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma_mt Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle"><div class="title">lzma_mt Struct Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Multithreading options.
+ <a href="structlzma__mt.html#details">More...</a></p>
+
+<p><code>#include &lt;container.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a1c2fe028f547bf58b48b5199557d9a9f"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__mt.html#a1c2fe028f547bf58b48b5199557d9a9f">flags</a></td></tr>
+<tr class="memdesc:a1c2fe028f547bf58b48b5199557d9a9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flags. <br /></td></tr>
+<tr class="separator:a1c2fe028f547bf58b48b5199557d9a9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a881761f858dbda33c697e74acde0be70"><td class="memItemLeft" align="right" valign="top"><a id="a881761f858dbda33c697e74acde0be70" name="a881761f858dbda33c697e74acde0be70"></a>
+uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>threads</b></td></tr>
+<tr class="memdesc:a881761f858dbda33c697e74acde0be70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of worker threads to use. <br /></td></tr>
+<tr class="separator:a881761f858dbda33c697e74acde0be70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20cdc7865266ccb88da36a6e68f84d15"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__mt.html#a20cdc7865266ccb88da36a6e68f84d15">block_size</a></td></tr>
+<tr class="memdesc:a20cdc7865266ccb88da36a6e68f84d15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encoder only: Maximum uncompressed size of a Block. <br /></td></tr>
+<tr class="separator:a20cdc7865266ccb88da36a6e68f84d15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a298992bf7d2154d8dd814560219d10c2"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__mt.html#a298992bf7d2154d8dd814560219d10c2">timeout</a></td></tr>
+<tr class="memdesc:a298992bf7d2154d8dd814560219d10c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Timeout to allow <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> to return early. <br /></td></tr>
+<tr class="separator:a298992bf7d2154d8dd814560219d10c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab3883b5644752cdd15f01387d58dd050"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__mt.html#ab3883b5644752cdd15f01387d58dd050">preset</a></td></tr>
+<tr class="memdesc:ab3883b5644752cdd15f01387d58dd050"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encoder only: Compression preset. <br /></td></tr>
+<tr class="separator:ab3883b5644752cdd15f01387d58dd050"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad43a62ef2178c76405e5be0ece7a98b4"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structlzma__filter.html">lzma_filter</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__mt.html#ad43a62ef2178c76405e5be0ece7a98b4">filters</a></td></tr>
+<tr class="memdesc:ad43a62ef2178c76405e5be0ece7a98b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encoder only: Filter chain (alternative to a preset) <br /></td></tr>
+<tr class="separator:ad43a62ef2178c76405e5be0ece7a98b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae38846e8aca5b20d2a86a2364283b730"><td class="memItemLeft" align="right" valign="top"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__mt.html#ae38846e8aca5b20d2a86a2364283b730">check</a></td></tr>
+<tr class="memdesc:ae38846e8aca5b20d2a86a2364283b730"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encoder only: Integrity check type. <br /></td></tr>
+<tr class="separator:ae38846e8aca5b20d2a86a2364283b730"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a7fb0c7c2db350e09e77477bc3c9509"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__mt.html#a5a7fb0c7c2db350e09e77477bc3c9509">memlimit_threading</a></td></tr>
+<tr class="memdesc:a5a7fb0c7c2db350e09e77477bc3c9509"><td class="mdescLeft">&#160;</td><td class="mdescRight">Memory usage limit to reduce the number of threads. <br /></td></tr>
+<tr class="separator:a5a7fb0c7c2db350e09e77477bc3c9509"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab5e0b530d4c572c7a2361aabbad656aa"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__mt.html#ab5e0b530d4c572c7a2361aabbad656aa">memlimit_stop</a></td></tr>
+<tr class="memdesc:ab5e0b530d4c572c7a2361aabbad656aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Memory usage limit that should never be exceeded. <br /></td></tr>
+<tr class="separator:ab5e0b530d4c572c7a2361aabbad656aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Multithreading options. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="a1c2fe028f547bf58b48b5199557d9a9f" name="a1c2fe028f547bf58b48b5199557d9a9f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1c2fe028f547bf58b48b5199557d9a9f">&#9670;&#160;</a></span>flags</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_mt::flags</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Flags. </p>
+<p>Set this to zero if no flags are wanted.</p>
+<p>Encoder: No flags are currently supported.</p>
+<p>Decoder: Bitwise-or of zero or more of the decoder flags:</p><ul>
+<li>LZMA_TELL_NO_CHECK</li>
+<li>LZMA_TELL_UNSUPPORTED_CHECK</li>
+<li>LZMA_TELL_ANY_CHECK</li>
+<li>LZMA_IGNORE_CHECK</li>
+<li>LZMA_CONCATENATED</li>
+<li>LZMA_FAIL_FAST </li>
+</ul>
+
+</div>
+</div>
+<a id="a20cdc7865266ccb88da36a6e68f84d15" name="a20cdc7865266ccb88da36a6e68f84d15"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a20cdc7865266ccb88da36a6e68f84d15">&#9670;&#160;</a></span>block_size</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t lzma_mt::block_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Encoder only: Maximum uncompressed size of a Block. </p>
+<p>The encoder will start a new .xz Block every block_size bytes. Using LZMA_FULL_FLUSH or LZMA_FULL_BARRIER with <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> the caller may tell liblzma to start a new Block earlier.</p>
+<p>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.</p>
+<p>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.</p>
+<p>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. </p>
+
+</div>
+</div>
+<a id="a298992bf7d2154d8dd814560219d10c2" name="a298992bf7d2154d8dd814560219d10c2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a298992bf7d2154d8dd814560219d10c2">&#9670;&#160;</a></span>timeout</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_mt::timeout</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Timeout to allow <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> to return early. </p>
+<p>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.</p>
+<p>In single-threaded mode, <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> 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 <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> to take even tens of seconds, which isn't acceptable in all applications.</p>
+<p>To avoid very long blocking times in <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a>, a timeout (in milliseconds) may be set here. If <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> 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.</p>
+<p>If long blocking times are acceptable, set timeout to a special value of 0. This will disable the timeout mechanism and will make <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> block until all the input is consumed or the output buffer has been filled.</p>
+<dl class="section note"><dt>Note</dt><dd>Even with a timeout, <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> might sometimes take a long time to return. No timing guarantees are made. </dd></dl>
+
+</div>
+</div>
+<a id="ab3883b5644752cdd15f01387d58dd050" name="ab3883b5644752cdd15f01387d58dd050"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab3883b5644752cdd15f01387d58dd050">&#9670;&#160;</a></span>preset</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_mt::preset</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Encoder only: Compression preset. </p>
+<p>The preset is set just like with <a class="el" href="container_8h.html#acbdad999c544872f0f5d242f0d1a4ed4" title="Initialize .xz Stream encoder using a preset number.">lzma_easy_encoder()</a>. The preset is ignored if filters below is non-NULL. </p>
+
+</div>
+</div>
+<a id="ad43a62ef2178c76405e5be0ece7a98b4" name="ad43a62ef2178c76405e5be0ece7a98b4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad43a62ef2178c76405e5be0ece7a98b4">&#9670;&#160;</a></span>filters</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="structlzma__filter.html">lzma_filter</a>* lzma_mt::filters</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Encoder only: Filter chain (alternative to a preset) </p>
+<p>If this is NULL, the preset above is used. Otherwise the preset is ignored and the filter chain specified here is used. </p>
+
+</div>
+</div>
+<a id="ae38846e8aca5b20d2a86a2364283b730" name="ae38846e8aca5b20d2a86a2364283b730"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae38846e8aca5b20d2a86a2364283b730">&#9670;&#160;</a></span>check</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> lzma_mt::check</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Encoder only: Integrity check type. </p>
+<p>See <a class="el" href="check_8h.html" title="Integrity checks.">check.h</a> for available checks. The xz command line tool defaults to LZMA_CHECK_CRC64, which is a good choice if you are unsure. </p>
+
+</div>
+</div>
+<a id="a5a7fb0c7c2db350e09e77477bc3c9509" name="a5a7fb0c7c2db350e09e77477bc3c9509"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5a7fb0c7c2db350e09e77477bc3c9509">&#9670;&#160;</a></span>memlimit_threading</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t lzma_mt::memlimit_threading</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Memory usage limit to reduce the number of threads. </p>
+<p>Encoder: Ignored.</p>
+<p>Decoder:</p>
+<p>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 <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> return LZMA_MEMLIMIT_ERROR. To truly cap the memory usage, see memlimit_stop below.</p>
+<p>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 <a class="el" href="hardware_8h.html#a85363e453b34272a9f26c9fdffb041ee" title="Get the total amount of physical memory (RAM) in bytes.">lzma_physmem()</a> / 4 as a starting point. Setting this limit will never prevent decompression of a file; this will only reduce the number of threads.</p>
+<p>If memlimit_threading is greater than memlimit_stop, then the value of memlimit_stop will be used for both. </p>
+
+</div>
+</div>
+<a id="ab5e0b530d4c572c7a2361aabbad656aa" name="ab5e0b530d4c572c7a2361aabbad656aa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab5e0b530d4c572c7a2361aabbad656aa">&#9670;&#160;</a></span>memlimit_stop</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t lzma_mt::memlimit_stop</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Memory usage limit that should never be exceeded. </p>
+<p>Encoder: Ignored.</p>
+<p>Decoder: If decompressing will need more than this amount of memory even in the single-threaded mode, then <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> will return LZMA_MEMLIMIT_ERROR. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>lzma/<a class="el" href="container_8h.html">container.h</a></li>
+</ul>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/structlzma__options__bcj.html b/doc/api/structlzma__options__bcj.html
new file mode 100644
index 00000000..50f60c14
--- /dev/null
+++ b/doc/api/structlzma__options__bcj.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma_options_bcj Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle"><div class="title">lzma_options_bcj Struct Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Options for BCJ filters.
+ <a href="structlzma__options__bcj.html#details">More...</a></p>
+
+<p><code>#include &lt;bcj.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a3f5a3c62cd82ce89433684f12ed096ac"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__bcj.html#a3f5a3c62cd82ce89433684f12ed096ac">start_offset</a></td></tr>
+<tr class="memdesc:a3f5a3c62cd82ce89433684f12ed096ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start offset for conversions. <br /></td></tr>
+<tr class="separator:a3f5a3c62cd82ce89433684f12ed096ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Options for BCJ filters. </p>
+<p>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.</p>
+<p>If options with non-default values have been specified when encoding, the same options must also be specified when decoding.</p>
+<dl class="section note"><dt>Note</dt><dd>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. </dd></dl>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="a3f5a3c62cd82ce89433684f12ed096ac" name="a3f5a3c62cd82ce89433684f12ed096ac"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3f5a3c62cd82ce89433684f12ed096ac">&#9670;&#160;</a></span>start_offset</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_options_bcj::start_offset</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Start offset for conversions. </p>
+<p>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.</p>
+<p>When the pointer to options is NULL, the default value (zero) is used. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>lzma/<a class="el" href="bcj_8h.html">bcj.h</a></li>
+</ul>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/structlzma__options__delta.html b/doc/api/structlzma__options__delta.html
new file mode 100644
index 00000000..d6b1ad28
--- /dev/null
+++ b/doc/api/structlzma__options__delta.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma_options_delta Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle"><div class="title">lzma_options_delta Struct Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Options for the Delta filter.
+ <a href="structlzma__options__delta.html#details">More...</a></p>
+
+<p><code>#include &lt;delta.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:af3f1ece7f8c472f4a794953b414c7cd7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="delta_8h.html#a04d84d7fa6cefdc219b6e2e96ff36fe1">lzma_delta_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__delta.html#af3f1ece7f8c472f4a794953b414c7cd7">type</a></td></tr>
+<tr class="separator:af3f1ece7f8c472f4a794953b414c7cd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a31b4b0b5a2462cb9433c2663b8a62790"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__delta.html#a31b4b0b5a2462cb9433c2663b8a62790">dist</a></td></tr>
+<tr class="memdesc:a31b4b0b5a2462cb9433c2663b8a62790"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delta distance. <br /></td></tr>
+<tr class="separator:a31b4b0b5a2462cb9433c2663b8a62790"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Options for the Delta filter. </p>
+<p>These options are needed by both encoder and decoder. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="af3f1ece7f8c472f4a794953b414c7cd7" name="af3f1ece7f8c472f4a794953b414c7cd7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af3f1ece7f8c472f4a794953b414c7cd7">&#9670;&#160;</a></span>type</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="delta_8h.html#a04d84d7fa6cefdc219b6e2e96ff36fe1">lzma_delta_type</a> lzma_options_delta::type</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>For now, this must always be LZMA_DELTA_TYPE_BYTE. </p>
+
+</div>
+</div>
+<a id="a31b4b0b5a2462cb9433c2663b8a62790" name="a31b4b0b5a2462cb9433c2663b8a62790"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a31b4b0b5a2462cb9433c2663b8a62790">&#9670;&#160;</a></span>dist</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_options_delta::dist</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Delta distance. </p>
+<p>With the only currently supported type, LZMA_DELTA_TYPE_BYTE, the distance is as bytes.</p>
+<p>Examples:</p><ul>
+<li>16-bit stereo audio: distance = 4 bytes</li>
+<li>24-bit RGB image data: distance = 3 bytes </li>
+</ul>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>lzma/<a class="el" href="delta_8h.html">delta.h</a></li>
+</ul>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/structlzma__options__lzma.html b/doc/api/structlzma__options__lzma.html
new file mode 100644
index 00000000..931f987a
--- /dev/null
+++ b/doc/api/structlzma__options__lzma.html
@@ -0,0 +1,369 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma_options_lzma Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle"><div class="title">lzma_options_lzma Struct Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Options specific to the LZMA1 and LZMA2 filters.
+ <a href="structlzma__options__lzma.html#details">More...</a></p>
+
+<p><code>#include &lt;lzma12.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:aeb3f86002405a1191af86def46fca5ad"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#aeb3f86002405a1191af86def46fca5ad">dict_size</a></td></tr>
+<tr class="memdesc:aeb3f86002405a1191af86def46fca5ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dictionary size in bytes. <br /></td></tr>
+<tr class="separator:aeb3f86002405a1191af86def46fca5ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a16a58c1ee3ec18c820d5cb03dde3739a"><td class="memItemLeft" align="right" valign="top">const uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#a16a58c1ee3ec18c820d5cb03dde3739a">preset_dict</a></td></tr>
+<tr class="memdesc:a16a58c1ee3ec18c820d5cb03dde3739a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to an initial dictionary. <br /></td></tr>
+<tr class="separator:a16a58c1ee3ec18c820d5cb03dde3739a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a655ad4cce9e4dac9cf2a5c8daaa629e0"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#a655ad4cce9e4dac9cf2a5c8daaa629e0">preset_dict_size</a></td></tr>
+<tr class="memdesc:a655ad4cce9e4dac9cf2a5c8daaa629e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the preset dictionary. <br /></td></tr>
+<tr class="separator:a655ad4cce9e4dac9cf2a5c8daaa629e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a95f6188e5b5f05c50ec463a315df3585"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#a95f6188e5b5f05c50ec463a315df3585">lc</a></td></tr>
+<tr class="memdesc:a95f6188e5b5f05c50ec463a315df3585"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of literal context bits. <br /></td></tr>
+<tr class="separator:a95f6188e5b5f05c50ec463a315df3585"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0fe9c54e808fce3090b6994d95fe41fe"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#a0fe9c54e808fce3090b6994d95fe41fe">lp</a></td></tr>
+<tr class="memdesc:a0fe9c54e808fce3090b6994d95fe41fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of literal position bits. <br /></td></tr>
+<tr class="separator:a0fe9c54e808fce3090b6994d95fe41fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acae107b3d3e9d0d4fe16103be22f4408"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#acae107b3d3e9d0d4fe16103be22f4408">pb</a></td></tr>
+<tr class="memdesc:acae107b3d3e9d0d4fe16103be22f4408"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of position bits. <br /></td></tr>
+<tr class="separator:acae107b3d3e9d0d4fe16103be22f4408"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d711df9bda046fd3899abf21fa250d5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866">lzma_mode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#a1d711df9bda046fd3899abf21fa250d5">mode</a></td></tr>
+<tr class="separator:a1d711df9bda046fd3899abf21fa250d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0352ea7f8b6a43b745a44f6cb4e2d263"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#a0352ea7f8b6a43b745a44f6cb4e2d263">nice_len</a></td></tr>
+<tr class="memdesc:a0352ea7f8b6a43b745a44f6cb4e2d263"><td class="mdescLeft">&#160;</td><td class="mdescRight">Nice length of a match. <br /></td></tr>
+<tr class="separator:a0352ea7f8b6a43b745a44f6cb4e2d263"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa99612cd52259093007f33513882dcd0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80">lzma_match_finder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#aa99612cd52259093007f33513882dcd0">mf</a></td></tr>
+<tr class="separator:aa99612cd52259093007f33513882dcd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4226f686e8c9f6288595fe23d0e15713"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#a4226f686e8c9f6288595fe23d0e15713">depth</a></td></tr>
+<tr class="memdesc:a4226f686e8c9f6288595fe23d0e15713"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum search depth in the match finder. <br /></td></tr>
+<tr class="separator:a4226f686e8c9f6288595fe23d0e15713"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ade251d13ef46bcacb4e052b83693878c"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#ade251d13ef46bcacb4e052b83693878c">ext_flags</a></td></tr>
+<tr class="memdesc:ade251d13ef46bcacb4e052b83693878c"><td class="mdescLeft">&#160;</td><td class="mdescRight">For LZMA_FILTER_LZMA1EXT: Extended flags. <br /></td></tr>
+<tr class="separator:ade251d13ef46bcacb4e052b83693878c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a971da8385dcebd01e60235afb3b717f9"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#a971da8385dcebd01e60235afb3b717f9">ext_size_low</a></td></tr>
+<tr class="memdesc:a971da8385dcebd01e60235afb3b717f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">For LZMA_FILTER_LZMA1EXT: Uncompressed size (low bits) <br /></td></tr>
+<tr class="separator:a971da8385dcebd01e60235afb3b717f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae5b3c2375c43ddfacf093980385fb9e3"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__options__lzma.html#ae5b3c2375c43ddfacf093980385fb9e3">ext_size_high</a></td></tr>
+<tr class="memdesc:ae5b3c2375c43ddfacf093980385fb9e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">For LZMA_FILTER_LZMA1EXT: Uncompressed size (high bits) <br /></td></tr>
+<tr class="separator:ae5b3c2375c43ddfacf093980385fb9e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Options specific to the LZMA1 and LZMA2 filters. </p>
+<p>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. <a class="el" href="lzma12_8h.html#aa62c28944fe3575653a4c25780400d77" title="Set a compression preset to lzma_options_lzma structure.">lzma_lzma_preset()</a> can be used to get a good starting point.</p>
+<p>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. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="aeb3f86002405a1191af86def46fca5ad" name="aeb3f86002405a1191af86def46fca5ad"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aeb3f86002405a1191af86def46fca5ad">&#9670;&#160;</a></span>dict_size</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_options_lzma::dict_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Dictionary size in bytes. </p>
+<p>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.</p>
+<p>Maximum size of the dictionary depends on multiple things:</p><ul>
+<li>Memory usage limit</li>
+<li>Available address space (not a problem on 64-bit systems)</li>
+<li>Selected match finder (encoder only)</li>
+</ul>
+<p>Currently the maximum dictionary size for encoding is 1.5 GiB (i.e. (UINT32_C(1) &lt;&lt; 30) + (UINT32_C(1) &lt;&lt; 29)) even on 64-bit systems for certain match finder implementation reasons. In the future, there may be match finders that support bigger dictionaries.</p>
+<p>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.</p>
+<p>Because extremely small dictionaries sizes would have unneeded overhead in the decoder, the minimum dictionary size is 4096 bytes.</p>
+<dl class="section note"><dt>Note</dt><dd>When decoding, too big dictionary does no other harm than wasting memory. </dd></dl>
+
+</div>
+</div>
+<a id="a16a58c1ee3ec18c820d5cb03dde3739a" name="a16a58c1ee3ec18c820d5cb03dde3739a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a16a58c1ee3ec18c820d5cb03dde3739a">&#9670;&#160;</a></span>preset_dict</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const uint8_t* lzma_options_lzma::preset_dict</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Pointer to an initial dictionary. </p>
+<p>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.</p>
+<p>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. </p>
+
+</div>
+</div>
+<a id="a655ad4cce9e4dac9cf2a5c8daaa629e0" name="a655ad4cce9e4dac9cf2a5c8daaa629e0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a655ad4cce9e4dac9cf2a5c8daaa629e0">&#9670;&#160;</a></span>preset_dict_size</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_options_lzma::preset_dict_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Size of the preset dictionary. </p>
+<p>Specifies the size of the preset dictionary. If the size is bigger than dict_size, only the last dict_size bytes are processed.</p>
+<p>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). </p>
+
+</div>
+</div>
+<a id="a95f6188e5b5f05c50ec463a315df3585" name="a95f6188e5b5f05c50ec463a315df3585"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a95f6188e5b5f05c50ec463a315df3585">&#9670;&#160;</a></span>lc</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_options_lzma::lc</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Number of literal context bits. </p>
+<p>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.</p>
+<p>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.</p>
+<p>There is a limit that applies to literal context bits and literal position bits together: lc + lp &lt;= 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.</p>
+<p>There may be LZMA1 streams that have lc + lp &gt; 4 (maximum possible lc would be 8). It is not possible to decode such streams with liblzma. </p>
+
+</div>
+</div>
+<a id="a0fe9c54e808fce3090b6994d95fe41fe" name="a0fe9c54e808fce3090b6994d95fe41fe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0fe9c54e808fce3090b6994d95fe41fe">&#9670;&#160;</a></span>lp</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_options_lzma::lp</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Number of literal position bits. </p>
+<p>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. </p>
+
+</div>
+</div>
+<a id="acae107b3d3e9d0d4fe16103be22f4408" name="acae107b3d3e9d0d4fe16103be22f4408"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acae107b3d3e9d0d4fe16103be22f4408">&#9670;&#160;</a></span>pb</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_options_lzma::pb</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Number of position bits. </p>
+<p>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.</p>
+<p>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.</p>
+<p>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. </p>
+
+</div>
+</div>
+<a id="a1d711df9bda046fd3899abf21fa250d5" name="a1d711df9bda046fd3899abf21fa250d5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1d711df9bda046fd3899abf21fa250d5">&#9670;&#160;</a></span>mode</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="lzma12_8h.html#a1032316e3075c2c8086fb17104b91866">lzma_mode</a> lzma_options_lzma::mode</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Compression mode </p>
+
+</div>
+</div>
+<a id="a0352ea7f8b6a43b745a44f6cb4e2d263" name="a0352ea7f8b6a43b745a44f6cb4e2d263"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0352ea7f8b6a43b745a44f6cb4e2d263">&#9670;&#160;</a></span>nice_len</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_options_lzma::nice_len</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Nice length of a match. </p>
+<p>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.)</p>
+<p>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.</p>
+<p>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. </p>
+
+</div>
+</div>
+<a id="aa99612cd52259093007f33513882dcd0" name="aa99612cd52259093007f33513882dcd0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa99612cd52259093007f33513882dcd0">&#9670;&#160;</a></span>mf</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="lzma12_8h.html#acf740075f86fa61dc408d6d0dbf8fa80">lzma_match_finder</a> lzma_options_lzma::mf</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Match finder ID </p>
+
+</div>
+</div>
+<a id="a4226f686e8c9f6288595fe23d0e15713" name="a4226f686e8c9f6288595fe23d0e15713"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4226f686e8c9f6288595fe23d0e15713">&#9670;&#160;</a></span>depth</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_options_lzma::depth</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Maximum search depth in the match finder. </p>
+<p>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</p><ul>
+<li>a match of at least nice_len bytes long is found;</li>
+<li>all match candidates from the hash chain or binary tree have been checked; or</li>
+<li>maximum search depth is reached.</li>
+</ul>
+<p>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.</p>
+<p>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).</p>
+<p>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. </p>
+
+</div>
+</div>
+<a id="ade251d13ef46bcacb4e052b83693878c" name="ade251d13ef46bcacb4e052b83693878c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ade251d13ef46bcacb4e052b83693878c">&#9670;&#160;</a></span>ext_flags</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_options_lzma::ext_flags</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>For LZMA_FILTER_LZMA1EXT: Extended flags. </p>
+<p>This is used only with LZMA_FILTER_LZMA1EXT.</p>
+<p>Currently only one flag is supported, LZMA_LZMA1EXT_ALLOW_EOPM:</p>
+<ul>
+<li>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.</li>
+<li><p class="startli">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.</p>
+<p class="startli">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.</p>
+<p class="startli">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). </p>
+</li>
+</ul>
+
+</div>
+</div>
+<a id="a971da8385dcebd01e60235afb3b717f9" name="a971da8385dcebd01e60235afb3b717f9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a971da8385dcebd01e60235afb3b717f9">&#9670;&#160;</a></span>ext_size_low</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_options_lzma::ext_size_low</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>For LZMA_FILTER_LZMA1EXT: Uncompressed size (low bits) </p>
+<p>The 64-bit uncompressed size is needed for decompression with LZMA_FILTER_LZMA1EXT. The size is ignored by the encoder.</p>
+<p>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.)</p>
+<p>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.</p>
+<p>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.) </p>
+
+</div>
+</div>
+<a id="ae5b3c2375c43ddfacf093980385fb9e3" name="ae5b3c2375c43ddfacf093980385fb9e3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae5b3c2375c43ddfacf093980385fb9e3">&#9670;&#160;</a></span>ext_size_high</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_options_lzma::ext_size_high</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>For LZMA_FILTER_LZMA1EXT: Uncompressed size (high bits) </p>
+<p>This holds the most significant 32 bits of the uncompressed size. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>lzma/<a class="el" href="lzma12_8h.html">lzma12.h</a></li>
+</ul>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/structlzma__stream.html b/doc/api/structlzma__stream.html
new file mode 100644
index 00000000..c221de61
--- /dev/null
+++ b/doc/api/structlzma__stream.html
@@ -0,0 +1,257 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma_stream Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle"><div class="title">lzma_stream Struct Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Passing data to and from liblzma.
+ <a href="structlzma__stream.html#details">More...</a></p>
+
+<p><code>#include &lt;base.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a72fdc738c793f07a5c29715aa57802cf"><td class="memItemLeft" align="right" valign="top">const uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html#a72fdc738c793f07a5c29715aa57802cf">next_in</a></td></tr>
+<tr class="separator:a72fdc738c793f07a5c29715aa57802cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb680ecea31910cbda1d7a6ad4f191c0"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html#abb680ecea31910cbda1d7a6ad4f191c0">avail_in</a></td></tr>
+<tr class="separator:abb680ecea31910cbda1d7a6ad4f191c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a411e1755d6185756caefabc3932c7b"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html#a1a411e1755d6185756caefabc3932c7b">total_in</a></td></tr>
+<tr class="separator:a1a411e1755d6185756caefabc3932c7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a14ee64ed636ddcb775edf87e2b9f42ec"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html#a14ee64ed636ddcb775edf87e2b9f42ec">next_out</a></td></tr>
+<tr class="separator:a14ee64ed636ddcb775edf87e2b9f42ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ff28ea4e39148723c19f59811627904"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html#a5ff28ea4e39148723c19f59811627904">avail_out</a></td></tr>
+<tr class="separator:a5ff28ea4e39148723c19f59811627904"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a80d703ffdfd7661e344fe7b61ff737fa"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html#a80d703ffdfd7661e344fe7b61ff737fa">total_out</a></td></tr>
+<tr class="separator:a80d703ffdfd7661e344fe7b61ff737fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4eb2f3e87e32cc4bea613898b0bd353f"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html#a4eb2f3e87e32cc4bea613898b0bd353f">allocator</a></td></tr>
+<tr class="memdesc:a4eb2f3e87e32cc4bea613898b0bd353f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Custom memory allocation functions. <br /></td></tr>
+<tr class="separator:a4eb2f3e87e32cc4bea613898b0bd353f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a209da54c2fb5dea40ad011c8408300d0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#ab1a60127c640135687a5bcc232cec906">lzma_internal</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html#a209da54c2fb5dea40ad011c8408300d0">internal</a></td></tr>
+<tr class="separator:a209da54c2fb5dea40ad011c8408300d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af7c43a61f3dfeb0b9c8487b7f275054e"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream.html#af7c43a61f3dfeb0b9c8487b7f275054e">seek_pos</a></td></tr>
+<tr class="memdesc:af7c43a61f3dfeb0b9c8487b7f275054e"><td class="mdescLeft">&#160;</td><td class="mdescRight">New seek input position for LZMA_SEEK_NEEDED. <br /></td></tr>
+<tr class="separator:af7c43a61f3dfeb0b9c8487b7f275054e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Passing data to and from liblzma. </p>
+<p>The <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> structure is used for</p><ul>
+<li>passing pointers to input and output buffers to liblzma;</li>
+<li>defining custom memory handler functions; and</li>
+<li>holding a pointer to coder-specific internal data structures.</li>
+</ul>
+<p>Typical usage:</p>
+<ul>
+<li>After allocating <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> (on stack or with malloc()), it must be initialized to LZMA_STREAM_INIT (see LZMA_STREAM_INIT for details).</li>
+<li>Initialize a coder to the <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a>, for example by using <a class="el" href="container_8h.html#acbdad999c544872f0f5d242f0d1a4ed4" title="Initialize .xz Stream encoder using a preset number.">lzma_easy_encoder()</a> or <a class="el" href="container_8h.html#a21cbebf2771617bb1e956385cfb353e3" title="Decode .xz, .lzma, and .lz (lzip) files with autodetection.">lzma_auto_decoder()</a>. Some notes:<ul>
+<li>In contrast to zlib, strm-&gt;next_in and strm-&gt;next_out are ignored by all initialization functions, thus it is safe to not initialize them yet.</li>
+<li>The initialization functions always set strm-&gt;total_in and strm-&gt;total_out to zero.</li>
+<li>If the initialization function fails, no memory is left allocated that would require freeing with <a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308" title="Free memory allocated for the coder data structures.">lzma_end()</a> even if some memory was associated with the <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> structure when the initialization function was called.</li>
+</ul>
+</li>
+<li>Use <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> to do the actual work.</li>
+<li>Once the coding has been finished, the existing <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> can be reused. It is OK to reuse <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> with different initialization function without calling <a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308" title="Free memory allocated for the coder data structures.">lzma_end()</a> first. Old allocations are automatically freed.</li>
+<li>Finally, use <a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308" title="Free memory allocated for the coder data structures.">lzma_end()</a> to free the allocated memory. <a class="el" href="base_8h.html#a854ff37464ae1225febf14db1af43308" title="Free memory allocated for the coder data structures.">lzma_end()</a> never frees the <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> structure itself.</li>
+</ul>
+<p>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 <a class="el" href="base_8h.html#ab6447cd68eeecbd6b88f21daeb8ce751" title="Get progress information.">lzma_get_progress()</a>. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="a72fdc738c793f07a5c29715aa57802cf" name="a72fdc738c793f07a5c29715aa57802cf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a72fdc738c793f07a5c29715aa57802cf">&#9670;&#160;</a></span>next_in</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const uint8_t* lzma_stream::next_in</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Pointer to the next input byte. </p>
+
+</div>
+</div>
+<a id="abb680ecea31910cbda1d7a6ad4f191c0" name="abb680ecea31910cbda1d7a6ad4f191c0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abb680ecea31910cbda1d7a6ad4f191c0">&#9670;&#160;</a></span>avail_in</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">size_t lzma_stream::avail_in</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Number of available input bytes in next_in. </p>
+
+</div>
+</div>
+<a id="a1a411e1755d6185756caefabc3932c7b" name="a1a411e1755d6185756caefabc3932c7b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1a411e1755d6185756caefabc3932c7b">&#9670;&#160;</a></span>total_in</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t lzma_stream::total_in</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Total number of bytes read by liblzma. </p>
+
+</div>
+</div>
+<a id="a14ee64ed636ddcb775edf87e2b9f42ec" name="a14ee64ed636ddcb775edf87e2b9f42ec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a14ee64ed636ddcb775edf87e2b9f42ec">&#9670;&#160;</a></span>next_out</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint8_t* lzma_stream::next_out</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Pointer to the next output position. </p>
+
+</div>
+</div>
+<a id="a5ff28ea4e39148723c19f59811627904" name="a5ff28ea4e39148723c19f59811627904"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5ff28ea4e39148723c19f59811627904">&#9670;&#160;</a></span>avail_out</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">size_t lzma_stream::avail_out</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Amount of free space in next_out. </p>
+
+</div>
+</div>
+<a id="a80d703ffdfd7661e344fe7b61ff737fa" name="a80d703ffdfd7661e344fe7b61ff737fa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a80d703ffdfd7661e344fe7b61ff737fa">&#9670;&#160;</a></span>total_out</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t lzma_stream::total_out</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Total number of bytes written by liblzma. </p>
+
+</div>
+</div>
+<a id="a4eb2f3e87e32cc4bea613898b0bd353f" name="a4eb2f3e87e32cc4bea613898b0bd353f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4eb2f3e87e32cc4bea613898b0bd353f">&#9670;&#160;</a></span>allocator</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const <a class="el" href="structlzma__allocator.html">lzma_allocator</a>* lzma_stream::allocator</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Custom memory allocation functions. </p>
+<p>In most cases this is NULL which makes liblzma use the standard malloc() and free().</p>
+<dl class="section note"><dt>Note</dt><dd>In 5.0.x this is not a const pointer. </dd></dl>
+
+</div>
+</div>
+<a id="a209da54c2fb5dea40ad011c8408300d0" name="a209da54c2fb5dea40ad011c8408300d0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a209da54c2fb5dea40ad011c8408300d0">&#9670;&#160;</a></span>internal</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#ab1a60127c640135687a5bcc232cec906">lzma_internal</a>* lzma_stream::internal</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Internal state is not visible to applications. </p>
+
+</div>
+</div>
+<a id="af7c43a61f3dfeb0b9c8487b7f275054e" name="af7c43a61f3dfeb0b9c8487b7f275054e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af7c43a61f3dfeb0b9c8487b7f275054e">&#9670;&#160;</a></span>seek_pos</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint64_t lzma_stream::seek_pos</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>New seek input position for LZMA_SEEK_NEEDED. </p>
+<p>When <a class="el" href="base_8h.html#a28cc09bc422d5ba1e0187c9f2af5d957" title="Encode or decode data.">lzma_code()</a> 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 <a class="el" href="structlzma__stream.html" title="Passing data to and from liblzma.">lzma_stream</a> was initialized.</p>
+<p>In all other situations the value of this variable is undefined. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>lzma/<a class="el" href="base_8h.html">base.h</a></li>
+</ul>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/structlzma__stream__flags.html b/doc/api/structlzma__stream__flags.html
new file mode 100644
index 00000000..bdecf321
--- /dev/null
+++ b/doc/api/structlzma__stream__flags.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma_stream_flags Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle"><div class="title">lzma_stream_flags Struct Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Options for encoding/decoding Stream Header and Stream Footer.
+ <a href="structlzma__stream__flags.html#details">More...</a></p>
+
+<p><code>#include &lt;stream_flags.h&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a61e9151869d5b77c868aaa4958e74d10"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream__flags.html#a61e9151869d5b77c868aaa4958e74d10">version</a></td></tr>
+<tr class="memdesc:a61e9151869d5b77c868aaa4958e74d10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stream Flags format version. <br /></td></tr>
+<tr class="separator:a61e9151869d5b77c868aaa4958e74d10"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaa65ed7a55a098f829f04dba25d0f212"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream__flags.html#aaa65ed7a55a098f829f04dba25d0f212">backward_size</a></td></tr>
+<tr class="memdesc:aaa65ed7a55a098f829f04dba25d0f212"><td class="mdescLeft">&#160;</td><td class="mdescRight">Backward Size. <br /></td></tr>
+<tr class="separator:aaa65ed7a55a098f829f04dba25d0f212"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab1052ea7047c8d67f127f33278166647"><td class="memItemLeft" align="right" valign="top"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlzma__stream__flags.html#ab1052ea7047c8d67f127f33278166647">check</a></td></tr>
+<tr class="memdesc:ab1052ea7047c8d67f127f33278166647"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check ID. <br /></td></tr>
+<tr class="separator:ab1052ea7047c8d67f127f33278166647"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Options for encoding/decoding Stream Header and Stream Footer. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="a61e9151869d5b77c868aaa4958e74d10" name="a61e9151869d5b77c868aaa4958e74d10"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a61e9151869d5b77c868aaa4958e74d10">&#9670;&#160;</a></span>version</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_stream_flags::version</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Stream Flags format version. </p>
+<p>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 <a class="el" href="stream__flags_8h.html#a2ebb8d6dff23daeb3de398913b845eff" title="Encode Stream Header.">lzma_stream_header_encode()</a> and <a class="el" href="stream__flags_8h.html#a438249a75ea8da952a7474b92bfe7b7a" title="Encode Stream Footer.">lzma_stream_footer_encode()</a> will return LZMA_OPTIONS_ERROR.</p>
+<p><a class="el" href="stream__flags_8h.html#ae03198e464f0d296e601ff841e100805" title="Decode Stream Header.">lzma_stream_header_decode()</a> and <a class="el" href="stream__flags_8h.html#aa92a383f85753bb79ee23227fa68186c" title="Decode Stream Footer.">lzma_stream_footer_decode()</a> 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. </p>
+
+</div>
+</div>
+<a id="aaa65ed7a55a098f829f04dba25d0f212" name="aaa65ed7a55a098f829f04dba25d0f212"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aaa65ed7a55a098f829f04dba25d0f212">&#9670;&#160;</a></span>backward_size</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> lzma_stream_flags::backward_size</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Backward Size. </p>
+<p>Backward Size must be a multiple of four bytes. In this Stream format version, Backward Size is the size of the Index field.</p>
+<p>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.</p>
+<p><a class="el" href="stream__flags_8h.html#ae03198e464f0d296e601ff841e100805" title="Decode Stream Header.">lzma_stream_header_decode()</a> always sets backward_size to LZMA_VLI_UNKNOWN so that it is convenient to use <a class="el" href="stream__flags_8h.html#a3e25ca4205021302882a696283d45263" title="Compare two lzma_stream_flags structures.">lzma_stream_flags_compare()</a> when both Stream Header and Stream Footer have been decoded. </p>
+
+</div>
+</div>
+<a id="ab1052ea7047c8d67f127f33278166647" name="ab1052ea7047c8d67f127f33278166647"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab1052ea7047c8d67f127f33278166647">&#9670;&#160;</a></span>check</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="check_8h.html#a0a6100c719ac9aa49be3fdf7519e8c3f">lzma_check</a> lzma_stream_flags::check</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Check ID. </p>
+<p>This indicates the type of the integrity check calculated from uncompressed data. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>lzma/<a class="el" href="stream__flags_8h.html">stream_flags.h</a></li>
+</ul>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/sync_off.png b/doc/api/sync_off.png
new file mode 100644
index 00000000..9b04abe7
--- /dev/null
+++ b/doc/api/sync_off.png
Binary files differ
diff --git a/doc/api/sync_on.png b/doc/api/sync_on.png
new file mode 100644
index 00000000..34a5b8b9
--- /dev/null
+++ b/doc/api/sync_on.png
Binary files differ
diff --git a/doc/api/tab_a.png b/doc/api/tab_a.png
new file mode 100644
index 00000000..3181cdfe
--- /dev/null
+++ b/doc/api/tab_a.png
Binary files differ
diff --git a/doc/api/tab_ad.png b/doc/api/tab_ad.png
new file mode 100644
index 00000000..36153864
--- /dev/null
+++ b/doc/api/tab_ad.png
Binary files differ
diff --git a/doc/api/tab_b.png b/doc/api/tab_b.png
new file mode 100644
index 00000000..3feec4f7
--- /dev/null
+++ b/doc/api/tab_b.png
Binary files differ
diff --git a/doc/api/tab_bd.png b/doc/api/tab_bd.png
new file mode 100644
index 00000000..9fd66352
--- /dev/null
+++ b/doc/api/tab_bd.png
Binary files differ
diff --git a/doc/api/tab_h.png b/doc/api/tab_h.png
new file mode 100644
index 00000000..abb3d3dc
--- /dev/null
+++ b/doc/api/tab_h.png
Binary files differ
diff --git a/doc/api/tab_hd.png b/doc/api/tab_hd.png
new file mode 100644
index 00000000..c59e4135
--- /dev/null
+++ b/doc/api/tab_hd.png
Binary files differ
diff --git a/doc/api/tab_s.png b/doc/api/tab_s.png
new file mode 100644
index 00000000..a3f26f55
--- /dev/null
+++ b/doc/api/tab_s.png
Binary files differ
diff --git a/doc/api/tab_sd.png b/doc/api/tab_sd.png
new file mode 100644
index 00000000..5d4917ae
--- /dev/null
+++ b/doc/api/tab_sd.png
Binary files 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..08aba04f
--- /dev/null
+++ b/doc/api/version_8h.html
@@ -0,0 +1,245 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma/version.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">version.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Version number.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:aa0f450c9d3b0ff5f88b55888ed55701f"><td class="memItemLeft" align="right" valign="top"><a id="aa0f450c9d3b0ff5f88b55888ed55701f" name="aa0f450c9d3b0ff5f88b55888ed55701f"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_MAJOR</b>&#160;&#160;&#160;5</td></tr>
+<tr class="memdesc:aa0f450c9d3b0ff5f88b55888ed55701f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Major version number of the liblzma release. <br /></td></tr>
+<tr class="separator:aa0f450c9d3b0ff5f88b55888ed55701f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af8fd295cf8aa349b0731423ad7a56134"><td class="memItemLeft" align="right" valign="top"><a id="af8fd295cf8aa349b0731423ad7a56134" name="af8fd295cf8aa349b0731423ad7a56134"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_MINOR</b>&#160;&#160;&#160;6</td></tr>
+<tr class="memdesc:af8fd295cf8aa349b0731423ad7a56134"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minor version number of the liblzma release. <br /></td></tr>
+<tr class="separator:af8fd295cf8aa349b0731423ad7a56134"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b550373cbff381f15d4308b852a3c2a"><td class="memItemLeft" align="right" valign="top"><a id="a8b550373cbff381f15d4308b852a3c2a" name="a8b550373cbff381f15d4308b852a3c2a"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_PATCH</b>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:a8b550373cbff381f15d4308b852a3c2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Patch version number of the liblzma release. <br /></td></tr>
+<tr class="separator:a8b550373cbff381f15d4308b852a3c2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae289abe5dcc203c7cda9f6a9a2f36b3a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="version_8h.html#ae289abe5dcc203c7cda9f6a9a2f36b3a">LZMA_VERSION_STABILITY</a>&#160;&#160;&#160;LZMA_VERSION_STABILITY_STABLE</td></tr>
+<tr class="memdesc:ae289abe5dcc203c7cda9f6a9a2f36b3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version stability marker. <br /></td></tr>
+<tr class="separator:ae289abe5dcc203c7cda9f6a9a2f36b3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7fd6169ff15ac7f01f94970359a331ea"><td class="memItemLeft" align="right" valign="top"><a id="a7fd6169ff15ac7f01f94970359a331ea" name="a7fd6169ff15ac7f01f94970359a331ea"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_COMMIT</b>&#160;&#160;&#160;&quot;&quot;</td></tr>
+<tr class="memdesc:a7fd6169ff15ac7f01f94970359a331ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Commit version number of the liblzma release. <br /></td></tr>
+<tr class="separator:a7fd6169ff15ac7f01f94970359a331ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5bc145ed7d9149eadb77e547ae8f1c5f"><td class="memItemLeft" align="right" valign="top"><a id="a5bc145ed7d9149eadb77e547ae8f1c5f" name="a5bc145ed7d9149eadb77e547ae8f1c5f"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_STABILITY_ALPHA</b>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:a5bc145ed7d9149eadb77e547ae8f1c5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad53a96c53713062b4380f01fb115cd48"><td class="memItemLeft" align="right" valign="top"><a id="ad53a96c53713062b4380f01fb115cd48" name="ad53a96c53713062b4380f01fb115cd48"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_STABILITY_BETA</b>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:ad53a96c53713062b4380f01fb115cd48"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a97f7ed9e90264388614837baf97a4d3b"><td class="memItemLeft" align="right" valign="top"><a id="a97f7ed9e90264388614837baf97a4d3b" name="a97f7ed9e90264388614837baf97a4d3b"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_STABILITY_STABLE</b>&#160;&#160;&#160;2</td></tr>
+<tr class="separator:a97f7ed9e90264388614837baf97a4d3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a156c47ff34aa0c2b726d0daf799f10a0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="version_8h.html#a156c47ff34aa0c2b726d0daf799f10a0">LZMA_VERSION</a></td></tr>
+<tr class="memdesc:a156c47ff34aa0c2b726d0daf799f10a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compile-time version number. <br /></td></tr>
+<tr class="separator:a156c47ff34aa0c2b726d0daf799f10a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55a97e55fedce2c148796047ddc88c96"><td class="memItemLeft" align="right" valign="top"><a id="a55a97e55fedce2c148796047ddc88c96" name="a55a97e55fedce2c148796047ddc88c96"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_STABILITY_STRING</b>&#160;&#160;&#160;&quot;alpha&quot;</td></tr>
+<tr class="separator:a55a97e55fedce2c148796047ddc88c96"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b89024f7a04da9b754abee2afe6df23"><td class="memItemLeft" align="right" valign="top"><a id="a0b89024f7a04da9b754abee2afe6df23" name="a0b89024f7a04da9b754abee2afe6df23"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_STRING_C_</b>(major, minor, patch, stability, commit)&#160;&#160;&#160; #major &quot;.&quot; #minor &quot;.&quot; #patch stability commit</td></tr>
+<tr class="separator:a0b89024f7a04da9b754abee2afe6df23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad5614eaf4c2e9408a99bc2137c65ed17"><td class="memItemLeft" align="right" valign="top"><a id="ad5614eaf4c2e9408a99bc2137c65ed17" name="ad5614eaf4c2e9408a99bc2137c65ed17"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VERSION_STRING_C</b>(major, minor, patch, stability, commit)&#160;&#160;&#160; LZMA_VERSION_STRING_C_(major, minor, patch, stability, commit)</td></tr>
+<tr class="separator:ad5614eaf4c2e9408a99bc2137c65ed17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a57bb143c993c305a53e9aade831a546c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="version_8h.html#a57bb143c993c305a53e9aade831a546c">LZMA_VERSION_STRING</a></td></tr>
+<tr class="memdesc:a57bb143c993c305a53e9aade831a546c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compile-time version as a string. <br /></td></tr>
+<tr class="separator:a57bb143c993c305a53e9aade831a546c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a72f929c9b9e8e730b790b3f8c80c3c80"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="version_8h.html#a72f929c9b9e8e730b790b3f8c80c3c80">lzma_version_number</a> (void) lzma_nothrow lzma_attr_const</td></tr>
+<tr class="memdesc:a72f929c9b9e8e730b790b3f8c80c3c80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run-time version number as an integer. <br /></td></tr>
+<tr class="separator:a72f929c9b9e8e730b790b3f8c80c3c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8998c1d8b4b5c2c1218bdfd58fdb1baa"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="version_8h.html#a8998c1d8b4b5c2c1218bdfd58fdb1baa">lzma_version_string</a> (void) lzma_nothrow lzma_attr_const</td></tr>
+<tr class="memdesc:a8998c1d8b4b5c2c1218bdfd58fdb1baa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run-time version as a string. <br /></td></tr>
+<tr class="separator:a8998c1d8b4b5c2c1218bdfd58fdb1baa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Version number. </p>
+<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead. </dd></dl>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="ae289abe5dcc203c7cda9f6a9a2f36b3a" name="ae289abe5dcc203c7cda9f6a9a2f36b3a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae289abe5dcc203c7cda9f6a9a2f36b3a">&#9670;&#160;</a></span>LZMA_VERSION_STABILITY</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_VERSION_STABILITY&#160;&#160;&#160;LZMA_VERSION_STABILITY_STABLE</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Version stability marker. </p>
+<p>This will always be one of three values:</p><ul>
+<li>LZMA_VERSION_STABILITY_ALPHA</li>
+<li>LZMA_VERSION_STABILITY_BETA</li>
+<li>LZMA_VERSION_STABILITY_STABLE </li>
+</ul>
+
+</div>
+</div>
+<a id="a156c47ff34aa0c2b726d0daf799f10a0" name="a156c47ff34aa0c2b726d0daf799f10a0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a156c47ff34aa0c2b726d0daf799f10a0">&#9670;&#160;</a></span>LZMA_VERSION</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_VERSION</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"> (<a class="code hl_define" href="version_8h.html#aa0f450c9d3b0ff5f88b55888ed55701f" title="Major version number of the liblzma release.">LZMA_VERSION_MAJOR</a> * UINT32_C(10000000) \</div>
+<div class="line"> + <a class="code hl_define" href="version_8h.html#af8fd295cf8aa349b0731423ad7a56134" title="Minor version number of the liblzma release.">LZMA_VERSION_MINOR</a> * UINT32_C(10000) \</div>
+<div class="line"> + <a class="code hl_define" href="version_8h.html#a8b550373cbff381f15d4308b852a3c2a" title="Patch version number of the liblzma release.">LZMA_VERSION_PATCH</a> * UINT32_C(10) \</div>
+<div class="line"> + <a class="code hl_define" href="version_8h.html#ae289abe5dcc203c7cda9f6a9a2f36b3a" title="Version stability marker.">LZMA_VERSION_STABILITY</a>)</div>
+</div><!-- fragment -->
+<p>Compile-time version number. </p>
+<p>The version number is of format xyyyzzzs where</p><ul>
+<li>x = major</li>
+<li>yyy = minor</li>
+<li>zzz = revision</li>
+<li>s indicates stability: 0 = alpha, 1 = beta, 2 = stable</li>
+</ul>
+<p>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.</p>
+<dl class="section note"><dt>Note</dt><dd>The version number of liblzma has nothing to with the version number of Igor Pavlov's LZMA SDK. </dd></dl>
+
+</div>
+</div>
+<a id="a57bb143c993c305a53e9aade831a546c" name="a57bb143c993c305a53e9aade831a546c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a57bb143c993c305a53e9aade831a546c">&#9670;&#160;</a></span>LZMA_VERSION_STRING</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define LZMA_VERSION_STRING</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"> LZMA_VERSION_STRING_C( \</div>
+<div class="line"> <a class="code hl_define" href="version_8h.html#aa0f450c9d3b0ff5f88b55888ed55701f" title="Major version number of the liblzma release.">LZMA_VERSION_MAJOR</a>, <a class="code hl_define" href="version_8h.html#af8fd295cf8aa349b0731423ad7a56134" title="Minor version number of the liblzma release.">LZMA_VERSION_MINOR</a>, \</div>
+<div class="line"> <a class="code hl_define" href="version_8h.html#a8b550373cbff381f15d4308b852a3c2a" title="Patch version number of the liblzma release.">LZMA_VERSION_PATCH</a>, LZMA_VERSION_STABILITY_STRING, \</div>
+<div class="line"> <a class="code hl_define" href="version_8h.html#a7fd6169ff15ac7f01f94970359a331ea" title="Commit version number of the liblzma release.">LZMA_VERSION_COMMIT</a>)</div>
+</div><!-- fragment -->
+<p>Compile-time version as a string. </p>
+<p>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. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="a72f929c9b9e8e730b790b3f8c80c3c80" name="a72f929c9b9e8e730b790b3f8c80c3c80"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a72f929c9b9e8e730b790b3f8c80c3c80">&#9670;&#160;</a></span>lzma_version_number()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_version_number </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Run-time version number as an integer. </p>
+<p>This allows an application to compare if it was built against the same, older, or newer version of liblzma that is currently running.</p>
+<dl class="section return"><dt>Returns</dt><dd>The value of LZMA_VERSION macro at the compile time of liblzma </dd></dl>
+
+</div>
+</div>
+<a id="a8998c1d8b4b5c2c1218bdfd58fdb1baa" name="a8998c1d8b4b5c2c1218bdfd58fdb1baa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8998c1d8b4b5c2c1218bdfd58fdb1baa">&#9670;&#160;</a></span>lzma_version_string()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const char * lzma_version_string </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Run-time version as a string. </p>
+<p>This function may be useful to display which version of liblzma an application is currently using.</p>
+<dl class="section return"><dt>Returns</dt><dd>Run-time version of liblzma </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/vli_8h.html b/doc/api/vli_8h.html
new file mode 100644
index 00000000..82f2e420
--- /dev/null
+++ b/doc/api/vli_8h.html
@@ -0,0 +1,329 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=11"/>
+<meta name="generator" content="Doxygen 1.9.7"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>liblzma (XZ Utils): lzma/vli.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+
+
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr id="projectrow">
+ <td id="projectlogo"><img alt="Logo" src="xz-logo.png"/></td>
+ <td id="projectalign">
+ <div id="projectname">liblzma (XZ Utils)<span id="projectnumber">&#160;5.6.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.9.7 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>Globals</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_b17a1d403082bd69a703ed987cf158fb.html">lzma</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle"><div class="title">vli.h File Reference</div></div>
+</div><!--header-->
+<div class="contents">
+
+<p>Variable-length integer handling.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a7b782528bd1934db7c020adbedb20ec9"><td class="memItemLeft" align="right" valign="top"><a id="a7b782528bd1934db7c020adbedb20ec9" name="a7b782528bd1934db7c020adbedb20ec9"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VLI_MAX</b>&#160;&#160;&#160;(UINT64_MAX / 2)</td></tr>
+<tr class="memdesc:a7b782528bd1934db7c020adbedb20ec9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum supported value of a variable-length integer. <br /></td></tr>
+<tr class="separator:a7b782528bd1934db7c020adbedb20ec9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a4b28254a30c859018b896ed371d69a"><td class="memItemLeft" align="right" valign="top"><a id="a5a4b28254a30c859018b896ed371d69a" name="a5a4b28254a30c859018b896ed371d69a"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VLI_UNKNOWN</b>&#160;&#160;&#160;UINT64_MAX</td></tr>
+<tr class="memdesc:a5a4b28254a30c859018b896ed371d69a"><td class="mdescLeft">&#160;</td><td class="mdescRight">VLI value to denote that the value is unknown. <br /></td></tr>
+<tr class="separator:a5a4b28254a30c859018b896ed371d69a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a063ecff4133aa2f8899b9fa3fdefd310"><td class="memItemLeft" align="right" valign="top"><a id="a063ecff4133aa2f8899b9fa3fdefd310" name="a063ecff4133aa2f8899b9fa3fdefd310"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VLI_BYTES_MAX</b>&#160;&#160;&#160;9</td></tr>
+<tr class="memdesc:a063ecff4133aa2f8899b9fa3fdefd310"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum supported encoded length of variable length integers. <br /></td></tr>
+<tr class="separator:a063ecff4133aa2f8899b9fa3fdefd310"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2d8bf5322898bfa11945848420585881"><td class="memItemLeft" align="right" valign="top"><a id="a2d8bf5322898bfa11945848420585881" name="a2d8bf5322898bfa11945848420585881"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><b>LZMA_VLI_C</b>(n)&#160;&#160;&#160;UINT64_C(n)</td></tr>
+<tr class="memdesc:a2d8bf5322898bfa11945848420585881"><td class="mdescLeft">&#160;</td><td class="mdescRight">VLI constant suffix. <br /></td></tr>
+<tr class="separator:a2d8bf5322898bfa11945848420585881"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f67ed698215d865a2b87a95ab1320dd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a4f67ed698215d865a2b87a95ab1320dd">lzma_vli_is_valid</a>(vli)&#160;&#160;&#160; ((vli) &lt;= <a class="el" href="vli_8h.html#a7b782528bd1934db7c020adbedb20ec9">LZMA_VLI_MAX</a> || (vli) == <a class="el" href="vli_8h.html#a5a4b28254a30c859018b896ed371d69a">LZMA_VLI_UNKNOWN</a>)</td></tr>
+<tr class="memdesc:a4f67ed698215d865a2b87a95ab1320dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate a variable-length integer. <br /></td></tr>
+<tr class="separator:a4f67ed698215d865a2b87a95ab1320dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a1dbc0ffc3e72748f64df8f7f71898272"><td class="memItemLeft" align="right" valign="top">typedef uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a></td></tr>
+<tr class="memdesc:a1dbc0ffc3e72748f64df8f7f71898272"><td class="mdescLeft">&#160;</td><td class="mdescRight">Variable-length integer type. <br /></td></tr>
+<tr class="separator:a1dbc0ffc3e72748f64df8f7f71898272"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a50bbb77e9ec3b72c25586aa700c20970"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a50bbb77e9ec3b72c25586aa700c20970">lzma_vli_encode</a> (<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> vli, size_t *vli_pos, uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow</td></tr>
+<tr class="memdesc:a50bbb77e9ec3b72c25586aa700c20970"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode a variable-length integer. <br /></td></tr>
+<tr class="separator:a50bbb77e9ec3b72c25586aa700c20970"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b7d50e1074e0e2bcd81c29a5f7461c7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a7b7d50e1074e0e2bcd81c29a5f7461c7">lzma_vli_decode</a> (<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> *vli, size_t *vli_pos, const uint8_t *in, size_t *in_pos, size_t in_size) lzma_nothrow</td></tr>
+<tr class="memdesc:a7b7d50e1074e0e2bcd81c29a5f7461c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode a variable-length integer. <br /></td></tr>
+<tr class="separator:a7b7d50e1074e0e2bcd81c29a5f7461c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d53e0b69934b43da8721fa6f1e8cc4f"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vli_8h.html#a8d53e0b69934b43da8721fa6f1e8cc4f">lzma_vli_size</a> (<a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> vli) lzma_nothrow lzma_attr_pure</td></tr>
+<tr class="memdesc:a8d53e0b69934b43da8721fa6f1e8cc4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of bytes required to encode a VLI. <br /></td></tr>
+<tr class="separator:a8d53e0b69934b43da8721fa6f1e8cc4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Variable-length integer handling. </p>
+<dl class="section note"><dt>Note</dt><dd>Never include this file directly. Use &lt;<a class="el" href="lzma_8h.html" title="The public API of liblzma data compression library.">lzma.h</a>&gt; instead.</dd></dl>
+<p>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.</p>
+<p>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. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="a4f67ed698215d865a2b87a95ab1320dd" name="a4f67ed698215d865a2b87a95ab1320dd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4f67ed698215d865a2b87a95ab1320dd">&#9670;&#160;</a></span>lzma_vli_is_valid</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define lzma_vli_is_valid</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">vli</td><td>)</td>
+ <td>&#160;&#160;&#160; ((vli) &lt;= <a class="el" href="vli_8h.html#a7b782528bd1934db7c020adbedb20ec9">LZMA_VLI_MAX</a> || (vli) == <a class="el" href="vli_8h.html#a5a4b28254a30c859018b896ed371d69a">LZMA_VLI_UNKNOWN</a>)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Validate a variable-length integer. </p>
+<p>This is useful to test that application has given acceptable values for example in the uncompressed_size and compressed_size variables.</p>
+<dl class="section return"><dt>Returns</dt><dd>True if the integer is representable as VLI or if it indicates unknown value. False if the integer cannot be represented as VLI. </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a id="a1dbc0ffc3e72748f64df8f7f71898272" name="a1dbc0ffc3e72748f64df8f7f71898272"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1dbc0ffc3e72748f64df8f7f71898272">&#9670;&#160;</a></span>lzma_vli</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef uint64_t <a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Variable-length integer type. </p>
+<p>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.</p>
+<p>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. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="a50bbb77e9ec3b72c25586aa700c20970" name="a50bbb77e9ec3b72c25586aa700c20970"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a50bbb77e9ec3b72c25586aa700c20970">&#9670;&#160;</a></span>lzma_vli_encode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_vli_encode </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
+ <td class="paramname"><em>vli</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>vli_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint8_t *&#160;</td>
+ <td class="paramname"><em>out</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>out_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>out_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Encode a variable-length integer. </p>
+<p>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.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir"></td><td class="paramname">vli</td><td>Integer to be encoded </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">vli_pos</td><td>How 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. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Beginning of the output buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">out_pos</td><td>The next byte will be written to out[*out_pos]. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">out_size</td><td>Size of the out buffer; the first byte into which no data is written to is out[out_size].</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Slightly different return values are used in multi-call and single-call modes.</dd></dl>
+<p>Single-call (vli_pos == NULL):</p><ul>
+<li>LZMA_OK: Integer successfully encoded.</li>
+<li>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 <a class="el" href="vli_8h.html#a8d53e0b69934b43da8721fa6f1e8cc4f" title="Get the number of bytes required to encode a VLI.">lzma_vli_size()</a>.</li>
+</ul>
+<p>Multi-call (vli_pos != NULL):</p><ul>
+<li>LZMA_OK: So far all OK, but the integer is not completely written out yet.</li>
+<li>LZMA_STREAM_END: Integer successfully encoded.</li>
+<li>LZMA_BUF_ERROR: No output space was provided.</li>
+<li>LZMA_PROG_ERROR: Arguments are not sane. </li>
+</ul>
+
+</div>
+</div>
+<a id="a7b7d50e1074e0e2bcd81c29a5f7461c7" name="a7b7d50e1074e0e2bcd81c29a5f7461c7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7b7d50e1074e0e2bcd81c29a5f7461c7">&#9670;&#160;</a></span>lzma_vli_decode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="base_8h.html#a8494e0457e1463d6d2b6836018d87b6e">lzma_ret</a> lzma_vli_decode </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a> *&#160;</td>
+ <td class="paramname"><em>vli</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>vli_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const uint8_t *&#160;</td>
+ <td class="paramname"><em>in</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t *&#160;</td>
+ <td class="paramname"><em>in_pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>in_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Decode a variable-length integer. </p>
+<p>Like <a class="el" href="vli_8h.html#a50bbb77e9ec3b72c25586aa700c20970" title="Encode a variable-length integer.">lzma_vli_encode()</a>, this function has single-call and multi-call modes.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[out]</td><td class="paramname">vli</td><td>Pointer to decoded integer. The decoder will initialize it to zero when *vli_pos == 0, so application isn't required to initialize *vli. </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">vli_pos</td><td>How 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. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in</td><td>Beginning of the input buffer </td></tr>
+ <tr><td class="paramdir">[out]</td><td class="paramname">in_pos</td><td>The next byte will be read from in[*in_pos]. </td></tr>
+ <tr><td class="paramdir"></td><td class="paramname">in_size</td><td>Size of the input buffer; the first byte that won't be read is in[in_size].</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Slightly different return values are used in multi-call and single-call modes.</dd></dl>
+<p>Single-call (vli_pos == NULL):</p><ul>
+<li>LZMA_OK: Integer successfully decoded.</li>
+<li>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.</li>
+<li>LZMA_PROG_ERROR: Arguments are not sane.</li>
+</ul>
+<p>Multi-call (vli_pos != NULL):</p><ul>
+<li>LZMA_OK: So far all OK, but the integer is not completely decoded yet.</li>
+<li>LZMA_STREAM_END: Integer successfully decoded.</li>
+<li>LZMA_DATA_ERROR: Integer is corrupt.</li>
+<li>LZMA_BUF_ERROR: No input was provided.</li>
+<li>LZMA_PROG_ERROR: Arguments are not sane. </li>
+</ul>
+
+</div>
+</div>
+<a id="a8d53e0b69934b43da8721fa6f1e8cc4f" name="a8d53e0b69934b43da8721fa6f1e8cc4f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8d53e0b69934b43da8721fa6f1e8cc4f">&#9670;&#160;</a></span>lzma_vli_size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t lzma_vli_size </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="vli_8h.html#a1dbc0ffc3e72748f64df8f7f71898272">lzma_vli</a>&#160;</td>
+ <td class="paramname"><em>vli</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get the number of bytes required to encode a VLI. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">vli</td><td>Integer whose encoded size is to be determined</td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Number of bytes on success (1-9). If vli isn't valid, zero is returned. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<hr class="footer"/>
+<p style="text-align: right;padding-right: 12px;">
+ XZ logo &copy; 2023 by Jia Tan is licensed under
+ <a href="COPYING.CC-BY-SA-4.0"
+ rel="license"
+ style="display:inline-block;">
+ CC BY-SA 4.0
+ </a>
+</p>
+</body>
+</html>
diff --git a/doc/api/xz-logo.png b/doc/api/xz-logo.png
new file mode 100644
index 00000000..f9d6313d
--- /dev/null
+++ b/doc/api/xz-logo.png
Binary files 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..bc6813f7
--- /dev/null
+++ b/doc/man/pdf-a4/lzmainfo-a4.pdf
Binary files 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..534f1460
--- /dev/null
+++ b/doc/man/pdf-a4/xz-a4.pdf
Binary files 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..f10d3043
--- /dev/null
+++ b/doc/man/pdf-a4/xzdec-a4.pdf
Binary files 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..54019183
--- /dev/null
+++ b/doc/man/pdf-a4/xzdiff-a4.pdf
Binary files 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..0f52ce56
--- /dev/null
+++ b/doc/man/pdf-a4/xzgrep-a4.pdf
Binary files 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..146daa47
--- /dev/null
+++ b/doc/man/pdf-a4/xzless-a4.pdf
Binary files 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..ac113d37
--- /dev/null
+++ b/doc/man/pdf-a4/xzmore-a4.pdf
Binary files 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..f7422087
--- /dev/null
+++ b/doc/man/pdf-letter/lzmainfo-letter.pdf
Binary files 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..6c55362a
--- /dev/null
+++ b/doc/man/pdf-letter/xz-letter.pdf
Binary files 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..512da7f5
--- /dev/null
+++ b/doc/man/pdf-letter/xzdec-letter.pdf
Binary files 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..cc738b78
--- /dev/null
+++ b/doc/man/pdf-letter/xzdiff-letter.pdf
Binary files 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..a406baa0
--- /dev/null
+++ b/doc/man/pdf-letter/xzgrep-letter.pdf
Binary files 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..69c32600
--- /dev/null
+++ b/doc/man/pdf-letter/xzless-letter.pdf
Binary files 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..1ddb695f
--- /dev/null
+++ b/doc/man/pdf-letter/xzmore-letter.pdf
Binary files 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..b8bbc8a4
--- /dev/null
+++ b/doc/man/txt/xz.txt
@@ -0,0 +1,1683 @@
+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]
+ --riscv[=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=<value>,option=<value>...
+
+ filter Name of the filter
+
+ option Name of a filter specific option
+
+ value Numeric value ranges appear as <min-max>. 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: <https://xz.tukaani.org/xz-utils/>
+ XZ Embedded: <https://xz.tukaani.org/xz-embedded/>
+ LZMA SDK: <https://7-zip.org/sdk.html>
+
+
+
+Tukaani 2024-02-25 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: <https://xz.tukaani.org/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 <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 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 <inttypes.h> 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 <libintl.h>
+#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 <libintl.h>
+#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 <libintl.h>
+#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 <https://en.wikipedia.org/wiki/X86_instruction_listings>.
+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 <sgidefs.h>), and _MIPS_SIM == _ABIN32.
+ # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but
+ # may later get defined by <sgidefs.h>), 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 <<EOF
+#ifndef __${HOST_CPU}__
+#define __${HOST_CPU}__ 1
+#endif
+#ifndef __${HOST_CPU_C_ABI}__
+#define __${HOST_CPU_C_ABI}__ 1
+#endif
+EOF
+ AH_TOP([/* CPU and C ABI indicator */
+#ifndef __i386__
+#undef __i386__
+#endif
+#ifndef __x86_64_x32__
+#undef __x86_64_x32__
+#endif
+#ifndef __x86_64__
+#undef __x86_64__
+#endif
+#ifndef __alpha__
+#undef __alpha__
+#endif
+#ifndef __arm__
+#undef __arm__
+#endif
+#ifndef __armhf__
+#undef __armhf__
+#endif
+#ifndef __arm64_ilp32__
+#undef __arm64_ilp32__
+#endif
+#ifndef __arm64__
+#undef __arm64__
+#endif
+#ifndef __hppa__
+#undef __hppa__
+#endif
+#ifndef __hppa64__
+#undef __hppa64__
+#endif
+#ifndef __ia64_ilp32__
+#undef __ia64_ilp32__
+#endif
+#ifndef __ia64__
+#undef __ia64__
+#endif
+#ifndef __loongarch64__
+#undef __loongarch64__
+#endif
+#ifndef __m68k__
+#undef __m68k__
+#endif
+#ifndef __mips__
+#undef __mips__
+#endif
+#ifndef __mipsn32__
+#undef __mipsn32__
+#endif
+#ifndef __mips64__
+#undef __mips64__
+#endif
+#ifndef __powerpc__
+#undef __powerpc__
+#endif
+#ifndef __powerpc64__
+#undef __powerpc64__
+#endif
+#ifndef __powerpc64_elfv2__
+#undef __powerpc64_elfv2__
+#endif
+#ifndef __riscv32__
+#undef __riscv32__
+#endif
+#ifndef __riscv64__
+#undef __riscv64__
+#endif
+#ifndef __riscv32_ilp32__
+#undef __riscv32_ilp32__
+#endif
+#ifndef __riscv32_ilp32f__
+#undef __riscv32_ilp32f__
+#endif
+#ifndef __riscv32_ilp32d__
+#undef __riscv32_ilp32d__
+#endif
+#ifndef __riscv64_ilp32__
+#undef __riscv64_ilp32__
+#endif
+#ifndef __riscv64_ilp32f__
+#undef __riscv64_ilp32f__
+#endif
+#ifndef __riscv64_ilp32d__
+#undef __riscv64_ilp32d__
+#endif
+#ifndef __riscv64_lp64__
+#undef __riscv64_lp64__
+#endif
+#ifndef __riscv64_lp64f__
+#undef __riscv64_lp64f__
+#endif
+#ifndef __riscv64_lp64d__
+#undef __riscv64_lp64d__
+#endif
+#ifndef __s390__
+#undef __s390__
+#endif
+#ifndef __s390x__
+#undef __s390x__
+#endif
+#ifndef __sh__
+#undef __sh__
+#endif
+#ifndef __sparc__
+#undef __sparc__
+#endif
+#ifndef __sparc64__
+#undef __sparc64__
+#endif
+])
+
+])
+
+
+dnl Sets the HOST_CPU_C_ABI_32BIT variable to 'yes' if the C language ABI
+dnl (application binary interface) is a 32-bit one, to 'no' if it is a 64-bit
+dnl one, or to 'unknown' if unknown.
+dnl This is a simplified variant of gl_HOST_CPU_C_ABI.
+AC_DEFUN([gl_HOST_CPU_C_ABI_32BIT],
+[
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_CACHE_CHECK([32-bit host C ABI], [gl_cv_host_cpu_c_abi_32bit],
+ [if test -n "$gl_cv_host_cpu_c_abi"; then
+ dnl gl_HOST_CPU_C_ABI has already been run. Use its result.
+ 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 | sh[1234] | sh[1234]e[lb] \
+ | tic6x \
+ | xtensa* )
+ gl_cv_host_cpu_c_abi_32bit=yes
+ ;;
+
+ # CPUs that only support a 64-bit ABI.
+changequote(,)dnl
+ alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \
+ | mmix )
+changequote([,])dnl
+ gl_cv_host_cpu_c_abi_32bit=no
+ ;;
+
+changequote(,)dnl
+ i[34567]86 )
+changequote([,])dnl
+ 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.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if (defined __x86_64__ || defined __amd64__ \
+ || defined _M_X64 || defined _M_AMD64) \
+ && !(defined __ILP32__ || defined _ILP32)
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ 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.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32)
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ 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_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ 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_32bit=yes],
+ [gl_cv_host_cpu_c_abi_32bit=no])
+ ;;
+
+ 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_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ 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
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ 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 *':
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __LP64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [gl_cv_host_cpu_c_abi_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ 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_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ 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_32bit=no],
+ [gl_cv_host_cpu_c_abi_32bit=yes])
+ ;;
+
+ *)
+ gl_cv_host_cpu_c_abi_32bit=unknown
+ ;;
+ esac
+ fi
+ ])
+
+ HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit"
+])
diff --git a/m4/iconv.m4 b/m4/iconv.m4
new file mode 100644
index 00000000..ff5d5261
--- /dev/null
+++ b/m4/iconv.m4
@@ -0,0 +1,293 @@
+# iconv.m4 serial 26
+dnl Copyright (C) 2000-2002, 2007-2014, 2016-2023 Free Software Foundation,
+dnl Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_PREREQ([2.64])
+
+dnl Note: AM_ICONV is documented in the GNU gettext manual
+dnl <https://www.gnu.org/software/gettext/manual/html_node/AM_005fICONV.html>.
+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 <stdlib.h>
+#include <iconv.h>
+ ]],
+ [[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 <stdlib.h>
+#include <iconv.h>
+ ]],
+ [[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 <iconv.h>
+#include <string.h>
+
+#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
+ <https://www.ibm.com/support/knowledgecenter/ssw_aix_72/i_bostechref/iconv.html> */
+ {
+ 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 <stdlib.h>
+#include <iconv.h>
+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 <iconv.h>.
+ 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 <CoreFoundation/CFPreferences.h>]],
+ [[CFPreferencesCopyAppValue(NULL, NULL)]])],
+ [gt_cv_func_CFPreferencesCopyAppValue=yes],
+ [gt_cv_func_CFPreferencesCopyAppValue=no])
+ LIBS="$gt_save_LIBS"])
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+ AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
+ [Define to 1 if you have the 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 <CoreFoundation/CFLocale.h>]],
+ [[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` in
+*GNU* | *'with BFD'*)
+ acl_cv_prog_gnu_ld=yes
+ ;;
+*)
+ acl_cv_prog_gnu_ld=no
+ ;;
+esac])
+with_gnu_ld=$acl_cv_prog_gnu_ld
+])
+
+dnl From libtool-2.4. Sets the variable LD.
+AC_DEFUN([AC_LIB_PROG_LD],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+
+AC_ARG_WITH([gnu-ld],
+ [AS_HELP_STRING([[--with-gnu-ld]],
+ [assume the C compiler uses GNU ld [default=no]])],
+ [test "$withval" = no || with_gnu_ld=yes],
+ [with_gnu_ld=no])dnl
+
+# 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
+ 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 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$acl_save_ifs"
+ fi
+ case $host in
+ *-*-aix*)
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __powerpc64__ || defined __LP64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [# 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
+ ], [])
+ ;;
+ sparc64-*-netbsd*)
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#if defined __sparcv9 || defined __arch64__
+ int ok;
+ #else
+ error fail
+ #endif
+ ]])],
+ [],
+ [# 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
+ ])
+ LD="$acl_cv_path_LD"
+fi
+if test -n "$LD"; then
+ AC_MSG_RESULT([$LD])
+else
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([no acceptable ld found in \$PATH])
+fi
+AC_LIB_PROG_LD_GNU
+])
diff --git a/m4/lib-link.m4 b/m4/lib-link.m4
new file mode 100644
index 00000000..5f8afae6
--- /dev/null
+++ b/m4/lib-link.m4
@@ -0,0 +1,813 @@
+# lib-link.m4 serial 33
+dnl Copyright (C) 2001-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.
+
+AC_PREREQ([2.61])
+
+dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
+dnl augments the CPPFLAGS variable.
+dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
+dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
+AC_DEFUN([AC_LIB_LINKFLAGS],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+ pushdef([Name],[m4_translit([$1],[./+-], [____])])
+ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+ AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
+ ac_cv_lib[]Name[]_libs="$LIB[]NAME"
+ ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
+ ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
+ ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
+ ])
+ LIB[]NAME="$ac_cv_lib[]Name[]_libs"
+ LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
+ INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
+ LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+ AC_SUBST([LIB]NAME)
+ AC_SUBST([LTLIB]NAME)
+ AC_SUBST([LIB]NAME[_PREFIX])
+ dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
+ dnl results of this search when this library appears as a dependency.
+ HAVE_LIB[]NAME=yes
+ popdef([NAME])
+ popdef([Name])
+])
+
+dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message])
+dnl searches for libname and the libraries corresponding to explicit and
+dnl implicit dependencies, together with the specified include files and
+dnl the ability to compile and link the specified testcode. The missing-message
+dnl defaults to 'no' and may contain additional hints for the user.
+dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME}
+dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and
+dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
+dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
+dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
+dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
+AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+ pushdef([Name],[m4_translit([$1],[./+-], [____])])
+ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+
+ dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
+
+ dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
+ dnl because if the user has installed lib[]Name and not disabled its use
+ dnl via --without-lib[]Name-prefix, he wants to use it.
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+
+ AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
+ ac_save_LIBS="$LIBS"
+ dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS,
+ dnl because these -l options might require -L options that are present in
+ dnl LIBS. -l options benefit only from the -L options listed before it.
+ dnl Otherwise, add it to the front of LIBS, because it may be a static
+ dnl library that depends on another static library that is present in LIBS.
+ dnl Static libraries benefit only from the static libraries listed after
+ dnl it.
+ case " $LIB[]NAME" in
+ *" -l"*) LIBS="$LIBS $LIB[]NAME" ;;
+ *) LIBS="$LIB[]NAME $LIBS" ;;
+ esac
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[$3]], [[$4]])],
+ [ac_cv_lib[]Name=yes],
+ [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])'])
+ LIBS="$ac_save_LIBS"
+ ])
+ if test "$ac_cv_lib[]Name" = yes; then
+ HAVE_LIB[]NAME=yes
+ AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.])
+ AC_MSG_CHECKING([how to link with lib[]$1])
+ AC_MSG_RESULT([$LIB[]NAME])
+ else
+ HAVE_LIB[]NAME=no
+ dnl If $LIB[]NAME didn't lead to a usable library, we don't need
+ dnl $INC[]NAME either.
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ LIB[]NAME=
+ LTLIB[]NAME=
+ LIB[]NAME[]_PREFIX=
+ fi
+ AC_SUBST([HAVE_LIB]NAME)
+ AC_SUBST([LIB]NAME)
+ AC_SUBST([LTLIB]NAME)
+ AC_SUBST([LIB]NAME[_PREFIX])
+ popdef([NAME])
+ popdef([Name])
+])
+
+dnl Determine the platform dependent parameters needed to use rpath:
+dnl acl_libext,
+dnl acl_shlibext,
+dnl acl_libname_spec,
+dnl acl_library_names_spec,
+dnl acl_hardcode_libdir_flag_spec,
+dnl acl_hardcode_libdir_separator,
+dnl acl_hardcode_direct,
+dnl acl_hardcode_minus_L.
+AC_DEFUN([AC_LIB_RPATH],
+[
+ dnl Complain if config.rpath is missing.
+ AC_REQUIRE_AUX_FILE([config.rpath])
+ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
+ AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
+ AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
+ AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [
+ 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
+ ])
+ 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 <https://lists.gnu.org/archive/html/grep-devel/2020-09/msg00052.html>.
+ 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 <https://www.gnu.org/prep/standards/html_node/Directory-Variables.html>.
+ 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 <https://docs.oracle.com/cd/E19253-01/816-5138/dev-env/index.html>.
+ 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 <http://www.gnu.org/licenses/>.
+])
+
+# 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:
+#
+# <var>='`$ECHO "$<var>" | $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 <bug-libtool@gnu.org>."
+
+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 <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#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<name>.so
+ # instead of lib<name>.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 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test no != "$with_gnu_ld" && break
+ ;;
+ *)
+ test yes != "$with_gnu_ld" && break
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+else
+ lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi])
+LD=$lt_cv_path_LD
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+_LT_PATH_LD_GNU
+AC_SUBST([LD])
+
+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+])# LT_PATH_LD
+
+# Old names:
+AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
+AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_LD], [])
+dnl AC_DEFUN([AC_PROG_LD], [])
+
+
+# _LT_PATH_LD_GNU
+#- --------------
+m4_defun([_LT_PATH_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_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` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# _LT_PATH_LD_GNU
+
+
+# _LT_CMD_RELOAD
+# --------------
+# find reload flag for linker
+# -- PORTME Some linkers may need a different reload flag.
+m4_defun([_LT_CMD_RELOAD],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+ lt_cv_ld_reload_flag,
+ [lt_cv_ld_reload_flag='-r'])
+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
+_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_TAGDECL([], [reload_cmds], [2])dnl
+])# _LT_CMD_RELOAD
+
+
+# _LT_PATH_DD
+# -----------
+# find a working dd
+m4_defun([_LT_PATH_DD],
+[AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD],
+[printf 0123456789abcdef0123456789abcdef >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 <conftest2.i >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 <conftest2.i >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 <jrb3@best.com> 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 <jrb3@best.com> 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 <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+AC_PREREQ([2.50])
+
+AC_DEFUN([AM_NLS],
+[
+ AC_MSG_CHECKING([whether NLS is requested])
+ dnl Default is enabled NLS
+ AC_ARG_ENABLE([nls],
+ [ --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 <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 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 <<EOT
+$*
+EOT
+ }
+ gt_echo='echo_func'
+ fi
+ fi
+
+ # A sed script that extracts the value of VARIABLE from a Makefile.
+ tab=`printf '\t'`
+ sed_x_variable='
+# Test if the hold space is empty.
+x
+s/P/P/
+x
+ta
+# Yes it was empty. Look if we have the expected variable definition.
+/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=/{
+ # Seen the first line of the variable definition.
+ s/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=//
+ ba
+}
+bd
+:a
+# Here we are processing a line from the variable definition.
+# Remove comment, more precisely replace it with a space.
+s/#.*$/ /
+# See if the line ends in a backslash.
+tb
+:b
+s/\\$//
+# Print the line, without the trailing backslash.
+p
+tc
+# There was no trailing backslash. The end of the variable definition is
+# reached. Clear the hold space.
+s/^.*$//
+x
+bd
+:c
+# A trailing backslash means that the variable definition continues in the
+# next line. Put a nonempty string into the hold space to indicate this.
+s/^.*$/P/
+x
+:d
+'
+changequote([,])dnl
+
+ # Set POTFILES to the value of the Makefile variable POTFILES.
+ sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`
+ POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
+ # Compute POTFILES_DEPS as
+ # $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
+ POTFILES_DEPS=
+ for file in $POTFILES; do
+ POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
+ done
+ POMAKEFILEDEPS=""
+
+ 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
+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+ # The LINGUAS file contains the set of available languages.
+ ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+ else
+ # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
+ sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`
+ ALL_LINGUAS=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
+ 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)
+ # Compute PROPERTIESFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).properties)
+ # Compute CLASSFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).class)
+ # Compute QMFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
+ # Compute MSGFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
+ # Compute RESOURCESDLLFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ GMOFILES=
+ PROPERTIESFILES=
+ CLASSFILES=
+ QMFILES=
+ MSGFILES=
+ RESOURCESDLLFILES=
+ 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"
+ PROPERTIESFILES="$PROPERTIESFILES \$(srcdir)/\$(DOMAIN)_$lang.properties"
+ CLASSFILES="$CLASSFILES \$(srcdir)/\$(DOMAIN)_$lang.class"
+ QMFILES="$QMFILES $srcdirpre$lang.qm"
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+ RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
+ done
+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
+ # 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=
+ JAVACATALOGS=
+ QTCATALOGS=
+ TCLCATALOGS=
+ CSHARPCATALOGS=
+ if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
+ QTCATALOGS="$QTCATALOGS $lang.qm"
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+ CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
+ done
+ fi
+
+ sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$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" <<EOF
+$frobbedlang.msg: $lang.po
+${tab}@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
+${tab}\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+ done
+ fi
+ if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
+ # Add dependencies that cannot be formulated as a simple suffix rule.
+ for lang in $ALL_LINGUAS; do
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+ cat >> "$ac_file.tmp" <<EOF
+$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
+${tab}@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
+${tab}\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+ done
+ fi
+ if test -n "$POMAKEFILEDEPS"; then
+ cat >> "$ac_file.tmp" <<EOF
+Makefile: $POMAKEFILEDEPS
+EOF
+ fi
+ mv "$ac_file.tmp" "$ac_file"
+])
+
+dnl Initializes the accumulator used by AM_XGETTEXT_OPTION.
+AC_DEFUN([AM_XGETTEXT_OPTION_INIT],
+[
+ XGETTEXT_EXTRA_OPTIONS=
+])
+
+dnl Registers an option to be passed to xgettext in the po subdirectory.
+AC_DEFUN([AM_XGETTEXT_OPTION],
+[
+ AC_REQUIRE([AM_XGETTEXT_OPTION_INIT])
+ XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1"
+])
diff --git a/m4/progtest.m4 b/m4/progtest.m4
new file mode 100644
index 00000000..906567bb
--- /dev/null
+++ b/m4/progtest.m4
@@ -0,0 +1,91 @@
+# progtest.m4 serial 9 (gettext-0.21.1)
+dnl Copyright (C) 1996-2003, 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
+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 <drepper@cygnus.com>, 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 <drepper@gnu.ai.mit.edu>
+# 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
+# <https://www.gnu.org/prep/standards/html_node/Makefile-Basics.html>:
+# "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
--- /dev/null
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index e1a91d99..132af30b 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2022-12-12 18:19+0300\n"
"Last-Translator: Jordi Mas i Hernàndez <jmas@softcatala.org>\n"
"Language-Team: Catalan <ca@dodds.net>\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:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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 %<PRIu32> threads."
msgstr "S'utilitzen fins a %<PRIu32> 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:591
#, 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:614
#, 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:641
#, 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:766
#, 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:776
+#, 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:1150
+#, 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 [%<PRIu64>, %<PRIu64>]"
+#: src/xz/util.c:167
+#, fuzzy, c-format
+#| msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
+msgid "Value of the option '%s' must be in the range [%<PRIu64>, %<PRIu64>]"
msgstr "El valor de l'opció «%s» ha d'estar a l'interval [%<PRIu64>, %<PRIu64>]"
-#: 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
--- /dev/null
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 7672d788..86a20ba1 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2010-12-03 11:32+0100\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <diskuze@lists.l10n.cz>\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:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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 %<PRIu32> 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:591
+#, 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:614
#, 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:641
+#, 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:766
#, 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:776
+#, 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:1150
#, 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=%<PRIu32>"
-msgstr "Vybraný vyhledávaÄ shod vyžaduje minimálnÄ› nice=%<PRIu32>"
-
-#: 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 [%<PRIu64>, %<PRIu64>]"
+#: src/xz/util.c:167
+#, fuzzy, c-format
+#| msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
+msgid "Value of the option '%s' must be in the range [%<PRIu64>, %<PRIu64>]"
msgstr "Hodnota volby „%s“ musí být v rozsahu [%<PRIu64>, %<PRIu64>]"
-#: 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=%<PRIu32>"
+#~ msgstr "Vybraný vyhledávaÄ shod vyžaduje minimálnÄ› nice=%<PRIu32>"
+
#~ 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
--- /dev/null
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 650e36c3..7dfcc57e 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2019-03-04 23:08+0100\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\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:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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 %<PRIu32> threads."
msgstr "Bruger op til %<PRIu32> 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:591
+#, 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:614
#, 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:641
+#, 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:766
#, 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:776
+#, 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:1150
+#, 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 <dansk@dansk-gruppen.dk>.\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=%<PRIu32>"
-msgstr "Den valgte matchfinder kræver mindst nice=%<PRIu32>"
-
-#: 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 [%<PRIu64>, %<PRIu64>]"
+#: src/xz/util.c:167
+#, fuzzy, c-format
+#| msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
+msgid "Value of the option '%s' must be in the range [%<PRIu64>, %<PRIu64>]"
msgstr "Værdien for tilvalget »%s« skal være i intervallet [%<PRIu64>, %<PRIu64>]"
-#: 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=%<PRIu32>"
+#~ msgstr "Den valgte matchfinder kræver mindst nice=%<PRIu32>"
diff --git a/po/de.gmo b/po/de.gmo
new file mode 100644
index 00000000..44dc7a6c
--- /dev/null
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 5181e69d..ce6d5e0c 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2024-02-15 17:45+0100\n"
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -57,9 +57,9 @@ msgstr "Nur eine Datei kann als Argument für »--files« oder »--files0« ange
#. 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:685
-#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020
+#: src/xz/args.c:621 src/xz/coder.c:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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
@@ -153,46 +153,42 @@ msgstr "Filterkette oder Filteroptionen werden nicht unterstützt"
msgid "Decompression will need %s MiB of memory."
msgstr "Dekompression wird %s MiB Speicher brauchen."
-#: src/xz/coder.c:584
+#: src/xz/coder.c:591
#, c-format
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
msgstr "Anzahl der Threads wurde von %s auf %s reduziert, um die Speicherbedarfsbegrenzung von %s MiB nicht zu übersteigen"
-#: src/xz/coder.c:604
+#: src/xz/coder.c:614
#, 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 "Anzahl der Threads wurde von %s auf einen reduziert. Die automatische Begrenzung des Speicherverbrauchs auf %s MiB wird immer noch überschritten. %s MiB an Speicher sind erforderlich. Es wird dennoch fortgesetzt."
-#: src/xz/coder.c:631
+#: src/xz/coder.c:641
#, c-format
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
msgstr "Es wurde in den Einzelthread-Modus gewechselt, um die Speicherbedarfsbegrenzung von %s MiB nicht zu übersteigen"
-#: src/xz/coder.c:756
+#: src/xz/coder.c:766
#, 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 "Die LZMA%c-Wörterbuchgröße wurde von %s MiB auf %s MiB angepasst, um die Speicherbedarfsbegrenzung von %s MiB nicht zu übersteigen"
-#: src/xz/coder.c:766
+#: src/xz/coder.c:776
#, 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 "Die LZMA%c-Wörterbuchgröße für --filters%u wurde von %s MiB auf %s MiB angepasst, um die Speicherbedarfsbegrenzung von %s MiB nicht zu übersteigen"
-#: src/xz/coder.c:1140
+#: src/xz/coder.c:1150
#, c-format
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
--- /dev/null
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index 8ece022f..c5c12b55 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2024-02-24 00:16-0500\n"
"Last-Translator: Keith Bowes <zooplah@gmail.com>\n"
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
@@ -55,9 +55,9 @@ msgstr "Nur unu dosiero estas specifebla per '--files' aÅ­ '--files0'."
#. 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:685
-#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020
+#: src/xz/args.c:621 src/xz/coder.c:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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
@@ -151,46 +151,42 @@ msgstr "Nekomprenata filtrila ĉeno aŭ filtrilaj elektoj"
msgid "Decompression will need %s MiB of memory."
msgstr "Malkunpremado postulos %s megabajtojn da memoro."
-#: src/xz/coder.c:584
+#: src/xz/coder.c:591
#, c-format
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
msgstr "Malpliigis la nombron da fadenoj de %s Äis %s por ne superi la memoruzadan limigo de %s megabajtoj"
-#: src/xz/coder.c:604
+#: src/xz/coder.c:614
#, 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 "Malpliigis la nombron da fadenoj de %s Äis unu. La aÅ­tomata memoruzada limigo de %s megabajtoj ankoraÅ­ estas superata. %s megabajtoj da memoro estas postulata. Senkonsidere daÅ­rigas."
-#: src/xz/coder.c:631
+#: src/xz/coder.c:641
#, c-format
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
msgstr "ÅœanÄas al unufadena reÄimo por ne superi la memoruzadan limigon de %s megabajtoj"
-#: src/xz/coder.c:756
+#: src/xz/coder.c:766
#, 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 "AlÄÅ­stigis vortara grando de LZMA%c de %s megabajtoj Äis %s megabajtoj por ne superi la memoruzadan limigon de %s megabajtoj"
-#: src/xz/coder.c:766
+#: src/xz/coder.c:776
#, 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 "AlÄustigis vortara grando de LZMA%c por --filters%u de %s megabajtoj Äis %s megabajtoj por ne superi la memoruzadan limigon de %s megabajtoj"
-#: src/xz/coder.c:1140
+#: src/xz/coder.c:1150
#, c-format
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
--- /dev/null
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index 4b88bf06..646b2920 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2024-02-16 09:36-0600\n"
"Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n"
"Language-Team: Spanish <es@tp.org.es>\n"
@@ -56,9 +56,9 @@ msgstr "Solo se puede especificar un fichero con '--files' o '--files0'."
#. 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:685
-#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020
+#: src/xz/args.c:621 src/xz/coder.c:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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
@@ -152,46 +152,42 @@ msgstr "No se admiten las opciones de cadena de filtros o de filtro"
msgid "Decompression will need %s MiB of memory."
msgstr "La descompresión necesitará %s MiB de memoria."
-#: src/xz/coder.c:584
+#: src/xz/coder.c:591
#, c-format
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
msgstr "Se reduce el número de hilos de %s a %s para no exceder el límite de uso de memoria de %s MiB"
-#: src/xz/coder.c:604
+#: src/xz/coder.c:614
#, 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 "Se reduce el número de hilos de %s a uno. Aún se está excediendo el límite automático de uso de memoria de %s MiB. Se requieren %s MiB de memoria. Continúa de cualquier manera."
-#: src/xz/coder.c:631
+#: src/xz/coder.c:641
#, c-format
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
msgstr "Se ajusta al modo de un solo hilo para no exceder el límite de uso de memoria de %s MiB"
-#: src/xz/coder.c:756
+#: src/xz/coder.c:766
#, 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 "Se ajusta el tamaño del diccionario LZMA%c de %s MiB a %s MiB para no exceder el límite de uso de memoria de %s MiB"
-#: src/xz/coder.c:766
+#: src/xz/coder.c:776
#, 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 "Se ajusta el tamaño del diccionario LZMA%c para --filters%u de %s MiB a %s MiB para no exceder el límite de uso de memoria de %s MiB"
-#: src/xz/coder.c:1140
+#: src/xz/coder.c:1150
#, c-format
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 <es@tp.org.es>.\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=%<PRIu32>"
#~ msgstr "El buscador de coincidencias seleccionado requiere por lo menos nice=%<PRIu32>"
diff --git a/po/fi.gmo b/po/fi.gmo
new file mode 100644
index 00000000..87358cfc
--- /dev/null
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index acea1cde..76cc7ee4 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2022-11-10 16:17+0200\n"
"Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\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:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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 %<PRIu32> threads."
msgstr "Käytetään enintään %<PRIu32> 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:591
#, 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:614
#, 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:641
#, 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:766
#, 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:776
+#, 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:1150
+#, 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=%<PRIu32>"
-msgstr "Valittu täsmäävyydenetsin vaatii vähintään nice-arvon=%<PRIu32>"
-
-#: 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 [%<PRIu64>, %<PRIu64>]"
+#: src/xz/util.c:167
+#, fuzzy, c-format
+#| msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
+msgid "Value of the option '%s' must be in the range [%<PRIu64>, %<PRIu64>]"
msgstr "Valitsimen â€%s†arvon on oltava välillä [%<PRIu64>, %<PRIu64>]"
-#: 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=%<PRIu32>"
+#~ msgstr "Valittu täsmäävyydenetsin vaatii vähintään nice-arvon=%<PRIu32>"
+
#~ 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
--- /dev/null
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 3e4ecdb4..9f803c9a 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2023-12-19 04:12+0100\n"
"Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
"Language-Team: French <traduc@traduc.org>\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:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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 %<PRIu32> threads."
msgstr "Jusqu'à %<PRIu32> 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:591
#, 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:614
#, 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:641
#, 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:766
#, 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:776
+#, 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:1150
+#, 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 à <lkppo@free.fr>.\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 [%<PRIu64>, %<PRIu64>]"
+#: src/xz/util.c:167
+#, fuzzy, c-format
+#| msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
+msgid "Value of the option '%s' must be in the range [%<PRIu64>, %<PRIu64>]"
msgstr "La valeur de l'option '%s' doit être inclue entre %<PRIu64> et %<PRIu64>"
-#: 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=%<PRIu32>"
#~ msgstr "Le `match finder' choisi nécessite au moins nice=%<PRIu32>"
@@ -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
--- /dev/null
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index 940fa939..53b0f402 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2024-02-18 17:31-0800\n"
"Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n"
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
@@ -58,9 +58,9 @@ msgstr "Samo jedna datoteka može biti specificirana s --files ili --files0."
#. 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:685
-#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020
+#: src/xz/args.c:621 src/xz/coder.c:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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
@@ -154,46 +154,42 @@ msgstr "Nepodržani lanac filtara ili opcija filtara"
msgid "Decompression will need %s MiB of memory."
msgstr "Za dekompresiju će trebati %s MiB memorije."
-#: src/xz/coder.c:584
+#: src/xz/coder.c:591
#, c-format
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
msgstr "Smanjen je broj dretvi od %s na %s da ne prekoraÄimo ograniÄenje upotrebe memorije od %s MiB"
-#: src/xz/coder.c:604
+#: src/xz/coder.c:614
#, 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 "Smanjen je broj dretvi od %s na jednu. OgraniÄenje automatske upotrebe memorije od %s MiB je joÅ¡ uvijek prekoraÄeno. Potrebno je %s MiB memorije. Ipak nastavljamo dalje."
-#: src/xz/coder.c:631
+#: src/xz/coder.c:641
#, c-format
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
msgstr "Prelazimo na naÄin rada s jednom dretvom da ne prekoraÄimo ograniÄenje upotrebe memorije od %s MiB"
-#: src/xz/coder.c:756
+#: src/xz/coder.c:766
#, 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 "PrilagoÄ‘ena je veliÄina LZMA%c rjeÄnika od %s na %s da ne prekoraÄimo ograniÄenje upotrebe memorije od %s MiB"
-#: src/xz/coder.c:766
+#: src/xz/coder.c:776
#, 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 "PrilagoÄ‘ena veliÄina LZMA%c rjeÄnika za --filters%u od %s na %s da ne prekoraÄimo ograniÄenje upotrebe memorije od %s MiB"
-#: src/xz/coder.c:1140
+#: src/xz/coder.c:1150
#, c-format
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 <lokalizacija@linux.hr>.\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
--- /dev/null
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index 4e4fb477..81203cf4 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2024-02-17 18:35+0100\n"
"Last-Translator: Meskó Balázs <mesko.balazs@fsf.hu>\n"
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -57,9 +57,9 @@ msgstr "Csak egy fájl adható meg a „--files†vagy „--files0†kapcsoló
#. 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:685
-#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020
+#: src/xz/args.c:621 src/xz/coder.c:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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
@@ -153,46 +153,42 @@ msgstr "Nem támogatott szűrőlánc vagy szűrőkapcsolók"
msgid "Decompression will need %s MiB of memory."
msgstr "A kibontáshoz %s MiB memória szükséges."
-#: src/xz/coder.c:584
+#: src/xz/coder.c:591
#, c-format
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
msgstr "A szálak számának csökkentése erről: %s, erre: %s, hogy ne lépje túl a(z) %s MiB-os korlátot"
-#: src/xz/coder.c:604
+#: src/xz/coder.c:614
#, 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 "A szálak számának csökkentése erről: %s, egyre. A(z) %s MiB-os automatikus memóriahasználati korlát így is túl lett lépve. %s MiB memória szükséges. Ennek ellenére folytatás mindenképpen."
-#: src/xz/coder.c:631
+#: src/xz/coder.c:641
#, c-format
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
msgstr "Egyszálú módra váltás, hogy ne lépje túl a(z) %s MiB-os memóriahasználati korlátot"
-#: src/xz/coder.c:756
+#: src/xz/coder.c:766
#, 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 "Az LZMA%c szótár méretének módosítása erről: %s MiB, erre: %s MiB, hogy ne lépje túl a(z) %s MiB-os korlátot"
-#: src/xz/coder.c:766
+#: src/xz/coder.c:776
#, 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 "A --filters%2$u szűrőhöz tartozó LZMA%1$c szótár méretének módosítása %3$s MiB-ról %4$s MiB-ra, hogy ne lépje túl a(z) %5$s MiB-os korlátot"
-#: src/xz/coder.c:1140
+#: src/xz/coder.c:1150
#, c-format
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=%<PRIu32>"
#~ msgstr "A kiválasztott egyezéskeresőhöz legalább nice=%<PRIu32> 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 <bruno@clisp.org>, 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
--- /dev/null
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 2b7afbd1..e718ea89 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2019-03-04 14:21+0100\n"
"Last-Translator: Milo Casagrande <milo@milo.name>\n"
"Language-Team: Italian <tp@lists.linux.it>\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:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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 %<PRIu32> threads."
msgstr "Vengono usati circa %<PRIu32> 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:591
+#, 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:614
#, 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:641
+#, 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:766
#, 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:776
+#, 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:1150
+#, 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 <tp@lists.linux.it>.\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=%<PRIu32>"
-msgstr "Lo strumento per cercare corrispondenze selezionato richiede almeno nice=%<PRIu32>"
-
-#: 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 [%<PRIu64>, %<PRIu64>]"
+#: src/xz/util.c:167
+#, fuzzy, c-format
+#| msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
+msgid "Value of the option '%s' must be in the range [%<PRIu64>, %<PRIu64>]"
msgstr "Il valore dell'opzione \"%s\" deve essere nell'intervallo [%<PRIu64>, %<PRIu64>]"
-#: 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=%<PRIu32>"
+#~ msgstr "Lo strumento per cercare corrispondenze selezionato richiede almeno nice=%<PRIu32>"
diff --git a/po/ko.gmo b/po/ko.gmo
new file mode 100644
index 00000000..7d33e874
--- /dev/null
+++ b/po/ko.gmo
Binary files differ
diff --git a/po/ko.po b/po/ko.po
index e9748008..573e3d7a 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2024-02-18 01:45+0900\n"
"Last-Translator: Seong-ho Cho <darkcircle.0426@gmail.com>\n"
"Language-Team: Korean <translation-team-ko@googlegroups.com>\n"
@@ -55,9 +55,9 @@ msgstr "'--files' ë˜ëŠ” '--files0' 옵션ì—는 í•˜ë‚˜ì˜ íŒŒì¼ë§Œ 지정할 ì
#. 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:685
-#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020
+#: src/xz/args.c:621 src/xz/coder.c:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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
@@ -151,46 +151,42 @@ msgstr "지ì›í•˜ì§€ 않는 í•„í„° ì²´ì¸ ë˜ëŠ” í•„í„° 옵션"
msgid "Decompression will need %s MiB of memory."
msgstr "압축 해제시 %s MiB 메모리 ìš©ëŸ‰ì´ í•„ìš”í•©ë‹ˆë‹¤."
-#: src/xz/coder.c:584
+#: src/xz/coder.c:591
#, c-format
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
msgstr "메모리 사용량 %s MiB ì œí•œì„ ë„˜ì§€ 않으려 스레드 수를 %s(ì—)ì„œ %s(으)ë¡œ 줄였습니다"
-#: src/xz/coder.c:604
+#: src/xz/coder.c:614
#, 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(ì—)ì„œ 하나로 줄었습니다. 메모리 사용 ìžë™ 제한량 %sMiB를 여전히 초과합니다. 메모리 공간 %sMiBê°€ 필요합니다. 어쨌든 계ì†í•©ë‹ˆë‹¤."
-#: src/xz/coder.c:631
+#: src/xz/coder.c:641
#, c-format
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
msgstr "메모리 사용 제한량 %sMiB를 넘지 않으려 ë‹¨ì¼ ìŠ¤ë ˆë“œ 모드로 전환합니다"
-#: src/xz/coder.c:756
+#: src/xz/coder.c:766
#, 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$sMiB를 넘지 않으려 %2$sMiBì—ì„œ %3$sMiBë¡œ LZMA%1$c 딕셔너리 í¬ê¸°ë¥¼ 조정했습니다"
-#: src/xz/coder.c:766
+#: src/xz/coder.c:776
#, 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 "메모리 사용 제한량 %5$sMiB를 넘지 않으려 %3$sMiBì—ì„œ %4$sMiBë¡œ --filters%2$uì˜ LZMA%1$c 딕셔너리 í¬ê¸°ë¥¼ 조정했습니다"
-#: src/xz/coder.c:1140
+#: src/xz/coder.c:1150
#, c-format
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
--- /dev/null
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 113180e5..d360cdce 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2024-02-15 21:15+0100\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -55,9 +55,9 @@ msgstr "Wraz z opcją „--files†lub „--files0†można podać tylko jeden
#. 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:685
-#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020
+#: src/xz/args.c:621 src/xz/coder.c:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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
@@ -151,46 +151,42 @@ msgstr "Nieobsługiwany łańcuch filtrów lub opcje filtra"
msgid "Decompression will need %s MiB of memory."
msgstr "Dekompresja będzie wymagała %s MiB pamięci."
-#: src/xz/coder.c:584
+#: src/xz/coder.c:591
#, c-format
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
msgstr "Zmniejszono liczbę wątków z %s do %s, aby nie przekroczyć limitu użycia pamięci %s MiB"
-#: src/xz/coder.c:604
+#: src/xz/coder.c:614
#, 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 "Zmniejszono liczbę wątków z %s do jednego. Automatyczny limit użycia pamięci %s MiB jest nadal przekroczony - wymagane jest %s MiB. Kontynuacja mimo to."
-#: src/xz/coder.c:631
+#: src/xz/coder.c:641
#, c-format
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
msgstr "Przełączenie w tryb jednowątkowy, aby nie przekroczyć limitu użycia pamięci %s MiB"
-#: src/xz/coder.c:756
+#: src/xz/coder.c:766
#, 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 "Skorygowano rozmiar słownika LZMA%c z %s MiB do %s MiB aby nie przekroczyć limitu użycia pamięci %s MiB"
-#: src/xz/coder.c:766
+#: src/xz/coder.c:776
#, 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 "Skorygowano rozmiar słownika LZMA%c dla --filters%u z %s MiB do %s MiB, aby nie przekroczyć limitu użycia pamięci %s MiB"
-#: src/xz/coder.c:1140
+#: src/xz/coder.c:1150
#, c-format
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"
"<translation-team-pl@lists.sourceforge.net>.\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
--- /dev/null
+++ b/po/pt.gmo
Binary files differ
diff --git a/po/pt.po b/po/pt.po
index a7233e05..ee544458 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2019-09-27 08:08+0100\n"
"Last-Translator: Pedro Albuquerque <palbuquerque73@gmail.com>\n"
"Language-Team: Portuguese <translation-team-pt@lists.sourceforge.net>\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:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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 %<PRIu32> threads."
msgstr "A usar até %<PRIu32> 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:591
+#, 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:614
#, 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:641
+#, 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:766
#, 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:776
+#, 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:1150
+#, 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 <translation-team-pt@lists.sourceforge.net>.\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=%<PRIu32>"
-msgstr "O localizador de correspondência seleccionado requer pelo menos nice=%<PRIu32>"
-
-#: 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 [%<PRIu64>, %<PRIu64>]"
+#: src/xz/util.c:167
+#, fuzzy, c-format
+#| msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
+msgid "Value of the option '%s' must be in the range [%<PRIu64>, %<PRIu64>]"
msgstr "O valor da opção \"%s\" deve estar no intervalo [%<PRIu64>, %<PRIu64>]"
-#: 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=%<PRIu32>"
+#~ msgstr "O localizador de correspondência seleccionado requer pelo menos nice=%<PRIu32>"
+
#~ 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
--- /dev/null
+++ b/po/pt_BR.gmo
Binary files differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 2a083f0c..52f588bd 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2023-01-12 14:40-0300\n"
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge.net>\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:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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 %<PRIu32> threads."
msgstr "Usando até %<PRIu32> 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:591
#, 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:614
#, 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:641
#, 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:766
#, 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:776
+#, 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:1150
+#, 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 <https://translationproject.org/team/pt_BR.html>.\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 [%<PRIu64>, %<PRIu64>]"
+#: src/xz/util.c:167
+#, fuzzy, c-format
+#| msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
+msgid "Value of the option '%s' must be in the range [%<PRIu64>, %<PRIu64>]"
msgstr "O valor da opção \"%s\" deve estar no intervalo [%<PRIu64>, %<PRIu64>]"
-#: 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
--- /dev/null
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index 1ddcd041..6186bce0 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2024-02-16 13:27+0100\n"
"Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -70,9 +70,9 @@ msgstr "Numai un fiÈ™ier poate fi specificat cu „--files†sau „--files0â€
#. 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:685
-#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020
+#: src/xz/args.c:621 src/xz/coder.c:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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
@@ -177,46 +177,42 @@ msgstr "Lanț de filtre sau opțiuni de filtrare neacceptate"
msgid "Decompression will need %s MiB of memory."
msgstr "Decomprimarea va avea nevoie de %sMio de memorie."
-#: src/xz/coder.c:584
+#: src/xz/coder.c:591
#, c-format
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
msgstr "Numărul de fire de execuție a fost redus de la %s la %s pentru a nu se depăși limita de utilizare a memoriei de %sMio"
-#: src/xz/coder.c:604
+#: src/xz/coder.c:614
#, 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-a redus numărul de fire de execuție de la %s la unul. Limita automată de utilizare a memoriei de %sMio este încă depășită. Sunt necesari %sMio de memorie. Se continuă în ciuda acestui lucru."
-#: src/xz/coder.c:631
+#: src/xz/coder.c:641
#, c-format
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
msgstr "S-a trecut la modul cu un singur-fir de execuție pentru a nu se depăși limita de utilizare a memoriei de %sMio"
-#: src/xz/coder.c:756
+#: src/xz/coder.c:766
#, 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-a ajustat dimensiunea dicționarului LZMA%c de la %sMio la %sMio pentru a nu se depăși limita de utilizare a memoriei de %sMio"
-#: src/xz/coder.c:766
+#: src/xz/coder.c:776
#, 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 "S-a ajustat dimensiunea dicționarului LZMA%c pentru „--filters%u†de la %sMio la %sMio pentru a nu depăși limita de utilizare a memoriei de %sMio"
-#: src/xz/coder.c:1140
+#: src/xz/coder.c:1150
#, c-format
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 <translation-team-ro@lists.sourceforge.net>\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
--- /dev/null
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 2b504e77..35356cb4 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2022-06-24 22:07+0800\n"
"Last-Translator: МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>\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:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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 %<PRIu32> threads."
msgstr "КориÑтим до %<PRIu32> нити."
-#: 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:591
+#, 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:614
#, 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:641
+#, 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:766
#, 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:776
+#, 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:1150
+#, 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=%<PRIu32>"
-msgstr "Изабрани налазач поклапања захтева барем „nice=%<PRIu32>“"
-
-#: 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 [%<PRIu64>, %<PRIu64>]"
+#: src/xz/util.c:167
+#, fuzzy, c-format
+#| msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
+msgid "Value of the option '%s' must be in the range [%<PRIu64>, %<PRIu64>]"
msgstr "ВредноÑÑ‚ опције „%s“ мора бити у опÑегу [%<PRIu64>, %<PRIu64>]"
-#: 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=%<PRIu32>"
+#~ msgstr "Изабрани налазач поклапања захтева барем „nice=%<PRIu32>“"
+
#~ 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
--- /dev/null
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 478b653f..8e85f2e8 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2024-02-15 21:37+0100\n"
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -61,9 +61,9 @@ msgstr "Endast en fil kan anges med â€--files†eller â€--files0â€."
#. 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:685
-#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020
+#: src/xz/args.c:621 src/xz/coder.c:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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
@@ -157,46 +157,42 @@ msgstr "Filterkedja eller filterflaggor stöds inte"
msgid "Decompression will need %s MiB of memory."
msgstr "Dekomprimering kommer att kräva %s MiB minne."
-#: src/xz/coder.c:584
+#: src/xz/coder.c:591
#, c-format
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
msgstr "Reducerade antalet trådar från %s till %s för att inte överstiga begränsningen av minnesanvändning på %s MiB"
-#: src/xz/coder.c:604
+#: src/xz/coder.c:614
#, 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 "Reducerade antalet trådar från %s till en. Den automatiska minnesanvändningsgränsen på %s MiB överskrids fortfarande. %s MiB minne krävs. Fortsätter i alla fall."
-#: src/xz/coder.c:631
+#: src/xz/coder.c:641
#, c-format
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
msgstr "Ändrar till enkeltrådat läge för att inte överskrida minnesanvändningsgränsen på %s MiB"
-#: src/xz/coder.c:756
+#: src/xz/coder.c:766
#, 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 "Justerade storlek för LZMA%c-lexikon från %s MiB till %s MiB för att inte överstiga begränsningen av minnesanvändning på %s MiB"
-#: src/xz/coder.c:766
+#: src/xz/coder.c:776
#, 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 "Justerade storlek för LZMA%c-lexikon för --filters%u från %s MiB till %s MiB för att inte överskrida minnesanvändningsgränsen på %s MiB"
-#: src/xz/coder.c:1140
+#: src/xz/coder.c:1150
#, c-format
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 <tp-sv@listor.tp-sv.se>\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=%<PRIu32>"
#~ msgstr "Den valda matchningshittaren kräver åtminstone nice=%<PRIu32>"
diff --git a/po/tr.gmo b/po/tr.gmo
new file mode 100644
index 00000000..12dcddc2
--- /dev/null
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index e4bec148..8ca438a1 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2022-12-05 19:00+0300\n"
"Last-Translator: Emir SARI <emir_sari@icloud.com>\n"
"Language-Team: Turkish <gnome-turk@gnome.org>\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:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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 %<PRIu32> threads."
msgstr "En çok %<PRIu32> 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:591
#, 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:614
#, 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:641
#, 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:766
#, 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:776
+#, 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:1150
+#, 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 [%<PRIu64>, %<PRIu64>]"
+#: src/xz/util.c:167
+#, fuzzy, c-format
+#| msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
+msgid "Value of the option '%s' must be in the range [%<PRIu64>, %<PRIu64>]"
msgstr "'%s' seçeneği değeri erimde olmalıdır [%<PRIu64>, %<PRIu64>]"
-#: 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
--- /dev/null
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index d50cae99..940670ca 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2024-02-15 17:26+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
@@ -57,9 +57,9 @@ msgstr "Разом із параметрами --files або --files0 можнÐ
#. 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:685
-#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020
+#: src/xz/args.c:621 src/xz/coder.c:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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
@@ -155,46 +155,42 @@ msgstr "Ðепідтримуваний ланцюжок фільтруваннÑ
msgid "Decompression will need %s MiB of memory."
msgstr "Ð”Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ð´Ð¾Ð±Ð»ÑÑ‚ÑŒÑÑ %s МіБ пам'ÑÑ‚Ñ–."
-#: src/xz/coder.c:584
+#: src/xz/coder.c:591
#, 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 МіБ"
-#: src/xz/coder.c:604
+#: src/xz/coder.c:614
#, 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 МіБ уÑе ще перевищено. Потрібно %s МіБ пам'ÑÑ‚Ñ–. Продовжуємо роботу попри це."
-#: src/xz/coder.c:631
+#: src/xz/coder.c:641
#, c-format
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
msgstr "ПеремикаємоÑÑ Ð½Ð° однопотоковий режим, щоб не перевищувати Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– у %s МіБ"
-#: src/xz/coder.c:756
+#: src/xz/coder.c:766
#, 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 МіБ"
-#: src/xz/coder.c:766
+#: src/xz/coder.c:776
#, 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 "Скориговано розмір Ñловника LZMA%c Ð´Ð»Ñ --filters%u з %s МіБ до %s МіБ, щоб не перевищувати Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– у %s МіБ"
-#: src/xz/coder.c:1140
+#: src/xz/coder.c:1150
#, c-format
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
--- /dev/null
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index e8fac6ec..e70b9bfd 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2024-02-24 10:23+0700\n"
"Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
@@ -57,9 +57,9 @@ msgstr "Chỉ được đưa ra một tập tin cho “--files†hay “--files
#. 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:685
-#: src/xz/file_io.c:759 src/xz/file_io.c:849 src/xz/file_io.c:1020
+#: src/xz/args.c:621 src/xz/coder.c:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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
@@ -153,46 +153,42 @@ msgstr "Không há»— trợ lá»c móc xích hay tùy chá»n lá»c"
msgid "Decompression will need %s MiB of memory."
msgstr "Giải nén sẽ cần %s MiB bộ nhớ."
-#: src/xz/coder.c:584
+#: src/xz/coder.c:591
#, c-format
msgid "Reduced the number of threads from %s to %s to not exceed the memory usage limit of %s MiB"
msgstr "Äã giảm số lượng tuyến trình từ %s xuống %s để không vượt quá giá»›i hạn sá»­ dụng bá»™ nhá»› là %s MiB"
-#: src/xz/coder.c:604
+#: src/xz/coder.c:614
#, 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 "Äã giảm số lượng tuyến trình từ %s xuống còn má»™t. Giá»›i hạn sá»­ dụng bá»™ nhá»› tá»± Ä‘á»™ng %s MiB vẫn Ä‘ang bị vượt quá. Cần có %s MiB bá»™ nhá»›. Vẫn tiếp tục."
-#: src/xz/coder.c:631
+#: src/xz/coder.c:641
#, c-format
msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
msgstr "Chuyển sang chế độ đơn tuyến trình để không vượt quá giới hạn sử dụng bộ nhớ là %sMiB"
-#: src/xz/coder.c:756
+#: src/xz/coder.c:766
#, 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 "Chỉnh cỡ từ điển LZMA%c từ %s MiB thành %s MiB để không vượt quá giới hạn tiêu dùng bộ nhớ là %s MiB"
-#: src/xz/coder.c:766
+#: src/xz/coder.c:776
#, 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 "Chỉnh cỡ từ điển LZMA%c cho --filters%u từ %s MiB thành %s MiB để không vượt quá giới hạn tiêu dùng bộ nhớ là %s MiB"
-#: src/xz/coder.c:1140
+#: src/xz/coder.c:1150
#, c-format
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: <https://translationproject.org/team/vi.html>.\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..c8b566b9
--- /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 <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: XZ Utils 5.6.1\n"
+"Report-Msgid-Bugs-To: xz@tukaani.org\n"
+"POT-Creation-Date: 2024-03-09 16:17+0800\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+"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:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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 %<PRIu32> 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:591
+#, 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:614
+#, 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:641
+#, c-format
+msgid "Switching to single-threaded mode to not exceed the memory usage limit of %s MiB"
+msgstr ""
+
+#: src/xz/coder.c:766
+#, 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:776
+#, 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:1150
+#, 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 [%<PRIu64>, %<PRIu64>]"
+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
--- /dev/null
+++ b/po/zh_CN.gmo
Binary files differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 32dd3892..1b6cc7ab 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2024-02-05 15:15-0500\n"
"Last-Translator: Boyuan Yang <073plan@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\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:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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 %<PRIu32> threads."
msgstr "使用最多 %<PRIu32> 个线程。"
-#: 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:591
#, 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:614
#, 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:641
#, 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:766
#, 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:776
#, 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:1150
#, 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 简体中文翻译团队 <i18n-zh@googlegroups.com>\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 [%<PRIu64>, %<PRIu64>]"
msgid "Value of the option '%s' must be in the range [%<PRIu64>, %<PRIu64>]"
msgstr "选项“%sâ€çš„值必须ä½äºŽ [%<PRIu64>, %<PRIu64>] 范围内"
-#: 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=%<PRIu32>"
#~ msgstr "所选中的匹é…æœç´¢å™¨ï¼ˆmatch finderï¼‰è‡³å°‘éœ€è¦ nice=%<PRIu32>"
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
new file mode 100644
index 00000000..a54e682b
--- /dev/null
+++ b/po/zh_TW.gmo
Binary files differ
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 6c7f8825..2e7b17ba 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-03-09 16:17+0800\n"
"PO-Revision-Date: 2023-07-08 23:05+0800\n"
"Last-Translator: Yi-Jyun Pan <pan93412@gmail.com>\n"
"Language-Team: Chinese (traditional) <zh-l10n@lists.linux.org.tw>\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:1068 src/xz/coder.c:1084
+#: src/xz/coder.c:1384 src/xz/coder.c:1387 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 %<PRIu32> threads."
msgstr "使用最多 %<PRIu32> 個執行緒。"
-#: 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:591
#, 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:614
#, 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:641
#, 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:766
#, 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:776
+#, 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:1150
+#, 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 [%<PRIu64>, %<PRIu64>]"
+#: src/xz/util.c:167
+#, fuzzy, c-format
+#| msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
+msgid "Value of the option '%s' must be in the range [%<PRIu64>, %<PRIu64>]"
msgstr "é¸é …「%sã€çš„數值必須在 [%<PRIu64>, %<PRIu64>] 範åœå…§"
-#: 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 <mario.blaettermann@gmail.com>, 2015, 2019-2020, 2022-2024.
diff --git a/po4a/fr.po b/po4a/fr.po
index db6df2a3..c1b7b070 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-03-05 19:30+0800\n"
+"POT-Creation-Date: 2024-03-09 16:16+0800\n"
"PO-Revision-Date: 2021-12-01 15:17+0100\n"
"Last-Translator: bubu <bubub@no-log.org> \n"
"Language-Team: French <debian-l10n-french@lists.debian.org> \n"
@@ -27,9 +27,9 @@ msgid "XZ"
msgstr "XZ"
#. type: TH
-#: ../src/xz/xz.1:7 ../src/scripts/xzdiff.1:8 ../src/scripts/xzgrep.1:8
+#: ../src/xz/xz.1:7
#, no-wrap
-msgid "2024-02-13"
+msgid "2024-02-25"
msgstr ""
#. type: TH
@@ -250,6 +250,24 @@ msgstr ""
"lzma>)."
#. type: Plain text
+#: ../src/xz/xz.1:169
+#, fuzzy
+#| msgid ""
+#| "The operation mode is set to compress and the I<file> 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<file> 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<fichier> 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 ""
"After successfully compressing or decompressing the I<file>, B<xz> copies "
@@ -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<xz> 5.2.6, this option also makes B<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 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<xz> 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<size>"
+msgid "B<--block-list=>I<items>"
+msgstr "B<--block-size=>I<taille>"
+
#. type: Plain text
#: ../src/xz/xz.1:928
msgid ""
@@ -1954,6 +1999,13 @@ msgstr ""
"échouera. Voir B<--memlimit-compress=>I<limite> pour les manières possibles "
"d'indiquer la I<limite>."
+#. type: TP
+#: ../src/xz/xz.1:1151
+#, fuzzy, no-wrap
+#| msgid "B<--memlimit-decompress=>I<limit>"
+msgid "B<--memlimit-mt-decompress=>I<limit>"
+msgstr "B<--memlimit-decompress=>I<limite>"
+
#. 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<file>]"
+msgid "B<--filters=>I<filters>"
+msgstr "B<--files>[B<=>I<fichier>]"
+
#. 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 ""
@@ -2736,6 +2802,13 @@ msgid "B<--armthumb>[B<=>I<options>]"
msgstr "B<--armthumb>[B<=>I<options>]"
#. type: TP
+#: ../src/xz/xz.1:1807
+#, fuzzy, no-wrap
+#| msgid "B<--arm>[B<=>I<options>]"
+msgid "B<--arm64>[B<=>I<options>]"
+msgstr "B<--arm>[B<=>I<options>]"
+
+#. type: TP
#: ../src/xz/xz.1:1809
#, no-wrap
msgid "B<--powerpc>[B<=>I<options>]"
@@ -2755,6 +2828,7 @@ msgstr "B<--sparc>[B<=>I<options>]"
#. type: TP
#: ../src/xz/xz.1:1815
+#, no-wrap
msgid "B<--riscv>[B<=>I<options>]"
msgstr "B<--riscv>[B<=>I<options>]"
@@ -2769,7 +2843,7 @@ msgstr ""
"chaîne de filtrage."
#. type: Plain text
-#: ../src/xz/xz.1:1833
+#: ../src/xz/xz.1:1835
msgid ""
"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 "
@@ -2781,13 +2855,13 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:1836
+#: ../src/xz/xz.1:1838
msgid "These BCJ filters have known problems related to the compression ratio:"
msgstr ""
"Ces filtres BCJ présentent des problèmes connus liés au taux de compression :"
#. type: Plain text
-#: ../src/xz/xz.1:1843
+#: ../src/xz/xz.1:1845
msgid ""
"Some types of files containing executable code (for example, object files, "
"static libraries, and Linux kernel modules) have the addresses in the "
@@ -2796,7 +2870,7 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:1853
+#: ../src/xz/xz.1:1855
msgid ""
"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 "
@@ -2807,7 +2881,7 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:1858
+#: ../src/xz/xz.1:1860
msgid ""
"Different instruction sets have different alignment: the executable file "
"must be aligned to a multiple of this value in the input data to make the "
@@ -2857,19 +2931,19 @@ msgid "ARM-Thumb"
msgstr "ARM-Thumb"
#. type: tbl table
-#: ../src/xz/xz.1:1869
+#: ../src/xz/xz.1:1871
#, no-wrap
msgid "ARM64"
msgstr ""
#. type: tbl table
-#: ../src/xz/xz.1:1869
+#: ../src/xz/xz.1:1871
#, no-wrap
msgid "4096-byte alignment is best"
msgstr ""
#. type: tbl table
-#: ../src/xz/xz.1:1870
+#: ../src/xz/xz.1:1872
#, no-wrap
msgid "PowerPC"
msgstr "PowerPC"
@@ -2893,25 +2967,25 @@ msgid "16"
msgstr "16"
#. type: tbl table
-#: ../src/xz/xz.1:1871
+#: ../src/xz/xz.1:1873
#, no-wrap
msgid "Itanium"
msgstr ""
#. type: tbl table
-#: ../src/xz/xz.1:1872
+#: ../src/xz/xz.1:1874
#, no-wrap
msgid "SPARC"
msgstr "SPARC"
#. type: tbl table
-#: ../src/xz/xz.1:1873
+#: ../src/xz/xz.1:1875
#, no-wrap
msgid "RISC-V"
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:1883
+#: ../src/xz/xz.1:1885
msgid ""
"Since the BCJ-filtered data is usually compressed with LZMA2, the "
"compression ratio may be improved slightly if the LZMA2 options are set to "
@@ -2919,14 +2993,14 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:1889
+#: ../src/xz/xz.1:1891
msgid ""
"IA-64 filter has 16-byte alignment so B<pb=4,lp=4,lc=0> is good with LZMA2 "
"(2^4=16)."
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:1904
+#: ../src/xz/xz.1:1906
msgid ""
"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 "
@@ -2936,19 +3010,19 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:1908
+#: ../src/xz/xz.1:1910
msgid "ARM64 is always 4-byte aligned so B<pb=2,lp=2,lc=2> is the best."
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:1913
+#: ../src/xz/xz.1:1915
msgid ""
"The x86 filter is an exception. It's usually good to stick to LZMA2's "
"defaults (B<pb=2,lp=0,lc=3>) when compressing x86 executables."
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:1917
+#: ../src/xz/xz.1:1919
msgid "All BCJ filters support the same I<options>:"
msgstr "Tous les filtres BCJ prennent en charge les mêmes I<options> :"
@@ -2988,7 +3062,7 @@ msgstr ""
"utilisé que s'il n'est pas le dernier filtre dans la chaîne."
#. type: Plain text
-#: ../src/xz/xz.1:1947
+#: ../src/xz/xz.1:1949
msgid ""
"Currently only simple byte-wise delta calculation is supported. It can be "
"useful when compressing, for example, uncompressed bitmap images or "
@@ -2998,7 +3072,7 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:1950
+#: ../src/xz/xz.1:1952
msgid "Supported I<options>:"
msgstr "I<options> prises en charge :"
@@ -3009,14 +3083,14 @@ msgid "B<dist=>I<distance>"
msgstr "B<dist=>I<distance>"
#. type: Plain text
-#: ../src/xz/xz.1:1959
+#: ../src/xz/xz.1:1961
msgid ""
"Specify the I<distance> of the delta calculation in bytes. I<distance> must "
"be 1\\(en256. The default is 1."
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:1964
+#: ../src/xz/xz.1:1966
msgid ""
"For example, with B<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."
@@ -3127,7 +3201,7 @@ msgid "Elapsed time in the format M:SS or H:MM:SS."
msgstr "Temps écoulé dans le format M:SS ou H:MM:SS."
#. type: Plain text
-#: ../src/xz/xz.1:2017
+#: ../src/xz/xz.1:2019
msgid ""
"Estimated remaining time is shown only when the size of the input file is "
"known and a couple of seconds have already passed since B<xz> started "
@@ -3136,7 +3210,7 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2032
+#: ../src/xz/xz.1:2034
msgid ""
"When standard error is not a terminal, B<--verbose> will make B<xz> print "
"the filename, compressed size, uncompressed size, compression ratio, and "
@@ -3196,7 +3270,7 @@ msgid "B<--info-memory>"
msgstr "B<--info-memory>"
#. type: Plain text
-#: ../src/xz/xz.1:2061
+#: ../src/xz/xz.1:2063
msgid ""
"Display, in human-readable format, how much physical memory (RAM) and how "
"many processor threads B<xz> thinks the system has and the memory usage "
@@ -3255,7 +3329,7 @@ msgid "ROBOT MODE"
msgstr "MODE ROBOT"
#. type: Plain text
-#: ../src/xz/xz.1:2097
+#: ../src/xz/xz.1:2099
msgid ""
"The robot mode is activated with the B<--robot> option. It makes the output "
"of B<xz> easier to parse by other programs. Currently B<--robot> is "
@@ -3439,7 +3513,7 @@ msgid "6."
msgstr "6."
#. type: Plain text
-#: ../src/xz/xz.1:2179
+#: ../src/xz/xz.1:2181
msgid ""
"Compression ratio, for example, B<0.123>. If ratio is over 9.999, three "
"dashes (B<--->) are displayed instead of the ratio."
@@ -3787,33 +3861,61 @@ 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:2384
+#, fuzzy, no-wrap
+#| msgid "Filter"
+msgid "Filters help"
+msgstr "Filtre"
+
#. type: Plain text
-#: ../src/xz/xz.1:2385
+#: ../src/xz/xz.1:2387
msgid ""
"B<xz --robot --filters-help> prints the supported filters in the following "
"format:"
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2387
+#: ../src/xz/xz.1:2389
msgid ""
"I<filter>B<:>I<option>B<=E<lt>>I<value>B<E<gt>,"
">I<option>B<=E<lt>>I<value>B<E<gt>>..."
msgstr ""
+#. type: TP
+#: ../src/xz/xz.1:2389
+#, fuzzy, no-wrap
+#| msgid "B<file>"
+msgid "I<filter>"
+msgstr "B<file>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2392
+#, fuzzy
+#| msgid "Name of the integrity check"
+msgid "Name of the filter"
+msgstr "Nom de la vérification d'intégrité"
+
+#. type: TP
+#: ../src/xz/xz.1:2392
+#, fuzzy, no-wrap
+#| msgid "Supported I<options>:"
+msgid "I<option>"
+msgstr "I<options> prises en charge :"
+
#. type: Plain text
-#: ../src/xz/xz.1:2393
+#: ../src/xz/xz.1:2395
msgid "Name of a filter specific option"
msgstr ""
#. type: TP
-#: ../src/xz/xz.1:2393
+#: ../src/xz/xz.1:2395
#, no-wrap
msgid "I<value>"
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2406
+#: ../src/xz/xz.1:2408
msgid ""
"Numeric I<value> ranges appear as B<E<lt>>I<min>B<->I<max>B<E<gt>>. String "
"I<value> choices are shown within B<E<lt> E<gt>> and separated by a B<|> "
@@ -3821,7 +3923,7 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2408
+#: ../src/xz/xz.1:2410
msgid "Each filter is printed on its own line."
msgstr ""
@@ -3832,7 +3934,7 @@ msgid "Memory limit information"
msgstr "Information de limite de mémoire"
#. type: Plain text
-#: ../src/xz/xz.1:2412
+#: ../src/xz/xz.1:2414
msgid ""
"B<xz --robot --info-memory> prints a single line with multiple tab-separated "
"columns:"
@@ -3845,12 +3947,12 @@ msgid "1."
msgstr "1."
#. type: Plain text
-#: ../src/xz/xz.1:2414
+#: ../src/xz/xz.1:2416
msgid "Total amount of physical memory (RAM) in bytes."
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2421
+#: ../src/xz/xz.1:2423
msgid ""
"Memory usage limit for compression in bytes (B<--memlimit-compress>). A "
"special value of B<0> indicates the default setting which for single-"
@@ -3858,7 +3960,7 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2428
+#: ../src/xz/xz.1:2430
msgid ""
"Memory usage limit for decompression in bytes (B<--memlimit-decompress>). A "
"special value of B<0> indicates the default setting which for single-"
@@ -3866,7 +3968,7 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2440
+#: ../src/xz/xz.1:2442
msgid ""
"Since B<xz> 5.3.4alpha: Memory usage for multi-threaded decompression in "
"bytes (B<--memlimit-mt-decompress>). This is never zero because a system-"
@@ -3877,7 +3979,7 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2452
+#: ../src/xz/xz.1:2454
msgid ""
"Since B<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 "
@@ -3887,12 +3989,12 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2457
+#: ../src/xz/xz.1:2459
msgid "Since B<xz> 5.3.4alpha: Number of available processor threads."
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2461
+#: ../src/xz/xz.1:2463
msgid ""
"In the future, the output of B<xz --robot --info-memory> may have more "
"columns, but never more than a single line."
@@ -3907,14 +4009,14 @@ msgid "Version"
msgstr "Version"
#. type: Plain text
-#: ../src/xz/xz.1:2467
+#: ../src/xz/xz.1:2469
msgid ""
"B<xz --robot --version> prints the version number of B<xz> and liblzma in "
"the following format:"
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2469
+#: ../src/xz/xz.1:2471
msgid "B<XZ_VERSION=>I<XYYYZZZS>"
msgstr "B<XZ_VERSION=>I<XYYYZZZS>"
@@ -4095,7 +4197,7 @@ msgid "B<XZ_OPT>"
msgstr "B<XZ_OPT>"
#. type: Plain text
-#: ../src/xz/xz.1:2551
+#: ../src/xz/xz.1:2553
msgid ""
"This is for passing options to B<xz> when it is not possible to set the "
"options directly on the B<xz> command line. This is the case when B<xz> is "
@@ -4103,13 +4205,13 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2557
+#: ../src/xz/xz.1:2559
#, no-wrap
msgid "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
msgstr "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
#. type: Plain text
-#: ../src/xz/xz.1:2571
+#: ../src/xz/xz.1:2573
msgid ""
"Scripts may use B<XZ_OPT>, for example, to set script-specific default "
"compression options. It is still recommended to allow users to override "
@@ -4118,7 +4220,7 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2578
+#: ../src/xz/xz.1:2580
#, no-wrap
msgid ""
"CW<XZ_OPT=${XZ_OPT-\"-7e\"}\n"
@@ -4276,7 +4378,7 @@ msgid "Streamed vs. non-streamed .lzma files"
msgstr "Fichiers .lzma en flux ou non"
#. type: Plain text
-#: ../src/xz/xz.1:2665
+#: ../src/xz/xz.1:2667
msgid ""
"The uncompressed size of the file can be stored in the B<.lzma> header. "
"LZMA Utils does that when compressing regular files. The alternative is to "
@@ -4286,7 +4388,7 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2686
+#: ../src/xz/xz.1:2688
msgid ""
"B<xz> supports decompressing B<.lzma> files with or without end-of-payload "
"marker, but all B<.lzma> files created by B<xz> will use end-of-payload "
@@ -4523,7 +4625,7 @@ msgid "CW<xz -dk bar.xz>\n"
msgstr "CW<xz -dk bidule.xz>\n"
#. type: Plain text
-#: ../src/xz/xz.1:2864
+#: ../src/xz/xz.1:2866
msgid ""
"Create I<baz.tar.xz> with the preset B<-4e> (B<-4 --extreme>), which is "
"slower than the default B<-6>, but needs less memory for compression and "
@@ -4531,7 +4633,7 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2869
+#: ../src/xz/xz.1:2871
#, no-wrap
msgid "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
msgstr "CW<tar cf - truc | xz -4e E<gt> truc.tar.xz>\n"
@@ -4663,7 +4765,7 @@ msgstr ""
"l'augmenter : "
#. type: Plain text
-#: ../src/xz/xz.1:2976
+#: ../src/xz/xz.1:2978
#, no-wrap
msgid ""
"CW<NEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
@@ -4675,7 +4777,7 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2986
+#: ../src/xz/xz.1:2988
msgid ""
"The simplest use for custom filter chains is customizing a LZMA2 preset. "
"This can be useful, because the presets cover only a subset of the "
@@ -4699,7 +4801,7 @@ msgstr ""
"tableaux :"
#. type: Plain text
-#: ../src/xz/xz.1:3019
+#: ../src/xz/xz.1:3021
msgid ""
"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 B<xz -8> "
@@ -4708,7 +4810,7 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:3024
+#: ../src/xz/xz.1:3026
#, no-wrap
msgid "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
msgstr "CW<xz --lzma2=preset=1,dict=32MiB toto.tar>\n"
@@ -4768,7 +4870,7 @@ msgstr ""
"ci-dessus n'est pas utile pour les petits fichiers."
#. type: Plain text
-#: ../src/xz/xz.1:3077
+#: ../src/xz/xz.1:3079
msgid ""
"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 "
@@ -4779,13 +4881,13 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:3082
+#: ../src/xz/xz.1:3084
#, no-wrap
msgid "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
msgstr "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB toto>\n"
#. type: Plain text
-#: ../src/xz/xz.1:3105
+#: ../src/xz/xz.1:3107
msgid ""
"If you want to squeeze out as many bytes as possible, adjusting the number "
"of literal context bits (I<lc>) and number of position bits (I<pb>) can "
@@ -4797,13 +4899,13 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:3110
+#: ../src/xz/xz.1:3112
#, no-wrap
msgid "CW<xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar>\n"
msgstr "CW<xz --lzma2=preset=6e,pb=0,lc=4 code_source.tar>\n"
#. type: Plain text
-#: ../src/xz/xz.1:3118
+#: ../src/xz/xz.1:3120
msgid ""
"Using another filter together with LZMA2 can improve compression with "
"certain file types. For example, to compress a x86-32 or x86-64 shared "
@@ -4811,7 +4913,7 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:3123
+#: ../src/xz/xz.1:3125
#, no-wrap
msgid "CW<xz --x86 --lzma2 libfoo.so>\n"
msgstr "CW<xz --x86 --lzma2 libtoto.so>\n"
@@ -4842,7 +4944,7 @@ msgstr ""
"pour la compression effective."
#. type: Plain text
-#: ../src/xz/xz.1:3153
+#: ../src/xz/xz.1:3155
msgid ""
"The image has to be saved in uncompressed format, for example, as "
"uncompressed TIFF. The distance parameter of the Delta filter is set to "
@@ -4852,13 +4954,13 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:3158
+#: ../src/xz/xz.1:3160
#, no-wrap
msgid "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
msgstr "CW<xz --delta=dist=3 --lzma2=pb=0 toto.tiff>\n"
#. type: Plain text
-#: ../src/xz/xz.1:3166
+#: ../src/xz/xz.1:3168
msgid ""
"If multiple images have been put into a single archive (for example, B<."
"tar>), the Delta filter will work on that too as long as all images have the "
@@ -4883,17 +4985,17 @@ msgstr ""
"B<gzip>(1), B<bzip2>(1), B<7z>(1)"
#. type: Plain text
-#: ../src/xz/xz.1:3178
+#: ../src/xz/xz.1:3180
msgid "XZ Utils: E<lt>https://xz.tukaani.org/xz-utils/E<gt>"
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:3180 ../src/xzdec/xzdec.1:144
+#: ../src/xz/xz.1:3182 ../src/xzdec/xzdec.1:144
msgid "XZ Embedded: E<lt>https://xz.tukaani.org/xz-embedded/E<gt>"
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:3181
+#: ../src/xz/xz.1:3183
msgid "LZMA SDK: E<lt>https://7-zip.org/sdk.htmlE<gt>"
msgstr ""
@@ -5142,12 +5244,25 @@ msgstr ""
msgid "XZDIFF"
msgstr "XZDIFF"
+#. type: TH
+#: ../src/scripts/xzdiff.1:8 ../src/scripts/xzgrep.1:8
+#, no-wrap
+msgid "2024-02-13"
+msgstr ""
+
#. type: Plain text
#: ../src/scripts/xzdiff.1:11
msgid "xzcmp, xzdiff, lzcmp, lzdiff - compare compressed files"
msgstr "xzcmp, xzdiff, lzcmp, lzdiff - Comparer des fichiers compressés."
#. type: Plain text
+#: ../src/scripts/xzdiff.1:17
+#, fuzzy
+#| msgid "B<xz> [I<option...>] [I<file...>]"
+msgid "B<xzcmp> [I<option...>] I<file1> [I<file2>]"
+msgstr "B<xz> [I<option...>] [I<fichier...>]"
+
+#. type: Plain text
#: ../src/scripts/xzdiff.1:20
msgid "B<xzdiff> \\&..."
msgstr ""
@@ -5190,12 +5305,38 @@ msgid ""
msgstr ""
#. type: Plain text
+#: ../src/scripts/xzdiff.1:78
+#, fuzzy
+#| msgid ""
+#| "The command named B<lzless> is provided for backward compatibility with "
+#| "LZMA Utils."
+msgid ""
+"The commands B<lzcmp> and B<lzdiff> are provided for backward compatibility "
+"with LZMA Utils."
+msgstr ""
+"La commande nommée B<lzless> est fournie pour la rétrocompatibilité avec les "
+"utilitaires LZMA."
+
+#. type: Plain text
#: ../src/scripts/xzdiff.1:87
msgid ""
"If a decompression error occurs, the exit status is B<2>. Otherwise the "
"exit status of B<cmp>(1) or B<diff>(1) is used."
msgstr ""
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:96
+#, fuzzy
+#| msgid ""
+#| "B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), "
+#| "B<gzip>(1), B<bzip2>(1), B<7z>(1)"
+msgid ""
+"B<cmp>(1), B<diff>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), "
+"B<zstd>(1), B<lz4>(1)"
+msgstr ""
+"B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), "
+"B<gzip>(1), B<bzip2>(1), B<7z>(1)"
+
#. type: TH
#: ../src/scripts/xzgrep.1:8
#, no-wrap
@@ -5208,6 +5349,13 @@ msgid "xzgrep - search possibly-compressed files for patterns"
msgstr ""
#. type: Plain text
+#: ../src/scripts/xzgrep.1:17
+#, fuzzy
+#| msgid "B<xz> [I<option...>] [I<file...>]"
+msgid "B<xzgrep> [I<option...>] [I<pattern_list>] [I<file...>]"
+msgstr "B<xz> [I<option...>] [I<fichier...>]"
+
+#. type: Plain text
#: ../src/scripts/xzgrep.1:20
msgid "B<xzegrep> \\&..."
msgstr ""
@@ -5259,11 +5407,60 @@ msgid ""
msgstr ""
#. type: Plain text
+#: ../src/scripts/xzgrep.1:75
+#, fuzzy
+#| msgid "B<-v>, B<--verbose>"
+msgid "B<-r>, B<--recursive>"
+msgstr "B<-v>, B<--verbose>"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:78
+#, fuzzy
+#| msgid "B<-f>, B<--force>"
+msgid "B<-R>, B<--dereference-recursive>"
+msgstr "B<-f>, B<--force>"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:81
+#, fuzzy
+#| msgid "B<-V>, B<--version>"
+msgid "B<-d>, B<--directories=>I<action>"
+msgstr "B<-V>, B<--version>"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:84
+#, fuzzy
+#| msgid "B<-l>, B<--list>"
+msgid "B<-Z>, B<--null>"
+msgstr "B<-l>, B<--list>"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:87
+#, fuzzy
+#| msgid "B<-l>, B<--list>"
+msgid "B<-z>, B<--null-data>"
+msgstr "B<-l>, B<--list>"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:89
+#, fuzzy
+#| msgid "B<--files>[B<=>I<file>]"
+msgid "B<--include=>I<glob>"
+msgstr "B<--files>[B<=>I<fichier>]"
+
+#. type: Plain text
#: ../src/scripts/xzgrep.1:91
msgid "B<--exclude=>I<glob>"
msgstr ""
#. type: Plain text
+#: ../src/scripts/xzgrep.1:93
+#, fuzzy
+#| msgid "B<--files>[B<=>I<file>]"
+msgid "B<--exclude-from=>I<file>"
+msgstr "B<--files>[B<=>I<fichier>]"
+
+#. type: Plain text
#: ../src/scripts/xzgrep.1:95
msgid "B<--exclude-dir=>I<glob>"
msgstr ""
@@ -5276,6 +5473,19 @@ msgid ""
msgstr ""
#. type: Plain text
+#: ../src/scripts/xzgrep.1:109
+#, fuzzy
+#| msgid ""
+#| "The command named B<lzless> is provided for backward compatibility with "
+#| "LZMA Utils."
+msgid ""
+"The commands B<lzgrep>, B<lzegrep>, and B<lzfgrep> are provided for backward "
+"compatibility with LZMA Utils."
+msgstr ""
+"La commande nommée B<lzless> est fournie pour la rétrocompatibilité avec les "
+"utilitaires LZMA."
+
+#. type: Plain text
#: ../src/scripts/xzgrep.1:115
msgid ""
"At least one match was found from at least one of the input files. No "
@@ -5311,6 +5521,19 @@ msgid ""
"B<grep -E>, or B<grep -F>."
msgstr ""
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:144
+#, fuzzy
+#| msgid ""
+#| "B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), "
+#| "B<gzip>(1), B<bzip2>(1), B<7z>(1)"
+msgid ""
+"B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), "
+"B<lz4>(1), B<zgrep>(1)"
+msgstr ""
+"B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), "
+"B<gzip>(1), B<bzip2>(1), B<7z>(1)"
+
#. type: TH
#: ../src/scripts/xzless.1:8
#, no-wrap
@@ -5420,6 +5643,20 @@ msgstr ""
"xzmore, lzmore - Voir le contenu des fichiers (texte) compressés xz ou lzma"
#. type: Plain text
+#: ../src/scripts/xzmore.1:15
+#, fuzzy
+#| msgid "B<xzless> [I<file>...]"
+msgid "B<xzmore> [I<file>...]"
+msgstr "B<xzless> [I<fichier>...]"
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:18
+#, fuzzy
+#| msgid "B<lzless> [I<file>...]"
+msgid "B<lzmore> [I<file>...]"
+msgstr "B<lzless> [I<fichier>...]"
+
+#. type: Plain text
#: ../src/scripts/xzmore.1:35
msgid ""
"B<xzmore> displays text from compressed files to a terminal using "
@@ -5438,6 +5675,18 @@ msgid ""
"provides more advanced features."
msgstr ""
+#. type: Plain text
+#: ../src/scripts/xzmore.1:51
+#, fuzzy
+#| msgid ""
+#| "The command named B<lzless> is provided for backward compatibility with "
+#| "LZMA Utils."
+msgid ""
+"The command B<lzmore> is provided for backward compatibility with LZMA Utils."
+msgstr ""
+"La commande nommée B<lzless> est fournie pour la rétrocompatibilité avec les "
+"utilitaires LZMA."
+
#. type: TP
#: ../src/scripts/xzmore.1:53
#, no-wrap
diff --git a/po4a/fr.po.authors b/po4a/fr.po.authors
new file mode 100644
index 00000000..91532963
--- /dev/null
+++ b/po4a/fr.po.authors
@@ -0,0 +1,6 @@
+PO4A-HEADER: position=^\.\\" Author; mode=after; beginboundary=^\.\\"$
+.\"
+.\" french translation of XZ Utils man
+.\" Copyright (C) 2021 Debian French l10n team <debian-l10n-french@lists.debian.org>
+.\" Translator
+.\" bubu <bubub@no-log.org>, 2021.
diff --git a/po4a/ko.po.authors b/po4a/ko.po.authors
new file mode 100644
index 00000000..255e2b18
--- /dev/null
+++ b/po4a/ko.po.authors
@@ -0,0 +1,4 @@
+PO4A-HEADER: position=^\.\\" Author; mode=after; beginboundary=^\.\\"$
+.\"
+.\" Korean translation for the xz-man
+.\" Seong-ho Cho <darkcircle.0426@gmail.com>, 2023, 2024.
diff --git a/po4a/man/de/lzmainfo.1 b/po4a/man/de/lzmainfo.1
new file mode 100644
index 00000000..2071b822
--- /dev/null
+++ b/po4a/man/de/lzmainfo.1
@@ -0,0 +1,46 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Author: Lasse Collin
+.\"
+.\" German translation for xz-man.
+.\" Mario Blättermann <mario.blaettermann@gmail.com>, 2015, 2019-2020, 2022-2024.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH LZMAINFO 1 "30. Juni 2013" Tukaani XZ\-Dienstprogramme
+.SH BEZEICHNUNG
+lzmainfo \- im .lzma\-Dateikopf enthaltene Informationen anzeigen
+.SH ÃœBERSICHT
+\fBlzmainfo\fP [\fB\-\-help\fP] [\fB\-\-version\fP] [\fIDatei …\fP]
+.SH BESCHREIBUNG
+\fBlzmainfo\fP zeigt die im \fB.lzma\fP\-Dateikopf enthaltenen Informationen an. Es
+liest die ersten 13 Bytes aus der angegebenen \fIDatei\fP, dekodiert den
+Dateikopf und gibt das Ergebnis in die Standardausgabe in einem
+menschenlesbaren Format aus. Falls keine \fIDatei\fPen angegeben werden oder
+die \fIDatei\fP als \fB\-\fP übergeben wird, dann wird aus der Standardeingabe
+gelesen.
+.PP
+In der Regel sind die unkomprimierte Größe der Daten und die Größe des
+Wörterbuchs am bedeutsamsten. Die unkomprimierte Größe kann nur dann
+angezeigt werden, wenn die Datei im \fB.lzma\fP\-Format kein Datenstrom ist. Die
+Größe des für die Dekompression nötigen Speichers beträgt einige Dutzend
+Kilobyte zuzüglich der Größe des Inhaltsverzeichnisses.
+.PP
+\fBlzmainfo\fP ist in den XZ\-Dienstprogrammen hauptsächlich zur Kompatibilität
+zu den LZMA\-Dienstprogrammen enthalten.
+.SH EXIT\-STATUS
+.TP
+\fB0\fP
+Alles ist in Ordnung.
+.TP
+\fB1\fP
+Ein Fehler ist aufgetreten.
+.SH FEHLER
+\fBlzmainfo\fP verwendet \fBMB\fP, während das korrekte Suffix \fBMiB\fP (2^20 Bytes)
+wäre. Damit wird die Kompatibilität zu den LZMA\-Dienstprogrammen
+gewährleistet.
+.SH "SIEHE AUCH"
+\fBxz\fP(1)
diff --git a/po4a/man/de/xz.1 b/po4a/man/de/xz.1
new file mode 100644
index 00000000..8b085771
--- /dev/null
+++ b/po4a/man/de/xz.1
@@ -0,0 +1,2049 @@
+'\" t
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Lasse Collin
+.\" Jia Tan
+.\"
+.\" German translation for xz-man.
+.\" Mario Blättermann <mario.blaettermann@gmail.com>, 2015, 2019-2020, 2022-2024.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZ 1 "25. Februar 2024" Tukaani XZ\-Dienstprogramme
+.
+.SH BEZEICHNUNG
+xz, unxz, xzcat, lzma, unlzma, lzcat \- .xz\- und .lzma\-Dateien komprimieren
+oder dekomprimieren
+.
+.SH ÃœBERSICHT
+\fBxz\fP [\fIOption…\fP] [\fIDatei…\fP]
+.
+.SH BEFEHLSALIASE
+\fBunxz\fP ist gleichbedeutend mit \fBxz \-\-decompress\fP.
+.br
+\fBxzcat\fP ist gleichbedeutend mit \fBxz \-\-decompress \-\-stdout\fP.
+.br
+\fBlzma\fP ist gleichbedeutend mit \fBxz \-\-format=lzma\fP.
+.br
+\fBunlzma\fP ist gleichbedeutend mit \fBxz \-\-format=lzma \-\-decompress\fP.
+.br
+\fBlzcat\fP ist gleichbedeutend mit \fBxz \-\-format=lzma \-\-decompress \-\-stdout\fP.
+.PP
+Wenn Sie Skripte schreiben, die Dateien dekomprimieren, sollten Sie stets
+den Namen \fBxz\fP mit den entsprechenden Argumenten (\fBxz \-d\fP oder \fBxz \-dc\fP)
+anstelle der Namen \fBunxz\fP und \fBxzcat\fP verwenden.
+.
+.SH BESCHREIBUNG
+\fBxz\fP ist ein Allzweckwerkzeug zur Datenkompression, dessen
+Befehlszeilensyntax denen von \fBgzip\fP(1) und \fBbzip2\fP(1) ähnelt. Das native
+Dateiformat ist das \fB.xz\fP\-Format, aber das veraltete, von den
+LZMA\-Dienstprogrammen verwendete Format sowie komprimierte Rohdatenströme
+ohne Containerformat\-Header werden ebenfalls unterstützt. Außerdem wird die
+Dekompression des von \fBlzip\fP verwendeten \fB.lz\fP\-Formats unterstützt.
+.PP
+\fBxz\fP komprimiert oder dekomprimiert jede \fIDatei\fP entsprechend des
+gewählten Vorgangsmodus. Falls entweder \fB\-\fP oder keine Datei angegeben ist,
+liest \fBxz\fP aus der Standardeingabe und leitet die verarbeiteten Dateien in
+die Standardausgabe. Wenn die Standardausgabe kein Terminal ist, verweigert
+\fBxz\fP das Schreiben komprimierter Daten in die Standardausgabe. Dabei wird
+eine Fehlermeldung angezeigt und die \fIDatei\fP übersprungen. Ebenso
+verweigert \fBxz\fP das Lesen komprimierter Daten aus der Standardeingabe, wenn
+diese ein Terminal ist.
+.PP
+\fIDateien\fP, die nicht als \fB\-\fP angegeben sind, werden in eine neue Datei
+geschrieben, deren Name aus dem Namen der Quell\-\fIDatei\fP abgeleitet wird
+(außer wenn \fB\-\-stdout\fP angegeben ist):
+.IP \(bu 3
+Bei der Kompression wird das Suffix des Formats der Zieldatei (\fB.xz\fP oder
+\&\fB.lzma\fP) an den Namen der Quelldatei angehängt und so der Name der
+Zieldatei gebildet.
+.IP \(bu 3
+Bei der Dekompression wird das Suffix \fB.xz\fP, \fB.lzma\fP oder \fB.lz\fP vom
+Dateinamen entfernt und so der Name der Zieldatei gebildet. Außerdem erkennt
+\fBxz\fP die Suffixe \fB.txz\fP und \fB.tlz\fP und ersetzt diese durch \fB.tar\fP.
+.PP
+Wenn die Zieldatei bereits existiert, wird eine Fehlermeldung angezeigt und
+die \fIDatei\fP übersprungen.
+.PP
+Außer beim Schreiben in die Standardausgabe zeigt \fBxz\fP eine Warnung an und
+überspringt die \fIDatei\fP, wenn eine der folgenden Bedingungen zutreffend
+ist:
+.IP \(bu 3
+Die \fIDatei\fP ist keine reguläre Datei. Symbolischen Verknüpfungen wird nicht
+gefolgt und diese daher nicht zu den regulären Dateien gezählt.
+.IP \(bu 3
+Die \fIDatei\fP hat mehr als eine harte Verknüpfung.
+.IP \(bu 3
+Für die \fIDatei\fP ist das »setuid«\-, »setgid«\- oder »sticky«\-Bit gesetzt.
+.IP \(bu 3
+Der Aktionsmodus wird auf Kompression gesetzt und die \fIDatei\fP hat bereits
+das Suffix des Zieldateiformats (\fB.xz\fP oder \fB.txz\fP beim Komprimieren in
+das \fB.xz\fP\-Format und \fB.lzma\fP oder \fB.tlz\fP beim Komprimieren in das
+\&\fB.lzma\fP\-Format).
+.IP \(bu 3
+Der Aktionsmodus wird auf Dekompression gesetzt und die \fIDatei\fP hat nicht
+das Suffix eines der unterstützten Zieldateiformate (\fB.xz\fP, \fB.txz\fP,
+\&\fB.lzma\fP, \fB.tlz\fP oder \fB.lz\fP).
+.PP
+Nach erfolgreicher Kompression oder Dekompression der \fIDatei\fP kopiert \fBxz\fP
+Eigentümer, Gruppe, Zugriffsrechte, Zugriffszeit und Änderungszeit aus der
+Ursprungs\-\fIDatei\fP in die Zieldatei. Sollte das Kopieren der Gruppe
+fehlschlagen, werden die Zugriffsrechte so angepasst, dass jenen Benutzern
+der Zugriff auf die Zieldatei verwehrt bleibt, die auch keinen Zugriff auf
+die Ursprungs\-\fIDatei\fP hatten. Das Kopieren anderer Metadaten wie
+Zugriffssteuerlisten oder erweiterter Attribute wird von \fBxz\fP noch nicht
+unterstützt.
+.PP
+Sobald die Zieldatei erfolgreich geschlossen wurde, wird die
+Ursprungs\-\fIDatei\fP entfernt. Dies wird durch die Option \fB\-\-keep\fP
+verhindert. Die Ursprungs\-\fIDatei\fP wird niemals entfernt, wenn die Ausgabe
+in die Standardausgabe geschrieben wird oder falls ein Fehler auftritt.
+.PP
+Durch Senden der Signale \fBSIGINFO\fP oder \fBSIGUSR1\fP an den \fBxz\fP\-Prozess
+werden Fortschrittsinformationen in den Fehlerkanal der Standardausgabe
+geleitet. Dies ist nur eingeschränkt hilfreich, wenn die
+Standardfehlerausgabe ein Terminal ist. Mittels \fB\-\-verbose\fP wird ein
+automatisch aktualisierter Fortschrittsanzeiger angezeigt.
+.
+.SS Speicherbedarf
+In Abhängigkeit von den gewählten Kompressionseinstellungen bewegt sich der
+Speicherverbrauch zwischen wenigen hundert Kilobyte und mehreren
+Gigabyte. Die Einstellungen bei der Kompression einer Datei bestimmen dabei
+den Speicherbedarf bei der Dekompression. Die Dekompression benötigt
+üblicherweise zwischen 5\ % und 20\ % des Speichers, der bei der Kompression
+der Datei erforderlich war. Beispielsweise benötigt die Dekompression einer
+Datei, die mit \fBxz \-9\fP komprimiert wurde, gegenwärtig etwa 65\ MiB
+Speicher. Es ist jedoch auch möglich, dass \fB.xz\fP\-Dateien mehrere Gigabyte
+an Speicher zur Dekompression erfordern.
+.PP
+Insbesondere für Benutzer älterer Systeme wird eventuell ein sehr großer
+Speicherbedarf ärgerlich sein. Um unangenehme Überraschungen zu vermeiden,
+verfügt \fBxz\fP über eine eingebaute Begrenzung des Speicherbedarfs, die
+allerdings in der Voreinstellung deaktiviert ist. Zwar verfügen einige
+Betriebssysteme über eingebaute Möglichkeiten zur prozessabhängigen
+Speicherbegrenzung, doch diese sind zu unflexibel (zum Beispiel kann
+\fBulimit\fP(1) beim Begrenzen des virtuellen Speichers \fBmmap\fP(2)
+beeinträchtigen).
+.PP
+Die Begrenzung des Speicherbedarfs kann mit der Befehlszeilenoption
+\fB\-\-memlimit=\fP\fIBegrenzung\fP aktiviert werden. Oft ist es jedoch bequemer,
+die Begrenzung durch Setzen der Umgebungsvariable \fBXZ_DEFAULTS\fP
+standardmäßig zu aktivieren, zum Beispiel
+\fBXZ_DEFAULTS=\-\-memlimit=150MiB\fP. Die Begrenzungen können getrennt für
+Kompression und Dekompression mittels \fB\-\-memlimit\-compress=\fP\fIBegrenzung\fP
+und \fB\-\-memlimit\-decompress=\fP\fIBegrenzung\fP festgelegt werden. Die Verwendung
+einer solchen Option außerhalb der Variable \fBXZ_DEFAULTS\fP ist kaum
+sinnvoll, da \fBxz\fP in einer einzelnen Aktion nicht gleichzeitig Kompression
+und Dekompression ausführen kann und \fB\-\-memlimit=\fP\fIBegrenzung\fP (oder \fB\-M\fP
+\fIBegrenzung\fP) lässt sich einfacher in der Befehlszeile eingeben.
+.PP
+Wenn die angegebene Speicherbegrenzung bei der Dekompression überschritten
+wird, schlägt der Vorgang fehl und \fBxz\fP zeigt eine Fehlermeldung an. Wird
+die Begrenzung bei der Kompression überschritten, dann versucht \fBxz\fP die
+Einstellungen entsprechend anzupassen, außer wenn \fB\-\-format=raw\fP oder
+\fB\-\-no\-adjust\fP angegeben ist. Auf diese Weise schlägt die Aktion nicht fehl,
+es sei denn, die Begrenzung wurde sehr niedrig angesetzt. Die Anpassung der
+Einstellungen wird schrittweise vorgenommen, allerdings entsprechen die
+Schritte nicht den Voreinstellungen der Kompressionsstufen. Das bedeutet,
+wenn beispielsweise die Begrenzung nur geringfügig unter den Anforderungen
+für \fBxz \-9\fP liegt, werden auch die Einstellungen nur wenig angepasst und
+nicht vollständig herunter zu den Werten für \fBxz \-8\fP
+.
+.SS "Verkettung und Auffüllung von .xz\-Dateien"
+Es ist möglich, \fB.xz\fP\-Dateien direkt zu verketten. Solche Dateien werden
+von \fBxz\fP genauso dekomprimiert wie eine einzelne \fB.xz\fP\-Datei.
+.PP
+Es ist weiterhin möglich, eine Auffüllung zwischen den verketteten Teilen
+oder nach dem letzten Teil einzufügen. Die Auffüllung muss aus Null\-Bytes
+bestehen und deren Größe muss ein Vielfaches von vier Byte sein. Dies kann
+zum Beispiel dann vorteilhaft sein, wenn die \fB.xz\fP\-Datei auf einem
+Datenträger gespeichert wird, dessen Dateisystem die Dateigrößen in
+512\-Byte\-Blöcken speichert.
+.PP
+Verkettung und Auffüllung sind für \fB.lzma\fP\-Dateien oder Rohdatenströme
+nicht erlaubt.
+.
+.SH OPTIONEN
+.
+.SS "Ganzzahlige Suffixe und spezielle Werte"
+An den meisten Stellen, wo ein ganzzahliges Argument akzeptiert wird, kann
+ein optionales Suffix große Ganzzahlwerte einfacher darstellen. Zwischen
+Ganzzahl und dem Suffix dürfen sich keine Leerzeichen befinden.
+.TP
+\fBKiB\fP
+multipliziert die Ganzzahl mit 1.024 (2^10). \fBKi\fP, \fBk\fP, \fBkB\fP, \fBK\fP und
+\fBKB\fP werden als Synonyme für \fBKiB\fP akzeptiert.
+.TP
+\fBMiB\fP
+multipliziert die Ganzzahl mit 1.048.576 (2^20). \fBMi\fP, \fBm\fP, \fBM\fP und \fBMB\fP
+werden als Synonyme für \fBMiB\fP akzeptiert.
+.TP
+\fBGiB\fP
+multipliziert die Ganzzahl mit 1.073.741.824 (2^30). \fBGi\fP, \fBg\fP, \fBG\fP und
+\fBGB\fP werden als Synonyme für \fBGiB\fP akzeptiert.
+.PP
+Der spezielle Wert \fBmax\fP kann dazu verwendet werden, um den von der
+jeweiligen Option akzeptierten maximalen Ganzzahlwert anzugeben.
+.
+.SS Aktionsmodus
+Falls mehrere Aktionsmodi angegeben sind, wird der zuletzt angegebene
+verwendet.
+.TP
+\fB\-z\fP, \fB\-\-compress\fP
+Kompression. Dies ist der voreingestellte Aktionsmodus, sofern keiner
+angegeben ist und auch kein bestimmter Modus aus dem Befehlsnamen abgeleitet
+werden kann (der Befehl \fBunxz\fP impliziert zum Beispiel \fB\-\-decompress\fP).
+.TP
+\fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
+dekomprimpiert.
+.TP
+\fB\-t\fP, \fB\-\-test\fP
+prüft die Integrität der komprimierten \fIDateien\fP. Diese Option ist
+gleichbedeutend mit \fB\-\-decompress \-\-stdout\fP, außer dass die dekomprimierten
+Daten verworfen werden, anstatt sie in die Standardausgabe zu leiten. Es
+werden keine Dateien erstellt oder entfernt.
+.TP
+\fB\-l\fP, \fB\-\-list\fP
+gibt Informationen zu den komprimierten \fIDateien\fP aus. Es werden keine
+unkomprimierten Dateien ausgegeben und keine Dateien angelegt oder
+entfernt. Im Listenmodus kann das Programm keine komprimierten Daten aus der
+Standardeingabe oder anderen nicht durchsuchbaren Quellen lesen.
+.IP ""
+Die Liste zeigt in der Standardeinstellung grundlegende Informationen zu den
+\fIDateien\fP an, zeilenweise pro Datei. Detailliertere Informationen erhalten
+Sie mit der Option \fB\-\-verbose\fP. Wenn Sie diese Option zweimal angeben,
+werden noch ausführlichere Informationen ausgegeben. Das kann den Vorgang
+allerdings deutlich verlangsamen, da die Ermittlung der zusätzlichen
+Informationen zahlreiche Suchvorgänge erfordert. Die Breite der
+ausführlichen Ausgabe übersteigt 80 Zeichen, daher könnte die Weiterleitung
+in beispielsweise\& \fBless\ \-S\fP sinnvoll sein, falls das Terminal nicht
+breit genug ist.
+.IP ""
+Die exakte Ausgabe kann in verschiedenen \fBxz\fP\-Versionen und
+Spracheinstellungen unterschiedlich sein. Wenn eine maschinell auswertbare
+Ausgabe gewünscht ist, dann sollten Sie \fB\-\-robot \-\-list\fP verwenden.
+.
+.SS Aktionsattribute
+.TP
+\fB\-k\fP, \fB\-\-keep\fP
+verhindert das Löschen der Eingabedateien.
+.IP ""
+Seit der \fBxz\fP\-Version 5.2.6 wird die Kompression oder Dekompression auch
+dann ausgeführt, wenn die Eingabe ein symbolischer Link zu einer regulären
+Datei ist, mehr als einen harten Link hat oder das »setuid«\-, »setgid«\- oder
+»sticky«\-Bit gesetzt ist. Die genannten Bits werden nicht in die Zieldatei
+kopiert. In früheren Versionen geschah dies nur mit \fB\-\-force\fP.
+.TP
+\fB\-f\fP, \fB\-\-force\fP
+Diese Option hat verschiedene Auswirkungen:
+.RS
+.IP \(bu 3
+Wenn die Zieldatei bereits existiert, wird diese vor der Kompression oder
+Dekompression gelöscht.
+.IP \(bu 3
+Die Kompression oder Dekompression wird auch dann ausgeführt, wenn die
+Eingabe ein symbolischer Link zu einer regulären Datei ist, mehr als einen
+harten Link hat oder das »setuid«\-, »setgid«\- oder »sticky«\-Bit gesetzt
+ist. Die genannten Bits werden nicht in die Zieldatei kopiert.
+.IP \(bu 3
+Wenn es zusammen mit \fB\-\-decompress\fP und \fB\-\-stdout\fP verwendet wird und
+\fBxz\fP den Typ der Quelldatei nicht ermitteln kann, wird die Quelldatei
+unverändert in die Standardausgabe kopiert. Dadurch kann \fBxzcat\fP \fB\-\-force\fP
+für Dateien, die nicht mit \fBxz\fP komprimiert wurden, wie \fBcat\fP(1) verwendet
+werden. Zukünftig könnte \fBxz\fP neue Dateikompressionsformate unterstützen,
+wodurch \fBxz\fP mehr Dateitypen dekomprimieren kann, anstatt sie unverändert
+in die Standardausgabe zu kopieren. Mit der Option \fB\-\-format=\fP\fIFormat\fP
+können Sie \fBxz\fP anweisen, nur ein einzelnes Dateiformat zu dekomprimieren.
+.RE
+.TP
+\fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
+schreibt die komprimierten oder dekomprimierten Daten in die Standardausgabe
+anstatt in eine Datei. Dies impliziert \fB\-\-keep\fP.
+.TP
+\fB\-\-single\-stream\fP
+dekomprimiert nur den ersten \fB.xz\fP\-Datenstrom und ignoriert stillschweigend
+weitere Eingabedaten, die möglicherweise dem Datenstrom
+folgen. Normalerweise führt solcher anhängender Datenmüll dazu, dass \fBxz\fP
+eine Fehlermeldung ausgibt.
+.IP ""
+\fBxz\fP dekomprimiert niemals mehr als einen Datenstrom aus \fB.lzma\fP\-Dateien
+oder Rohdatenströmen, aber dennoch wird durch diese Option möglicherweise
+vorhandener Datenmüll nach der \fB.lzma\fP\-Datei oder dem Rohdatenstrom
+ignoriert.
+.IP ""
+Diese Option ist wirkungslos, wenn der Aktionsmodus nicht \fB\-\-decompress\fP
+oder \fB\-\-test\fP ist.
+.TP
+\fB\-\-no\-sparse\fP
+verhindert die Erzeugung von Sparse\-Dateien. In der Voreinstellung versucht
+\fBxz\fP, bei der Dekompression in eine reguläre Datei eine Sparse\-Datei zu
+erzeugen, wenn die dekomprimierten Daten lange Abfolgen von binären Nullen
+enthalten. Dies funktioniert auch beim Schreiben in die Standardausgabe,
+sofern diese in eine reguläre Datei weitergeleitet wird und bestimmte
+Zusatzbedingungen erfüllt sind, die die Aktion absichern. Die Erzeugung von
+Sparse\-Dateien kann Plattenplatz sparen und beschleunigt die Dekompression
+durch Verringerung der Ein\-/Ausgaben der Platte.
+.TP
+\fB\-S\fP \fI.suf\fP, \fB\-\-suffix=\fP\fI.suf\fP
+verwendet \fI.suf\fP bei der Dekompression anstelle von \fB.xz\fP oder \fB.lzma\fP
+als Suffix für die Zieldatei. Falls nicht in die Standardausgabe geschrieben
+wird und die Quelldatei bereits das Suffix \fI.suf\fP hat, wird eine Warnung
+angezeigt und die Datei übersprungen.
+.IP ""
+berücksichtigt bei der Dekompression zusätzlich zu Dateien mit den Suffixen
+\&\fB.xz\fP, \fB.txz\fP, \fB.lzma\fP, \fB.tlz\fP oder \fB.lz\fP auch jene mit dem Suffix
+\&\fI.suf\fP. Falls die Quelldatei das Suffix \fI.suf\fP hat, wird dieses entfernt
+und so der Name der Zieldatei abgeleitet.
+.IP ""
+Beim Komprimieren oder Dekomprimieren von Rohdatenströmen mit
+\fB\-\-format=raw\fP muss das Suffix stets angegeben werden, außer wenn die
+Ausgabe in die Standardausgabe erfolgt. Der Grund dafür ist, dass es kein
+vorgegebenes Suffix für Rohdatenströme gibt.
+.TP
+\fB\-\-files\fP[\fB=\fP\fIDatei\fP]
+liest die zu verarbeitenden Dateinamen aus \fIDatei\fP. Falls keine \fIDatei\fP
+angegeben ist, werden die Dateinamen aus der Standardeingabe
+gelesen. Dateinamen müssen mit einem Zeilenumbruch beendet werden. Ein
+Bindestrich (\fB\-\fP) wird als regulärer Dateiname angesehen und nicht als
+Standardeingabe interpretiert. Falls Dateinamen außerdem als
+Befehlszeilenargumente angegeben sind, werden diese vor den Dateinamen aus
+der \fIDatei\fP verarbeitet.
+.TP
+\fB\-\-files0\fP[\fB=\fP\fIDatei\fP]
+Dies ist gleichbedeutend mit \fB\-\-files\fP[\fB=\fP\fIDatei\fP], außer dass jeder
+Dateiname mit einem Null\-Zeichen abgeschlossen werden muss.
+.
+.SS "Grundlegende Dateiformat\- und Kompressionsoptionen"
+.TP
+\fB\-F\fP \fIFormat\fP, \fB\-\-format=\fP\fIFormat\fP
+gibt das \fIFormat\fP der zu komprimierenden oder dekomprimierenden Datei an:
+.RS
+.TP
+\fBauto\fP
+Dies ist die Voreinstellung. Bei der Kompression ist \fBauto\fP gleichbedeutend
+mit \fBxz\fP. Bei der Dekompression wird das Format der Eingabedatei
+automatisch erkannt. Beachten Sie, dass Rohdatenströme, wie sie mit
+\fB\-\-format=raw\fP erzeugt werden, nicht automatisch erkannt werden können.
+.TP
+\fBxz\fP
+Die Kompression erfolgt in das \fB.xz\fP\-Dateiformat oder akzeptiert nur
+\&\fB.xz\fP\-Dateien bei der Dekompression.
+.TP
+\fBlzma\fP, \fBalone\fP
+Die Kompression erfolgt in das veraltete \fB.lzma\fP\-Dateiformat oder
+akzeptiert nur \fB.lzma\fP\-Dateien bei der Dekompression. Der alternative Name
+\fBalone\fP dient der Abwärtskompatibilität zu den LZMA\-Dienstprogrammen.
+.TP
+\fBlzip\fP
+Akzeptiert nur \fB.lz\fP\-Dateien bei der Dekompression. Kompression wird nicht
+unterstützt.
+.IP ""
+Das \fB.lz\fP\-Format wird in Version 0 und der unerweiterten Version 1
+unterstützt. Dateien der Version 0 wurden von \fBlzip\fP 1.3 und älter
+erstellt. Solche Dateien sind nicht sehr weit verbreitet, können aber in
+Dateiarchiven gefunden werden, da einige Quellpakete in diesem Format
+veröffentlicht wurden. Es ist auch möglich, dass Benutzer alte persönliche
+Dateien in diesem Format haben. Die Dekompressionsunterstützung für das
+Format der Version 0 wurde mit der Version 1.18 aus \fBlzip\fP entfernt.
+.IP ""
+\fBlzip\fP\-Versionen ab 1.4 erstellen Dateien im Format der Version 0. Die
+Erweiterung »Sync Flush Marker« zur Formatversion 1 wurde in \fBlzip\fP 1.6
+hinzugefügt. Diese Erweiterung wird sehr selten verwendet und wird von \fBxz\fP
+nicht unterstützt (die Eingabe wird als beschädigt erkannt).
+.TP
+\fBraw\fP
+Komprimiert oder dekomprimiert einen Rohdatenstrom (ohne Header). Diese
+Option ist nur für fortgeschrittene Benutzer bestimmt. Zum Dekodieren von
+Rohdatenströmen müssen Sie die Option \fB\-\-format=raw\fP verwenden und die
+Filterkette ausdrücklich angeben, die normalerweise in den (hier fehlenden)
+Container\-Headern gespeichert worden wäre.
+.RE
+.TP
+\fB\-C\fP \fIPrüfung\fP, \fB\-\-check=\fP\fIPrüfung\fP
+gibt den Typ der Integritätsprüfung an. Die Prüfsumme wird aus den
+unkomprimierten Daten berechnet und in der \fB.xz\fP\-Datei gespeichert. Diese
+Option wird nur bei der Kompression in das \fB.xz\fP\-Format angewendet, da das
+\&\fB.lzma\fP\-Format keine Integritätsprüfungen unterstützt. Die eigentliche
+Integritätsprüfung erfolgt (falls möglich), wenn die \fB.xz\fP\-Datei
+dekomprimiert wird.
+.IP ""
+Folgende Typen von \fIPrüfungen\fP werden unterstützt:
+.RS
+.TP
+\fBnone\fP
+führt keine Integritätsprüfung aus. Dies ist eine eher schlechte
+Idee. Dennoch kann es nützlich sein, wenn die Integrität der Daten auf
+andere Weise sichergestellt werden kann.
+.TP
+\fBcrc32\fP
+berechnet die CRC32\-Prüfsumme anhand des Polynoms aus IEEE\-802.3 (Ethernet).
+.TP
+\fBcrc64\fP
+berechnet die CRC64\-Prüfsumme anhand des Polynoms aus ECMA\-182. Dies ist die
+Voreinstellung, da beschädigte Dateien etwas besser als mit CRC32 erkannt
+werden und die Geschwindigkeitsdifferenz unerheblich ist.
+.TP
+\fBsha256\fP
+berechnet die SHA\-256\-Prüfsumme. Dies ist etwas langsamer als CRC32 und
+CRC64.
+.RE
+.IP ""
+Die Integrität der \fB.xz\fP\-Header wird immer mit CRC32 geprüft. Es ist nicht
+möglich, dies zu ändern oder zu deaktivieren.
+.TP
+\fB\-\-ignore\-check\fP
+verifiziert die Integritätsprüfsumme der komprimierten Daten bei der
+Dekompression nicht. Die CRC32\-Werte in den \fB.xz\fP\-Headern werden weiterhin
+normal verifiziert.
+.IP ""
+\fBVerwenden Sie diese Option nicht, außer Sie wissen, was Sie tun.\fP Mögliche
+Gründe, diese Option zu verwenden:
+.RS
+.IP \(bu 3
+Versuchen, Daten aus einer beschädigten .xz\-Datei wiederherzustellen.
+.IP \(bu 3
+Erhöhung der Geschwindigkeit bei der Dekompression. Dies macht sich meist
+mit SHA\-256 bemerkbar, oder mit Dateien, die extrem stark komprimiert
+sind. Wir empfehlen, diese Option nicht für diesen Zweck zu verwenden, es
+sei denn, die Integrität der Datei wird extern auf andere Weise überprüft.
+.RE
+.TP
+\fB\-0\fP … \fB\-9\fP
+wählt eine der voreingestellten Kompressionsstufen, standardmäßig
+\fB\-6\fP. Wenn mehrere Voreinstellungsstufen angegeben sind, ist nur die
+zuletzt angegebene wirksam. Falls bereits eine benutzerdefinierte
+Filterkette angegeben wurde, wird diese durch die Festlegung der
+Voreinstellung geleert.
+.IP ""
+Die Unterschiede zwischen den Voreinstellungsstufen sind deutlicher als bei
+\fBgzip\fP(1) und \fBbzip2\fP(1). Die gewählten Kompressionseinstellungen
+bestimmen den Speicherbedarf bei der Dekompression, daher ist es auf älteren
+Systemen mit wenig Speicher bei einer zu hoch gewählten Voreinstellung
+schwer, eine Datei zu dekomprimieren. Insbesondere \fBist es keine gute Idee, blindlings \-9 für alles\fP zu verwenden, wie dies häufig mit \fBgzip\fP(1) und
+\fBbzip2\fP(1) gehandhabt wird.
+.RS
+.TP
+\fB\-0\fP … \fB\-3\fP
+Diese Voreinstellungen sind recht schnell. \fB\-0\fP ist manchmal schneller als
+\fBgzip \-9\fP, wobei aber die Kompression wesentlich besser ist. Die
+schnelleren Voreinstellungen sind im Hinblick auf die Geschwindigkeit mit
+\fBbzip2\fP(1) vergleichbar , mit einem ähnlichen oder besseren
+Kompressionsverhältnis, wobei das Ergebnis aber stark vom Typ der zu
+komprimierenden Daten abhängig ist.
+.TP
+\fB\-4\fP … \fB\-6\fP
+Gute bis sehr gute Kompression, wobei der Speicherbedarf für die
+Dekompression selbst auf alten Systemen akzeptabel ist. \fB\-6\fP ist die
+Voreinstellung, welche üblicherweise eine gute Wahl für die Verteilung von
+Dateien ist, die selbst noch auf Systemen mit nur 16\ MiB Arbeitsspeicher
+dekomprimiert werden müssen (\fB\-5e\fP oder \fB\-6e\fP sind ebenfalls eine
+Ãœberlegung wert. Siehe \fB\-\-extreme\fP).
+.TP
+\fB\-7 … \-9\fP
+Ähnlich wie \fB\-6\fP, aber mit einem höheren Speicherbedarf für die Kompression
+und Dekompression. Sie sind nur nützlich, wenn Dateien komprimiert werden
+sollen, die größer als 8\ MiB, 16\ MiB beziehungsweise 32\ MiB sind.
+.RE
+.IP ""
+Auf der gleichen Hardware ist die Dekompressionsgeschwindigkeit ein nahezu
+konstanter Wert in Bytes komprimierter Daten pro Sekunde. Anders
+ausgedrückt: Je besser die Kompression, umso schneller wird üblicherweise
+die Dekompression sein. Das bedeutet auch, dass die Menge der pro Sekunde
+ausgegebenen unkomprimierten Daten stark variieren kann.
+.IP ""
+Die folgende Tabelle fasst die Eigenschaften der Voreinstellungen zusammen:
+.RS
+.RS
+.PP
+.TS
+tab(;);
+c c c c c
+n n n n n.
+Voreinst.;Wörtb.Gr;KomprCPU;KompSpeich;DekompSpeich
+\-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
+.TE
+.RE
+.RE
+.IP ""
+Spaltenbeschreibungen:
+.RS
+.IP \(bu 3
+Wörtb.Größe ist die Größe des LZMA2\-Wörterbuchs. Es ist
+Speicherverschwendung, ein Wörterbuch zu verwenden, das größer als die
+unkomprimierte Datei ist. Daher ist es besser, die Voreinstellungen \fB\-7\fP …
+\fB\-9\fP zu vermeiden, falls es keinen wirklichen Bedarf dafür gibt. Mit \fB\-6\fP
+und weniger wird üblicherweise so wenig Speicher verschwendet, dass dies
+nicht ins Gewicht fällt.
+.IP \(bu 3
+KomprCPU ist eine vereinfachte Repräsentation der LZMA2\-Einstellungen,
+welche die Kompressionsgeschwindigkeit beeinflussen. Die Wörterbuchgröße
+wirkt sich ebenfalls auf die Geschwindigkeit aus. Während KompCPU für die
+Stufen \fB\-6\fP bis \fB\-9\fP gleich ist, tendieren höhere Stufen dazu, etwas
+langsamer zu sein. Um eine noch langsamere, aber möglicherweise bessere
+Kompression zu erhalten, siehe \fB\-\-extreme\fP.
+.IP \(bu 3
+KompSpeich enthält den Speicherbedarf des Kompressors im
+Einzel\-Thread\-Modus. Dieser kann zwischen den \fBxz\fP\-Versionen leicht
+variieren.
+.IP \(bu 3
+DekompSpeich enthält den Speicherbedarf für die Dekompression. Das bedeutet,
+dass die Kompressionseinstellungen den Speicherbedarf bei der Dekompression
+bestimmen. Der exakte Speicherbedarf bei der Dekompression ist geringfügig
+größer als die Größe des LZMA2\-Wörterbuchs, aber die Werte in der Tabelle
+wurden auf ganze MiB aufgerundet.
+.RE
+.IP ""
+ Der Speicherbedarf einiger der zukünftigen Multithread\-Modi kann dramatisch
+höher sein als im Einzel\-Thread\-Modus. Mit dem Standardwert von
+\fB\-\-block\-size\fP benötigt jeder Thread 3*3*Wörtb.Gr plus KompSpeich oder
+DekompSpeich. Beispielsweise benötigen vier Threads mit der Voreinstellung
+\fB\-6\fP etwa 660 bis 670 MiB Speicher.
+.TP
+\fB\-e\fP, \fB\-\-extreme\fP
+verwendet eine langsamere Variante der gewählten
+Kompressions\-Voreinstellungsstufe (\fB\-0\fP … \fB\-9\fP), um hoffentlich ein etwas
+besseres Kompressionsverhältnis zu erreichen, das aber in ungünstigen Fällen
+auch schlechter werden kann. Der Speicherverbrauch bei der Dekompression
+wird dabei nicht beeinflusst, aber der Speicherverbrauch der Kompression
+steigt in den Voreinstellungsstufen \fB\-0\fP bis \fB\-3\fP geringfügig an.
+.IP ""
+Da es zwei Voreinstellungen mit den Wörterbuchgrößen 4\ MiB und 8\ MiB gibt,
+verwenden die Voreinstellungsstufen \fB\-3e\fP und \fB\-5e\fP etwas schnellere
+Einstellungen (niedrigere KompCPU) als \fB\-4e\fP beziehungsweise \fB\-6e\fP. Auf
+diese Weise sind zwei Voreinstellungen nie identisch.
+.RS
+.RS
+.PP
+.TS
+tab(;);
+c c c c c
+n n n n n.
+Voreinst.;Wörtb.Gr;KomprCPU;KompSpeich;DekompSpeich
+\-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
+.TE
+.RE
+.RE
+.IP ""
+Zum Beispiel gibt es insgesamt vier Voreinstellungen, die ein 8\ MiB großes
+Wörterbuch verwenden, deren Reihenfolge von der schnellsten zur langsamsten
+\fB\-5\fP, \fB\-6\fP, \fB\-5e\fP und \fB\-6e\fP ist.
+.TP
+\fB\-\-fast\fP
+.PD 0
+.TP
+\fB\-\-best\fP
+.PD
+sind etwas irreführende Aliase für \fB\-0\fP beziehungsweise \fB\-9\fP. Sie werden
+nur zwecks Abwärtskompatibilität zu den LZMA\-Dienstprogrammen
+bereitgestellt. Sie sollten diese Optionen besser nicht verwenden.
+.TP
+\fB\-\-block\-size=\fP\fIGröße\fP
+teilt beim Komprimieren in das \fB.xz\fP\-Format die Eingabedaten in Blöcke der
+angegebenen \fIGröße\fP in Byte. Die Blöcke werden unabhängig voneinander
+komprimiert, was dem Multi\-Threading entgegen kommt und Zufallszugriffe bei
+der Dekompression begrenzt. Diese Option wird typischerweise eingesetzt, um
+die vorgegebene Blockgröße im Multi\-Thread\-Modus außer Kraft zu setzen, aber
+sie kann auch im Einzel\-Thread\-Modus angewendet werden.
+.IP ""
+Im Multi\-Thread\-Modus wird etwa die dreifache \fIGröße\fP in jedem Thread zur
+Pufferung der Ein\- und Ausgabe belegt. Die vorgegebene \fIGröße\fP ist das
+Dreifache der Größe des LZMA2\-Wörterbuchs oder 1 MiB, je nachdem, was mehr
+ist. Typischerweise ist das Zwei\- bis Vierfache der Größe des
+LZMA2\-Wörterbuchs oder wenigstens 1 MB ein guter Wert. Eine \fIGröße\fP, die
+geringer ist als die des LZMA2\-Wörterbuchs, ist Speicherverschwendung, weil
+dann der LZMA2\-Wörterbuchpuffer niemals vollständig genutzt werden würde. Im
+Multi\-Thread\-Modus wird die Größe der Blöcke wird in den Block\-Headern
+gespeichert. Die Größeninformation wird für eine Multi\-Thread\-Dekompression
+genutzt.
+.IP ""
+Im Einzel\-Thread\-Modus werden die Blöcke standardmäßig nicht geteilt. Das
+Setzen dieser Option wirkt sich nicht auf den Speicherbedarf aus. In den
+Block\-Headern werden keine Größeninformationen gespeichert, daher werden im
+Einzel\-Thread\-Modus erzeugte Dateien nicht zu den im Multi\-Thread\-Modus
+erzeugten Dateien identisch sein. Das Fehlen der Größeninformation bedingt
+auch, dass \fBxz\fP nicht in der Lage sein wird, die Dateien im
+Multi\-Thread\-Modus zu dekomprimieren.
+.TP
+\fB\-\-block\-list=\fP\fIBlöcke\fP
+beginnt bei der Kompression in das \fB.xz\fP\-Format nach den angegebenen
+Intervallen unkomprimierter Daten einen neuen Block, optional mit einer
+benutzerdefinierten Filterkette.
+.IP ""
+Die \fIBlöcke\fP werden in einer durch Kommata getrennten Liste
+angegeben. Jeder Block besteht aus einer optionalen Filterkettennummer
+zwischen 0 und 9, gefolgt von einem Doppelpunkt (\fB:\fP) und der Größe der
+unkomprimierten Daten (diese Angabe ist erforderlich). Ãœberspringen eines
+Blocks (zwei oder mehr aufeinander folgende Kommata) ist ein Kürzel dafür,
+die Größe und die Filter des vorherigen Blocks zu verwenden.
+.IP ""
+Falls die Eingabedatei größer ist als die Summe der \fIBlöcke\fP, dann wird der
+letzte in \fIVBlöcke\fP angegebene Wert bis zum Ende der Datei wiederholt. Mit
+dem speziellen Wert \fB0\fP können Sie angeben, dass der Rest der Datei als
+einzelner Block kodiert werden soll.
+.IP ""
+Eine alternative Filterkette für jeden Block kann in Kombination mit den
+Optionen \fB\-\-filters1=\fP\fIFilter\fP \&…\& \fB\-\-filters9=\fP\fIFilter\fP angegeben
+werden. Diese Optionen definieren Filterketten mit einem Bezeichner zwischen
+1 und 9. Die Filterkette 0 bezeichnet hierbei die voreingestellte
+Filterkette, was dem Nichtangeben einer Filterkette gleichkommt. Der
+Filterkettenbezeichner kann vor der unkomprimierten Größe verwendet werden,
+gefolgt von einem Doppelpunkt (\fB:\fP). Falls Sie beispielsweise
+\fB\-\-block\-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB\fP angeben, werden die Blöcke
+folgendermaßen erstellt:
+.RS
+.IP \(bu 3
+Die durch \fB\-\-filters1\fP angegebene Filterkette und 2 MiB Eingabe
+.IP \(bu 3
+Die durch \fB\-\-filters3\fP angegebene Filterkette und 2 MiB Eingabe
+.IP \(bu 3
+Die durch \fB\-\-filters2\fP angegebene Filterkette und 4 MiB Eingabe
+.IP \(bu 3
+Die durch \fB\-\-filters2\fP angegebene Filterkette und 4 MiB Eingabe
+.IP \(bu 3
+Die vorgegebene Filterkette und 2 MiB Eingabe
+.IP \(bu 3
+Die vorgegebene Filterkette und 4 MiB Eingabe für jeden Block bis zum Ende
+der Eingabe.
+.RE
+.IP ""
+Falls Sie eine Größe angeben, welche die Blockgröße des Encoders übersteigen
+(entweder den Vorgabewert im Thread\-Modus oder den mit
+\fB\-\-block\-size=\fP\fIGröße\fP angegebenen Wert), wird der Encoder zusätzliche
+Blöcke erzeugen, wobei die in den \fIBlöcke\fP angegebenen Grenzen eingehalten
+werden. Wenn Sie zum Beispiel \fB\-\-block\-size=10MiB\fP
+\fB\-\-block\-list=5MiB,10MiB,8MiB,12MiB,24MiB\fP angeben und die Eingabedatei 80
+MiB groß ist, erhalten Sie 11 Blöcke: 5, 10, 8, 10, 2, 10, 10, 4, 10, 10 und
+1 MiB.
+.IP ""
+Im Multi\-Thread\-Modus werden die Blockgrößen in den Block\-Headern
+gespeichert. Dies geschieht im Einzel\-Thread\-Modus nicht, daher wird die
+kodierte Ausgabe zu der im Multi\-Thread\-Modus nicht identisch sein.
+.TP
+\fB\-\-flush\-timeout=\fP\fIZeit\fP
+löscht bei der Kompression die ausstehenden Daten aus dem Encoder und macht
+sie im Ausgabedatenstrom verfügbar, wenn mehr als die angegebene \fIZeit\fP in
+Millisekunden (als positive Ganzzahl) seit dem vorherigen Löschen vergangen
+ist und das Lesen weiterer Eingaben blockieren würde. Dies kann nützlich
+sein, wenn \fBxz\fP zum Komprimieren von über das Netzwerk eingehenden Daten
+verwendet wird. Kleine \fIZeit\fP\-Werte machen die Daten unmittelbar nach dem
+Empfang nach einer kurzen Verzögerung verfügbar, während große \fIZeit\fP\-Werte
+ein besseres Kompressionsverhältnis bewirken.
+.IP ""
+Dieses Funktionsmerkmal ist standardmäßig deaktiviert. Wenn diese Option
+mehrfach angegeben wird, ist die zuletzt angegebene wirksam. Für die Angabe
+der \fIZeit\fP kann der spezielle Wert \fB0\fP verwendet werden, um dieses
+Funktionsmerkmal explizit zu deaktivieren.
+.IP ""
+Dieses Funktionsmerkmal ist außerhalb von POSIX\-Systemen nicht verfügbar.
+.IP ""
+.\" FIXME
+\fBDieses Funktionsmerkmal ist noch experimentell.\fP Gegenwärtig ist \fBxz\fP
+aufgrund der Art und Weise, wie \fBxz\fP puffert, für Dekompression in Echtzeit
+ungeeignet.
+.TP
+\fB\-\-memlimit\-compress=\fP\fIGrenze\fP
+legt eine Grenze für die Speichernutzung bei der Kompression fest. Wenn
+diese Option mehrmals angegeben wird, ist die zuletzt angegebene wirksam.
+.IP ""
+Falls die Kompressionseinstellungen die \fIGrenze\fP überschreiten, versucht
+\fBxz\fP, die Einstellungen nach unten anzupassen, so dass die Grenze nicht
+mehr überschritten wird und zeigt einen Hinweis an, dass eine automatische
+Anpassung vorgenommen wurde. Die Anpassungen werden in folgender Reihenfolge
+angewendet: Reduzierung der Anzahl der Threads, Wechsel in den
+Einzelthread\-Modus, falls sogar ein einziger Thread im Multithread\-Modus die
+\fIGrenze\fP überschreitet, und schlussendlich die Reduzierung der Größe des
+LZMA2\-Wörterbuchs.
+.IP ""
+Beim Komprimieren mit \fB\-\-format=raw\fP oder falls \fB\-\-no\-adjust\fP angegeben
+wurde, wird nur die Anzahl der Threads reduziert, da nur so die komprimierte
+Ausgabe nicht beeinflusst wird.
+.IP ""
+Falls die \fIGrenze\fP nicht anhand der vorstehend beschriebenen Anpassungen
+gesetzt werden kann, wird ein Fehler angezeigt und \fBxz\fP wird mit dem
+Exit\-Status 1 beendet.
+.IP ""
+Die \fIGrenze\fP kann auf verschiedene Arten angegeben werden:
+.RS
+.IP \(bu 3
+Die \fIGrenze\fP kann ein absoluter Wert in Byte sein. Ein Suffix wie \fBMiB\fP
+kann dabei hilfreich sein. Beispiel: \fB\-\-memlimit\-compress=80MiB\fP.
+.IP \(bu 3
+Die \fIGrenze\fP kann als Prozentsatz des physischen Gesamtspeichers (RAM)
+angegeben werden. Dies ist insbesondere nützlich, wenn in einem
+Shell\-Initialisierungsskript, das mehrere unterschiedliche Rechner gemeinsam
+verwenden, die Umgebungsvariable \fBXZ_DEFAULTS\fP gesetzt ist. Auf diese Weise
+ist die Grenze auf Systemen mit mehr Speicher höher. Beispiel:
+\fB\-\-memlimit\-compress=70%\fP
+.IP \(bu 3
+Mit \fB0\fP kann die \fIGrenze\fP auf den Standardwert zurückgesetzt werden. Dies
+ist gegenwärtig gleichbedeutend mit dem Setzen der \fIGrenze\fP auf \fBmax\fP
+(keine Speicherbegrenzung).
+.RE
+.IP ""
+Für die 32\-Bit\-Version von \fBxz\fP gibt es einen Spezialfall: Falls die Grenze
+über \fB4020\ MiB\fP liegt, wird die \fIGrenze\fP auf \fB4020\ MiB\fP gesetzt. Auf
+MIPS32 wird stattdessen \fB2000\ MB\fP verwendet (die Werte \fB0\fP und \fBmax\fP
+werden hiervon nicht beeinflusst; für die Dekompression gibt es keine
+vergleichbare Funktion). Dies kann hilfreich sein, wenn ein
+32\-Bit\-Executable auf einen 4\ GiB großen Adressraum (2 GiB auf MIPS32)
+zugreifen kann, wobei wir hoffen wollen, dass es in anderen Situationen
+keine negativen Effekte hat.
+.IP ""
+Siehe auch den Abschnitt \fBSpeicherbedarf\fP.
+.TP
+\fB\-\-memlimit\-decompress=\fP\fIGrenze\fP
+legt eine Begrenzung des Speicherverbrauchs für die Dekompression fest. Dies
+beeinflusst auch den Modus \fB\-\-list\fP. Falls die Aktion nicht ausführbar ist,
+ohne die \fIGrenze\fP zu überschreiten, gibt \fBxz\fP eine Fehlermeldung aus und
+die Dekompression wird fehlschlagen. Siehe \fB\-\-memlimit\-compress=\fP\fIGrenze\fP
+zu möglichen Wegen, die \fIGrenze\fP anzugeben.
+.TP
+\fB\-\-memlimit\-mt\-decompress=\fP\fIGrenze\fP
+legt eine Begrenzung des Speicherverbrauchs für Multithread\-Dekompression
+fest. Dies beeinflusst lediglich die Anzahl der Threads; \fBxz\fP wird dadurch
+niemals die Dekompression einer Datei verweigern. Falls die \fIGrenze\fP für
+jegliches Multithreading zu niedrig ist, wird sie ignoriert und \fBxz\fP setzt
+im Einzelthread\-modus fort. Beachten Sie auch, dass bei der Verwendung von
+\fB\-\-memlimit\-decompress\fP dies stets sowohl auf den Einzelthread\-als auch auf
+den Multithread\-Modus angewendet wird und so die effektive \fIGrenze\fP für den
+Multithread\-Modus niemals höher sein wird als die mit
+\fB\-\-memlimit\-decompress\fP gesetzte Grenze.
+.IP ""
+Im Gegensatz zu anderen Optionen zur Begrenzung des Speicherverbrauchs hat
+\fB\-\-memlimit\-mt\-decompress=\fP\fIGrenze\fP eine systemspezifisch vorgegebene
+\fIGrenze\fP. Mit \fBxz \-\-info\-memory\fP können Sie deren aktuellen Wert anzeigen
+lassen.
+.IP ""
+Diese Option und ihr Standardwert existieren, weil die unbegrenzte
+threadbezogene Dekompression bei einigen Eingabedateien zu unglaublich
+großem Speicherverbrauch führen würde. Falls die vorgegebene \fIGrenze\fP auf
+Ihrem System zu niedrig ist, können Sie die \fIGrenze\fP durchaus erhöhen, aber
+setzen Sie sie niemals auf einen Wert größer als die Menge des nutzbaren
+Speichers, da \fBxz\fP bei entsprechenden Eingabedateien versuchen wird, diese
+Menge an Speicher auch bei einer geringen Anzahl von Threads zu
+verwnden. Speichermangel oder Auslagerung verbessern die
+Dekomprimierungsleistung nicht.
+.IP ""
+Siehe \fB\-\-memlimit\-compress=\fP\fIGrenze\fP für mögliche Wege zur Angabe der
+\fIGrenze\fP. Sezen der \fIGrenze\fP auf \fB0\fP setzt die \fIGrenze\fP auf den
+vorgegebenen systemspezifischen Wert zurück.
+.TP
+\fB\-M\fP \fIGrenze\fP, \fB\-\-memlimit=\fP\fIGrenze\fP, \fB\-\-memory=\fP\fIGrenze\fP
+Dies ist gleichbedeutend mit \fB\-\-memlimit\-compress=\fP\fIGrenze\fP
+\fB\-\-memlimit\-decompress=\fP\fIGrenze\fP \fB\-\-memlimit\-mt\-decompress=\fP\fIGrenze\fP.
+.TP
+\fB\-\-no\-adjust\fP
+zeigt einen Fehler an und beendet, falls die Grenze der Speichernutzung
+nicht ohne Änderung der Einstellungen, welche die komprimierte Ausgabe
+beeinflussen, berücksichtigt werden kann. Das bedeutet, dass \fBxz\fP daran
+gehindert wird, den Encoder vom Multithread\-Modus in den Einzelthread\-Modus
+zu versetzen und die Größe des LZMA2\-Wörterbuchs zu reduzieren. Allerdings
+kann bei Verwendung dieser Option dennoch die Anzahl der Threads reduziert
+werden, um die Grenze der Speichernutzung zu halten, sofern dies die
+komprimierte Ausgabe nicht beeinflusst.
+.IP ""
+Die automatische Anpassung ist beim Erzeugen von Rohdatenströmen
+(\fB\-\-format=raw\fP) immer deaktiviert.
+.TP
+\fB\-T\fP \fIThreads\fP, \fB\-\-threads=\fP\fIThreads\fP
+gibt die Anzahl der zu verwendenden Arbeits\-Threads an. Wenn Sie \fIThreads\fP
+auf einen speziellen Wert \fB0\fP setzen, verwendet \fBxz\fP maximal so viele
+Threads, wie der/die Prozessor(en) im System untestützen. Die tatsächliche
+Anzahl kann geringer sein als die angegebenen \fIThreads\fP, wenn die
+Eingabedatei nicht groß genug für Threading mit den gegebenen Einstellungen
+ist oder wenn mehr Threads die Speicherbegrenzung übersteigen würden.
+.IP ""
+Die Multithread\- bzw. Einzelthread\-Kompressoren erzeugen unterschiedliche
+Ausgaben. Der Einzelthread\-Kompressor erzeugt die geringste Dateigröße, aber
+nur die Ausgabe des Multithread\-Kompressors kann mit mehreren Threads wieder
+dekomprimiert werden. Das Setzen der Anzahl der \fIThreads\fP auf \fB1\fP wird den
+Einzelthread\-Modus verwenden. Das Setzen der Anzahl der \fIThreads\fP auf
+einen anderen Wert einschließlich \fB0\fP verwendet den Multithread\-Kompressor,
+und zwar sogar dann, wenn das System nur einen einzigen Hardware\-Thread
+unterstützt (\fBxz\fP 5.2.x verwendete in diesem Fall noch den
+Einzelthread\-Modus).
+.IP ""
+Um den Multithread\-Modus mit nur einem einzigen Thread zu verwenden, setzen
+Sie die Anzahl der \fIThreads\fP auf \fB+1\fP. Das Präfix \fB+\fP hat mit Werten
+verschieden von \fB1\fP keinen Effekt. Eine Begrenzung des Speicherverbrauchs
+kann \fBxz\fP dennoch veranlassen, den Einzelthread\-Modus zu verwenden, außer
+wenn \fB\-\-no\-adjust\fP verwendet wird. Die Unterstützung für das Präfix \fB+\fP
+wurde in \fBxz\fP 5.4.0 hinzugefügt.
+.IP ""
+Falls das automatische Setzen der Anzahl der Threads angefordert und keine
+Speicherbegrenzung angegeben wurde, dann wird eine systemspezifisch
+vorgegebene weiche Grenze verwendet, um eventuell die Anzahl der Threads zu
+begrenzen. Es ist eine weiche Grenze im Sinne davon, dass sie ignoriert
+wird, falls die Anzahl der Threads 1 ist; daher wird eine weiche Grenze
+\fBxz\fP niemals an der Kompression oder Dekompression hindern. Diese
+vorgegebene weiche Grenze veranlasst \fBxz\fP nicht, vom Multithread\-Modus in
+den Einzelthread\-Modus zu wechseln. Die aktiven Grenzen können Sie mit dem
+Befehl \fBxz \-\-info\-memory\fP anzeigen lassen.
+.IP ""
+Die gegenwärtig einzige Threading\-Methode teilt die Eingabe in Blöcke und
+komprimiert diese unabhängig voneinander. Die vorgegebene Blockgröße ist von
+der Kompressionsstufe abhängig und kann mit der Option
+\fB\-\-block\-size=\fP\fIGröße\fP außer Kraft gesetzt werden.
+.IP ""
+Eine thread\-basierte Dekompression wird nur bei Dateien funktionieren, die
+mehrere Blöcke mit Größeninformationen in deren Headern enthalten. Alle im
+Multi\-Thread\-Modus komprimierten Dateien, die groß genug sind, erfüllen
+diese Bedingung, im Einzel\-Thread\-Modus komprimierte Dateien dagegen nicht,
+selbst wenn \fB\-\-block\-size=\fP\fIGröße\fP verwendet wurde.
+.IP ""
+Der Vorgabewert für \fIThreads\fP is \fB0\fP. In \fBxz\fP 5.4.x und älteren Versionen
+ist der Vorgabewert \fB1\fP.
+.
+.SS "Benutzerdefinierte Filterketten für die Kompression"
+Eine benutzerdefinierte Filterkette ermöglicht die Angabe detaillierter
+Kompressionseinstellungen, anstatt von den Voreinstellungen auszugehen. Wenn
+eine benutzerdefinierte Filterkette angegeben wird, werden die vorher in der
+Befehlszeile angegebenen Voreinstellungsoptionen (\fB\-0\fP … \fB\-9\fP und
+\fB\-\-extreme\fP) außer Kraft gesetzt. Wenn eine Voreinstellungsoption nach
+einer oder mehreren benutzerdefinierten Filterkettenoptionen angegeben wird,
+dann wird die neue Voreinstellung wirksam und die zuvor angegebenen
+Filterkettenoptionen werden außer Kraft gesetzt.
+.PP
+Eine Filterkette ist mit dem Piping (der Weiterleitung) in der Befehlszeile
+vergleichbar. Bei der Kompression gelangt die unkomprimierte Eingabe in den
+ersten Filter, dessen Ausgabe wiederum in den zweiten Filter geleitet wird
+(sofern ein solcher vorhanden ist). Die Ausgabe des letzten Filters wird in
+die komprimierte Datei geschrieben. In einer Filterkette sind maximal vier
+Filter zulässig, aber typischerweise besteht eine Filterkette nur aus einem
+oder zwei Filtern.
+.PP
+Bei vielen Filtern ist die Positionierung in der Filterkette eingeschränkt:
+Einige Filter sind nur als letzte in der Kette verwendbar, einige können
+nicht als letzte Filter gesetzt werden, und andere funktionieren an
+beliebiger Stelle. Abhängig von dem Filter ist diese Beschränkung entweder
+auf das Design des Filters selbst zurückzuführen oder ist aus
+Sicherheitsgründen vorhanden.
+.PP
+Eine benutzerdefinierte Filterkette kann auf zwei verschiedene Arten
+angegeben werden. Die Optionen \fB\-\-filters=\fP\fIFilter\fP und
+\fB\-\-filters1=\fP\fIFilter\fP \&…\& \fB\-\-filters9=\fP\fIFilter\fP ermöglichen die Angabe
+einer ganzen Filterkette in einer einzelnen Option gemäß der
+Liblzma\-Filterzeichenkettensyntax. Alternativ können Sie eine Filterkette
+mit einer oder mehreren individuellen Filteroptionen in der Reihenfolge
+angeben, in der sie in der Filterkette verwendet werden sollen. Daher ist
+die Reihenfolge der individuellen Filteroptionen wichtig! Beim Dekodieren
+von Rohdatenströmen (\fB\-\-format=raw\fP) muss die Filterkette in der gleichen
+Reihenfolge wie bei der Komprimierung angegeben werden. Alle individuellen
+Filter\- oder Voreinstellungsoptionen, die \fIvor\fP der vollen
+Filterkettenoption (\fB\-\-filters=\fP\fIFilter\fP) angegeben werden, werden
+verworfen. Individuelle Filter, die \fInach\fP der vollen Filterkettenoption
+angegeben werden, setzen die Filterkette zurück
+.PP
+Sowohl vollständige als auch individuelle Filteroptionen akzeptieren
+filterspezifische \fIOptionen\fP in einer durch Kommata getrennten
+Liste. Zusätzliche Kommata in den \fIOptionen\fP werden ignoriert. Jede Option
+hat einen Standardwert, daher brauchen Sie nur jene anzugeben, die Sie
+ändern wollen.
+.PP
+Um die gesamte Filterkette und die \fIOptionen\fP anzuzeigen, rufen Sie \fBxz \-vv\fP auf (was gleichbedeutend mit der zweimaligen Angabe von \fB\-\-verbose\fP
+ist). Dies funktioniert auch zum Betrachten der von den Voreinstellungen
+verwendeten Filterkettenoptionen.
+.TP
+\fB\-\-filters=\fP\fIFilter\fP
+gibt die vollständige Filterkette oder eine Voreinstellung in einer
+einzelnen Option an. Mehrere Filter können durch Leerzeichen oder zwei
+Minuszeichen (\fB\-\-\fP) voneinander getrennt werden. Es kann notwendig sein,
+die \fIFilter\fP in der Shell\-Befehlszeile zu maskieren, so dass diese als
+einzelne Option ausgewertet werden. Um Optionen Werte zuzuordnen, verwenden
+Sie \fB:\fP oder \fB=\fP. Einer Voreinstellung kann ein \fB\-\fP vorangestellt werden,
+dem keiner oder mehrere Schalter folgen. Der einzige unterstützte Schalter
+ist \fBe\fP zum Anwenden der gleichen Optionen wie \fB\-\-extreme\fP.
+.TP
+\fB\-\-filters1\fP=\fIFilter\fP … \fB\-\-filters9\fP=\fIFilter\fP
+gibt bis zu neun optionale Filterketten an, die mit \fB\-\-block\-list\fP
+verwendet werden können.
+.IP ""
+Wenn Sie beispielsweise ein Archiv mit ausführbaren Dateien gefolgt von
+Textdateien komprimieren, könnte der Teil mit den ausführbaren Dateien eine
+Filterkette mit einem BCJ\-Filter und der Textdateiteil lediglich den
+LZMA2\-Filter verwenden.
+.TP
+\fB\-\-filters\-help\fP
+zeigt eine Hilfemeldung an, welche beschreibt, wie Voreinstellungen und
+benutzerdefinierte Filterketten in den Optionen \fB\-\-filters\fP und
+\fB\-\-filters1=\fP\fIFilter\fP \&… \& \fB\-\-filters9=\fP\fIFilter\fP angegeben werden und
+beendet das Programm.
+.TP
+\fB\-\-lzma1\fP[\fB=\fP\fIOptionen\fP]
+.PD 0
+.TP
+\fB\-\-lzma2\fP[\fB=\fP\fIOptionen\fP]
+.PD
+fügt LZMA1\- oder LZMA2\-Filter zur Filterkette hinzu. Diese Filter können nur
+als letzte Filter in der Kette verwendet werden.
+.IP ""
+LZMA1 ist ein veralteter Filter, welcher nur wegen des veralteten
+\&\fB.lzma\fP\-Dateiformats unterstützt wird, welches nur LZMA1 unterstützt. LZMA2
+ist eine aktualisierte Version von LZMA1, welche einige praktische Probleme
+von LZMA1 behebt. Das \fB.xz\fP\-Format verwendet LZMA2 und unterstützt LZMA1
+gar nicht. Kompressionsgeschwindigkeit und \-verhältnis sind bei LZMA1 und
+LZMA2 praktisch gleich.
+.IP ""
+LZMA1 und LZMA2 haben die gleichen \fIOptionen\fP:
+.RS
+.TP
+\fBpreset=\fP\fIVoreinstellung\fP
+setzt alle LZMA1\- oder LZMA2\-\fIOptionen\fP auf die \fIVoreinstellung\fP
+zurück. Diese \fIVoreinstellung\fP wird in Form einer Ganzzahl angegeben, der
+ein aus einem einzelnen Buchstaben bestehender Voreinstellungsmodifikator
+folgen kann. Die Ganzzahl kann \fB0\fP bis \fB9\fP sein, entsprechend den
+Befehlszeilenoptionen \fB\-0\fP … \fB\-9\fP. Gegenwärtig ist \fBe\fP der einzige
+unterstützte Modifikator, was \fB\-\-extreme\fP entspricht. Wenn keine
+\fBVoreinstellung\fP angegeben ist, werden die Standardwerte der LZMA1\- oder
+LZMA2\-\fIOptionen\fP der Voreinstellung \fB6\fP entnommen.
+.TP
+\fBdict=\fP\fIGröße\fP
+Die \fIGröße\fP des Wörterbuchs (Chronikpuffers) gibt an, wie viel Byte der
+kürzlich verarbeiteten unkomprimierten Daten im Speicher behalten werden
+sollen. Der Algorithmus versucht, sich wiederholende Byte\-Abfolgen
+(Ãœbereinstimmungen) in den unkomprimierten Daten zu finden und diese durch
+Referenzen zu den Daten zu ersetzen, die sich gegenwärtig im Wörterbuch
+befinden. Je größer das Wörterbuch, umso größer ist die Chance, eine
+Übereinstimmung zu finden. Daher bewirkt eine Erhöhung der \fIGröße\fP des
+Wörterbuchs üblicherweise ein besseres Kompressionsverhältnis, aber ein
+Wörterbuch, das größer ist als die unkomprimierte Datei, wäre
+Speicherverschwendung.
+.IP ""
+Typische Wörterbuch\-\fIGrößen\fP liegen im Bereich von 64\ KiB bis 64\ MiB. Das
+Minimum ist 4\ KiB. Das Maximum für die Kompression ist gegenwärtig 1.5\ GiB
+(1536\ MiB). Bei der Dekompression wird bereits eine Wörterbuchgröße bis zu
+4\ GiB minus 1 Byte unterstützt, welche das Maximum für die LZMA1\- und
+LZMA2\-Datenstromformate ist.
+.IP ""
+Die \fIGröße\fP des Wörterbuchs und der Übereinstimmungsfinder (\fIÜf\fP)
+bestimmen zusammen den Speicherverbrauch des LZMA1\- oder
+LZMA2\-Kodierers. Bei der Dekompression ist ein Wörterbuch der gleichen
+\fIGröße\fP (oder ein noch größeres) wie bei der Kompression erforderlich,
+daher wird der Speicherverbrauch des Dekoders durch die Größe des bei der
+Kompression verwendeten Wörterbuchs bestimmt. Die \fB.xz\fP\-Header speichern
+die \fIGröße\fP des Wörterbuchs entweder als 2^\fIn\fP oder 2^\fIn\fP + 2^(\fIn\fP\-1),
+so dass diese \fIGrößen\fP für die Kompression etwas bevorzugt werden. Andere
+\fIGrößen\fP werden beim Speichern in den \fB.xz\fP\-Headern aufgerundet.
+.TP
+\fBlc=\fP\fIlc\fP
+gibt die Anzahl der literalen Kontextbits an. Das Minimum ist 0 und das
+Maximum 4; der Standardwert ist 3. Außerdem darf die Summe von \fIlc\fP und
+\fIlp\fP nicht größer als 4 sein.
+.IP ""
+Alle Bytes, die nicht als Übereinstimmungen kodiert werden können, werden
+als Literale kodiert. Solche Literale sind einfache 8\-bit\-Bytes, die jeweils
+für sich kodiert werden.
+.IP ""
+Bei der Literalkodierung wird angenommen, dass die höchsten \fIlc\fP\-Bits des
+zuvor unkomprimierten Bytes mit dem nächsten Byte in Beziehung stehen. Zum
+Beispiel folgt in typischen englischsprachigen Texten auf einen
+Großbuchstaben ein Kleinbuchstabe und auf einen Kleinbuchstaben
+üblicherweise wieder ein Kleinbuchstabe. Im US\-ASCII\-Zeichensatz sind die
+höchsten drei Bits 010 für Großbuchstaben und 011 für Kleinbuchstaben. Wenn
+\fIlc\fP mindestens 3 ist, kann die literale Kodierung diese Eigenschaft der
+unkomprimierten Daten ausnutzen.
+.IP ""
+Der Vorgabewert (3) ist üblicherweise gut. Wenn Sie die maximale Kompression
+erreichen wollen, versuchen Sie \fBlc=4\fP. Manchmal hilft es ein wenig, doch
+manchmal verschlechtert es die Kompression. Im letzteren Fall versuchen Sie
+zum Beispiel auch\& \fBlc=2\fP.
+.TP
+\fBlp=\fP\fIlp\fP
+gibt die Anzahl der literalen Positionsbits an. Das Minimum ist 0 und das
+Maximum 4; die Vorgabe ist 0.
+.IP ""
+\fILp\fP beeinflusst, welche Art der Ausrichtung der unkomprimierten Daten beim
+Kodieren von Literalen angenommen wird. Siehe \fIpb\fP weiter unten für weitere
+Informationen zur Ausrichtung.
+.TP
+\fBpb=\fP\fIAnzahl\fP
+legt die Anzahl der Positions\-Bits fest. Das Minimum ist 0 und das Maximum
+4; Standard ist 2.
+.IP ""
+\fIPb\fP beeinflusst, welche Art der Ausrichtung der unkomprimierten Daten
+generell angenommen wird. Standardmäßig wird eine Vier\-Byte\-Ausrichtung
+angenommen (2^\fIpb\fP=2^2=4), was oft eine gute Wahl ist, wenn es keine
+bessere Schätzung gibt.
+.IP ""
+Wenn die Ausrichtung bekannt ist, kann das entsprechende Setzen von \fIpb\fP
+die Dateigröße ein wenig verringern. Wenn Textdateien zum Beispiel eine
+Ein\-Byte\-Ausrichtung haben (US\-ASCII, ISO\-8859\-*, UTF\-8), kann das Setzen
+von \fBpb=0\fP die Kompression etwas verbessern. Für UTF\-16\-Text ist \fBpb=1\fP
+eine gute Wahl. Wenn die Ausrichtung eine ungerade Zahl wie beispielsweise 3
+Byte ist, könnte \fBpb=0\fP die beste Wahl sein.
+.IP ""
+Obwohl die angenommene Ausrichtung mit \fIpb\fP und \fIlp\fP angepasst werden
+kann, bevorzugen LZMA1 und LZMA2 noch etwas die 16\-Byte\-Ausrichtung. Das
+sollten Sie vielleicht beim Design von Dateiformaten berücksichtigen, die
+wahrscheinlich oft mit LZMA1 oder LZMA2 komprimiert werden.
+.TP
+\fBmf=\fP\fIÃœf\fP
+Der Übereinstimmungsfinder hat einen großen Einfluss auf die Geschwindigkeit
+des Kodierers, den Speicherbedarf und das
+Kompressionsverhältnis. Üblicherweise sind auf Hash\-Ketten basierende
+Übereinstimmungsfinder schneller als jene, die mit Binärbäumen arbeiten. Die
+Vorgabe hängt von der \fIVoreinstellungsstufe\fP ab: 0 verwendet \fBhc3\fP, 1\-3
+verwenden \fBhc4\fP und der Rest verwendet \fBbt4\fP.
+.IP ""
+Die folgenden Übereinstimmungsfinder werden unterstützt. Die Formeln zur
+Ermittlung des Speicherverbrauchs sind grobe Schätzungen, die der Realität
+am nächsten kommen, wenn \fIWörterbuch\fP eine Zweierpotenz ist.
+.RS
+.TP
+\fBhc3\fP
+Hash\-Kette mit 2\- und 3\-Byte\-Hashing
+.br
+Minimalwert für \fInice\fP: 3
+.br
+Speicherbedarf:
+.br
+\fIdict\fP * 7,5 (falls \fIdict\fP <= 16 MiB);
+.br
+\fIdict\fP * 5,5 + 64 MiB (falls \fIdict\fP > 16 MiB)
+.TP
+\fBhc4\fP
+Hash\-Kette mit 2\-, 3\- und 4\-Byte\-Hashing
+.br
+Minimaler Wert für \fInice\fP: 4
+.br
+Speicherbedarf:
+.br
+\fIdict\fP * 7,5 (falls \fIdict\fP <= 32 MiB ist);
+.br
+\fIdict\fP * 6,5 (falls \fIdict\fP > 32 MiB ist)
+.TP
+\fBbt2\fP
+Binärbaum mit 2\-Byte\-Hashing
+.br
+Minimaler Wert für \fInice\fP: 2
+.br
+Speicherverbrauch: \fIdict\fP * 9.5
+.TP
+\fBbt3\fP
+Binärbaum mit 2\- und 3\-Byte\-Hashing
+.br
+Minimalwert für \fInice\fP: 3
+.br
+Speicherbedarf:
+.br
+\fIdict\fP * 11,5 (falls \fIdict\fP <= 16 MiB ist);
+.br
+\fIdict\fP * 9,5 + 64 MiB (falls \fIdict\fP > 16 MiB ist)
+.TP
+\fBbt4\fP
+Binärbaum mit 2\-, 3\- und 4\-Byte\-Hashing
+.br
+Minimaler Wert für \fInice\fP: 4
+.br
+Speicherbedarf:
+.br
+\fIdict\fP * 11,5 (falls \fIdict\fP <= 32 MiB ist);
+.br
+\fIdict\fP * 10,5 (falls \fIdict\fP > 32 MiB ist)
+.RE
+.TP
+\fBmode=\fP\fIModus\fP
+gibt die Methode zum Analysieren der vom Ãœbereinstimmungsfinder gelieferten
+Daten an. Als \fIModi\fP werden \fBfast\fP und \fBnormal\fP unterstützt. Die Vorgabe
+ist \fBfast\fP für die \fIVoreinstellungsstufen\fP 0\-3 und \fBnormal\fP für die
+\fIVoreinstellungsstufen\fP 4\-9.
+.IP ""
+Ãœblicherweise wird \fBfast\fP mit Hashketten\-basierten Ãœbereinstimmungsfindern
+und \fBnormal\fP mit Binärbaum\-basierten Übereinstimmungsfindern verwendet. So
+machen es auch die \fIVoreinstellungsstufen\fP.
+.TP
+\fBnice=\fP\fInice\fP
+gibt an, was als annehmbarer Wert für eine Übereinstimmung angesehen werden
+kann. Wenn eine Ãœbereinstimmung gefunden wird, die mindestens diesen
+\fInice\fP\-Wert hat, sucht der Algorithmus nicht weiter nach besseren
+Ãœbereinstimmungen.
+.IP ""
+Der \fInice\fP\-Wert kann 2\-273 Byte sein. Höhere Werte tendieren zu einem
+besseren Kompressionsverhältnis, aber auf Kosten der Geschwindigkeit. Die
+Vorgabe hängt von der \fIVoreinstellungsstufe\fP ab.
+.TP
+\fBdepth=\fP\fITiefe\fP
+legt die maximale Suchtiefe im Ãœbereinstimmungsfinder fest. Vorgegeben ist
+der spezielle Wert 0, der den Kompressor veranlasst, einen annehmbaren Wert
+für \fITiefe\fP aus \fIÜf\fP und \fInice\fP\-Wert zu bestimmen.
+.IP ""
+Die angemessene \fITiefe\fP für Hash\-Ketten ist 4\-100 und 16\-1000 für
+Binärbäume. Hohe Werte für die \fITiefe\fP können den Kodierer bei einigen
+Dateien extrem verlangsamen. Vermeiden Sie es, die \fITiefe\fP über einen Wert
+von 100 zu setzen, oder stellen Sie sich darauf ein, die Kompression
+abzubrechen, wenn sie zu lange dauert.
+.RE
+.IP ""
+Beim Dekodieren von Rohdatenströmen (\fB\-\-format=raw\fP) benötigt LZMA2 nur die
+Wörterbuch\-\fIGröße\fP. LZMA1 benötigt außerdem \fIlc\fP, \fIlp\fP und \fIpb\fP.
+.TP
+\fB\-\-x86\fP[\fB=\fP\fIOptionen\fP]
+.PD 0
+.TP
+\fB\-\-arm\fP[\fB=\fP\fIOptionen\fP]
+.TP
+\fB\-\-armthumb\fP[\fB=\fP\fIOptionen\fP]
+.TP
+\fB\-\-arm64\fP[\fB=\fP\fIOptionen\fP]
+.TP
+\fB\-\-powerpc\fP[\fB=\fP\fIOptionen\fP]
+.TP
+\fB\-\-ia64\fP[\fB=\fP\fIOptionen\fP]
+.TP
+\fB\-\-sparc\fP[\fB=\fP\fIOptionen\fP]
+.TP
+\fB\-\-riscv\fP[\fB=\fP\fIOptionen\fP]
+.PD
+fügt ein »Branch/Call/Jump«\-(BCJ\-)Filter zur Filterkette hinzu. Diese Filter
+können nicht als letzter Filter in der Filterkette verwendet werden.
+.IP ""
+Ein BCJ\-Filter wandelt relative Adressen im Maschinencode in deren absolute
+Gegenstücke um. Die Datengröße wird dadurch nicht geändert, aber die
+Redundanz erhöht, was LZMA2 dabei helfen kann, eine um 10 bis 15% kleinere
+\&\fB.xz\fP\-Datei zu erstellen. Die BCJ\-Filter sind immer reversibel, daher
+verursacht die Anwendung eines BCJ\-Filters auf den falschen Datentyp keinen
+Datenverlust, wobei aber das Kompressionsverhältnis etwas schlechter werden
+könnte. Die BCJ\-Filter sind sehr schnell und verbrauchen nur wenig mehr
+Speicher.
+.IP ""
+Diese BCJ\-Filter haben bekannte Probleme mit dem Kompressionsverhältnis:
+.RS
+.IP \(bu 3
+In einigen Dateitypen, die ausführbaren Code enthalten (zum Beispiel
+Objektdateien, statische Bibliotheken und Linux\-Kernelmodule), sind die
+Adressen in den Anweisungen mit Füllwerten gefüllt. Diese BCJ\-Filter führen
+dennoch die Adressumwandlung aus, wodurch die Kompression bei diesen Dateien
+schlechter wird.
+.IP \(bu 3
+Falls ein BCJ\-Filter auf ein Archiv angewendet wird, ist es möglich, dass
+das Kompressionsverhältnis schlechter als ohne Filter wird. Falls es
+beispielsweise ähnliche oder sogar identische ausführbare Dateien gibt, dann
+werden diese durch die Filterung wahrscheinlich »unähnlicher« und
+verschlechtern dadurch das Kompressionsverhältnis. Der Inhalt
+nicht\-ausführbarer Dateien im gleichen Archiv kann sich ebenfalls darauf
+auswirken. In der Praxis werden Sie durch Versuche mit oder ohne BCJ\-Filter
+selbst herausfinden müssen, was situationsbezogen besser ist.
+.RE
+.IP ""
+Verschiedene Befehlssätze haben unterschiedliche Ausrichtungen: Die
+ausführbare Datei muss in den Eingabedateien einem Vielfachen dieses Wertes
+entsprechen, damit dieser Filter funktioniert.
+.RS
+.RS
+.PP
+.TS
+tab(;);
+l n l
+l n l.
+Filter;Ausrichtung;Hinweise
+x86;1;32\-Bit oder 64\-Bit x86
+ARM;4;
+ARM\-Thumb;2;
+ARM64;4;4096\-Byte\-Ausrichtung ist optimal
+PowerPC;4;Nur Big Endian
+IA\-64;16;Itanium
+SPARC;4;
+RISC\-V;2;
+.TE
+.RE
+.RE
+.IP ""
+Da die BCJ\-gefilterten Daten üblicherweise mit LZMA2 komprimiert sind, kann
+das Kompressionsverhältnis dadurch etwas verbessert werden, dass die
+LZMA2\-Optionen so gesetzt werden, dass sie der Ausrichtung des gewählten
+BCJ\-Filters entsprechen. Beispiele:
+.RS
+.IP \(bu 3
+Der IA\-64\-Filter hat eine 16\-Byte\-Ausrichtung, daher ist \fBpb=4,lp=4,lc=0\fP
+für LZMA2 passend (2^4=16).
+.IP \(bu 3
+RISC\-V\-Code hat eine 2\-Byte\- oder 4\-Byte\-Ausrichtung, abhängig davon, ob die
+Datei 16\-bit\-komprimierte Instruktionen enthält (die C\-Erweiterung). Wenn
+16\-bit\-Instruktionen verwendet werden, ist \fBpb=2,lp=1,lc=3\fP oder
+\fBpb=1,lp=1,lc=3\fP passend. Wenn keine 16\-bit\-Instruktionen vorhanden sind,
+ist \fBpb=2,lp=2,lc=2\fP am besten. Mit \fBreadelf \-h\fP können Sie überprüfen, ob
+»RVC« in der »Flags«\-Zeile auftritt.
+.IP \(bu 3
+ARM64 hat stets eine 4\-Byte\-Ausrichtung, daher ist \fBpb=2,lp=2,lc=2\fP am
+besten.
+.IP \(bu 3
+Der x86\-Filter stellt eine Ausnahme dar. Es ist üblicherweise eine gute
+Wahl, bei den Voreinstellungen von LZMA2 (\fBpb=2,lp=0,lc=3\fP) zu bleiben,
+wenn Sie ausführbare x86\-Dateien komprimieren
+.RE
+.IP ""
+Alle BCJ\-Filter unterstützen die gleichen \fIOptionen\fP:
+.RS
+.TP
+\fBstart=\fP\fIVersatz\fP
+gibt den Start\-\fIVersatz\fP an, der bei der Umwandlung zwischen relativen und
+absoluten Adressen verwendet wird. Der \fIVersatz\fP muss ein Vielfaches der
+Filterausrichtung sein (siehe die Tabelle oben). Der Standardwert ist 0. In
+der Praxis ist dieser Standardwert gut; die Angabe eines benutzerdefinierten
+\fIVersatzes\fP ist fast immer unnütz.
+.RE
+.TP
+\fB\-\-delta\fP[\fB=\fP\fIOptionen\fP]
+fügt den Delta\-Filter zur Filterkette hinzu. Der Delta\-Filter kann nicht als
+letzter Filter in der Filterkette verwendet werden.
+.IP ""
+Gegenwärtig wird nur eine einfache, Byte\-bezogene Delta\-Berechnung
+unterstützt. Beim Komprimieren von zum Beispiel unkomprimierten
+Bitmap\-Bildern oder unkomprimierten PCM\-Audiodaten kann es jedoch sinnvoll
+sein. Dennoch können für spezielle Zwecke entworfene Algorithmen deutlich
+bessere Ergebnisse als Delta und LZMA2 liefern. Dies trifft insbesondere auf
+Audiodaten zu, die sich zum Beispiel mit \fBflac\fP(1) schneller und besser
+komprimieren lassen.
+.IP ""
+Unterstützte \fIOptionen\fP:
+.RS
+.TP
+\fBdist=\fP\fIAbstand\fP
+gibt den \fIAbstand\fP der Delta\-Berechnung in Byte an. Zulässige Werte für den
+\fIAbstand\fP sind 1 bis 256. Der Vorgabewert ist 1.
+.IP ""
+Zum Beispiel wird mit \fBdist=2\fP und der 8\-Byte\-Eingabe A1 B1 A2 B3 A3 B5 A4
+B7 die Ausgabe A1 B1 01 02 01 02 01 02 sein.
+.RE
+.
+.SS "Andere Optionen"
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+unterdrückt Warnungen und Hinweise. Geben Sie dies zweimal an, um auch
+Fehlermeldungen zu unterdrücken. Diese Option wirkt sich nicht auf den
+Exit\-Status aus. Das bedeutet, das selbst bei einer unterdrückten Warnung
+der Exit\-Status zur Anzeige einer Warnung dennoch verwendet wird.
+.TP
+\fB\-v\fP, \fB\-\-verbose\fP
+bewirkt ausführliche Ausgaben. Wenn die Standardfehlerausgabe mit einem
+Terminal verbunden ist, zeigt \fBxz\fP den Fortschritt an. Durch zweimalige
+Angabe von \fB\-\-verbose\fP wird die Ausgabe noch ausführlicher.
+.IP ""
+Der Fortschrittsanzeiger stellt die folgenden Informationen dar:
+.RS
+.IP \(bu 3
+Der Prozentsatz des Fortschritts wird angezeigt, wenn die Größe der
+Eingabedatei bekannt ist. Das bedeutet, dass der Prozentsatz in
+Weiterleitungen (Pipes) nicht angezeigt werden kann.
+.IP \(bu 3
+Menge der erzeugten komprimierten Daten (bei der Kompression) oder der
+verarbeiteten Daten (bei der Dekompression).
+.IP \(bu 3
+Menge der verarbeiteten unkomprimierten Daten (bei der Kompression) oder der
+erzeugten Daten (bei der Dekompression).
+.IP \(bu 3
+Kompressionsverhältnis, das mittels Dividieren der Menge der bisher
+komprimierten Daten durch die Menge der bisher verarbeiteten unkomprimierten
+Daten ermittelt wird.
+.IP \(bu 3
+Kompressions\- oder Dekompressionsgeschwindigkeit. Diese wird anhand der
+Menge der unkomprimierten verarbeiteten Daten (bei der Kompression) oder der
+Menge der erzeugten Daten (bei der Dekompression) pro Sekunde gemessen. Die
+Anzeige startet einige Sekunden nachdem \fBxz\fP mit der Verarbeitung der Datei
+begonnen hat.
+.IP \(bu 3
+Die vergangene Zeit im Format M:SS oder H:MM:SS.
+.IP \(bu 3
+Die geschätzte verbleibende Zeit wird nur angezeigt, wenn die Größe der
+Eingabedatei bekannt ist und bereits einige Sekunden vergangen sind, nachdem
+\fBxz\fP mit der Verarbeitung der Datei begonnen hat. Die Zeit wird in einem
+weniger präzisen Format ohne Doppelpunkte angezeigt, zum Beispiel 2 min 30
+s.
+.RE
+.IP ""
+Wenn die Standardfehlerausgabe kein Terminal ist, schreibt \fBxz\fP mit
+\fB\-\-verbose\fP nach dem Komprimieren oder Dekomprimieren der Datei in einer
+einzelnen Zeile den Dateinamen, die komprimierte Größe, die unkomprimierte
+Größe, das Kompressionsverhältnis und eventuell auch die Geschwindigkeit und
+die vergangene Zeit in die Standardfehlerausgabe. Die Geschwindigkeit und
+die vergangene Zeit werden nur angezeigt, wenn der Vorgang mindestens ein
+paar Sekunden gedauert hat. Wurde der Vorgang nicht beendet, zum Beispiel
+weil ihn der Benutzer abgebrochen hat, wird außerdem der Prozentsatz des
+erreichten Verarbeitungsfortschritts aufgenommen, sofern die Größe der
+Eingabedatei bekannt ist.
+.TP
+\fB\-Q\fP, \fB\-\-no\-warn\fP
+setzt den Exit\-Status nicht auf 2, selbst wenn eine Bedingung erfüllt ist,
+die eine Warnung gerechtfertigt hätte. Diese Option wirkt sich nicht auf die
+Ausführlichkeitsstufe aus, daher müssen sowohl \fB\-\-quiet\fP als auch
+\fB\-\-no\-warn\fP angegeben werden, um einerseits keine Warnungen anzuzeigen und
+andererseits auch den Exit\-Status nicht zu ändern.
+.TP
+\fB\-\-robot\fP
+gibt Meldungen in einem maschinenlesbaren Format aus. Dadurch soll das
+Schreiben von Frontends erleichtert werden, die \fBxz\fP anstelle von Liblzma
+verwenden wollen, was in verschiedenen Skripten der Fall sein kann. Die
+Ausgabe mit dieser aktivierten Option sollte über mehrere
+\fBxz\fP\-Veröffentlichungen stabil sein. Details hierzu finden Sie im Abschnitt
+\fBROBOTER\-MODUS\fP.
+.TP
+\fB\-\-info\-memory\fP
+zeigt in einem menschenlesbaren Format an, wieviel physischen Speicher (RAM)
+und wie viele Prozessor\-Threads das System nach Annahme von \fBxz\fP hat, sowie
+die Speicherbedarfsbegrenzung für Kompression und Dekompression, und beendet
+das Programm erfolgreich.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+zeigt eine Hilfemeldung mit den am häufigsten genutzten Optionen an und
+beendet das Programm erfolgreich.
+.TP
+\fB\-H\fP, \fB\-\-long\-help\fP
+zeigt eine Hilfemeldung an, die alle Funktionsmerkmale von \fBxz\fP beschreibt
+und beendet das Programm erfolgreich.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+zeigt die Versionsnummer von \fBxz\fP und Liblzma in einem menschenlesbaren
+Format an. Um eine maschinell auswertbare Ausgabe zu erhalten, geben Sie
+\fB\-\-robot\fP vor \fB\-\-version\fP an.
+.
+.SH ROBOTER\-MODUS
+Der Roboter\-Modus wird mit der Option \fB\-\-robot\fP aktiviert. Er bewirkt, dass
+die Ausgabe von \fBxz\fP leichter von anderen Programmen ausgewertet werden
+kann. Gegenwärtig wird \fB\-\-robot\fP nur zusammen mit \fB\-\-list\fP,
+\fB\-\-filters\-help\fP, \fB\-\-info\-memory\fP und \fB\-\-version\fP unterstützt. In der
+Zukunft wird dieser Modus auch für Kompression und Dekompression
+unterstützt.
+.
+.SS Listenmodus
+\fBxz \-\-robot \-\-list\fP verwendet eine durch Tabulatoren getrennte Ausgabe. In
+der ersten Spalte jeder Zeile bezeichnet eine Zeichenkette den Typ der
+Information, die in dieser Zeile enthalten ist:
+.TP
+\fBname\fP
+Dies ist stets die erste Zeile, wenn eine Datei aufgelistet wird. Die zweite
+Spalte in der Zeile enthält den Dateinamen.
+.TP
+\fBfile\fP
+Diese Zeile enthält allgemeine Informationen zur \fB.xz\fP\-Datei. Diese Zeile
+wird stets nach der \fBname\fP\-Zeile ausgegeben.
+.TP
+\fBstream\fP
+Dieser Zeilentyp wird nur verwendet, wenn \fB\-\-verbose\fP angegeben wurde. Es
+gibt genau so viele \fBstream\fP\-Zeilen, wie Datenströme in der \fB.xz\fP\-Datei
+enthalten sind.
+.TP
+\fBblock\fP
+Dieser Zeilentyp wird nur verwendet, wenn \fB\-\-verbose\fP angegeben wurde. Es
+gibt so viele \fBblock\fP\-Zeilen, wie Blöcke in der \fB.xz\fP\-Datei. Die
+\fBblock\fP\-Zeilen werden nach allen \fBstream\fP\-Zeilen angezeigt; verschiedene
+Zeilentypen werden nicht verschachtelt.
+.TP
+\fBsummary\fP
+Dieser Zeilentyp wird nur verwendet, wenn \fB\-\-verbose\fP zwei Mal angegeben
+wurde. Diese Zeile wird nach allen \fBblock\fP\-Zeilen ausgegeben. Wie die
+\fBfile\fP\-Zeile enthält die \fBsummary\fP\-Zeile allgemeine Informationen zur
+\&\fB.xz\fP\-Datei.
+.TP
+\fBtotals\fP
+Diese Zeile ist immer die letzte der Listenausgabe. Sie zeigt die
+Gesamtanzahlen und \-größen an.
+.PP
+Die Spalten der \fBfile\fP\-Zeilen:
+.PD 0
+.RS
+.IP 2. 4
+Anzahl der Datenströme in der Datei
+.IP 3. 4
+Gesamtanzahl der Blöcke in den Datenströmen
+.IP 4. 4
+Komprimierte Größe der Datei
+.IP 5. 4
+Unkomprimierte Größe der Datei
+.IP 6. 4
+Das Kompressionsverhältnis, zum Beispiel \fB0.123\fP. Wenn das Verhältnis über
+9.999 liegt, werden drei Minuszeichen (\fB\-\-\-\fP) anstelle des
+Kompressionsverhältnisses angezeigt.
+.IP 7. 4
+Durch Kommata getrennte Liste der Namen der Integritätsprüfungen. Für die
+bekannten Überprüfungstypen werden folgende Zeichenketten verwendet:
+\fBNone\fP, \fBCRC32\fP, \fBCRC64\fP und \fBSHA\-256\fP. \fBUnbek.\fP\fIN\fP wird verwendet,
+wobei \fIN\fP die Kennung der Überprüfung als Dezimalzahl angibt (ein\- oder
+zweistellig).
+.IP 8. 4
+Gesamtgröße der Datenstromauffüllung in der Datei
+.RE
+.PD
+.PP
+Die Spalten der \fBstream\fP\-Zeilen:
+.PD 0
+.RS
+.IP 2. 4
+Datenstromnummer (der erste Datenstrom ist 1)
+.IP 3. 4
+Anzahl der Blöcke im Datenstrom
+.IP 4. 4
+Komprimierte Startposition
+.IP 5. 4
+Unkomprimierte Startposition
+.IP 6. 4
+Komprimierte Größe (schließt die Datenstromauffüllung nicht mit ein)
+.IP 7. 4
+Unkomprimierte Größe
+.IP 8. 4
+Kompressionsverhältnis
+.IP 9. 4
+Name der Integritätsprüfung
+.IP 10. 4
+Größe der Datenstromauffüllung
+.RE
+.PD
+.PP
+Die Spalten der \fBblock\fP\-Zeilen:
+.PD 0
+.RS
+.IP 2. 4
+Anzahl der in diesem Block enthaltenen Datenströme
+.IP 3. 4
+Blocknummer relativ zum Anfang des Datenstroms (der erste Block ist 1)
+.IP 4. 4
+Blocknummer relativ zum Anfang der Datei
+.IP 5. 4
+Komprimierter Startversatz relativ zum Beginn der Datei
+.IP 6. 4
+Unkomprimierter Startversatz relativ zum Beginn der Datei
+.IP 7. 4
+Komprimierte Gesamtgröße des Blocks (einschließlich Header)
+.IP 8. 4
+Unkomprimierte Größe
+.IP 9. 4
+Kompressionsverhältnis
+.IP 10. 4
+Name der Integritätsprüfung
+.RE
+.PD
+.PP
+Wenn \fB\-\-verbose\fP zwei Mal angegeben wurde, werden zusätzliche Spalten in
+die \fBblock\fP\-Zeilen eingefügt. Diese werden mit einem einfachen \fB\-\-verbose\fP
+nicht angezeigt, da das Ermitteln dieser Informationen viele Suchvorgänge
+erfordert und daher recht langsam sein kann:
+.PD 0
+.RS
+.IP 11. 4
+Wert der Integritätsprüfung in hexadezimaler Notation
+.IP 12. 4
+Block\-Header\-Größe
+.IP 13. 4
+Block\-Schalter: \fBc\fP gibt an, dass die komprimierte Größe verfügbar ist, und
+\fBu\fP gibt an, dass die unkomprimierte Größe verfügbar ist. Falls der
+Schalter nicht gesetzt ist, wird stattdessen ein Bindestrich (\fB\-\fP)
+angezeigt, um die Länge der Zeichenkette beizubehalten. In Zukunft könnten
+neue Schalter am Ende der Zeichenkette hinzugefügt werden.
+.IP 14. 4
+Größe der tatsächlichen komprimierten Daten im Block. Ausgeschlossen sind
+hierbei die Block\-Header, die Blockauffüllung und die Prüffelder.
+.IP 15. 4
+Größe des Speichers (in Byte), der zum Dekomprimieren dieses Blocks mit
+dieser \fBxz\fP\-Version benötigt wird.
+.IP 16. 4
+Filterkette. Beachten Sie, dass die meisten der bei der Kompression
+verwendeten Optionen nicht bekannt sein können, da in den \fB.xz\fP\-Headern nur
+die für die Dekompression erforderlichen Optionen gespeichert sind.
+.RE
+.PD
+.PP
+Die Spalten der \fBsummary\fP\-Zeilen:
+.PD 0
+.RS
+.IP 2. 4
+Größe des Speichers (in Byte), der zum Dekomprimieren dieser Datei mit
+dieser \fBxz\fP\-Version benötigt wird.
+.IP 3. 4
+\fByes\fP oder \fBno\fP geben an, ob in allen Block\-Headern sowohl die
+komprimierte als auch die unkomprimierte Größe gespeichert ist.
+.PP
+\fISeit\fP \fBxz\fP \fI5.1.2alpha:\fP
+.IP 4. 4
+Minimale \fBxz\fP\-Version, die zur Dekompression der Datei erforderlich ist
+.RE
+.PD
+.PP
+Die Spalten der \fBtotals\fP\-Zeile:
+.PD 0
+.RS
+.IP 2. 4
+Anzahl der Datenströme
+.IP 3. 4
+Anzahl der Blöcke
+.IP 4. 4
+Komprimierte Größe
+.IP 5. 4
+Unkomprimierte Größe
+.IP 6. 4
+Durchschnittliches Kompressionsverhältnis
+.IP 7. 4
+Durch Kommata getrennte Liste der Namen der Integritätsprüfungen, die in den
+Dateien präsent waren.
+.IP 8. 4
+Größe der Datenstromauffüllung
+.IP 9. 4
+Anzahl der Dateien. Dies dient dazu, die Reihenfolge der vorigen Spalten an
+die in den \fBfile\fP\-Zeilen anzugleichen.
+.PD
+.RE
+.PP
+Wenn \fB\-\-verbose\fP zwei Mal angegeben wird, werden zusätzliche Spalten in die
+\fBtotals\fP\-Zeile eingefügt:
+.PD 0
+.RS
+.IP 10. 4
+Maximale Größe des Speichers (in Byte), der zum Dekomprimieren der Dateien
+mit dieser \fBxz\fP\-Version benötigt wird.
+.IP 11. 4
+\fByes\fP oder \fBno\fP geben an, ob in allen Block\-Headern sowohl die
+komprimierte als auch die unkomprimierte Größe gespeichert ist.
+.PP
+\fISeit\fP \fBxz\fP \fI5.1.2alpha:\fP
+.IP 12. 4
+Minimale \fBxz\fP\-Version, die zur Dekompression der Datei erforderlich ist
+.RE
+.PD
+.PP
+Zukünftige Versionen könnten neue Zeilentypen hinzufügen, weiterhin könnten
+auch in den vorhandenen Zeilentypen weitere Spalten hinzugefügt werden, aber
+die existierenden Spalten werden nicht geändert.
+.
+.SS Filterhilfe
+\fBxz \-\-robot \-\-filters\-help\fP gibt die unterstützten Filter im folgenden
+Format aus:
+.PP
+\fIFilter\fP\fB:\fP\fIOption\fP\fB=<\fP\fIWert\fP\fB>,\fP\fIOption\fP\fB=<\fP\fIWert\fP\fB>\fP
+…
+.TP
+\fIFilter\fP
+Name des Filters
+.TP
+\fIOption\fP
+Name der filterspezifischen Option
+.TP
+\fIWert\fP
+Der numerische \fIWert\fP erscheint als Bereich
+\fB<\fP\fIMinimum\fP\fB\-\fP\fIMaximum\fP\fB>\fP. Die Auswahl des
+Zeichenketten\-\fIWert\fPs wird in \fB< >\fP eingeschlossen und durch \fB|\fP
+getrennt.
+.PP
+Jeder Filter wird in einer separaten Zeile ausgegeben.
+.
+.SS "Informationen zur Speicherbedarfsbegrenzung"
+\fBxz \-\-robot \-\-info\-memory\fP gibt eine einzelne Zeile mit mehreren durch
+Tabulatoren getrennten Spalten aus:
+.IP 1. 4
+Gesamter physischer Speicher (RAM) in Byte.
+.IP 2. 4
+Speicherbedarfsbegrenzung für die Kompression in Byte
+(\fB\-\-memlimit\-compress\fP). Ein spezieller Wert von \fB0\fP bezeichnet die
+Standardeinstellung, die im Einzelthread\-Modus bedeutet, dass keine
+Begrenzung vorhanden ist.
+.IP 3. 4
+Speicherbedarfsbegrenzung für die Dekompression in Byte
+(\fB\-\-memlimit\-decompress\fP). Ein spezieller Wert von \fB0\fP bezeichnet die
+Standardeinstellung, die im Einzelthread\-Modus bedeutet, dass keine
+Begrenzung vorhanden ist.
+.IP 4. 4
+Seit \fBxz\fP 5.3.4alpha: Die Speichernutzung für Multithread\-Dekompression in
+Byte (\fB\-\-memlimit\-mt\-decompress\fP). Dies ist niemals \fB0\fP, da ein
+systemspezifischer Vorgabewert (gezeigt in Spalte 5) verwendet wird, falls
+keine Grenze ausdrücklich angegeben wurde. Dies ist außerdem niemals größer
+als der Wert in in Spalte 3, selbst wenn mit \fB\-\-memlimit\-mt\-decompress\fP ein
+größerer Wert angegeben wurde.
+.IP 5. 4
+Seit \fBxz\fP 5.3.4alpha: Eine systemspezifisch vorgegebene Begrenzung des
+Speicherverbrauchs, die zur Begrenzung der Anzahl der Threads beim
+Komprimieren mit automatischer Anzahl der Threads (\fB\-\-threads=0\fP) und wenn
+keine Speicherbedarfsbegrenzung angegeben wurde (\fB\-\-memlimit\-compress\fP)
+verwendet wird. Dies wird auch als Standardwert für
+\fB\-\-memlimit\-mt\-decompress\fP verwendet.
+.IP 6. 4
+Seit \fBxz\fP 5.3.4alpha: Anzahl der verfügbaren Prozessorthreads.
+.PP
+In der Zukunft könnte die Ausgabe von \fBxz \-\-robot \-\-info\-memory\fP weitere
+Spalten enthalten, aber niemals mehr als eine einzelne Zeile.
+.
+.SS Version
+\fBxz \-\-robot \-\-version\fP gibt die Versionsnummern von \fBxz\fP und Liblzma im
+folgenden Format aus:
+.PP
+\fBXZ_VERSION=\fP\fIXYYYZZZS\fP
+.br
+\fBLIBLZMA_VERSION=\fP\fIXYYYZZZS\fP
+.TP
+\fIX\fP
+Hauptversion.
+.TP
+\fIYYY\fP
+Unterversion. Gerade Zahlen bezeichnen eine stabile Version. Ungerade Zahlen
+bezeichnen Alpha\- oder Betaversionen.
+.TP
+\fIZZZ\fP
+Patch\-Stufe für stabile Veröffentlichungen oder einfach nur ein Zähler für
+Entwicklungsversionen.
+.TP
+\fIS\fP
+Stabilität. 0 ist Alpha, 1 ist Beta und 2 ist stabil. \fIS\fP sollte immer 2
+sein, wenn \fIYYY\fP eine gerade Zahl ist.
+.PP
+\fIXYYYZZZS\fP sind in beiden Zeilen gleich, sofern \fBxz\fP und Liblzma aus der
+gleichen Veröffentlichung der XZ\-Utils stammen.
+.PP
+Beispiele: 4.999.9beta ist \fB49990091\fP und 5.0.0 is \fB50000002\fP.
+.
+.SH EXIT\-STATUS
+.TP
+\fB0\fP
+Alles ist in Ordnung.
+.TP
+\fB1\fP
+Ein Fehler ist aufgetreten.
+.TP
+\fB2\fP
+Es ist etwas passiert, das eine Warnung rechtfertigt, aber es sind keine
+tatsächlichen Fehler aufgetreten.
+.PP
+In die Standardausgabe geschriebene Hinweise (keine Warnungen oder Fehler),
+welche den Exit\-Status nicht beeinflussen.
+.
+.SH UMGEBUNGSVARIABLEN
+\fBxz\fP wertet eine durch Leerzeichen getrennte Liste von Optionen in den
+Umgebungsvariablen \fBXZ_DEFAULTS\fP und \fBXZ_OPT\fP aus (in dieser Reihenfolge),
+bevor die Optionen aus der Befehlszeile ausgewertet werden. Beachten Sie,
+dass beim Auswerten der Umgebungsvariablen nur Optionen berücksichtigt
+werden; alle Einträge, die keine Optionen sind, werden stillschweigend
+ignoriert. Die Auswertung erfolgt mit \fBgetopt_long\fP(3), welches auch für
+die Befehlszeilenargumente verwendet wird.
+.TP
+\fBXZ_DEFAULTS\fP
+Benutzerspezifische oder systemweite Standardoptionen. Typischerweise werden
+diese in einem Shell\-Initialisierungsskript gesetzt, um die
+Speicherbedarfsbegrenzung von \fBxz\fP standardmäßig zu aktivieren. Außer bei
+Shell\-Initialisierungsskripten und in ähnlichen Spezialfällen darf die
+Variable \fBXZ_DEFAULTS\fP in Skripten niemals gesetzt oder außer Kraft gesetzt
+werden.
+.TP
+\fBXZ_OPT\fP
+Dies dient der Übergabe von Optionen an \fBxz\fP, wenn es nicht möglich ist,
+die Optionen direkt in der Befehlszeile von \fBxz\fP zu übergeben. Dies ist der
+Fall, wenn \fBxz\fP von einem Skript oder Dienstprogramm ausgeführt wird, zum
+Beispiel GNU \fBtar\fP(1):
+.RS
+.RS
+.PP
+.nf
+\f(CWXZ_OPT=\-2v tar caf foo.tar.xz foo\fP
+.fi
+.RE
+.RE
+.IP ""
+Skripte können \fBXZ_OPT\fP zum Beispiel zum Setzen skriptspezifischer
+Standard\-Kompressionsoptionen verwenden. Es ist weiterhin empfehlenswert,
+Benutzern die Außerkraftsetzung von \fBXZ_OPT\fP zu erlauben, falls dies
+angemessen ist. Zum Beispiel könnte in \fBsh\fP(1)\-Skripten Folgendes stehen:
+.RS
+.RS
+.PP
+.nf
+\f(CWXZ_OPT=${XZ_OPT\-"\-7e"} export XZ_OPT\fP
+.fi
+.RE
+.RE
+.
+.SH "KOMPATIBILITÄT ZU DEN LZMA\-UTILS"
+Die Befehlszeilensyntax von \fBxz\fP ist praktisch eine Obermenge der von
+\fBlzma\fP, \fBunlzma\fP und \fBlzcat\fP in den LZMA\-Utils der Versionen 4.32.x. In
+den meisten Fällen sollte es möglich sein, die LZMA\-Utils durch die XZ\-Utils
+zu ersetzen, ohne vorhandene Skripte ändern zu müssen. Dennoch gibt es
+einige Inkompatibilitäten, die manchmal Probleme verursachen können.
+.
+.SS "Voreinstellungsstufen zur Kompression"
+Die Nummerierung der Voreinstellungsstufen der Kompression ist in \fBxz\fP und
+den LZMA\-Utils unterschiedlich. Der wichtigste Unterschied ist die Zuweisung
+der Wörterbuchgrößen zu den verschiedenen Voreinstellungsstufen. Die
+Wörterbuchgröße ist etwa gleich dem Speicherbedarf bei der Dekompression.
+.RS
+.PP
+.TS
+tab(;);
+c c c
+c n n.
+Stufe;xz;LZMA\-Utils
+\-0;256 KiB;nicht verfügbar
+\-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
+.TE
+.RE
+.PP
+Die Unterschiede in der Wörterbuchgröße beeinflussen auch den Speicherbedarf
+bei der Kompression, aber es gibt noch einige andere Unterschiede zwischen
+den LZMA\-Utils und den XZ\-Utils, die die Kluft noch vergrößern:
+.RS
+.PP
+.TS
+tab(;);
+c c c
+c n n.
+Stufe;xz;LZMA\-Utils 4.32.x
+\-0;3 MiB;nicht verfügbar
+\-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
+.TE
+.RE
+.PP
+Die standardmäßige Voreinstellungsstufe in den LZMA\-Utils ist \fB\-7\fP, während
+diese in den XZ\-Utils \fB\-6\fP ist, daher verwenden beide standardmäßig ein 8
+MiB großes Wörterbuch.
+.
+.SS "Vor\- und Nachteile von .lzma\-Dateien als Datenströme"
+Die unkomprimierte Größe der Datei kann in den \fB.lzma\fP\-Headern gespeichert
+werden. Die LZMA\-Utils tun das beim Komprimieren gewöhnlicher Dateien. Als
+Alternative kann die unkomprimierte Größe als unbekannt markiert und eine
+Nutzdatenende\-Markierung (end\-of\-payload) verwendet werden, um anzugeben, wo
+der Dekompressor stoppen soll. Die LZMA\-Utils verwenden diese Methode, wenn
+die unkomprimierte Größe unbekannt ist, was beispielsweise in Pipes
+(Befehlsverkettungen) der Fall ist.
+.PP
+\fBxz\fP unterstützt die Dekompression von \fB.lzma\fP\-Dateien mit oder ohne
+Nutzdatenende\-Markierung, aber alle von \fBxz\fP erstellten \fB.lzma\fP\-Dateien
+verwenden diesen Nutzdatenende\-Markierung, wobei die unkomprimierte Größe in
+den \fB.lzma\fP\-Headern als unbekannt markiert wird. Das könnte in einigen
+unüblichen Situationen ein Problem sein. Zum Beispiel könnte ein
+\&\fB.lzma\fP\-Dekompressor in einem Gerät mit eingebettetem System nur mit
+Dateien funktionieren, deren unkomprimierte Größe bekannt ist. Falls Sie auf
+dieses Problem stoßen, müssen Sie die LZMA\-Utils oder das LZMA\-SDK
+verwenden, um \fB.lzma\fP\-Dateien mit bekannter unkomprimierter Größe zu
+erzeugen.
+.
+.SS "Nicht unterstützte .lzma\-Dateien"
+Das \fB.lzma\fP\-Format erlaubt \fIlc\fP\-Werte bis zu 8 und \fIlp\fP\-Werte bis zu
+4. Die LZMA\-Utils können Dateien mit beliebigem \fIlc\fP und \fIlp\fP
+dekomprimieren, aber erzeugen immer Dateien mit \fBlc=3\fP und \fBlp=0\fP. Das
+Erzeugen von Dateien mit anderem \fIlc\fP und \fIlp\fP ist mit \fBxz\fP und mit dem
+LZMA\-SDK möglich.
+.PP
+Die Implementation des LZMA\-Filters in liblzma setzt voraus, dass die Summe
+von \fIlc\fP und \fIlp\fP nicht größer als 4 ist. Daher können \fB.lzma\fP\-Dateien,
+welche diese Begrenzung überschreiten, mit \fBxz\fP nicht dekomprimiert werden.
+.PP
+Die LZMA\-Utils erzeugen nur \fB.lzma\fP\-Dateien mit einer Wörterbuchgröße von
+2^\fIn\fP (einer Zweierpotenz), aber akzeptieren Dateien mit einer beliebigen
+Wörterbuchgröße. Liblzma akzeptiert nur \fB.lzma\fP\-Dateien mit einer
+Wörterbuchgröße von 2^\fIn\fP oder 2^\fIn\fP + 2^(\fIn\fP\-1). Dies dient zum
+Verringern von Fehlalarmen beim Erkennen von \fB.lzma\fP\-Dateien.
+.PP
+Diese Einschränkungen sollten in der Praxis kein Problem sein, da praktisch
+alle \fB.lzma\fP\-Dateien mit Einstellungen komprimiert wurden, die Liblzma
+akzeptieren wird.
+.
+.SS "Angehängter Datenmüll"
+Bei der Dekompression ignorieren die LZMA\-Utils stillschweigend alles nach
+dem ersten \fB.lzma\fP\-Datenstrom. In den meisten Situationen ist das ein
+Fehler. Das bedeutet auch, dass die LZMA\-Utils die Dekompression verketteter
+\&\fB.lzma\fP\-Dateien nicht unterstützen.
+.PP
+Wenn nach dem ersten \fB.lzma\fP\-Datenstrom Daten verbleiben, erachtet \fBxz\fP
+die Datei als beschädigt, es sei denn, die Option \fB\-\-single\-stream\fP wurde
+verwendet. Dies könnte die Ausführung von Skripten beeinflussen, die davon
+ausgehen, dass angehängter Datenmüll ignoriert wird.
+.
+.SH ANMERKUNGEN
+.
+.SS "Die komprimierte Ausgabe kann variieren"
+Die exakte komprimierte Ausgabe, die aus der gleichen unkomprimierten
+Eingabedatei erzeugt wird, kann zwischen den Versionen der XZ\-Utils
+unterschiedlich sein, selbst wenn die Kompressionsoptionen identisch
+sind. Das kommt daher, weil der Kodierer verbessert worden sein könnte
+(hinsichtlich schnellerer oder besserer Kompression), ohne das Dateiformat
+zu beeinflussen. Die Ausgabe kann sogar zwischen verschiedenen Programmen
+der gleichen Version der XZ\-Utils variieren, wenn bei der Erstellung des
+Binärprogramms unterschiedliche Optionen verwendet wurden.
+.PP
+Sobald \fB\-\-rsyncable\fP implementiert wurde, bedeutet das, dass die sich
+ergebenden Dateien nicht notwendigerweise mit Rsync abgeglichen werden
+können, außer wenn die alte und neue Datei mit der gleichen \fBxz\fP\-Version
+erzeugt wurden. Das Problem kann beseitigt werden, wenn ein Teil der
+Encoder\-Implementierung eingefroren wird, um die mit Rsync abgleichbare
+Ausgabe über \fBxz\fP\-Versionsgrenzen hinweg stabil zu halten.
+.
+.SS "Eingebettete .xz\-Dekompressoren"
+Eingebettete \fB.xz\fP\-Dekompressor\-Implementierungen wie XZ Embedded
+unterstützen nicht unbedingt Dateien, die mit anderen Integritätsprüfungen
+(\fIPrüfung\fP\-Typen) als \fBnone\fP und \fBcrc32\fP erzeugt wurden. Da
+\fB\-\-check=crc64\fP die Voreinstellung ist, müssen Sie \fB\-\-check=none\fP oder
+\fB\-\-check=crc32\fP verwenden, wenn Sie Dateien für eingebettete Systeme
+erstellen.
+.PP
+Außerhalb eingebetteter Systeme unterstützen die Dekompressoren des
+\&\fB.xz\fP\-Formats alle \fIPrüfung\fP\-Typen oder sind mindestens in der Lage, die
+Datei zu dekomprimieren, ohne deren Integrität zu prüfen, wenn die bestimmte
+\fIPrüfung\fP nicht verfügbar ist.
+.PP
+XZ Embedded unterstützt BCJ\-Filter, aber nur mit dem vorgegebenen
+Startversatz.
+.
+.SH BEISPIELE
+.
+.SS Grundlagen
+Komprimiert die Datei \fIfoo\fP mit der Standard\-Kompressionsstufe (\fB\-6\fP) zu
+\fIfoo.xz\fP und entfernt \fIfoo\fP nach erfolgreicher Kompression:
+.RS
+.PP
+.nf
+\f(CWxz foo\fP
+.fi
+.RE
+.PP
+\fIbar.xz\fP in \fIbar\fP dekomprimieren und \fIbar.xz\fP selbst dann nicht löschen,
+wenn die Dekompression erfolgreich war:
+.RS
+.PP
+.nf
+\f(CWxz \-dk bar.xz\fP
+.fi
+.RE
+.PP
+\fIbaz.tar.xz\fP mit der Voreinstellung \fB\-4e\fP (\fB\-4 \-\-extreme\fP) erzeugen, was
+langsamer ist als die Vorgabe \fB\-6\fP, aber weniger Speicher für Kompression
+und Dekompression benötigt (48\ MiB beziehungsweise 5\ MiB):
+.RS
+.PP
+.nf
+\f(CWtar cf \- baz | xz \-4e > baz.tar.xz\fP
+.fi
+.RE
+.PP
+Eine Mischung aus komprimierten und unkomprimierten Dateien kann mit einem
+einzelnen Befehl dekomprimiert in die Standardausgabe geschrieben werden:
+.RS
+.PP
+.nf
+\f(CWxz \-dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt\fP
+.fi
+.RE
+.
+.SS "Parallele Kompression von vielen Dateien"
+Auf GNU\- und *BSD\-Systemen können \fBfind\fP(1) und \fBxargs\fP(1) zum
+Parallelisieren der Kompression vieler Dateien verwendet werden:
+.RS
+.PP
+.nf
+\f(CWfind . \-type f \e! \-name '*.xz' \-print0 \e | xargs \-0r \-P4 \-n16 xz \-T1\fP
+.fi
+.RE
+.PP
+Die Option \fB\-P\fP von \fBxargs\fP(1) legt die Anzahl der parallelen
+\fBxz\fP\-Prozesse fest. Der beste Wert für die Option \fB\-n\fP hängt davon ab, wie
+viele Dateien komprimiert werden sollen. Wenn es sich nur um wenige Dateien
+handelt, sollte der Wert wahrscheinlich 1 sein; bei Zehntausenden von
+Dateien kann 100 oder noch mehr angemessener sein, um die Anzahl der
+\fBxz\fP\-Prozesse zu beschränken, die \fBxargs\fP(1) schließlich erzeugen wird.
+.PP
+Die Option \fB\-T1\fP für \fBxz\fP dient dazu, den Einzelthread\-Modus zu erzwingen,
+da \fBxargs\fP(1) zur Steuerung des Umfangs der Parallelisierung verwendet
+wird.
+.
+.SS Roboter\-Modus
+Berechnen, wie viel Byte nach der Kompression mehrerer Dateien insgesamt
+eingespart wurden:
+.RS
+.PP
+.nf
+\f(CWxz \-\-robot \-\-list *.xz | awk '/^totals/{print $5\-$4}'\fP
+.fi
+.RE
+.PP
+Ein Skript könnte abfragen wollen, ob es ein \fBxz\fP verwendet, das aktuell
+genug ist. Das folgende \fBsh\fP(1)\-Skript prüft, ob die Versionsnummer des
+Dienstprogramms \fBxz\fP mindestens 5.0.0 ist. Diese Methode ist zu alten
+Beta\-Versionen kompatibel, welche die Option \fB\-\-robot\fP nicht unterstützen:
+.RS
+.PP
+.nf
+\f(CWif ! eval "$(xz \-\-robot \-\-version 2> /dev/null)" || [ "$XZ_VERSION" \-lt 50000002 ]; then echo "Ihre Version von Xz ist zu alt." fi unset XZ_VERSION LIBLZMA_VERSION\fP
+.fi
+.RE
+.PP
+Eine Speicherbedarfsbegrenzung für die Dekompression mit \fBXZ_OPT\fP setzen,
+aber eine bereits gesetzte Begrenzung nicht erhöhen:
+.RS
+.PP
+.nf
+\f(CWNEWLIM=$((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\fP
+.fi
+.RE
+.
+.SS "Benutzerdefinierte Filterketten für die Kompression"
+Der einfachste Anwendungsfall für benutzerdefinierte Filterketten ist die
+Anpassung von LZMA2\-Voreinstellungsstufen. Das kann nützlich sein, weil die
+Voreinstellungen nur einen Teil der potenziell sinnvollen Kombinationen aus
+Kompressionseinstellungen abdecken.
+.PP
+Die KompCPU\-Spalten der Tabellen aus den Beschreibungen der Optionen \fB\-0\fP …
+\fB\-9\fP und \fB\-\-extreme\fP sind beim Anpassen der LZMA2\-Voreinstellungen
+nützlich. Diese sind die relevanten Teile aus diesen zwei Tabellen:
+.RS
+.PP
+.TS
+tab(;);
+c c
+n n.
+Voreinst.;KomprCPU
+\-0;0
+\-1;1
+\-2;2
+\-3;3
+\-4;4
+\-5;5
+\-6;6
+\-5e;7
+\-6e;8
+.TE
+.RE
+.PP
+Wenn Sie wissen, dass eine Datei für eine gute Kompression ein etwas
+größeres Wörterbuch benötigt (zum Beispiel 32 MiB), aber Sie sie schneller
+komprimieren wollen, als dies mit \fBxz \-8\fP geschehen würde, kann eine
+Voreinstellung mit einem niedrigen KompCPU\-Wert (zum Beispiel 1) dahingehend
+angepasst werden, ein größeres Wörterbuch zu verwenden:
+.RS
+.PP
+.nf
+\f(CWxz \-\-lzma2=preset=1,dict=32MiB foo.tar\fP
+.fi
+.RE
+.PP
+Mit bestimmten Dateien kann der obige Befehl schneller sein als \fBxz \-6\fP,
+wobei die Kompression deutlich besser wird. Dennoch muss betont werden, dass
+nur wenige Dateien von einem größeren Wörterbuch profitieren, wenn der
+KompCPU\-Wert niedrig bleibt. Der offensichtlichste Fall, in dem ein größeres
+Wörterbuch sehr hilfreich sein kann, ist ein Archiv, das einander sehr
+ähnliche Dateien enthält, die jeweils wenigstens einige Megabyte groß
+sind. Das Wörterbuch muss dann deutlich größer sein als die einzelne Datei,
+damit LZMA2 den größtmöglichen Vorteil aus den Ähnlichkeiten der aufeinander
+folgenden Dateien zieht.
+.PP
+Wenn hoher Speicherbedarf für Kompression und Dekompression kein Problem ist
+und die zu komprimierende Datei mindestens einige Hundert Megabyte groß ist,
+kann es sinnvoll sein, ein noch größeres Wörterbuch zu verwenden, als die 64
+MiB, die mit \fBxz \-9\fP verwendet werden würden:
+.RS
+.PP
+.nf
+\f(CWxz \-vv \-\-lzma2=dict=192MiB big_foo.tar\fP
+.fi
+.RE
+.PP
+Die Verwendung von \fB\-vv\fP (\fB\-\-verbose \-\-verbose\fP) wie im obigen Beispiel
+kann nützlich sein, um den Speicherbedarf für Kompressor und Dekompressor zu
+sehen. Denken Sie daran, dass ein Wörterbuch, das größer als die
+unkomprimierte Datei ist, Speicherverschwendung wäre. Daher ist der obige
+Befehl für kleine Dateien nicht sinnvoll.
+.PP
+Manchmal spielt die Kompressionszeit keine Rolle, aber der Speicherbedarf
+bei der Dekompression muss gering gehalten werden, zum Beispiel um die Datei
+auf eingebetteten Systemen dekomprimieren zu können. Der folgende Befehl
+verwendet \fB\-6e\fP (\fB\-6 \-\-extreme\fP) als Basis und setzt die Wörterbuchgröße
+auf nur 64\ KiB. Die sich ergebende Datei kann mit XZ Embedded (aus diesem
+Grund ist dort \fB\-\-check=crc32\fP) mit nur etwa 100\ KiB Speicher
+dekomprimiert werden.
+.RS
+.PP
+.nf
+\f(CWxz \-\-check=crc32 \-\-lzma2=preset=6e,dict=64KiB foo\fP
+.fi
+.RE
+.PP
+Wenn Sie so viele Byte wie möglich herausquetschen wollen, kann die
+Anpassung der Anzahl der literalen Kontextbits (\fIlc\fP) und der Anzahl der
+Positionsbits (\fIpb\fP) manchmal hilfreich sein. Auch die Anpassung der Anzahl
+der literalen Positionsbits (\fIlp\fP) könnte helfen, aber üblicherweise sind
+\fIlc\fP und \fIpb\fP wichtiger. Wenn ein Quellcode\-Archiv zum Beispiel
+hauptsächlich ASCII\-Text enthält, könnte ein Aufruf wie der folgende eine
+etwas kleinere Datei (etwa 0,1\ %) ergeben als mit \fBxz \-6e\fP (versuchen Sie
+es auch \fBlc=4\fP):
+.RS
+.PP
+.nf
+\f(CWxz \-\-lzma2=preset=6e,pb=0,lc=4 Quellcode.tar\fP
+.fi
+.RE
+.PP
+Die Verwendung eines anderen Filters mit LZMA2 kann die Kompression bei
+verschiedenen Dateitypen verbessern. So könnten Sie eine gemeinsam genutzte
+Bibliothek der Architekturen x86\-32 oder x86\-64 mit dem BCJ\-Filter für x86
+komprimieren:
+.RS
+.PP
+.nf
+\f(CWxz \-\-x86 \-\-lzma2 libfoo.so\fP
+.fi
+.RE
+.PP
+Beachten Sie, dass die Reihenfolge der Filteroptionen von Bedeutung
+ist. Falls \fB\-\-x86\fP nach \fB\-\-lzma2\fP angegeben wird, gibt \fBxz\fP einen Fehler
+aus, weil nach LZMA2 kein weiterer Filter sein darf und auch weil der
+BCJ\-Filter für x86 nicht als letzter Filter in der Filterkette gesetzt
+werden darf.
+.PP
+Der Delta\-Filter zusammen mit LZMA2 kann bei Bitmap\-Bildern gute Ergebnisse
+liefern. Er sollte üblicherweise besser sein als PNG, welches zwar einige
+fortgeschrittene Filter als ein simples delta bietet, aber für die
+eigentliche Kompression »Deflate« verwendet.
+.PP
+Das Bild muss in einem unkomprimierten Format gespeichert werden, zum
+Beispiel als unkomprimiertes TIFF. Der Abstandsparameter des Delta\-Filters
+muss so gesetzt werden, dass er der Anzahl der Bytes pro Pixel im Bild
+entspricht. Zum Beispiel erfordert ein 24\-Bit\-RGB\-Bitmap \fBdist=3\fP, außerdem
+ist es gut, \fBpb=0\fP an LZMA2 zu übergeben, um die 3\-Byte\-Ausrichtung zu
+berücksichtigen:
+.RS
+.PP
+.nf
+\f(CWxz \-\-delta=dist=3 \-\-lzma2=pb=0 foo.tiff\fP
+.fi
+.RE
+.PP
+Wenn sich mehrere Bilder in einem einzelnen Archiv befinden (zum Beispiel\&
+\&\fB.tar\fP), funktioniert der Delta\-Filter damit auch, sofern alle Bilder im
+Archiv die gleiche Anzahl Bytes pro Pixel haben.
+.
+.SH "SIEHE AUCH"
+\fBxzdec\fP(1), \fBxzdiff\fP(1), \fBxzgrep\fP(1), \fBxzless\fP(1), \fBxzmore\fP(1),
+\fBgzip\fP(1), \fBbzip2\fP(1), \fB7z\fP(1)
+.PP
+XZ Utils: <https://xz.tukaani.org/xz\-utils/>
+.br
+XZ Embedded: <https://xz.tukaani.org/xz\-embedded/>
+.br
+LZMA\-SDK: <https://7\-zip.org/sdk.html>
diff --git a/po4a/man/de/xzdec.1 b/po4a/man/de/xzdec.1
new file mode 100644
index 00000000..a96d86cf
--- /dev/null
+++ b/po4a/man/de/xzdec.1
@@ -0,0 +1,88 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Author: Lasse Collin
+.\"
+.\" German translation for xz-man.
+.\" Mario Blättermann <mario.blaettermann@gmail.com>, 2015, 2019-2020, 2022-2024.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZDEC 1 "19. Januar 2024" Tukaani XZ\-Dienstprogramme
+.SH BEZEICHNUNG
+xzdec, lzmadec \- Kleine Dekompressoren für .xz und .lzma
+.SH ÃœBERSICHT
+\fBxzdec\fP [\fIOption…\fP] [\fIDatei…\fP]
+.br
+\fBlzmadec\fP [\fIOption…\fP] [\fIDatei…\fP]
+.SH BESCHREIBUNG
+\fBxzdec\fP ist ein auf Liblzma basierendes Nur\-Dekompressionswerkzeug für
+\&\fB.xz\fP\-Dateien (und \fBnur\fP für \fB.xz\fP\-Dateien). \fBxzdec\fP ist als direkter
+Ersatz für \fBxz\fP(1) in jenen Situationen konzipiert, wo ein Skript \fBxz \-\-decompress \-\-stdout\fP (und eventuelle einige andere höufig genutzte
+Optionen) zum Dekomprimieren von \fB.xz\fP\-Dateien. \fBlzmadec\fP ist weitgehend
+identisch zu \fBxzdec\fP, mit der Ausnahme, dass \fBlzmadec\fP \fB.lzma\fP\-Dateien
+anstelle von \fB.xz\fP\-Dateien unterstützt.
+.PP
+Um die Größe der ausführbaren Datei zu reduzieren, unterstützt \fBxzdec\fP
+weder Multithreading noch Lokalisierung. Außerdem liest es keine Optionen
+aus den Umgebungsvariablen \fBXZ_DEFAULTS\fP und \fBXZ_OPT\fP. \fBxzdec\fP
+unterstützt keine zwischenzeitlichen Fortschrittsinformationen: Das Senden
+von \fBSIGINFO\fP an \fBxzdec\fP hat keine Auswirkungen, jedoch beendet \fBSIGUSR1\fP
+den Prozess, anstatt Fortschrittsinformationen anzuzeigen.
+.SH OPTIONEN
+.TP
+\fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
+ist zwecks Kompatibilität zu \fBxz\fP(1) vorhanden; wird ignoriert. \fBxzdec\fP
+unterstützt nur Dekompression.
+.TP
+\fB\-k\fP, \fB\-\-keep\fP
+ist zwecks Kompatibilität zu \fBxz\fP(1) vorhanden; wird ignoriert. \fBxzdec\fP
+erzeugt oder entfernt niemals Dateien.
+.TP
+\fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
+ist zwecks Kompatibilität zu \fBxz\fP(1) vorhanden; wird ignoriert. \fBxzdec\fP
+schreibt die dekomprimierten Daten immer in die Standardausgabe.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+hat bei einmaliger Angabe keine Wirkung, da \fBxzdec\fP niemals Warnungen oder
+sonstige Meldungen anzeigt. Wenn Sie dies zweimal angeben, werden
+Fehlermeldungen unterdrückt.
+.TP
+\fB\-Q\fP, \fB\-\-no\-warn\fP
+ist zwecks Kompatibilität zu \fBxz\fP(1) vorhanden; wird ignoriert. \fBxzdec\fP
+verwendet niemals den Exit\-Status 2.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+zeigt eine Hilfemeldung an und beendet das Programm erfolgreich.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+zeigt die Versionsnummer von \fBxzdec\fP und liblzma an.
+.SH EXIT\-STATUS
+.TP
+\fB0\fP
+Alles ist in Ordnung.
+.TP
+\fB1\fP
+Ein Fehler ist aufgetreten.
+.PP
+\fBxzdec\fP gibt keine Warnmeldungen wie \fBxz\fP(1) aus, daher wird der
+Exit\-Status 2 von \fBxzdec\fP nicht verwendet.
+.SH ANMERKUNGEN
+Verwenden Sie \fBxz\fP(1) anstelle von \fBxzdec\fP oder \fBlzmadec\fP im normalen
+täglichen Gebrauch. \fBxzdec\fP oder \fBlzmadec\fP sind nur für Situationen
+gedacht, in denen ein kleinerer Dekompressor statt des voll ausgestatteten
+\fBxz\fP(1) wichtig ist.
+.PP
+\fBxzdec\fP und \fBlzmadec\fP sind nicht wirklich extrem klein. Die Größe kann
+durch Deaktivieren von Funktionen bei der Kompilierung von Liblzma weiter
+verringert werden, aber das sollte nicht für ausführbare Dateien getan
+werden, die in typischen Betriebssystemen ausgeliefert werden, außer in den
+Distributionen für eingebettete Systeme. Wenn Sie einen wirklich winzigen
+Dekompressor für \fB.xz\fP\-Dateien brauchen, sollten Sie stattdessen XZ
+Embedded in Erwägung ziehen.
+.SH "SIEHE AUCH"
+\fBxz\fP(1)
+.PP
+XZ Embedded: <https://xz.tukaani.org/xz\-embedded/>
diff --git a/po4a/man/de/xzdiff.1 b/po4a/man/de/xzdiff.1
new file mode 100644
index 00000000..9648102c
--- /dev/null
+++ b/po4a/man/de/xzdiff.1
@@ -0,0 +1,58 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Lasse Collin
+.\" Jia Tan
+.\"
+.\" German translation for xz-man.
+.\" Mario Blättermann <mario.blaettermann@gmail.com>, 2015, 2019-2020, 2022-2024.
+.\"
+.\" (Note that this file is not based on gzip's zdiff.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZDIFF 1 "13. Februar 2024" Tukaani XZ\-Dienstprogramme
+.SH BEZEICHNUNG
+xzcmp, xzdiff, lzcmp, lzdiff \- komprimierte Dateien vergleichen
+.
+.SH ÃœBERSICHT
+\fBxzcmp\fP [\fIOption …\fP] \fIDatei1\fP [\fIDatei2\fP]
+.br
+\fBxzdiff\fP \&…
+.br
+\fBlzcmp\fP \&…
+.br
+\fBlzdiff\fP \&…
+.
+.SH BESCHREIBUNG
+\fBxzcmp\fP und \fBxzdiff\fP vergleichen den unkomprimierten Inhalt zweier
+Dateien. Die unkomprimierten Daten und Optionen werden an \fBcmp\fP(1) oder
+\fBdiff\fP(1) übergeben, sofern weder \fB\-\-help\fP noch \fB\-\-version\fP angegeben
+wird.
+.PP
+Wenn sowohl \fIDatei1\fP als auch \fIDatei2\fP angegeben sind, können diese
+unkomprimierte Dateien oder Dateien in Formaten sein, die \fBxz\fP(1),
+\fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1), \fBzstd\fP(1) oder \fBlz4\fP(1)
+dekomprimieren können. Die erforderlichen Dekomprimierungsbefehle werden aus
+den Dateiendungen von \fIDatei1\fP und \fIDatei2\fP abgeleitet. Für eine Datei mit
+einer unbekannten Endung wird angenommen, dass sie entweder unkomprimiert
+ist oder von \fBxz\fP(1) dekomprimiert werden kann.
+.PP
+Falls nur ein Dateiname angegeben wird, muss \fIDatei1\fP eine Endung eines
+unterstützten Kompressionsformat haben und der Name von \fIDatei2\fP wird aus
+\fIDatei1\fP abgeleitet, indem die Endung des Kompressionsformats entfernt
+wird.
+.PP
+Die Befehle \fBlzcmp\fP und \fBlzdiff\fP dienen der Abwärtskompatibilität zu den
+LZMA\-Dienstprogrammen.
+.
+.SH EXIT\-STATUS
+Falls ein Dekompressionsfehler auftritt, ist der Exit\-Status
+\fB2\fP. Anderenfalls wird der Exit\-Status von \fBcmp\fP(1) oder \fBdiff\fP(1)
+verwendet.
+.
+.SH "SIEHE AUCH"
+\fBcmp\fP(1), \fBdiff\fP(1), \fBxz\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1),
+\fBzstd\fP(1), \fBlz4\fP(1)
diff --git a/po4a/man/de/xzgrep.1 b/po4a/man/de/xzgrep.1
new file mode 100644
index 00000000..95d96bcb
--- /dev/null
+++ b/po4a/man/de/xzgrep.1
@@ -0,0 +1,96 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Lasse Collin
+.\" Jia Tan
+.\"
+.\" German translation for xz-man.
+.\" Mario Blättermann <mario.blaettermann@gmail.com>, 2015, 2019-2020, 2022-2024.
+.\"
+.\" (Note that this file is not based on gzip's zgrep.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZGREP 1 "13. Februar 2024" Tukaani XZ\-Dienstprogramme
+.SH BEZEICHNUNG
+xzgrep \- möglicherweise komprimierte Dateien nach Mustern durchsuchen
+.
+.SH ÃœBERSICHT
+\fBxzgrep\fP [\fIOption …\fP] [\fIMusterliste\fP] [\fIDatei …\fP]
+.br
+\fBxzegrep\fP …
+.br
+\fBxzfgrep\fP …
+.br
+\fBlzgrep\fP …
+.br
+\fBlzegrep\fP …
+.br
+\fBlzfgrep\fP …
+.
+.SH BESCHREIBUNG
+\fBxzgrep\fP ruft \fBgrep\fP(1) mit dem unkomprimierten Inhalt von Dateien
+auf. Die Formate der \fIDateien\fP werden aus den Dateiendungen
+abgeleitet. Jede \fIDatei\fP mit einer Endung, die von \fBxz\fP(1), \fBgzip\fP(1),
+\fBbzip2\fP(1), \fBlzop\fP(1), \fBzstd\fP(1) oder \fBlz4\fP(1) unterstützt wird, wird
+dekomprimiert; für andere Dateien wird angenommen, dass sie bereits in
+unkomprimierter Form vorliegen.
+.PP
+Wenn keine \fIDateien\fP angegeben werden oder \fIDatei\fP als \fB\-\fP angegeben
+wird, wird aus der Standardeingabe gelesen. Beim Lesen aus der
+Standardeingabe werden nur die von \fBxz\fP(1) unterstützten Dateien
+dekomprimiert. Für andere Dateien wird angenommen, dass sie bereits in
+unkomprimierter Form vorliegen.
+.PP
+Die meisten \fIOptionen\fP von \fBgrep\fP(1) werden unterstützt, die folgenden
+jedoch nicht:
+.IP "" 4
+\fB\-r\fP, \fB\-\-recursive\fP
+.IP "" 4
+\fB\-R\fP, \fB\-\-dereference\-recursive\fP
+.IP "" 4
+\fB\-d\fP, \fB\-\-directories=\fP\fIAktion\fP
+.IP "" 4
+\fB\-Z\fP, \fB\-\-null\fP
+.IP "" 4
+\fB\-z\fP, \fB\-\-null\-data\fP
+.IP "" 4
+\fB\-\-include=\fP\fIGlob\fP
+.IP "" 4
+\fB\-\-exclude=\fP\fIGlob\fP
+.IP "" 4
+\fB\-\-exclude\-from=\fP\fIDatei\fP
+.IP "" 4
+\fB\-\-exclude\-dir=\fP\fIGlob\fP
+.PP
+\fBxzegrep\fP ist ein Alias für \fBxzgrep \-E\fP. \fBxzfgrep\fP ist ein Alias für
+\fBxzgrep \-F\fP.
+.PP
+Die Befehle \fBlzgrep\fP, \fBlzegrep\fP und \fBlzfgrep\fP dienen der
+Abwärtskompatibilität zu den LZMA\-Dienstprogrammen.
+.
+.SH EXIT\-STATUS
+.TP
+0
+In mindestens einer der Eingabedateien wurde mindestens ein Treffer
+gefunden. Es sind keine Fehler aufgetreten.
+.TP
+1
+In keiner der Eingabedateien wurde ein Treffer gefunden. Es sind keine
+Fehler aufgetreten.
+.TP
+>1
+Ein oder mehrere Fehler sind aufgetreten. Es ist unbekannt, ob Treffer
+gefunden wurden.
+.
+.SH UMGEBUNGSVARIABLEN
+.TP
+\fBGREP\fP
+Wenn die Umgebungsvariable \fBGREP\fP auf einen nicht\-leeren Wert gesetzt ist,
+wird diese anstelle von \fBgrep\fP(1), \fBgrep \-E\fP oder \fBgrep \-F\fP verwendet.
+.
+.SH "SIEHE AUCH"
+\fBgrep\fP(1), \fBxz\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1), \fBzstd\fP(1),
+\fBlz4\fP(1), \fBzgrep\fP(1)
diff --git a/po4a/man/de/xzless.1 b/po4a/man/de/xzless.1
new file mode 100644
index 00000000..602d73f5
--- /dev/null
+++ b/po4a/man/de/xzless.1
@@ -0,0 +1,49 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Andrew Dudman
+.\" Lasse Collin
+.\"
+.\" German translation for xz-man.
+.\" Mario Blättermann <mario.blaettermann@gmail.com>, 2015, 2019-2020, 2022-2024.
+.\"
+.\" (Note that this file is not based on gzip's zless.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZLESS 1 "12. Februar 2024" Tukaani XZ\-Dienstprogramme
+.SH BEZEICHNUNG
+xzless, lzless \- mit xz oder lzma komprimierte (Text\-)Dateien betrachten
+.SH ÃœBERSICHT
+\fBxzless\fP [\fIDatei\fP …]
+.br
+\fBlzless\fP [\fIDatei\fP …]
+.SH BESCHREIBUNG
+\fBxzless\fP ist ein Filter, der Text aus komprimierten Dateien in einem
+Terminal anzeigt. Von \fBxz\fP(1) unterstützte Dateien werden dekomprimiert;
+für andere Dateien wird angenommen, dass sie bereits in unkomprimierter Form
+vorliegen. Wenn keine \fIDateien\fP angegeben werden, liest \fBxzless\fP aus der
+Standardeingabe.
+.PP
+\fBxzless\fP verwendet \fBless\fP(1) zur Darstellung der Ausgabe. Im Gegensatz zu
+\fBxzmore\fP können Sie das zu verwendende Textanzeigeprogramm nicht durch
+Setzen einer Umgebungsvariable ändern. Die Befehle basieren auf \fBmore\fP(1)
+und \fBvi\fP(1) und ermöglichen Vorwärts\- und Rückwärtssprünge sowie
+Suchvorgänge. In der Handbuchseite zu \fBless\fP(1) finden Sie weiter
+Information.
+.PP
+Der Befehl \fBlzless\fP dient der Abwärtskompatibilität zu den
+LZMA\-Dienstprogrammen.
+.SH UMGEBUNGSVARIABLEN
+.TP
+\fBLESSMETACHARS\fP
+Dies enthält eine Zeichenliste mit Bezug zur Shell. Wenn diese Variable
+nicht bereits gesetzt ist, wird sie durch \fBxzless\fP gesetzt.
+.TP
+\fBLESSOPEN\fP
+Dies ist auf die Befehlszeile zum Aufruf von \fBxz\fP(1) gesetzt, die zur
+Vorverarbeitung der Eingabedateien für \fBless\fP(1) nötig ist.
+.SH "SIEHE AUCH"
+\fBless\fP(1), \fBxz\fP(1), \fBxzmore\fP(1), \fBzless\fP(1)
diff --git a/po4a/man/de/xzmore.1 b/po4a/man/de/xzmore.1
new file mode 100644
index 00000000..a376a0b5
--- /dev/null
+++ b/po4a/man/de/xzmore.1
@@ -0,0 +1,49 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Andrew Dudman
+.\" Lasse Collin
+.\"
+.\" German translation for xz-man.
+.\" Mario Blättermann <mario.blaettermann@gmail.com>, 2015, 2019-2020, 2022-2024.
+.\"
+.\" (Note that this file is based on xzless.1 instead of gzip's zmore.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZMORE 1 "12. Februar 2024" Tukaani XZ\-Dienstprogramme
+.SH BEZEICHNUNG
+xzmore, lzmore \- mit xz oder lzma komprimierte (Text\-)Dateien lesen
+.
+.SH ÃœBERSICHT
+\fBxzmore\fP [\fIDatei\fP …]
+.br
+\fBlzmore\fP [\fIDatei\fP …]
+.
+.SH BESCHREIBUNG
+\fBxzmore\fP zeigt Text aus komprimierten Dateien mit Hilfe des Pagers
+(Textanzeigeprogramms) \fBmore\fP(1) in einem Terminal an. Von \fBxz\fP(1)
+unterstützte Dateien werden dekomprimiert; für andere Dateien wird
+angenommen, dass sie bereits in unkomprimierter Form vorliegen. Wenn keine
+\fIDateien\fP angegeben werden, liest \fBxzmore\fP aus der Standardeingabe. Im
+\fBmore\fP(1)\-Handbuch finden Sie Informationen zu den Tastaturbefehlen.
+.PP
+Beachten Sie, dass Zurückrollen nicht möglich sein könnte, abhängig von der
+Implementierung von \fBmore\fP(1). Das kommt daher, dass \fBxzmore\fP eine Pipe
+verwendet, um die dekomprimierten Daten an \fBmore\fP(1) zu
+übergeben. \fBxzless\fP(1) verwendet \fBless\fP(1), welches fortgeschrittenere
+Funktionen bietet.
+.PP
+Der Befehl \fBlzmore\fP dient der Abwärtskompatibilität zu den
+LZMA\-Dienstprogrammen.
+.
+.SH UMGEBUNGSVARIABLEN
+.TP
+\fBPAGER\fP
+Falls die Umgebungsvariable \fBPAGER\fP gesetzt ist, wird diese als Pager
+(Textanzeigeprogramm) anstelle von \fBmore\fP(1) verwendet.
+.
+.SH "SIEHE AUCH"
+\fBmore\fP(1), \fBxz\fP(1), \fBxzless\fP(1), \fBzmore\fP(1)
diff --git a/po4a/man/fr/lzmainfo.1 b/po4a/man/fr/lzmainfo.1
new file mode 100644
index 00000000..bcba9185
--- /dev/null
+++ b/po4a/man/fr/lzmainfo.1
@@ -0,0 +1,47 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Author: Lasse Collin
+.\"
+.\" french translation of XZ Utils man
+.\" Copyright (C) 2021 Debian French l10n team <debian-l10n-french@lists.debian.org>
+.\" Translator
+.\" bubu <bubub@no-log.org>, 2021.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH LZMAINFO 1 30\-06\-2013 Tukaani "Utilitaires XZ"
+.SH NOM
+lzmainfo \- Afficher l'information stockée dans l'en\-tête du fichier .lzma
+.SH SYNOPSIS
+\fBlzmainfo\fP [\fB\-\-help\fP] [\fB\-\-version\fP] [\fIfichier...\fP]
+.SH DESCRIPTION
+\fBlzmainfo\fP affiche l'information stockée dans l'en\-tête du fichier
+\&\fB.lzma\fP. Il lit les 13 premiers octets du \fIfichier\fP indiqué, décode
+l'en\-tête, et l'écrit sur la sortie standard dans un format lisible par un
+humain. Si aucun \fIfichier\fP n'est spécifié ou si \fIfichier\fP est \fB\-\fP,
+l'entrée standard est lue.
+.PP
+Habituellement l'information la plus interressante est la taille non
+compressée et la taille du dictionnaire. La taille ne peut être affichée que
+si le fichier est dans la variante du format \fB.lzma\fP qui n'est pas en
+flux. La quantité de mémoire requise pour décompresser le fichier est de
+quelques douzaines de kilooctets en plus de la taille du dictionnaire.
+.PP
+\fBlzmainfo\fP est inclus dans les utilitaires XZ essentiellement pour des
+besoins de rétrocompatibilité avec les utilitaires LZMA.
+.SH "STATUT DE SORTIE"
+.TP
+\fB0\fP
+Tout est bon.
+.TP
+\fB1\fP
+Une erreur est survenue.
+.SH BOGUES
+\fBlzmainfo\fP utilise \fBMB\fP alors que le suffixe correct devrait être
+\fBMiB\fP(2^20 octets). Cela pour garder la sortie compatible avec les
+utilitaires LZMA.
+.SH "VOIR AUSSI"
+\fBxz\fP(1)
diff --git a/po4a/man/fr/xz.1 b/po4a/man/fr/xz.1
new file mode 100644
index 00000000..02ade934
--- /dev/null
+++ b/po4a/man/fr/xz.1
@@ -0,0 +1,1964 @@
+'\" t
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Lasse Collin
+.\" Jia Tan
+.\"
+.\" french translation of XZ Utils man
+.\" Copyright (C) 2021 Debian French l10n team <debian-l10n-french@lists.debian.org>
+.\" Translator
+.\" bubu <bubub@no-log.org>, 2021.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZ 1 2024\-02\-25 Tukaani "Utilitaires XZ"
+.
+.SH NOM
+xz, unxz, xzcat, lzma, unlzma, lzcat \- Compresser ou décompresser des
+fichiers .xz et .lzma
+.
+.SH SYNOPSIS
+\fBxz\fP [\fIoption...\fP] [\fIfichier...\fP]
+.
+.SH "ALIAS DES COMMANDES"
+\fBunxz\fP est équivalent à \fBxz \-\-decompress\fP.
+.br
+\fBxzcat\fP est équivalent à \fBxz \-\-decompress \-\-stdout\fP
+.br
+\fBlzma\fP est équivalent à \fBxz \-\-format=lzma\fP
+.br
+\fBunlzma\fP est équivalent à \fBxz \-\-format=lzma \-\-decompress\fP
+.br
+\fBlzcat\fP est équivalent à \fBxz \-\-format=lzma \-\-decompress \-\- stdout\fP
+.PP
+Lors de l'écriture de scripts qui nécessitent de décompresser des fichiers,
+il est recommandé de toujours utiliser la commande \fBxz\fP avec les arguments
+appropriés (\fBxz \-d\fP ou \fBxz \-dc\fP) au lieu des commandes \fBunxz\fP et
+\fBxzcat\fP.
+.
+.SH DESCRIPTION
+\fBxz\fP is a general\-purpose data compression tool with command line syntax
+similar to \fBgzip\fP(1) and \fBbzip2\fP(1). The native file format is the
+\&\fB.xz\fP format, but the legacy \fB.lzma\fP format used by LZMA Utils and raw
+compressed streams with no container format headers are also supported. In
+addition, decompression of the \fB.lz\fP format used by \fBlzip\fP is supported.
+.PP
+\fBxz\fP compresse ou décompresse chaque \fIfichier\fP en fonction du mode
+d'opération choisi. Si aucun \fIfichier\fP n'est donné ou \fIfichier\fP est \fB\-\fP,
+\fBxz\fP lit depuis l'entrée standard et écrit les données traitées sur la
+sortie standard. \fBxz\fP refusera (affichera une erreur et ignorera le
+\fIfichier\fP) d'écrire les données compressées sur la sortie standard si c'est
+un terminal. De même, \fBxz\fP refusera de lire des données compressées depuis
+l'entrée standard si c'est un terminal.
+.PP
+A moins que \fB\-\-sdout\fP ne soit indiqué, les \fIfichiers\fP autres que \fB\-\fP sont
+écrits dans un nouveau fichier dont le nom est dérivé du nom de \fIfichier\fP
+source :
+.IP \(bu 3
+Lors de la compression, le suffixe du format de fichier cible (\fB.xz\fP ou
+\&\fB.lzma\fP) est ajouté au nom de fichier source pour obtenir le nom de fichier
+cible.
+.IP \(bu 3
+When decompressing, the \fB.xz\fP, \fB.lzma\fP, or \fB.lz\fP suffix is removed from
+the filename to get the target filename. \fBxz\fP also recognizes the suffixes
+\&\fB.txz\fP and \fB.tlz\fP, and replaces them with the \fB.tar\fP suffix.
+.PP
+Si le fichier cible existe déjà, une erreur est affichée et le \fIfichier\fP
+est ignoré.
+.PP
+Sauf s'il écrit dans la sortie standard, \fBxz\fP affichera un avertissement et
+ignorera le \fIfichier\fP dans les cas suivants :
+.IP \(bu 3
+\fIfichier\fP n'est pas un fichier normal. Les liens symboliques ne sont pas
+suivis et donc ne sont pas considérés comme des fichiers normaux.
+.IP \(bu 3
+\fIfichier\fP a plusieurs liens physiques.
+.IP \(bu 3
+\fIfichier\fP a un setuid, setgid ou sticky bit positionné.
+.IP \(bu 3
+Le mode d'opération est défini pour compresser et le \fIfichier\fP a déjà un
+suffixe du format de fichier cible (\fB.xz\fP ou \fB.txz\fP lors d'une compression
+en format \fB.xz\fP, et \fB.lzma\fP ou \fB.tlz\fP lors d'une compression en format
+\&\fB.lzma\fP).
+.IP \(bu 3
+The operation mode is set to decompress and the \fIfile\fP doesn't have a
+suffix of any of the supported file formats (\fB.xz\fP, \fB.txz\fP, \fB.lzma\fP,
+\&\fB.tlz\fP, or \fB.lz\fP).
+.PP
+Après la compression ou la décompression réussie du \fIfichier\fP, \fBxz\fP copie
+les permissions du propriétaire, du groupe, la date d'accès, et les
+modifications d'heure depuis le \fIfichier\fP source du fichier cible. Si la
+copie du groupe échoue, les permissions sont modifiées pour que le fichier
+cible ne soit pas accessible aux utilisateurs qui n'ont pas les droits
+d'accès au \fIfichier\fP source. \fBxz\fP ne prend actuellement pas en charge la
+copie d'autres métadonnées telles que les listes de contrôle d'accès ou les
+attributs étendus.
+.PP
+Once the target file has been successfully closed, the source \fIfile\fP is
+removed unless \fB\-\-keep\fP was specified. The source \fIfile\fP is never removed
+if the output is written to standard output or if an error occurs.
+.PP
+Envoyer \fBSIGINFO\fP ou \fBSIGURSR1\fP au processus \fBxz\fP, lui fait afficher
+l'information de progression sur l'erreur standard. Cela a un intérêt limité
+car lorsque l'erreur standard est un terminal, utiliser \fB\-\-verbose\fP
+affichera automatiquement un indicateur de progression du processus.
+.
+.SS "Utilisation de la mémoire"
+L'utilisation de la mémoire par \fBxz\fP varie de quelques centaines de
+kilo\-octets à plusieurs gigaoctects en fonction des paramètres de
+compression. Les réglages utilisés lors de la compression d'un fichier
+déterminent les besoins en mémoire pour la décompression. Habituellement la
+décompression nécessite 5\% à 20\% de la quantité de mémoire utilisée pour
+la compression du fichier. Par exemple, décompresser un fichier créé avec
+\fBxz\-9\fP recquiert habituellement 65\ Mio de mémoire. Bien qu'il soit
+possible d'avoir des fichiers \fB.xz\fP nécessitant plusieurs gigaoctets de
+mémoire pour être décompressés.
+.PP
+Especially users of older systems may find the possibility of very large
+memory usage annoying. To prevent uncomfortable surprises, \fBxz\fP 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 example, using
+\fBulimit\fP(1) to limit virtual memory tends to cripple \fBmmap\fP(2)).
+.PP
+The memory usage limiter can be enabled with the command line option
+\fB\-\-memlimit=\fP\fIlimit\fP. Often it is more convenient to enable the limiter
+by default by setting the environment variable \fBXZ_DEFAULTS\fP, for example,
+\fBXZ_DEFAULTS=\-\-memlimit=150MiB\fP. It is possible to set the limits
+separately for compression and decompression by using
+\fB\-\-memlimit\-compress=\fP\fIlimit\fP and \fB\-\-memlimit\-decompress=\fP\fIlimit\fP.
+Using these two options outside \fBXZ_DEFAULTS\fP is rarely useful because a
+single run of \fBxz\fP cannot do both compression and decompression and
+\fB\-\-memlimit=\fP\fIlimit\fP (or \fB\-M\fP \fIlimit\fP) is shorter to type on the
+command line.
+.PP
+If the specified memory usage limit is exceeded when decompressing, \fBxz\fP
+will display an error and decompressing the file will fail. If the limit is
+exceeded when compressing, \fBxz\fP will try to scale the settings down so that
+the limit is no longer exceeded (except when using \fB\-\-format=raw\fP or
+\fB\-\-no\-adjust\fP). 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 \fBxz \-9\fP, the settings will be scaled down only
+a little, not all the way down to \fBxz \-8\fP.
+.
+.SS "Concaténation et remplissage avec des fichiers .xz"
+Il est possible de concaténer les fichiers \fB.xz\fP tels quel. \fBxz\fP
+décompressera de tels fichiers comme s'ils étaient un unique fichier \fB.xz\fP.
+.PP
+It is possible to insert padding between the concatenated parts or after 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 \fB.xz\fP file is stored on a medium that measures file sizes in
+512\-byte blocks.
+.PP
+La concaténation et le remplissage ne sont pas autorisés avec les fichiers
+\&\fB.lzma\fP ou les flux bruts.
+.
+.SH OPTIONS
+.
+.SS "Suffixes entiers et valeurs spéciales."
+Dans la plupart des endroits où un argument entier est attendu, un suffixe
+optionel permet d'indiquer facilement les grands entiers. Il ne doit pas y
+avoir d'espace entre l'entier et le suffixe.
+.TP
+\fBKiB\fP
+Multiplier l'entier par 1024 (2^10). \fBKi\fP, \fBk\fP, \fBkB\fP, \fBK\fP et \fBKB\fP sont
+acceptés comme synonymes de \fBKiB\fP.
+.TP
+\fBMiB\fP
+Multiplier l'entier par 1 048 576 (2^20). \fBMi\fP, \fBm\fP, \fBM\fP et \fBMB\fP sont
+acceptés comme synonymes de \fBMiB\fP.
+.TP
+\fBGiB\fP
+Multiplier l'entier par 1 073 741 824 (2^30). \fBGi\fP, \fBg\fP, \fBG\fP et \fBGB\fP
+sont acceptés comme synonymes de \fBGiB\fP.
+.PP
+La valeur spéciale \fBmax\fP peut être utilisée pour indiquer la valeur
+maximale de l'entier prise en charge par l'option.
+.
+.SS "Mode d'opération"
+Si plusieurs options de mode d'opération sont données, la dernière prend
+effet.
+.TP
+\fB\-z\fP, \fB\-\-compress\fP
+Compresser. C'est le mode d'opération par défaut lorsque aucune option de
+mode opératoire n'est spécifiée ou qu'aucun autre mode d'opération n'est
+sous\-entendu par le nom de la commande (par exemple \fBunxz\fP sous\-entend
+\fB\-\-decompress\fP).
+.TP
+\fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
+Décompresser.
+.TP
+\fB\-t\fP, \fB\-\-test\fP
+Tester l'intégrité des \fIfichiers\fP compressés. Cette option est équivalente
+à \fB\-\-decompress \-\-stdout\fP sauf que les données décompressées sont rejetées
+au lieu d'être écrites sur la sortie standard. Aucun fichier n'est créé ou
+supprimé.
+.TP
+\fB\-l\fP, \fB\-\-list\fP
+Afficher l'information sur les \fIfichiers\fP compressés. Aucune sortie
+non\-compressée n'est produite et aucun fichier n'est créé ou supprimé. En
+mode liste, le programme ne peut pas lire les données compressées depuis
+l'entrée standard ou depuis d'autres sources non adressables.
+.IP ""
+The default listing shows basic information about \fIfiles\fP, one file per
+line. To get more detailed information, use also the \fB\-\-verbose\fP option.
+For even more information, use \fB\-\-verbose\fP 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
+example, \fBless\ \-S\fP may be convenient if the terminal isn't wide enough.
+.IP ""
+La sortie exacte peut varier suivant les versions de \fBxz\fP et les différents
+paramètres régionaux. Pour une sortie lisible par la machine, utiliser
+\fB\-\-robot \-\-list\fP.
+.
+.SS "Modificateurs d'opération"
+.TP
+\fB\-k\fP, \fB\-\-keep\fP
+Ne pas effacer les fichiers d'entrée.
+.IP ""
+Since \fBxz\fP 5.2.6, this option also makes \fBxz\fP 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 \fB\-\-force\fP.
+.TP
+\fB\-f\fP, \fB\-\-force\fP
+Cette option a plusieurs effets :
+.RS
+.IP \(bu 3
+Si le fichier cible existe déjà, l'effacer avant de compresser ou
+décompresser.
+.IP \(bu 3
+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.
+.IP \(bu 3
+Lorsque \fBxz\fP est utilisé avec \fB\-\-decompress\fP \fB\-\-stdout\fP et qu'il ne peut
+pas reconnaitre le type du fichier source, copier le fichier source tel quel
+dans la sortie standard. Celà permet à \fBxzcat\fP \fB\-\-force\fP d'être utilisé
+comme \fBcat\fP(1) pour les fichiers qui n'ont pas été compressé avec
+\fBxz\fP. Remarquez que dans le futur, \fBxz\fP devrait prendre en charge de
+nouveaux formats de fichiers compressés, ce qui permettra à \fBxz\fP de
+décompresser plus de types de fichiers au lieu de les copier tels quels dans
+la sortie standard. \fB\-\-format=\fP\fIformat\fP peut être utilisé pour contraindre
+\fBxz\fP à décompresser seulement un format de fichier.
+.RE
+.TP
+\fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
+Écrire les données compressées ou décompressées sur la sortie standard
+plutôt que dans un fichier. Cela necessite \fB\-\-keep\fP.
+.TP
+\fB\-\-single\-stream\fP
+Décompresser seulement le premier flux \fB.xz\fP et ignorer silencieusement les
+possibles données d'entrée résiduelles qui suivent le flux. Normalement ces
+déchets excédentaires provoquent l'affichage d'une erreur par \fBxz\fP.
+.IP ""
+\fBxz\fP ne décompresse jamais plus d'un flux à partir de fichiers \fB.lzma\fP ou
+de flux bruts, mais cette option fait aussi que \fBxz\fP ignorera les données
+résiduelles après le fichier \fB.lzma\fP ou le flux brut.
+.IP ""
+Cette option n'a aucun effet si le mode d'opération n'est pas
+\fB\-\-decompress\fP ou \fB\-\-test\fP.
+.TP
+\fB\-\-no\-sparse\fP
+Désactiver la création de fichiers peu denses. Par défaut, lors de la
+décompression en un fichier normal, \fBxz\fP essaie d'en faire un fichier creux
+si les données décompressées contiennent de longues séquences de zéros
+binaires. Cela fonctionne aussi lors de l'écriture sur la sortie standard
+aussi longtemps que la sortie standard est connectée à un fichier normal et
+que certaines conditions supplémentaires sont satisfaites pour le faire de
+manière sécurisée. Créer des fichiers creux peut épargner de l'espace disque
+et accélérer la décompression en réduisant la quantité d'entrées/sorties sur
+le disque.
+.TP
+\fB\-S\fP \fI.suf\fP, \fB\-\-suffix=\fP\fI.suf\fP
+Lors de la compression, utiliser \fB.suf\fP comme suffixe du fichier cible au
+lieu de \fB.xz\fP ou \fB.lzma\fP. Si \fBxz\fP n'écrit pas sur la sortie standard et
+si le fichier source a déja le suffixe \fB.suf\fP, un avertissement est affiché
+et le fichier est ignoré.
+.IP ""
+When decompressing, recognize files with the suffix \fI.suf\fP in addition to
+files with the \fB.xz\fP, \fB.txz\fP, \fB.lzma\fP, \fB.tlz\fP, or \fB.lz\fP suffix. If the
+source file has the suffix \fI.suf\fP, the suffix is removed to get the target
+filename.
+.IP ""
+Lors de la compression ou décompression de flux bruts (\fB\-\-fomat=raw\fP), le
+suffixe doit toujours être spécifié à moins d'écrire sur la sortie standard,
+car il n'y a pas de suffixe par défaut pour les flux bruts.
+.TP
+\fB\-\-files\fP[\fB=\fP\fIfichier\fP]
+Lire les noms de fichier à traiter depuis \fIfichier\fP ; si \fIfichier\fP est
+omis , les noms de fichier sont lus sur l'entrée standard. Les noms de
+fichier doivent se terminer avec le caractère de nouvelle ligne. Un tiret
+(\fB\-\fP) est considéré comme un nom de fichier normal ; ce qui ne signifie pas
+entrée standard. Si les noms de fichier sont aussi donnés comme arguments de
+ligne de commande, ils sont traités avant les noms de fichier lus depuis
+\fIfichier\fP.
+.TP
+\fB\-\-files0\fP[\fB=\fP\fIfichier\fP]
+Cela est identique à \fB\-\-files\fP[\fB=\fP\fIfichier\fP] sauf que chaque nom de
+fichier doit se terminer par le caractère null.
+.
+.SS "Format de fichier basique et options de compression"
+.TP
+\fB\-F\fP \fIformat\fP, \fB\-\-format=\fP\fIformat\fP
+Indiquer le \fIformat\fP de fichier à compresser ou décompresser :
+.RS
+.TP
+\fBauto\fP
+C'est celui par défaut. Lors de la compression, \fBauto\fP est équivalent à
+\fBxz\fP. Lors de la décompression, le format du fichier en entrée est détecté
+automatiquement. Notez que les flux bruts (créés avec \fB\-\-format=raw\fP) ne
+peuvent pas être détectés automatiquement.
+.TP
+\fBxz\fP
+Compresser dans le format de fichier \fB.xz\fP ou n'accepter que les fichiers
+\&\fB.xz\fP à décompresser.
+.TP
+\fBlzma\fP, \fBalone\fP
+Compresser au format de fichier \fB.lzma\fP historique, ou n'accepter que les
+fichiers \fB.lzma\fP lors de la décompression. Le nom alternatif \fBalone\fP est
+fourni pour la rétrocompatibilité avec les utilitaires LZMA.
+.TP
+\fBlzip\fP
+Accept only \fB.lz\fP files when decompressing. Compression is not supported.
+.IP ""
+The \fB.lz\fP format version 0 and the unextended version 1 are supported.
+Version 0 files were produced by \fBlzip\fP 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
+\fBlzip\fP 1.18.
+.IP ""
+\fBlzip\fP 1.4 and later create files in the format version 1. The sync flush
+marker extension to the format version 1 was added in \fBlzip\fP 1.6. This
+extension is rarely used and isn't supported by \fBxz\fP (diagnosed as corrupt
+input).
+.TP
+\fBraw\fP
+Compresser ou décompresser un flux brut (sans en\-têtes). Cela est réservé
+seulement aux utilisateurs aguerris. Pour décoder des flux bruts, vous devez
+utiliser \fB\-\-format=raw\fP et spécifier explicitement la chaîne de filtre, qui
+normalement aurait du être stockée dans les en\-têtes du conteneur.
+.RE
+.TP
+\fB\-C\fP \fIvérif.\fP, \fB\-\-check=\fP\fIvérif.\fP
+Spécifier le type d'intégrité à vérifier. La vérification est calculée à
+partir des données non\-compressées et stockées dans le fichier \fB.xz\fP. Cette
+option n'a effet que si la compression a été faite dans le format \fB.xz\fP ;
+le format \fB.lzma\fP ne gère pas les vérifications d'intégrité. Le contrôle
+d'intégrité (s'il y en a) est vérifié lorsque le fichier \fB.xz\fP est
+décompressé.
+.IP ""
+Types de \fIvérification\fP pris en charge :
+.RS
+.TP
+\fBnone\fP
+Ne pas calculer de vérification d'intégrité du tout. C'est généralement une
+mauvaise idée. Cela peut être utile lorsque l'intégrité des données est
+vérifiée de toute façon par d'autres manières.
+.TP
+\fBcrc32\fP
+Calculer CRC32 en utilisant le polynôme de IEEE\-802.3 (Ethernet).
+.TP
+\fBcrc64\fP
+Calculer CRC64 en utilisant le polynôme de ECMA\-182. C'est la manière
+utilisée par défaut, car c'est légèrement mieux que CRC32 pour détecter les
+fichiers endommagés et la différence de vitesse est négligeable.
+.TP
+\fBsha256\fP
+Calculer SHA\-256. C'est quelque peu plus lent que CRC32 et CRC64.
+.RE
+.IP ""
+L'intégrité des en\-têtes \fB.xz\fP est toujours vérifiée avec CRC32. Il n'est
+pas possible de le changer ou de le désactiver.
+.TP
+\fB\-\-ignore\-check\fP
+Ne pas contrôler la vérification d'intégrité des données lors de la
+décompression. Les valeurs CRC32 dans les en\-têtes \fB.xz\fP seront normalement
+toujours vérifiées.
+.IP ""
+\fBN'utilisez pas cette option à moins de savoir ce que vous faites.\fP Les
+raisons possibles pour utiliser cette option :
+.RS
+.IP \(bu 3
+Essayer de récupérer des données d'un fichier .xz corrompu.
+.IP \(bu 3
+Accélérer la décompression. Cela importe surtout avec SHA\-256 ou avec les
+fichiers qui ont été compressés extrêmement bien. Il est recommandé de ne
+pas utiliser cette option dans ce but à moins que l'intégrité du fichier ne
+soit vérifiée extérieurement d'une autre manière.
+.RE
+.TP
+\fB\-0\fP ... \fB\-9\fP
+Choisir un niveau de compression prédéfini. La valeur par défaut est
+\fB6\fP. Si plusieurs niveaux de préréglage sont spécifiés, c'est le dernier
+qui sera pris en compte. Si une chaîne de filtres personnalisée a déjà été
+choisie, définir un niveau de compression préréglé efface la chaîne de
+filtres personnalisée.
+.IP ""
+Les différences entre les préréglages sont plus significatives qu'avec
+\fBgzip\fP(1) et \fBbzip2\fP(1). les réglages de compression sélectionnés
+déterminent les exigences en mémoire pour la décompression, ainsi, utiliser
+un niveau de préréglage trop élevé peut rendre difficile à décompresser un
+fichier sur un vieux système avec peu de RAM. Clairement, \fBce n'est pas une bonne idée d'utiliser \-9 aveuglément pour tout\fP comme ça l'est souvent avec
+\fBgzip\fP(1) et \fBbzip2\fP(1).
+.RS
+.TP
+\fB\-0\fP ... \fB\-3\fP
+Ce sont des préréglages relativement rapides. \fB0\fP est parfois plus rapide
+que \fBgzip \-9\fP tout en compressant bien mieux. Les réglages plus élevés ont
+souvent une rapidité comparable à celle de \fBbzip2\fP(1) avec un taux de
+compression comparable ou meilleur, même si les résultats dépendent beaucoup
+du genre de données compressées.
+.TP
+\fB\-4\fP ... \fB\-6\fP
+Good to very good compression while keeping decompressor memory usage
+reasonable even for old systems. \fB\-6\fP 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. (\fB\-5e\fP or \fB\-6e\fP may be worth considering
+too. See \fB\-\-extreme\fP.)
+.TP
+\fB\-7 ... \-9\fP
+C'est comme \fB\-6\fP mais avec des besoins en mémoire plus élevés pour la
+compression et la décompression. Ce n'est utile que lorsque les fichiers
+sont plus gros que 8\ Mio, 16\ Mio et 32\ Mio respectivement.
+.RE
+.IP ""
+Sur le même matériel, la vitesse de décompression est sensiblement un nombre
+constant d'octets de données compressées par seconde. En d'autres termes,
+meilleure est la compression, plus rapide sera en général la
+décompression. Cela signifie aussi que la quantité de sortie non compressée
+produite par seconde peut varier beaucoup.
+.IP ""
+Le tableau suivant résume les caractéristiques des préréglages :
+.RS
+.RS
+.PP
+.TS
+tab(;);
+c c c c c
+n n n n n.
+Préréglage;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
+.TE
+.RE
+.RE
+.IP ""
+Descriptions des colonnes :
+.RS
+.IP \(bu 3
+DictSize est la taille du dictionnaire de LZMA2. Utiliser un dictionnaire
+plus gros que la taille du fichier non compressé est un gaspillage de
+mémoire. C'est pourquoi il est bon d'éviter d'utiliser les préréglages de
+\fB\-7\fP à \fB\-9\fP lorsqu'il n'y en a pas vraiment besoin. A \fB\-6\fP et plus bas,
+la quantité de mémoire gaspillée est généralement assez basse pour ne pas
+être un problème.
+.IP \(bu 3
+CompCPU est une représentation des préréglages de LZMA2 qui affectent la
+vitesse de compression. La taille du dictionnaire aussi affecte la vitesse,
+alors comme CompCPU est le même pour les niveaux de \fB\-6\fP à \fB\-9\fP, les plus
+haut niveaux tendent à être un peu moins rapides. Pour être encore moins
+rapide et du coup obtenir peut être une meilleure compression, consultez
+\fB\-\-extreme\fP.
+.IP \(bu 3
+CompMem contains the compressor memory requirements in the single\-threaded
+mode. It may vary slightly between \fBxz\fP versions.
+.IP \(bu 3
+DecMem contient les besoins en mémoire du décompresseur. Ce sont les
+réglages de la compression qui déterminent les besoins en mémoire de la
+décompression. L'exacte utilisation de la mémoire est légèrement supérieure
+à la taille du dictionnaire LZMA2, mais les valeurs dans la table ont été
+arrondies au prochain Mio supérieur.
+.RE
+.IP ""
+Memory requirements of the multi\-threaded mode are significantly higher than
+that of the single\-threaded mode. With the default value of
+\fB\-\-block\-size\fP, each thread needs 3*3*DictSize plus CompMem or DecMem. For
+example, four threads with preset \fB\-6\fP needs 660\(en670\ MiB of memory.
+.TP
+\fB\-e\fP, \fB\-\-extreme\fP
+Utilisez un variant plus lent que les préréglages (\fB\-0\fP à \fB\-9\fP) pour
+espérer avoir un taux de compression légèrement meilleur, mais en cas de
+malchance cela peut être pire. L'utilisation mémoire du décompresseur n'est
+pas affectée, mais l'utilisation mémoire du compresseur augmente un peu aux
+niveaux de préréglages de \fB\-0\fP à \fB\-3\fP.
+.IP ""
+Depuis qu'il y a deux préréglages avec des tailles de dictionnaire de 4\ Mio
+et 8 \Mio, les préréglages \fB\-3e\fP et \fB\-5e\fP utilisent des réglages
+légèrement plus rapides que \fB\-4e\fP et \fB\-6e\fP, respectivement. De cette
+manière, il n'y a pas deux préréglages identiques.
+.RS
+.RS
+.PP
+.TS
+tab(;);
+c c c c c
+n n n n n.
+Préréglage;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
+.TE
+.RE
+.RE
+.IP ""
+Par exemple, il y a un total de quatre préréglages qui utilisent un
+dictionnaire de 8 Mio et qui sont dans l'ordre du plus rapide au plus lent :
+\fB\-5\fP, \fB\-6\fP, \fB\-5e\fP et \fB\-6e\fP.
+.TP
+\fB\-\-fast\fP
+.PD 0
+.TP
+\fB\-\-best\fP
+.PD
+Il y a néanmoins des alias trompeurs pour \fB\-0\fP et \fB\-9\fP,
+respectivement. Ils ne sont fournis que pour des besoins de
+rétro\-compatibilité avec les utilitaires LZMA. Evitez d'utiliser ces
+options.
+.TP
+\fB\-\-block\-size=\fP\fItaille\fP
+Lors de la compression dans le format \fB.xz\fP, les données de l'entrée sont
+réparties en blocs de \fItaille\fP octets. Les blocs sont compressés
+indépendamment les un des autres, ce qui aide avec le mode multithread
+(multi\-threading) et rend possible la décompression à accès aléatoire
+limité. Cette option est typiquement utilisée pour outrepasser la taille de
+bloc en mode multithread, mais cette option peut aussi être utilisée en mode
+single\-thread.
+.IP ""
+In multi\-threaded mode about three times \fIsize\fP bytes will be allocated in
+each thread for buffering input and output. The default \fIsize\fP is three
+times the LZMA2 dictionary size or 1 MiB, whichever is more. Typically a
+good value is 2\(en4 times the size of the LZMA2 dictionary or at least 1
+MiB. Using \fIsize\fP 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
+decompression.
+.IP ""
+In single\-threaded mode no block splitting is done by default. Setting this
+option doesn't affect memory usage. No size information 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 \fBxz\fP won't be able decompress the files in multi\-threaded mode.
+.TP
+\fB\-\-block\-list=\fP\fIitems\fP
+When compressing to the \fB.xz\fP format, start a new block with an optional
+custom filter chain after the given intervals of uncompressed data.
+.IP ""
+The \fIitems\fP are a comma\-separated list. Each item consists of an optional
+filter chain number between 0 and 9 followed by a colon (\fB:\fP) 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.
+.IP ""
+If the input file is bigger than the sum of the sizes in \fIitems\fP, the last
+item is repeated until the end of the file. A special value of \fB0\fP may be
+used as the last size to indicate that the rest of the file should be
+encoded as a single block.
+.IP ""
+An alternative filter chain for each block can be specified in combination
+with the \fB\-\-filters1=\fP\fIfilters\fP \&...\& \fB\-\-filters9=\fP\fIfilters\fP options.
+These options define filter chains with an identifier between 1\(en9.
+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 uncompressed size, followed by a colon (\fB:\fP). For
+example, if one specifies \fB\-\-block\-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB\fP
+then blocks will be created using:
+.RS
+.IP \(bu 3
+The filter chain specified by \fB\-\-filters1\fP and 2 MiB input
+.IP \(bu 3
+The filter chain specified by \fB\-\-filters3\fP and 2 MiB input
+.IP \(bu 3
+The filter chain specified by \fB\-\-filters2\fP and 4 MiB input
+.IP \(bu 3
+The filter chain specified by \fB\-\-filters2\fP and 4 MiB input
+.IP \(bu 3
+The default filter chain and 2 MiB input
+.IP \(bu 3
+The default filter chain and 4 MiB input for every block until end of input.
+.RE
+.IP ""
+If one specifies a size that exceeds the encoder's block size (either the
+default value in threaded mode or the value specified with
+\fB\-\-block\-size=\fP\fIsize\fP), the encoder will create additional blocks while
+keeping the boundaries specified in \fIitems\fP. For example, if one specifies
+\fB\-\-block\-size=10MiB\fP \fB\-\-block\-list=5MiB,10MiB,8MiB,12MiB,24MiB\fP 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.
+.IP ""
+En mode multi\-threadé les tailles de blocs sont stockées dans les en\-têtes
+du bloc. Cela ne se fait pas en mode mono\-threadé, la sortie encodée ne sera
+donc pas identique à celle faite en mode multi\-threadé.
+.TP
+\fB\-\-flush\-timeout=\fP\fItemps_d'attente\fP
+Lors de la compression, si plus que \fItemps_d'attente\fP millisecondes (un
+entier positif) se sont écoulées depuis le précédent vidage et que lire plus
+de données bloquerait, toutes les données d'entrée en attente sont vidées de
+l'encodeur et mises à disposition dans le flux de sortie. Cela peut être
+utile si \fBxz\fP est utilisé pour compresser les données qui sont diffusées
+sur un réseau. Des petites valeurs de \fItemps_d'attente\fP rendent les données
+disponibles à l'extrémité réceptrice avec un léger retard, mais les grandes
+valeurs de \fItemps_d'attente\fP donnent un meilleur taux de compression.
+.IP ""
+Cette option est désactivée par défaut. Si cette option est indiquée plus
+d'une fois, la dernière prend effet. La valeur spéciale de
+\fItemps_d'attente\fP de \fB0\fP peut être utilisée pour explicitement désactiver
+cette option.
+.IP ""
+Cette option n'est pas disponible sur les systèmes qui ne sont pas POSIX.
+.IP ""
+.\" FIXME
+\fBCette option est encore expérimentale.\fP Actuellement, \fBxz\fP ne convient
+pas pour décompresser le flux en temps réel en raison de la façon dont \fBxz\fP
+effectue la mise en mémoire tampon.
+.TP
+\fB\-\-memlimit\-compress=\fP\fIlimite\fP
+Indiquer une limite d'utilisation de la mémoire pour la compression. Si
+cette option est indiquée plusieurs fois, c'est la dernière qui est prise en
+compte.
+.IP ""
+If the compression settings exceed the \fIlimit\fP, \fBxz\fP will attempt to
+adjust the settings downwards so that the limit is no longer exceeded 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
+\fIlimit\fP, and finally reducing the LZMA2 dictionary size.
+.IP ""
+When compressing with \fB\-\-format=raw\fP or if \fB\-\-no\-adjust\fP has been
+specified, only the number of threads may be reduced since it can be done
+without affecting the compressed output.
+.IP ""
+If the \fIlimit\fP cannot be met even with the adjustments described above, an
+error is displayed and \fBxz\fP will exit with exit status 1.
+.IP ""
+La \fIlimite\fP peut être indiquée de plusieurs façons :
+.RS
+.IP \(bu 3
+La \fIlimite\fP peut être une valeur absolue en octets. Utiliser un suffixe
+d'entier comme \fBMiB\fP peut être utile. Exemple :
+\fB\-\-memlimit\-compress=80MiB\fP
+.IP \(bu 3
+La \fIlimite\fP peut être indiquée sous forme d'un pourcentage de la mémoire
+physique totale (RAM). Cela peut être particulièrement utile quand la
+variable d'environnement \fBXZ_DEFAULTS\fP est indiquée dans un script
+d'initialisation de l'interpréteur partagé entre différents ordinateurs. De
+cette façon la limite est automatiquement plus grande sur les systèmes avec
+plus de mémoire. Exemple : \fB\-\-memlimit=70%\fP
+.IP \(bu 3
+The \fIlimit\fP can be reset back to its default value by setting it to \fB0\fP.
+This is currently equivalent to setting the \fIlimit\fP to \fBmax\fP (no memory
+usage limit).
+.RE
+.IP ""
+For 32\-bit \fBxz\fP there is a special case: if the \fIlimit\fP would be over
+\fB4020\ MiB\fP, the \fIlimit\fP is set to \fB4020\ MiB\fP. On MIPS32 \fB2000\ MiB\fP
+is used instead. (The values \fB0\fP and \fBmax\fP 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.
+.IP ""
+Voir aussi la section \fButilisation de la mémoire\fP.
+.TP
+\fB\-\-memlimit\-decompress=\fP\fIlimite\fP
+Régler une limite d'utilisation de la mémoire pour la décompression. Cela a
+un effet sur le mode \fB\-\-list\fP. Si l'opération n'est pas possible sans
+dépasser la \fIlimite\fP, \fBxz\fP affichera une erreur et la décompression
+échouera. Voir \fB\-\-memlimit\-compress=\fP\fIlimite\fP pour les manières possibles
+d'indiquer la \fIlimite\fP.
+.TP
+\fB\-\-memlimit\-mt\-decompress=\fP\fIlimit\fP
+Set a memory usage limit for multi\-threaded decompression. This can only
+affect the number of threads; this will never make \fBxz\fP refuse to
+decompress a file. If \fIlimit\fP is too low to allow any multi\-threading, the
+\fIlimit\fP is ignored and \fBxz\fP will continue in single\-threaded mode. Note
+that if also \fB\-\-memlimit\-decompress\fP is used, it will always apply to both
+single\-threaded and multi\-threaded modes, and so the effective \fIlimit\fP for
+multi\-threading will never be higher than the limit set with
+\fB\-\-memlimit\-decompress\fP.
+.IP ""
+In contrast to the other memory usage limit options,
+\fB\-\-memlimit\-mt\-decompress=\fP\fIlimit\fP has a system\-specific default
+\fIlimit\fP. \fBxz \-\-info\-memory\fP can be used to see the current value.
+.IP ""
+This option and its default value exist because without any limit the
+threaded decompressor could end up allocating an insane amount of memory
+with some input files. If the default \fIlimit\fP is too low on your system,
+feel free to increase the \fIlimit\fP but never set it to a value larger than
+the amount of usable RAM as with appropriate input files \fBxz\fP 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 performance.
+.IP ""
+See \fB\-\-memlimit\-compress=\fP\fIlimit\fP for possible ways to specify the
+\fIlimit\fP. Setting \fIlimit\fP to \fB0\fP resets the \fIlimit\fP to the default
+system\-specific value.
+.TP
+\fB\-M\fP \fIlimite\fP, \fB\-\-memlimit=\fP\fIlimite\fP, \fB\-\-memory=\fP\fIlimite\fP
+This is equivalent to specifying \fB\-\-memlimit\-compress=\fP\fIlimit\fP
+\fB\-\-memlimit\-decompress=\fP\fIlimit\fP \fB\-\-memlimit\-mt\-decompress=\fP\fIlimit\fP.
+.TP
+\fB\-\-no\-adjust\fP
+Display an error and exit if the memory usage limit cannot be met without
+adjusting settings that affect the compressed output. That is, this
+prevents \fBxz\fP 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.
+.IP ""
+Automatic adjusting is always disabled when creating raw streams
+(\fB\-\-format=raw\fP).
+.TP
+\fB\-T\fP \fIthreads\fP, \fB\-\-threads=\fP\fIthreads\fP
+Specify the number of worker threads to use. Setting \fIthreads\fP to a
+special value \fB0\fP makes \fBxz\fP use up to as many threads as the processor(s)
+on the system support. The actual number of threads can be fewer than
+\fIthreads\fP 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.
+.IP ""
+The single\-threaded and multi\-threaded compressors produce different
+output. Single\-threaded compressor will give the smallest file size but
+only the output from the multi\-threaded compressor can be decompressed using
+multiple threads. Setting \fIthreads\fP to \fB1\fP will use the single\-threaded
+mode. Setting \fIthreads\fP to any other value, including \fB0\fP, will use the
+multi\-threaded compressor even if the system supports only one hardware
+thread. (\fBxz\fP 5.2.x used single\-threaded mode in this situation.)
+.IP ""
+To use multi\-threaded mode with only one thread, set \fIthreads\fP to \fB+1\fP.
+The \fB+\fP prefix has no effect with values other than \fB1\fP. A memory usage
+limit can still make \fBxz\fP switch to single\-threaded mode unless
+\fB\-\-no\-adjust\fP is used. Support for the \fB+\fP prefix was added in \fBxz\fP
+5.4.0.
+.IP ""
+If an automatic number of threads has been requested and no memory usage
+limit has been specified, then a system\-specific default 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 \fBxz\fP from compressing or decompressing. This default soft
+limit will not make \fBxz\fP switch from multi\-threaded mode to single\-threaded
+mode. The active limits can be seen with \fBxz \-\-info\-memory\fP.
+.IP ""
+Actuellement, la seule méthode de gestion avec des threads consiste à
+séparer l'entrée en blocs et de les compresser indépendamment les uns des
+autres. La taille par défaut des blocs dépend du niveau de compression et
+peut\-être remplacée avec l'option \fB\-\-block\-size=\fP\fItaille\fP.
+.IP ""
+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 \fB\-\-block\-size=\fP\fIsize\fP has been used.
+.IP ""
+The default value for \fIthreads\fP is \fB0\fP. In \fBxz\fP 5.4.x and older the
+default is \fB1\fP.
+.
+.SS "Chaînes de filtres de compresseur personnalisées"
+A custom filter chain allows specifying the compression settings in detail
+instead of relying on the settings associated to the presets. When a custom
+filter chain is specified, preset options (\fB\-0\fP \&...\& \fB\-9\fP and
+\fB\-\-extreme\fP) earlier on the command line are forgotten. If a preset
+option 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.
+.PP
+Une chaîne de filtre est comparable à une redirection (pipe) sur la ligne de
+commande. Lors de la compression, les entrées non compressées vont au
+premier filtre, dont la sortie va au prochain filtre (s'il y en a). La
+sortie du dernier filtre est écrite sur le fichier compressé. Le nombre
+maximal de filtres dans la chaîne est quatre, mais habituellement, un chaîne
+de filtre n'a qu'un ou deux filtres.
+.PP
+Beaucoup de filtres ont des limitations sur l'endroit où ils peuvent se
+placer dans la chaîne de filtre : quelques filtres ne peuvent fonctionner
+qu'en tant que dernier filtre dans la chaîne, quelques uns en tant que non
+dernier filtre, et d'autres à n'importe quelle position dans la
+chaîne. Suivant le filtre, cette limitation est soit inhérente au profil du
+filtre, soit existe pour des raisons de sécurité.
+.PP
+A custom filter chain can be specified in two different ways. The options
+\fB\-\-filters=\fP\fIfilters\fP and \fB\-\-filters1=\fP\fIfilters\fP \&...\&
+\fB\-\-filters9=\fP\fIfilters\fP 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 filter options is significant! When decoding raw streams
+(\fB\-\-format=raw\fP), the filter chain must be specified in the same order as
+it was specified when compressing. Any individual filter or preset options
+specified before the full chain option (\fB\-\-filters=\fP\fIfilters\fP) will be
+forgotten. Individual filters specified after the full chain option will
+reset the filter chain.
+.PP
+Both the full and individual filter options take filter\-specific \fIoptions\fP
+as a comma\-separated list. Extra commas in \fIoptions\fP are ignored. Every
+option has a default value, so specify those you want to change.
+.PP
+Pour voir l'entièreté de la chaîne de filtres et ses \fIoptions\fP, utilisez
+\fBxz \-vv\fP (ce qui est comme utiliser \fB\-\-verbose\fP deux fois). Cela
+fonctionne aussi pour voir les options de chaîne de filtres utilisées par
+les préréglages.
+.TP
+\fB\-\-filters=\fP\fIfilters\fP
+Specify the full filter chain or a preset in a single option. Each filter
+can be separated by spaces or two dashes (\fB\-\-\fP). \fIfilters\fP may need to be
+quoted on the shell command line so it is parsed as a single option. To
+denote \fIoptions\fP, use \fB:\fP or \fB=\fP. A preset can be prefixed with a \fB\-\fP
+and followed with zero or more flags. The only supported flag is \fBe\fP to
+apply the same options as \fB\-\-extreme\fP.
+.TP
+\fB\-\-filters1\fP=\fIfilters\fP ... \fB\-\-filters9\fP=\fIfilters\fP
+Specify up to nine additional filter chains that can be used with
+\fB\-\-block\-list\fP.
+.IP ""
+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.
+.TP
+\fB\-\-filters\-help\fP
+Display a help message describing how to specify presets and custom filter
+chains in the \fB\-\-filters\fP and \fB\-\-filters1=\fP\fIfilters\fP \&...\&
+\fB\-\-filters9=\fP\fIfilters\fP options, and exit successfully.
+.TP
+\fB\-\-lzma1\fP[\fB=\fP\fIoptions\fP]
+.PD 0
+.TP
+\fB\-\-lzma2\fP[\fB=\fP\fIoptions\fP]
+.PD
+Ajouter le filtre LZMA1 ou LZMA2 à la chaîne de filtres. Ces filtres ne
+peuvent être utilisés que comme dernier filtre dans la chaîne.
+.IP ""
+LZMA1 est un filtre historique, qui n'est pris en charge presque uniquement
+à cause de l'ancien format de fichier \fB.lzma\fP, qui ne prend en charge que
+LZMA1. LZMA2 est une version mise à jour de LZMA1 pour régler certains
+problèmes pratiques de LZMA1. Le format \fBxz\fP utilise LZMA2 et ne prend pas
+du tout en charge LZMA1. Les taux et vitesses de compression de LZMA1 et
+LZMA2 sont pratiquement identiques.
+.IP ""
+LZMA1 et LZMA2 partagent le même ensemble d'\fIoptions\fP :
+.RS
+.TP
+\fBpreset=\fP\fIpréréglage\fP
+Reset all LZMA1 or LZMA2 \fIoptions\fP to \fIpreset\fP. \fIPreset\fP consist of an
+integer, which may be followed by single\-letter preset modifiers. The
+integer can be from \fB0\fP to \fB9\fP, matching the command line options \fB\-0\fP
+\&...\& \fB\-9\fP. The only supported modifier is currently \fBe\fP, which matches
+\fB\-\-extreme\fP. If no \fBpreset\fP is specified, the default values of LZMA1 or
+LZMA2 \fIoptions\fP are taken from the preset \fB6\fP.
+.TP
+\fBdict=\fP\fItaille\fP
+La \fItaille\fP du dictionnaire (historique du tampon) indique combien d'octets
+des données récement décompressées sont gardés en mémoire. L'algorithme
+essaie de trouver les séquences d'octets répétées (identiques) dans les
+données décompressées et les remplace par les données actuellement dans le
+dictionnaire. Plus gros est le dictionnaire, plus grande est la chance de
+trouver une correspondance. Ainsi, l'augmentation de la \fItaille\fP du
+dictionnaire augmente habituellement le taux de compression, mais un
+dictionnaire plus gros que le fichier non compressé est un gachis de
+mémoire.
+.IP ""
+Généralement la \fItaille\fP du dictionnaire est entre 64\ Kio et 64\ Mio. Le
+minimum étant 4\ Kio. La \fItaille\fP maximale pour la compression est
+habituellement 1,5\ Gio (1536\ Mio). Le décompresseur prend en charge les
+dictionnaires jusqu'à un octet de moins que 4\ Gio, ce qui est le maximum
+pour les formats de flux LZMA1 et LZMA2.
+.IP ""
+La \fItaille\fP du dictionnaire et le chercheur de correspondance (match
+finder) (\fImf\fP) déterminent ensemble l'utilisation de la mémoire de
+l'encodeur LZMA1 ou LZMA2. La même (ou une plus grosse) \fItaille\fP de
+dictionnaire est requise pour décompresser que ce qui a été utilisé pour la
+compression, ainsi l'utilisation de la mémoire du décodeur est déterminée
+par la taille du dictionnaire utilisée lors de la compression. Les en\-têtes
+de \fB.xz\fP stockent la \fItaille\fP de dictionnaire sous la forme 2^\fIn\fP ou
+2^\fIn\fP + 2^(\fIn\fP\-1), de sorte que ces \fItailles\fP sont quelque peu préférées
+pour la compression. Les autres \fItailles\fP seront arrondies à la hausse
+lorsque stockées dans les en\-têtes de \fB.xz\fP.
+.TP
+\fBlc=\fP\fIlc\fP
+Spécifiez le nombre d'octets de contexte littéraux. Le minimum est \fB0\fP et
+le maximum est \fB4\fP. La valeur par défaut est \fB3\fP. En plus, la somme de
+\fIlc\fP et \fIlp\fP ne doit pas excéder \fB4\fP.
+.IP ""
+Tous les octets qui ne peuvent pas être codés comme des correspondances sont
+codés comme des littéraux. C'est à dire que les littéraux sont simplement
+des octets 8 bits encodés un à la fois.
+.IP ""
+The literal coding makes an assumption that the highest \fIlc\fP 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
+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 \fIlc\fP is at least
+3, the literal coding can take advantage of this property in the
+uncompressed data.
+.IP ""
+The default value (3) is usually good. If you want maximum compression,
+test \fBlc=4\fP. Sometimes it helps a little, and sometimes it makes
+compression worse. If it makes it worse, test \fBlc=2\fP too.
+.TP
+\fBlp=\fP\fIlp\fP
+Indiquer le nombre de bits de position littérale. Le minimum est \fB0\fP et le
+maximum \fB4\fP; par défaut c'est \fB0\fP.
+.IP ""
+\fILp\fP affecte le type d'alignement dans les données décompressées qui est
+présumé lors de l'encodage des littéraux. Voir \fIpb\fP ci dessous pour plus
+d'information sur l'alignement.
+.TP
+\fBpb=\fP\fIpb\fP
+Indiquer le nombre de bits de position. Le minimum est \fB0\fP et le maximum
+\fB4\fP; par défaut \fB2\fP.
+.IP ""
+\fIPb\fP affecte quel genre d'alignement est présumé en général dans les
+données non compressées. Par défaut c'est un alignement de quatre octets
+(2^\fIpb\fP=2^2=4), ce qui est généralement un bon choix lorsqu'il n'y a pas de
+meilleure estimation.
+.IP ""
+When the alignment is known, setting \fIpb\fP accordingly may reduce the file
+size a little. For example, with text files having one\-byte alignment
+(US\-ASCII, ISO\-8859\-*, UTF\-8), setting \fBpb=0\fP can improve compression
+slightly. For UTF\-16 text, \fBpb=1\fP is a good choice. If the alignment is
+an odd number like 3 bytes, \fBpb=0\fP might be the best choice.
+.IP ""
+Même si l'alignement présumé peut être ajusté avec \fIpb\fP et \fIlp\fP, LZMA1 et
+LZMA2 favorisent toujours légèrement l'alignement sur 16 octets. Il peut
+être utile d'en tenir compte lors de la conception de formats de fichiers
+susceptibles d'être souvent compressés avec LZMA1 ou LZMA2.
+.TP
+\fBmf=\fP\fImf\fP
+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 \fIpreset\fP: 0 uses \fBhc3\fP,
+1\(en3 use \fBhc4\fP, and the rest use \fBbt4\fP.
+.IP ""
+Les chercheurs de correspondance suivants sont pris en charge. Les formules
+d'utilisation de la mémoire ci\-dessous sont des approximations grossières
+qui sont les plus proches de la réalité lorsque \fIdict\fP est une puissance de
+deux.
+.RS
+.TP
+\fBhc3\fP
+Chaîne de hachage avec hachage de 2 et 3 octets
+.br
+Valeur minimale pour \fInice\fP : \fB3\fP
+.br
+Utilisation de la mémoire :
+.br
+\fIdict\fP * 7.5 (if \fIdict\fP <= 16 Mio);
+.br
+\fIdict\fP * 5.5 + 64 MiB (si \fIdict\fP > 16 Mio)
+.TP
+\fBhc4\fP
+Chaîne de hachage avec hachage de 2, 3 et 4 octets
+.br
+Valeur minimale pour \fInice\fP : \fB4\fP
+.br
+Utilisation de la mémoire :
+.br
+\fIdict\fP * 7.5 (si \fIdict\fP <= 32 Mio);
+.br
+\fIdict\fP * 6.5 (si \fIdict\fP > 32 Mio)
+.TP
+\fBbt2\fP
+Arbre binaire avec hachage de 2 octets
+.br
+Valeur minimale pour \fInice\fP : \fB2\fP
+.br
+Utilisation de la mémoire : \fIdict\fP * 9.5
+.TP
+\fBbt3\fP
+Arbre binaire avec hachage de 2 et 3 octets
+.br
+Valeur minimale pour \fInice\fP : \fB3\fP
+.br
+Utilisation de la mémoire :
+.br
+\fIdict\fP * 11.5 (si \fIdict\fP <= 16 Mio);
+.br
+\fIdict\fP * 9.5 + 64 MiB (si \fIdict\fP > 16 Mio)
+.TP
+\fBbt4\fP
+Arbre binaire avec hachage 2, 3 et 4 octets
+.br
+Valeur minimale pour \fInice\fP : \fB4\fP
+.br
+Utilisation de la mémoire :
+.br
+\fIdict\fP * 11.5 (si \fIdict\fP <= 32 Mio);
+.br
+\fIdict\fP * 10.5 (si \fIdict\fP > 32 Mio)
+.RE
+.TP
+\fBmode=\fP\fImode\fP
+Compression \fImode\fP specifies the method to analyze the data produced by the
+match finder. Supported \fImodes\fP are \fBfast\fP and \fBnormal\fP. The default is
+\fBfast\fP for \fIpresets\fP 0\(en3 and \fBnormal\fP for \fIpresets\fP 4\(en9.
+.IP ""
+Habituellement, \fBfast\fP est utilisé avec les chercheurs de correspondance de
+chaîne de hachage et \fBnormal\fP avec les chercheurs de correspondance d'arbre
+binaire. C'est aussi ce que font les \fIpréréglages\fP.
+.TP
+\fBnice=\fP\fInice\fP
+Spécifier ce qui est considéré comme une bonne longueur pour une
+correspondance. Une fois que la correspondance d'au moins \fInice\fP octets est
+trouvée, l'algorithme arrête de chercher de meilleures correspondances
+possibles.
+.IP ""
+\fINice\fP can be 2\(en273 bytes. Higher values tend to give better
+compression ratio at the expense of speed. The default depends on the
+\fIpreset\fP.
+.TP
+\fBdepth=\fP\fIprofondeur\fP
+Spécifier la profondeur de recherche maximale dans l'outil de recherche de
+correspondances. La valeur par défaut est \fB0\fP, ce qui fait que le
+compresseur détermine une \fIprofondeur\fP raisonnable en fonction de \fImf\fP et
+\fInice\fP.
+.IP ""
+Reasonable \fIdepth\fP for Hash Chains is 4\(en100 and 16\(en1000 for Binary
+Trees. Using very high values for \fIdepth\fP can make the encoder extremely
+slow with some files. Avoid setting the \fIdepth\fP over 1000 unless you are
+prepared to interrupt the compression in case it is taking far too long.
+.RE
+.IP ""
+Lors du décodage des flux bruts (\fB\-\-format=raw\fP), LZMA2 nécessite seulement
+la \fItaille\fP du dictionnaire. LZMA1 nécessite aussi \fIlc\fP, \fIlp\fP et \fIpb\fP.
+.TP
+\fB\-\-x86\fP[\fB=\fP\fIoptions\fP]
+.PD 0
+.TP
+\fB\-\-arm\fP[\fB=\fP\fIoptions\fP]
+.TP
+\fB\-\-armthumb\fP[\fB=\fP\fIoptions\fP]
+.TP
+\fB\-\-arm64\fP[\fB=\fP\fIoptions\fP]
+.TP
+\fB\-\-powerpc\fP[\fB=\fP\fIoptions\fP]
+.TP
+\fB\-\-ia64\fP[\fB=\fP\fIoptions\fP]
+.TP
+\fB\-\-sparc\fP[\fB=\fP\fIoptions\fP]
+.TP
+\fB\-\-riscv\fP[\fB=\fP\fIoptions\fP]
+.PD
+Ajouter un filtre branch/call/jump (BCJ) à la chaîne de filtres. Ces filtres
+ne peuvent être utilisés que s'ils ne sont pas le dernier filtre de la
+chaîne de filtrage.
+.IP ""
+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\(en15\ % smaller
+\&\fB.xz\fP file. The BCJ filters are always reversible, 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
+insignificant amount of memory.
+.IP ""
+Ces filtres BCJ présentent des problèmes connus liés au taux de
+compression :
+.RS
+.IP \(bu 3
+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 conversion, which will make the compression worse with these files.
+.IP \(bu 3
+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.
+.RE
+.IP ""
+Different instruction sets have different alignment: the executable file
+must be aligned to a multiple of this value in the input data to make the
+filter work.
+.RS
+.RS
+.PP
+.TS
+tab(;);
+l n l
+l n l.
+Filtre;Alignement;Notes
+x86;1;32 bits ou 64 bits x86
+ARM;4;
+ARM\-Thumb;2;
+ARM64;4;4096\-byte alignment is best
+PowerPC;4;Grand boutiste seulement
+IA\-64;16;Itanium
+SPARC;4;
+RISC\-V;2;
+.TE
+.RE
+.RE
+.IP ""
+Since the BCJ\-filtered data is usually compressed with LZMA2, the
+compression ratio may be improved slightly if the LZMA2 options are set to
+match the alignment of the selected BCJ filter. Examples:
+.RS
+.IP \(bu 3
+IA\-64 filter has 16\-byte alignment so \fBpb=4,lp=4,lc=0\fP is good with LZMA2
+(2^4=16).
+.IP \(bu 3
+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, \fBpb=2,lp=1,lc=3\fP or \fBpb=1,lp=1,lc=3\fP is good. When
+16\-bit instructions aren't present, \fBpb=2,lp=2,lc=2\fP is the best.
+\fBreadelf \-h\fP can be used to check if "RVC" appears on the "Flags" line.
+.IP \(bu 3
+ARM64 is always 4\-byte aligned so \fBpb=2,lp=2,lc=2\fP is the best.
+.IP \(bu 3
+The x86 filter is an exception. It's usually good to stick to LZMA2's
+defaults (\fBpb=2,lp=0,lc=3\fP) when compressing x86 executables.
+.RE
+.IP ""
+Tous les filtres BCJ prennent en charge les mêmes \fIoptions\fP :
+.RS
+.TP
+\fBstart=\fP\fIdécalage\fP
+Spécifier le \fIdécalage\fP de départ qui est utilisé lors de la conversion
+entre les adresses relatives et absolues. Le \fIdécalage\fP doit être un
+multiple de l'alignement du filtre (voir la table ci\-dessus). Sa valeur par
+défaut est zéro. En pratique, cette dernière convient ; indiquer un
+\fIdécalage\fP personnalisé est la plupart du temps inutile.
+.RE
+.TP
+\fB\-\-delta\fP[\fB=\fP\fIoptions\fP]
+Ajouter le filtre Delta à la chaîne de filtres. Le filtre Delta ne peut être
+utilisé que s'il n'est pas le dernier filtre dans la chaîne.
+.IP ""
+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 purpose algorithms may give
+significantly better results than Delta + LZMA2. This is true especially
+with audio, which compresses faster and better, for example, with
+\fBflac\fP(1).
+.IP ""
+\fIoptions\fP prises en charge :
+.RS
+.TP
+\fBdist=\fP\fIdistance\fP
+Specify the \fIdistance\fP of the delta calculation in bytes. \fIdistance\fP must
+be 1\(en256. The default is 1.
+.IP ""
+Par exemple, avec \fBdist=2\fP et une entrée huit octets A1 B1 A2 B3 A3 B5 A4
+B7, la sortie sera A1 B1 01 02 01 02 01 02.
+.RE
+.
+.SS "Autres options"
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Supprimer les avertissements et les notifications. Indiquer cela deux fois
+supprimera aussi les erreurs. Cette option n'a aucun effet sur le statut de
+sortie. Cela dit, même si un avertissement était supprimé, le statut de
+sortie indiquant un avertissement sera encore utilisé.
+.TP
+\fB\-v\fP, \fB\-\-verbose\fP
+Être bavard. Si l'erreur standard est connectée à un terminal, \fBxz\fP
+affichera une barre de progression. Indiquer \fB\-\-verbose\fP deux fois donnera
+une sortie encore plus bavarde.
+.IP ""
+La barre de progression montre l'information suivante :
+.RS
+.IP \(bu 3
+Le pourcentage de complétion est montré si la taille du fichier en entrée
+est connue. Néanmoins, le pourcentage ne peut pas être montré en cas de
+redirection.
+.IP \(bu 3
+Quantité de données compressées produites (compression) ou consommées
+(décompression).
+.IP \(bu 3
+Quantité de données non compressées consommées (compression) ou produites
+(décompression).
+.IP \(bu 3
+Le taux de compression, calculé en divisant la quantité de données
+compréssées déjà traitées par la quantité de données décompressées déjà
+traitées.
+.IP \(bu 3
+Vitesse de compression ou de décompression. Elle correspond à la quantité de
+données non compressées consommées (compression) ou produites
+(décompression) par seconde. Elle apparait quelques secondes après le début
+du traitement du fichier par \fBxz\fP.
+.IP \(bu 3
+Temps écoulé dans le format M:SS ou H:MM:SS.
+.IP \(bu 3
+Estimated remaining time is shown only when the size of the input file is
+known and a couple of seconds have already passed since \fBxz\fP started
+processing the file. The time is shown in a less precise format which never
+has any colons, for example, 2 min 30 s.
+.RE
+.IP ""
+When standard error is not a terminal, \fB\-\-verbose\fP will make \fBxz\fP print
+the filename, compressed size, uncompressed size, compression 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
+completion percentage is printed if the size of the input file is known.
+.TP
+\fB\-Q\fP, \fB\-\-no\-warn\fP
+Ne pas mettre l'état de sortie à \fB2\fP même si une condition méritant un
+avertissement a été détectée. Cette option n'affecte pas le niveau de
+verbosité, néanmoins, les deux options \fB\-\-quiet\fP et \fB\-\-no\-warn\fP doivent
+être utilisées pour ne pas afficher d'avertissements, ni altérer le statut
+de sortie.
+.TP
+\fB\-\-robot\fP
+Afficher les messages dans un format analysable par une machine. Ceci est
+destiné à faciliter l'écriture des frontaux qui voudraient utiliser \fBxz\fP
+plutôt que liblzma, ce qui pourrait être le cas pour différents scripts. La
+sortie avec cette option activée est destinée à rester stable sur les
+différentes versions de \fBxz\fP. Consulter le paragraphe \fBROBOT MODE\fP pour
+les détails.
+.TP
+\fB\-\-info\-memory\fP
+Display, in human\-readable format, how much physical memory (RAM) and how
+many processor threads \fBxz\fP thinks the system has and the memory usage
+limits for compression and decompression, and exit successfully.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afficher un message d'aide décrivant les options les plus couramment
+utilisées et quitter.
+.TP
+\fB\-H\fP, \fB\-\-long\-help\fP
+Afficher un message d'aide décrivant toutes les options de \fBxz\fP et quitter.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afficher le numéro de version de \fBxz\fP et de liblzma dans un format lisible
+par un humain. Pour obtenir une sortie analysable par la machine, spécifiez
+\fB\-\-robot\fP avant \fB\-\-version\fP.
+.
+.SH "MODE ROBOT"
+The robot mode is activated with the \fB\-\-robot\fP option. It makes the output
+of \fBxz\fP easier to parse by other programs. Currently \fB\-\-robot\fP is
+supported only together with \fB\-\-list\fP, \fB\-\-filters\-help\fP, \fB\-\-info\-memory\fP,
+and \fB\-\-version\fP. It will be supported for compression and decompression in
+the future.
+.
+.SS "Mode liste"
+\fBxz \-\-robot \-\-list\fP utilise une sortie séparée par des tabulations. La
+première colonne de toutes les lignes possède une chaîne qui indique le type
+d'information trouvée sur cette ligne :
+.TP
+\fBname\fP
+C'est toujours la première ligne au début de la liste d'un fichier. La
+seconde colonne de la ligne est le nom de fichier.
+.TP
+\fBfile\fP
+Cette ligne contient l'information globale sur le fichier \fB.xz\fP. Cette
+ligne est toujours écrite après la ligne \fBname\fP.
+.TP
+\fBstream\fP
+Ce type de ligne n'est utilisée que lorsque \fB \-\-verbose\fP a été indiquée. Il
+y a autant de lignes \fBstream\fP qu'il y a de flux dans le fichier \fB.xz\fP.
+.TP
+\fBblock\fP
+Ce type de ligne n'est utilisé seulement lorsque \fB\-\-verbose\fP a été
+indiquée. Il y a autant de lignes \fBblock\fP qu'il y a de blocs dans le
+fichier \fB.xz\fP. Les lignes \fBblock\fP sont affichées après toutes les lignes
+\fBstream\fP ; les différents types de lignes ne sont pas imbriqués.
+.TP
+\fBsummary\fP
+Ce type de ligne n'est utilisé que lorsque \fB\-\-verbose\fP a été indiqué deux
+fois. Cette ligne est affichée après toutes les lignes \fBblock\fP. Comme la
+ligne \fBfile\fP, la ligne \fBsummary\fP contient l'information globale sur le
+fichier \fB.xz\fP.
+.TP
+\fBtotals\fP
+Cette ligne est toujours la toute dernière ligne de la sortie. Elle affiche
+les comptes et les tailles totaux.
+.PP
+Les colonnes des lignes \fBfile\fP :
+.PD 0
+.RS
+.IP 2. 4
+Nombre de flux dans le fichier
+.IP 3. 4
+Nombre total de blocs dans le ou les flux.
+.IP 4. 4
+Taille compressée du fichier
+.IP 5. 4
+Taille décompressée du fichier
+.IP 6. 4
+Compression ratio, for example, \fB0.123\fP. If ratio is over 9.999, three
+dashes (\fB\-\-\-\fP) are displayed instead of the ratio.
+.IP 7. 4
+Liste de noms de contrôles d'intégrité séparés par des virgules. Les chaînes
+suivantes sont utilisées pour les types de vérification connus : \fBNone\fP,
+\fBCRC32\fP, \fBCRC64\fP et \fBSHA256\fP. Pour le types de vérification inconnus,
+\fBUnknown\-\fP\fIN\fP est utilisé, où \fIN\fP est un identifiant de vérification sous
+la forme d'un nombre décimal (un ou deux chiffres).
+.IP 8. 4
+Taille totale du remplissage du flux dans le fichier
+.RE
+.PD
+.PP
+Les colonnes des lignes \fBstream\fP :
+.PD 0
+.RS
+.IP 2. 4
+Numéro de flux (le premier flux a le numéro 1)
+.IP 3. 4
+Nombre de blocs dans le flux
+.IP 4. 4
+Décalage de départ compressé
+.IP 5. 4
+Décalage de départ décompressé
+.IP 6. 4
+Taille compressée (ne comprend pas le remplissage du flux)
+.IP 7. 4
+Taille décompressée
+.IP 8. 4
+Taux de compression
+.IP 9. 4
+Nom de la vérification d'intégrité
+.IP 10. 4
+Taille du remplissage de flux
+.RE
+.PD
+.PP
+Les colonnes des lignes \fBblock\fP :
+.PD 0
+.RS
+.IP 2. 4
+Numéro du flux qui contient ce bloc
+.IP 3. 4
+Numéro du bloc relatif au commencement du flux (le premier bloc a pour
+numéro 1)
+.IP 4. 4
+Numéro du bloc relatif au début du fichier
+.IP 5. 4
+Décalage de départ compressé relatif au début du fichier
+.IP 6. 4
+Décalage de départ décompressé relatif au début du fichier
+.IP 7. 4
+Taille compressée totale du bloc (en\-têtes inclus)
+.IP 8. 4
+Taille décompressée
+.IP 9. 4
+Taux de compression
+.IP 10. 4
+Nom de la vérification d'intégrité
+.RE
+.PD
+.PP
+Si \fB\-\-verbose\fP a été indiqué deux fois, les colonnes additionnelles sont
+inclues sur les lignes \fBblock\fP. Elles ne sont pas affichées avec un seul
+\fB\-\-verbose\fP, car l'obtention de ces informations nécessite de nombreuses
+recherches et peut donc être lente :
+.PD 0
+.RS
+.IP 11. 4
+Valeur de la vérification d'intégrité en hexadécimal
+.IP 12. 4
+Taille d'en\-tête de bloc
+.IP 13. 4
+Drapeaux du bloc : \fBc\fP indique que la taille compressée est présente, et
+\fBu\fP indique que la taille décompréssée est présente. Si le drapeau n'est
+pas indiqué, un tiret (\fB\-\fP) est affiché à la place pour que la longueur de
+la chaîne reste fixe. De nouveaux drapeaux pourraient être ajoutés à la fin
+de la chaîne dans le futur.
+.IP 14. 4
+Taille des données effectivement compressées dans le bloc (en excluant
+l'en\-tête de bloc, le remplissage de bloc et les champs de vérification).
+.IP 15. 4
+Quantité de mémoire (en octets) nécessaire pour décompresser ce bloc avec
+cette version de \fBxz\fP.
+.IP 16. 4
+Chaîne de filtrage. Remarquez que la plupart des options utilisées au moment
+de la compression ne peuvent pas être connues, car seules les options
+nécessaires pour la décompression sont stockées dans les en\-têtes \fB.xz\fP.
+.RE
+.PD
+.PP
+Les colonnes des lignes \fBsummary\fP :
+.PD 0
+.RS
+.IP 2. 4
+Quantité de mémoire (en octets) nécessaire pour décompresser ce fichier avec
+cette version de \fBxz\fP.
+.IP 3. 4
+\fByes\fP ou \fBno\fP indique si tous les en\-têtes de bloc stockent à la fois la
+taille compressée et la taille décompressée.
+.PP
+\fIDepuis\fP \fBxz\fP \fI5.1.2alpha:\fP
+.IP 4. 4
+Version minimale de \fBxz\fP nécessaire pour décompresser le fichier.
+.RE
+.PD
+.PP
+Les colonnes de la ligne \fBtotals\fP :
+.PD 0
+.RS
+.IP 2. 4
+Nombre de flux
+.IP 3. 4
+Nombre de blocs
+.IP 4. 4
+Taille compressée
+.IP 5. 4
+Taille décompressée
+.IP 6. 4
+Taux de compression moyen
+.IP 7. 4
+Liste séparée par des virgules des noms de vérification d'intégrité qui
+étaient présents dans les fichiers
+.IP 8. 4
+Taille de remplissage de flux
+.IP 9. 4
+Nombre de fichiers. Permet de garder l'ordre des colonnes précédentes comme
+sur les lignes \fBfile\fP.
+.PD
+.RE
+.PP
+Si \fB\-\-verbose\fP a été indiqué deux fois, des colonnes supplémentaires sont
+incluses sur la ligne \fBtotals\fP :
+.PD 0
+.RS
+.IP 10. 4
+Quantité maximale de mémoire (en octets) nécessaire pour décompresser les
+fichiers avec cette version de \fBxz\fP.
+.IP 11. 4
+\fByes\fP ou \fBno\fP indique si tous les en\-têtes de bloc stockent à la fois la
+taille compressée et la taille décompressée.
+.PP
+\fIDepuis\fP \fBxz\fP \fI5.1.2alpha:\fP
+.IP 12. 4
+Version minimale de \fBxz\fP nécessaire pour décompresser le fichier.
+.RE
+.PD
+.PP
+Les versions futures pourront ajouter de nouveaux types de lignes et de
+nouvelles colonnes pourront être ajoutées aux types de lignes existants,
+mais les colonnes existantes ne seront pas modifiées.
+.
+.SS "Filters help"
+\fBxz \-\-robot \-\-filters\-help\fP prints the supported filters in the following
+format:
+.PP
+\fIfilter\fP\fB:\fP\fIoption\fP\fB=<\fP\fIvalue\fP\fB>,\fP\fIoption\fP\fB=<\fP\fIvalue\fP\fB>\fP...
+.TP
+\fIfilter\fP
+Name of the filter
+.TP
+\fIoption\fP
+Name of a filter specific option
+.TP
+\fIvalue\fP
+Numeric \fIvalue\fP ranges appear as \fB<\fP\fImin\fP\fB\-\fP\fImax\fP\fB>\fP. String
+\fIvalue\fP choices are shown within \fB< >\fP and separated by a \fB|\fP
+character.
+.PP
+Each filter is printed on its own line.
+.
+.SS "Information de limite de mémoire"
+\fBxz \-\-robot \-\-info\-memory\fP prints a single line with multiple tab\-separated
+columns:
+.IP 1. 4
+Total amount of physical memory (RAM) in bytes.
+.IP 2. 4
+Memory usage limit for compression in bytes (\fB\-\-memlimit\-compress\fP). A
+special value of \fB0\fP indicates the default setting which for
+single\-threaded mode is the same as no limit.
+.IP 3. 4
+Memory usage limit for decompression in bytes (\fB\-\-memlimit\-decompress\fP). A
+special value of \fB0\fP indicates the default setting which for
+single\-threaded mode is the same as no limit.
+.IP 4. 4
+Since \fBxz\fP 5.3.4alpha: Memory usage for multi\-threaded decompression in
+bytes (\fB\-\-memlimit\-mt\-decompress\fP). 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
+\fB\-\-memlimit\-mt\-decompress\fP.
+.IP 5. 4
+Since \fBxz\fP 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 (\fB\-\-threads=0\fP) and no memory usage limit has been
+specified (\fB\-\-memlimit\-compress\fP). This is also used as the default value
+for \fB\-\-memlimit\-mt\-decompress\fP.
+.IP 6. 4
+Since \fBxz\fP 5.3.4alpha: Number of available processor threads.
+.PP
+Dans le futur, la sortie de \fBxz \-\-robot \-\-info\-memory\fP pourrait avoir plus
+de colonnes, mais jamais plus qu'une ligne unique.
+.
+.SS Version
+\fBxz \-\-robot \-\-version\fP prints the version number of \fBxz\fP and liblzma in
+the following format:
+.PP
+\fBXZ_VERSION=\fP\fIXYYYZZZS\fP
+.br
+\fBLIBLZMA_VERSION=\fP\fIXYYYZZZS\fP
+.TP
+\fIX\fP
+Version majeure.
+.TP
+\fIYYY\fP
+Version mineure. Les numéros pairs sont stables. Les numéros impairs sont
+des versions alpha ou beta.
+.TP
+\fIZZZ\fP
+Niveau de correctif pour les options stables ou juste un compteur pour les
+options de développement.
+.TP
+\fIS\fP
+Stabilité. 0 est alpha, 1 est bêta et 2 est stable. \fIS\fP devrait toujours
+être 2 quand \fIYYY\fP est pair.
+.PP
+\fIXYYYZZZS\fP sont identiques sur les deux lignes si \fBxz\fP et liblzma sont
+issus de la même version d'utilitaires XZ.
+.PP
+Exemples : 4.999.9beta est \fB49990091\fP et 5.0.0 est \fB50000002\fP.
+.
+.SH "STATUT DE SORTIE"
+.TP
+\fB0\fP
+Tout est bon.
+.TP
+\fB1\fP
+Une erreur est survenue.
+.TP
+\fB2\fP
+Quelquechose méritant un avertissement s'est produit, mais aucune erreur
+véritable n'est survenue.
+.PP
+Les notifications (pas les avertissements ou les erreurs) affichées sur
+l'erreur standard n'affectent pas le statut de sortie.
+.
+.SH ENVIRONNEMENT
+\fBxz\fP analyse les listes d'options séparées par des espaces à partir des
+variables d'environnement \fBXZ_DEFAULTS\fP et \fBXZ_OPT\fP, dans cet ordre, avant
+d'analyser les options de la ligne de commandes. Remarquez que seules les
+options sont analysées depuis l'environnement des variables ; toutes les
+non\-options sont ignorées silencieusement. L'analyse est faite avec
+\fBgetopt_long\fP(3) qui est aussi utilisé pour les arguments de la ligne de
+commandes.
+.TP
+\fBXZ_DEFAULTS\fP
+Options par défaut propres à l'utilisateur ou pour tout le système. Elles
+sont le plus souvent définies dans un script d'initialisation de
+l'interpréteur pour activer le limiteur d'utilisation de la mémoire de \fBxz\fP
+par défaut. A part pour les scripts d'initialisation de l'interpréteur ou
+des cas similaires, les sripts ne doivent jamais définir ou désactiver
+\fBXZ_DEFAULTS\fP.
+.TP
+\fBXZ_OPT\fP
+This is for passing options to \fBxz\fP when it is not possible to set the
+options directly on the \fBxz\fP command line. This is the case when \fBxz\fP is
+run by a script or tool, for example, GNU \fBtar\fP(1):
+.RS
+.RS
+.PP
+.nf
+\f(CWXZ_OPT=\-2v tar caf foo.tar.xz foo\fP
+.fi
+.RE
+.RE
+.IP ""
+Scripts may use \fBXZ_OPT\fP, for example, to set script\-specific default
+compression options. It is still recommended to allow users to override
+\fBXZ_OPT\fP if that is reasonable. For example, in \fBsh\fP(1) scripts one may
+use something like this:
+.RS
+.RS
+.PP
+.nf
+\f(CWXZ_OPT=${XZ_OPT\-"\-7e"} export XZ_OPT\fP
+.fi
+.RE
+.RE
+.
+.SH "Compatibilité des utilitaires LZMA"
+La syntaxe de la ligne de commande de \fBxz\fP est quasimment un sur\-ensemble
+de \fBlzma\fP, \fBunlzma\fP et \fBlzcat\fP comme ils sont trouvés dans les
+utilitaires LZMA 4.32.x . Dans la pluspart des cas, il est possible de
+remplacer les outils LZMA par les outils XZ sans casser les scripts
+existants. Il existe cependant certaines incompatibilités qui peuvent
+parfois poser des problèmes.
+.
+.SS "Niveaux de préréglage de la compression"
+La numérotation des préréglages de niveau de compression est différente
+entre les outils \fBxz\fP et LZMA. La différence la plus importante est la
+manière dont les tailles de dictionnaire sont affectées aux différents
+préréglages. La taille de dictionnaire est à peu près égale à celle
+d'utilisation de la mémoire de la décompression.
+.RS
+.PP
+.TS
+tab(;);
+c c c
+c n n.
+Niveau;xz;Utilitaires LZMA
+\-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
+.TE
+.RE
+.PP
+Les différences de tailles des dictionnaires affectent aussi l'utilisation
+de la mémoire du compresseur, mais il y a quelques autres différences entre
+les outils LZMA et les outils XZ, qui rendent la différence encore plus
+grande :
+.RS
+.PP
+.TS
+tab(;);
+c c c
+c n n.
+Niveau;xz;Utilitaires LZMA 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
+.TE
+.RE
+.PP
+Le niveau de préréglage par défaut dans les outils LZMA est \fB\-7\fP alors que
+pour les outils XZ c'est \fB\-6\fP, les deux utilisent ainsi un dictionnaire de
+8 Mio par défaut.
+.
+.SS "Fichiers .lzma en flux ou non"
+The uncompressed size of the file can be stored in the \fB.lzma\fP 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.
+.PP
+\fBxz\fP prend en charge la décompression des fichiers \fB.lzma\fP avec ou sans
+marqueur de fin de charge utile, mais tous les fichiers \fB.lzma\fP créés par
+\fBxz\fP utiliseront un marqueur de fin de charge utile et ont la taille non
+compréssée marquée comme inconnue dans l'en\-tête \fB.lzma\fP. Cela peut être un
+problème dans quelques situations inhabituelles. Par exemple, un
+décompresseur \fB.lzma\fP dans un périphérique embarqué pourrait ne fonctionner
+qu'avec des fichiers dont la taille non comprimée est connue. Si vous vous
+heurtez à ce problème, vous devez utiliser les utilitaires LZMA ou LZMA SDK
+pour créer des fichiers \fB.lzma\fP avec une taille non compressée connue.
+.
+.SS "Fichiers .lzma non pris en charge"
+Le format \fB.lzma\fP autorise des valeurs \fIlc\fP jusqu'à 8, et des valeurs
+\fIlp\fP jusqu'à 4. Les outils LZMA peuvent décompresser des fichiers avec tous
+les \fIlc\fP et \fIlp\fP, mais créez toujours les fichiers avec \fBlc=3\fP et
+\fBlp=0\fP. Créer des fichiers avec d'autres valeurs \fIlc\fP et \fIlp\fP est
+possible avec \fBxz\fP et avec LZMA SDK.
+.PP
+L'implémentation du filtre LZMA1 dans liblzma nécessite que la somme de
+\fIlc\fP et \fIlp\fP soit inférieure ou égale à 4. Ainsi, les fichiers \fB.lzma\fP
+qui excèdent cette limitation ne peuvent pas être décompressés avec \fBxz\fP.
+.PP
+Les outils LZMA créent seulement des fichiers \fB.lzma\fP qui ont une taille de
+dictionnaire de 2^\fIn\fP (une puissance de 2) mais acceptent les fichiers avec
+toutes les tailles de dictionnaire. Libzlma n'accepte que les fichiers
+\&\fB.lzma\fP qui ont une taille dictionnaire de 2^\fIn\fP ou
+2^\fIn\fP + 2^(\fIn\fP\-1). Cela afin de diminuer les faux positifs lors de la
+détection des fichiers \fB.lzma\fP.
+.PP
+Ces limitations ne devraient pas poser problème en pratique, car
+pratiquement tous les fichiers \fB.lzma\fP ont été compressés avec des réglages
+que liblzma accepte.
+.
+.SS "Déchets excédentaires"
+Lors de la décompession, l'utilitaire LZMA ignore silencieusement tout ce
+qui est après le premier flux \fB.lzma\fP. Dans la majorité des situations,
+c'est un bogue. Cela veut dire aussi que les outils LZMA ne gèrent pas la
+décompression de fichiers \fB.lzma\fP concaténés.
+.PP
+S'il reste des données après le premier flux \fB.lzma\fP, \fBxz\fP considère que
+le fichier est corrompu sauf si \fB\-\-single\-stream\fP a été utilisé. Cela peut
+casser des scripts obscurs qui ont supposé que les déchets de fin de ligne
+sont ignorés.
+.
+.SH NOTES
+.
+.SS "La sortie compressée peut varier"
+La sortie compressée exacte produite par les même fichiers non compressés en
+entrée peut varier en fonction des différentes versions de l'utilitaire XZ,
+même si les options de compression sont identiques. En effet, il est
+possible d'améliorer l'encodeur (compression plus rapide ou meilleure) sans
+affecter le format du fichier. La sortie peut même varier entre différentes
+compilations de la même version d'utilitaire XZ, si des options de
+construction différentes sont utilisées.
+.PP
+Cela signifie qu'une fois que \fB\-\-rsyncable\fP a été implémenté, les fichiers
+résultants ne seront pas nécessairement synchronisables avec rsync à moins
+que les nouveaux et anciens fichiers n'aient été compressés avec la même
+version de xz. Ce problème peut être résolu si une partie de
+l'implémentation est gelée pour garantir la stabilité de la sortie rsyncable
+à travers les versions de xz.
+.
+.SS "Décompresseurs .xz embarqués"
+Les implémentations de décompresseur embarqué comme XZ Embedded ne gèrent
+pas nécessairement les fichiers créés avec d'autres types de \fIvérification\fP
+d'intégrité que \fBnone\fP et \fBCRC32\fP. Comme la valeur par défaut est
+\fB\-\-check=crc64\fP, vous devez utiliser \fB\-\-check=none\fP ou \fB\-\-check=crc32\fP
+lors de la création de fichiers pour les systèmes embarqués.
+.PP
+En dehors des systèmes embarqués, tous les décompresseurs de format \fB.xz\fP
+gèrent tous les types de \fIvérification\fP ou sont au moins capables de
+décompresser le fichier sans effectuer la vérification d'intégrité si ce
+type de \fIvérification\fP particulière n'est pas pris en charge.
+.PP
+XZ Embedded prend en charge les filtres BCJ, mais seulement avec le décalage
+de départ par défaut.
+.
+.SH EXEMPLES
+.
+.SS Bases
+Compresser le fichier \fItoto\fP en \fItoto.xz\fP en utilisant le niveau de
+compression par défaut (\fB\-6\fP) et supprimer \fItoto\fP si la compression
+réussit :
+.RS
+.PP
+.nf
+\f(CWxz toto\fP
+.fi
+.RE
+.PP
+Décompresser \fIbidule.xz\fP en \fIbidule\fP et ne pas supprimer \fIbidule.xz\fP même
+si la compression réussit :
+.RS
+.PP
+.nf
+\f(CWxz \-dk bidule.xz\fP
+.fi
+.RE
+.PP
+Create \fIbaz.tar.xz\fP with the preset \fB\-4e\fP (\fB\-4 \-\-extreme\fP), which is
+slower than the default \fB\-6\fP, but needs less memory for compression and
+decompression (48\ MiB and 5\ MiB, respectively):
+.RS
+.PP
+.nf
+\f(CWtar cf \- truc | xz \-4e > truc.tar.xz\fP
+.fi
+.RE
+.PP
+Un mélange de fichiers compressés et non compressés peuvent être
+décompressés vers la sortie standard avec une simple commande :
+.RS
+.PP
+.nf
+\f(CWxz \-dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt\fP
+.fi
+.RE
+.
+.SS "Compression en parallèle de plusieurs fichiers"
+Sur GNU et *BSD, \fBfind\fP(1) et \fBxargs\fP(1) peuvent être utilisés pour mettre
+en parallèle la compression de plusieurs fichiers :
+.RS
+.PP
+.nf
+\f(CWfind . \-type f \e! \-name '*.xz' \-print0 \e | xargs \-0r \-P4 \-n16 xz \-T1\fP
+.fi
+.RE
+.PP
+L'option \fBP\fP passée à \fBxargs\fP(1) fixe le nombre de processus \fBxz\fP en
+parallèles. La meilleure valeur pour l'option \fBn\fP dépend du nombre de
+fichiers à compresser. S\-il n'y a que quelques fichiers, la valeur sera
+probablement 1 ; avec des dizaines de milliers de fichiers, 100 ou même plus
+serait approprié pour réduire le nombre de processus \fBxz\fP que \fBxargs\fP(1)
+créera éventuellement.
+.PP
+L'option \fB\-T1\fP de \fBxz\fP est là pour le forcer en mode mono\-thread, car
+\fBxargs\fP(1) est utilisé pour contrôler la quantité de mise en parallèle.
+.
+.SS "Mode robot"
+Calculer combien d'octets ont été économisés au total après avoir compressé
+plusieurs fichiers :
+.RS
+.PP
+.nf
+\f(CWxz \-\-robot \-\-list *.xz | awk '/^totals/{print $5\-$4}'\fP
+.fi
+.RE
+.PP
+Un script peut vouloir savoir qu'il utilise une version suffisamment récente
+de \fBxz\fP. Le script \fBsh\fP(1) suivant vérifie que le numéro de version de
+l'outil \fBxz\fP soit au minimum 5.0.0. Cette méthode est compatible avec les
+vieilles versions bêta, qui ne gèrent pas l'option \fB\-\-robot\fP :
+.RS
+.PP
+.nf
+\f(CWif ! eval "$(xz \-\-robot \-\-version 2> /dev/null)" || [ "$XZ_VERSION" \-lt 50000002 ]; then echo "Votre version de xz est trop ancienne." fi unset XZ_VERSION LIBLZMA_VERSION\fP
+.fi
+.RE
+.PP
+Régler une limite d'utilisation de la mémoire pour la décompression en
+utilisant \fBXZ_OPT\fP, mais si une limite a déjà été définie, ne pas
+l'augmenter :
+.RS
+.PP
+.nf
+\f(CWNEWLIM=$((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\fP
+.fi
+.RE
+.
+.SS "Chaînes de filtres de compresseur personnalisées"
+L'utilisation la plus simple des chaînes de filtres personnalisées est la
+personnalisation d'un préréglage LZMA2. Cela peut être utile, car les
+préréglages ne couvrent qu'un sous\-ensemble des réglages de compression
+potentiellement utiles.
+.PP
+Les colonnes CompCPU des tableaux des descriptions des options \fB\-0\fP à \fB\-9\fP
+et \fB\-\-extreme\fP sont utiles lors de la personnalisation des préréglages
+LZMA2. Voici les parties pertinentes recueillies à partir de ces deux
+tableaux :
+.RS
+.PP
+.TS
+tab(;);
+c c
+n n.
+Préréglage;CompCPU
+\-0;0
+\-1;1
+\-2;2
+\-3;3
+\-4;4
+\-5;5
+\-6;6
+\-5e;7
+\-6e;8
+.TE
+.RE
+.PP
+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 \fBxz \-8\fP
+would do, a preset with a low CompCPU value (for example, 1) can be
+modified to use a bigger dictionary:
+.RS
+.PP
+.nf
+\f(CWxz \-\-lzma2=preset=1,dict=32MiB toto.tar\fP
+.fi
+.RE
+.PP
+Avec certains fichiers, la commande ci\-dessus peut être plus rapide que
+\fBxz\-6\fP tout en compressant bien mieux. Cependant, il faut souligner que
+seuls certains fichiers bénéficient d'un grand dictionnaire tout en gardant
+la valeur de CompCPU faible. La siutation la plus évidente où un gros
+dictionnaire peut baucoup aider, est une archive contenant des fichiers très
+similaires de quelques megaoctets chacun. La taille de dictionnaire doit
+être significativement plus grosse que tout fichier individuel pour
+permettre à LZMA2 de tirer pleinement partie des similarités entre des
+fichiers consécutifs.
+.PP
+Si une utilisation de la mémoire élevée pour la compression et décompression
+convient, et que le fichier à compresser a une taille de plusieurs centaines
+de megaoctets, il peut être utile d'utiliser un plus gros dictionnaire que
+celui fourni par \fBxz\-9\fP (64 Mio) :
+.RS
+.PP
+.nf
+\f(CWxz \-vv \-\-lzma2=dict=192MiB gros_toto.tar\fP
+.fi
+.RE
+.PP
+Utiliser \fB\-vv\fP (\fB\-\-verbose\-\-verbose\fP) comme dans l'exemple ci\-dessus peut
+être utile pour voir les besoins en mémoire du compresseur et du
+décompresseur. Rappelez\-vous qu'utiliser un dictionnaire plus gros que la
+taille du fichier non compressé est un gachis de mémoire, donc la commande
+ci\-dessus n'est pas utile pour les petits fichiers.
+.PP
+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 \fB\-6e\fP (\fB\-6 \-\-extreme\fP) 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
+\fB\-\-check=crc32\fP) using about 100\ KiB of memory.
+.RS
+.PP
+.nf
+\f(CWxz \-\-check=crc32 \-\-lzma2=preset=6e,dict=64KiB toto\fP
+.fi
+.RE
+.PP
+If you want to squeeze out as many bytes as possible, adjusting the number
+of literal context bits (\fIlc\fP) and number of position bits (\fIpb\fP) can
+sometimes help. Adjusting the number of literal position bits (\fIlp\fP)
+might help too, but usually \fIlc\fP and \fIpb\fP 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 \fBxz \-6e\fP (try also without \fBlc=4\fP):
+.RS
+.PP
+.nf
+\f(CWxz \-\-lzma2=preset=6e,pb=0,lc=4 code_source.tar\fP
+.fi
+.RE
+.PP
+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:
+.RS
+.PP
+.nf
+\f(CWxz \-\-x86 \-\-lzma2 libtoto.so\fP
+.fi
+.RE
+.PP
+Notez que l'ordre des options de filtre est significatif. Si \fB\-\-x86\fP est
+indiqué après \fB\-\-lzma2\fP, \fBxz\fP donnera une erreur, car il ne peut y avoir
+aucun filtre après LZMA2, et aussi parce que le filtre BCJ x86 ne peut pas
+être utilisé comme dernier filtre dans la chaîne.
+.PP
+Le filtre Delta associé à LZMA2 peut donner de bons résultats avec les
+images bitmap. Cela devrait habituellement battre PNG, qui a quelques
+filtres avancés supplémentaires qu'un simple delta, mais qui utilise Deflate
+pour la compression effective.
+.PP
+The image has to be saved in uncompressed format, for example, as
+uncompressed 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 \fBdist=3\fP, and it is also good to pass \fBpb=0\fP to LZMA2 to
+accommodate the three\-byte alignment:
+.RS
+.PP
+.nf
+\f(CWxz \-\-delta=dist=3 \-\-lzma2=pb=0 toto.tiff\fP
+.fi
+.RE
+.PP
+If multiple images have been put into a single archive (for example,
+\&\fB.tar\fP), the Delta filter will work on that too as long as all images have
+the same number of bytes per pixel.
+.
+.SH "VOIR AUSSI"
+\fBxzdec\fP(1), \fBxzdiff\fP(1), \fBxzgrep\fP(1), \fBxzless\fP(1), \fBxzmore\fP(1),
+\fBgzip\fP(1), \fBbzip2\fP(1), \fB7z\fP(1)
+.PP
+XZ Utils: <https://xz.tukaani.org/xz\-utils/>
+.br
+XZ Embedded: <https://xz.tukaani.org/xz\-embedded/>
+.br
+LZMA SDK: <https://7\-zip.org/sdk.html>
diff --git a/po4a/man/fr/xzdec.1 b/po4a/man/fr/xzdec.1
new file mode 100644
index 00000000..f2e7939c
--- /dev/null
+++ b/po4a/man/fr/xzdec.1
@@ -0,0 +1,90 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Author: Lasse Collin
+.\"
+.\" french translation of XZ Utils man
+.\" Copyright (C) 2021 Debian French l10n team <debian-l10n-french@lists.debian.org>
+.\" Translator
+.\" bubu <bubub@no-log.org>, 2021.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZDEC 1 2024\-01\-19 Tukaani "Utilitaires XZ"
+.SH NOM
+xzdec, lzmadec \- Small .xz et .lzma decompresseurs
+.SH SYNOPSIS
+\fBxzdec\fP [\fIoption...\fP] [\fIfichier...\fP]
+.br
+\fBlzmadec\fP [\fIoption...\fP] [\fIfichier...\fP]
+.SH DESCRIPTION
+\fBxzdec\fP est un outil uniquement de décompression, basé sur liblzma pour les
+fichiers \fB.xz\fP (et seulement \fB.xz\fP). \fBxzdec\fP est destiné à remplacer
+\fBxz\fP(1) dans les situations les plus courantes où un script a été écrit
+pour utiliser \fBxz \-\-decompress \-\-stdout\fP (et possiblement quelques autres
+options courantes) pour décompresser des fichiers \fB.xz\fP. \fBlzmadec\fP est
+identique à \fBxzdec\fP, sauf que \fBlzmadec\fP prend en charge les fichiers
+\&\fB.lzma\fP au lieu des fichiers \fB.xz\fP.
+.PP
+Pour réduire la taille de l'exécutable, \fBxzdec\fP ne prend en charge ni le
+multithreading ni la localisation et ne lit pas les options des variables
+d'environnement \fBXZ_DEFAULTS\fP et \fBXZ_OPT\fP. \fBxzdec\fP ne gère pas
+l'affichage d'information sur la progression du traitement : envoyer
+\fBSIGINFO\fP à \fBxzdec\fP ne fait rien, mais envoyer \fBSIGUSR1\fP termine le
+processus au lieu d'afficher de l'information sur la progression.
+.SH OPTIONS
+.TP
+\fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
+Ignoré pour la compatibilité avec \fBxz\fP(1), \fBxzdec\fP ne gère que la
+décompression.
+.TP
+\fB\-k\fP, \fB\-\-keep\fP
+Ignoré pour la compatibilité avec \fBxz\fP(1), \fBxzdec\fP ne crée ni ne supprime
+jamais aucun fichier.
+.TP
+\fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
+Ignoré pour la compatibilité avec \fBxz\fP(1), \fBxzdec\fP écrit toujours les
+données décompressées sur la sortie standard.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Spécifier cela une fois ne fait rien, car \fBxzdec\fP n'affiche jamais aucun
+avertissement ou notification. Spécifier cela deux fois pour supprimer les
+erreurs.
+.TP
+\fB\-Q\fP, \fB\-\-no\-warn\fP
+Ignoré pour la compatibilité avec \fBxz\fP(1), \fBxzdec\fP n'utilise jamais le
+satut de sortie 2.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afficher un message d'aide et quitter.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afficher le numéro de version de \fBxzdec\fP et liblzma.
+.SH "STATUT DE SORTIE"
+.TP
+\fB0\fP
+Tout s'est bien passé.
+.TP
+\fB1\fP
+Une erreur est survenue.
+.PP
+A la différence de \fBxz\fP(1),\fBxzdec\fP n'a pas de messages d'avertissement, et
+donc le statut de sortie 2 n'est pas utilisé par \fBxzdec\fP.
+.SH NOTES
+Utilisez \fBxz\fP(1) au lieu de \fBxzdec\fP ou \fBlzmadec\fP pour un usage normal de
+tous les jours. \fBxzdec\fP ou \fBlzmadec\fP ne sont utiles que pour les
+situations où il est important d'avoir un plus petit décompresseur que le
+\fBxz\fP(1) complet.
+.PP
+\fBxzdec\fP et \fBlzmadec\fP ne sont en fait pas vraiment si petits. La taille
+peut être encore réduite en abandonnant des fonctionnalités de liblzma au
+moment de la compilation, mais cela ne devrait pas être fait pour des
+exécutables distribués sur des systèmes d'exploitation classique non
+embarqués. Si vous avez besoin d'un décompresseur vraiment petit, pensez à
+utiliser XZ Embedded.
+.SH "VOIR AUSSI"
+\fBxz\fP(1)
+.PP
+XZ Embedded: <https://xz.tukaani.org/xz\-embedded/>
diff --git a/po4a/man/fr/xzless.1 b/po4a/man/fr/xzless.1
new file mode 100644
index 00000000..8ba93070
--- /dev/null
+++ b/po4a/man/fr/xzless.1
@@ -0,0 +1,49 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Andrew Dudman
+.\" Lasse Collin
+.\"
+.\" french translation of XZ Utils man
+.\" Copyright (C) 2021 Debian French l10n team <debian-l10n-french@lists.debian.org>
+.\" Translator
+.\" bubu <bubub@no-log.org>, 2021.
+.\"
+.\" (Note that this file is not based on gzip's zless.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZLESS 1 2024\-02\-12 Tukaani "Utilitaires XZ"
+.SH NOM
+xzless, lzless \- Voir le contenu des fichiers (texte) compressés xz ou lzma
+.SH SYNOPSIS
+\fBxzless\fP [\fIfichier\fP...]
+.br
+\fBlzless\fP [\fIfichier\fP...]
+.SH DESCRIPTION
+\fBxzless\fP is a filter that displays text from compressed files to a
+terminal. Files supported by \fBxz\fP(1) are decompressed; other files are
+assumed to be in uncompressed form already. If no \fIfiles\fP are given,
+\fBxzless\fP reads from standard input.
+.PP
+\fBxzless\fP utilise \fBless\fP(1) pour afficher sa sortie. Contrairement à
+\fBxzmore\fP, son choix d'afficheur ne peut pas être modifié en indiquant une
+variable d'environnement. Les commandes sont basées sur \fBmore\fP(1) et
+\fBvi\fP(1) et permettent des déplacements en avant et en arrière et des
+recherches. Voir le manuel de \fBless\fP(1) pour plus d'information.
+.PP
+La commande nommée \fBlzless\fP est fournie pour la rétrocompatibilité avec les
+utilitaires LZMA.
+.SH ENVIRONNEMENT
+.TP
+\fBLESSMETACHARS\fP
+Une liste de caractères spéciaux pour l'interpréteur. Définis par \fBxzless\fP
+à moins qu'ils ne l'aient déjà été dans l'environnement.
+.TP
+\fBLESSOPEN\fP
+Définir en ligne de commande le décompresseur \fBxz\fP(1) à invoquer pour
+préparer les fichiers en entrée pour \fBless\fP(1).
+.SH "VOIR AUSSI"
+\fBless\fP(1), \fBxz\fP(1), \fBxzmore\fP(1), \fBzless\fP(1)
diff --git a/po4a/man/ko/lzmainfo.1 b/po4a/man/ko/lzmainfo.1
new file mode 100644
index 00000000..718ad0a7
--- /dev/null
+++ b/po4a/man/ko/lzmainfo.1
@@ -0,0 +1,38 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Author: Lasse Collin
+.\"
+.\" Korean translation for the xz-man
+.\" Seong-ho Cho <darkcircle.0426@gmail.com>, 2023, 2024.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH LZMAINFO 1 2013\-06\-30 Tukaani "XZ 유틸리티"
+.SH ì´ë¦„
+lzmainfo \- .lzma íŒŒì¼ í—¤ë”ì— ë“¤ì–´ìžˆëŠ” 정보를 ë³´ì—¬ì¤ë‹ˆë‹¤
+.SH 요약
+\fBlzmainfo\fP [\fB\-\-help\fP] [\fB\-\-version\fP] [\fI<파ì¼>...\fP]
+.SH 설명
+\fBlzmainfo\fP 는 \fB.lzma\fP íŒŒì¼ í—¤ë”ì— ë“¤ì–´ìžˆëŠ” 정보를 ë³´ì—¬ì¤ë‹ˆë‹¤. 지정 \fI<파ì¼>\fPì—ì„œ 13ë°”ì´íŠ¸ë¥¼
+ìš°ì„  ì½ì–´ í—¤ë”를 디코딩한 후, ê°€ë… í˜•ì‹ìœ¼ë¡œ 표준 ì¶œë ¥ì— ë³´ì—¬ì¤ë‹ˆë‹¤. \fI<파ì¼>\fPì„ ì§€ì •í•˜ì§€ 않거나
+\fI<파ì¼>\fP ê°’ì´ \fI\-\fP ì´ë©´ 표준 ìž…ë ¥ì„ ì½ìŠµë‹ˆë‹¤.
+.PP
+보통 대부분 관심있는 정보는 압축 í•´ì œ 용량과 딕서너리 í¬ê¸°ìž…니다. 압축 í•´ì œ ìš©ëŸ‰ì˜ ê²½ìš° 파ì¼ì´ 비스트림 \fB.lzma\fP í˜•ì‹ ê³„ì—´ì¸
+경우ì—만 나타납니다. íŒŒì¼ ì••ì¶• í•´ì œ í•„ìš” 메모리 ìš©ëŸ‰ì€ ìˆ˜ì‹­ 킬로바ì´íŠ¸ì— 딕셔너리 í¬ê¸°ë¥¼ 합친 값입니다.
+.PP
+\fBlzmainfo\fP 는 LZMA 유틸리티 하위 í˜¸í™˜ì„±ì„ ëª©ì ìœ¼ë¡œ XZ ìœ í‹¸ë¦¬í‹°ì— ê¸°ë³¸ìœ¼ë¡œ 들어있습니다.
+.SH "종료 ìƒíƒœ"
+.TP
+\fB0\fP
+모든 ìƒíƒœ 양호.
+.TP
+\fB1\fP
+오류 ë°œìƒ.
+.SH 버그
+\fBlzmainfo\fP í”„ë¡œê·¸ëž¨ì€ \fBMiB\fP (2^20 ë°”ì´íŠ¸) 용량 단위ì¸ë° (실제로) \fBMB\fP를 사용합니다. LZMA 유틸리티
+출력 호환 유지가 목ì ìž…니다.
+.SH "추가 참조"
+\fBxz\fP(1)
diff --git a/po4a/man/ko/xz.1 b/po4a/man/ko/xz.1
new file mode 100644
index 00000000..b4c02d16
--- /dev/null
+++ b/po4a/man/ko/xz.1
@@ -0,0 +1,1527 @@
+'\" t
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Lasse Collin
+.\" Jia Tan
+.\"
+.\" Korean translation for the xz-man
+.\" Seong-ho Cho <darkcircle.0426@gmail.com>, 2023, 2024.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZ 1 2024\-02\-25 Tukaani "XZ 유틸리티"
+.
+.SH ì´ë¦„
+xz, unxz, xzcat, lzma, unlzma, lzcat \- .xz 파ì¼ê³¼ .lzma 파ì¼ì„ 압축 ë˜ëŠ” 압축 해제합니다
+.
+.SH 요약
+\fBxz\fP [\fI<옵션>...\fP] [\fI<파ì¼>...\fP]
+.
+.SH "명령 별칭"
+\fBunxz\fP ëª…ë ¹ì€ \fBxz \-\-decompress\fP 명령과 ë™ì¼í•©ë‹ˆë‹¤.
+.br
+\fBxzcat\fP ëª…ë ¹ì€ \fBxz \-\-decompress \-\-stdout\fP 명령과 ë™ì¼í•©ë‹ˆë‹¤.
+.br
+\fBlzma\fP ëª…ë ¹ì€ \fBxz \-\-format=lzma\fP 명령과 ë™ì¼í•©ë‹ˆë‹¤.
+.br
+\fBunlzma\fP ëª…ë ¹ì€ \fBxz \-\-format=lzma \-\-decompress\fP 명령과 ë™ì¼í•©ë‹ˆë‹¤.
+.br
+\fBlzcat\fP ëª…ë ¹ì€ \fBxz \-\-format=lzma \-\-decompress \-\-stdout\fP 명령과 ë™ì¼í•©ë‹ˆë‹¤.
+.PP
+íŒŒì¼ ì••ì¶•ì„ í•´ì œí•´ì•¼ 하는 ì…¸ 스í¬ë¦½íŠ¸ë¥¼ 작성할 ë•Œ, \fBunxz\fP 와 \fBxzcat\fP ì´ë¦„ 대신 \fBxz\fP 명령과 ì ì ˆí•œ ì¸ìž
+ê°’(\fBxz \-d\fP ë˜ëŠ” \fBxz \-dc\fP)ì˜ ì‚¬ìš©ì„ ì¶”ì²œë“œë¦½ë‹ˆë‹¤.
+.
+.SH 설명
+\fBxz\fP는 \fBgzip\fP(1) ê³¼ \fBbzip2\fP(1) ê³¼ 비슷한 명령행 ë¬¸ë²•ì„ ì§€ë‹Œ 범용 ë°ì´í„° 압축 ë„구입니다. ìžì²´ 파ì¼
+형ì‹ì€ \fB.xz\fP 형ì‹ì´ë‚˜, LZMA 유틸리티ì—ì„œ 사용하는 예전 \fB.lzma\fP 형ì‹ê³¼ í˜•ì‹ í—¤ë”ê°€ 없는 RAW 압축 스트림ë„
+지ì›í•©ë‹ˆë‹¤. 게다가, \fBlzip\fPì—ì„œ 활용하는 \fB.lz\fP í˜•ì‹ ì••ì¶• í•´ì œë„ ì§€ì›í•©ë‹ˆë‹¤.
+.PP
+ê° \fI파ì¼\fP ì— ëŒ€í•œ \fBxz\fP 압축 ë˜ëŠ” 압축 해제는 ì„ íƒ ë™ìž‘ ëª¨ë“œì— ë”°ë¦…ë‹ˆë‹¤. \fI<파ì¼>\fP ê°’ì´ ì£¼ì–´ì¡Œê±°ë‚˜
+\fI<파ì¼>\fP ê°’ì´ \fB\-\fPì´ë©´, \fBxz\fP 명령ì—ì„œ 표준 ìž…ë ¥ì„ ì½ê³  처리한 ë°ì´í„°ë¥¼ 표준 ì¶œë ¥ì— ê¸°ë¡í•©ë‹ˆë‹¤.
+\fBxz\fP ì—서는 터미ë„ì—ì„œ 활용할 경우 압축 ë°ì´í„°ë¥¼ 표준 압축으로 기ë¡í•˜ëŠ” ë™ìž‘ì„ ê±°ì ˆ(오류를 출력하고 \fI<파ì¼>\fPì„
+건너뜀)합니다. ì´ì™€ 비슷하게, \fBxz\fP 유틸리티를 터미ë„ì—ì„œ 실행하면 표준 ìž…ë ¥ì˜ ì••ì¶• ë°ì´í„° ì½ê¸°ë¥¼ 거절합니다.
+.PP
+\fB\-\-stdout\fP ì„ ì§€ì •í•˜ì§€ 않는 í•œ, \fB\-\fPê°€ ì•„ë‹Œ \fI<파ì¼>\fPì„ ì›ë³¸ \fI<파ì¼>\fP ì´ë¦„ì—ì„œ
+가져온 새 íŒŒì¼ ì´ë¦„으로 기ë¡í•©ë‹ˆë‹¤:
+.IP \(bu 3
+압축할 ë•Œ, ëŒ€ìƒ íŒŒì¼ í˜•ì‹ì˜ 접미사(\fB.xz\fP or \fB.lzma\fP) 는 ì›ë³¸ íŒŒì¼ ì´ë¦„ ë’¤ì— ë¶™ì–´ ëŒ€ìƒ íŒŒì¼ì´ë¦„ì´ ë©ë‹ˆë‹¤.
+.IP \(bu 3
+압축 해제할 ë•Œ, \fB.xz\fP, \fB.lzma\fP, \fB.lz\fP 접미사를 íŒŒì¼ ì´ë¦„ì—ì„œ 제거하고 ëŒ€ìƒ íŒŒì¼ ì´ë¦„ì„ ì•Œì•„ëƒ…ë‹ˆë‹¤.
+\fBxz\fPì—서는 \fB.txz\fP, \fB.tlz\fP ì ‘ë¯¸ì‚¬ë„ ì¸ì‹í•˜ë©°, \fB.tar\fP 접미사로 치환합니다.
+.PP
+ëŒ€ìƒ íŒŒì¼ì´ ì´ë¯¸ 있으면, 오류를 나타내고 \fI<파ì¼>\fPì„ ê±´ë„ˆëœë‹ˆë‹¤.
+.PP
+표준 출력으로 기ë¡í•˜ê¸° ì „ì—는, \fBxz\fP는 경고를 나타내며, ë‹¤ìŒ ì¡°ê±´ì— ë§Œì¡±í•  경우 \fI<파ì¼>\fPì„ ê±´ë„ˆëœë‹ˆë‹¤:
+.IP \(bu 3
+\fI<파ì¼>\fPì´ ì¼ë°˜ 파ì¼ì´ ì•„ë‹ ë•Œ. 심볼릭 ë§í¬ëŠ” ë”°ë¼ê°€ì§€ 않기ì—, ì¼ë°˜ 파ì¼ë¡œ 간주하지 않습니다.
+.IP \(bu 3
+\fI<파ì¼>\fPì´ í•˜ë‚˜ ì´ìƒì˜ 하드 ë§í¬ì¼ ë–„.
+.IP \(bu 3
+\fI<파ì¼>\fPì— setuid, setgid, ëˆì ì´ 비트 ì§‘í•©ì´ ë¶™ì–´ìžˆì„ ë–„.
+.IP \(bu 3
+ë™ìž‘ 모드를 압축으로 설정하고, \fI<파ì¼>\fPì€ ëŒ€ìƒ íŒŒì¼ í˜•ì‹ì˜ 접미사를 ì´ë¯¸ ë¶™ì˜€ì„ ë•Œ(\fB.xz\fP 형ì‹ìœ¼ë¡œ 압축하면
+\&\fB.xz\fP ë˜ëŠ” \fB.txz\fP, \fB.lzma\fP 형ì‹ìœ¼ë¡œ 압축하면 \fB.lzma\fP ë˜ëŠ” \fB.tlz\fP).
+.IP \(bu 3
+ë™ìž‘ 모드를 압축 해제로 설정하고, \fI<파ì¼>\fPì— ì§€ì› íŒŒì¼ í˜•ì‹ ì ‘ë¯¸ì‚¬(\fB.xz\fP, \fB.txz\fP, \fB.lzma\fP,
+\&\fB.tlz\fP, \fB.lz\fP)를 붙ì´ì§€ ì•Šì•˜ì„ ë•Œ.
+.PP
+\fI<파ì¼>\fP ì˜ ì••ì¶• ë˜ëŠ” 압축 해제를 성공하고 나면, \fBxz\fP는 소유ìž, 소유그룹, 권한, ì ‘ê·¼ ì‹œê°, 수정 ì‹œê°
+정보를 ì›ë³¸ \fI<파ì¼>\fPì—ì„œ ëŒ€ìƒ íŒŒì¼ë¡œ 그대로 복사합니다. 그룹 ì •ë³´ ë³µì‚¬ì— ì‹¤íŒ¨í•˜ë©´, ê¶Œí•œì„ ìˆ˜ì •í•˜ì—¬ ì›ë³¸
+\fI<파ì¼>\fPì— ì ‘ê·¼ ê¶Œí•œì´ ì—†ëŠ” 사용ìžê°€ ëŒ€ìƒ íŒŒì¼ë¡œ 접근하지 못하게 합니다. \fBxz\fP는 ì•„ì§ ì ‘ê·¼ 제어 목ë¡ì´ë‚˜
+확장 ì†ì„± ë“±ì˜ ê¸°íƒ€ 메타ë°ì´í„°ë¥¼ 복사하는 ê¸°ëŠ¥ì€ ì§€ì›í•˜ì§€ 않습니다.
+.PP
+ëŒ€ìƒ íŒŒì¼ì„ 온전히 ë‹«ê³  나면, \fB\-\-keep\fP ì˜µì…˜ì„ ì§€ì›í•˜ì§€ ì•Šì•˜ì„ ê²½ìš° ì›ë³¸ \fI<파ì¼>\fPì„ ì œê±°í•©ë‹ˆë‹¤. ì›ë³¸
+\fI<파ì¼>\fPì€ ì¶œë ¥ì„ í‘œì¤€ 출력으로 기ë¡í–ˆê±°ë‚˜ 오류가 ë°œìƒí–ˆì„ 경우 제거하지 않습니다.
+.PP
+\fBxz\fP í”„ë¡œì„¸ìŠ¤ì— \fBSIGINFO\fP ì‹œê·¸ë„ ë˜ëŠ” \fBSIGUSR1\fP 시그ë„ì„ ë³´ë‚´ë©´ 표준 출력으로 진행 정보를 출력합니다. 표준
+오류가 터미ë„ì¼ ê²½ìš°ì¼ ê²½ìš°ì—만 제한하며 \fB\-\-verbose\fP ì˜µì…˜ì„ ì§€ì •í•˜ë©´ 진행 í‘œì‹œì¤„ì„ ìžë™ìœ¼ë¡œ 나타냅니다.
+.
+.SS "메모리 사용"
+\fBxz\fP 메모리 ì‚¬ìš©ì€ ìˆ˜ë°± 킬로바ì´íŠ¸ë¡œ 시작하여 수 기가바ì´íŠ¸ê¹Œì§€ 압축 ì„¤ì •ì— ë”°ë¼ ë‹¤ë¦…ë‹ˆë‹¤. 압축 í•´ì œ í”„ë¡œê·¸ëž¨ì´ í•„ìš”ë¡œ 하는
+메모리 ê³µê°„ì„ ê²°ì •í•˜ëŠ” íŒŒì¼ ì••ì¶•ì‹œì— ì„¤ì • ê°’ì„ í™œìš©í•©ë‹ˆë‹¤. 보통 압축 í•´ì œ í”„ë¡œê·¸ëž¨ì€ íŒŒì¼ì„ 만들 ë•Œ, 압축 프로그램 메모리 사용량ì˜
+5% ì—ì„œ 20% ì •ë„ í•„ìš”í•©ë‹ˆë‹¤. 예를 들면, \fBxz \-9\fPë¡œ 압축한 íŒŒì¼ ì••ì¶• 해제시 현재 65MiB 메모리 ìš©ëŸ‰ì´ í•„ìš”í•©ë‹ˆë‹¤.
+여전하게ë„, 압축 해제시 수 기가 ë°”ì´íŠ¸ì˜ 메모리가 필요한 \fB.xz\fP 파ì¼ì—ë„ ê°€ëŠ¥í•œ ì´ì•¼ê¸°ìž…니다.
+.PP
+특히 ì´ì „ 시스템 사용ìžì˜ 경우 메모리 ì‚¬ìš©ëŸ‰ì´ ì—„ì²­ë‚˜ê²Œ 늘어나는 ì ì— 짜ì¦ì´ ë‚  수 있습니다. ì´ëŸ° 불편한 ìƒí™©ì„ 피하기 위해,
+\fBxz\fPì— ê¸°ë³¸ì ìœ¼ë¡œ 비활성 ìƒíƒœì¸ 내장 메모리 사용 제한 ê¸°ëŠ¥ì„ ë„£ì—ˆìŠµë‹ˆë‹¤. ì¼ë¶€ ìš´ì˜ì²´ì œì—ì„œ 처리 중 메모리 ì‚¬ìš©ì„ ì œí•œí•˜ëŠ”
+ìˆ˜ë‹¨ì„ ì œê³µí•˜ê¸´ 하지만, ì—¬ê¸°ì— ì˜ì§€í•˜ê¸°ì—는 충분히 유연하지 않습니다(예를 들면, \fBulimit\fP(1)ì„ ì‚¬ìš©í•˜ë©´ ê°€ìƒ ë©”ëª¨ë¦¬ë¥¼
+제한하여 \fBmmap\fP(2)ì„ ë¨¹í†µìœ¼ë¡œ 만듭니다).
+.PP
+메모리 사용 제한 ê¸°ëŠ¥ì€ \fB\-\-memlimit=\fP\fI<제한용량>\fP 명령행 옵션으로 사용할 수 있습니다. 종종
+\fBXZ_DEFAULTS=\-\-memlimit=150MiB\fP와 ê°™ì´ \fBXZ_DEFAULTS\fP 환경 변수를 설정하여 제한 ê¸°ëŠ¥ì„ ì¼œëŠ”ê²Œ ë”
+편합니다. \fB\-\-memlimit\-compress=\fP\fI<제한용량>\fP 옵션과
+\fB\-\-memlimit\-decompress=\fP\fI<제한용량>\fP ì˜µì…˜ì„ í™œìš©í•˜ì—¬ 압축 ë° ì••ì¶• 해제시 별ë„ë¡œ 한계 ê°’ì„
+설정할 수 있습니다. ì´ ë‘ ê°€ì§€ ì˜µì…˜ì˜ \fBXZ_DEFAULTS\fP 환경 변수 ë°–ì—ì„œì˜ ì‚¬ìš©ì€, \fBxz\fP를 ë‹¨ì¼ ì‹¤í–‰í•  ë•Œ 압축 ë°
+압축 í•´ì œ ë™ìž‘ì„ ë™ì‹œì— 수행하지 않으며, ì•žì„œ 언급한 ë‘가지 ì˜µì…˜ì„ ëª…ë ¹í–‰ì— ìž…ë ¥í•˜ê¸°ì—는
+\fB\-\-memlimit=\fP\fI<제한용량>\fP(ë˜ëŠ” \fB\-M\fP \fI<제한용량>\fP)ì´ ë” ì§§ê¸° ë•Œë¬¸ì— ë³„ë¡œ 쓸모가
+없습니다.
+.PP
+압축 해제시 메모리 사용 제한 지정 한계를 초과하면, \fBxz\fP 유틸리티ì—ì„œ 오류를 나타내며 íŒŒì¼ ì••ì¶• 해제는 실패합니다. 압축ì„
+실행할 ë•Œ 사용 제한 지정 한계를 넘어서면 \fBxz\fPì—서는 설정 ê°’ì„ ì¤„ì—¬ì„œ 어쨌든 한계를 넘지 못하게
+합니다(\fB\-\-format=raw\fP 옵션 ë˜ëŠ” \fB\-\-no\-adjust\fP 옵션 사용시 제외). 설정 한계 ê°’ì´ ì—„ì²­ 작지 ì•Šì€ ì´ìƒ ì´
+ë°©ì‹ëŒ€ë¡œ 처리하면 어쨌든 실패하지 않습니다. 설정 ê°’ì¡°ì •ì€ ì••ì¶• 래벨 사전 설정과 ì¼ì¹˜í•˜ì§€ ì•Šì„ ë•Œ 단계ì ìœ¼ë¡œ 진행하는ë°, ì´ë¥¼í…Œë©´,
+\fBxz \-9\fP 명령 ìˆ˜í–‰ì— í•„ìš”í•œ 양보다 한계 ê°’ì´ ì•½ê°„ 작으면, 설정 ê°’ì„ \fBxz \-8\fPì— ëª»ë¯¸ì¹˜ê²Œ 약간 줄여서 진행합니다.
+.
+.SS ".xz íŒŒì¼ ê²°í•© ë° íŒ¨ë”©"
+\&\fB.xz\fP 파ì¼ì„ 있는 그대로 í•©ì¹  수 있습니다. \fBxz\fP는 \fB.xz\fP 파ì¼ì„ ë‹¨ë… íŒŒì¼ì¼ ë•Œ 처럼 압축해제합니다.
+.PP
+ê²°í•© 부분과 마지막 부분 ë’¤ì— íŒ¨ë”©ì„ ì¶”ê°€í•  수 있습니다. íŒ¨ë”©ì€ ë„ ë°”ì´íŠ¸ë¡œ 구성해야 하며 패딩 길ì´ëŠ” 4ë°”ì´íŠ¸ë¡œ 구성해야 합니다.
+512 ë°”ì´íŠ¸ 블ë¡ìœ¼ë¡œ íŒŒì¼ í¬ê¸°ë¥¼ ì´ë£¨ëŠ” ë§¤ì²´ì— \fB.xz\fP 파ì¼ì„ ì €ìž¥í–ˆì„ ê²½ìš°ì— ìš”ê¸´í•  수 있습니다.
+.PP
+\&\fB.lzma\fP íŒŒì¼ ë˜ëŠ” ì›ì‹œ ìŠ¤íŠ¸ë¦¼ì˜ ê²½ìš° ê²°í•©ê³¼ íŒ¨ë”©ì„ í—ˆìš©í•˜ì§€ 않습니다.
+.
+.SH 옵션
+.
+.SS "정수 ì ‘ë‘사와 ë³„ë„ ê°’"
+정수 ì¸ìžê°’ì´ í•„ìš”í•œ 대부분 위치ì—서는, í° ì •ìˆ˜ê°’ì„ ë‚˜íƒ€ë‚´ê¸° 쉽게 하ë„ë¡ ì¶”ê°€ 접미사를 지ì›í•©ë‹ˆë‹¤. 정수와 접미사 사ì´ì— ì–´ë–¤ 공백ì´
+있으면 안ë©ë‹ˆë‹¤.
+.TP
+\fBKiB\fP
+1,024 (2^10) 배수 정수값. \fBKi\fP, \fBk\fP, \fBkB\fP, \fBK\fP, \fBKB\fP 단위를 \fBKiB\fP ë™ì˜ì–´ë¡œ 받아들입니다.
+.TP
+\fBMiB\fP
+1,048,576 (2^20) 배수 정수값. \fBMi\fP, \fBm\fP, \fBM\fP, \fBMB\fP 단위를 \fBMiB\fP ë™ì˜ì–´ë¡œ 받아들입니다.
+.TP
+\fBGiB\fP
+1,073,741,824 (2^30) 배수 정수값. \fBGi\fP, \fBg\fP, \fBG\fP, \fBGB\fP 단위를 \fBGiB\fP ë™ì˜ì–´ë¡œ
+받아들입니다.
+.PP
+특수 ê°’ \fBmax\fP는 옵션ì—ì„œ 지ì›í•˜ëŠ” 정수 최대 ê°’ì„ ë‚˜íƒ€ë‚¼ ë•Œ 사용할 수 있습니다.
+.
+.SS "ë™ìž‘ 모드"
+여러 ë™ìž‘ 모드를 보여드리겠습니다만, ë§ˆì§€ë§‰ì— ì£¼ì–´ì§„ ë™ìž‘ 모드로 ë™ìž‘합니다.
+.TP
+\fB\-z\fP, \fB\-\-compress\fP
+압축합니다. ì–´ë–¤ ë™ìž‘ 모드 ì˜µì…˜ë„ ì§€ì •í•˜ì§€ ì•Šê³  다른 ë™ìž‘ 모드를 ëª…ë ¹í–‰ì— ë”°ë¡œ 지정하지 않았다면 ì´ ë™ìž‘ 모드는 기본입니다(예:
+\fBunxz\fP 는 \fB\-\-decompress\fP를 암시).
+.TP
+\fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
+ì••ì¶•ì„ í•´ì œí•©ë‹ˆë‹¤.
+.TP
+\fB\-t\fP, \fB\-\-test\fP
+압축 \fI<파ì¼>\fPì˜ ë¬´ê²°ì„±ì„ ì‹œí—˜í•´ë´…ë‹ˆë‹¤. ì´ ì˜µì…˜ì€ ì••ì¶• í•´ì œ ë°ì´í„°ë¥¼ 표준 출력으로 기ë¡í•˜ëŠ” 대신 버린다는 ì ì„
+제외하고 \fB\-\-decompress \-\-stdout\fPê³¼ ë™ì¼í•©ë‹ˆë‹¤. ì–´ë–¤ 파ì¼ë„ 만들거나 제거하지 않습니다.
+.TP
+\fB\-l\fP, \fB\-\-list\fP
+압축 \fI<파ì¼>\fP 정보를 출력합니다. 압축 í•´ì œ ì¶œë ¥ì„ ë‚´ë³´ë‚´ì§€ 않으며, ì–´ë–¤ 파ì¼ë„ 만들거나 제거하지 않습니다. ì´
+조회 모드ì—ì„œ, í”„ë¡œê·¸ëž¨ì€ í‘œì¤€ ìž…ë ¥ ë˜ëŠ” 기타 íƒìƒ‰ 불가능한 ì›ë³¸ì—ì„œ 압축 ë°ì´í„°ë¥¼ ì½ì„ 수 없습니다.
+.IP ""
+\fI<파ì¼>\fP 기본 정보를 íŒŒì¼ ë‹¹ í•œ 줄 씩 기본으로 ë³´ì—¬ì¤ë‹ˆë‹¤. ë” ìžì„¸í•œ 정보를 보려면 \fB\-\-verbose\fP
+ì˜µì…˜ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤. ë” ìžì„¸í•œ 정보는 \fB\-\-verbose\fP ì˜µì…˜ì„ ë‘번 사용하면 ë˜ì§€ë§Œ, 추가 정보를 ë” ë§Žì´ ê°€ì ¸ì˜¤ë©´ì„œ íƒìƒ‰
+횟수가 늘어나는 문제로 ì¸í•´ ëŠë ¤ì§ˆ 수 있습니다. 세부 출력 너비는 80 문ìžë¥¼ 초과하며, 예를 들어 ì¶œë ¥ì„ íŒŒì´í•‘한다면, 터미ë„ì´
+충분히 너비가 넓지 못할 경우 \fBless\ \-S\fP ëª…ë ¹ì´ íŽ¸ë¦¬í•  수 있습니다.
+.IP ""
+정확한 ì¶œë ¥ì€ \fBxz\fP 버전과 다른 ë¡œìº˜ì— ë”°ë¼ ë°”ë€” 수 있습니다. 기계 íŒë…ìš© 출력시 \fB\-\-robot \-\-list\fP 옵션ì„
+사용합니다.
+.
+.SS "ë™ìž‘ 수정ìž"
+.TP
+\fB\-k\fP, \fB\-\-keep\fP
+ìž…ë ¥ 파ì¼ì„ 삭제하지 않습니다.
+.IP ""
+\fBxz\fP 5.2.6 부터는 ì´ ì˜µì…˜ìœ¼ë¡œ ìž…ë ¥ 파ì¼ì´ ì¼ë°˜ 파ì¼ì„ 참조하는 심볼릭 ë§í¬ë‚˜ 하나 ì´ìƒì˜ 하드 ë§í¬, 내지는 setuid,
+setgid, ëˆì ì´ 비트 세트를 설정한 ìƒíƒœë¼ë„ 압축하거나 ì••ì¶•ì„ í’€ 수 있습니다. setuid, setgid, ëˆì ì´ 비트는 대ìƒ
+파ì¼ì— 복사하지 않습니다. ì´ì „ 버전ì—서는 \fB\-\-force\fP ì˜µì…˜ì„ ì§€ì •í–ˆì„ ë•Œë§Œ 가능했습니다.
+.TP
+\fB\-f\fP, \fB\-\-force\fP
+ì´ ì˜µì…˜ì€ ëª‡ê°€ì§€ ë™ìž‘ì— ì˜í–¥ì„ ì¤ë‹ˆë‹¤:
+.RS
+.IP \(bu 3
+ëŒ€ìƒ íŒŒì¼ì´ ì´ë¯¸ 있으면, 압축 ë˜ëŠ” 압축 í•´ì œ ì „ 삭제합니다.
+.IP \(bu 3
+ìž…ë ¥ 파ì¼ì´ ì¼ë°˜ 파ì¼ì„ 참조하는 심볼릭 ë§í¬ë‚˜ 하나 ì´ìƒì˜ 하드 ë§í¬, 내지는 setuid, setgid, ëˆì ì´ 비트 세트를 설정한
+ìƒíƒœë¼ë„ 압축 ë˜ëŠ” 압축 해제를 진행합니다. setuid, setgid, ëˆì ì´ 비트는 ëŒ€ìƒ íŒŒì¼ì— 복사하지 않습니다.
+.IP \(bu 3
+\fB\-\-decompress\fP \fB\-\-stdout\fP ì˜µì…˜ì„ ê°™ì´ ì‚¬ìš©í•˜ëŠ” ìƒí™©ì—ì„œ \fBxz\fP ëª…ë ¹ì´ ì›ë³¸ 파ì¼ì˜ 형ì‹ì„ 알아내지 못할 ë•Œ,
+ì›ë³¸ 파ì¼ì˜ ì‚¬ë³¸ì„ í‘œì¤€ 출력으로 보냅니다. ì´ë ‡ê²Œ 하면 \fBxzcat\fP \fB\-\-force\fP ëª…ë ¹ì„ \fBxz\fP 명령으로 압축하지 ì•Šì€
+파ì¼ì— 대해 \fBcat\fP(1) ì„ ì‚¬ìš©í•˜ëŠ” 것처럼 사용할 수 있습니다. 참고로 나중ì—, \fBxz\fPì—ì„œ \fBxz\fPë¡œ 하여금 여러 형ì‹ì˜
+파ì¼ì„ 표준 출력으로 복사하는 대신 ì••ì¶•ì„ í•´ì œí•˜ë„ë¡ ìƒˆ 압축 íŒŒì¼ í˜•ì‹ì„ 지ì›í•  예정입니다.
+\fB\-\-format=\fP\fI<형ì‹>\fP ì˜µì…˜ì€ \fBxz\fP ëª…ë ¹ì— ë‹¨ì¼ íŒŒì¼ í˜•ì‹ë§Œ 압축 해제하ë„ë¡ ì œí•œí•  ë•Œ 사용할 수
+있습니다.
+.RE
+.TP
+\fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
+íŒŒì¼ ëŒ€ì‹  표준 출력으로 압축 ë˜ëŠ” 압축 해제한 ë°ì´í„°ë¥¼ 기ë¡í•©ë‹ˆë‹¤. \fB\-\-keep\fP를 ìƒëžµí–ˆìŠµë‹ˆë‹¤.
+.TP
+\fB\-\-single\-stream\fP
+ì²˜ìŒ \fB.xz\fP 스트림만 압축 해제하며, ìŠ¤íŠ¸ë¦¼ì— ë’¤ë”°ë¼ì˜¤ëŠ” 나머지 ìž…ë ¥ ë°ì´í„°ëŠ” 조용히 무시합니다. 보통 뒤따ë¼ì˜¤ëŠ” 쓰레기 ê°’ì—
+대해서는 \fBxz\fP ì—ì„œ 오류를 나타냅니다.
+.IP ""
+\fBxz\fP는 \fB.lzma\fP íŒŒì¼ ë˜ëŠ” ì›ì‹œ 스트림ì—ì„œ 온 하나 ì´ìƒì˜ ìŠ¤íŠ¸ë¦¼ì— ëŒ€í•´ 압축 í•´ì œë™ìž‘ì„ ì·¨í•˜ì§€ 않지만, ì´ ì˜µì…˜ì„ ì‚¬ìš©í•˜ë©´
+\fBxz\fPì—ì„œ \fB.lzma\fP íŒŒì¼ ë˜ëŠ” ì›ì‹œ ìŠ¤íŠ¸ë¦¼ì„ ì²˜ë¦¬í•œ 다ìŒì— 뒤따ë¼ì˜¤ëŠ” ë°ì´í„°ë¥¼ 무시하ë„ë¡ í•©ë‹ˆë‹¤.
+.IP ""
+ì´ ì˜µì…˜ì€ ë™ìž‘ 모드가 \fB\-\-decompress\fP ë˜ëŠ” \fB\-\-test\fPê°€ 아니면 ë™ìž‘ì— ì•„ë¬´ëŸ° ì˜í–¥ì„ 주지 않습니다.
+.TP
+\fB\-\-no\-sparse\fP
+í¬ì†Œ 파ì¼ì„ 만들지 않습니다. 기본ì ìœ¼ë¡œ ì¼ë°˜ 파ì¼ë¡œ 압축 해제할 경우 \fBxz\fP ì—서는 압축 해제한 파ì¼ì— ì´ì§„ 0ê°’ì´ ê¸¸ê²Œ 늘어질
+경우 í¬ì†Œ ë°°ì—´ 파ì¼ì„ 만들려고 합니다. 표준 ì¶œë ¥ì˜ ë‚´ìš© 길ì´ë§Œí¼ ì—°ê²°í•œ ì¼ë°˜ 파ì¼ë¡œ 기ë¡í•  ë•Œë„ ë™ìž‘하며 í¬ì†Œ 파ì¼ì„ 만드는 ë™ì•ˆ
+아무런 문제가 나타나지 않게 ê°ê°ì˜ 추가 ì¡°ê±´ì„ ë§Œì¡±í•©ë‹ˆë‹¤. í¬ì†Œ 파ì¼ì„ 만들면 ë””ìŠ¤í¬ ê³µê°„ì„ ì ˆì•½í•  수 있으며 ë””ìŠ¤í¬ ìž…ì¶œë ¥ì„ ì¤„ì—¬
+압축 í•´ì œ ì†ë„를 올릴 수 있습니다.
+.TP
+\fB\-S\fP \fI.suf\fP, \fB\-\-suffix=\fP\fI.suf\fP
+압축할 ë•Œ, ëŒ€ìƒ íŒŒì¼ì˜ ì ‘ë‘사를 \fB.xz\fP ë˜ëŠ” \fB.lzma\fP 대신 \fI.suf\fPë¡œ 사용하십시오. 표준 출력으로 기ë¡í•˜ì§€ ì•Šê³ 
+ì›ë³¸ 파ì¼ì— \fI.suf\fP ì ‘ë‘사가 붙어있으면, 경고를 나타내고 해당 파ì¼ì„ 건너ëœë‹ˆë‹¤.
+.IP ""
+압축 해제할 ë•Œ, \fI.suf\fP 접미사로 파ì¼ì„ ì¸ì‹í•˜ê¸°ë„ 하고, \fB.xz\fP, \fB.txz\fP, \fB.lzma\fP, \fB.tlz\fP,
+\&\fB.lz\fP 접미사가 ë¶™ì€ íŒŒì¼ë„ ì¸ì‹í•©ë‹ˆë‹¤. ì›ë³¸ 파ì¼ì— \fI.suf\fP 접미사가 붙어있으면, 해당 접미사를 제거하여 ëŒ€ìƒ íŒŒì¼ ì´ë¦„ì„
+알아냅니다.
+.IP ""
+ì›ì‹œ 스트림 압축 ë° ì••ì¶• 해제시(\fB\-\-format=raw\fP) ì›ì‹œ ìŠ¤íŠ¸ë¦¼ì— ê¸°ë³¸ 접미사가 없기 때문ì—, 표준 출력으로 기ë¡í•˜ì§€ 않는
+한 접미사를 반드시 지정해야 합니다.
+.TP
+\fB\-\-files\fP[\fB=\fP\fI<파ì¼>\fP]
+\fI<파ì¼>\fPì—ì„œ 처리할 íŒŒì¼ ì´ë¦„ì„ ì½ìŠµë‹ˆë‹¤. \fI<파ì¼>\fPì„ ìƒëžµí•˜ë©´ íŒŒì¼ ì´ë¦„ì€ í‘œì¤€ ìž…ë ¥ì—ì„œ
+불러옵니다. íŒŒì¼ ì´ë¦„ì€ ê°œí–‰ 문ìžë¡œ ë나야 합니다. 대시 문ìž(\fB\-\fP)는 ì¼ë°˜ íŒŒì¼ ì´ë¦„으로 취급하며 표준 ìž…ë ¥ì„ ì˜ë¯¸í•˜ì§€
+않습니다. íŒŒì¼ ì´ë¦„ì„ ëª…ë ¹í–‰ ì¸ìžë¡œ 지정하면, \fI<파ì¼>\fPì—ì„œ íŒŒì¼ ì´ë¦„ì„ ì½ì–´ë“¤ì´ê¸° ì „ 해당 명령행 ì¸ìžë¥¼ 먼저
+처리합니다.
+.TP
+\fB\-\-files0\fP[\fB=\fP\fI<파ì¼>\fP]
+ê° íŒŒì¼ ì´ë¦„ì´ ë„ ë¬¸ìžë¡œ ë나야 한다는 ì ë§Œ 제외하면 \fB\-\-files\fP[\fB=\fP\fI<파ì¼>\fP] 옵션과 ë™ì¼í•©ë‹ˆë‹¤.
+.
+.SS "기본 íŒŒì¼ í˜•ì‹ ë° ì••ì¶• 옵션"
+.TP
+\fB\-F\fP \fIformat\fP, \fB\-\-format=\fP\fI<형ì‹>\fP
+압축 ë˜ëŠ” 압축해제 íŒŒì¼ \fI<형ì‹>\fPì„ ì§€ì •í•©ë‹ˆë‹¤:
+.RS
+.TP
+\fBauto\fP
+기본 값입니다. 압축할 ë•Œ, \fBauto\fP는 \fBxz\fPì˜ ê¸°ë³¸ ë™ìž‘ê³¼ ë™ì¼í•©ë‹ˆë‹¤. ì••ì¶•ì„ í•´ì œí•  ë•Œ, ìž…ë ¥ íŒŒì¼ í˜•ì‹ì„ ìžë™ìœ¼ë¡œ
+찾습니다. 참고로 ì›ì‹œ 스트림(\fB\-\-format=raw\fP)ì˜ ê²½ìš° ìžë™ìœ¼ë¡œ ì°¾ì„ ìˆ˜ 없습니다.
+.TP
+\fBxz\fP
+\&\fB.xz\fP íŒŒì¼ í˜•ì‹ìœ¼ë¡œ 압축하거나, 압축 해제시 \fB.xz\fP 파ì¼ë§Œ 받아들입니다.
+.TP
+\fBlzma\fP, \fBalone\fP
+ì´ì „ \fB.lzma\fP íŒŒì¼ í˜•ì‹ìœ¼ë¡œ 압축하거나, 압축 해제시 \fB.lzma\fP 파ì¼ë§Œ 받아들입니다. \fBalone\fP 대체 ëª…ë ¹ì€ LZMA
+유틸리티 하위 í˜¸í™˜ì„±ì„ ëª©ì ìœ¼ë¡œ 제공합니다.
+.TP
+\fBlzip\fP
+압축 해제시 \fB.lz\fP 파ì¼ë§Œ 받아들입니다. ì••ì¶•ì€ ì§€ì›í•˜ì§€ 않습니다.
+.IP ""
+\&\fB.lz\fP í˜•ì‹ ë²„ì „ 0ê³¼ 비확장 버전 1ì„ ì§€ì›í•©ë‹ˆë‹¤. 버전 0파ì¼ì€ \fBlzip\fP 1.3 ì´ì „ì—서만 만듭니다. ì¼ë°˜ì ì´ì§„ 않지만
+ì¼ë¶€ 파ì¼ì˜ 경우 ì´ í˜•ì‹ê³¼ ê´€ë ¨ëœ ì›ë³¸ 패키지로 보관한 파ì¼ì„ ì°¾ì„ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. ê°œì¸ì ìœ¼ë¡œ ì´ í˜•ì‹ìœ¼ë¡œ 압축한 ì˜¤ëž˜ëœ ê°œì¸ íŒŒì¼ì„
+가지고 ìžˆì„ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. í˜•ì‹ ë²„ì „ 0 압축 í•´ì œ 지ì›ì€ \fBlzip\fP 1.18ì—ì„œ 제거했습니다.
+.IP ""
+\fBlzip\fP 1.4 ì´ìƒì—서는 버전 1형ì‹ì˜ 파ì¼ì„ 만듭니다. í˜•ì‹ ë²„ì „ 1ë¡œì˜ ë™ê¸°í™” 제거 마커 í™•ìž¥ì€ \fBlzip\fP 1.6ì—
+추가했습니다. ì´ í™•ìž¥ì€ ê±°ì˜ ì“°ì§€ 않으며 \fBxz\fP ì—ì„œ ì¡°ì°¨ë„ ì§€ì›í•˜ì§€ 않습니다(ì†ìƒëœ ìž…ë ¥ 파ì¼ë¡œ 진단함).
+.TP
+\fBraw\fP
+ì›ì‹œ 스트림으로 압축하거나 ì••ì¶•ì„ í•´ì œí•©ë‹ˆë‹¤(í—¤ë” ì—†ìŒ). 고급 ì‚¬ìš©ìž ì „ìš©ìž…ë‹ˆë‹¤. ì›ì‹œ ìŠ¤íŠ¸ë¦¼ì„ ë””ì½”ë”©í•˜ë ¤ë©´,
+\fB\-\-format=raw\fP ì˜µì…˜ì„ ì‚¬ìš©í•˜ê³  분명하게 í•„í„° ì²´ì¸ì„ 지정하여 컨테ì´ë„ˆ í—¤ë”ì— í•„ìš”í•œ 정보를 저장하게 ë” í•´ì•¼í•©ë‹ˆë‹¤.
+.RE
+.TP
+\fB\-C\fP \fI<검사방ì‹>\fP, \fB\-\-check=\fP\fI<검사방ì‹>\fP
+무결성 검사 ë°©ì‹ì„ 지정합니다. 검사 ë°©ì‹ì€ \fB.xz\fP 파ì¼ì— 저장하며 압축 í•´ì œ ë°ì´í„°ë¥¼ 계산합니다. ì´ ì˜µì…˜ì€ \fB.xz\fP
+형ì‹ìœ¼ë¡œ 압축할 때만 íš¨ë ¥ì´ ìžˆìŠµë‹ˆë‹¤: \fB.lzma\fP 형ì‹ì€ 무결성 ê²ì‚¬ë¥¼ 지ì›í•˜ì§€ 않습니다. 무결성 검사는 \fB.xz\fP íŒŒì¼ ì••ì¶•ì„
+í’€ì—ˆì„ ë•Œì— ê²€ì‚¬í•©ë‹ˆë‹¤.
+.IP ""
+ì§€ì› \fI검사\fP 형ì‹:
+.RS
+.TP
+\fBnone\fP
+ì–´ë–¤ 경우ì—ë„ ë¬´ê²°ì„± 검사 ê³„ì‚°ì„ ìˆ˜í–‰í•˜ì§€ 않습니다. 보통 바람ì§í•˜ì§€ 못한 ìƒê°ìž…니다. ë°ì´í„° ë¬´ê²°ì„±ì„ ë‹¤ë¥¸ ë°©ì‹ìœ¼ë¡œë¼ë„ ê²€ì¦í•´ì•¼
+하는 ìƒí™©ì´ë©´ 쓸만할 수 있습니다.
+.TP
+\fBcrc32\fP
+IEEE\-802.3 (ì´ë”ë„·)ì˜ ë‹¤í•­ 연산으로 CRC32를 계산합니다.
+.TP
+\fBcrc64\fP
+ECMA\-182ì˜ ë‹¤í•­ì‹ ì—°ì‚°ìœ¼ë¡œ CRC64를 계산합니다. ì´ ë™ìž‘ì´ ê¸°ë³¸ ë™ìž‘ì´ê¸° ë•Œë¬¸ì— CRC32ê°€ 깨진 파ì¼ì„ ì°¾ì„ ë•Œë³´ë‹¤ëŠ” 좀
+ë‚®ì€ íŽ¸ì´ë©° ì†ë„ ì°¨ì´ë„ ê±°ì˜ ì—†ìŠµë‹ˆë‹¤.
+.TP
+\fBsha256\fP
+SHA\-256 해시를 계산합니다. CRC32와 CRC64 보다는 좀 ëŠë¦½ë‹ˆë‹¤.
+.RE
+.IP ""
+\&\fB.xz\fP í—¤ë” ë¬´ê²°ì„±ì€ í•­ìƒ CRC32ë¡œ ê²€ì¦í•˜ë¹ˆë‹¤. ì´ë¥¼ 바꾸거나 It is not possible to change or
+disable it.
+.TP
+\fB\-\-ignore\-check\fP
+압축 ë°ì´í„°ë¥¼ 압축해제할 경우 압축 ë°ì´í„°ì˜ 무결성 ê²€ì¦ì„ 진행하지 않습니다. \fB.xz\fP í—¤ë”ì˜ CRC32 ê°’ì€ ê·¸ëž˜ë„ ì—¬ì „ížˆ 보통
+ë°©ì‹ìœ¼ë¡œ ê²€ì¦í•©ë‹ˆë‹¤.
+.IP ""
+\fBì´ ì˜µì…˜ì´ ì •í™•ížˆ 무슨 ë™ìž‘ì„ í•˜ëŠ”ì§€ 알기 ì „ì—는 사용하지 마십시오.\fP ì´ ì˜µì…˜ì„ ì‚¬ìš©í•˜ëŠ” 타당한 ì´ìœ ë¡œ:
+.RS
+.IP \(bu 3
+깨진 .xz 파ì¼ì—ì„œ ë°ì´í„° 복구를 ì‹œë„합니다.
+.IP \(bu 3
+압축 í•´ì œ ì†ë„를 늘립니다. SHA\-256 ë˜ëŠ” 압축 파ì¼ì— 들어간 ê·¸ 무언가를 ì—„ì²­ 빨리 처리합니다. 다른 ë°©ì‹ìœ¼ë¡œ íŒŒì¼ ë¬´ê²°ì„±ì„
+ê²€ì¦í•´ì•¼ 하는 목ì ì´ 아니ë¼ë©´ ì´ ì˜µì…˜ì„ ì‚¬ìš©í•˜ì§€ 않는게 좋습니다.
+.RE
+.TP
+\fB\-0\fP ... \fB\-9\fP
+압축 사전 설정 ìˆ˜ì¤€ì„ ì„ íƒí•©ë‹ˆë‹¤. ê¸°ë³¸ê°’ì€ \fB\-6\fP입니다. 다중 ìˆ˜ì¤€ì„ ì§€ì •í•˜ë©´ 가장 마지막 수준 ì˜µì…˜ì„ ì ìš©í•©ë‹ˆë‹¤. 개별 í•„í„°
+ì²´ì¸ì„ ì´ë¯¸ 지정했다면, 압축 사전 설정 수준 ê°’ì„ ì„¤ì •í•  ë•Œ 개별 í•„í„° ì²´ì¸ì„ 정리합니다.
+.IP ""
+사전 설정간 ì°¨ì´ëŠ” \fBgzip\fP(1)ê³¼ \fBbzip2\fP(1)ì„ ì‚¬ìš©í•  때보다 ë” ë¹„ì¤‘ì„ ì°¨ì§€í•©ë‹ˆë‹¤. ì„ íƒí•œ 압축 ì„¤ì •ì€ ì••ì¶• 해제시
+필요한 메모리 ì‚¬ìš©ëŸ‰ì„ ì…œì •í•˜ë¯€ë¡œ 사전 설정 수준 ê°’ì„ ë„ˆë¬´ 높게 지정하면 RAM ìš©ëŸ‰ì´ ì ì€ ì˜¤ëž˜ëœ ì‹œìŠ¤í…œì—ì„œ íŒŒì¼ ì••ì¶• 해제시 실패할
+수 있습니다. 게다가, \fBgzip\fP(1) ê³¼ \fBbzip2\fP(1)ì—ì„œ 처럼 종종 \fB모든 ë™ìž‘ì— \-9를 몰래 활용하는건 바람ì§í•˜ì§€ 않습니다\fP.
+.RS
+.TP
+\fB\-0\fP ... \fB\-3\fP
+ë™ìž‘ì´ ë¹ ë¥¸ 사전 설정 부류입니다. \fB\-0\fPì€ ë•Œë¡œëŠ” \fBgzip \-9\fP 명령보다 ì••ì¶•ìœ¨ì´ í›¨ì”¬ ìš°ìˆ˜í•˜ë©´ì„œë„ ë” ë¹ ë¦…ë‹ˆë‹¤. ë” í°
+ê°’ì€ ë³´í†µ \fBbzip2\fP(1) 명령과 비êµí–ˆì„ ë–„ 압축 결과가 압축 ë°ì´í„°ì— ë”°ë¼ ë‹¬ë¼ì§€ë”ë¼ë„, 비êµí•  법한 ì†ë„ ë˜ëŠ” ë” ë‚˜ì€
+ì••ì¶•ìœ¨ì„ ë³´ìž…ë‹ˆë‹¤.
+.TP
+\fB\-4\fP ... \fB\-6\fP
+ì˜¤ëž˜ëœ ì‹œìŠ¤í…œì—ì„œ ì¡°ì°¨ë„ ì••ì¶• í•´ì œ í”„ë¡œê·¸ëž¨ì˜ ì ì ˆí•œ 메모리 ì‚¬ìš©ëŸ‰ì„ ë³´ì´ë©´ì„œ 양호하거나 최ì ì˜ ì••ì¶•ìœ¨ì„ ë³´ì—¬ì¤ë‹ˆë‹¤. \fB\-6\fP 옵션ì€
+압축 해제시 메모리 ì‚¬ìš©ëŸ‰ì´ 16MiB ë°–ì— ì•ˆë˜ê¸° ë•Œë¬¸ì— íŒŒì¼ì„ ë°°í¬í•  ë•Œ 최ì ì˜ ì„ íƒì¸ 기본 값입니다. (\fB\-5e\fP ë˜ëŠ”
+\fB\-6e\fPë„ ì—­ì‹œ 고려할 만합니다. \fB\-\-extreme\fPì„ ì°¸ê³ í•˜ì‹­ì‹œì˜¤.)
+.TP
+\fB\-7 ... \-9\fP
+\fB\-6\fPê³¼ 비슷하지만 압축 ë° ì••ì¶• 해제시 요구 메모리 ì‚¬ìš©ëŸ‰ì´ ë” ë†’ìŠµë‹ˆë‹¤. 압축 파ì¼ì´ ê°ê° 8MiB, 16MiB, 32MiB
+보다 í´ ê²½ìš°ì—만 쓸만한 옵션입니다.
+.RE
+.IP ""
+ë™ì¼í•œ 하드웨어ì—ì„œ, 압축 í•´ì œ ì†ë„는 압축한 ë°ì´í„°ì˜ 초당 ì •ì  ë°”ì´íŠ¸ 처리 ìˆ˜ì˜ ì–´ë¦¼ í‰ê· ìž…니다. 다시 ë§í•´, ì••ì¶•ìœ¨ì„ ë” ì˜¬ë¦¬ë©´,
+압축 í•´ì œ ì†ë„ë„ ì—­ì‹œ 올ë¼ê°‘니다. ì´ëŠ” 곧 초당 비압축 ë°ì´í„° 출력 ì–‘ì´ ë‹¬ë¼ì§ˆ 수 있단 뜻입니다.
+.IP ""
+ë‹¤ìŒ í‘œì— ì‚¬ì „ 설정 ê¸°ëŠ¥ì„ ì •ë¦¬í–ˆìŠµë‹ˆë‹¤:
+.RS
+.RS
+.PP
+.TS
+tab(;);
+c c c c c
+n n n n n.
+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
+.TE
+.RE
+.RE
+.IP ""
+컬럼 설명:
+.RS
+.IP \(bu 3
+DictSize는 LZMA2 딕셔너리 í¬ê¸°ìž…니다. 압축 í•´ì œ 파ì¼ì˜ í¬ê¸°ë³´ë‹¤ 딕셔너리ì—ì„œ 사용하는 낭비 메모리 용량입니다. 실제로
+필요하지 ì•Šì€ \fB\-7\fP ... \fB\-9\fP 사전 ì„¤ì •ê°’ì„ í”¼í•´ì•¼ 하는 ì ì ˆí•œ ì´ìœ ì´ê¸°ë„ 합니다. \fB\-6\fP ì´í•˜ì—서는 소모 메모리 ì–‘ì´
+충분히 ì ê±°ë‚˜ ë”°ë¡œ 신경쓸 필요가 없습니다.
+.IP \(bu 3
+CompCPU는 압축 ì†ë„ì— ì˜í–¥ì„ 주는 LZMA2 ì„¤ì •ì˜ ë‹¨ìˆœí™” 표기 값입니다. 딕셔너리 í¬ê¸°ëŠ” ì†ë„ì—ë„ ì˜í–¥ì„ 주기 때문ì—
+CompCPU는 \fB\-6\fP ... \fB\-9\fP 수준값과 ë™ì¼í•œë°, 고수준 ê°’ì€ ì—¬ì „ížˆ 조금 ë” ëŠë ¤ì§ˆ 수 있습니다. ëŠë ¤ì§€ëŠ” 만í¼
+ì••ì¶•ìœ¨ì€ ê°€ëŠ¥í•œ í•œ ë” ì¢‹ì•„ì§‘ë‹ˆë‹¤. \fB\-\-extreme\fPì„ ì°¸ê³ í•˜ì‹­ì‹œì˜¤.
+.IP \(bu 3
+CompMemì€ ë‹¨ì¼\-스레드 모드ì—ì„œ 필요한 압축 í”„ë¡œê·¸ëž¨ì˜ ë©”ëª¨ë¦¬ ì ìœ  용량입니다. \fBxz\fP ë²„ì „ì— ë”°ë¼ ë‹¤ë¥¼ 수 있습니다.
+.IP \(bu 3
+DecMemì€ ì••ì¶• í•´ì œ í”„ë¡œê·¸ëž¨ì˜ ë©”ëª¨ë¦¬ ì ìœ ìš©ëŸ‰ìž…니다. ì´ëŠ” 곧, 압축 í•´ì œ 프로그램ì—ì„œ 필요한 메모리 ì‚¬ìš©ëŸ‰ì„ ì••ì¶• 설정ì—ì„œ
+결정한다는 ì˜ë¯¸ê°€ 들어있습니다. 정확한 압축 í•´ì œ í”„ë¡œê·¸ëž¨ì˜ ë©”ëª¨ë¦¬ ì‚¬ìš©ëŸ‰ì€ LZMA2 딕셔너리 í¬ê¸° 보다는 조금 많지만 í…Œì´ë¸”ì˜ ê°’ì€
+MiB 용량으로 완전히 반올림한 값입니다.
+.RE
+.IP ""
+다중\-스레드 모드ì—ì„œ 필요한 메모리 ìš©ëŸ‰ì€ ë‹¨ì¼\-스레드 모드보단 약간 ë” ë§ŽìŠµë‹ˆë‹¤. \fB\-\-block\-size\fP ê¸°ë³¸ê°’ì— ë”°ë¼, ê°
+스레드ì—서는 3*3*딕셔녀리_í¬ê¸° + 압축시_메모리용량 ë˜ëŠ” 압축_해제시_메모리용량 ì •ë„ê°€ 필요합니다. 예를 들면, 스레드 ë„·ì— ì‚¬ì „
+설정 옵션 \fB\-6\fPì„ ì‚¬ìš©í•œë‹¤ë©´, 660\(en670 MiB 메모리 ìš©ëŸ‰ì´ í•„ìš”í•©ë‹ˆë‹¤.
+.TP
+\fB\-e\fP, \fB\-\-extreme\fP
+기대하는 만í¼ì˜ 좀 ë” ë‚˜ì€ ì••ì¶•ìœ¨ì„ í™•ë³´í•˜ë ¤ ì„ íƒí•œ 압축 사전 설정 ìˆ˜ì¤€ì˜ ëŠë¦° 변형 ì˜µì…˜ì„ ì‚¬ìš©í•˜ì§€ë§Œ, 재수 없는 ì™€ì¤‘ì— ê³¨ë¡œ 가는
+경우가 ìƒê¸°ê¸°ë„ 합니다. 압축 í•´ì œ í”„ë¡œê·¸ëž¨ì˜ ë©”ëª¨ë¦¬ 사용ì—는 ì˜í–¥ì„ 주지 않지만, 압축 í”„ë¡œê·¸ëž¨ì˜ ë©”ëª¨ë¦¬ ì‚¬ìš©ëŸ‰ì€ \fB\-0\fP
+\&... \fB\-3\fP 사전 설정 수준ì—ì„œ 약간 ë” ì˜¬ë¼ê°ˆ ë¿ìž…니다.
+.IP ""
+4MiB와 8MiB ë‘ ê°€ì§€ 딕셔너리 용량 ì„¤ì •ì´ ìžˆê¸° ë•Œë¬¸ì— \fB\-3e\fP 와 \fB\-5e\fP 사전 ì„¤ì •ì„ (CompCPU 수치를 낮춰서)
+ê°ê° \fB\-4e\fP 와 \fB\-6e\fP 보다 약간 ë” ë¹ ë¥´ê²Œ 설정할 수 있습니다. ì´ëŸ° ì‹ìœ¼ë¡œ ë‘ ì‚¬ì „ ì„¤ì •ì´ ë™ì¼í•˜ì§€ 않습니다.
+.RS
+.RS
+.PP
+.TS
+tab(;);
+c c c c c
+n n n n n.
+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
+.TE
+.RE
+.RE
+.IP ""
+예를 들면, 8MiB 딕셔너리를 활용하는 네가지 사전 ì„¤ì •ì´ ìžˆë‹¤ê³  í•  ë•Œ, 빠른 순으로 ì„¤ì •ì„ ë‚˜ì—´í•˜ìžë©´, \fB\-5\fP, \fB\-6\fP,
+\fB\-5e\fP, \fB\-6e\fP 입니다.
+.TP
+\fB\-\-fast\fP
+.PD 0
+.TP
+\fB\-\-best\fP
+.PD
+ì´ ì˜µì…˜ì€ \fB\-0\fP ê³¼ \fB\-9\fPì˜ ë³„ì¹­ìœ¼ë¡œ ê°ê° 오해할 수 있습니다. LZMA ìœ í‹¸ë¦¬í‹°ì˜ í•˜ìœ„ í˜¸í™˜ì„±ì„ ëª©ì ìœ¼ë¡œ 제공합니다. ì´
+옵션 ì‚¬ìš©ì€ í”¼í•˜ì‹­ì‹œì˜¤.
+.TP
+\fB\-\-block\-size=\fP\fI<í¬ê¸°>\fP
+\&\fB.xz\fP 형ì‹ìœ¼ë¡œ 압축할 ë•Œ, ìž…ë ¥ ë°ì´í„°ë¥¼ \fI<í¬ê¸°>\fP ë°”ì´íŠ¸ 블ë¡ìœ¼ë¡œ ìž…ë ¥ ë°ì´í„°ë¥¼ 쪼갭니다. ê°ê°ì˜ 블ë¡ì€
+다중\-스레드 ë°©ì‹ìœ¼ë¡œ 처리할 수 있고 ìž„ì˜ ì ‘ê·¼ 압축 í•´ì œ ê°€ëŠ¥ì„±ì„ ì œí•œí•  수 있게 개별ì ìœ¼ë¡œ 압축 처리합니다. ì´ ì˜µì…˜ì€ ë³´í†µ
+다중\-스레드 모드ì—ì„œ 기본 ë¸”ë¡ í¬ê¸°ë¥¼ 지정할 ë•Œ 사용하지만, 단ì¼\-스레드 모드ì—ì„œë„ ì‚¬ìš©í•  수 있습니다.
+.IP ""
+다중\-스레드 모드ì—서는 약 3ë°° ìš©ëŸ‰ì˜ \fI<í¬ê¸°>\fP ë°”ì´íŠ¸ë§Œí¼ ê° ìŠ¤ë ˆë“œ 별로 입출력 버í¼ë§ìš© ê³µê°„ì„ í• ë‹¹í•©ë‹ˆë‹¤. 기본
+\fI<í¬ê¸°>\fP는 LZMA2 딕셔너리 í¬ê¸° ë˜ëŠ” 1MiB 중 가장 í° ìª½ì˜ ì„¸ 배입니다. 보통 ì ì ˆí•œ 값으로 LZMA2
+딕셔너리 í¬ê¸° ë˜ëŠ” 최소한 1MiB ìš©ëŸ‰ì˜ 2\(en4배입니다. LZMA2 딕셔너리 í¬ê¸°ë³´ë‹¤ ìž‘ì€ \fI<í¬ê¸°>\fP는 램ì˜
+ì†Œëª¨ì  ì‚¬ìš© 공간으로 í• ë‹¹í•˜ëŠ”ë° LZMA2 딕셔너리 버í¼ë¥¼ 할당한 용량 í¬ê¸° 전체를 다 사용하지 않기 때문입니다. 다중\-스레드 모드ì—ì„œ
+ë¸”ë¡ í¬ê¸°ëŠ” ë¸”ë¡ í—¤ë”ì— ì €ìž¥í•˜ë©°, ì´ í¬ê¸° 정보는 다중\-스레드 압축 해제시 필요합니다.
+.IP ""
+단ì¼\-스레드 모드ì—서는 기본ì ìœ¼ë¡œ ë¸”ë¡ ìª¼ê°œê¸°ë¥¼ 하지 않습니다. ì´ ì˜µì…˜ì„ ì„¤ì •í•œë‹¤ê³  í•´ì„œ 메모리 ì‚¬ìš©ì— ì˜í–¥ì„ 주지는 않습니다.
+ë¸”ë¡ í—¤ë”ì— í¬ê¸° 정보를 저장하지 않기 ë•Œë¬¸ì— ë‹¨ì¼\-스레드 모드ì—ì„œ 만든 파ì¼ì€ 다중\-스레드 모드ì—ì„œ 만든 파ì¼ê³¼ ë™ì¼í•˜ì§€ 않습니다.
+í¬ê¸° ì •ë³´ì˜ ëˆ„ë½ì€ ë˜í•œ \fBxz\fPì—ì„œ 다중\-스레드 모드로 압축 해제를 진행할 수 ì—†ìŒì„ ì˜ë¯¸í•˜ê¸°ë„ 합니다.
+.TP
+\fB\-\-block\-list=\fP\fI<항목>\fP
+\&\fB.xz\fP 형ì‹ìœ¼ë¡œ 압축할 ë•Œ, 압축하지 ì•Šì€ ë°ì´í„°ë¡œ 부터 ì¼ì • 간격 ì´í›„ì— ìƒˆ ë¸”ë¡ ì²˜ë¦¬ë¥¼ 시작합니다.
+.IP ""
+\fI<항목>\fPì€ ì‰¼í‘œë¡œ 구분한 목ë¡ìœ¼ë¡œ 지정합니다. ê° í•­ëª©ì€ ì½œë¡  (\fB:\fP)으로 구분한 0부터 9ê¹Œì§€ì˜ ì¶”ê°€ í•„í„°
+ì²´ì¸ ë²ˆí˜¸ 값으로 ì´ë£¨ì–´ì ¸ 있으며, 압축하지 ì•Šì€ ë°ì´í„°ì˜ í¬ê¸° ê°’ì´ í•„ìš”í•©ë‹ˆë‹¤. í•­ëª©ì„ ìƒëžµí•˜ë©´(둘 ì´ìƒì˜ 쉼표 ì—°ì† í‘œê¸°) ì´ì „
+í•­ëª©ì˜ í¬ê¸°ì™€ 필터를 활용하겠다는 함축 ì˜ë¯¸ë¥¼ ë„£ì„ ìˆ˜ 있습니다.
+.IP ""
+ìž…ë ¥ 파ì¼ì´ \fI<항목>\fP í¬ê¸°ì˜ 합보다 í¬ë©´, 마지막 í•­ëª©ì„ íŒŒì¼ì˜ ë까지 반복합니다. 특별히 \fB0\fP ê°’ì„ ë§ˆì§€ë§‰
+값으로 사용하여 íŒŒì¼ ë‚˜ë¨¸ì§€ ë¶€ë¶„ì„ ë‹¨ì¼ ë¸”ë¡ìœ¼ë¡œ ì¸ì½”딩해야 한다는 ì˜ë¯¸ë¥¼ 나타낼 ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤.
+.IP ""
+\fB\-\-filters1=\fP\fI<필터>\fP \&...\& \fB\-\-filters9=\fP\fI<필터>\fP 옵션 조합으로
+ê° ë¸”ë¡ë³„ ë³„ë„ í•„í„° ì²´ì¸ì„ 지정할 수 있습니다. ì´ ì˜µì…˜ì€ 1\(en9번 í•„í„° ì²´ì¸ì„ 지정합니다. í•„í„° ì²´ì¸ 0ë²ˆì€ í•„í„° ì²´ì¸ì„
+지정하지 ì•Šì•˜ì„ ë•Œì™€ ë™ì¼í•œ 기본 í•„í„° ì²´ì¸ìœ¼ë¡œ 참조할 수 있습니다. í•„í„° ì²´ì¸ ì‹ë³„ 번호는 비 압축 í¬ê¸° ì•žì— ì½œë¡ (\fB:\fP)ì„ ë¶™ì—¬
+사용할 수 있습니다. 예를 들면, \fB\-\-block\-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB\fP 옵션ì„
+ì§€ì •í–ˆì„ ê²½ìš° ë‹¤ìŒ ê·œì¹™ëŒ€ë¡œ 블ë¡ì„ 만듭니다:
+.RS
+.IP \(bu 3
+\fB\-\-filters1\fP í•„í„° ì²´ì¸ì—서는 2MiB ìž…ë ¥ì„
+.IP \(bu 3
+\fB\-\-filters3\fP í•„í„° ì²´ì¸ì—서는 2MiB ìž…ë ¥ì„
+.IP \(bu 3
+\fB\-\-filters2\fP í•„í„° ì²´ì¸ì—서는 4MiB ìž…ë ¥ì„
+.IP \(bu 3
+\fB\-\-filters2\fP í•„í„° ì²´ì¸ì—서는 4MiB ìž…ë ¥ì„
+.IP \(bu 3
+기본 í•„í„° ì²´ì¸ì—서는 2MiB ìž…ë ¥ì„
+.IP \(bu 3
+ìž…ë ¥ì´ ë나기 ì „ì˜ ëª¨ë“  블ë¡ì—는 기본 í•„í„° ì²´ì¸ê³¼ 4MiB ìž…ë ¥ì„ ì ìš©í•©ë‹ˆë‹¤.
+.RE
+.IP ""
+ì¸ì½”ë” ë¸”ë¡ í¬ê¸°ë¥¼ 초과하는 í¬ê¸° ê°’ì„ ì§€ì •í•˜ë©´(스레드 모드 기본값 ë˜ëŠ” \fB\-\-block\-size=\fP\fI<í¬ê¸°>\fP
+옵션으로 지정한 ê°’), ì¸ì½”ë”는 \fI<í¬ê¸°>\fP 지정 용량 범위는 유지하면서 추가 블ë¡ì„ 만듭니다. 예를 들면
+\fB\-\-block\-size=10MiB\fP \fB\-\-block\-list=5MiB,10MiB,8MiB,12MiB,24MiB\fP ì˜µì…˜ì„ ì§€ì •í•˜ê³ 
+ìž…ë ¥ 파ì¼ì„ 80MiB 용량으로 전달하면, ê°ê° 5, 10, 8, 10, 2, 10, 10, 4, 10, 10, 1 MiB 용량ì„
+차지하는 ë¸”ë¡ 11개를 결과물로 ë‚´ì¤ë‹ˆë‹¤.
+.IP ""
+다중\-스레드 모드ì—ì„œ ë¸”ë¡ í¬ê¸°ëŠ” ë¸”ë¡ í—¤ë”ì— ì €ìž¥í•©ë‹ˆë‹¤. 단ì¼\-스레드 모드ì—서는 저장하지 않기 ë•Œë¬¸ì— ì¸ì½”딩 처리한 출력ì€
+다중\-스레드 ëª¨ë“œì˜ ì¶œë ¥ 결과물과는 다릅니다.
+.TP
+\fB\-\-flush\-timeout=\fP\fI<제한시간>\fP
+압축할 ë•Œ, ì´ì „ ë°ì´í„°ë¥¼ 소거하고 ë‹¤ìŒ ìž…ë ¥ì„ ë¸”ë¡ ë‹¨ìœ„ë¡œ ë” ì½ëŠ”ë° \fI<제한시간>\fP 밀리초(ì–‘ì˜ ì •ìˆ˜ê°’)ê°€ 지났ì„
+경우, 대기중ì´ë˜ 모든 ìž…ë ¥ ë°ì´í„°ë¥¼ ì¸ì½”ë”ì—ì„œ 소거한 ë‹¤ìŒ ì¶œë ¥ ìŠ¤íŠ¸ë¦¼ì— ì „ë‹¬í•©ë‹ˆë‹¤. ì´ëŸ° ë™ìž‘ì€ ë„¤íŠ¸ì›Œí¬ë¡œ 스트리ë°í•œ ë°ì´í„°ë¥¼
+\fBxz\fPë¡œ 압축할 ë•Œ 쓸만합니다. \fI<제한시간>\fP ê°’ì„ ì ê²Œ 지정하면 ì ì€ 지연 ì‹œê°„ì— ë°ì´í„°ë¥¼ 받아낼 수 있지만
+\fI<제한시간>\fP ê°’ì„ í¬ê²Œ 하면 ì••ì¶•ìœ¨ì„ ë†’ì¼ ìˆ˜ 있습니다.
+.IP ""
+ì´ ê¸°ëŠ¥ì€ ê¸°ë³¸ì ìœ¼ë¡œ 꺼져있습니다. ì´ ì˜µì…˜ì„ í•œë²ˆ ì´ìƒ 지정하면, 마지막 ì˜µì…˜ì˜ ê°’ëŒ€ë¡œ ë™ìž‘합니다. 특별히
+\fI<제한시간>\fP ê°’ì„ \fB0\fP으로 설정하면 ì´ ì„¤ì •ì„ ì™„ì „ížˆ ëŒ ìˆ˜ 있습니다.
+.IP ""
+ì´ ê¸°ëŠ¥ì€ POSIX ì‹œìŠ¤í…œì´ ì•„ë‹Œ ê³³ì—서는 사용할 수 없습니다.
+.IP ""
+.\" FIXME
+\fBì´ ê¸°ëŠ¥ì€ ì—¬ì „ížˆ 시험중입니다\fP. 현재로서는, \fBxz\fP 버í¼ë§ 처리 ë°©ì‹ ë•Œë¬¸ì— \fBxz\fPì˜ ì‹¤ì‹œê°„ 스트림 압축 í•´ì œ 기능 활용ì€
+ì ì ˆí•˜ì§€ 않습니다.
+.TP
+\fB\-\-memlimit\-compress=\fP\fI<제한용량>\fP
+압축 수행시 메모리 사용 한계를 지정합니다. ì´ ì˜µì…˜ì„ ì—¬ëŸ¬ë²ˆ 지정하면 마지막 ê°’ì„ ì·¨í•©ë‹ˆë‹¤.
+.IP ""
+압축 ì„¤ì •ì´ \fI<제한용량>\fPì„ ì´ˆê³¼í•˜ë©´, \fBxz\fP는 설정 ê°’ì˜ í•˜í–¥ ì¡°ì •ì„ ì‹œë„하여 한계 ê°’ì„ ë”ì´ìƒ 넘치지 않게 하고
+ìžë™ ì¡°ì ˆì„ ë냈다는 ì•Œë¦¼ì„ í‘œì‹œí•©ë‹ˆë‹¤. ì¡°ì •ì€ ë‹¤ìŒ ìˆœì„œëŒ€ë¡œ 진행합니다. 스레드 수를 줄입니다. 다중\-스레드 모드ì—ì„œ 스레드 하나ì˜
+할당 한계치가 \fI<제한용량>\fPì„ ë„˜ìœ¼ë©´ 단ì¼\-스레드 모드로 전환합니다. ê·¸ ë‹¤ìŒ ë§ˆì§€ë§‰ìœ¼ë¡œ LZMA2 딕셔너리 í¬ê¸°ë¥¼
+줄입니다.
+.IP ""
+\fB\-\-format=raw\fP ë˜ëŠ” \fB\-\-no\-adjust\fP 미지정 ìƒí™©ì—ì„œ 압축할 ë•Œ, 압축 ë°ì´í„° ì¶œë ¥ì— ì˜í–¥ì„ 주지 ì•Šê³  스레드
+처리 수만 ì¤„ì¼ ìˆ˜ 있습니다.
+.IP ""
+\fI<제한용량>\fP ê°’ì´ ì•„ëž˜ 설명한 ì¡°ê±´ì— ë§žì§€ 않으면, 오류가 나타나고 \fBxz\fP ëª…ë ¹ì€ ì¢…ë£Œ ìƒíƒœ 1ë²ˆì„ ë°˜í™˜í•˜ë©°
+빠져나갑니다.
+.IP ""
+\fI<제한용량>\fP ê°’ì€ ì—¬ëŸ¬ ë°©ì‹ìœ¼ë¡œ 지정할 수 있습니다:
+.RS
+.IP \(bu 3
+\fI<제한용량>\fP ê°’ì€ ë°”ì´íŠ¸ 용량 절대값입니다. 정수 ê°’ì„ ì‚¬ìš©í•˜ë˜ \fBMiB\fP와 ê°™ì€ ì ‘ë¯¸ì‚¬ë¥¼ 사용하는게 좋습니다.
+예: \fB\-\-memlimit\-compress=80MiB\fP
+.IP \(bu 3
+\fI<제한용량>\fP ê°’ì€ ì´ ë¬¼ë¦¬ 메모리(RAM) ìš©ëŸ‰ì˜ ë°±ë¶„ìœ¨ë¡œ 지정할 ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. 다른 컴퓨터ë¼ë¦¬ 공유하는 ì…¸
+초기화 스í¬ë¦½íŠ¸ì˜ \fBXZ_DEFAULTS\fP 환경 ë³€ìˆ˜ì— ê°’ì„ ì„¤ì •í•  ë•Œ 특히 쓸만합니다. ì´ëŸ° ë°©ì‹ìœ¼ë¡œ 설정하면 ì‹œìŠ¤í…œì˜ ë©”ëª¨ë¦¬ 설치
+ìš©ëŸ‰ì— ë”°ë¼ ìžë™ìœ¼ë¡œ 늘어납니다. 예: \fB\-\-memlimit\-compress=70%\fP
+.IP \(bu 3
+\fI<제한용량>\fP ê°’ì€ \fB0\fP 기본값으로 설정하여 초기화할 수 있습니다. 현재로서는 \fI<제한용량>\fP
+ê°’ì´ \fImax\fP(최대) (메모리 사용 한계 ì—†ìŒ) ì¸ ìƒíƒœì™€ ë™ì¼í•©ë‹ˆë‹¤.
+.RE
+.IP ""
+\fBxz\fP 32비트 버전ì—서는 몇가지 특별한 경우가 있습니다. \fI<제한용량>\fP ê°’ì´ \fB4020MiB\fP를 넘으면
+\fI<제한용량>\fPì„ \fB4020MiB\fPë¡œ 고정합니다. MIPS32ì—서는 \fB2000MiB\fPë¡œ 대신 고정합니다.
+(\fB0\fPê³¼ \fBmax\fP는 ì´ ê²½ìš°ì— í•´ë‹¹í•˜ì§€ 않습니다. 압축 해제시 비슷한 ê¸°ëŠ¥ì€ ì—†ìŠµë‹ˆë‹¤.) ì´ ê²½ìš° 32비트 실행 파ì¼ì´
+4GiB(MIPS32ì˜ ê²½ìš° 2GiB) 주소 ì˜ì—­ì— 접근할 ë•Œ 매우 ìš©ì´í•˜ë©°, 다른 경우ì—는 ì›í•˜ëŠ”대로 문제를 ì¼ìœ¼í‚¤ì§€ 않습니다.
+.IP ""
+\fB메모리 활용\fP ì„¹ì…˜ë„ ì°¸ê³ í•˜ì‹­ì‹œì˜¤.
+.TP
+\fB\-\-memlimit\-decompress=\fP\fI<제한용량>\fP
+압축 해제시 메모리 사용 한계 ìš©ëŸ‰ì„ ì„¤ì •í•©ë‹ˆë‹¤. \fB\-\-list\fP 모드ì—ë„ ì˜í–¥ì„ ì¤ë‹ˆë‹¤. \fI<제한용량>\fPì„ ë„˜ê¸°ì§€
+않고서는 ë™ìž‘ì´ ì§„í–‰ì´ ì•ˆë  ê²½ìš°, \fBxz\fP ì—서는 오류를 나타내고 íŒŒì¼ ì••ì¶• 해제를 실패로
+간주합니다. \fI<제한용량>\fPì„ ì§€ì •í•˜ëŠ” 가능한 ë°©ë²•ì— ëŒ€í•´ì„œëŠ”
+\fB\-\-memlimit\-compress=\fP\fI<제한용량>\fP ì˜µì…˜ì„ ì°¸ê³ í•˜ì‹­ì‹œì˜¤.
+.TP
+\fB\-\-memlimit\-mt\-decompress=\fP\fI<제한용량>\fP
+다중\-스레드 모드 압축 해제시 메모리 사용 한계 ìš©ëŸ‰ì„ ì„¤ì •í•©ë‹ˆë‹¤. 스레드 ìˆ˜ì— ì˜í–¥ì„ 줄 ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. \fBxz\fPì—ì„œ íŒŒì¼ ì••ì¶•
+해제를 거부하게 하진 않습니다. \fI<제한용량>\fP 수치가 다중\-스레드로 ì²˜ë¦¬í•˜ê¸°ì— ë„ˆë¬´ 낮다면,
+\fI<제한용량>\fP ê°’ì„ ë¬´ì‹œí•˜ê³  \fBxz\fP ë™ìž‘ì„ ë‹¨ì¼\-스레드 모드로 ê³„ì† ì§„í–‰í•©ë‹ˆë‹¤. 참고로
+\fB\-\-memlimit\-decompress\fP ì˜µì…˜ë„ ì‚¬ìš©í•˜ë©´, 단ì¼\-스레드 모드와 다중\-스레드 모드 ë‘ ê²½ìš°ì— ëª¨ë‘ ì ìš©í•˜ê¸°ì—,
+다중\-스레드 ëª¨ë“œì— ì ìš©í•  \fI<제한용량>\fP ê°’ì€ \fB\-\-memlimit\-decompress\fPì— ì„¤ì •í•˜ëŠ” 제한 값보다 ë”
+í¬ë©´ 안ë©ë‹ˆë‹¤.
+.IP ""
+다른 메모리 사용 용량 제한 옵션과는 달리, \fB\-\-memlimit\-mt\-decompress=\fP\fI<제한용량>\fP 옵션ì€
+시스템별 기본 \fI<제한용량>\fP ê°’ì„ ì§€ë‹™ë‹ˆë‹¤. 현재 설정 ê°’ì€ \fBxz \-\-info\-memory\fP 명령으로 확ì¸í•´ë³¼ 수
+있습니다.
+.IP ""
+ì´ ì˜µì…˜ê³¼ 기본 ê°’ì€ í•œê³„ ê°’ì„ ì£¼ì§€ 않으면 스레드 기반 압축 í•´ì œ í”„ë¡œê·¸ëž¨ì´ ì¼ë¶€ ìž…ë ¥ 파ì¼ì— 대해 정신나간 ìˆ˜ì¤€ì˜ ë©”ëª¨ë¦¬ 용량ì„
+할당해서 ë™ìž‘ì´ ë나버릴 수 있습니다. 기본 \fI<제한용량>\fPì´ ì‹œìŠ¤í…œì˜ ì‚¬ì–‘ì— ë¹„í•´ 낮다면,
+\fI<제한용량>\fP ê°’ì„ ìžìœ ë¡­ê²Œ 올리시ë˜, \fBxz\fP ì—ì„œ ì ì€ 스레드 수ì—ë„ ë©”ëª¨ë¦¬ 공간 í• ë‹¹ì„ ì‹œë„하는 만í¼, ìž…ë ¥
+파ì¼ì— ì ì ˆí•œ 수준으로 가용 RAM ìš©ëŸ‰ì„ ë„˜ëŠ” í° ê°’ì„ ì„¤ì •í•˜ì§€ 마십시오. 메모리나 스와핑 ì˜ì—­ ê³µê°„ì´ ì¤„ì–´ë“¤ë©´ 압축해제 성능ì„
+개선하지 못합니다.
+.IP ""
+\fI<제한용량>\fP ê°’ì„ ì§€ì •í•˜ëŠ” 가능한 ë°©ë²•ì„ ë³´ë ¤ë©´
+\fB\-\-memlimit\-compress=\fP\fI<제한용량>\fP ì˜µì…˜ì„ ì°¸ê³ í•˜ì‹­ì‹œì˜¤. \fI<제한용량>\fP ê°’ì„
+\fB0\fP으로 설정하면 \fI<제한용량>\fP ê°’ì´ ì‹œìŠ¤í…œ 지정 기본값으로 ë°”ë€ë‹ˆë‹¤.
+.TP
+\fB\-M\fP \fI<제한용량>\fP, \fB\-\-memlimit=\fP\fI<제한용량>\fP, \fB\-\-memory=\fP\fI<제한용량>\fP
+\fB\-\-memlimit\-compress=\fP\fI<제한용량>\fP
+\fB\-\-memlimit\-decompress=\fP\fI<제한용량>\fP
+\fB\-\-memlimit\-mt\-decompress=\fP\fI<제한용량>\fP 지정과 ë™ì¼í•©ë‹ˆë‹¤.
+.TP
+\fB\-\-no\-adjust\fP
+압축 출력 ê²°ê³¼ì— ì˜í–¥ì„ 주는 ì„¤ì •ì„ ì¡°ì •í•˜ì§€ 않고는 메모리 사용 용량 제한 ì¡°ê±´ì´ ë§žì§€ 않으면 오류를 표시하고 빠져나갑니다. ì´
+ì˜µì…˜ì€ \fBxz\fPê°€ 다중\-스레드 모드ì—ì„œ 단ì¼\-스레드 모드로 전환하고 LZMA2 딕셔너리 í¬ê¸°ë¥¼ 줄ì´ëŠ” ë™ìž‘ì„ ë§‰ì•„ì¤ë‹ˆë‹¤. 심지어 ì´
+ì˜µì…˜ì„ ì‚¬ìš©í•˜ë©´ 메모리 사용 한계를 만족하ë„ë¡ ìŠ¤ë ˆë“œ 수를 줄여 압축 결과물 ì¶œë ¥ì— ì˜í–¥ì´ 가지 않게 합니다.
+.IP ""
+ì›ì‹œ 스트림(\fB\-\-format=raw\fP)ì„ ë§Œë“¤ ë–„ ìžë™ ì¡°ì •ì€ í•­ìƒ êº¼ì§‘ë‹ˆë‹¤.
+.TP
+\fB\-T\fP \fI<스레드수>\fP, \fB\-\-threads=\fP\fI<스레드수>\fP
+활용할 ìž‘ì—… 스레드 수를 지정합니다. \fI<스레드수>\fP ê°’ì„ \fB0\fP 값으로 설정하면, \fBxz\fP는 시스템ì—ì„œ 지ì›í•˜ëŠ”
+최대 프로세서 스레드 수를 ëª¨ë‘ í™•ë³´í•©ë‹ˆë‹¤. 실제 스레드 수는 ìž…ë ¥ 파ì¼ì´ 주어진 설정대로 스레드 처리를 í•  ë§Œí¼ ê·¸ë ‡ê²Œ í¬ì§€ ì•Šì„
+경우, 내지는 ë” ë§Žì€ ìŠ¤ë ˆë“œë¥¼ ì‚¬ìš©í–ˆì„ ë•Œ 메모리 사용량 한계를 초과할 경우 \fI<스레드수>\fP 보다 ì ì„ 수 있습니다.
+.IP ""
+단ì¼\-스레드와 다중\-스레드 압축 í”„ë¡œê·¸ëž¨ì€ ë‹¤ë¥¸ 출력 ê²°ê³¼ë¬¼ì„ ëƒ…ë‹ˆë‹¤. 단ì¼\-스레드 압축 í”„ë¡œê·¸ëž¨ì€ ìž‘ì€ íŒŒì¼ í¬ê¸° ê²°ê³¼ë¬¼ì„ ë‚´ë†“ì§€ë§Œ,
+다중\-스레드 압축 í”„ë¡œê·¸ëž¨ì˜ ê²½ìš° 다중\-스레드 압축 프로그램ì—ì„œ ë‚´ë†“ì€ ê²°ê³¼ë¬¼ì€ ë‹¤ì¤‘\-스레드로만 ì••ì¶•ì„ í•´ì œí•  수 있습니다.
+\fI<스레드수>\fP를 \fB1\fPë¡œ 설정하면 단ì¼\-스레드 모드를 사용합니다. \fI<스레드수>\fP를 \fB0\fPê³¼ 다른
+값으로 설정하면, 시스템ì—ì„œ 실제로 하드웨어 스레드가 1개만 지ì›í•œë‹¤ 하ë”ë¼ë„, 다중\-스레드 압축 í”„ë¡œê·¸ëž¨ì„ ì‚¬ìš©í•©ë‹ˆë‹¤. (\fBxz\fP
+5.2.xì—서는 ì´ ê²½ìš° 단ì¼\-스레드 모드를 활용합니다.)
+.IP ""
+단ì¼\-스레드로 다중\-스레드 모드를 사용하려면, \fI<스레드수>\fP를 \fB+1\fPë¡œ 설정하십시오. \fB+\fP ì ‘ë‘사는 \fB1\fP
+ì´ì™¸ì˜ ê°’ì—는 ì˜í–¥ì„ 주지 않습니다. 메모리 사용량 한계 ì„¤ì •ì€ \fBxz\fPì„ \fB\-\-no\-adjust\fP ì˜µì…˜ì„ ì“°ê¸° 전까지는
+단ì¼\-스레드로 전환하게 합니다. \fB+\fP ì ‘ë‘사 지ì›ì€ \fBxz\fP 5.4.0ì— ì¶”ê°€í–ˆìŠµë‹ˆë‹¤.
+.IP ""
+ìžë™ 스레드 수를 요청했고 메모리 사용 한계를 지정하지 않았다면, ì‹œìŠ¤í…œì— ë§žê²Œë” ê°€ëŠ¥í•œ 스레드 수를 제한하는 기본 소프트 제한 ê°’ì„
+사용합니다. 스레드 수가 한개가 ë˜ë©´ 무시하는 ì´ëŸ° ê°œë…ì´ ì†Œí”„íŠ¸ 제한ì´ê¸°ì—, \fBxz\fPë¡œ 하여금 압축 ë™ìž‘ ë° ì••ì¶• í•´ì œ ë™ìž‘ 수행시
+멈추지 않습니다. ì´ ê°€ë³¸ 소프트 제한 ê°’ì€ \fBxz\fP 실행 ë„중 다중\-스레드 모드ì—ì„œ 단ì¼\-스레드 모드로 바뀌게 하지는 않습니다.
+활성 제한 ê°’ì€ \fBxz \-\-info\-memory\fP 명령으로 ë³¼ 수 있습니다.
+.IP ""
+현재 스레딩 처리 ë°©ì‹ì€ ìž…ë ¥ì„ ë¸”ë¡ ë‹¨ìœ„ë¡œ 쪼개고 ê°ê°ì˜ 블ë¡ì„ ë…립ì ìœ¼ë¡œ 압축하는 ë™ìž‘ì„ ì·¨í•©ë‹ˆë‹¤. 기본 ë¸”ë¡ í¬ê¸°ëŠ” 압축 수준ì—
+ë”°ë¼ ë‹¤ë¥´ë©° \fB\-\-block\-size=\fP\fI<í¬ê¸°>\fP 옵션으로 재지정할 수 있습니다.
+.IP ""
+스레드 압축 í•´ì œ ë°©ì‹ì€ 여러 블ë¡ì´ ë¸”ë¡ í—¤ë”ì— ë„£ì€ í¬ê¸° 정보와 함께 들어간 파ì¼ì—만 ë™ìž‘합니다. 다중\-스레드 모드ì—ì„œ 압축한
+충분히 í° ëª¨ë“  파ì¼ì€ ì´ ì¡°ê±´ì— ë§Œì¡±í•˜ì§€ë§Œ, 단ì¼\-스레드 모드ì—ì„œ 압축한 파ì¼ì€
+\fB\-\-block\-size=\fP\fI<í¬ê¸°>\fP ì˜µì…˜ì„ ì§€ì •í•˜ë”ë¼ë„ ì¡°ê±´ì— ë§Œì¡±í•˜ì§€ 않습니다.
+.IP ""
+\fI스레드\fP 기본 ê°’ì€ \fB0\fP입니다. \fBxz\fP 5.4.x ì´ì „ì˜ ê¸°ë³¸ê°’ì€ \fB1\fP입니다.
+.
+.SS "개별 압축 í•„í„° ì²´ì¸ ì„¤ì •"
+개별 í•„í„° ì²´ì¸ì€ 사전 ì„¤ì •ì— ì—®ì¸ ì„¤ì •ì— ì˜ì¡´í•˜ëŠ” 대신 압축 ì„¤ì •ì„ ì„¸ë¶€ì ìœ¼ë¡œ 하나하나 설정할 수 있게 합니다. 개별 í•„í„° ì²´ì¸ì„
+지정하면, ëª…ë ¹í–‰ì— ì•žì„œ 지정한 사전 설정 옵션(\fB\-0\fP \&...\& \fB\-9\fP ê³¼ \fB\-\-extreme\fP)ì€ ë¬´ì‹œí•©ë‹ˆë‹¤. 사전
+설정 ì˜µì…˜ì„ í•˜ë‚˜ ì´ìƒì˜ í•„í„° ì²´ì¸ ì˜µì…˜ 다ìŒì— 지정하면, 새 사전 ì„¤ì •ì„ ì·¨í•˜ë©°, ì•žì„œ 지정한 개별 í•„í„° ì²´ì¸ ì˜µì…˜ì€ ë¬´ì‹œí•©ë‹ˆë‹¤.
+.PP
+í•„í„° ì²´ì¸ì€ 명령행 파ì´í•‘ì— ë¹„êµí•  수 있습니다. 압축할 ë•Œ, 압축하지 ì•Šì€ ìž…ë ¥ì„ ì²«ë²ˆì§¸ í•„í„°ë¡œ 놓고, 출력 대ìƒ(ì´ ìžˆìœ¼ë©´)ì„ ë‹¤ìŒ
+í•„í„°ë¡œ 지정합니다. 최종 í•„í„°ì˜ ì¶œë ¥ì€ ì••ì¶• 파ì¼ë¡œ 기옥합니다. ì²´ì¸ì˜ 최대 í•„í„° 수는 4ì´ì§€ë§Œ, í•„í„° ì²´ì¸ìƒ í•„í„° 갯수는 보통
+1~2개입니다.
+.PP
+ìˆ˜ë§Žì€ í•„í„°ê°€ í•„í„° ì²´ì¸ ìƒì—ì„œ 제약ì ì„ 가지고 있습니다. ì¼ë¶€ 필터는 ì²´ì¸ì˜ 마지막 필터로만 ë™ìž‘하며, ì¼ë¶€ 다른 필터는 ë§ˆì§€ë§‰ì´ ì•„ë‹Œ
+í•„í„°ë¡œ, ì–´ë–¤ ë™ìž‘ì€ ì²´ì¸ì˜ ì–´ë–¤ 위치ì—ë“  둡니다. í•„í„°ì— ë”°ë¼, ì´ ì œí•œì€ í•„í„° 설계를 따르거나 보안 문제를 막기 위해 존재하기ë„
+합니다.
+.PP
+개별 í•„í„° ì²´ì¸ì€ ë‘가지 ë°©ì‹ìœ¼ë¡œ 지정할 수 있습니다. \fB\-\-filters=\fP\fI<í•„í„°>\fP와
+\fB\-\-filters1=\fP\fI<필터>\fP \&...\& \fB\-\-filters9=\fP\fI<필터>\fP 옵션으로
+liblzma í•„í„° 문ìžì—´ ë¬¸ë²•ì— ë”°ë¼ í•œê°€ì§€ ì˜µì…˜ì„ í•„í„° ì²´ì¸ ì „ì²´ë¥¼ 지정할 수 있습니다. 대신, 하나 ì´ìƒì˜ 개별 í•„í„° 옵션ì„
+ì›í•˜ëŠ” í•„í„° ì²´ì¸ ìˆœì„œëŒ€ë¡œ 지정할 ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. ì´ ë§ì¸ 즉슨, 개별 í•„í„° ì˜µì…˜ì˜ ìˆœì„œê°€ 중요하단 뜻입니다! ì›ì‹œ ìŠ¤íŠ¸ë¦¼ì„ ë””ì½”ë”©í• 
+ë•Œ(\fB\-\-format=raw\fP), ì••ì¶•í–ˆì„ ë•Œ ì§€ì •í–ˆë˜ í•„í„°ì™€ ê°™ì€ ìˆœì„œë¡œ í•„í„° ì²´ì¸ì„ 지정해야 합니다. ì „ì²´ ì²´ì¸
+옵션(\fB\-\-filters=\fP\fI<í•„í„°>\fP) 보다 ìš°ì„  지정한 개별 í•„í„° ë˜ëŠ” 사전 설정 ì˜µì…˜ì€ ê¹Œë¨¹ì„ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤.
+ì „ì²´ ì²´ì¸ ì˜µì…˜ 다ìŒì— 개별 필터를 지정할 경우 í•„í„° ì²´ì¸ì˜ ë™ìž‘ì„ ë¬´íš¨ë¡œ 합니다.
+.PP
+필터는 쉼표로 구분하는 필터별 \fI<옵션>\fPì´ ìžˆìŠµë‹ˆë‹¤. \fI<옵션>\fPì— ì¶”ê°€ë¡œ 입력한 쉼표는
+무시합니다. 모든 옵션 ê°’ì—는 ê¸°ë³¸ê°’ì´ ìžˆì–´, ê°’ì„ ë°”ê¾¸ë ¤ë©´ 지정해야합니다.
+.PP
+ì „ì²´ í•„í„° ì²´ì¸ê³¼ \fI<옵션>\fPì„ ë³´ë ¤ë©´ \fBxz \-vv\fP (\fB\-\-verbose\fP ë‘ ë²ˆ)ëª…ë ¹ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤. ì´
+ëª…ë ¹ì€ ì‚¬ì „ ì„¤ì •ì´ ì‚¬ìš©í•˜ëŠ” í•„í„° ì²´ì¸ ì˜µì…˜ë„ ë³¼ 수 있습니다.
+.TP
+\fB\-\-filters=\fP\fI<í•„í„°>\fP
+ì „ì²´ í•„í„° ì²´ì¸ ë˜ëŠ” 사전 ì„¤ì •ì„ ë‹¨ì¼ ì˜µì…˜ìœ¼ë¡œ 지정합니다. ê° í•„í„°ëŠ” 공백 ë¬¸ìž ë˜ëŠ” 대시 ë¬¸ìž ë‘번 ìž…ë ¥(\fB\-\-\fP)으로
+구분합니다. ì…¸ 명령행ì—ì„œ \fIí•„í„°\fP는 따옴표로 ê°ì‹¸ì„œ ë‹¨ì¼ ì˜µì…˜ìœ¼ë¡œ í•´ì„하ë„ë¡ í•´ì•¼ 합니다. \fI옵션\fPì„ í‘œê¸°í•˜ë ¤ë©´ \fB:\fP ë˜ëŠ”
+\fB=\fPì„ í™œìš©í•˜ì‹­ì‹œì˜¤. 사전 설정 ì•žì— \fB\-\fP를 ë¶™ì¼ ìˆ˜ 있고 0ê°œ ë˜ëŠ” 하나 ì´ìƒì˜ 플래그를 ë¶™ì¼ ìˆ˜ 있습니다. 유ì¼í•˜ê²Œ
+지ì›í•˜ëŠ” 플래그는 \fB\-\-extreme\fPê³¼ ë™ì¼í•œ \fBe\fP입니다.
+.TP
+\fB\-\-filters1\fP=\fI<í•„í„°>\fP ... \fB\-\-filters9\fP=\fI<í•„í„°>\fP
+\fB\-\-block\-list\fP와 사용할 수 있는 추가 í•„í„° ì²´ì¸ì„ 최대 9개까지 지정합니다.
+.IP ""
+예를 들어 í…스트 파ì¼ê³¼ 실행 파ì¼ì˜ ì•„ì¹´ì´ë¸Œë¥¼ 압축할 ë•Œ 실행 ë¶€ë¶„ì— BCJ í•„í„° ì²´ì¸ì„ 사용하고 í…스트 ë¶€ë¶„ì€ LZMA2 필터를
+사용할 수 있습니다.
+.TP
+\fB\-\-filters\-help\fP
+\fB\-\-filters\fP와 \fB\-\-filters1=\fP\fI<필터>\fP \&...\&
+\fB\-\-filters9=\fP\fI<í•„í„°>\fP ì˜µì…˜ì˜ ì‚¬ì „ 설정 필터와 개별 설정 í•„í„° ì²´ì¸ì„ 지정하는 ë°©ë²•ì„ ì„¤ëª…í•˜ëŠ” ë„움ë§
+메시지를 출력하고 완전히 빠져나갑니다.
+.TP
+\fB\-\-lzma1\fP[\fB=\fP\fI<옵션>\fP]
+.PD 0
+.TP
+\fB\-\-lzma2\fP[\fB=\fP\fI<옵션>\fP]
+.PD
+LZMA1 ë˜ëŠ” LZMA2 필터를 í•„í„° ì²´ì¸ì— 추가합니다. ì´ í•„í„°ëŠ” í•„í„° ì²´ì¸ì˜ 마지막 요소로만 사용할 수 있습니다.
+.IP ""
+LZMA1ì€ ê³ ì „ í•„í„°ë¡œ, LZMA1만 지ì›í•˜ëŠ” ê³ ì „ \fB.lzma\fP íŒŒì¼ í˜•ì‹ì—서만 지ì›í•©ë‹ˆë‹¤. LZMA2는 LZMA1ì˜ ì—…ë°ì´íŠ¸
+버전으로 LZMA1ì˜ ì‹¤ì§ˆì  ë¬¸ì œë¥¼ 해결했습니다. \fB.xz\fP 형ì‹ì€ LZMA2 필터를 사용하며 LZMA1 필터는 ì „ì ìœ¼ë¡œ 지ì›í•˜ì§€
+않습니다. 압축 ì†ë„와 ì••ì¶•ìœ¨ì€ LZMA1ê³¼ LZMA2ê°€ 실질ì ìœ¼ë¡œ ë™ì¼í•©ë‹ˆë‹¤.
+.IP ""
+LZMA1ê³¼ LZMA2는 ë™ì¼í•œ \fI<옵션>\fP ì§‘í•©ì„ ê³µìœ í•©ë‹ˆë‹¤:
+.RS
+.TP
+\fBpreset=\fP\fI<사전설정>\fP
+LZMA1 ë˜ëŠ” LZMA2ì˜ ëª¨ë“  \fI<옵션>\fPì„ \fI<사전설정>\fP으로
+초기화합니다. \fI<사전설정>\fP ê°’ì€ ì •ìˆ˜ 값으로 ì´ë£¨ì–´ì ¸ 있으며, 사전 ì„¤ì •ì— ë³€í˜•ì„ ì¤„ ë–„ ë‹¨ì¼ ë¬¸ìžê°€ ë”°ë¼ì˜¬ 수ë„
+있습니다. 정수 ê°’ì€ \fB0\fPì—ì„œ \fB9\fP 까지ì´ë©°, 명령행 옵션ì—ì„œ \fB\-0\fP \&...\& \fB\-9\fPë¡œ 대ì‘합니다. 변형 옵션으로
+지ì›í•˜ëŠ” 문ìžëŠ” 현재 \fBe\fP ë¿ì´ë©°, \fB\-\-extreme\fPì— ëŒ€ì‘합니다. \fI<사전설정>\fP ê°’ì„ ì§€ì •í•˜ì§€ 않으면,
+LZMA1 ë˜ëŠ” LZMA2 ê¸°ë³¸ê°’ì„ ì‚¬ì „ 설정 \fB6\fPì—ì„œ 가져온 \fI<옵션>\fP으로 취합니다.
+.TP
+\fBdict=\fP\fI<í¬ê¸°>\fP
+딕셔너리(ê¸°ë¡ ë²„í¼) \fI<í¬ê¸°>\fP는 최근 처리한 비압축 ë°ì´í„°ë¥¼ ë°”ì´íŠ¸ 단위로 ë©”ëª¨ë¦¬ì— ì–¼ë§ˆë‚˜ 유지하는지 나타냅니다.
+ì•Œê³ ë¦¬ì¦˜ì€ ë¹„ì••ì¶• ë°ì´í„°ìƒ ë°”ì´íŠ¸ 시퀀스(ì¼ì¹˜ 항목) 반복 íƒìƒ‰ì„ ì‹œë„하며, 해당 ë¶€ë¶„ì„ ë”•ì…”ë„ˆë¦¬ì˜ í˜„ìž¬ 참조로 치환합니다. 딕셔너리가
+í¬ë©´ ì¼ì¹˜í•˜ëŠ” í•­ëª©ì„ ì°¾ì„ ê¸°íšŒê°€ ë” ë§Žì•„ì§‘ë‹ˆë‹¤. ë”°ë¼ì„œ, 딕셔너리 \fI<í¬ê¸°>\fP를 ë”ìš± í¬ê²Œ 설정하면 ì••ì¶•ìœ¨ì„ ì¦ê°€í• 
+수는 있지만, 압축하지 ì•Šì€ íŒŒì¼ë³´ë‹¤ 딕셔너리가 í¬ë©´ 메모리 ë‚­ë¹„ìœ¨ì´ ì˜¬ë¼ê°‘니다.
+.IP ""
+보통 딕셔너리 \fI<í¬ê¸°>\fP는 64KiB ì—ì„œ 64MiB ì •ë„ ë©ë‹ˆë‹¤. 최소 4KiB 입니다. 압축시 최대 ìš©ëŸ‰ì€ í˜„ìž¬
+1.5GiB(1536MiB)ë¡œ 나타납니다. 압축 í•´ì œ 프로그램ì—ë„ 4GiB 미만으로 딕셔너리 í¬ê¸°ë¥¼ ì´ë¯¸ 지ì›í•˜ë©° 4GiB ë¼ëŠ” 수치는
+LZMA1ê³¼ LZMA2 스트림 형ì‹ì˜ 최대값입니다.
+.IP ""
+딕셔너리 \fI<í¬ê¸°>\fP와 검색기(\fImf\fP)는 LZMA1 ë˜ëŠ” LZMA ì¸ì½”ë”ì˜ ë©”ëª¨ë¦¬ ì‚¬ìš©ëŸ‰ì„ í•¨ê»˜ 결정합니다.
+ë™ì¼í•œ(ë˜ëŠ” ë” í°) 딕셔너리 \fI<í¬ê¸°>\fPê°€ ë°ì´í„°ë¥¼ ì••ì¶•í–ˆì„ ë•Œë§Œí¼ ì••ì¶• 해제할 ë–„ 필요하기 때문ì—, 디코ë”ì˜ ë©”ëª¨ë¦¬
+ì‚¬ìš©ëŸ‰ì€ ì••ì¶•í•  ë•Œì˜ ë”•ì…”ë„ˆë¦¬ í¬ê¸°ë¡œ 결정합니다. \fB.xz\fP í—¤ë”ì—는 딕셔너리 \fI<í¬ê¸°>\fP를 2^\fIn\fP ë˜ëŠ”
+2^\fIn\fP + 2^(\fIn\fP\-1) 으로 저장하기ì—, ì´ \fI<í¬ê¸°>\fP ê°’ì„ ì••ì¶•í•  ë•Œ 선호하는 편입니다. 다른
+\fI<í¬ê¸°>\fP ê°’ì€ \fB.xz\fP í—¤ë”ì— ì €ìž¥í•  ë•Œ 반올림합니다.
+.TP
+\fBlc=\fP\fIlc\fP
+리터럴 컨í…스트 비트 수를 지정합니다. 최소 ê°’ì€ 0ì´ê³  최대 ê°’ì€ 4입니다. 기본 ê°’ì€ 3입니다. 추가로, \fIlc\fP ê°’ê³¼
+\fIlp\fP ê°’ì˜ í•©ì€ 4를 넘으면 안ë©ë‹ˆë‹¤.
+.IP ""
+ì¡°ê±´ì´ ì¼ì¹˜í•˜ì§€ ì•Šì•„ ì¸ì½”딩할 수 없는 모든 ë°”ì´íŠ¸ëŠ” 리터럴로 ì¸ì½”딩합니다. ì´ ë§ì¸ 즉슨, 간단히 8비트 ë°”ì´íŠ¸ë¡œì„œì˜ ë¦¬í„°ëŸ´ì„ í•œë²ˆì—
+하나씩 ì¸ì½”딩합니다.
+.IP ""
+리터럴 ì½”ë”©ì„ í•  ë•Œ ì´ì „ 비압축 ë°”ì´íŠ¸ì™€ ë‹¤ìŒ ë°”ì´íŠ¸ì™€ì˜ ê´€ë ¨ì„±ì„ ê°€ì§„ 가장 ë§Žì€ \fIlc\fP 비트 수를 가정합니다. 예를 들면, 보통
+ì˜ë¬¸ ë¬¸ìž¥ì˜ ê²½ìš° ëŒ€ë¬¸ìž ë‹¤ìŒì— 종종 소문ìžê°€ 오고, ì†Œë¬¸ìž ë‹¤ìŒì— 다른 소문ìžê°€ ë”°ë¼ì˜µë‹ˆë‹¤. US\-ASCII ë¬¸ìž ì„¸íŠ¸ì—서는 가장 긴
+비트 3개는 대문ìžì— 대해 010, 소문ìžì— 대해 011입니다. \fIlc\fP ê°’ì´ ìµœì†Œí•œ 3ì´ë©´, 리터럴 코딩시 비압축 ë°ì´í„°ì— 대해
+ì´ëŸ° ì†ì„±ì˜ 장ì ì„ 취할 수 있습니다.
+.IP ""
+(어쨌거나) 기본값 (3)ì€ ë³´í†µ ì ì ˆí•©ë‹ˆë‹¤. 최대 ì••ì¶•ì„ ì›í•œë‹¤ë©´ \fBlc=4\fP ê°’ì„ ì‹œí—˜í•´ë³´ì‹­ì‹œì˜¤. 때로는 약간 ë„ì›€ì´ ë˜ê¸°ë„
+하겠지만, 오히려 결과가 ì•ˆì¢‹ì„ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. 결과가 ì—„í•œ 방향으로 간다면, \fBlc=2\fP ê°’ë„ ì‹œí—˜í•´ë³´ì‹­ì‹œì˜¤.
+.TP
+\fBlp=\fP\fIlp\fP
+리터럴 위치 비트 수를 지정하빈다. 최소 ê°’ì€ 0ì´ê³  최대 ê°’ì€ 4입니다. 기본 ê°’ì€ 0입니다.
+.IP ""
+\fIlp\fP ê°’ì€ ë¦¬í„°ëŸ´ ì¸ì½”딩 진행시 비압축 ë°ì´í„° ì •ë ¬ ë°©ì‹ ê³ ë ¤ì— ì˜í–¥ì„ ì¤ë‹ˆë‹¤. ì •ë ¬ ë°©ì‹ì— 대한 ìžì„¸í•œ 정보는 하단 \fIpb\fP를
+참고하십시오.
+.TP
+\fBpb=\fP\fIpb\fP
+위치 비트 수를 지정합니다. 최소 ê°’ì€ 0ì´ë©° 최대 ê°’ì€ 4입니다. ê¸°ë³¸ê°’ì€ 2입니다.
+.IP ""
+\fIpb\fP ê°’ì€ ë³´í†µ 압축하지 ì•Šì€ ë°ì´í„°ì— ì–´ë–¤ ì •ë ¬ ë°©ì‹ì„ 고려하ëŠëƒì— ì˜í–¥ì„ ì¤ë‹ˆë‹¤. 기본ì ìœ¼ë¡œ 4ë°”ì´íŠ¸
+ì •ë ¬(2^\fIpb\fP=2^2=4)ì„ ì˜ë¯¸í•˜ëŠ”ë°, ì´ë³´ë‹¤ ë” ë‚˜ì€ ì¶”ì¸¡ ê°’ì´ ì—†ì–´ì„œ 종종 최ì ì˜ ì„ íƒìœ¼ë¡œ 간주합니다.
+.IP ""
+ì •ë ¬ ìƒíƒœë¥¼ 알지 못할 경우, \fIpb\fP 설정 ê°’ì´ íŒŒì¼ í¬ê¸°ë¥¼ 조금 ì¤„ì¼ ìˆ˜ 있습니다. 예를 들면, í…스트 파ì¼ì´ ë‹¨ì¼ ë°”ì´íŠ¸ 단위로
+ì •ëˆëœ ìƒíƒœ(US\-ASCII, ISO\-8859\-*, UTF\-8)ë¼ë©´, \fBpb=0\fP 설정 값으로 ì••ì¶•ìœ¨ì„ ì¡°ê¸ˆ 개선할 수 있습니다.
+UTF\-16 í…ìŠ¤íŠ¸ì˜ ê²½ìš°, \fBpb=1\fP 설정 ê°’ì´ ì¢‹ì€ ì„ íƒìž…니다. ì •ë ¬ ë°”ì´íŠ¸ê°€ 3 ë°”ì´íŠ¸ ê°™ì€ í™€ìˆ˜ ë°”ì´íŠ¸ì¼ 경우,
+\fBpb=0\fP 설정 ê°’ì´ ìµœì ì˜ ì„ íƒì¼ì§€ë„ 모릅니다.
+.IP ""
+가정 ì •ë ¬ì„ \fIpb\fP ê°’ê³¼ \fIlp\fP 값으로 조정하긴 하지만, LZMA1ê³¼ LZMA2는 여전히 16ë°”ì´íŠ¸ ì •ë ¬ ë°©ì‹ìœ¼ë¡œ 선호합니다.
+LZMA1 ë˜ëŠ” LZMA2ë¡œ 종종 압축하는 íŒŒì¼ í˜•ì‹ì´ë¼ê³  하면 고려해볼만 합니다.
+.TP
+\fBmf=\fP\fImf\fP
+ì¼ì¹˜ 검색기는 ì¸ì½”ë” ì†ë„, 메모리 사용량, ì••ì¶•ìœ¨ì— ì£¼ëœ ì˜í–¥ì„ ì¤ë‹ˆë‹¤. 보통 í•´ì‹œ ì²´ì¸ ê²€ìƒ‰ê¸°ëŠ” ì´ì§„ 트리 검색기보다 빠르긴
+합니다. 기본 ê°’ì€ \fI<사전설정>\fPì— ë”°ë¼ ë‹¤ë¦…ë‹ˆë‹¤. 0ì€ \fBhc3\fPì„, 1\(en3ì€ \fBhc4\fP를, 나머지는
+\fBbt4\fP를 활용합니다.
+.IP ""
+ë‹¤ìŒ ê²€ìƒ‰ 필터를 지ì›í•©ë‹ˆë‹¤. 메모리 사용 ê³µì‹ì€ \fIdict\fP ê°’ì´ 2ì˜ ìŠ¹ìˆ˜ì¼ ê²½ìš° ì‹¤ì œì— ê°€ê¹Œìš´ 근사치입니다.
+.RS
+.TP
+\fBhc3\fP
+2ë°”ì´íŠ¸, 3ë°”ì´íŠ¸ 해싱 ì²´ì¸
+.br
+\fInice\fP 최소값: 3
+.br
+메모리 사용:
+.br
+\fIdict\fP * 7.5 (ì¡°ê±´: \fIdict\fP <= 16 MiB);
+.br
+\fIdict\fP * 5.5 + 64 MiB (ì¡°ê±´: \fIdict\fP > 16 MiB)
+.TP
+\fBhc4\fP
+2ë°”ì´íŠ¸, 3ë°”ì´íŠ¸, 4ë°”ì´íŠ¸ 해싱 ì²´ì¸
+.br
+\fInice\fP 최소값: 4
+.br
+메모리 사용:
+.br
+\fIdict\fP * 7.5 (ì¡°ê±´: \fIdict\fP <= 32 MiB);
+.br
+\fIdict\fP * 6.5 (ì¡°ê±´: \fIdict\fP > 32 MiB)
+.TP
+\fBbt2\fP
+2ë°”ì´íŠ¸ 해싱 ì´ì§„ 트리
+.br
+\fInice\fP 최소값: 2
+.br
+메모리 사용: \fIdict\fP * 9.5
+.TP
+\fBbt3\fP
+2ë°”ì´íŠ¸, 3ë°”ì´íŠ¸ 해싱 ì´ì§„트리
+.br
+\fInice\fP 최소값: 3
+.br
+메모리 사용:
+.br
+\fIdict\fP * 11.5 (ì¡°ê±´: \fIdict\fP <= 16 MiB);
+.br
+\fIdict\fP * 9.5 + 64 MiB (ì¡°ê±´: \fIdict\fP > 16 MiB)
+.TP
+\fBbt4\fP
+2ë°”ì´íŠ¸, 3ë°”ì´íŠ¸, 4ë°”ì´íŠ¸ 해싱 ì´ì§„ 트리
+.br
+\fInice\fP 최소값: 4
+.br
+메모리 사용:
+.br
+\fIdict\fP * 11.5 (ì¡°ê±´: \fIdict\fP <= 32 MiB);
+.br
+\fIdict\fP * 10.5 (ì¡°ê±´: \fIdict\fP > 32 MiB)
+.RE
+.TP
+\fBmode=\fP\fI<모드>\fP
+압축 \fI<모드>\fP ê°’ì€ ì¼ì¹˜ 검색기ì—ì„œ ìƒì‚°í•˜ëŠ” ë°ì´í„° ë¶„ì„ ë°©ì‹ì„ 지정합니다. 지ì›í•˜ëŠ” \fI<모드>\fP는
+\fBfast\fP와 \fBnormal\fP 입니다. ê¸°ë³¸ê°’ì€ \fI<사전설정>\fPê°’ 0\(en3ì— ëŒ€í•´ \fBfast\fP,
+\fI<사전설정>\fPê°’ 4\(en9ì— ëŒ€í•´ \fBnormal\fP입니다.
+.IP ""
+보통 \fBfast\fP는 í•´ì‹œ ì²´ì¸ ê²€ìƒ‰ê¸°ì—ì„œ 사용하며 \fBnormal\fPì€ ì´ì§„ 트리 검색기ì—ì„œ 사용합니다. ì´ ë™ìž‘ì€ ë˜í•œ
+\fI<사전설정>\fP ê°’ì´ í•  ì¼ì´ê¸°ë„ 합니다.
+.TP
+\fBnice=\fP\fInice\fP
+ì¼ì¹˜í•˜ëŠ” nice 길ì´ë¥¼ 지정합니다. 최소한 \fInice\fP ë°”ì´íŠ¸ ì •ë„ ì¼ì¹˜í•˜ë©´, ì•Œê³ ë¦¬ì¦˜ì´ ê°€ëŠ¥í•œ ìµœì„ ì˜ ë¶€ë¶„ì„ ì°¾ëŠ” ë™ìž‘ì„
+멈춥니다.
+.IP ""
+\fInice\fP ê°’ì€ 2\(en273 ë°”ì´íŠ¸ìž…니다. ê°’ì´ í´ ìˆ˜ë¡ ì†ë„ ë©´ì—서는 ì†í•´ë¥¼ 보겠지만 ì••ì¶•ìœ¨ì€ ë”ìš± 올ë¼ê°‘니다. 기본 ê°’ì€
+\fI<사전설정>\fPê°’ì— ë”°ë¼ ë‹¤ë¦…ë‹ˆë‹¤.
+.TP
+\fBdepth=\fP\fI<깊ì´>\fP
+ì¼ì¹˜ 검색기ì—ì„œì˜ ìµœëŒ€ 검색 깊ì´ë¥¼ 지정합니다. ê¸°ë³¸ê°’ì€ íŠ¹ë³„í•œ ê°’ 0으로 지정하며, ì´ ê°’ìœ¼ë¡œ 압축 í”„ë¡œê·¸ëž¨ì´ \fImf\fP 와
+\fInice\fPê°„ ì ì ˆí•œ \fI<깊ì´>\fP ê°’ì„ ê²°ì •í•©ë‹ˆë‹¤.
+.IP ""
+ì ì ˆí•œ í•´ì‹œ ì²´ì¸ \fI<깊ì´>\fP ê°’ì€ ì´ì§„ 트리ì—ì„œ 4\(en100 그리고 16\(en1000 입니다. ìƒë‹¹ížˆ í° ê°’ì„
+\fI<깊ì´>\fP 값으로 사용하면 ì¼ë¶€ 파ì¼ì— 대해 ì¸ì½”ë”ê°€ 매우 ëŠë¦¬ê²Œ ë™ìž‘í•  수가 있습니다. 압축 ì‹œê°„ì´ ë„ˆë¬´ 오래걸려서
+ë™ìž‘ì„ ì¤‘ê°„ì— ëŠì„ 준비가 ë˜ì§€ ì•Šì€ ì´ìƒ \fI<깊ì´>\fP 설정 ê°’ì€ 1000ì„ ë„˜ì§€ 않게하십시오.
+.RE
+.IP ""
+ì›ì‹œ 스트림(\fB\-\-format=raw\fP)ì„ ë””ì½”ë”©í•  ë•Œ, LZMA2는 딕셔너리 \fI<í¬ê¸°>\fP만 필요합니다. LZMA1는
+\fIlc\fP, \fIlp\fP, \fIpb\fP ê°’ì´ ëª¨ë‘ í•„ìš”í•©ë‹ˆë‹¤.
+.TP
+\fB\-\-x86\fP[\fB=\fP\fI<옵션>\fP]
+.PD 0
+.TP
+\fB\-\-arm\fP[\fB=\fP\fI<옵션>\fP]
+.TP
+\fB\-\-armthumb\fP[\fB=\fP\fI<옵션>\fP]
+.TP
+\fB\-\-arm64\fP[\fB=\fP\fI<옵션>\fP]
+.TP
+\fB\-\-powerpc\fP[\fB=\fP\fI<옵션>\fP]
+.TP
+\fB\-\-ia64\fP[\fB=\fP\fI<옵션>\fP]
+.TP
+\fB\-\-sparc\fP[\fB=\fP\fI<옵션>\fP]
+.TP
+\fB\-\-riscv\fP[\fB=\fP\fI<옵션>\fP]
+.PD
+브랜치/호출/ì í”„(BCJ) 필터를 í•„í„° ì²´ì¸ì— 추가합니다. ì´ í•„í„°ëŠ” í•„í„° ì²´ì¸ì˜ 비종결 필터로만 사용할 수 있습니다.
+.IP ""
+BCJ 필터는 머신 ì½”ë“œì˜ ìƒëŒ€ 주소를 절대 주소로 변환합니다. ë°ì´í„° í¬ê¸°ë¥¼ 바꾸지는 않지만 LZMA2ì—ì„œ \fB.xz\fP 파ì¼ì„
+0\(en15% ì •ë„ ì¤„ì—¬ì£¼ê²Œ 하는 ì¤‘ë³µì„±ì´ ëŠ˜ì–´ë‚©ë‹ˆë‹¤. BCJ 필터는 언제든 ë’¤ì§‘ì„ ìˆ˜ 있어, ë°ì´í„°ì— ì ì ˆí•˜ì§€ ì•Šì€ BCJ í•„í„°
+형ì‹ì„ 활용하면, 그냥 가만히 ë‘ë©´ ì••ì¶•ìœ¨ì´ ì•½ê°„ 떨어지게 한다 하ë”ë¼ë„, ë°ì´í„°ë¥¼ ìžƒì„ ìˆ˜ê°€ 있습니다. BCJ 필터는 굉장히 빠르며
+메모리 ê³µê°„ì„ ì ê²Œ 활용합니다.
+.IP ""
+ì´ BCJ í•„í„°ì—는 압축율 관련 몇가지 문제가 있습니다:
+.RS
+.IP \(bu 3
+실행 코드가 들어있는 몇가지 íŒŒì¼ í˜•ì‹(예: ëª©ì  íŒŒì¼, ì •ì  ë¼ì´ë¸ŒëŸ¬ë¦¬, 리눅스 ì»¤ë„ ëª¨ë“ˆ)ì˜ ê²½ìš° í•„í„° 값으로 채운 명령 주소가
+있습니다. 여기 BCJ í•„í„°ì˜ ê²½ìš° 파ì¼ì˜ ì••ì¶•ìœ¨ì„ ë–¨ì–´ëœ¨ë¦¬ëŠ” 주소 ë³€í™˜ì„ ìˆ˜í–‰í•©ë‹ˆë‹¤.
+.IP \(bu 3
+BCJ 필터를 ì•„ì¹´ì´ë¸Œì— ì ìš©í•˜ë©´, BCJ 필터를 사용하지 ì•Šì•˜ì„ ë•Œë³´ë‹¤ ì••ì¶•ìœ¨ì´ ë–¨ì–´ì§ˆ 수가 있습니다. 예를 들면, 유사하거나 ë™ì¼í•œ
+실행 íŒŒì¼ ì—¬ëŸ¿ì´ ìžˆìœ¼ë©´ 필터를 사용하여 파ì¼ì„ ëœ ë¹„ìŠ·í•˜ê²Œ 만들어 ì••ì¶•ìœ¨ì´ ë–¨ì–´ì§€ê²Œ 합니다. ë™ì¼í•œ ì•„ì¹´ì´ë¸Œ 파ì¼ì—ì„œ 비 실행 파ì¼ì˜
+ë‚´ìš©ì— ëŒ€í•´ì„œë„ ë¹„ìŠ·í•œ ì¼ì´ 벌어질 수 있습니다. 실제로 하나는 BCJ 필터를 걸고 하나는 제외하여 ê° ê²½ìš°ì— ëŒ€í•´ ì–´ë–¤ 경우가 결과가
+우수한 지 살펴보겠습니다.
+.RE
+.IP ""
+다른 명령 세트는 다른 ì •ë ¬ ìƒíƒœì— 놓여있습니다. 실행 파ì¼ì€ í•„í„°ê°€ 제대로 ë™ìž‘하게 하려면 ìž…ë ¥ ë°ì´í„°ì— 있는 ì´ ê°’ì˜ ë°°ìˆ˜ë¡œ
+ì •ëˆí•´ì•¼í•©ë‹ˆë‹¤.
+.RS
+.RS
+.PP
+.TS
+tab(;);
+l n l
+l n l.
+필터;정렬;참고
+x86;1;32\-bit ë˜ëŠ” 64\-bit x86
+ARM;4;
+ARM\-Thumb;2;
+ARM64;4;4096 ë°”ì´íŠ¸ ì •ë ¬ì´ ê°€ìž¥ 좋습니다
+PowerPC;4;빅엔디안 전용
+IA\-64;16;Itanium
+SPARC;4;
+RISC\-V;2;
+.TE
+.RE
+.RE
+.IP ""
+BCJ 필터를 사용한 ë°ì´í„°ëŠ” LZMA2ë¡œ 보통 압축하기 ë•Œë¬¸ì— LZMA2 ì˜µì…˜ì„ ì„ íƒí•œ BCJ í•„í„°ì˜ ì •ë ¬ê¸°ì¤€ì— ë§žì¶”ë„ë¡ ì„¤ì •í•˜ë©´
+ì••ì¶•ìœ¨ì„ ì¢€ ë” ê°œì„ í•  수 있습니다. 예를 들면:
+.RS
+.IP \(bu 3
+IA\-64 필터는 16\-ë°”ì´íŠ¸ ì •ë ¬ ë°©ì‹ìœ¼ë¡œ ë™ìž‘í•˜ê¸°ì— LZMA2 í•„í„°ì— \fBpb=4,lp=4,lc=0\fP 옵션(2^4=16)ì„ ì£¼ëŠ”ê²Œ
+좋습니다.
+.IP \(bu 3
+RISC\-V 코드ì—는 16\-비트 압축 명령(C 확장) ì ìž¬ ì—¬ë¶€ì— ë”°ë¼ 2\-ë°”ì´íŠ¸ ë˜ëŠ” 4\-ë°”ì´íŠ¸ ì •ë ¬ ë°©ì‹ì„ 채íƒí•©ë‹ˆë‹¤. 16\-비트
+ëª…ë ¹ì„ ì‚¬ìš©í•˜ë©´, \fBpb=2,lp=1,lc=3\fP ë˜ëŠ” \fBpb=1,lp=1,lc=3\fP 옵션 ê°’ ì‚¬ìš©ì´ ë°”ëžŒì§í•©ë‹ˆë‹¤. 16\-비트 명령ì´
+없다면, \fBpb=2,lp=2,lc=2\fP 옵션 ê°’ì„ í™œìš©í•˜ëŠ”ê²Œ 좋습니다. "RVC"ê°€ "Flags"í–‰ì— ë‚˜íƒ€ë‚˜ëŠ”ì§€ 확ì¸í•  ë•Œ
+\fBreadelf \-h\fP ëª…ë ¹ì„ ì‚¬ìš©í•  수 있습니다.
+.IP \(bu 3
+ARM64는 í•­ìƒ 4\-ë°”ì´íŠ¸ ì •ë ¬ ë°©ì‹ì„ íƒí•˜ê¸°ì— \fBpb=2,lp=2,lc=2\fP 옵션 ê°’ì„ í™œìš©í•˜ëŠ”ê²Œ 좋습니다.
+.IP \(bu 3
+x86 필터는 예외입니다. x86 실행 파ì¼ì„ 압축할 경우ì—는 보통 LZMA2 기본 옵션 ê°’(\fBpb=2,lp=0,lc=3\fP)ì„ ê·¸ëŒ€ë¡œ
+사용하는게 좋습니다.
+.RE
+.IP ""
+모든 BCJ 필터는 ë™ì¼í•œ \fI옵션\fPì„ ì§€ì›í•©ë‹ˆë‹¤:
+.RS
+.TP
+\fBstart=\fP\fI<오프셋>\fP
+ìƒëŒ€ 주소와 절대 주소를 변환할 ë•Œ 사용할 시작 \fI<오프셋>\fPì„ ì§€ì •í•©ë‹ˆë‹¤. \fI<오프셋>\fPì—는 í•„í„°
+ì •ë ¬ 배수여야 합니다(ìƒë‹¨ í…Œì´ë¸” 참조). ê¸°ë³¸ê°’ì€ 0입니다. 실제로 ê¸°ë³¸ê°’ì´ ë‚«ìŠµë‹ˆë‹¤. 개별 \fI<오프셋>\fP 지정
+ê°’ì€ ê±°ì˜ ì“¸ëª¨ê°€ 없습니다.
+.RE
+.TP
+\fB\-\-delta\fP[\fB=\fP\fI<옵션>\fP]
+í•„í„° ì²´ì¸ì— ë¸íƒ€ 필터를 추가합니다. ë¸íƒ€ 필터는 í•„í„° ì²´ì¸ì—ì„œ ë§ˆì§€ë§‰ì— ì§€ì •í•˜ì§€ ì•Šì€ í•„í„°ë¡œë§Œ 사용할 수 있습니다.
+.IP ""
+현재로서는 ë°”ì´íŠ¸ 단위 단순 ë¸íƒ€ê³„ì‚° 결과만 ë³´ì—¬ì¤ë‹ˆë‹¤. 예를 들면, 압축하지 ì•Šì€ ë¹„íŠ¸ë§µ 그림 ë˜ëŠ” 압축하지 ì•Šì€ PCM 오디오를
+압축할 ë•Œ 쓸만합니다. 그러나 특별한 목ì ìœ¼ë¡œ 활용하는 ì•Œê³ ë¦¬ì¦˜ì€ ë¸íƒ€ + LZMA2 보다 ë” ë‚˜ì€ ê²°ê³¼ë¥¼ 가져다 ì£¼ê¸°ë„ í•©ë‹ˆë‹¤.
+ì´ëŠ” 특히 ì˜¤ë””ì˜¤ì˜ ê²½ìš° 맞는 ì´ì•¼ê¸°ì¸ë°, \fBflac\fP(1)ì˜ ê²½ìš° ë” ë¹ ë¥´ê³  우수한 ì••ì¶•ìœ¨ì„ ë³´ì—¬ì¤ë‹ˆë‹¤.
+.IP ""
+ì§€ì› \fI옵션\fP:
+.RS
+.TP
+\fBdist=\fP\fI<ì°¨ì´>\fP
+ë°”ì´íŠ¸ 단위 ë¸í„° 계산 \fI<ì°¨ì´>\fP를 지정합니다. \fI<ì°¨ì´>\fPê°’ì€ 1\(en256 ì´ì–´ì•¼í•©ë‹ˆë‹¤. 기본
+ê°’ì€ 1입니다.
+.IP ""
+예를 들어, \fBdist=2\fP 옵션과 A1 B1 A2 B3 A3 B5 A4 B7 ìž…ë ¥ ê°’ì„ ì£¼ë©´, 출력 ê°’ì€ A1 B1 01 02 01
+02 01 02 입니다.
+.RE
+.
+.SS "기타 옵션"
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+경고 ë° ì•Œë¦¼ì„ ë•ë‹ˆë‹¤. ë‘ ë²ˆ 지정하면 오류 메시지 í‘œì‹œë„ ë•ë‹ˆë‹¤. ì´ ì˜µì…˜ì€ ì¢…ë£Œ ìƒíƒœì— ì˜í–¥ì„ 주지 않습니다. 경고 표시를
+ë„ë”ë¼ë„, 종료 ìƒíƒœì—서는 여전히 경고가 나타났ìŒì„ 알려ì¤ë‹ˆë‹¤.
+.TP
+\fB\-v\fP, \fB\-\-verbose\fP
+출력 ë‚´ìš©ì´ ë§Žì•„ì§‘ë‹ˆë‹¤. 표준 오류를 터미ë„ì— ì—°ê²°í–ˆë‹¤ë©´ \fBxz\fP는 진행 표시를 나타냅니다. \fB\-\-verbose\fP를 ë‘번 지정하면
+ë” ë§Žì€ ë‚´ìš©ì„ í‘œì‹œí•©ë‹ˆë‹¤.
+.IP ""
+진행 표시ì—서는 ë‹¤ìŒ ì •ë³´ë¥¼ 나타냅니다:
+.RS
+.IP \(bu 3
+ìž…ë ¥ 파ì¼ì˜ í¬ê¸°ë¥¼ 알고 ìžˆì„ ê²½ìš° 완료 백분율. 파ì´í”„ 처리시ì—는 ë°±ë¶„ìœ¨ì„ ë‚˜íƒ€ë‚¼ 수 없습니다.
+.IP \(bu 3
+산출 압축 ë°ì´í„° 용량 (압축) ë˜ëŠ” 소모 공간 용량 (압축 í•´ì œ).
+.IP \(bu 3
+비압축 ë°ì´í„° 소모 용량 (압축) ë˜ëŠ” 산출 용량 (압축 í•´ì œ).
+.IP \(bu 3
+압축 ë°ì´í„° 산출 ìš©ëŸ‰ì„ ë¹„ì••ì¶• ë°ì´í„° 처리 용량으로 나누어 계산한 압축율.
+.IP \(bu 3
+압축 ë˜ëŠ” 압축 í•´ì œ ì†ë„. 초당 비압축 ë°ì´í„° 소모량(압축) ë˜ëŠ” 산출 용량(압축 í•´ì œ)를 측정한 값입니다. \fBxz\fPì—ì„œ 파ì¼
+처리를 시작한 몇 초 후 나타납니다.
+.IP \(bu 3
+경과 시간 형ì‹ì€ M:SS ë˜ëŠ” H:MM:SS 입니다.
+.IP \(bu 3
+추산 여분 ì‹œê°„ì€ \fBxz\fPê°€ 파ì¼ì„ 처리하기 시작한 ì´í›„ ìž…ë ¥ 파ì¼ì˜ í¬ê¸°ë¥¼ 알고 몇 초가 지난 후ì—야 ë³´ì—¬ì¤ë‹ˆë‹¤. ì‹œê°„ì€ ì½œë¡ 
+문ìžë¥¼ 사용하지 ì•Šê³  ëœ ìžì„¸í•œ 형ì‹ìœ¼ë¡œ, 예를 들면, 2분 30ì´ˆ 와 ê°™ì€ í˜•ì‹ìœ¼ë¡œ ë³´ì—¬ì¤ë‹ˆë‹¤.
+.RE
+.IP ""
+표준 오류가 터미ë„ì´ ì•„ë‹ˆë¼ë©´ \fB\-\-verbose\fP는 \fBxz\fPì—ì„œ íŒŒì¼ ì´ë¦„, 압축 í¬ê¸°, 압축 í•´ì œ 용량, 압축율, 그리고
+가능하다면 파ì¼ì„ 압축 ë˜ëŠ” 압축 해제한 후 표준 오류로 ì†ë„와 걸린 ì‹œê°„ì„ ë‚˜íƒ€ë‚´ë„ë¡ í•©ë‹ˆë‹¤. ì†ë„와 걸린 시간 정보는 ë™ìž‘ì„
+ì²˜ë¦¬í•˜ëŠ”ë° ìµœì†Œí•œ 몇초 ì •ë„ ì†Œìš”í–ˆì„ ê²½ìš°ì—만 들어갑니다. ë™ìž‘ì´ ë나지 않았다면, ì´ë¥¼í…Œë©´ 사용ìžì˜ 중단 ìš”ì²­ì´ ìžˆì—ˆì„ ê²½ìš° ìž…ë ¥
+파ì¼ì˜ í¬ê¸°ë¥¼ 알고 ìžˆì„ ë•Œ 압축 백분율 ì •ë³´ë„ ë“¤ì–´ê°‘ë‹ˆë‹¤.
+.TP
+\fB\-Q\fP, \fB\-\-no\-warn\fP
+경고로 알릴 만한 ìƒí™©ì„ 만났다 하ë”ë¼ë„ 종료 ìƒíƒœ 2ë²ˆì„ ì„¤ì •í•˜ì§€ 않습니다. ì´ ì˜µì…˜ì€ ì¶œë ¥ ìˆ˜ì¤€ì— ì˜í–¥ì„ 주지 않기 때문ì—,
+\fB\-\-quiet\fP 옵션과 \fB\-\-no\-warn\fP ì˜µì…˜ì„ ê²½ê³  표시를 막고 종료 ìƒíƒœë¥¼ 바꾸지 ì•Šì„ ëª©ì ìœ¼ë¡œ 사용합니다.
+.TP
+\fB\-\-robot\fP
+머신ì—ì„œ í•´ì„í•  형ì‹ìœ¼ë¡œ 메시지를 나타냅니다. liblzma 대신 \fBxz\fP를 활용하려는 ë‹¤ì–‘ìƒ ìŠ¤í¬ë¦½íŠ¸ë¡œì„œì˜ 프론트엔드를 쉽게
+작성하ë„ë¡ í•˜ê¸° 위함입니다. ì´ ì˜µì…˜ì„ ì§€ì •í•œ ì¶œë ¥ì€ \fBxz\fP 릴리스가 어떻게 ë˜ë“  안정 버전ì´ëž€ ì˜ë¯¸ìž…니다. ìžì„¸í•œ ë‚´ìš©ì€
+\fB로봇 모드\fP ì„¹ì…˜ì„ ì°¸ê³ í•˜ì‹­ì‹œì˜¤.
+.TP
+\fB\-\-info\-memory\fP
+압축 ë° ì••ì¶• 해제시 물리 메모리 용량 (RAM), \fBxz\fPì—ì„œ 파악하는 프로세서 스레드 갯수, 메모리 사용량 한계를 파악하기 쉬운
+형ì‹ìœ¼ë¡œ 나타내고 무사히 나갑니다.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+보통 사용하는 ì˜µì…˜ì„ ì„¤ëª…í•˜ëŠ” ë„ì›€ë§ ë©”ì‹œì§€ë¥¼ 출력한 후, 완전히 빠져나갑니다.
+.TP
+\fB\-H\fP, \fB\-\-long\-help\fP
+\fBxz\fPì˜ ëª¨ë“  ê¸°ëŠ¥ì„ ì„¤ëª…í•˜ëŠ” ë„ì›€ë§ ë©”ì‹œì§€ë¥¼ 출력한 후, 완전히 빠져나갑니다
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+\fBxz\fP와 liblzma 버전 번호를 ê°€ë… í˜•ì‹ìœ¼ë¡œ 출력합니다. 기계 í•´ì„ ê°€ëŠ¥ 형ì‹ì„ 가져오려면 \fB\-\-version\fP ì•žì—
+\fB\-\-robot\fPì„ ì§€ì •í•˜ì‹­ì‹œì˜¤.
+.
+.SH "로봇 모드"
+로봇 모드는 \fB\-\-robot\fP 옵션으로 ë™ìž‘합니다. \fBxz\fP ì¶œë ¥ì„ ë‹¤ë¥¸ 프로그램ì—ì„œ í•´ì„하기 쉽게 í•´ì¤ë‹ˆë‹¤. 현재로서는
+\fB\-\-robot\fP ì˜µì…˜ì€ \fB\-\-list\fP, \fB\-\-filters\-help\fP, \fB\-\-info\-memory\fP, \fB\-\-version\fP
+옵션하고만 사용할 수 있습니다. 앞으로는 압축 ë° ì••ì¶• í•´ì œ ë™ìž‘ì— ëŒ€í•´ì„œë„ ì§€ì›í•©ë‹ˆë‹¤.
+.
+.SS "ëª©ë¡ ëª¨ë“œ"
+\fBxz \-\-robot \-\-list\fP ëª…ë ¹ì€ íƒ­ìœ¼ë¡œ 구분한 출력 형태를 활용합니다. 모든 í–‰ì˜ ì²«ë²ˆì§¸ 컬럼ì—는 해당 í–‰ì—ì„œ ì°¾ì„ ìˆ˜
+있는 ì •ë³´ì˜ í˜•ì‹ì„ 나타냅니다:
+.TP
+\fBì´ë¦„\fP
+ì´ í–‰ì€ í•­ìƒ íŒŒì¼ ëª©ë¡ ì‹œìž‘ ë¶€ë¶„ì˜ ì²«ë²ˆì§¸ ì¤„ì— ìžˆìŠµë‹ˆë‹¤. ì´ í–‰ì˜ ë‘번째 ì»¬ëŸ¼ì— íŒŒì¼ ì´ë¦„ì´ ë“¤ì–´ìžˆìŠµë‹ˆë‹¤.
+.TP
+\fB파ì¼\fP
+ì´ í–‰ì—는 \fB.xz\fP 파ì¼ì˜ ì „ë°˜ì ì¸ ì •ë³´ê°€ 들어있습니다. ì´ í–‰ì€ í•­ìƒ \fBì´ë¦„\fP í–‰ 다ìŒì— 있습니다.
+.TP
+\fB스트림\fP
+ì´ í–‰ 형ì‹ì€ \fB\-\-verbose\fP ì˜µì…˜ì„ ì§€ì •í–ˆì„ ë•Œë§Œ 사용합니다. \fB.xz\fP 파ì¼ì˜ \fB스트림\fP í–‰ ìˆ˜ë§Œí¼ ë‚˜íƒ€ë‚©ë‹ˆë‹¤.
+.TP
+\fB블ë¡\fP
+ì´ í–‰ 형ì‹ì€ \fB\-\-verbose\fP ì˜µì…˜ì„ ì§€ì •í–ˆì„ ë•Œë§Œ 사용합니다. \fB.xz\fP 파ì¼ì˜ ë¸”ë¡ ìˆ˜ë§Œí¼ \fB블ë¡\fP í–‰ì´ ë‚˜íƒ€ë‚©ë‹ˆë‹¤.
+\fB블ë¡\fP í–‰ì€ ëª¨ë“  \fB스트림\fP í–‰ 다ìŒì— 나타납니다. 다른 형ì‹ì˜ í–‰ì´ ë¼ì–´ë“¤ì§€ëŠ” 않습니다.
+.TP
+\fB요약\fP
+ì´ í–‰ 형ì‹ì€ \fB\-\-verbose\fP ì˜µì…˜ì„ ë‘번 ì§€ì •í–ˆì„ ë•Œë§Œ 사용합니다. ì´ í–‰ì€ ëª¨ë“  \fB블ë¡\fP í–‰ 다ìŒì— 출력합니다.
+\fB파ì¼\fP 행과 비슷하게, \fB요약\fP í–‰ì—는 \fB.xz\fP 파ì¼ì˜ ì „ë°˜ì ì¸ ì •ë³´ê°€ 담겨있습니다.
+.TP
+\fBì´ê³„\fP
+ì´ í–‰ì€ ëª©ë¡ ì¶œë ¥ì˜ ê°€ìž¥ ë§ˆì§€ë§‰ì— í•­ìƒ ë‚˜íƒ€ë‚©ë‹ˆë‹¤. ì´ ê°¯ìˆ˜ì™€ í¬ê¸°ë¥¼ 나타냅니다.
+.PP
+\fB파ì¼\fP í–‰ 컬럼:
+.PD 0
+.RS
+.IP 2. 4
+íŒŒì¼ ìŠ¤íŠ¸ë¦¼ 갯수
+.IP 3. 4
+ìŠ¤íŠ¸ë¦¼ì˜ ë¸”ë¡ ì´ ê°¯ìˆ˜
+.IP 4. 4
+íŒŒì¼ ì••ì¶• í¬ê¸°
+.IP 5. 4
+íŒŒì¼ ì••ì¶• í•´ì œ í¬ê¸°
+.IP 6. 4
+예를 들면, \fB0.123\fPê³¼ ê°™ì€ ì••ì¶•ìœ¨ 입니다. ë¹„ìœ¨ì´ 9.999ë¼ë©´, 대시 ë¬¸ìž 3ê°œ (\fB\-\-\-\fP)를 비율 ê°’ 대신 나타냅니다.
+.IP 7. 4
+쉼표로 구분한 무결성 검사 ì´ë¦„ 목ë¡ìž…니다. \fBNone\fP, \fBCRC32\fP, \fBCRC64\fP, \fBSHA\-256\fP 문ìžì—´ì„ 알려진
+검사 형ì‹ìœ¼ë¡œ 사용합니다. ì•Œ 수 없는 검사 형ì‹ì— 대해서는 \fBUnknown\-\fP\fIN\fPì„ ì‚¬ìš©í•˜ë©°, 여기서 \fIN\fPì€ (í•œ ë‘ìžë¦¬)
+정수형 숫ìžê°’으로 ì´ë£¨ì–´ì§„ 검사 ID 입니다.
+.IP 8. 4
+파ì¼ì˜ 스트림 패딩 ì´ ê¸¸ì´
+.RE
+.PD
+.PP
+\fB스트림\fP 행 컬럼:
+.PD 0
+.RS
+.IP 2. 4
+스트림 번호 (첫 ìŠ¤íŠ¸ë¦¼ì€ 1번)
+.IP 3. 4
+ìŠ¤íŠ¸ë¦¼ì˜ ë¸”ë¡ ì´ ê°¯ìˆ˜
+.IP 4. 4
+압축 시작 오프셋
+.IP 5. 4
+비압축 시작 오프셋
+.IP 6. 4
+압축 í¬ê¸° (스트림 패딩 미í¬í•¨)
+.IP 7. 4
+압축 해제 용량
+.IP 8. 4
+압축율
+.IP 9. 4
+무결성 검사 ì´ë¦„
+.IP 10. 4
+스트림 패딩 길ì´
+.RE
+.PD
+.PP
+\fB블ë¡\fP í–‰ 컬럼:
+.PD 0
+.RS
+.IP 2. 4
+ì´ ë¸”ë¡ì´ 들어간 스트림 갯수
+.IP 3. 4
+스트림 시작 ë¶€ë¶„ì˜ ë¸”ë¡ ë²ˆí˜¸ (첫번째 블ë¡ì€ 1번)
+.IP 4. 4
+íŒŒì¼ ì‹œìž‘ ë¶€ë¶„ì˜ ë¸”ë¡ ë²ˆí˜¸
+.IP 5. 4
+íŒŒì¼ ì‹œìž‘ ë¶€ë¶„ì˜ ì••ì¶• 시작 오프셋
+.IP 6. 4
+íŒŒì¼ ì‹œìž‘ ë¶€ë¶„ì˜ ë¹„ì••ì¶• 시작 오프셋
+.IP 7. 4
+ì´ ë¸”ë¡ ì••ì¶• í¬ê¸° (í—¤ë” í¬í•¨)
+.IP 8. 4
+압축 해제 용량
+.IP 9. 4
+압축율
+.IP 10. 4
+무결성 검사 ì´ë¦„
+.RE
+.PD
+.PP
+\fB\-\-verbose\fP를 ë‘ ë²ˆ 지정하면, 추가 ì»¬ëŸ¼ì„ \fB블ë¡\fP í–‰ì— ë„£ìŠµë‹ˆë‹¤. \fB\-\-verbose\fP ë‹¨ì¼ ì§€ì •ì‹œì—는 ì´ ì •ë³´ë¥¼ ë³¼
+ë•Œ íƒìƒ‰ì„ 여러번 수행해야 하기 ë•Œë¬¸ì— ì‹¤í–‰ ê³¼ì •ì´ ëŠë ¤ì§ˆ 수 있어서 나타내지 않습니다:
+.PD 0
+.RS
+.IP 11. 4
+16진수 무결성 검사값
+.IP 12. 4
+ë¸”ë¡ í—¤ë” í¬ê¸°
+.IP 13. 4
+ë¸”ë¡ í”Œëž˜ê·¸: \fBc\fP는 압축 í¬ê¸°ê°€ 현재 ê°’ìž„ì„ ë‚˜íƒ€ë‚´ê³ , \fBu\fP는 압축 ì „ ì›ë³¸ í¬ê¸°ê°€ 현재 ê°’ìž„ì„ ë‚˜íƒ€ëƒ…ë‹ˆë‹¤. 플래그를 설정하지
+않았다면, 문ìžì—´ 길ì´ë¥¼ 유지할 목ì ìœ¼ë¡œ 대시 \fB\-\fP 를 대신 나타냅니다. 새 플래그는 ë‚˜ì¤‘ì— ë¬¸ìžì—´ ë ë¶€ë¶„ì— ì¶”ê°€í•  예정입니다.
+.IP 14. 4
+블ë¡ì— 압축 í•´ì„œ ë„£ì€ ë°ì´í„°ì˜ 실제 츠기 (ë¸”ë¡ í—¤ë”, ë¸”ë¡ íŒ¨ë”©, 검사 í•„ë“œ 제외)
+.IP 15. 4
+ì´ \fBxz\fP 버전ì—ì„œ ì´ ë¸”ë¡ì˜ ì••ì¶•ì„ í•´ì œí•  ë•Œ 필요한 (ë°”ì´íŠ¸ 단위) 메모리 용량
+.IP 16. 4
+í•„í„° ì²´ì¸. 대부분 사용하는 ì˜µì…˜ì€ ì••ì¶• 해제시 필요한 ì˜µì…˜ë§Œì„ \fB.xz\fP í—¤ë”ì— ì €ìž¥í•˜ê¸° ë•Œë¬¸ì— ì••ì¶• ì‹œê°„ì— ì•Œ 수 없습니다.
+.RE
+.PD
+.PP
+\fB요약\fP 행 컬럼:
+.PD 0
+.RS
+.IP 2. 4
+ì´ \fBxz\fP 버전ì—ì„œ ì´ íŒŒì¼ ì••ì¶•ì„ í•´ì œí•  ë•Œ 필요한 (ë°”ì´íŠ¸ 단위) 메모리 용량
+.IP 3. 4
+모든 ë¸”ë¡ í—¤ë”ì— ì••ì¶• í¬ê¸°ì™€ 압축 ì „ ì›ë³¸ í¬ê¸° ì •ë³´ê°€ 들어갔는지 여부를 나타내는 \fByes\fP ë˜ëŠ” \fBno\fP ê°’
+.PP
+\fBxz\fP \fI5.1.2alpha\fP \fI부터:\fP
+.IP 4. 4
+íŒŒì¼ ì••ì¶• 해제시 필요한 최소 \fBxz\fP 버전
+.RE
+.PD
+.PP
+\fBì´ê³„\fP í–‰ 컬럼:
+.PD 0
+.RS
+.IP 2. 4
+스트림 갯수
+.IP 3. 4
+ë¸”ë¡ ê°¯ìˆ˜
+.IP 4. 4
+압축 í¬ê¸°
+.IP 5. 4
+압축 해제 용량
+.IP 6. 4
+í‰ê·  압축율
+.IP 7. 4
+파ì¼ì— 들어 있어 쉼표로 구분한 무결성 검사 ì´ë¦„ 목ë¡
+.IP 8. 4
+스트림 패딩 길ì´
+.IP 9. 4
+íŒŒì¼ ê°¯ìˆ˜. \fB파ì¼\fP í–‰ì˜ ì»¬ëŸ¼ 순서를 ë”°ë¼ê°‘니다.
+.PD
+.RE
+.PP
+\fB\-\-verbose\fP ì˜µì…˜ì„ ë‘ ë²ˆ 지정하면, \fBì´ê³„\fP í–‰ì— ì¶”ê°€ ì»¬ëŸ¼ì´ ë“¤ì–´ê°‘ë‹ˆë‹¤:
+.PD 0
+.RS
+.IP 10. 4
+ì´ \fBxz\fP 버전ì—ì„œ íŒŒì¼ ì••ì¶•ì„ í•´ì œí•  ë–„ 필요한 (ë°”ì´íŠ¸ 단위) 최대 메모리 사용량
+.IP 11. 4
+모든 ë¸”ë¡ í—¤ë”ì— ì••ì¶• í¬ê¸°ì™€ 압축 ì „ ì›ë³¸ í¬ê¸° ì •ë³´ê°€ 들어갔는지 여부를 나타내는 \fByes\fP ë˜ëŠ” \fBno\fP ê°’
+.PP
+\fBxz\fP \fI5.1.2alpha\fP \fI부터:\fP
+.IP 12. 4
+íŒŒì¼ ì••ì¶• 해제시 필요한 최소 \fBxz\fP 버전
+.RE
+.PD
+.PP
+차후 버전ì—서는 새 í–‰ 형ì‹ì„ 추가하고 기존 í–‰ 형ì‹ì— 추가할 수 있는 새 ì»¬ëŸ¼ì„ ë„£ê¸° 까지는 ì•Œ 수 있겠지만, 기존 ì»¬ëŸ¼ì€ ë°”ê¾¸ì§€ ì•Šì„
+예정입니다.
+.
+.SS "í•„í„° ë„움ë§"
+\fBxz \-\-robot \-\-filters\-help\fP 는 ë‹¤ìŒ í˜•ì‹ì˜ ì§€ì› í•„í„° 목ë¡ì„ 출력합니다:
+.PP
+\fI<필터>\fP\fB:\fP\fI<옵션>\fP\fB=<\fP\fI값\fP\fB>,\fP\fI<옵션>\fP\fB=<\fP\fI값\fP\fB>\fP...
+.TP
+\fI<í•„í„°>\fP
+í•„í„° ì´ë¦„
+.TP
+\fI<옵션>\fP
+필터별 옵션 ì´ë¦„
+.TP
+\fI<ê°’>\fP
+ìˆ«ìž \fIê°’\fP 범위는 \fB<\fP\fI최소\fP\fB\-\fP\fI최대\fP\fB>\fP입니다. 문ìžì—´ \fIê°’\fPì€ \fB< >\fP 범위
+ë‚´ì—ì„œ ì„ íƒí•˜ë©° \fB|\fP 문ìžë¡œ 구분합니다.
+.PP
+ê° í•„í„°ëŠ” í•œ ì¤„ì— í•˜ë‚˜ì”© 출력합니다.
+.
+.SS "메모리 제한 정보"
+\fBxz \-\-robot \-\-info\-memory\fP ëª…ë ¹ì€ íƒ­ìœ¼ë¡œ 나뉜 여러 ì»¬ëŸ¼ì„ ë‹¨ì¼ í–‰ìœ¼ë¡œ 나타냅니다:
+.IP 1. 4
+물리 메모리(RAM)ì˜ ë°”ì´íŠ¸ 단위 ì´ëŸ‰.
+.IP 2. 4
+압축 진행시 ë°”ì´íŠ¸ 단위 메모리 사용 한계값 (\fB\-\-memlimit\-compress\fP). 특수 ê°’ \fB0\fPì€ ë‹¨ì¼\-스레드 모드ì—ì„œ
+ì œí•œì„ ë‘지 않는 기본 ì„¤ì •ìž„ì„ ë‚˜íƒ€ëƒ…ë‹ˆë‹¤.
+.IP 3. 4
+압축 해제시 ë°”ì´íŠ¸ 단위 메모리 사용 한계값 (\fB\-\-memlimit\-decompress\fP). 특수 ê°’ \fB0\fPì€ ë‹¨ì¼\-스레드 모드ì—ì„œ
+ì œí•œì„ ë‘지 않는 기본 ì„¤ì •ìž„ì„ ë‚˜íƒ€ëƒ…ë‹ˆë‹¤.
+.IP 4. 4
+\fBxz\fP 5.3.4alpha ì´í›„: 다중\-스레드 기반 압축 해제시 ë°”ì´íŠ¸ 단위 메모리
+사용량(\fB\-\-memlimit\-mt\-decompress\fP). 분명하게 ì œí•œì„ ê±¸ì–´ë‘지 ì•Šì•˜ì„ ê²½ìš° 5번째 ì»¬ëŸ¼ì— ë‚˜íƒ€ë‚œ 시스템별
+ê¸°ë³¸ê°’ì„ ì‚¬ìš©í•˜ê¸° ë•Œë¬¸ì— 0 ê°’ì„ ì§€ì •í•˜ë©´ 안ë©ë‹ˆë‹¤. ë˜í•œ \fB\-\-memlimit\-mt\-decompress\fPë¡œ 세번째 컬럼 값보다 ë”
+í¬ê²Œ ì§€ì •ì„ í•œë‹¤ 할지ë¼ë„ ì´ ê°’ì´ ì„¸ë²ˆì§¸ 컬럼 값보다 í¬ë©´ 안ë©ë‹ˆë‹¤.
+.IP 5. 4
+\fBxz\fP 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 (\fB\-\-threads=0\fP) and no memory usage limit has been
+specified (\fB\-\-memlimit\-compress\fP). This is also used as the default value
+for \fB\-\-memlimit\-mt\-decompress\fP.
+.IP 6. 4
+\fBxz\fP 5.3.4alpha ì´í›„: Number of available processor threads.
+.PP
+차후, \fBxz \-\-robot \-\-info\-memory\fP 출력ì—는 ë” ë§Žì€ ë‚´ìš©ì´ ë“¤ì–´ê°€ì§€ë§Œ, í•œ 줄 ì´ìƒì€ 넘어가지 않습니다.
+.
+.SS 버전
+\fBxz \-\-robot \-\-version\fP ì€ \fBxz\fP 와 liblzmaì˜ ë²„ì „ 번호를 ë‹¤ìŒ í˜•ì‹ìœ¼ë¡œ 나타냅니다:
+.PP
+\fBXZ_VERSION=\fP\fIXYYYZZZS\fP
+.br
+\fBLIBLZMA_VERSION=\fP\fIXYYYZZZS\fP
+.TP
+\fIX\fP
+주 버전.
+.TP
+\fIYYY\fP
+부 버전. ì§ìˆ˜ê°€ 안정 버전입니다. 홀수는 알파 ë˜ëŠ” 베타 버전입니다.
+.TP
+\fIZZZ\fP
+안정 ë¦´ë¦¬ìŠ¤ì˜ íŒ¨ì¹˜ 수준 ë˜ëŠ” 개발 ë¦´ë¦¬ìŠ¤ì˜ íšŸìˆ˜ìž…ë‹ˆë‹¤.
+.TP
+\fIS\fP
+안정ë„. 0ì€ ì•ŒíŒŒ 버전, 1ì€ ë² íƒ€ ë²„ì „ì„ ë‚˜íƒ€ë‚´ë©°, 2는 안정 ë²„ì „ì„ ë‚˜íƒ€ëƒ…ë‹ˆë‹¤. \fIS\fP는 \fIYYY\fP ê°’ì´ ì§ìˆ˜ë¼ í•´ë„ í•­ìƒ
+2여야 합니다.
+.PP
+\fBxz\fP 명령과 liblzmaì´ ë™ì¼í•œ XZ 유틸리티 릴리스ì—ì„œ 나왔다면 ë‘ í–‰ì˜ \fIXYYYZZZS\fP ê°’ì€ ê°™ìŠµë‹ˆë‹¤.
+.PP
+예제: 4.999.9beta는 \fB49990091\fPì´ë©°, 5.0.0ì€ \fB50000002\fP입니다.
+.
+.SH "종료 ìƒíƒœ"
+.TP
+\fB0\fP
+모든 ìƒíƒœ 양호.
+.TP
+\fB1\fP
+오류 ë°œìƒ.
+.TP
+\fB2\fP
+눈여겨볼 경고가 나타났지만, 실제 오류는 ì¼ì–´ë‚˜ì§€ ì•ŠìŒ.
+.PP
+표준 ì˜¤ë¥˜ì— ì¶œë ¥í•˜ëŠ” 알림(경고 ë˜ëŠ” 오류 아님)는 종료 ìƒíƒœì— ì˜í–¥ì„ 주지 않습니다.
+.
+.SH 환경
+\fBxz\fP는 빈칸으로 구분한 옵션 ê°’ 목ë¡ì„ \fBXZ_DEFAULTS\fP, \fBXZ_OPT\fP 환경 변수ì—ì„œ 순서대로, 명령행ì—ì„œ 옵션ì„
+í•´ì„하기 ì „ì— ë¶ˆëŸ¬ì˜µë‹ˆë‹¤. 참고로 환경 변수ì—ì„œ 옵션만 í•´ì„하며, ì˜µì…˜ì´ ì•„ë‹Œ ë¶€ë¶„ì€ ì¡°ìš©ížˆ 무시합니다. í•´ì„ì€
+\fBgetopt_long\fP(3)으로 가능하며, 명령행 ì¸ìžë¡œ í™œìš©í•˜ê¸°ë„ í•©ë‹ˆë‹¤.
+.TP
+\fBXZ_DEFAULTS\fP
+사용ìžë³„, 시스템 범위 기본 옵션입니다. 보통 \fBxz\fPì˜ ë©”ëª¨ë¦¬ 사용량 ì œí•œì„ ê¸°ë³¸ìœ¼ë¡œ 걸어둘 경우 ì…¸ 초기화 스í¬ë¦½íŠ¸ì—
+설정합니다. ì…¸ 초기화 스í¬ë¦½íŠ¸ì™€ 별ë„ì˜ ìœ ì‚¬í•œ 경우를 제외하고ë¼ë©´, 스í¬ë¦½íŠ¸ì—서는 \fBXZ_DEFAULTS\fP 환경 변수를 설정하지
+ë§ê±°ë‚˜ ì„¤ì •ì„ í•´ì œí•´ì•¼í•©ë‹ˆë‹¤.
+.TP
+\fBXZ_OPT\fP
+\fBxz\fP 명령행으로 옵션 설정 ê°’ì„ ì§ì ‘ 전달할 수 ì—†ì„ ê²½ìš° \fBxz\fPì— ì˜µì…˜ì„ ì „ë‹¬í•˜ëŠ” 환경 변수입니다. 예를 들어, \fBxz\fP를
+스í¬ë¦½íŠ¸ ë˜ëŠ” ë„구ì—ì„œ 실행할 경우 GNU \fBtar\fP(1) ë¼ë©´:
+.RS
+.RS
+.PP
+.nf
+\f(CWXZ_OPT=\-2v tar caf foo.tar.xz foo\fP
+.fi
+.RE
+.RE
+.IP ""
+예를 들면, 스í¬ë¦½íŠ¸ì—ì„œ \fBXZ_OPT\fP 를 활용하여, 스í¬ë¦½íŠ¸ë³„ë¡œ 기본 압축 ì˜µì…˜ì„ ì§€ì •í•  수 있습니다. ì ì ˆí•œ ì´ìœ ê°€ 있다면
+\fBXZ_OPT\fP 옵션 ê°’ì„ ì‚¬ìš©ìžê°€ 바꾸는걸 추천합니다. 예를 들면, \fBsh\fP(1) 스í¬ë¦½íŠ¸ì—ì„œ 다ìŒì²˜ëŸ¼ 활용할 ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤:
+.RS
+.RS
+.PP
+.nf
+\f(CWXZ_OPT=${XZ_OPT\-"\-7e"} export XZ_OPT\fP
+.fi
+.RE
+.RE
+.
+.SH "LZMA 유틸리티 호환성"
+\fBxz\fPì˜ ëª…ë ¹í–‰ ë¬¸ë²•ì€ ì‹¤ì œë¡œ LZMA 유틸리티 4.32.xì—ì„œ ì°¾ì„ ìˆ˜ 있는 \fBlzma\fP, \fBunlzma\fP \fBlzcat\fPì˜
+ìƒìœ„ 집합입니다. ëŒ€ë¶€ë¶„ì˜ ê²½ìš° LZMA 유틸리티를 XZ 유틸리티로 ê¸°ì¡´ì— ìž‘ì„±í•œ 스í¬ë¦½íŠ¸ë¥¼ 깨지 ì•Šê³ ë„ ë°”ê¿€ 수 있습니다. 몇가지
+비호환성 문제 ë•Œë¬¸ì— ë¬¸ì œê°€ ì¼ì–´ë‚  수는 있습니다.
+.
+.SS "압축 사전 설정 단계"
+압축 수준 사전 ì„¤ì •ì˜ ë²ˆí˜¸ 부여 ë°©ì‹ì€ \fBxz\fP와 LZMA 유틸리티가 ë™ì¼í•˜ì§€ 않습니다. 가장 중요한 ì°¨ì´ëŠ” 다른 사전 ì„¤ì •ì— ëŒ€í•´
+딕셔너리 í¬ê¸°ë¥¼ 어떻게 대ì‘í–ˆëŠëƒ 여부입니다. 딕셔너리 í¬ê¸°ëŠ” 압축 해제시 메모리 사용량과 ê±°ì˜ ë¹„ìŠ·í•©ë‹ˆë‹¤.
+.RS
+.PP
+.TS
+tab(;);
+c c c
+c n n.
+단계;xz;LZMA 유틸리티
+\-0;256 KiB;ì—†ìŒ
+\-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
+.TE
+.RE
+.PP
+딕셔너리 í¬ê¸° ì°¨ì´ëŠ” 압축 프로그램 메모리 ì‚¬ìš©ì— ì˜í–¥ì„ 주지만, LZMA 유틸리티와 XZ 유틸리티ì—ì„œ ì‚¬ìš©ëŸ‰ì´ ëŠ˜ì–´ë‚˜ëŠ” 다른 ì°¨ì´ì ì´
+있습니다:
+.RS
+.PP
+.TS
+tab(;);
+c c c
+c n n.
+단계;xz;LZMA 유틸리티 4.32.x
+\-0;3 MiB;ì—†ìŒ
+\-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
+.TE
+.RE
+.PP
+XZ ìœ í‹¸ë¦¬í‹°ì˜ ê¸°ë³¸ 사전 설정 ìˆ˜ì¤€ê°’ì€ \fB\-6\fPì´ì§€ë§Œ LZMA ìœ í‹¸ë¦¬í‹°ì˜ ê¸°ë³¸ 사전 설정 ìˆ˜ì¤€ê°’ì€ \fB\-7\fP입니다. ë‘ í”„ë¡œê·¸ëž¨ì˜
+딕셔너리 메모리 기본 ì‚¬ìš©ëŸ‰ì€ 8MiB입니다.
+.
+.SS "스트림 vs 비스트림 .lzma 파ì¼"
+파ì¼ì„ 압축하지 ì•Šì€ í¬ê¸°ëŠ” \fB.lzma\fP í—¤ë”ì— ì €ìž¥í•©ë‹ˆë‹¤. LZMA 유틸리티는 ì¼ë°˜ 파ì¼ì„ 압축할 ë•Œ 압축하지 ì•Šì€ íŒŒì¼ì˜ í¬ê¸°ë¥¼
+저장합니다. ì´ ëŒ€ì‹  압축하지 ì•Šì€ í¬ê¸°ë¥¼ 'ì•Œ 수 ì—†ìŒ' 으로 저장하고 압축 í•´ì œ í”„ë¡œê·¸ëž¨ì´ ë©ˆì¶°ì•¼ í•  지ì ì—
+end\-of\-payload 마커를 사용하는 ë°©ë²•ë„ ìžˆìŠµë‹ˆë‹¤. LZMA 유틸리티는 파ì´í”„ë¡œ 들어온 입력과 ê°™ì´ ì••ì¶•í•˜ì§€ ì•Šì€ íŒŒì¼ì˜
+í¬ê¸°ë¥¼ ì•Œ 수 ì—†ì„ ë•Œ ì´ëŸ° ë°©ì‹ì„ 활용합니다.
+.PP
+\fBxz\fP는 \fB.lzma\fP 파ì¼ì„ end\-of\-payload ë§ˆì»¤ì˜ ìœ ë¬´ì™€ ê´€ê³„ì—†ì´ ì••ì¶• í•´ì œ ë°©ì‹ì„ ëª¨ë‘ ì§€ì›í•˜ì§€ë§Œ, \fBxz\fPë¡œ
+만든 모든 \fB.lzma\fP 파ì¼ì€ end\-of\-payload 마커를 사용하며, \fB.lzma\fP í—¤ë”ì— ì••ì¶•í•˜ì§€ ì•Šì€ íŒŒì¼ í¬ê¸°ë¥¼ 'ì•Œ 수
+ì—†ìŒ'으로 표기합니다. ì´ ë°©ì‹ì€ 드문 ìƒí™©ì—ì„œ 문제를 야기할 수 있습니다. 예를 들면, 임베디드 ìž¥ì¹˜ì˜ \fB.lzma\fP 압축 í•´ì œ
+í”„ë¡œê·¸ëž¨ì€ ì••ì¶•ì„ í•´ì œí–ˆì„ ë•Œ í¬ê¸°ë¥¼ 알아야 ë™ìž‘합니다. ì´ ë¬¸ì œë¥¼ 만나면, LZMA 유틸리티 ë˜ëŠ” LZMA SDK를 활용하여
+\&\fB.lzma\fP 파ì¼ì— 압축 ì „ íŒŒì¼ í¬ê¸° 정보를 저장해야합니다.
+.
+.SS "지ì›í•˜ì§€ 않는 .lzma 파ì¼"
+\&\fB.lzma\fP 형ì‹ì€ \fIlc\fP ê°’ì„ 8까지 받아들ì´ë©°, \fIlp\fP ê°’ì€ 4까지 받아들입니다. LZMA 유틸리티는 ì–´ë–¤ \fIlc\fP ê°’ê³¼
+\fIlp\fP ê°’ì„ ë°›ì•„ë“¤ì´ê³ ë„ ì••ì¶•ì„ í•´ì œí•  수 있지만, 파ì¼ì„ 만들 때는 늘 \fBlc=3\fP ê°’ê³¼ \fBlp=0\fP ê°’ì„ í™œìš©í•©ë‹ˆë‹¤. 다른
+\fIlc\fP ê°’ê³¼ \fIlp\fP ê°’ìœ¼ë¡œì˜ íŒŒì¼ ì••ì¶•ì€ \fBxz\fP와 LZMA SDKì—서만 가능합니다.
+.PP
+liblzmaì˜ LZMA1 í•„í„° 구현체ì—서는 \fIlc\fP ê°’ê³¼ \fIlp\fP ê°’ì˜ í•©ì´ 4를 넘어가면 안ë©ë‹ˆë‹¤. 그래서 \fB.lzma\fP
+파ì¼ì˜ 경우 ì´ ì œí•œì„ ë„˜ì–´ê°€ë©´ \fBxz\fPë¡œ ì••ì¶•ì„ í•´ì œí•  수 없습니다.
+.PP
+LZMA 유틸리티는 2^\fIn\fP (2ì˜ ìŠ¹ìˆ˜)í¬ê¸°ë¥¼ 지닌 딕셔너리를 가진 \fB.lzma\fP 파ì¼ë§Œ 만들지만 받아들ì´ëŠ” 파ì¼ì˜ 딕셔너리
+í¬ê¸°ëŠ” ì–´ë–¤ í¬ê¸°ë“  ìƒê´€ 없습니다. liblzmaì—서는 2^\fIn\fP, 2^\fIn\fP + 2^(\fIn\fP\-1) 딕셔너리 í¬ê¸°ë¥¼ 가진
+\&\fB.lzma\fP íŒŒì¼ ë§Œ 받아들입니다. ì´ë¡œ ì¸í•´ \fB.lzma\fP 파ì¼ì„ 확ì¸í•  ë•Œ 거짓 ì–‘ì„±ìœ¨ì´ ëŠ˜ì–´ë‚©ë‹ˆë‹¤.
+.PP
+모든 \fB.lzma\fP 파ì¼ì„ liblzma ì—ì„œ ë°›ì•„ë“¤ì¼ ìˆ˜ 있ë„ë¡ ì••ì¶•í•˜ê¸° ë•Œë¬¸ì— ì´ ì œí•œì´ ì‹¤ì œë¡œëŠ” 문제가 ë˜ì§€ 않습니다.
+.
+.SS "뒤따ë¼ì˜¤ëŠ” 쓰레기 ê°’"
+압축 해제할 ë•Œ, LZMA 유틸리티는 \fB.lzma\fP 스트림 ì²˜ìŒ ë¶€ë¶„ ë‹¤ìŒ ë‚˜ë¨¸ì§€ë¥¼ 다 조용히 무시합니다. ëŒ€ë¶€ë¶„ì˜ ê²½ìš°,
+버그입니다. LZMA 유틸리티ì—ì„œ \fB.lzma\fP ê²°í•© íŒŒì¼ ì••ì¶• 해제를 지ì›í•˜ì§€ ì•ŠìŒì„ ì˜ë¯¸í•˜ê¸°ë„ 합니다.
+.PP
+\&\fB.lzma\fP 스트림 처ìŒë¶€ë¶„ 바로 다ìŒì— ë°ì´í„°ê°€ ë‚¨ì•„ìžˆì„ ê²½ìš°, \fBxz\fP ì—서는 \fB\-\-single\-stream\fP ì˜µì…˜ì„ ì‚¬ìš©í•˜ì§€
+않으면 깨진 파ì¼ë¡œ 간주합니다. ì´ ë™ìž‘으로 하여금 뒤따ë¼ì˜¤ëŠ” 쓰레기 ê°’ì„ ë¬´ì‹œí•˜ë„ë¡ ê°„ì£¼í•˜ëŠ” 애매한 스í¬ë¦½íŠ¸ ë™ìž‘ì„ ê¹° 수가
+있습니다.
+.
+.SH 참고
+.
+.SS "출력 ê²°ê³¼ë¬¼ì´ ë‹¬ë¼ì§"
+압축하지 ì•Šì€ ìž…ë ¥ 파ì¼ë¡œë¶€í„° 얻어낸 정확한 압축 출력 ê²°ê³¼ë¬¼ì€ ì••ì¶• ì˜µì…˜ì´ ì™„ì „ížˆ ë™ì¼í•˜ë”ë¼ë„ XZ ìœ í‹¸ë¦¬í‹°ì˜ ë²„ì „ì— ë”°ë¼ ë‹¬ë¼ì§ˆ 수
+있습니다. íŒŒì¼ í˜•ì‹ì— ì˜í–¥ì„ 주지 ì•Šê³  ì¸ì½”ë” ê·¸ ìžì²´ë¥¼ 개선(ë” ë¹ ë¥´ê²Œ 하거나 ë” ë‚˜ì€ ì••ì¶•ìœ¨ë¡œ)하기 때문입니다. XZ 유틸리티
+ë²„ì „ì´ ë™ì¼í•˜ë”ë¼ë„ 빌드 ì˜µì…˜ì„ ë‹¬ë¦¬í•˜ì—¬ 빌드 ìƒíƒœê°€ ì œê°ê°ì¸ 경우 출력 ê²°ê³¼ë¬¼ì´ ë‹¬ë¼ì§ˆ 수 있습니다.
+.PP
+\fB\-\-rsyncable\fP ê¸°ëŠ¥ì„ ë„£ì—ˆì„ ê²½ìš° ë™ì¼í•œ xz 버전ì—ì„œ ì´ì „ 파ì¼ê³¼ 새 파ì¼ë¡œ 별ë„ë¡œ 압축하지 않는 í•œ ê²°ê³¼ 파ì¼ì„ (ë‘
+파ì¼ì´ 서로 다른 파ì¼ì´ 아니므로) rsync 처리할 필요가 없습니다. ì´ ë¬¸ì œëŠ” ì¸ì½”ë” êµ¬í˜„ì²´ 기능 ê°œë°œì´ ë나서 xz 버전ì´
+다르ë”ë¼ë„ 안정ì ì¸ rsync 가능한 출력 ê²°ê³¼ë¬¼ì„ ìœ ì§€í•  수 ìžˆì„ ë•Œì—¬ì•¼ í•´ê²°í•  수 있습니다.
+.
+.SS "내장 .xz 압축 해제 프로그램"
+XZ 임베디드와 ê°™ì€ ë‚´ìž¥ \fB.xz\fP 압축 í•´ì œ 구현체는 ì§€ì› íŒŒì¼ì˜ 무결성 \fI검사\fP 형ì‹ì„ \fInone\fPê³¼ \fIcrc32\fP ì´ì™¸ì˜
+설정으로 만들 필요가 없습니다. ê¸°ë³¸ê°’ì´ \fB\-\-check=crc64\fPì¼ ê²½ìš°ì—만, 임베디드 시스템ì—ì„œ 파ì¼ì„ 만들 ë•Œ
+\fB\-\-check=none\fP ë˜ëŠ” \fB\-\-check=crc32\fP ì˜µì…˜ì„ ì‚¬ìš©í•´ì•¼í•©ë‹ˆë‹¤.
+.PP
+임베디드 ì‹œìŠ¤í…œì´ ì•„ë‹ˆë¼ë©´, 모든 \fB.xz\fP í˜•ì‹ ì••ì¶• í•´ì œ 프로그램ì—서는 모든 \fI검사\fP 형ì‹ì„ 지ì›í•˜ê±°ë‚˜, ì¼ë¶€ \fI검사\fP ë°©ì‹ì„
+지ì›í•˜ì§€ 않는다면, 최소한, 무결성 검사로 ê²€ì¦í•˜ì§€ ì•Šê³  ì••ì¶•ì„ í•´ì œí•  수 있습니다.
+.PP
+XZ 임베디드는 BCJ 필터를 지ì›í•˜ì§€ë§Œ, 기본 시작 오프셋만 지정할 수 있습니다.
+.
+.SH 예제
+.
+.SS 기본
+\fIfoo\fP 파ì¼ì„ 기본 압축 수준 (\fB\-6\fP) 으로 \fIfoo.xz\fP 파ì¼ì— 압축해 넣고, 압축 ê³¼ì •ì´ ë¬´ì‚¬ížˆ ë나면 \fIfoo\fP를
+삭제합니다:
+.RS
+.PP
+.nf
+\f(CWxz foo\fP
+.fi
+.RE
+.PP
+\fIbar.xz\fP를 \fIbar\fP ì— ì••ì¶•ì„ í•´ì œí•œ 후 압축 해제가 무사히 ëë‚˜ë„ \fIbar.xz\fP를 삭제하지 않습니다:
+.RS
+.PP
+.nf
+\f(CWxz \-dk bar.xz\fP
+.fi
+.RE
+.PP
+기본 사전 설정 \fB\-6\fP 보다는 ëŠë¦¬ì§€ë§Œ, 압축 ë° ì••ì¶• 해제시 메모리를 ì ê²Œ 차지(ê°ê° 48\ Mib, 5\MiB)는 \fB\-4e\fP
+사전 설정(\fB\-4 \-\-extreme\fP)ì„ í™œìš©í•˜ì—¬ \fIbaz.tar.xz\fP 파ì¼ì„ 만듭니다:
+.RS
+.PP
+.nf
+\f(CWtar cf \- baz | xz \-4e > baz.tar.xz\fP
+.fi
+.RE
+.PP
+압축 ë° ë¹„ì••ì¶• 파ì¼ì„ ë‹¨ì¼ ëª…ë ¹ìœ¼ë¡œ 표준 ì¶œë ¥ì— ì••ì¶•í•´ì œí•  수 있습니다:
+.RS
+.PP
+.nf
+\f(CWxz \-dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt\fP
+.fi
+.RE
+.
+.SS "다중 íŒŒì¼ ë³‘ë ¬ 압축"
+GNU와 *BSDì—서는 \fBfind\fP(1) 명령과 \fBxargs\fP(1) 명령으로 여러 파ì¼ì˜ ì••ì¶•ì„ ë³‘ë ¬ 처리할 수 있습니다:
+.RS
+.PP
+.nf
+\f(CWfind . \-type f \e! \-name '*.xz' \-print0 \e | xargs \-0r \-P4 \-n16 xz \-T1\fP
+.fi
+.RE
+.PP
+\fBxargs\fP(1) ì˜ \fB\-P\fP 옵션으로 \fBxz\fP í”„ë¡œì„¸ìŠ¤ì˜ ë³‘ë ¬ 처리 갯수를 지정합니다. \fB\-n\fP ì˜µì…˜ì˜ ìµœì  ê°’ì€ ì••ì¶•í• 
+íŒŒì¼ ìˆ˜ì— ë‹¬ë ¤ìžˆìŠµë‹ˆë‹¤. 압축할 파ì¼ì´ ëª‡ê°œë°–ì— ì—†ë‹¤ë©´ 1ì´ì–´ì•¼í•©ë‹ˆë‹¤. 파ì¼ì´ 수천 수만개 ì •ë„ ëœë‹¤ë©´ \fBxargs\fP(1) ì´
+ì–´ì¨Œë“ ì§€ê°„ì— ë§Œë“¤ì–´ë‚¼ \fBxz\fP í”„ë¡œì„¸ìŠ¤ì˜ ê²Ÿìˆ˜ë¥¼ 100으로 하거나 아니면 ì ë‹¹í•œ ê°’ì„ ì§€ì •í•˜ì—¬ 줄ì´ëŠ”게 좋습니다.
+.PP
+\fBxz\fPì— \fB\-T1\fPì˜µì…˜ì„ ì§€ì •í•˜ë©´ 단ì¼\-스레드 모드로 강제합니다. \fBxargs\fP(1) ì—ì„œ 병렬 처리 갯수를 제어할 수 있기
+때문입니다.
+.
+.SS "로봇 모드"
+여러 파ì¼ì„ 압축한 후 저장할 ë°”ì´íŠ¸ ìš©ëŸ‰ì„ ê³„ì‚°í•©ë‹ˆë‹¤:
+.RS
+.PP
+.nf
+\f(CWxz \-\-robot \-\-list *.xz | awk '/^totals/{print $5\-$4}'\fP
+.fi
+.RE
+.PP
+ì´ ìŠ¤í¬ë¦½íŠ¸ì—서는 충분히 ìµœì‹ ì˜ \fBxz\fP ëª…ë ¹ì„ ì‚¬ìš©í•˜ëŠ”ì§€ 알아보려 합니다. ë‹¤ìŒ \fBsh\fP(1) 스í¬ë¦½íŠ¸ì—서는 \fBxz\fP ë„구ì˜
+버전 번호가 최소한 5.0.0ì¸ì§€ 여부를 검사합니다. ì´ ë°©ì‹ì€ \fB\-\-robot\fP ì˜µì…˜ì„ ì§€ì›í•˜ì§€ 않는 ì˜¤ëž˜ëœ ë² íƒ€ ë²„ì „ê³¼ë„ í˜¸í™˜ì„±ì´
+있습니다:
+.RS
+.PP
+.nf
+\f(CWif ! eval "$(xz \-\-robot \-\-version 2> /dev/null)" || [ "$XZ_VERSION" \-lt 50000002 ]; then echo "Your xz is too old." fi unset XZ_VERSION LIBLZMA_VERSION\fP
+.fi
+.RE
+.PP
+\fBXZ_OPT\fP 환경 변수로 압축 해제시 메뢰 사용량 한계를 설정하지만, 한계 ê°’ì„ ì´ë¯¸ 설정했다면, ê°’ì„ ëŠ˜ë¦¬ì§€ 않습니다:
+.RS
+.PP
+.nf
+\f(CWNEWLIM=$((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\fP
+.fi
+.RE
+.
+.SS "개별 압축 í•„í„° ì²´ì¸ ì„¤ì •"
+개별 설정 í•„í„° ì²´ì¸ì˜ 초단순 사용방ì‹ì€ LZMA2 사전 설정 ê°’ì„ ë³„ë„ë¡œ 설정하는 ë°©ì‹ìž…니다. 사전 ì„¤ì •ì€ ìž ìž¬ì ìœ¼ë¡œ 쓸만한 압축
+설정 조합만 다루기 ë•Œë¬¸ì— ê½¤ 쓸모가 ìžˆì„ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤.
+.PP
+\fB\-0\fP ... \fB\-9\fP ì˜µì…˜ì˜ ì„¤ëª…ì—ì„œ í…Œì´ë¸”ì˜ CompCPU 컬럼과 \fB\-\-extreme\fP ì˜µì…˜ì€ LZMA2 사전 설정ì„
+개별ì ìœ¼ë¡œ ë§žì·„ì„ ë•Œ 쓸만할 ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. 여기 ê´€ë ¨ë‚´ìš©ì„ í…Œì´ë¸” 둘로 정리해서 모아보았습니다:
+.RS
+.PP
+.TS
+tab(;);
+c c
+n n.
+Preset;CompCPU
+\-0;0
+\-1;1
+\-2;2
+\-3;3
+\-4;4
+\-5;5
+\-6;6
+\-5e;7
+\-6e;8
+.TE
+.RE
+.PP
+ì–´ë–¤ 파ì¼ì„ 압축할 ë•Œ ìƒë‹¹ížˆ í° ë”•ì…”ë„ˆë¦¬(예: 32MiB)ê°€ í•„ìš” 하다는걸 알아채셨지만, \fBxz \-8\fP ëª…ë ¹ì´ ì••ì¶•í•  때보다 ë” ë¹ ë¥¸
+ì†ë„ë¡œ 압축하려 한다면, ë” í° ë”•ì…”ë„ˆë¦¬ ì‚¬ìš©ì„ ìœ„í•´ ë” ë‚®ì€ CompCPU 사전 설정 ê°’(예: 1)으로 수정할 수 있습니다:
+.RS
+.PP
+.nf
+\f(CWxz \-\-lzma2=preset=1,dict=32MiB foo.tar\fP
+.fi
+.RE
+.PP
+ê° íŒŒì¼ì— 대해, 위 ëª…ë ¹ì€ ì••ì¶•ìœ¨ì´ ë” ì¢‹ì•„ì§€ë©´ì„œë„ \fBxz \-6\fP보다 ë” ë¹¨ë¼ì§‘니다. 그러나, CompCPU ê°’ì„ ë‚®ê²Œ 유지하는
+대신 í° ë”•ì…”ë„ˆë¦¬ì—ì„œ ì¼ë¶€ 파ì¼ì„ 강조해야 합니다. í° ë”•ì…”ë„ˆë¦¬ê°€ ëŒ€ë¶€ë¶„ì˜ ë„ì›€ì„ ì£¼ëŠ” 매우 명백한 ìƒí™©ì—서는 최소한 몇 메가바ì´íŠ¸ì˜
+매우 유사한 ê° íŒŒì¼ì´ ì•„ì¹´ì´ë¸Œì— 들어갑니다. 딕셔너리 í¬ê¸°ëŠ” LZMA2ê°€ ì—°ì†ìœ¼ë¡œ 존재하는 ê° íŒŒì¼ì˜ 유사성으로부터 얻는 장ì ì„ 취할
+수 ìžˆì„ ë•Œ ì¼ë¶€ 개별 파ì¼ë³´ë‹¤ 훨씬 ë” ì»¤ì§‘ë‹ˆë‹¤.
+.PP
+압축 프로그램과 압축 í•´ì œ 프로그램ì—ì„œ 메모리를 ì—„ì²­ ë§Žì´ ì‚¬ìš©í•´ë„ ìƒê´€ 없고, 파ì¼ì„ 수백 메가 ë°”ì´íŠ¸ 메모리 ìš©ëŸ‰ì„ í™œìš©í•˜ì—¬
+압축한다면, \fBxz \-9\fP ëª…ë ¹ì— 64MiB ìš©ëŸ‰ì„ ì´ˆê³¼í•˜ëŠ” 딕셔너리를 사용할 수 있게 하는 ë°©ë²•ë„ ì“¸ë§Œí•  ì§€ë„ ëª¨ë¦…ë‹ˆë‹¤:
+.RS
+.PP
+.nf
+\f(CWxz \-vv \-\-lzma2=dict=192MiB big_foo.tar\fP
+.fi
+.RE
+.PP
+위 예제ì—서와 ê°™ì´ \fB\-vv\fP (\fB\-\-verbose \-\-verbose\fP) ì˜µì…˜ì„ ì‚¬ìš©í•˜ë©´ 압축 ë° ì••ì¶• í•´ì œ 과정ì—ì„œ 필요한 메모리
+ìš©ëŸ‰ì„ ì‚´íŽ´ë³´ëŠ”ë° ìš”ê¸´í•  수 있습니다. 압축 해제한 íŒŒì¼ í¬ê¸°ë³´ë‹¤ ë” í° ë”•ì…”ë„ˆë¦¬ë¥¼ 사용하면 불필요한 메모리 ì†Œëª¨ëŸ‰ì´ ë°œìƒí•˜ì—¬ 위
+ëª…ë ¹ì´ ìž‘ì€ íŒŒì¼ì—는 쓸모 ì—†ìŒì„ 기억하십시오.
+.PP
+때로는 압축 ì‹œê°„ì´ ë”±ížˆ ìƒê´€ì´ ì—†ì„ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤ë§Œ, 압축 해제시 메모리 ì‚¬ìš©ëŸ‰ì„ ì ê²Œ 유지해야 í•  ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. 예를 들면,
+임베디드 시스템ì—ì„œ íŒŒì¼ ì••ì¶•ì„ í•´ì œí•  ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. ë‹¤ìŒ ëª…ë ¹ì˜ ê²½ìš° \fB\-6e\fP (\fB\-6 \-\-extreme\fP) ì˜µì…˜ì„ ê¸°ë°˜
+ì˜µì…˜ì„ ì‚¬ìš©í•˜ë©° 딕셔너리 í¬ê¸°ë¥¼ 64KiB만 사용하ë„ë¡ ì œí•œí•©ë‹ˆë‹¤. ê²°ê³¼ 파ì¼ì€ XZ 임베디드(ì´ê²Œ \fB\-\-check=crc32\fP
+ì˜µì…˜ì´ ìžˆëŠ” ì´ìœ )ë¡œ 100KiB 메모리 ìš©ëŸ‰ì„ í™œìš©í•˜ì—¬ 풀어낼 수 있습니다.
+.RS
+.PP
+.nf
+\f(CWxz \-\-check=crc32 \-\-lzma2=preset=6e,dict=64KiB foo\fP
+.fi
+.RE
+.PP
+가능한 í•œ 수 ë°”ì´íŠ¸ë¥¼ ë” ì¥ì–´ 짜내고 ì‹¶ì„ ë•Œ, 리터럴 문맥 비트 수(\fIlc\fP)와 위치 비트 수(\fIpb\fP)를 조정하면 ë„ì›€ì´ ë 
+ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. 리터럴 위치 비트 수(\fIlp\fP)를 조금 건드리는 것 ë˜í•œ ë„ì›€ì´ ë  ì§€ë„ ëª¨ë¥´ê² ì§€ë§Œ 보통 \fIlc\fP ê°’ê³¼ \fIpb\fP
+ê°’ì´ ë” ì¤‘ìš”í•©ë‹ˆë‹¤. 예를 들면, 소스 코드 저장 파ì¼ì—는 US\-ASCII í…스트가 대부분ì´ê¸°ì—, 다ìŒê³¼ ê°™ì€ ê²½ìš°ëŠ” \fBxz \-6e\fP
+ëª…ë ¹ì„ ì‹¤í–‰í–ˆì„ ë•Œë¶€ë‹¤ëŠ” 아주 약간(ê±°ì˜ 0.1% 수준) ìž‘ì€ íŒŒì¼ì„ 얻어낼 ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤(\fBlc=4\fP를 ë¹¼ê³ ë„ ì‹œë„해보십시오):
+.RS
+.PP
+.nf
+\f(CWxz \-\-lzma2=preset=6e,pb=0,lc=4 source_code.tar\fP
+.fi
+.RE
+.PP
+LZMA2와 다른 필터를 함께 사용하면 ì¼ë¶€ íŒŒì¼ í˜•ì‹ì— 대해 ì••ì¶•ìœ¨ì„ ê°œì„ í•  수 있습니다. 예를 들면 x86\-32 ë˜ëŠ” x86\-64
+공유 ë¼ì´ë¸ŒëŸ¬ë¦¬ë¥¼ x86 BCJ 필터를 활용하여 압축할 경우:
+.RS
+.PP
+.nf
+\f(CWxz \-\-x86 \-\-lzma2 libfoo.so\fP
+.fi
+.RE
+.PP
+참고로 í•„í„° ì˜µì…˜ì˜ ìˆœì„œëŠ” ìƒë‹¹ížˆ 중요합니다. \fB\-\-x86\fPì„ \fB\-\-lzma\fP ì´ì „ì— ì§€ì •í•˜ë©´ \fBxz\fPì—ì„œ 오류가 나는ë°,
+LZMA2 다ìŒì—는 ì–´ë–¤ í•„í„°ë“  설정할 수 없고, 옵션 ì²´ì¸ìƒ 마지막 í•„í„°ë¡œ x86 BCJ 필터를 사용할 수 없기 때문입니다.
+.PP
+LZMA2와 ë¸íƒ€ 필터는 비트맵 ê·¸ë¦¼ì— ìµœì ì˜ 결과를 가져다줄 수 있습니다. PNGì— ë³´í†µ 안성맞춥ì¸ë°, PNGì—는 단순 ë¸íƒ€ 필터보단
+약간 ë” ê³ ê¸‰ì§„ 필터를 사용하지만, 실제 ì••ì¶•ì„ ì§„í–‰í•  때는 Deflate를 사용하기 때문입니다.
+.PP
+예를 들어 ì´ë¯¸ì§€ë¥¼ 압축하지 ì•Šì€ ë¹„ì••ì¶• TIFFë¡œ 저장해야 하는 경우가 있습니다. ë¸íƒ€ í•„í„°ì˜ ê±°ë¦¬ 매개변수는 그림ì—ì„œ 픽셀당 ë°”ì´íŠ¸
+ìˆ˜ì— ì¼ì¹˜í•˜ë„ë¡ ì„¤ì •í•©ë‹ˆë‹¤. 예를 들면, 24비트 RGB ë¹„íŠ¸ë§µì˜ ê²½ìš° \fBdist=3\fP 거리 매개변수 ê°’ì„ ì„¤ì •í•´ì•¼ 하며, LZMA2
+압축시 3ë°”ì´íŠ¸ ì •ë ¬ì„ ë”°ë¥´ë„ë¡ \fBpb=0\fP ê°’ì„ ì „ë‹¬í•˜ëŠ” ë°©ë²•ë„ ë°”ëžŒì§í•©ë‹ˆë‹¤:
+.RS
+.PP
+.nf
+\f(CWxz \-\-delta=dist=3 \-\-lzma2=pb=0 foo.tiff\fP
+.fi
+.RE
+.PP
+여러 ì´ë¯¸ì§€ë¥¼ ë‹¨ì¼ ì•„ì¹´ì´ë¸Œë¡œ 넣고 싶다면(예: \fB.tar\fP), 모든 ì´ë¯¸ì§€ì— 대해 ë™ì¼í•œ 픽셀당 ë°”ì´íŠ¸ 수가 들어가는 경우ì—ë„ ë¸íƒ€
+í•„í„°ê°€ ë™ìž‘합니다.
+.
+.SH "추가 참조"
+\fBxzdec\fP(1), \fBxzdiff\fP(1), \fBxzgrep\fP(1), \fBxzless\fP(1), \fBxzmore\fP(1),
+\fBgzip\fP(1), \fBbzip2\fP(1), \fB7z\fP(1)
+.PP
+XZ 유틸리티: <https://tukaani.org/xz\-utils/>
+.br
+XZ 임베디드: <https://tukaani.org/xz/embedded/>
+.br
+LZMA SDK: <https://7\-zip.org/sdk.html>
diff --git a/po4a/man/ko/xzdec.1 b/po4a/man/ko/xzdec.1
new file mode 100644
index 00000000..3b0c6eb6
--- /dev/null
+++ b/po4a/man/ko/xzdec.1
@@ -0,0 +1,72 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Author: Lasse Collin
+.\"
+.\" Korean translation for the xz-man
+.\" Seong-ho Cho <darkcircle.0426@gmail.com>, 2023, 2024.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZDEC 1 2024\-01\-19 Tukaani "XZ 유틸리티"
+.SH ì´ë¦„
+xzdec, lzmadec \- .xz와 .lzmaìš© ìž‘ì€ ì••ì¶• í•´ì œ 프로그램
+.SH 요약
+\fBxzdec\fP [\f\fI옵션\fP...\fP] [\fI<파ì¼>...\fP]
+.br
+\fBlzmadec\fP [\f\fI옵션\fP...\fP] [\fI<파ì¼>...\fP]
+.SH 설명
+\fBxzdec\fPì€ liblzma 기반 \fB.xz\fP (그리고 \fB.xz\fP 확장ìžë§Œ) íŒŒì¼ ì••ì¶• í•´ì œ ì „ìš© ë„구 프로그램입니다.
+\fBxzdec\fP ì€ \fBxz\fP(1) ëª…ë ¹ì„ í™œìš©í•˜ì—¬ \fB.xz\fP 파ì¼ì˜ ì••ì¶•ì„ í•´ì œí•  ë•Œ ì“°ë˜ \fBxz \-\-decompress \-\-stdout\fP (그리고 ì¼ë°˜ì ìœ¼ë¡œ ì“°ë˜ ëª‡ê°€ì§€ 다른 ì˜µì…˜ë„ ê°™ì´) ëª…ë ¹ì„ ìž‘ì„±í•˜ë˜ ì¼ìƒì ì¸ 경우를 대신하려 만든 결과물입니다.
+\fBlzmadec\fP 는 \fB.xz\fP íŒŒì¼ ëŒ€ì‹  \fB.lzma\fP 파ì¼ì„ 지ì›í•˜ëŠ” ì ë§Œ 다르며, 나머지는 \fBxzdec\fPê³¼ ë™ì¼í•©ë‹ˆë‹¤.
+.PP
+실행 íŒŒì¼ í¬ê¸°ë¥¼ 줄ì´ë ¤ëŠ” 목ì ìœ¼ë¡œ, \fBxzdec\fP ì—서는 다중\-스레드 실행 ë˜ëŠ” 현지 언어 표기를 지ì›í•˜ì§€ 않으며
+\fBXZ_DEFAULTS\fP 환경 변수와 \fBXZ_OPT\fP 환경 ë³€ìˆ˜ì˜ ì˜µì…˜ ê°’ì„ ì½ì§€ 않습니다. \fBxzdec\fPì€ ë‹¨ê³„ë³„ 진행 정보를
+표시하지 않습니다. \fBxzdec\fP 명령어로 \fBSIGINFO\fP 시그ë„ì„ ë³´ë‚´ë©´ 아무 ë™ìž‘ë„ ì·¨í•˜ì§€ 않지만, \fBSIGUSR1\fP 시그ë„ì„
+ë³´ë‚´ë©´ 프 정보를 표시하는 대신 프로세스를 ë냅니다.
+.SH 옵션
+.TP
+\fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
+\fBxz\fP(1) í˜¸í™˜ì„±ì„ ë¬¸ì œë¡œ 무시합니다. \fBxzdec\fPì€ ì••ì¶• í•´ì œ 기능만 지ì›í•©ë‹ˆë‹¤.
+.TP
+\fB\-k\fP, \fB\-\-keep\fP
+\fBxz\fP(1) í˜¸í™˜ì„±ì„ ë¬¸ì œë¡œ 무시합니다. \fBxzdec\fPì€ ì–´ë–¤ 파ì¼ë„ 만들거나 제거하지 않습니다.
+.TP
+\fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
+\fBxz\fP(1) í˜¸í™˜ì„±ì„ ë¬¸ì œë¡œ 무시합니다. \fBxzdec\fPì€ í•­ìƒ ì••ì¶• 해제한 ë°ì´í„°ë¥¼ 표준 출력으로만 기ë¡í•©ë‹ˆë‹¤.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+ì´ ì˜µì…˜ì„ í•œë²ˆ 지정하면 \fBxzdec\fPì—ì„œ ì–´ë–¤ 경고나 ì•Œë¦¼ì„ í‘œì‹œí•˜ì§€ 않기 ë•Œë¬¸ì— ì•„ë¬´ëŸ° ë™ìž‘ë„ ì·¨í•˜ì§€ 않습니다. 오류 메시지를
+표시하지 않으려면 ì´ ì˜µì…˜ì„ ë‘번 지정하십시오.
+.TP
+\fB\-Q\fP, \fB\-\-no\-warn\fP
+\fBxz\fP(1) í˜¸í™˜ì„±ì„ ë¬¸ì œë¡œ 무시합니다. \fBxzdec\fPì€ ì¢…ë£Œ 코드 2ë²ˆì„ ì‚¬ìš©í•˜ì§€ 않습니다.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+ë„ì›€ë§ ë©”ì‹œì§€ë¥¼ 나타내고 무사히 나갑니다.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+\fBxzdec\fPê³¼ liblzmaì˜ ë²„ì „ 번호를 나타냅니다.
+.SH "종료 ìƒíƒœ"
+.TP
+\fB0\fP
+모든 ìƒíƒœ 양호.
+.TP
+\fB1\fP
+오류 ë°œìƒ.
+.PP
+\fBxzdec\fP ì€ \fBxz\fPì— ìžˆëŠ” 경고 메시지를 출력하지 않기 ë•Œë¬¸ì— \fBxzdec\fP ì—서는 종료 코드 2ë²ˆì„ ì‚¬ìš©í•˜ì§€ 않습니다.
+.SH 참고
+보통 ë§¤ì¼ ì‚¬ìš©í•˜ì‹¤ 목ì ì´ë¼ë©´ \fBxzdec\fP ë˜ëŠ” \fBlzmadec\fP 대신 \fBxz\fP ëª…ë ¹ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤. \fBxzdec\fP ë˜ëŠ”
+\fBlzmadec\fPì€ ì™„ì „í•œ ê¸°ëŠ¥ì„ ê°–ì¶˜ \fBxz\fP(1) 보다는 ìž‘ì€ ì••ì¶• í•´ì œ í”„ë¡œê·¸ëž¨ì„ ì‚¬ìš©í•´ì•¼ í•  경우ì—만 사용하ë¼ê³  있는
+명령입니다.
+.PP
+\fBxzdec\fP ê³¼ \fBlzmadec\fP ì€ ì‹¤ì œë¡œ 그렇게 ìž‘ì€ê±´ 아닙니다. ì»´íŒŒì¼ ì‹œê°„ì— liblzmaì—ì„œ 얼마나 ê¸°ëŠ¥ì„ ë–¨ê¶ˆë‚´ëŠëƒì—
+ë”°ë¼ ë” ì¤„ì–´ë“¤ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤ë§Œ, 보통 임베디드 ìš´ì˜ì²´ì œ ë°°í¬íŒì´ ì•„ë‹Œ 경우는 ì´ë ‡ê²Œ í•  수가 없습니다. 실제로 ìž‘ì€ \fB.xz\fP 압축
+í•´ì œ í”„ë¡œê·¸ëž¨ì´ í•„ìš”í•˜ë‹¤ë©´ XZ 임베디드 ì‚¬ìš©ì„ ê³ ë ¤í•˜ì‹­ì‹œì˜¤.
+.SH "추가 참조"
+\fBxz\fP(1)
+.PP
+XZ 임베디드: <https://tukaani.org/xz/embedded/>
diff --git a/po4a/man/ko/xzdiff.1 b/po4a/man/ko/xzdiff.1
new file mode 100644
index 00000000..20e5644f
--- /dev/null
+++ b/po4a/man/ko/xzdiff.1
@@ -0,0 +1,51 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Lasse Collin
+.\" Jia Tan
+.\"
+.\" Korean translation for the xz-man
+.\" Seong-ho Cho <darkcircle.0426@gmail.com>, 2023, 2024.
+.\"
+.\" (Note that this file is not based on gzip's zdiff.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZDIFF 1 2024\-02\-13 Tukaani "XZ 유틸리티"
+.SH ì´ë¦„
+xzcmp, xzdiff, lzcmp, lzdiff \- 압축 파ì¼ì„ 비êµí•©ë‹ˆë‹¤
+.
+.SH 요약
+\fBxzcmp\fP [\fI<옵션>...\fP] \fI<파ì¼1>\fP [\fI<파ì¼2>\fP]
+.br
+\fBxzdiff\fP \&...
+.br
+\fBlzcmp\fP \&...
+.br
+\fBlzdiff\fP \&...
+.
+.SH 설명
+\fBxzcmp\fP 와 \fBxzdiff\fP ëª…ë ¹ì€ ì••ì¶• 해제한 ë‘ íŒŒì¼ì˜ ë‚´ìš©ì„ ë¹„êµí•©ë‹ˆë‹¤. 압축 해제한 파ì¼ì˜ ë°ì´í„°ì™€ 옵션ì€
+\fB\-\-help\fP 옵션 ë˜ëŠ” \fB\-\-version\fP ì˜µì…˜ì„ ì§€ì •í•˜ì§€ 않는다면, \fBcmp\fP(1) ë˜ëŠ” \fBdiff\fP(1) 명령으로
+전달합니다.
+.PP
+\fI<파ì¼1>\fP ê³¼ \fI<파ì¼2>\fP를 ëª¨ë‘ ì§€ì •í–ˆë‹¤ë©´, 지정한 파ì¼ì€ ì´ë¯¸ 압축해제한 파ì¼ì´ê±°ë‚˜,
+\fBxz\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1), \fBzstd\fP(1), \fBlz4\fP(1) 명령으로
+압축해제할 수 있는 형ì‹ì˜ 파ì¼ì¼ 수 있습니다. 필요한 압축 í•´ì œ ëª…ë ¹ì€ \fI<파ì¼1>\fP ê³¼
+\fI<파ì¼2>\fPì˜ íŒŒì¼ ì´ë¦„ 확장ìžë¡œ 결정합니다. ì•Œ 수 없는 확장ìžë¥¼ 지닌 파ì¼ì€ ì´ë¯¸ ì••ì¶•ì„ í•´ì œí–ˆê±°ë‚˜
+\fBxz\fP(1) 명령으로 압축 해제할 수 있는 형ì‹ìœ¼ë¡œ 간주합니다.
+.PP
+íŒŒì¼ ì´ë¦„ì„ í•˜ë‚˜ë§Œ 지정한다면, \fI<파ì¼1>\fPì˜ í™•ìž¥ìžëŠ” ì§€ì› ì••ì¶• 형ì‹ì˜ 확장ìžì—¬ì•¼ 하며,
+\fI<파ì¼2>\fP는 \fI<파ì¼1>\fPì—ì„œ 압축 íŒŒì¼ í™•ìž¥ìžë¥¼ 제거한 파ì¼ë¡œ 간주합니다.
+.PP
+\fBlzcmp\fP와 \fBlzdiff\fP ëª…ë ¹ì€ LZMA 유틸리티 하위 호환용으로 제공합니다.
+.
+.SH "종료 ìƒíƒœ"
+압축 í•´ì œ 오류가 나타나는 경우, 종료 코드는 \fB2\fP입니다. 그렇지 ì•Šì„ ê²½ìš° \fBcmp\fP(1) ë˜ëŠ” \fBdiff\fP(1) 명령ì˜
+종료 코드를 활용합니다.
+.
+.SH "추가 참조"
+\fBcmp\fP(1), \fBdiff\fP(1), \fBxz\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1),
+\fBzstd\fP(1), \fBlz4\fP(1)
diff --git a/po4a/man/ko/xzgrep.1 b/po4a/man/ko/xzgrep.1
new file mode 100644
index 00000000..932ff9e9
--- /dev/null
+++ b/po4a/man/ko/xzgrep.1
@@ -0,0 +1,84 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Lasse Collin
+.\" Jia Tan
+.\"
+.\" Korean translation for the xz-man
+.\" Seong-ho Cho <darkcircle.0426@gmail.com>, 2023, 2024.
+.\"
+.\" (Note that this file is not based on gzip's zgrep.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZGREP 1 2024\-02\-13 Tukaani "XZ 유틸리티"
+.SH ì´ë¦„
+xzgrep \- íŒ¨í„´ì„ í™œìš©í•˜ì—¬ 가능한 ë°©ì‹ìœ¼ë¡œ 압축한 파ì¼ì˜ ë‚´ìš©ì„ ê²€ìƒ‰í•©ë‹ˆë‹¤
+.
+.SH 요약
+\fBxzgrep\fP [\fI<옵션>...\fP] [\fI<패턴목ë¡>\fP] [\fI<파ì¼>...\fP]
+.br
+\fBxzegrep\fP \&...
+.br
+\fBxzfgrep\fP \&...
+.br
+\fBlzgrep\fP \&...
+.br
+\fBlzegrep\fP \&...
+.br
+\fBlzfgrep\fP \&...
+.
+.SH 설명
+\fBxzgrep\fPì€ ì••ì¶• 해제한 파ì¼ì˜ ë‚´ìš©ì— \fBgrep\fP(1)ì„ ì‹¤í–‰í•©ë‹ˆë‹¤. \fI<파ì¼>\fP 형ì‹ì€ íŒŒì¼ ì´ë¦„ 확장으로
+결정합니다. \fI<파ì¼>\fPì—ì„œ 지ì›í•˜ëŠ” 확장ìžëŠ” \fBxz\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1),
+\fBlzop\fP(1), \fBzstd\fP(1), \fBlz4\fP(1)ë¡œ 압축 해제할 수 있는 파ì¼ì˜ 확장ìžìž…니다. 다른 파ì¼ì€ ì´ë¯¸ ì••ì¶•ì„ í•´ì œí•œ
+파ì¼ë¡œ 간주합니다.
+.PP
+지정한 \fI<파ì¼>\fPì´ ì—†ê±°ë‚˜ \fI<파ì¼>\fP ê°’ì´ \fB\-\fPì´ë¼ë©´ 표준 ìž…ë ¥ì„ ì½ì–´ë“¤ìž…니다. 표준 ìž…ë ¥ì„
+ì½ì–´ë“¤ì¼ ë•Œ, \fBxz\fP(1) ë°©ì‹ìœ¼ë¡œ ì••ì¶•ì„ í•´ì œí•˜ëŠ” 파ì¼ë§Œ 지ì›í•©ë‹ˆë‹¤. 다른 파ì¼ì€ ì´ë¯¸ ì••ì¶•ì„ í•´ì œí•œ 파ì¼ë¡œ 간주합니다.
+.PP
+ëŒ€ë¶€ë¶„ì˜ \fBgrep\fP(1)ì˜ \fI<옵션>\fPì„ ì§€ì›í•©ë‹ˆë‹¤. 그러나 ë‹¤ìŒ ì˜µì…˜ì€ ì§€ì›í•˜ì§€ 않습니다:
+.IP "" 4
+\fB\-r\fP, \fB\-\-recursive\fP
+.IP "" 4
+\fB\-R\fP, \fB\-\-dereference\-recursive\fP
+.IP "" 4
+\fB\-d\fP, \fB\-\-directories=\fP\fIaction\fP
+.IP "" 4
+\fB\-Z\fP, \fB\-\-null\fP
+.IP "" 4
+\fB\-z\fP, \fB\-\-null\-data\fP
+.IP "" 4
+\fB\-\-include=\fP\fIglob\fP
+.IP "" 4
+\fB\-\-exclude=\fP\fIglob\fP
+.IP "" 4
+\fB\-\-exclude\-from=\fP\fIfile\fP
+.IP "" 4
+\fB\-\-exclude\-dir=\fP\fIglob\fP
+.PP
+\fBxzegrep\fPì€ \fBxzgrep \-E\fP ëª…ë ¹ì˜ ë³„ì¹­ìž…ë‹ˆë‹¤. \fBxzfgrep\fPì€ \fBxzgrep \-F\fP ëª…ë ¹ì˜ ë³„ì¹­ìž…ë‹ˆë‹¤.
+.PP
+\fBlzgrep\fP, \fBlzegrep\fP, \fBlzfgrep\fP ëª…ë ¹ì€ LZMA 유틸리티 하위 호환용으로 제공합니다.
+.
+.SH "종료 ìƒíƒœ"
+.TP
+0
+최소한 하나 ì´ìƒì˜ 파ì¼ì—ì„œ 하나 ì´ìƒì˜ ì¼ì¹˜í•˜ëŠ” 결과를 찾았습니다. 오류가 없습니다.
+.TP
+1
+ì–´ë–¤ ìž…ë ¥ 파ì¼ì—서든 ì¼ì¹˜í•˜ëŠ” ë‚´ìš©ì´ ì—†ìŠµë‹ˆë‹¤. 오류가 없습니다.
+.TP
+>1
+하나 ì´ìƒì˜ 오류가 나타납니다. ì¼ì¹˜í•˜ëŠ” í•­ëª©ì„ ì°¾ì•„ë‚¼ 지 여부는 ì•Œ 수 없습니다.
+.
+.SH 환경
+.TP
+\fBGREP\fP
+\fBGREP\fP 환경변수 ê°’ì´ ë¹„ì–´ìžˆì§€ 않으면, \fBgrep\fP, \fBgrep \-E\fP, \fBgrep \-F\fP 명령 대신 활용합니다.
+.
+.SH "추가 참조"
+\fBgrep\fP(1), \fBxz\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1), \fBzstd\fP(1),
+\fBlz4\fP(1), \fBzgrep\fP(1)
diff --git a/po4a/man/ko/xzless.1 b/po4a/man/ko/xzless.1
new file mode 100644
index 00000000..0e4798f6
--- /dev/null
+++ b/po4a/man/ko/xzless.1
@@ -0,0 +1,41 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Andrew Dudman
+.\" Lasse Collin
+.\"
+.\" Korean translation for the xz-man
+.\" Seong-ho Cho <darkcircle.0426@gmail.com>, 2023, 2024.
+.\"
+.\" (Note that this file is not based on gzip's zless.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZLESS 1 2024\-02\-12 Tukaani "XZ 유틸리티"
+.SH ì´ë¦„
+xzless, lzless \- xz ë˜ëŠ” lzma 압축 (í…스트) 파ì¼ì„ 봅니다
+.SH 요약
+\fBxzless\fP [\fI<파ì¼>\fP...]
+.br
+\fBlzless\fP [\fI<파ì¼>\fP...]
+.SH 설명
+\fBxzless\fP는 압축 íŒŒì¼ ë‚´ìš©ì„ í„°ë¯¸ë„ì— ë‚˜íƒ€ë‚´ëŠ” í•„í„° 프로그램입니다. \fBxz\fP(1) ë°©ì‹ìœ¼ë¡œ ì••ì¶•ì„ í•´ì œí•˜ëŠ” 파ì¼ë§Œ
+지ì›í•©ë‹ˆë‹¤. 다른 파ì¼ì€ ì´ë¯¸ ì••ì¶•ì„ í•´ì œí•œ 파ì¼ë¡œ 간주합니다. 주어진 \fI<파ì¼>\fP ê°’ì´ ì—†ë‹¤ë©´, \fBxzless\fP는
+표준 ìž…ë ¥ì„ ì½ì–´ë“¤ìž…니다.
+.PP
+\fBxzless\fP 는 \fBless\fP(1) 를 사용하여 ì¶œë ¥ì„ ë§‰ìŠµë‹ˆë‹¤. \fBxzmore\fP 와는 다르게, 환경 변수 설정으로 ì„ íƒí•œ
+페ì´ì €ë¥¼ 바꿀 수 없습니다. ëª…ë ¹ì€ \fBmore\fP(1) 와 \fBvi\fP(1) ê°€ 기반ì´ë©°, 앞뒤로 움ì§ì´ê³  검색할 수 있습니다.
+ìžì„¸í•œ 정보는 \fBless\fP(1) 설명서를 참고하십시오.
+.PP
+\fBlzless\fP ëª…ë ¹ì€ LZMA 유틸리티 하위 호환용으로 제공합니다.
+.SH 환경
+.TP
+\fBLESSMETACHARS\fP
+ì…¸ì—ì„œ ë™ìž‘í•  ìˆ˜ë„ ìžˆëŠ” 특수 ë¬¸ìž ëª©ë¡ìž…니다. í™˜ê²½ì— ë¯¸ë¦¬ 설정해ë‘지 않았다면 \fBxzless\fPì—ì„œ 설정합니다.
+.TP
+\fBLESSOPEN\fP
+ìž…ë ¥ 파ì¼ì„ \fBless\fP(1) ì— ì „ë‹¬í•˜ê¸° ì „ì— \fBxz\fP(1) 압축 í•´ì œ í”„ë¡œê·¸ëž¨ì„ ì‹¤í–‰í•´ì„œ 미리 처리하는 ëª…ë ¹í–‰ì„ ì„¤ì •í•©ë‹ˆë‹¤.
+.SH "추가 참조"
+\fBless\fP(1), \fBxz\fP(1), \fBxzmore\fP(1), \fBzless\fP(1)
diff --git a/po4a/man/ko/xzmore.1 b/po4a/man/ko/xzmore.1
new file mode 100644
index 00000000..2caa95a5
--- /dev/null
+++ b/po4a/man/ko/xzmore.1
@@ -0,0 +1,42 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Andrew Dudman
+.\" Lasse Collin
+.\"
+.\" Korean translation for the xz-man
+.\" Seong-ho Cho <darkcircle.0426@gmail.com>, 2023, 2024.
+.\"
+.\" (Note that this file is based on xzless.1 instead of gzip's zmore.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZMORE 1 2024\-02\-12 Tukaani "XZ 유틸리티"
+.SH ì´ë¦„
+xzmore, lzmore \- xz 압축 (í…스트) íŒŒì¼ ë˜ëŠ” lzma 압축 (í…스트) 파ì¼ì„ 봅니다
+.
+.SH 요약
+\fBxzmore\fP [\fI<파ì¼>\fP...]
+.br
+\fBlzmore\fP [\fI<파ì¼>\fP...]
+.
+.SH 설명
+\fBxzmore\fP ëª…ë ¹ì€ ì••ì¶• 파ì¼ì— 들어있는 í…스트를 \fBmore\fP(1) 명령으로 터미ë„ì— ë‚˜íƒ€ëƒ…ë‹ˆë‹¤. \fBxz\fP(1) ë°©ì‹ìœ¼ë¡œ
+ì••ì¶•ì„ í•´ì œí•˜ëŠ” 파ì¼ë§Œ 지ì›í•©ë‹ˆë‹¤. 다른 파ì¼ì€ ì´ë¯¸ ì••ì¶•ì„ í•´ì œí•œ 파ì¼ë¡œ 간주합니다. \fI<파ì¼>\fPì„ ì§€ì •í•˜ì§€
+않으면, \fBxzmore\fP 프로그램ì—서는 표준 ìž…ë ¥ì„ ì½ì–´ë“¤ìž…니다. 키보드 명령 정보는 \fBmore\fP(1) 설명서를 참고하십시오.
+.PP
+참고로 \fBmore\fP(1) 명령 êµ¬í˜„ì²´ì— ë”°ë¼ ë°˜ëŒ€ ë°©í–¥(윗방향)ìœ¼ë¡œì˜ ìŠ¤í¬ë¡¤ì€ 못할 ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. \fBxzmore\fP 명령ì´
+\fBmore\fP(1) ëª…ë ¹ì— ì••ì¶• 해제한 ë°ì´í„°ë¥¼ 파ì´í”„ë¡œ 전달하기 때문입니다. \fBxzless\fP(1)는 좀 ë” ë‚˜ì€ ê¸°ëŠ¥ì„ ê°€ì§„
+\fBless\fP(1) ëª…ë ¹ì„ í™œìš©í•©ë‹ˆë‹¤.
+.PP
+\fBlzmore\fP ëª…ë ¹ì€ LZMA 유틸리티 하위 호환용으로 제공합니다.
+.
+.SH 환경
+.TP
+\fBPAGER\fP
+\fBPAGER\fP 환경변수 ê°’ì„ ì„¤ì •í–ˆë‹¤ë©´ \fBmore\fP(1) 대신 해당 환경변수 ê°’ì„ ì‚¬ìš©í•©ë‹ˆë‹¤.
+.
+.SH "추가 참조"
+\fBmore\fP(1), \fBxz\fP(1), \fBxzless\fP(1), \fBzmore\fP(1)
diff --git a/po4a/man/pt_BR/lzmainfo.1 b/po4a/man/pt_BR/lzmainfo.1
new file mode 100644
index 00000000..5566566a
--- /dev/null
+++ b/po4a/man/pt_BR/lzmainfo.1
@@ -0,0 +1,45 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Author: Lasse Collin
+.\"
+.\" Brazilian Portuguese translations for xz package
+.\" Traduções em português brasileiro para o pacote xz.
+.\" Rafael Fontenelle <rafaelff@gnome.org>, 2022-2023.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH LZMAINFO 1 2013\-06\-30 Tukaani "XZ Utils"
+.SH NOME
+lzmainfo \- mostra informações armazenadas no cabeçalho do arquivo .lzma
+.SH SINOPSE
+\fBlzmainfo\fP [\fB\-\-help\fP] [\fB\-\-version\fP] [\fIarquivo...\fP]
+.SH DESCRIÇÃO
+\fBlzmainfo\fP mostra as informações armazenadas no cabeçalho do arquivo
+\&\fB.lzma\fP. Ele lê os primeiros 13 bytes do \fIarquivo\fP especificado,
+decodifica o cabeçalho e o imprime na saída padrão em formato legível por
+humanos. Se nenhum \fIarquivo\fP for fornecido ou \fIarquivo\fP for \fB\-\fP, a
+entrada padrão será lida.
+.PP
+Normalmente, as informações mais interessantes são o tamanho descompactado e
+o tamanho do dicionário. O tamanho não compactado pode ser mostrado apenas
+se o arquivo estiver na variante de formato \fB.lzma\fP não transmitido. A
+quantidade de memória necessária para descompactar o arquivo é de algumas
+dezenas de kilobytes mais o tamanho do dicionário.
+.PP
+\fBlzmainfo\fP está incluído no XZ Utils principalmente para compatibilidade
+com versões anteriores do LZMA Utils.
+.SH "STATUS DE SAÃDA"
+.TP
+\fB0\fP
+Está tudo bem.
+.TP
+\fB1\fP
+Ocorreu um erro.
+.SH BUGS
+\fBlzmainfo\fP usa \fBMB\fP enquanto o sufixo correto seria \fBMiB\fP (2^20
+bytes). Isso é para manter a saída compatível com LZMA Utils.
+.SH "VEJA TAMBÉM"
+\fBxz\fP(1)
diff --git a/po4a/man/pt_BR/xz.1 b/po4a/man/pt_BR/xz.1
new file mode 100644
index 00000000..e27216f3
--- /dev/null
+++ b/po4a/man/pt_BR/xz.1
@@ -0,0 +1,1930 @@
+'\" t
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Lasse Collin
+.\" Jia Tan
+.\"
+.\" Brazilian Portuguese translations for xz package
+.\" Traduções em português brasileiro para o pacote xz.
+.\" Rafael Fontenelle <rafaelff@gnome.org>, 2022-2023.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZ 1 2024\-02\-25 Tukaani "XZ Utils"
+.
+.SH NOME
+xz, unxz, xzcat, lzma, unlzma, lzcat \- Compacta ou descompacta arquivos .xz
+e .lzma
+.
+.SH SINOPSE
+\fBxz\fP [\fIopção...\fP] [\fIarquivo...\fP]
+.
+.SH "COMANDOS APELIDOS"
+\fBunxz\fP é equivalente a \fBxz \-\-decompress\fP.
+.br
+\fBxzcat\fP é equivalente a \fBxz \-\-decompress \-\-stdout\fP.
+.br
+\fBlzma\fP é equivalente a \fBxz \-\-format=lzma\fP.
+.br
+\fBunlzma\fP é equivalente a \fBxz \-\-format=lzma \-\-decompress\fP.
+.br
+\fBlzcat\fP é equivalente a \fBxz \-\-format=lzma \-\-decompress \-\-stdout\fP.
+.PP
+Ao escrever scripts que precisam descompactar arquivos, é recomendável
+sempre usar o nome \fBxz\fP com os argumentos apropriados (\fBxz \-d\fP ou \fBxz \-dc\fP) em vez dos nomes \fBunxz\fP e \fBxzcat\fP.
+.
+.SH DESCRIÇÃO
+\fBxz\fP é uma ferramenta de compactação de dados de uso geral com sintaxe de
+linha de comando semelhante ao \fBgzip\fP(1) e ao \fBbzip2\fP(1). O formato de
+arquivo nativo é o formato \fB.xz\fP, mas o formato legado \fB.lzma\fP usado por
+LZMA Utils e fluxos compactados brutos sem cabeçalhos de formato de
+contêiner também são suportados. Além disso, a descompactação do formato
+\&\fB.lz\fP usado por \fBlzip\fP é suportada.
+.PP
+\fBxz\fP compacta ou descompacta cada \fIarquivo\fP de acordo com o modo de
+operação selecionado. Se nenhum \fIarquivo\fP for fornecido ou \fIarquivo\fP for
+\fB\-\fP, \fBxz\fP lê da entrada padrão e grava os dados processados na saída
+padrão. \fBxz\fP recusará (exibirá um erro e ignorará o \fIarquivo\fP) para gravar
+dados compactados na saída padrão se for um terminal. Da mesma forma, \fBxz\fP
+se recusará a ler dados compactados da entrada padrão se for um terminal.
+.PP
+A menos que \fB\-\-stdout\fP seja especificado, \fIarquivos\fP diferentes de \fB\-\fP
+são gravados em um novo arquivo cujo nome é derivado do nome \fIarquivo\fP de
+origem:
+.IP \(bu 3
+Ao compactar, o sufixo do formato de arquivo de destino (\fB.xz\fP ou \fB.lzma\fP)
+é anexado ao nome do arquivo de origem para obter o nome do arquivo de
+destino.
+.IP \(bu 3
+Ao descompactar, o sufixo \fB.xz\fP, \fB.lzma\fP ou \fB.lz\fP é removido do nome do
+arquivo para obter o nome do arquivo de destino. \fBxz\fP também reconhece os
+sufixos \fB.txz\fP e \fB.tlz\fP e os substitui pelo sufixo \fB.tar\fP.
+.PP
+Se o arquivo de destino já existir, um erro será exibido e \fIarquivo\fP será
+ignorado.
+.PP
+A menos que grave na saída padrão, \fBxz\fP exibirá um aviso e pulará o
+\fIarquivo\fP se qualquer um dos seguintes se aplicar:
+.IP \(bu 3
+\fIArquivo\fP não é um arquivo normal. Links simbólicos não são seguidos e,
+portanto, não são considerados arquivos comuns.
+.IP \(bu 3
+\fIArquivo\fP tem mais de um link físico.
+.IP \(bu 3
+\fIFile\fP tem setuid, setgid ou sticky bit definido.
+.IP \(bu 3
+O modo de operação está definido para compactar e o \fIarquivo\fP já possui um
+sufixo do formato de arquivo de destino (\fB.xz\fP ou \fB.txz\fP ao compactar para
+o formato \fB.xz\fP e \fB.lzma \fP ou \fB.tlz\fP ao compactar para o formato
+\&\fB.lzma\fP).
+.IP \(bu 3
+O modo de operação está definido para descompactar e o \fIarquivo\fP não possui
+um sufixo de nenhum dos formatos de arquivo suportados (\fB.xz\fP, \fB.txz\fP,
+\&\fB.lzma\fP, \fB.tlz\fP , ou \fB.lz\fP).
+.PP
+Depois de compactar ou descompactar com êxito o \fIarquivo\fP, o \fBxz\fP copia o
+dono, grupo, permissões, horário de acesso e horário de modificação do
+\fIarquivo\fP de origem para o arquivo de destino. Se a cópia do grupo falhar,
+as permissões serão modificadas para que o arquivo de destino não se torne
+acessível a usuários que não têm permissão para acessar o \fIarquivo\fP de
+origem. \fBxz\fP ainda não oferece suporte à cópia de outros metadados, como
+listas de controle de acesso ou atributos estendidos.
+.PP
+Depois que o arquivo de destino for fechado com êxito, o \fIarquivo\fP de
+origem será removido, a menos que \fB\-\-keep\fP tenha sido especificado. O
+\fIarquivo\fP de origem nunca é removido se a saída for gravada na saída padrão
+ou se ocorrer um erro.
+.PP
+O envio de \fBSIGINFO\fP ou \fBSIGUSR1\fP para o processo do \fBxz\fP faz com que ele
+imprima informações de andamento para erro padrão. Isso tem uso limitado,
+pois quando o erro padrão é um terminal, usar \fB\-\-verbose\fP exibirá um
+indicador de progresso de atualização automática.
+.
+.SS "Uso de memória"
+O uso de memória de \fBxz\fP varia de algumas centenas de kilobytes a vários
+gigabytes, dependendo das configurações de compactação. As configurações
+usadas ao compactar um arquivo determinam os requisitos de memória do
+descompactador. Normalmente, o descompactador precisa de 5\ % a 20\ % da
+quantidade de memória que o compactador precisou ao criar o arquivo. Por
+exemplo, descompactar um arquivo criado com \fBxz \-9\fP atualmente requer 65\ MiB de memória. Ainda assim, é possível ter arquivos \fB.xz\fP que requerem
+vários gigabytes de memória para descompactar.
+.PP
+Especialmente os usuários de sistemas mais antigos podem achar irritante a
+possibilidade de uso de memória muito grande. Para evitar surpresas
+desconfortáveis, o \fBxz\fP possui um limitador de uso de memória embutido, que
+está desabilitado por padrão. Embora alguns sistemas operacionais forneçam
+maneiras de limitar o uso de memória dos processos, confiar nele não foi
+considerado flexível o suficiente (por exemplo, usar \fBulimit\fP(1) para
+limitar a memória virtual tende a prejudicar \fBmmap\fP(2)).
+.PP
+O limitador de uso de memória pode ser ativado com a opção de linha de
+comando \fB\-\-memlimit=\fP\fIlimite\fP. Geralmente é mais conveniente habilitar o
+limitador por padrão definindo a variável de ambiente \fBXZ_DEFAULTS\fP, por
+exemplo, \fBXZ_DEFAULTS=\-\-memlimit=150MiB\fP. É possível definir os limites
+separadamente para compactação e descompactação usando
+\fB\-\-memlimit\-compress=\fP\fIlimite\fP e \fB\-\-memlimit\-decompress=\fP\fIlimite\fP. Usar
+essas duas opções fora de \fBXZ_DEFAULTS\fP raramente é útil porque uma única
+execução de \fBxz\fP não pode fazer compactação e descompactação e
+\fB\-\-memlimit=\fP\fIlimite\fP (ou \fB\-M\fP \fIlimite\fP ) é mais curto para digitar na
+linha de comando.
+.PP
+Se o limite de uso de memória especificado for excedido durante a
+descompactação, \fBxz\fP exibirá um erro e a descompactação do arquivo
+falhará. Se o limite for excedido durante a compactação, \fBxz\fP tentará
+reduzir as configurações para que o limite não seja mais excedido (exceto ao
+usar \fB\-\-format=raw\fP ou \fB\-\-no\-adjust\fP). Dessa forma, a operação não
+falhará, a menos que o limite seja muito pequeno. A escala das configurações
+é feita em etapas que não correspondem às predefinições do nível de
+compactação, por exemplo, se o limite for apenas um pouco menor que o valor
+necessário para \fBxz \-9\fP, as configurações serão reduzidas apenas um pouco ,
+não até \fBxz \-8\fP.
+.
+.SS "Concatenação e preenchimento com arquivos .xz"
+É possível concatenar arquivos \fB.xz\fP como estão. \fBxz\fP irá descompactar
+tais arquivos como se fossem um único arquivo \fB.xz\fP.
+.PP
+É possível inserir preenchimento entre as partes concatenadas ou após a
+última parte. O preenchimento deve consistir em bytes nulos e o tamanho do
+preenchimento deve ser um múltiplo de quatro bytes. Isso pode ser útil, por
+exemplo, se o arquivo \fB.xz\fP for armazenado em uma mídia que mede tamanhos
+de arquivo em blocos de 512 bytes.
+.PP
+Concatenação e preenchimento não são permitidos com arquivos \fB.lzma\fP ou
+fluxos brutos.
+.
+.SH OPÇÕES
+.
+.SS "Sufixos inteiros e valores especiais"
+Na maioria dos lugares onde um argumento inteiro é esperado, um sufixo
+opcional é suportado para indicar facilmente números inteiros grandes. Não
+deve haver espaço entre o número inteiro e o sufixo.
+.TP
+\fBKiB\fP
+Multiplica o inteiro por 1.024 (2^10). \fBKi\fP, \fBk\fP, \fBkB\fP, \fBK\fP e \fBKB\fP são
+aceitos como sinônimos de \fBKiB\fP.
+.TP
+\fBMiB\fP
+Multiplica o número inteiro por 1.048.576 (2^20). \fBMi\fP, \fBm\fP, \fBM\fP e \fBMB\fP
+são aceitos como sinônimos de \fBMiB\fP.
+.TP
+\fBGiB\fP
+Multiplica o número inteiro por 1.073.741.824 (2^30). \fBGi\fP, \fBg\fP, \fBG\fP e
+\fBGB\fP são aceitos como sinônimos de \fBGiB\fP.
+.PP
+O valor especial \fBmax\fP pode ser usado para indicar o valor inteiro máximo
+suportado pela opção.
+.
+.SS "Modo de operação"
+Se várias opções de modo de operação forem dadas, a última entrará em vigor.
+.TP
+\fB\-z\fP, \fB\-\-compress\fP
+Compacta. Este é o modo de operação padrão quando nenhuma opção de modo de
+operação é especificada e nenhum outro modo de operação está implícito no
+nome do comando (por exemplo, \fBunxz\fP implica em \fB\-\-decompress\fP).
+.TP
+\fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
+Descompacta.
+.TP
+\fB\-t\fP, \fB\-\-test\fP
+Testa a integridade de \fIarquivos\fP compactados. Esta opção é equivalente a
+\fB\-\-decompress \-\-stdout\fP exceto que os dados descompactados são descartados
+em vez de serem gravados na saída padrão. Nenhum arquivo é criado ou
+removido.
+.TP
+\fB\-l\fP, \fB\-\-list\fP
+Imprime informações sobre \fIarquivos\fP compactados. Nenhuma saída
+descompactada é produzida e nenhum arquivo é criado ou removido. No modo de
+lista, o programa não pode ler os dados compactados da entrada padrão ou de
+outras fontes não pesquisáveis.
+.IP ""
+A listagem padrão mostra informações básicas sobre \fIarquivos\fP, um arquivo
+por linha. Para obter informações mais detalhadas, use também a opção
+\fB\-\-verbose\fP. Para obter ainda mais informações, use \fB\-\-verbose\fP duas
+vezes, mas observe que isso pode ser lento, porque obter todas as
+informações extras requer muitas buscas. A largura da saída detalhada excede
+80 caracteres, portanto, canalizar a saída para, por exemplo, \fBless\ \-S\fP
+pode ser conveniente se o terminal não tiver largura o suficiente.
+.IP ""
+A saída exata pode variar entre versões \fBxz\fP e localidades diferentes. Para
+saída legível por máquina, \fB\-\-robot \-\-list\fP deve ser usado.
+.
+.SS "Modificadores de operação"
+.TP
+\fB\-k\fP, \fB\-\-keep\fP
+Não exclui os arquivos de entrada.
+.IP ""
+Desde \fBxz\fP 5.2.6, esta opção também faz \fBxz\fP compactar ou descompactar
+mesmo se a entrada for um link simbólico para um arquivo comum, tiver mais
+de um link físico ou tiver o setuid, setgid ou sticky bit definir. Os bits
+setuid, setgid e sticky não são copiados para o arquivo de destino. Nas
+versões anteriores, isso era feito apenas com \fB\-\-force\fP.
+.TP
+\fB\-f\fP, \fB\-\-force\fP
+Esta opção tem vários efeitos:
+.RS
+.IP \(bu 3
+Se o arquivo de destino já existir, o exclui antes de compactar ou
+descompactar.
+.IP \(bu 3
+Compacta ou descompacta, mesmo que a entrada seja um link simbólico para um
+arquivo normal, tenha mais de um link físico ou tenha setuid, setgid ou
+sticky bit definido. Os bits setuid, setgid e sticky não são copiados para o
+arquivo de destino.
+.IP \(bu 3
+Quando usado com \fB\-\-decompress\fP \fB\-\-stdout\fP e \fBxz\fP não consegue reconhecer
+o tipo do arquivo de origem, copia o arquivo de origem como está na saída
+padrão. Isso permite que \fBxzcat\fP \fB\-\-force\fP seja usado como \fBcat\fP(1) para
+arquivos que não foram compactados com \fBxz\fP. Observe que, no futuro, o
+\fBxz\fP pode oferecer suporte a novos formatos de arquivo compactado, o que
+pode fazer com que o \fBxz\fP descompacte mais tipos de arquivos em vez de
+copiá\-los como na saída padrão. \fB\-\-format=\fP\fIformato\fP pode ser usado para
+restringir \fBxz\fP para descompactar apenas um único formato de arquivo.
+.RE
+.TP
+\fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
+Grava os dados compactados ou descompactados na saída padrão em vez de em um
+arquivo. Isso implica em \fB\-\-keep\fP.
+.TP
+\fB\-\-single\-stream\fP
+Descompacta apenas o primeiro fluxo de \fB.xz\fP e ignora silenciosamente
+possíveis dados de entrada restantes após o fluxo. Normalmente, esse
+restante posterior sem uso faz com que \fBxz\fP exiba um erro.
+.IP ""
+\fBxz\fP nunca descompacta mais de um fluxo de arquivos \fB.lzma\fP ou fluxos
+brutos, mas esta opção ainda faz \fBxz\fP ignorar os possíveis dados
+posteriores após o arquivo \fB.lzma\fP ou fluxo bruto.
+.IP ""
+Esta opção não tem efeito se o modo de operação não for \fB\-\-decompress\fP ou
+\fB\-\-test\fP.
+.TP
+\fB\-\-no\-sparse\fP
+Desativa a criação de arquivos esparsos. Por padrão, ao descompactar em um
+arquivo normal, \fBxz\fP tenta tornar o arquivo esparso se os dados
+descompactados contiverem longas sequências de zeros binários. Ele também
+funciona ao gravar na saída padrão, desde que a saída padrão esteja
+conectada a um arquivo normal e certas condições adicionais sejam atendidas
+para torná\-la segura. A criação de arquivos esparsos pode economizar espaço
+em disco e acelerar a descompactação, reduzindo a quantidade de E/S do
+disco.
+.TP
+\fB\-S\fP \fI.suf\fP, \fB\-\-suffix=\fP\fI.suf\fP
+Ao compactar, usa \fI.suf\fP como sufixo para o arquivo de destino em vez de
+\&\fB.xz\fP ou \fB.lzma\fP. Se não estiver gravando na saída padrão e o arquivo de
+origem já tiver o sufixo \fI.suf\fP, um aviso será exibido e o arquivo será
+ignorado.
+.IP ""
+Ao descompactar, reconhece arquivos com o sufixo \fI.suf\fP além de arquivos
+com o sufixo \fB.xz\fP, \fB.txz\fP, \fB.lzma\fP, \fB.tlz\fP ou \fB.lz\fP . Se o arquivo de
+origem tiver o sufixo \fI.suf\fP, o sufixo será removido para obter o nome do
+arquivo de destino.
+.IP ""
+Ao compactar ou descompactar fluxos brutos (\fB\-\-format=raw\fP), o sufixo
+sempre deve ser especificado, a menos que seja gravado na saída padrão,
+porque não há sufixo padrão para fluxos brutos.
+.TP
+\fB\-\-files\fP[\fB=\fP\fIarquivo\fP]
+Lê os nomes dos arquivos a serem processados em \fIarquivo\fP; se \fIarquivo\fP
+for omitido, os nomes dos arquivos serão lidos da entrada padrão. Os nomes
+de arquivo devem terminar com o caractere de nova linha. Um traço (\fB\-\fP) é
+considerado um nome de arquivo regular; não significa entrada padrão. Se os
+nomes de arquivo forem fornecidos também como argumentos de linha de
+comando, eles serão processados antes da leitura dos nomes de arquivo de
+\fIarquivo\fP.
+.TP
+\fB\-\-files0\fP[\fB=\fP\fIarquivo\fP]
+Isso é idêntico a \fB\-\-files\fP[\fB=\fP\fIarquivo\fP], exceto que cada nome de
+arquivo deve ser finalizado com o caractere nulo.
+.
+.SS "Opções básicas de formato de arquivo e de compactação"
+.TP
+\fB\-F\fP \fIformato\fP, \fB\-\-format=\fP\fIformato\fP
+Especifica o \fIformato\fP de arquivo para compactar ou descompactar:
+.RS
+.TP
+\fBauto\fP
+Este é o padrão. Ao compactar, \fBauto\fP é equivalente a \fBxz\fP. Ao
+descompactar, o formato do arquivo de entrada é detectado
+automaticamente. Observe que os fluxos brutos (criados com \fB\-\-format=raw\fP)
+não podem ser detectados automaticamente.
+.TP
+\fBxz\fP
+Compacta no formato de arquivo \fB.xz\fP ou aceite apenas arquivos \fB.xz\fP ao
+descompactar.
+.TP
+\fBlzma\fP, \fBalone\fP
+Compacta no formato de arquivo legado \fB.lzma\fP ou aceite apenas arquivos
+\&\fB.lzma\fP ao descompactar. O nome alternativo \fBalone\fP é fornecido para
+compatibilidade com versões anteriores do LZMA Utils.
+.TP
+\fBlzip\fP
+Aceita apenas arquivos \fB.lz\fP ao descompactar. Sem suporte a compactação.
+.IP ""
+O formato \fB.lz\fP versão 0 e a versão não estendida 1 são suportados. Os
+arquivos da versão 0 foram produzidos por \fBlzip\fP 1.3 e anteriores. Esses
+arquivos não são comuns, mas podem ser encontrados em arquivos compactados,
+pois alguns pacotes de origem foram lançados nesse formato. As pessoas
+também podem ter arquivos pessoais antigos neste formato. O suporte de
+descompactação para o formato versão 0 foi removido em \fBlzip\fP 1.18.
+.IP ""
+\fBlzip\fP 1.4 e posteriores criam arquivos no formato versão 1. A extensão do
+marcador de descarga de sincronização para o formato versão 1 foi adicionada
+em \fBlzip\fP 1.6. Esta extensão raramente é usada e não é suportada por \fBxz\fP
+(diagnosticada como entrada corrompida).
+.TP
+\fBraw\fP
+Compacta ou descompacta um fluxo bruto (sem cabeçalhos). Isso é destinado
+apenas a usuários avançados. Para decodificar fluxos brutos, você precisa
+usar \fB\-\-format=raw\fP e especificar explicitamente a cadeia de filtros, que
+normalmente seria armazenada nos cabeçalhos do contêiner.
+.RE
+.TP
+\fB\-C\fP \fIverificação\fP, \fB\-\-check=\fP\fIverificação\fP
+Especifica o tipo de verificação de integridade. A verificação é calculada a
+partir dos dados descompactados e armazenados no arquivo \fB.xz\fP. Esta opção
+tem efeito somente ao compactar no formato \fB.xz\fP; o formato \fB.lzma\fP não
+oferece suporte a verificações de integridade. A verificação de integridade
+(se for o caso) é verificada quando o arquivo \fB.xz\fP é descompactado.
+.IP ""
+Tipos de \fIverificação\fP suportados:
+.RS
+.TP
+\fBnone\fP
+Não calcula uma verificação de integridade. Isso geralmente é uma má
+ideia. Pode ser útil quando a integridade dos dados é verificada por outros
+meios.
+.TP
+\fBcrc32\fP
+Calcula CRC32 usando o polinômio do IEEE\-802.3 (Ethernet).
+.TP
+\fBcrc64\fP
+Calcula CRC64 usando o polinômio de ECMA\-182. Este é o padrão, pois é um
+pouco melhor que o CRC32 na detecção de arquivos danificados e a diferença
+de velocidade é insignificante.
+.TP
+\fBsha256\fP
+Calcula SHA\-256. Isso é um pouco mais lento do que CRC32 e CRC64.
+.RE
+.IP ""
+A integridade dos cabeçalhos de \fB.xz\fP é sempre verificada com CRC32. Não é
+possível alterá\-la ou desativá\-la.
+.TP
+\fB\-\-ignore\-check\fP
+Não confere a verificação de integridade dos dados compactados ao
+descompactar. Os valores CRC32 nos cabeçalhos \fB.xz\fP ainda serão conferidos
+normalmente.
+.IP ""
+\fBNão use esta opção a menos que saiba o que está fazendo.\fP Possíveis razões
+para usar esta opção:
+.RS
+.IP \(bu 3
+Tentativa de recuperar dados de um arquivo .xz corrompido.
+.IP \(bu 3
+Acelerar a descompactação. Isso é importante principalmente com SHA\-256 ou
+com arquivos extremamente bem compactados. É recomendável não usar essa
+opção para essa finalidade, a menos que a integridade do arquivo seja
+verificada externamente de alguma outra forma.
+.RE
+.TP
+\fB\-0\fP ... \fB\-9\fP
+Seleciona um nível de predefinição de compactação. O padrão é \fB\-6\fP. Se
+vários níveis de predefinição forem especificados, o último terá efeito. Se
+uma cadeia de filtro personalizada já foi especificada, especificar um nível
+de predefinição de compactação limpa a cadeia de filtro personalizada.
+.IP ""
+As diferenças entre as predefinições são mais significativas do que com
+\fBgzip\fP(1) e \fBbzip2\fP(1). As configurações de compactação selecionadas
+determinam os requisitos de memória do descompactador, portanto, usar um
+nível de predefinição muito alto pode dificultar a descompactação do arquivo
+em um sistema antigo com pouca RAM. Especificamente, \fBnão é uma boa ideia usar cegamente \-9 para tudo\fP como costuma acontecer com \fBgzip\fP(1) e
+\fBbzip2\fP(1).
+.RS
+.TP
+\fB\-0\fP ... \fB\-3\fP
+Estas são predefinições um tanto rápidas. \fB\-0\fP às vezes é mais rápida que
+\fBgzip \-9\fP ao mesmo tempo que compacta muito melhor. As mais altas
+geralmente têm velocidade comparável ao \fBbzip2\fP(1) com taxa de compactação
+comparável ou melhor, embora os resultados dependam muito do tipo de dados
+que estão sendo compactados.
+.TP
+\fB\-4\fP ... \fB\-6\fP
+Compactação boa a muito boa, mantendo o uso de memória do descompactador
+razoável mesmo para sistemas antigos. \fB\-6\fP é o padrão, que geralmente é uma
+boa escolha para distribuir arquivos que precisam ser descompactáveis, mesmo
+em sistemas com apenas 16\ MiB de RAM. (\fB\-5e\fP ou \fB\-6e\fP também vale a pena
+considerar. Veja \fB\-\-extreme\fP.)
+.TP
+\fB\-7 ... \-9\fP
+Eles são como \fB\-6\fP, mas com requisitos de memória de compressor e
+descompressor mais altos. Eles são úteis apenas ao compactar arquivos
+maiores que 8\ MiB, 16\ MiB e 32\ MiB, respectivamente.
+.RE
+.IP ""
+No mesmo hardware, a velocidade de descompactação é aproximadamente um
+número constante de bytes de dados compactados por segundo. Em outras
+palavras, quanto melhor a compactação, mais rápida será a
+descompactação. Isso também significa que a quantidade de saída não
+compactada produzida por segundo pode variar muito.
+.IP ""
+A tabela a seguir resume os recursos das predefinições:
+.RS
+.RS
+.PP
+.TS
+tab(;);
+c c c c c
+n n n n n.
+Predefinição;DicTam;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
+.TE
+.RE
+.RE
+.IP ""
+Descrições das colunas:
+.RS
+.IP \(bu 3
+DicTam é o tamanho do dicionário LZMA2. É desperdício de memória usar um
+dicionário maior que o tamanho do arquivo descompactado. É por isso que é
+bom evitar usar as predefinições \fB\-7\fP ... \fB\-9\fP quando não há real
+necessidade deles. Em \fB\-6\fP e inferior, a quantidade de memória desperdiçada
+geralmente é baixa o suficiente para não importar.
+.IP \(bu 3
+CompCPU é uma representação simplificada das configurações LZMA2 que afetam
+a velocidade de compactação. O tamanho do dicionário também afeta a
+velocidade, portanto, embora o CompCPU seja o mesmo para os níveis \fB\-6\fP
+\&... \fB\-9\fP, níveis mais altos ainda tendem a ser um pouco mais lentos. Para
+obter uma compactação ainda mais lenta e possivelmente melhor, consulte
+\fB\-\-extreme\fP.
+.IP \(bu 3
+CompMem contains the compressor memory requirements in the single\-threaded
+mode. It may vary slightly between \fBxz\fP versions.
+.IP \(bu 3
+DecMem contém os requisitos de memória do descompactador. Ou seja, as
+configurações de compactação determinam os requisitos de memória do
+descompactador. O uso exato da memória do descompactador é um pouco maior do
+que o tamanho do dicionário LZMA2, mas os valores na tabela foram
+arredondados para o próximo MiB completo.
+.RE
+.IP ""
+Memory requirements of the multi\-threaded mode are significantly higher than
+that of the single\-threaded mode. With the default value of
+\fB\-\-block\-size\fP, each thread needs 3*3*DictSize plus CompMem or DecMem. For
+example, four threads with preset \fB\-6\fP needs 660\(en670\ MiB of memory.
+.TP
+\fB\-e\fP, \fB\-\-extreme\fP
+Usa uma variante mais lenta do nível de predefinição de compactação
+selecionado (\fB\-0\fP ... \fB\-9\fP) para obter uma taxa de compactação um pouco
+melhor, mas, com azar, isso também pode piorar. O uso da memória do
+descompressor não é afetado, mas o uso da memória do compactador aumenta um
+pouco nos níveis de predefinição \fB\-0\fP ... \fB\-3\fP.
+.IP ""
+Como existem duas predefinições com tamanhos de dicionário 4\ MiB e 8\ MiB,
+as predefinições \fB\-3e\fP e \fB\-5e\fP usam configurações um pouco mais rápidas
+(CompCPU inferior) do que \fB\-4e\fP e \fB\-6e\fP, respectivamente. Dessa forma, não
+há duas predefinições idênticas.
+.RS
+.RS
+.PP
+.TS
+tab(;);
+c c c c c
+n n n n n.
+Predefinição;DicTam;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
+.TE
+.RE
+.RE
+.IP ""
+Por exemplo, há um total de quatro predefinições que usam o dicionário 8\ MiB, cuja ordem do mais rápido ao mais lento é \fB\-5\fP, \fB\-6\fP, \fB\-5e\fP e
+\fB\-6e\fP.
+.TP
+\fB\-\-fast\fP
+.PD 0
+.TP
+\fB\-\-best\fP
+.PD
+Esses são apelidos um tanto enganosos para \fB\-0\fP e \fB\-9\fP,
+respectivamente. Eles são fornecidos apenas para compatibilidade com versões
+anteriores do LZMA Utils. Evite usar essas opções.
+.TP
+\fB\-\-block\-size=\fP\fItamanho\fP
+Ao compactar para o formato \fB.xz\fP, divida os dados de entrada em blocos de
+\fItamanho\fP bytes. Os blocos são compactados independentemente uns dos
+outros, o que ajuda no multi\-threading e torna possível a descompactação
+limitada de acesso aleatório. Essa opção normalmente é usada para substituir
+o tamanho de bloco padrão no modo multi\-thread, mas também pode ser usada em
+thread única.
+.IP ""
+In multi\-threaded mode about three times \fIsize\fP bytes will be allocated in
+each thread for buffering input and output. The default \fIsize\fP is three
+times the LZMA2 dictionary size or 1 MiB, whichever is more. Typically a
+good value is 2\(en4 times the size of the LZMA2 dictionary or at least 1
+MiB. Using \fIsize\fP 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
+decompression.
+.IP ""
+In single\-threaded mode no block splitting is done by default. Setting this
+option doesn't affect memory usage. No size information 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 \fBxz\fP won't be able decompress the files in multi\-threaded mode.
+.TP
+\fB\-\-block\-list=\fP\fIitems\fP
+When compressing to the \fB.xz\fP format, start a new block with an optional
+custom filter chain after the given intervals of uncompressed data.
+.IP ""
+The \fIitems\fP are a comma\-separated list. Each item consists of an optional
+filter chain number between 0 and 9 followed by a colon (\fB:\fP) 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.
+.IP ""
+If the input file is bigger than the sum of the sizes in \fIitems\fP, the last
+item is repeated until the end of the file. A special value of \fB0\fP may be
+used as the last size to indicate that the rest of the file should be
+encoded as a single block.
+.IP ""
+An alternative filter chain for each block can be specified in combination
+with the \fB\-\-filters1=\fP\fIfilters\fP \&...\& \fB\-\-filters9=\fP\fIfilters\fP options.
+These options define filter chains with an identifier between 1\(en9.
+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 uncompressed size, followed by a colon (\fB:\fP). For
+example, if one specifies \fB\-\-block\-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB\fP
+then blocks will be created using:
+.RS
+.IP \(bu 3
+The filter chain specified by \fB\-\-filters1\fP and 2 MiB input
+.IP \(bu 3
+The filter chain specified by \fB\-\-filters3\fP and 2 MiB input
+.IP \(bu 3
+The filter chain specified by \fB\-\-filters2\fP and 4 MiB input
+.IP \(bu 3
+The filter chain specified by \fB\-\-filters2\fP and 4 MiB input
+.IP \(bu 3
+The default filter chain and 2 MiB input
+.IP \(bu 3
+The default filter chain and 4 MiB input for every block until end of input.
+.RE
+.IP ""
+If one specifies a size that exceeds the encoder's block size (either the
+default value in threaded mode or the value specified with
+\fB\-\-block\-size=\fP\fIsize\fP), the encoder will create additional blocks while
+keeping the boundaries specified in \fIitems\fP. For example, if one specifies
+\fB\-\-block\-size=10MiB\fP \fB\-\-block\-list=5MiB,10MiB,8MiB,12MiB,24MiB\fP 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.
+.IP ""
+No modo multi\-thread, os tamanhos dos blocos são armazenados nos cabeçalhos
+dos blocos. Isso não é feito no modo de thread única, portanto, a saída
+codificada não será idêntica à do modo multi\-thread.
+.TP
+\fB\-\-flush\-timeout=\fP\fItempo_limite\fP
+Ao compactar, se mais de \fItempo_limite\fP milissegundos (um número inteiro
+positivo) se passaram desde a liberação anterior e a leitura de mais entrada
+seria bloqueada, todos os dados de entrada pendentes serão liberados do
+codificador e disponibilizados no fluxo de saída. Isso pode ser útil se
+\fBxz\fP for usado para compactar dados transmitidos por uma rede. Valores
+\fItempo_limite\fP pequenos tornam os dados disponíveis na extremidade
+receptora com um pequeno atraso, mas valores \fItempo_limite\fP grandes
+oferecem melhor taxa de compactação.
+.IP ""
+Esse recurso está desabilitado por padrão. Se esta opção for especificada
+mais de uma vez, a última terá efeito. O valor especial \fItempo_limite\fP de
+\fB0\fP pode ser usado para desabilitar explicitamente esse recurso.
+.IP ""
+Este recurso não está disponível em sistemas não\-POSIX.
+.IP ""
+.\" FIXME
+\fBEste recurso ainda é experimental.\fP Atualmente, \fBxz\fP não é adequado para
+descompactar o fluxo em tempo real devido à forma como \fBxz\fP faz o buffer.
+.TP
+\fB\-\-memlimit\-compress=\fP\fIlimite\fP
+Define um limite de uso de memória para compactação. Se esta opção for
+especificada várias vezes, a última entrará em vigor.
+.IP ""
+Se as configurações de compactação excederem o \fIlimite\fP, \fBxz\fP tentará
+ajustar as configurações para baixo para que o limite não seja mais excedido
+e exibirá um aviso de que o ajuste automático foi feito. Os ajustes são
+feitos nesta ordem: reduzindo o número de encadeamentos, alternando para o
+modo sigle\-thread se até mesmo uma thread no modo multi\-thread exceder o
+\fIlimite\fP e, finalmente, reduzindo o tamanho do dicionário LZMA2.
+.IP ""
+Ao compactar com \fB\-\-format=raw\fP ou se \fB\-\-no\-adjust\fP tiver sido
+especificado, apenas o número de threads pode ser reduzido, pois isso pode
+ser feito sem afetar a saída compactada.
+.IP ""
+Se o \fIlimite\fP não puder ser alcançado mesmo com os ajustes descritos acima,
+um erro será exibido e \fBxz\fP sairá com status de saída 1.
+.IP ""
+O \fIlimite\fP pode ser especificado de várias maneiras:
+.RS
+.IP \(bu 3
+O \fIlimite\fP pode ser um valor absoluto em bytes. Usar um sufixo inteiro como
+\fBMiB\fP pode ser útil. Exemplo: \fB\-\-memlimit\-compress=80MiB\fP
+.IP \(bu 3
+O \fIlimite\fP pode ser especificado como uma porcentagem da memória física
+total (RAM). Isso pode ser útil especialmente ao definir a variável de
+ambiente \fBXZ_DEFAULTS\fP em um script de inicialização de shell que é
+compartilhado entre diferentes computadores. Dessa forma o limite é
+automaticamente maior em sistemas com mais memória. Exemplo:
+\fB\-\-memlimit\-compress=70%\fP
+.IP \(bu 3
+O \fIlimite\fP pode ser redefinido para seu valor padrão, definindo\-o como
+\fB0\fP. Atualmente, isso equivale a definir \fIlimite\fP como \fBmax\fP (sem limite
+de uso de memória).
+.RE
+.IP ""
+Para \fBxz\fP de 32 bits, há um caso especial: se o \fIlimite\fP estiver acima de
+\fB4020\ MiB\fP, o \fIlimite\fP é definido como \fB4020\ MiB\fP. No MIPS32 \fB2000\ MiB\fP é usado em seu lugar. (Os valores \fB0\fP e \fBmax\fP não são afetados por
+isso. Um recurso semelhante não existe para descompactação.) Isso pode ser
+útil quando um executável de 32 bits tem acesso a espaço de endereço de 4\ GiB (2 GiB no MIPS32) enquanto espero não causar danos em outras situações.
+.IP ""
+Consulte também a seção \fBUso de memória\fP.
+.TP
+\fB\-\-memlimit\-decompress=\fP\fIlimite\fP
+Define um limite de uso de memória para descompactação. Isso também afeta o
+modo \fB\-\-list\fP. Se a operação não for possível sem exceder o \fIlimite\fP,
+\fBxz\fP exibirá um erro e a descompactação do arquivo falhará. Consulte
+\fB\-\-memlimit\-compress=\fP\fIlimite\fP para possíveis maneiras de especificar o
+\fIlimite\fP.
+.TP
+\fB\-\-memlimit\-mt\-decompress=\fP\fIlimite\fP
+Define um limite de uso de memória para descompactação multi\-thread. Isso
+pode afetar apenas o número de threads; isso nunca fará com que \fBxz\fP se
+recuse a descompactar um arquivo. Se \fIlimite\fP for muito baixo para permitir
+qualquer multi\-thread, o \fIlimite\fP será ignorado e \fBxz\fP continuará no modo
+de thread única. Observe que se \fB\-\-memlimit\-decompress\fP também for usado,
+ele sempre se aplicará aos modos de thread única e multi\-thread e, portanto,
+o \fIlimite\fP efetivo para multi\-threading nunca será maior que o limite
+definido com \fB\-\-memlimit\-decompress\fP.
+.IP ""
+Em contraste com as outras opções de limite de uso de memória,
+\fB\-\-memlimit\-mt\-decompress=\fP\fIlimite\fP tem um padrão \fIlimite\fP específico do
+sistema. \fBxz \-\-info\-memory\fP pode ser usado para ver o valor atual.
+.IP ""
+Esta opção e seu valor padrão existem porque, sem qualquer limite, o
+descompactador usando threads pode acabar alocando uma quantidade insana de
+memória com alguns arquivos de entrada. Se o \fIlimite\fP padrão for muito
+baixo em seu sistema, sinta\-se à vontade para aumentar o \fIlimite\fP, mas
+nunca defina\-o para um valor maior que a quantidade de RAM utilizável, pois
+com os arquivos de entrada apropriados \fBxz\fP tentará usar essa quantidade de
+memória mesmo com um baixo número de threads. Ficar sem memória ou trocar
+não melhorará o desempenho da descompactação.
+.IP ""
+Consulte \fB\-\-memlimit\-compress=\fP\fIlimite\fP para possíveis maneiras de
+especificar o \fIlimite\fP. Definir \fIlimite\fP como \fB0\fP redefine \fIlimite\fP para
+o valor padrão específico do sistema.
+.TP
+\fB\-M\fP \fIlimite\fP, \fB\-\-memlimit=\fP\fIlimite\fP, \fB\-\-memory=\fP\fIlimite\fP
+Isso é equivalente a especificar \fB\-\-memlimit\-compress=\fP\fIlimite\fP
+\fB\-\-memlimit\-decompress=\fP\fIlimite\fP \fB\-\-memlimit\-mt\-decompress=\fP\fIlimite\fP.
+.TP
+\fB\-\-no\-adjust\fP
+Exibe um erro e saia se o limite de uso de memória não puder ser atendido
+sem ajustar as configurações que afetam a saída compactada. Ou seja, isso
+evita que \fBxz\fP alterne o codificador do modo multi\-thread para o modo
+encadeado único e reduza o tamanho do dicionário LZMA2. Mesmo quando esta
+opção é usada, o número de threads pode ser reduzido para atender ao limite
+de uso de memória, pois isso não afetará a saída compactada.
+.IP ""
+O ajuste automático é sempre desativado ao criar fluxos brutos
+(\fB\-\-format=raw\fP).
+.TP
+\fB\-T\fP \fIthreads\fP, \fB\-\-threads=\fP\fIthreads\fP
+Especifica o número de threads de trabalho a serem usados. Definir
+\fIthreads\fP para um valor especial \fB0\fP faz com que \fBxz\fP use tantos threads
+quanto o(s) processador(es) no suporte do sistema. O número real de
+encadeamentos pode ser menor que \fIthreads\fP se o arquivo de entrada não for
+grande o suficiente para subdividir em threads com as configurações
+fornecidas ou se o uso de mais threads exceder o limite de uso de memória.
+.IP ""
+Os compactadores usando thread única e várias threads produzem saídas
+diferentes. O compactador de thread única fornecerá o menor tamanho de
+arquivo, mas apenas a saída do compactador de várias threads pode ser
+descompactada usando várias threads. Definir \fIthreads\fP como \fB1\fP usará o
+modo de thread única. Definir \fIthreads\fP para qualquer outro valor,
+incluindo \fB0\fP, usará o compressor de várias threads, mesmo que o sistema
+tenha suporte a apenas uma thread de hardware. (\fBxz\fP 5.2.x usou o modo de
+thread única nesta situação.)
+.IP ""
+Para usar o modo de várias threads com apenas uma thread, defina \fIthreads\fP
+como \fB+1\fP. O prefixo \fB+\fP não tem efeito com valores diferentes de \fB1\fP. Um
+limite de uso de memória ainda pode fazer \fBxz\fP alternar para o modo de
+thread única, a menos que \fB\-\-no\-adjust\fP seja usado. O suporte para o
+prefixo \fB+\fP foi adicionado no \fBxz\fP 5.4.0.
+.IP ""
+Se um número automático de threads foi solicitado e nenhum limite de uso de
+memória foi especificado, um limite flexível padrão específico do sistema
+será usado para possivelmente limitar o número de threads. É um limite
+flexível no sentido de que é ignorado se o número de threads se tornar um,
+portanto, um limite flexível nunca impedirá \fBxz\fP de compactar ou
+descompactar. Este limite flexível padrão não fará com que \fBxz\fP alterne do
+modo de várias threads para o modo de thread única. Os limites ativos podem
+ser vistos com \fBxz \-\-info\-memory\fP.
+.IP ""
+Atualmente, o único método de threading é dividir a entrada em blocos e
+comprimi\-los independentemente um do outro. O tamanho padrão do bloco
+depende do nível de compactação e pode ser substituído com a opção
+\fB\-\-block\-size=\fP\fItamanho\fP.
+.IP ""
+A descompactação em threads funciona apenas em arquivos que contêm vários
+blocos com informações de tamanho nos cabeçalhos dos blocos. Todos os
+arquivos grandes o suficiente compactados no modo de várias thread atendem a
+essa condição, mas os arquivos compactados no modo de thread única não
+atendem, mesmo se \fB\-\-block\-size=\fP\fItamanho\fP tiver sido usado.
+.IP ""
+The default value for \fIthreads\fP is \fB0\fP. In \fBxz\fP 5.4.x and older the
+default is \fB1\fP.
+.
+.SS "Cadeias de filtro de compressor personalizadas"
+Uma cadeia de filtro personalizada permite especificar as configurações de
+compactação em detalhes, em vez de confiar nas configurações associadas às
+predefinições. Quando uma cadeia de filtro personalizada é especificada, as
+opções predefinidas (\fB\-0\fP \&...\& \fB\-9\fP e \fB\-\-extreme\fP) anteriores na linha
+de comando são esquecidas. Se uma opção predefinida for especificada após
+uma ou mais opções de cadeia de filtros personalizados, a nova predefinição
+entrará em vigor e as opções de cadeia de filtros personalizados
+especificadas anteriormente serão esquecidas.
+.PP
+Uma cadeia de filtro é comparável à tubulação na linha de comando. Ao
+compactar, a entrada descompactada vai para o primeiro filtro, cuja saída
+vai para o próximo filtro (se houver). A saída do último filtro é gravada no
+arquivo compactado. O número máximo de filtros na cadeia é quatro, mas
+normalmente uma cadeia de filtros tem apenas um ou dois filtros.
+.PP
+Muitos filtros têm limitações sobre onde podem estar na cadeia de filtros:
+alguns filtros podem funcionar apenas como o último filtro na cadeia, alguns
+apenas como filtro não\-último e alguns funcionam em qualquer posição na
+cadeia. Dependendo do filtro, essa limitação é inerente ao projeto do filtro
+ou existe para evitar problemas de segurança.
+.PP
+A custom filter chain can be specified in two different ways. The options
+\fB\-\-filters=\fP\fIfilters\fP and \fB\-\-filters1=\fP\fIfilters\fP \&...\&
+\fB\-\-filters9=\fP\fIfilters\fP 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 filter options is significant! When decoding raw streams
+(\fB\-\-format=raw\fP), the filter chain must be specified in the same order as
+it was specified when compressing. Any individual filter or preset options
+specified before the full chain option (\fB\-\-filters=\fP\fIfilters\fP) will be
+forgotten. Individual filters specified after the full chain option will
+reset the filter chain.
+.PP
+Both the full and individual filter options take filter\-specific \fIoptions\fP
+as a comma\-separated list. Extra commas in \fIoptions\fP are ignored. Every
+option has a default value, so specify those you want to change.
+.PP
+Para ver toda a cadeia de filtros e \fIopções\fP, use \fBxz \-vv\fP (isto é, use
+\fB\-\-verbose\fP duas vezes). Isso também funciona para visualizar as opções da
+cadeia de filtros usadas pelas predefinições.
+.TP
+\fB\-\-filters=\fP\fIfilters\fP
+Specify the full filter chain or a preset in a single option. Each filter
+can be separated by spaces or two dashes (\fB\-\-\fP). \fIfilters\fP may need to be
+quoted on the shell command line so it is parsed as a single option. To
+denote \fIoptions\fP, use \fB:\fP or \fB=\fP. A preset can be prefixed with a \fB\-\fP
+and followed with zero or more flags. The only supported flag is \fBe\fP to
+apply the same options as \fB\-\-extreme\fP.
+.TP
+\fB\-\-filters1\fP=\fIfilters\fP ... \fB\-\-filters9\fP=\fIfilters\fP
+Specify up to nine additional filter chains that can be used with
+\fB\-\-block\-list\fP.
+.IP ""
+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.
+.TP
+\fB\-\-filters\-help\fP
+Display a help message describing how to specify presets and custom filter
+chains in the \fB\-\-filters\fP and \fB\-\-filters1=\fP\fIfilters\fP \&...\&
+\fB\-\-filters9=\fP\fIfilters\fP options, and exit successfully.
+.TP
+\fB\-\-lzma1\fP[\fB=\fP\fIopções\fP]
+.PD 0
+.TP
+\fB\-\-lzma2\fP[\fB=\fP\fIopções\fP]
+.PD
+Adiciona o filtro LZMA1 ou LZMA2 à cadeia de filtros. Esses filtros podem
+ser usados apenas como o último filtro na cadeia.
+.IP ""
+LZMA1 é um filtro legado, que é suportado quase exclusivamente devido ao
+formato de arquivo legado \fB.lzma\fP, que suporta apenas LZMA1. LZMA2 é uma
+versão atualizada do LZMA1 para corrigir alguns problemas práticos do
+LZMA1. O formato \fB.xz\fP usa LZMA2 e não suporta LZMA1. A velocidade de
+compactação e as proporções de LZMA1 e LZMA2 são praticamente as mesmas.
+.IP ""
+LZMA1 e LZMA2 compartilham o mesmo conjunto de \fIopções\fP:
+.RS
+.TP
+\fBpreset=\fP\fIpredefinição\fP
+Redefine todas as \fIopções\fP de LZMA1 ou LZMA2 para
+\fIpredefinição\fP. \fIPredefinição\fP consiste em um número inteiro, que pode ser
+seguido por modificadores de predefinição de uma única letra. O inteiro pode
+ser de \fB0\fP a \fB9\fP, correspondendo às opções de linha de comando \fB\-0\fP
+\&...\& \fB\-9\fP. O único modificador suportado atualmente é \fBe\fP, que
+corresponde a \fB\-\-extreme\fP. Se nenhum \fBpreset\fP for especificado, os valores
+padrão das \fIopções\fP LZMA1 ou LZMA2 serão obtidos da predefinição \fB6\fP.
+.TP
+\fBdict=\fP\fItamanho\fP
+O \fItamanho\fP do dicionário (buffer de histórico) indica quantos bytes dos
+dados não compactados processados recentemente são mantidos na memória. O
+algoritmo tenta encontrar sequências de bytes repetidos (correspondências)
+nos dados não compactados e substituí\-los por referências aos dados
+atualmente no dicionário. Quanto maior o dicionário, maior a chance de
+encontrar uma correspondência. Portanto, aumentar o dicionário \fItamanho\fP
+geralmente melhora a taxa de compactação, mas um dicionário maior que o
+arquivo não compactado é um desperdício de memória.
+.IP ""
+Um \fItamanho\fP de dicionário típico é de 64\ KiB a 64\ MiB. O mínimo é 4\ KiB. O máximo para compactação é atualmente 1,5\ GiB (1536\ MiB). O
+descompactador já oferece suporte a dicionários de até um byte a menos de 4\ GiB, que é o máximo para os formatos de fluxo LZMA1 e LZMA2.
+.IP ""
+O \fItamanho\fP de dicionário e o localizador de correspondência (\fImf\fP) juntos
+determinam o uso de memória do codificador LZMA1 ou LZMA2. O mesmo (ou
+maior) \fItamanho\fP de dicionário é necessário para descompactar que foi usado
+durante a compactação, portanto, o uso de memória do decodificador é
+determinado pelo tamanho do dicionário usado durante a compactação. Os
+cabeçalhos \fB.xz\fP armazenam o \fItamanho\fP de dicionário como 2^\fIn\fP ou 2^\fIn\fP
++ 2^(\fIn\fP\-1), então esses \fItamanhos\fP são um tanto preferidos para
+compactação. Outros \fItamanhos\fP serão arredondados quando armazenados nos
+cabeçalhos \fB.xz\fP.
+.TP
+\fBlc=\fP\fIlc\fP
+Especifica o número de bits de contexto literais. O mínimo é 0 e o máximo é
+4; o padrão é 3. Além disso, a soma de \fIlc\fP e \fIlp\fP não deve exceder 4.
+.IP ""
+Todos os bytes que não podem ser codificados como correspondências são
+codificados como literais. Ou seja, literais são simplesmente bytes de 8
+bits que são codificados um de cada vez.
+.IP ""
+A codificação literal assume que os bits \fIlc\fP mais altos do byte não
+compactado anterior se correlacionam com o próximo byte. Por exemplo, em um
+texto típico em inglês, uma letra maiúscula geralmente é seguida por uma
+letra minúscula, e uma letra minúscula geralmente é seguida por outra letra
+minúscula. No conjunto de caracteres US\-ASCII, os três bits mais altos são
+010 para letras maiúsculas e 011 para letras minúsculas. Quando \fIlc\fP é pelo
+menos 3, a codificação literal pode aproveitar essa propriedade nos dados
+não compactados.
+.IP ""
+O valor padrão (3) geralmente é bom. Se você deseja compactação máxima,
+experimente \fBlc=4\fP. Às vezes ajuda um pouco, às vezes piora a
+compactação. Se piorar, experimente \fBlc=2\fP também.
+.TP
+\fBlp=\fP\fIlp\fP
+Especifica o número de bits de posição literal. O mínimo é 0 e o máximo é 4;
+o padrão é 0.
+.IP ""
+\fILp\fP afeta que tipo de alinhamento nos dados não compactados é assumido ao
+codificar literais. Consulte \fIpb\fP abaixo para obter mais informações sobre
+alinhamento.
+.TP
+\fBpb=\fP\fIpb\fP
+Especifica o número de bits de posição. O mínimo é 0 e o máximo é 4; o
+padrão é 2.
+.IP ""
+\fIPb\fP afeta que tipo de alinhamento nos dados não compactados é assumido em
+geral. O padrão significa alinhamento de quatro bytes (2^\fIpb\fP=2^2=4), que
+geralmente é uma boa escolha quando não há melhor estimativa.
+.IP ""
+Quando o alinhamento é conhecido, definir \fIpb\fP adequadamente pode reduzir
+um pouco o tamanho do arquivo. Por exemplo, com arquivos de texto com
+alinhamento de um byte (US\-ASCII, ISO\-8859\-*, UTF\-8), a configuração \fBpb=0\fP
+pode melhorar um pouco a compactação. Para texto UTF\-16, \fBpb=1\fP é uma boa
+escolha. Se o alinhamento for um número ímpar como 3 bytes, \fBpb=0\fP pode ser
+a melhor escolha.
+.IP ""
+Embora o alinhamento assumido possa ser ajustado com \fIpb\fP e \fIlp\fP, LZMA1 e
+LZMA2 ainda favorecem ligeiramente o alinhamento de 16 bytes. Pode valer a
+pena levar em consideração ao projetar formatos de arquivo que provavelmente
+serão compactados com LZMA1 ou LZMA2.
+.TP
+\fBmf=\fP\fImf\fP
+O localizador de correspondência tem um efeito importante na velocidade do
+codificador, uso de memória e taxa de compactação. Normalmente, os
+localizadores de correspondência de Hash Chain são mais rápidos do que os
+localizadores de correspondência de árvore binária. O padrão depende do
+\fIpredefinição\fP: 0 usa \fBhc3\fP, 1\(en3 usa \fBhc4\fP e o resto usa \fBbt4\fP.
+.IP ""
+Os seguintes localizadores de correspondência são suportados. As fórmulas de
+uso de memória abaixo são aproximações aproximadas, que estão mais próximas
+da realidade quando \fIdict\fP é uma potência de dois.
+.RS
+.TP
+\fBhc3\fP
+Cadeia de hashs com hashing de 2 e 3 bytes
+.br
+Valor mínimo para \fInice\fP: 3
+.br
+Uso de memória:
+.br
+\fIdict\fP * 7.5 (if \fIdict\fP <= 16 MiB);
+.br
+\fIdict\fP * 5.5 + 64 MiB (if \fIdict\fP > 16 MiB)
+.TP
+\fBhc4\fP
+Cadeia de hashs com hashing de 2, 3 e 4 bytes
+.br
+Valor mínimo para \fInice\fP: 4
+.br
+Uso de memória:
+.br
+\fIdict\fP * 7.5 (if \fIdict\fP <= 32 MiB);
+.br
+\fIdict\fP * 6.5 (if \fIdict\fP > 32 MiB)
+.TP
+\fBbt2\fP
+Ãrvore binária com hashing de 2 bytes
+.br
+Valor mínimo para \fInice\fP: 2
+.br
+Uso de memória: \fIdict\fP * 9.5
+.TP
+\fBbt3\fP
+Ãrvore binária com hashing de 2 e 3 bytes
+.br
+Valor mínimo para \fInice\fP: 3
+.br
+Uso de memória:
+.br
+\fIdict\fP * 11.5 (if \fIdict\fP <= 16 MiB);
+.br
+\fIdict\fP * 9.5 + 64 MiB (if \fIdict\fP > 16 MiB)
+.TP
+\fBbt4\fP
+Ãrvore binária com hashing de 2, 3 e 4 bytes
+.br
+Valor mínimo para \fInice\fP: 4
+.br
+Uso de memória:
+.br
+\fIdict\fP * 11.5 (if \fIdict\fP <= 32 MiB);
+.br
+\fIdict\fP * 10.5 (if \fIdict\fP > 32 MiB)
+.RE
+.TP
+\fBmode=\fP\fImodo\fP
+O \fImodo\fP de compactação especifica o método para analisar os dados
+produzidos pelo localizador de correspondência. Os \fImodos\fP suportados são
+\fBfast\fP e \fBnormal\fP. O padrão é \fBfast\fP para \fIpredefinições\fP 0\(en3 e
+\fBnormal\fP para \fIpredefinições\fP 4\(en9.
+.IP ""
+Normalmente, \fBfast\fP é usado com localizadores de correspondência cadeia de
+hashs e \fBnormal\fP com localizadores de correspondência de árvore
+binária. Isso também é o que os \fIpredefinições\fP fazem.
+.TP
+\fBnice=\fP\fInice\fP
+Especifica o que é considerado um bom comprimento para uma
+correspondência. Uma vez que uma correspondência de pelo menos \fInice\fP bytes
+é encontrada, o algoritmo para de procurar correspondências possivelmente
+melhores.
+.IP ""
+\fINice\fP pode ser 2\(en273 bytes. Valores mais altos tendem a fornecer melhor
+taxa de compactação em detrimento da velocidade. O padrão depende do
+\fIpredefinição\fP.
+.TP
+\fBdepth=\fP\fIprofundidade\fP
+Especifica a profundidade máxima de pesquisa no localizador de
+correspondências. O padrão é o valor especial de 0, que faz com que o
+compressor determine um \fIprofundidade\fP razoável de \fImf\fP e \fInice\fP.
+.IP ""
+Uma \fIprofundidade\fP razoável para cadeias de hash é 4\(en100 e 16\(en1000
+para árvores binárias. Usar valores muito altos para \fIprofundidade\fP pode
+tornar o codificador extremamente lento com alguns arquivos. Evite definir
+\fIprofundidade\fP acima de 1000 a menos que você esteja preparado para
+interromper a compactação caso ela esteja demorando muito.
+.RE
+.IP ""
+Ao decodificar fluxos brutos (\fB\-\-format=raw\fP), o LZMA2 precisa apenas do
+dicionário \fItamanho\fP. LZMA1 também precisa de \fIlc\fP, \fIlp\fP e \fIpb\fP.
+.TP
+\fB\-\-x86\fP[\fB=\fP\fIopções\fP]
+.PD 0
+.TP
+\fB\-\-arm\fP[\fB=\fP\fIopções\fP]
+.TP
+\fB\-\-armthumb\fP[\fB=\fP\fIopções\fP]
+.TP
+\fB\-\-arm64\fP[\fB=\fP\fIopções\fP]
+.TP
+\fB\-\-powerpc\fP[\fB=\fP\fIopções\fP]
+.TP
+\fB\-\-ia64\fP[\fB=\fP\fIopções\fP]
+.TP
+\fB\-\-sparc\fP[\fB=\fP\fIopções\fP]
+.TP
+\fB\-\-riscv\fP[\fB=\fP\fIopções\fP]
+.PD
+Adiciona um filtro de ramificação/chamada/salto (BCJ) à cadeia de
+filtros. Esses filtros podem ser usados apenas como um filtro não último na
+cadeia de filtros.
+.IP ""
+Um filtro BCJ converte endereços relativos no código de máquina em suas
+contrapartes absolutas. Isso não altera o tamanho dos dados, mas aumenta a
+redundância, o que pode ajudar o LZMA2 a produzir um arquivo \fB.xz\fP 0\(en15\ % menor. Os filtros BCJ são sempre reversíveis, portanto, usar um filtro BCJ
+para o tipo errado de dados não causa nenhuma perda de dados, embora possa
+piorar um pouco a taxa de compactação.Os filtros BCJ são muito rápidos e
+usam uma quantidade insignificante de memória.
+.IP ""
+Esses filtros BCJ têm problemas conhecidos relacionados à taxa de
+compactação:
+.RS
+.IP \(bu 3
+Alguns tipos de arquivos contendo código executável (por exemplo, arquivos
+de objeto, bibliotecas estáticas e módulos do kernel do Linux) têm os
+endereços nas instruções preenchidos com valores de preenchimento. Esses
+filtros BCJ ainda vão fazer a conversão de endereço, o que vai piorar a
+compactação desses arquivos.
+.IP \(bu 3
+Se um filtro BCJ for aplicado em um arquivo, é possível que isso torne a
+taxa de compactação pior do que não usar um filtro BCJ. Por exemplo, se
+houver executáveis semelhantes ou mesmo idênticos, a filtragem provavelmente
+tornará os arquivos menos semelhantes e, portanto, a compactação será
+pior. O conteúdo de arquivos não executáveis no mesmo arquivo também pode
+ser importante. Na prática tem que tentar com e sem filtro BCJ para ver qual
+é melhor em cada situação.
+.RE
+.IP ""
+Conjuntos de instruções diferentes têm alinhamento diferente: o arquivo
+executável deve ser alinhado a um múltiplo desse valor nos dados de entrada
+para fazer o filtro funcionar.
+.RS
+.RS
+.PP
+.TS
+tab(;);
+l n l
+l n l.
+Filtro;Alinhamento;Observações
+x86;1;x86 32 bits ou 64 bits
+ARM;4;
+ARM\-Thumb;2;
+ARM64;4;Alinhamento de 4096 bytes
+;;é melhor
+PowerPC;4;Somente big endian
+IA\-64;16;Itanium
+SPARC;4;
+RISC\-V;2;
+.TE
+.RE
+.RE
+.IP ""
+Since the BCJ\-filtered data is usually compressed with LZMA2, the
+compression ratio may be improved slightly if the LZMA2 options are set to
+match the alignment of the selected BCJ filter. Examples:
+.RS
+.IP \(bu 3
+IA\-64 filter has 16\-byte alignment so \fBpb=4,lp=4,lc=0\fP is good with LZMA2
+(2^4=16).
+.IP \(bu 3
+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, \fBpb=2,lp=1,lc=3\fP or \fBpb=1,lp=1,lc=3\fP is good. When
+16\-bit instructions aren't present, \fBpb=2,lp=2,lc=2\fP is the best.
+\fBreadelf \-h\fP can be used to check if "RVC" appears on the "Flags" line.
+.IP \(bu 3
+ARM64 is always 4\-byte aligned so \fBpb=2,lp=2,lc=2\fP is the best.
+.IP \(bu 3
+The x86 filter is an exception. It's usually good to stick to LZMA2's
+defaults (\fBpb=2,lp=0,lc=3\fP) when compressing x86 executables.
+.RE
+.IP ""
+Todos os filtros BCJ suportam as mesmas \fIopções\fP:
+.RS
+.TP
+\fBstart=\fP\fIdeslocamento\fP
+Especifica o \fIdeslocamento\fP inicial que é usado na conversão entre
+endereços relativos e absolutos. O \fIdeslocamento\fP deve ser um múltiplo do
+alinhamento do filtro (ver tabela acima). O padrão é zero. Na prática, o
+padrão é bom; especificar um \fIdeslocamento\fP personalizado quase nunca é
+útil.
+.RE
+.TP
+\fB\-\-delta\fP[\fB=\fP\fIopções\fP]
+Adiciona o filtro Delta à cadeia de filtros. O filtro Delta só pode ser
+usado como filtro não\-último na cadeia de filtros.
+.IP ""
+Atualmente, apenas o cálculo simples de delta byte a byte é suportado. Pode
+ser útil ao compactar, por exemplo, imagens bitmap não compactadas ou áudio
+PCM não compactado. No entanto, algoritmos de propósito especial podem
+fornecer resultados significativamente melhores do que Delta + LZMA2. Isso é
+verdade especialmente com áudio, que compacta mais rápido e melhor, por
+exemplo, com \fBflac\fP(1).
+.IP ""
+\fIOpções\fP suportadas:
+.RS
+.TP
+\fBdist=\fP\fIdistância\fP
+Especifica a \fIdistância\fP do cálculo delta em bytes. \fIdistância\fP deve ser
+1\(en256. O padrão é 1.
+.IP ""
+Por exemplo, com \fBdist=2\fP e entrada de oito bytes A1 B1 A2 B3 A3 B5 A4 B7,
+a saída será A1 B1 01 02 01 02 01 02.
+.RE
+.
+.SS "Outras opções"
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Suprime avisos e avisos. Especifique isso duas vezes para suprimir erros
+também. Esta opção não tem efeito no status de saída. Ou seja, mesmo que um
+aviso tenha sido suprimido, o status de saída para indicar um aviso ainda é
+usado.
+.TP
+\fB\-v\fP, \fB\-\-verbose\fP
+Ser detalhado. Se o erro padrão estiver conectado a um terminal, \fBxz\fP
+exibirá um indicador de progresso. Especifique \fB\-\-verbose\fP duas vezes dará
+uma saída ainda mais detalhada.
+.IP ""
+O indicador de progresso mostra as seguintes informações:
+.RS
+.IP \(bu 3
+A porcentagem de conclusão é mostrada se o tamanho do arquivo de entrada for
+conhecido. Ou seja, a porcentagem não pode ser mostrada em encadeamentos
+(pipe).
+.IP \(bu 3
+Quantidade de dados compactados produzidos (compactando) ou consumidos
+(descompactando).
+.IP \(bu 3
+Quantidade de dados não compactados consumidos (compactação) ou produzidos
+(descompactação).
+.IP \(bu 3
+Taxa de compactação, que é calculada dividindo a quantidade de dados
+compactados processados até o momento pela quantidade de dados não
+compactados processados até o momento.
+.IP \(bu 3
+Velocidade de compactação ou descompactação. Isso é medido como a quantidade
+de dados não compactados consumidos (compactação) ou produzidos
+(descompactação) por segundo. É mostrado após alguns segundos desde que
+\fBxz\fP começou a processar o arquivo.
+.IP \(bu 3
+Tempo decorrido no formato M:SS ou H:MM:SS.
+.IP \(bu 3
+O tempo restante estimado é mostrado apenas quando o tamanho do arquivo de
+entrada é conhecido e alguns segundos já se passaram desde que \fBxz\fP começou
+a processar o arquivo. A hora é mostrada em um formato menos preciso que
+nunca tem dois pontos, por exemplo, 2 min 30 s.
+.RE
+.IP ""
+Quando o erro padrão não é um terminal, \fB\-\-verbose\fP fará com que \fBxz\fP
+imprima o nome do arquivo, tamanho compactado, tamanho não compactado, taxa
+de compactação e possivelmente também a velocidade e o tempo decorrido em
+uma única linha para o erro padrão após a compactação ou descompactando o
+arquivo. A velocidade e o tempo decorrido são incluídos apenas quando a
+operação leva pelo menos alguns segundos. Se a operação não foi concluída,
+por exemplo, devido à interrupção do usuário, também é impressa a
+porcentagem de conclusão se o tamanho do arquivo de entrada for conhecido.
+.TP
+\fB\-Q\fP, \fB\-\-no\-warn\fP
+Não define o status de saída como 2, mesmo que uma condição digna de um
+aviso tenha sido detectada. Esta opção não afeta o nível de detalhamento,
+portanto, tanto \fB\-\-quiet\fP quanto \fB\-\-no\-warn\fP devem ser usados para não
+exibir avisos e não alterar o status de saída.
+.TP
+\fB\-\-robot\fP
+Imprime mensagens em um formato analisável por máquina. Isso visa facilitar
+a criação de frontends que desejam usar \fBxz\fP em vez de liblzma, o que pode
+ser o caso de vários scripts. A saída com esta opção habilitada deve ser
+estável em versões \fBxz\fP. Consulte a seção \fBMODO ROBÔ\fP para obter detalhes.
+.TP
+\fB\-\-info\-memory\fP
+Exibe, em formato legível por humanos, quanta memória física (RAM) e quantos
+threads de processador \fBxz\fP acredita que o sistema possui e os limites de
+uso de memória para compactação e descompactação e saia com êxito.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Exibe uma mensagem de ajuda descrevendo as opções mais usadas e sai com
+sucesso.
+.TP
+\fB\-H\fP, \fB\-\-long\-help\fP
+Exibe uma mensagem de ajuda descrevendo todos os recursos de \fBxz\fP e sai com
+sucesso
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Exibe o número da versão de \fBxz\fP e liblzma em formato legível por
+humanos. Para obter uma saída analisável por máquina, especifique \fB\-\-robot\fP
+antes de \fB\-\-version\fP.
+.
+.SH "MODO ROBÔ"
+The robot mode is activated with the \fB\-\-robot\fP option. It makes the output
+of \fBxz\fP easier to parse by other programs. Currently \fB\-\-robot\fP is
+supported only together with \fB\-\-list\fP, \fB\-\-filters\-help\fP, \fB\-\-info\-memory\fP,
+and \fB\-\-version\fP. It will be supported for compression and decompression in
+the future.
+.
+.SS "Modo lista"
+\fBxz \-\-robot \-\-list\fP usa saída separada por tabulações. A primeira coluna de
+cada linha possui uma string que indica o tipo de informação encontrada
+naquela linha:
+.TP
+\fBname\fP
+Esta é sempre a primeira linha ao começar a listar um arquivo. A segunda
+coluna na linha é o nome do arquivo.
+.TP
+\fBfile\fP
+Esta linha contém informações gerais sobre o arquivo \fB.xz\fP. Esta linha é
+sempre impressa após a linha \fBname\fP.
+.TP
+\fBstream\fP
+Este tipo de linha é usado somente quando \fB\-\-verbose\fP foi
+especificado. Existem tantas linhas de \fBstream\fP quanto fluxos no arquivo
+\&\fB.xz\fP.
+.TP
+\fBblock\fP
+Este tipo de linha é usado somente quando \fB\-\-verbose\fP foi
+especificado. Existem tantas linhas \fBblock\fP quanto blocos no arquivo
+\&\fB.xz\fP. As linhas \fBblock\fP são mostradas após todas as linhas \fBstream\fP;
+diferentes tipos de linha não são intercalados.
+.TP
+\fBsummary\fP
+Este tipo de linha é usado apenas quando \fB\-\-verbose\fP foi especificado duas
+vezes. Esta linha é impressa após todas as linhas de \fBblock\fP. Assim como a
+linha \fBarquivo\fP, a linha \fBsummary\fP contém informações gerais sobre o
+arquivo \fB.xz\fP.
+.TP
+\fBtotals\fP
+Esta linha é sempre a última linha da saída da lista. Ele mostra as
+contagens totais e tamanhos.
+.PP
+As colunas das linhas \fBfile\fP:
+.PD 0
+.RS
+.IP 2. 4
+Número de fluxos no arquivo
+.IP 3. 4
+Número total de blocos no(s) fluxo(s)
+.IP 4. 4
+Tamanho compactado do arquivo
+.IP 5. 4
+Uncompressed size of the file
+.IP 6. 4
+Taxa de compactação, por exemplo, \fB0.123\fP. Se a proporção for superior a
+9.999, serão exibidos três traços (\fB\-\-\-\fP) em vez da proporção.
+.IP 7. 4
+Lista separada por vírgulas de nomes de verificação de integridade. As
+seguintes strings são usadas para os tipos de verificação conhecidos:
+\fBNone\fP, \fBCRC32\fP, \fBCRC64\fP e \fBSHA\-256\fP. Para tipos de verificações
+desconhecidos, \fBUnknown\-\fP\fIN\fP é usado, onde \fIN\fP é o ID do cheque como um
+número decimal (um ou dois dígitos).
+.IP 8. 4
+Tamanho total do preenchimento de fluxo no arquivo
+.RE
+.PD
+.PP
+As colunas das linhas \fBstream\fP:
+.PD 0
+.RS
+.IP 2. 4
+Número do fluxo (o primeiro fluxo é 1)
+.IP 3. 4
+Número de blocos no fluxo
+.IP 4. 4
+Deslocamento inicial compactado
+.IP 5. 4
+Deslocamento inicial descompactado
+.IP 6. 4
+Tamanho compactado (não inclui preenchimento de fluxo)
+.IP 7. 4
+Tamanho descompactado
+.IP 8. 4
+Taxa de compactação
+.IP 9. 4
+Nome da verificação de integridade
+.IP 10. 4
+Tamanho do preenchimento do fluxo
+.RE
+.PD
+.PP
+As colunas das linhas \fBblock\fP:
+.PD 0
+.RS
+.IP 2. 4
+Número do fluxo que contém este bloco
+.IP 3. 4
+Número do bloco relativo ao início do fluxo (o primeiro bloco é 1)
+.IP 4. 4
+Número do bloco relativo ao início do arquivo
+.IP 5. 4
+Deslocamento inicial compactado em relação ao início do arquivo
+.IP 6. 4
+Deslocamento inicial descompactado em relação ao início do arquivo
+.IP 7. 4
+Tamanho total compactado do bloco (inclui cabeçalhos)
+.IP 8. 4
+Tamanho descompactado
+.IP 9. 4
+Taxa de compactação
+.IP 10. 4
+Nome da verificação de integridade
+.RE
+.PD
+.PP
+Se \fB\-\-verbose\fP for especificado duas vezes, colunas adicionais serão
+incluídas nas linhas \fBblock\fP. Eles não são exibidos com um único
+\fB\-\-verbose\fP, porque obter essas informações requer muitas buscas e,
+portanto, pode ser lento:
+.PD 0
+.RS
+.IP 11. 4
+Valor da verificação de integridade em hexadecimal
+.IP 12. 4
+Tamanho do cabeçalho do bloco
+.IP 13. 4
+Sinalizadores de bloco: \fBc\fP indica que o tamanho compactado está presente e
+\fBu\fP indica que o tamanho não compactado está presente. Se o sinalizador não
+estiver definido, um traço (\fB\-\fP) será exibido para manter o comprimento da
+string fixo. Novos sinalizadores podem ser adicionados ao final da string no
+futuro.
+.IP 14. 4
+Tamanho dos dados reais compactados no bloco (isso exclui o cabeçalho do
+bloco, o preenchimento do bloco e os campos de verificação)
+.IP 15. 4
+Quantidade de memória (em bytes) necessária para descompactar este bloco com
+esta versão \fBxz\fP
+.IP 16. 4
+Cadeia de filtro. Observe que a maioria das opções usadas no momento da
+compactação não pode ser conhecida, pois apenas as opções necessárias para a
+descompactação são armazenadas nos cabeçalhos \fB.xz\fP.
+.RE
+.PD
+.PP
+As colunas das linhas \fBsummary\fP:
+.PD 0
+.RS
+.IP 2. 4
+Quantidade de memória (em bytes) necessária para descompactar este arquivo
+com esta versão do \fBxz\fP
+.IP 3. 4
+\fByes\fP ou \fBno\fP indicando se todos os cabeçalhos de bloco têm tamanho
+compactado e tamanho não compactado armazenados neles
+.PP
+\fIDesde\fP \fBxz\fP \fI5.1.2alpha:\fP
+.IP 4. 4
+Versão mínima do \fBxz\fP necessária para descompactar o arquivo
+.RE
+.PD
+.PP
+As colunas da linha \fBtotals\fP:
+.PD 0
+.RS
+.IP 2. 4
+Número de fluxos
+.IP 3. 4
+Número de blocos
+.IP 4. 4
+Tamanho compactado
+.IP 5. 4
+Tamanho descompactado
+.IP 6. 4
+Taxa de compactação média
+.IP 7. 4
+Lista separada por vírgulas de nomes de verificação de integridade que
+estavam presentes nos arquivos
+.IP 8. 4
+Tamanho do preenchimento do fluxo
+.IP 9. 4
+Número de arquivos. Isso está aqui para manter a ordem das colunas
+anteriores a mesma das linhas \fBfile\fP.
+.PD
+.RE
+.PP
+Se \fB\-\-verbose\fP for especificado duas vezes, colunas adicionais serão
+incluídas na linha \fBtotals\fP:
+.PD 0
+.RS
+.IP 10. 4
+Quantidade máxima de memória (em bytes) necessária para descompactar os
+arquivos com esta versão do \fBxz\fP
+.IP 11. 4
+\fByes\fP ou \fBno\fP indicando se todos os cabeçalhos de bloco têm tamanho
+compactado e tamanho não compactado armazenados neles
+.PP
+\fIDesde\fP \fBxz\fP \fI5.1.2alpha:\fP
+.IP 12. 4
+Versão mínima do \fBxz\fP necessária para descompactar o arquivo
+.RE
+.PD
+.PP
+Versões futuras podem adicionar novos tipos de linha e novas colunas podem
+ser adicionadas aos tipos de linha existentes, mas as colunas existentes não
+serão alteradas.
+.
+.SS "Filters help"
+\fBxz \-\-robot \-\-filters\-help\fP prints the supported filters in the following
+format:
+.PP
+\fIfilter\fP\fB:\fP\fIoption\fP\fB=<\fP\fIvalue\fP\fB>,\fP\fIoption\fP\fB=<\fP\fIvalue\fP\fB>\fP...
+.TP
+\fIfilter\fP
+Name of the filter
+.TP
+\fIoption\fP
+Name of a filter specific option
+.TP
+\fIvalue\fP
+Numeric \fIvalue\fP ranges appear as \fB<\fP\fImin\fP\fB\-\fP\fImax\fP\fB>\fP. String
+\fIvalue\fP choices are shown within \fB< >\fP and separated by a \fB|\fP
+character.
+.PP
+Each filter is printed on its own line.
+.
+.SS "Informações de limite de memória"
+\fBxz \-\-robot \-\-info\-memory\fP prints a single line with multiple tab\-separated
+columns:
+.IP 1. 4
+Quantidade total de memória física (RAM) em bytes.
+.IP 2. 4
+Limite de uso de memória para compactação em bytes
+(\fB\-\-memlimit\-compress\fP). Um valor especial de \fB0\fP indica a configuração
+padrão que para o modo de thread única é o mesmo que sem limite.
+.IP 3. 4
+Limite de uso de memória para descompactação em bytes
+(\fB\-\-memlimit\-decompress\fP). Um valor especial de \fB0\fP indica a configuração
+padrão que para o modo de thread única é o mesmo que sem limite.
+.IP 4. 4
+Desde \fBxz\fP 5.3.4alpha: Uso de memória para descompactação com várias thread
+em bytes (\fB\-\-memlimit\-mt\-decompress\fP). Isso nunca é zero porque um valor
+padrão específico do sistema mostrado na coluna 5 é usado se nenhum limite
+for especificado explicitamente. Isso também nunca é maior que o valor na
+coluna 3, mesmo que um valor maior tenha sido especificado com
+\fB\-\-memlimit\-mt\-decompress\fP.
+.IP 5. 4
+Desde \fBxz\fP 5.3.4alpha: Um limite de uso de memória padrão específico do
+sistema que é usado para limitar o número de threads ao compactar com um
+número automático de threads (\fB\-\-threads=0\fP) e nenhum limite de uso de
+memória foi especificado (\fB\-\-memlimit\-compress\fP). Isso também é usado como
+o valor padrão para \fB\-\-memlimit\-mt\-decompress\fP.
+.IP 6. 4
+Desde \fBxz\fP 5.3.4alpha: Número de threads de processador disponíveis.
+.PP
+No futuro, a saída de \fBxz \-\-robot \-\-info\-memory\fP pode ter mais colunas, mas
+nunca mais do que uma única linha.
+.
+.SS Versão
+\fBxz \-\-robot \-\-version\fP prints the version number of \fBxz\fP and liblzma in
+the following format:
+.PP
+\fBXZ_VERSION=\fP\fIXYYYZZZS\fP
+.br
+\fBLIBLZMA_VERSION=\fP\fIXYYYZZZS\fP
+.TP
+\fIX\fP
+Versão principal.
+.TP
+\fIYYY\fP
+Versão menor. Números pares são estáveis. Os números ímpares são versões
+alfa ou beta.
+.TP
+\fIZZZ\fP
+Nível de patch para versões estáveis ou apenas um contador para versões de
+desenvolvimento.
+.TP
+\fIS\fP
+Estabilidade. 0 é alfa, 1 é beta e 2 é estável. \fIS\fP deve ser sempre 2
+quando \fIYYY\fP for par.
+.PP
+\fIXYYYZZZS\fP são iguais em ambas as linhas se \fBxz\fP e liblzma forem da mesma
+versão do XZ Utils.
+.PP
+Exemplos: 4.999.9beta é \fB49990091\fP e 5.0.0 é \fB50000002\fP.
+.
+.SH "STATUS DE SAÃDA"
+.TP
+\fB0\fP
+Está tudo bem.
+.TP
+\fB1\fP
+Ocorreu um erro.
+.TP
+\fB2\fP
+Algo digno de um aviso ocorreu, mas ocorreu nenhum erro real.
+.PP
+Observações (não avisos ou erros) impressas no erro padrão não afetam o
+status de saída.
+.
+.SH AMBIENTE
+\fBxz\fP analisa listas de opções separadas por espaços das variáveis de
+ambiente \fBXZ_DEFAULTS\fP e \fBXZ_OPT\fP, nesta ordem, antes de analisar as
+opções da linha de comando. Observe que apenas as opções são analisadas a
+partir das variáveis de ambiente; todas as não opções são silenciosamente
+ignoradas. A análise é feita com \fBgetopt_long\fP(3) que também é usado para
+os argumentos da linha de comando.
+.TP
+\fBXZ_DEFAULTS\fP
+Opções padrão específicas do usuário ou de todo o sistema. Normalmente, isso
+é definido em um script de inicialização do shell para habilitar o limitador
+de uso de memória do \fBxz\fP por padrão. Excluindo scripts de inicialização de
+shell e casos especiais semelhantes, os scripts nunca devem definir ou
+remover a definição de \fBXZ_DEFAULTS\fP.
+.TP
+\fBXZ_OPT\fP
+Isso é para passar opções para \fBxz\fP quando não é possível definir as opções
+diretamente na linha de comando \fBxz\fP. Este é o caso quando \fBxz\fP é
+executado por um script ou ferramenta, por exemplo, GNU \fBtar\fP(1):
+.RS
+.RS
+.PP
+.nf
+\f(CWXZ_OPT=\-2v tar caf foo.tar.xz foo\fP
+.fi
+.RE
+.RE
+.IP ""
+Os scripts podem usar \fBXZ_OPT\fP, por exemplo, para definir opções de
+compactação padrão específicas do script. Ainda é recomendável permitir que
+os usuários substituam \fBXZ_OPT\fP se isso for razoável. Por exemplo, em
+scripts \fBsh\fP(1) pode\-se usar algo assim:
+.RS
+.RS
+.PP
+.nf
+\f(CWXZ_OPT=${XZ_OPT\-"\-7e"} export XZ_OPT\fP
+.fi
+.RE
+.RE
+.
+.SH "COMPATIBILIDADE COM LZMA UTILS"
+A sintaxe da linha de comando do \fBxz\fP é praticamente um superconjunto de
+\fBlzma\fP, \fBunlzma\fP e \fBlzcat\fP conforme encontrado no LZMA Utils 4.32.x. Na
+maioria dos casos, é possível substituir LZMA Utils por XZ Utils sem
+interromper os scripts existentes. Existem algumas incompatibilidades,
+porém, que às vezes podem causar problemas.
+.
+.SS "Níveis de predefinição de compactação"
+A numeração das predefinições de nível de compactação não é idêntica em
+\fBxz\fP e LZMA Utils. A diferença mais importante é como os tamanhos dos
+dicionários são mapeados para diferentes predefinições. O tamanho do
+dicionário é aproximadamente igual ao uso de memória do descompactador.
+.RS
+.PP
+.TS
+tab(;);
+c c c
+c n n.
+Nível;xz;LZMA Utils
+\-0;256 KiB;N/D
+\-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
+.TE
+.RE
+.PP
+As diferenças de tamanho do dicionário também afetam o uso da memória do
+compressor, mas existem algumas outras diferenças entre LZMA Utils e XZ
+Utils, que tornam a diferença ainda maior:
+.RS
+.PP
+.TS
+tab(;);
+c c c
+c n n.
+Nível;xz;LZMA Utils 4.32.x
+\-0;3 MiB;N/D
+\-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
+.TE
+.RE
+.PP
+O nível de predefinição padrão no LZMA Utils é \fB\-7\fP enquanto no XZ Utils é
+\fB\-6\fP, então ambos usam um dicionário de 8 MiB por padrão.
+.
+.SS "Arquivos .lzma em um fluxo versus sem ser em um fluxo"
+O tamanho descompactado do arquivo pode ser armazenado no cabeçalho de
+\&\fB.lzma\fP. O LZMA Utils faz isso ao compactar arquivos comuns. A alternativa
+é marcar que o tamanho não compactado é desconhecido e usar o marcador de
+fim de carga útil para indicar onde o descompactador deve parar. O LZMA
+Utils usa este método quando o tamanho não compactado não é conhecido, como
+é o caso, por exemplo, de encadeamentos (pipes).
+.PP
+\fBxz\fP oferece suporte à descompactação de arquivos \fB.lzma\fP com ou sem
+marcador de fim de carga útil, mas todos os arquivos \fB.lzma\fP criados por
+\fBxz\fP usarão marcador de fim de carga útil e terão o tamanho descompactado
+marcado como desconhecido no cabeçalho de \fB.lzma\fP. Isso pode ser um
+problema em algumas situações incomuns. Por exemplo, um descompactador de
+\&\fB.lzma\fP em um dispositivo embarcado pode funcionar apenas com arquivos que
+tenham tamanho descompactado conhecido. Se você encontrar esse problema,
+precisará usar o LZMA Utils ou o LZMA SDK para criar arquivos \fB.lzma\fP com
+tamanho descompactado conhecido.
+.
+.SS "Arquivos .lzma não suportados"
+O formato \fB.lzma\fP permite valores \fIlc\fP até 8 e valores \fIlp\fP até 4. LZMA
+Utils pode descompactar arquivos com qualquer \fIlc\fP e \fIlp\fP, mas sempre cria
+arquivos com \fBlc=3\fP e \fBlp=0\fP. Criar arquivos com outros \fIlc\fP e \fIlp\fP é
+possível com \fBxz\fP e com LZMA SDK.
+.PP
+A implementação do filtro LZMA1 em liblzma requer que a soma de \fIlc\fP e
+\fIlp\fP não exceda 4. Assim, arquivos \fB.lzma\fP, que excedam esta limitação,
+não podem ser descompactados com \fBxz\fP.
+.PP
+LZMA Utils cria apenas arquivos \fB.lzma\fP que possuem um tamanho de
+dicionário de 2^\fIn\fP (uma potência de 2), mas aceita arquivos com qualquer
+tamanho de dicionário. liblzma aceita apenas arquivos \fB.lzma\fP que tenham um
+tamanho de dicionário de 2^\fIn\fP ou 2^\fIn\fP + 2^(\fIn\fP\-1). Isso é para diminuir
+os falsos positivos ao detectar arquivos \fB.lzma\fP.
+.PP
+Essas limitações não devem ser um problema na prática, já que praticamente
+todos os arquivos \fB.lzma\fP foram compactados com configurações que o liblzma
+aceitará.
+.
+.SS "Lixo à direita"
+Ao descompactar, o LZMA Utils silenciosamente ignora tudo após o primeiro
+fluxo \fB.lzma\fP. Na maioria das situações, isso é um bug. Isso também
+significa que o LZMA Utils não oferece suporte a descompactação de arquivos
+\&\fB.lzma\fP concatenados.
+.PP
+Se houver dados restantes após o primeiro fluxo de \fB.lzma\fP, \fBxz\fP considera
+o arquivo corrompido, a menos que \fB\-\-single\-stream\fP tenha sido usado. Isso
+pode quebrar scripts obscuros que presumiram que o lixo à direita é
+ignorado.
+.
+.SH NOTAS
+.
+.SS "A saída compactada pode variar"
+A saída compactada exata produzida a partir do mesmo arquivo de entrada não
+compactado pode variar entre as versões do XZ Utils, mesmo se as opções de
+compactação forem idênticas. Isso ocorre porque o codificador pode ser
+aprimorado (compactação mais rápida ou melhor) sem afetar o formato do
+arquivo. A saída pode variar mesmo entre diferentes compilações da mesma
+versão do XZ Utils, se diferentes opções de compilação forem usadas.
+.PP
+A informação acima significa que, uma vez que \fB\-\-rsyncable\fP tenha sido
+implementado, os arquivos resultantes não serão necessariamente
+"rsyncáveis", a menos que os arquivos antigos e novos tenham sido
+compactados com a mesma versão xz. Esse problema pode ser corrigido se uma
+parte da implementação do codificador for congelada para manter a saída de
+rsyncable estável nas versões do xz.
+.
+.SS "Descompactadores .xz embarcados"
+As implementações do descompactador \fB.xz\fP embarcados, como o XZ Embedded,
+não oferecem necessariamente suporte a arquivos criados com tipos de
+\fIverificações\fP de integridade diferentes de \fBnone\fP e \fBcrc32\fP. Como o
+padrão é \fB\-\-check=crc64\fP, você deve usar \fB\-\-check=none\fP ou
+\fB\-\-check=crc32\fP ao criar arquivos para sistemas embarcados.
+.PP
+Fora dos sistemas embarcados, todos os descompactadores de formato \fB.xz\fP
+oferecem suporte a todos os tipos de \fIverificação\fP ou, pelo menos, são
+capazes de descompactar o arquivo sem verificar a verificação de integridade
+se a \fIverificação\fP específica não for suportada.
+.PP
+XZ Embedded oferece suporte a filtros BCJ, mas apenas com o deslocamento
+inicial padrão.
+.
+.SH EXEMPLOS
+.
+.SS Básico
+Compactar o arquivo \fIfoo\fP em \fIfoo.xz\fP usando o nível de compactação padrão
+(\fB\-6\fP) e remover \fIfoo\fP se a compactação for bem\-sucedida:
+.RS
+.PP
+.nf
+\f(CWxz foo\fP
+.fi
+.RE
+.PP
+Descompactar \fIbar.xz\fP em \fIbar\fP e não remover \fIbar.xz\fP mesmo se a
+descompactação for bem\-sucedida:
+.RS
+.PP
+.nf
+\f(CWxz \-dk bar.xz\fP
+.fi
+.RE
+.PP
+Criar \fIbaz.tar.xz\fP com a predefinição \fB\-4e\fP (\fB\-4 \-\-extreme\fP), que é mais
+lenta que o padrão \fB\-6\fP, mas precisa de menos memória para compactação e
+descompactação (48 \ MiB e 5\ MiB, respectivamente):
+.RS
+.PP
+.nf
+\f(CWtar cf \- baz | xz \-4e > baz.tar.xz\fP
+.fi
+.RE
+.PP
+Uma mistura de arquivos compactados e descompactados pode ser descompactada
+para a saída padrão com um único comando:
+.RS
+.PP
+.nf
+\f(CWxz \-dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt\fP
+.fi
+.RE
+.
+.SS "Compactação paralela de muitos arquivos"
+No GNU e *BSD, \fBfind\fP(1) e \fBxargs\fP(1) podem ser usados para paralelizar a
+compactação de muitos arquivos:
+.RS
+.PP
+.nf
+\f(CWfind . \-type f \e! \-name '*.xz' \-print0 \e | xargs \-0r \-P4 \-n16 xz \-T1\fP
+.fi
+.RE
+.PP
+A opção \fB\-P\fP para \fBxargs\fP(1) define o número de processos paralelos do
+\fBxz\fP. O melhor valor para a opção \fB\-n\fP depende de quantos arquivos devem
+ser compactados. Se houver apenas alguns arquivos, o valor provavelmente
+deve ser 1; com dezenas de milhares de arquivos, 100 ou até mais podem ser
+apropriados para reduzir o número de processos de \fBxz\fP que \fBxargs\fP(1)
+eventualmente criará.
+.PP
+A opção \fB\-T1\fP para \fBxz\fP existe para forçá\-lo ao modo de thread única,
+porque \fBxargs\fP(1) é usado para controlar a quantidade de paralelização.
+.
+.SS "Modo robô"
+Calcular quantos bytes foram salvos no total depois de compactar vários
+arquivos:
+.RS
+.PP
+.nf
+\f(CWxz \-\-robot \-\-list *.xz | awk '/^totals/{print $5\-$4}'\fP
+.fi
+.RE
+.PP
+Um script pode querer saber que está usando \fBxz\fP novo o suficiente. O
+seguinte script \fBsh\fP(1) verifica se o número da versão da ferramenta \fBxz\fP
+é pelo menos 5.0.0. Este método é compatível com versões beta antigas, que
+não suportavam a opção \fB\-\-robot\fP:
+.RS
+.PP
+.nf
+\f(CWif ! eval "$(xz \-\-robot \-\-version 2> /dev/null)" || [ "$XZ_VERSION" \-lt 50000002 ]; then echo "Your xz is too old." fi unset XZ_VERSION LIBLZMA_VERSION\fP
+.fi
+.RE
+.PP
+Definir um limite de uso de memória para descompactação usando \fBXZ_OPT\fP,
+mas se um limite já tiver sido definido, não o aumentar:
+.RS
+.PP
+.nf
+\f(CWNEWLIM=$((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\fP
+.fi
+.RE
+.
+.SS "Cadeias de filtro de compressor personalizadas"
+O uso mais simples para cadeias de filtro personalizadas é personalizar uma
+predefinição LZMA2. Isso pode ser útil, porque as predefinições abrangem
+apenas um subconjunto das combinações potencialmente úteis de configurações
+de compactação.
+.PP
+As colunas CompCPU das tabelas das descrições das opções \fB\-0\fP ... \fB\-9\fP e
+\fB\-\-extreme\fP são úteis ao personalizar as predefinições LZMA2. Aqui estão as
+partes relevantes coletadas dessas duas tabelas:
+.RS
+.PP
+.TS
+tab(;);
+c c
+n n.
+Predefinição;CompCPU
+\-0;0
+\-1;1
+\-2;2
+\-3;3
+\-4;4
+\-5;5
+\-6;6
+\-5e;7
+\-6e;8
+.TE
+.RE
+.PP
+Se você sabe que um arquivo requer um dicionário um tanto grande (por
+exemplo, 32\ MiB) para compactar bem, mas deseja comprimi\-lo mais
+rapidamente do que \fBxz \-8\fP faria, uma predefinição com um valor CompCPU
+baixo (por exemplo, 1) pode ser modificado para usar um dicionário maior:
+.RS
+.PP
+.nf
+\f(CWxz \-\-lzma2=preset=1,dict=32MiB foo.tar\fP
+.fi
+.RE
+.PP
+Com certos arquivos, o comando acima pode ser mais rápido que \fBxz \-6\fP
+enquanto compacta significativamente melhor. No entanto, deve\-se enfatizar
+que apenas alguns arquivos se beneficiam de um grande dicionário, mantendo o
+valor CompCPU baixo. A situação mais óbvia, onde um grande dicionário pode
+ajudar muito, é um arquivo contendo arquivos muito semelhantes de pelo menos
+alguns megabytes cada. O tamanho do dicionário deve ser significativamente
+maior do que qualquer arquivo individual para permitir que o LZMA2 aproveite
+ao máximo as semelhanças entre arquivos consecutivos.
+.PP
+Se o uso muito alto de memória do compactador e do descompactador for bom e
+o arquivo que está sendo compactado tiver pelo menos várias centenas de
+megabytes, pode ser útil usar um dicionário ainda maior do que os 64 MiB que
+o \fBxz \-9\fP usaria:
+.RS
+.PP
+.nf
+\f(CWxz \-vv \-\-lzma2=dict=192MiB big_foo.tar\fP
+.fi
+.RE
+.PP
+Usar \fB\-vv\fP (\fB\-\-verbose \-\-verbose\fP) como no exemplo acima pode ser útil
+para ver os requisitos de memória do compactador e do
+descompactador. Lembre\-se que usar um dicionário maior que o tamanho do
+arquivo descompactado é desperdício de memória, então o comando acima não é
+útil para arquivos pequenos.
+.PP
+Às vezes, o tempo de compactação não importa, mas o uso de memória do
+descompactador deve ser mantido baixo, por exemplo, para possibilitar a
+descompactação do arquivo em um sistema embarcado. O comando a seguir usa
+\fB\-6e\fP (\fB\-6 \-\-extreme\fP) como base e define o dicionário como apenas 64\ KiB. O arquivo resultante pode ser descompactado com XZ Embedded (é por isso
+que existe \fB\-\-check=crc32\fP) usando cerca de 100\ KiB de memória.
+.RS
+.PP
+.nf
+\f(CWxz \-\-check=crc32 \-\-lzma2=preset=6e,dict=64KiB foo\fP
+.fi
+.RE
+.PP
+Se você deseja espremer o máximo de bytes possível, ajustar o número de bits
+de contexto literal (\fIlc\fP) e o número de bits de posição (\fIpb\fP) às vezes
+pode ajudar. Ajustar o número de bits de posição literal (\fIlp\fP) também pode
+ajudar, mas geralmente \fIlc\fP e \fIpb\fP são mais importantes. Por exemplo, um
+arquivo de código\-fonte contém principalmente texto US\-ASCII, então algo
+como o seguinte pode fornecer um arquivo ligeiramente (como 0,1\ %) menor
+que \fBxz \-6e\fP (tente também sem \fBlc=4\fP):
+.RS
+.PP
+.nf
+\f(CWxz \-\-lzma2=preset=6e,pb=0,lc=4 source_code.tar\fP
+.fi
+.RE
+.PP
+O uso de outro filtro junto com o LZMA2 pode melhorar a compactação com
+determinados tipos de arquivo. Por exemplo, para compactar uma biblioteca
+compartilhada x86\-32 ou x86\-64 usando o filtro x86 BCJ:
+.RS
+.PP
+.nf
+\f(CWxz \-\-x86 \-\-lzma2 libfoo.so\fP
+.fi
+.RE
+.PP
+Observe que a ordem das opções de filtro é significativa. Se \fB\-\-x86\fP for
+especificado após \fB\-\-lzma2\fP, \fBxz\fP dará um erro, porque não pode haver
+nenhum filtro após LZMA2 e também porque o filtro x86 BCJ não pode ser usado
+como o último filtro em a corrente.
+.PP
+O filtro Delta junto com LZMA2 pode dar bons resultados com imagens
+bitmap. Ele geralmente deve superar o PNG, que possui alguns filtros mais
+avançados do que o delta simples, mas usa Deflate para a compactação real.
+.PP
+A imagem deve ser salva em formato não compactado, por exemplo, como TIFF
+não compactado. O parâmetro de distância do filtro Delta é definido para
+corresponder ao número de bytes por pixel na imagem. Por exemplo, bitmap RGB
+de 24 bits precisa de \fBdist=3\fP, e também é bom passar \fBpb=0\fP para LZMA2
+para acomodar o alinhamento de três bytes:
+.RS
+.PP
+.nf
+\f(CWxz \-\-delta=dist=3 \-\-lzma2=pb=0 foo.tiff\fP
+.fi
+.RE
+.PP
+Se várias imagens foram colocadas em um único arquivo (por exemplo,
+\&\fB.tar\fP), o filtro Delta também funcionará, desde que todas as imagens
+tenham o mesmo número de bytes por pixel.
+.
+.SH "VEJA TAMBÉM"
+\fBxzdec\fP(1), \fBxzdiff\fP(1), \fBxzgrep\fP(1), \fBxzless\fP(1), \fBxzmore\fP(1),
+\fBgzip\fP(1), \fBbzip2\fP(1), \fB7z\fP(1)
+.PP
+XZ Utils: <https://xz.tukaani.org/xz\-utils/>
+.br
+XZ Embedded: <https://xz.tukaani.org/xz\-embedded/>
+.br
+LZMA SDK: <https://7\-zip.org/sdk.html>
diff --git a/po4a/man/pt_BR/xzdec.1 b/po4a/man/pt_BR/xzdec.1
new file mode 100644
index 00000000..4a1130fe
--- /dev/null
+++ b/po4a/man/pt_BR/xzdec.1
@@ -0,0 +1,87 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Author: Lasse Collin
+.\"
+.\" Brazilian Portuguese translations for xz package
+.\" Traduções em português brasileiro para o pacote xz.
+.\" Rafael Fontenelle <rafaelff@gnome.org>, 2022-2023.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZDEC 1 2024\-01\-19 Tukaani "XZ Utils"
+.SH NOME
+xzdec, lzmadec \- Pequenos descompactadores .xz e .lzma
+.SH SINOPSE
+\fBxzdec\fP [\fIopção...\fP] [\fIarquivo...\fP]
+.br
+\fBlzmadec\fP [\fIopção...\fP] [\fIarquivo...\fP]
+.SH DESCRIÇÃO
+\fBxzdec\fP é uma ferramenta de descompactação baseada em liblzma somente para
+arquivos \fB.xz\fP (e somente \fB.xz\fP). \fBxzdec\fP destina\-se a funcionar como um
+substituto para \fBxz\fP(1) nas situações mais comuns em que um script foi
+escrito para usar \fBxz \-\-decompress \-\-stdout\fP (e possivelmente alguns outras
+opções comumente usadas) para descompactar arquivos \fB.xz\fP. \fBlzmadec\fP é
+idêntico a \fBxzdec\fP exceto que \fBlzmadec\fP tem suporte a arquivos \fB.lzma\fP em
+vez de arquivos \fB.xz\fP.
+.PP
+Para reduzir o tamanho do executável, \fBxzdec\fP não tem suporte ao uso de
+várias threads ou a localização, e não lê opções de variáveis de ambiente
+\fBXZ_DEFAULTS\fP e \fBXZ_OPT\fP. \fBxzdec\fP não tem suporte à exibição de
+informações de progresso intermediárias: enviar \fBSIGINFO\fP para \fBxzdec\fP não
+faz nada, mas enviar \fBSIGUSR1\fP encerra o processo em vez de exibir
+informações de progresso.
+.SH OPÇÕES
+.TP
+\fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
+Ignorada para compatibilidade \fBxz\fP(1). \fBxzdec\fP tem suporte a apenas
+descompactação.
+.TP
+\fB\-k\fP, \fB\-\-keep\fP
+Ignorada para compatibilidade \fBxz\fP(1). \fBxzdec\fP nunca cria ou remove
+quaisquer arquivos.
+.TP
+\fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
+Ignorada para compatibilidade \fBxz\fP(1). \fBxzdec\fP sempre grava os dados
+descompactados para a saída padrão.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Especificar isso uma vez não faz nada, pois \fBxzdec\fP nunca exibe nenhum
+aviso ou notificação. Especifique isso duas vezes para suprimir erros.
+.TP
+\fB\-Q\fP, \fB\-\-no\-warn\fP
+Ignorada para compatibilidade \fBxz\fP(1). \fBxzdec\fP nunca usa o status de saída
+2.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Exibe uma mensagem de ajuda e sai com sucesso.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Mostra o número da versão do \fBxzdec\fP e liblzma.
+.SH "STATUS DE SAÃDA"
+.TP
+\fB0\fP
+Correu tudo bem.
+.TP
+\fB1\fP
+Ocorreu um erro.
+.PP
+\fBxzdec\fP não possui nenhuma mensagem de aviso como o \fBxz\fP(1), portanto, o
+status de saída 2 não é usado por \fBxzdec\fP.
+.SH NOTAS
+Use \fBxz\fP(1) em vez de \fBxzdec\fP ou \fBlzmadec\fP para uso diário
+normal. \fBxzdec\fP ou \fBlzmadec\fP destinam\-se apenas a situações em que é
+importante ter um descompactador menor do que o \fBxz\fP(1) completo.
+.PP
+\fBxzdec\fP e \fBlzmadec\fP não são realmente tão pequenos. O tamanho pode ser
+reduzido ainda mais eliminando recursos do liblzma no tempo de compilação,
+mas isso geralmente não deve ser feito para executáveis distribuídos em
+distribuições típicas de sistemas operacionais não embarcados. Se você
+precisa de um descompactador \fB.xz\fP realmente pequeno, considere usar o XZ
+Embedded.
+.SH "VEJA TAMBÉM"
+\fBxz\fP(1)
+.PP
+XZ Embedded: <https://xz.tukaani.org/xz\-embedded/>
diff --git a/po4a/man/pt_BR/xzless.1 b/po4a/man/pt_BR/xzless.1
new file mode 100644
index 00000000..f0d54bf2
--- /dev/null
+++ b/po4a/man/pt_BR/xzless.1
@@ -0,0 +1,48 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Andrew Dudman
+.\" Lasse Collin
+.\"
+.\" Brazilian Portuguese translations for xz package
+.\" Traduções em português brasileiro para o pacote xz.
+.\" Rafael Fontenelle <rafaelff@gnome.org>, 2022-2023.
+.\"
+.\" (Note that this file is not based on gzip's zless.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZLESS 1 2024\-02\-12 Tukaani "XZ Utils"
+.SH NOME
+xzless, lzless \- visualiza arquivos (texto) compactados em xz ou lzma
+.SH SINOPSE
+\fBxzless\fP [\fIarquivo\fP...]
+.br
+\fBlzless\fP [\fIarquivo\fP...]
+.SH DESCRIÇÃO
+\fBxzless\fP is a filter that displays text from compressed files to a
+terminal. Files supported by \fBxz\fP(1) are decompressed; other files are
+assumed to be in uncompressed form already. If no \fIfiles\fP are given,
+\fBxzless\fP reads from standard input.
+.PP
+\fBxzless\fP usa \fBless\fP(1) para apresentar sua saída. Ao contrário de
+\fBxzmore\fP, sua escolha de pager não pode ser alterada pela configuração de
+uma variável de ambiente. Os comandos são baseados em \fBmore\fP(1) e \fBvi\fP(1)
+e permitem movimento e busca para frente e para trás. Consulte o manual
+\fBless\fP(1) para obter mais informações.
+.PP
+O comando denominado \fBlzless\fP é fornecido para compatibilidade com versões
+anteriores do LZMA Utils.
+.SH AMBIENTE
+.TP
+\fBLESSMETACHARS\fP
+Uma lista de caracteres especiais para o shell. Definido por \fBxzless\fP a
+menos que já esteja definido no ambiente.
+.TP
+\fBLESSOPEN\fP
+Defina como uma linha de comando para invocar o descompactador \fBxz\fP(1) para
+pré\-processar os arquivos de entrada para \fBless\fP(1).
+.SH "VEJA TAMBÉM"
+\fBless\fP(1), \fBxz\fP(1), \fBxzmore\fP(1), \fBzless\fP(1)
diff --git a/po4a/man/ro/lzmainfo.1 b/po4a/man/ro/lzmainfo.1
new file mode 100644
index 00000000..c4d97fdb
--- /dev/null
+++ b/po4a/man/ro/lzmainfo.1
@@ -0,0 +1,54 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Author: Lasse Collin
+.\"
+.\" Romanian translation for xz-man.
+.\" Mesajele în limba română pentru manualul pachetului XZ Utils.
+.\" Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2022 - 2024.
+.\" Cronologia traducerii fiÈ™ierului „xz-manâ€:
+.\" Traducerea inițială, făcută de R-GC, pentru versiunea xz-man 5.4.0-pre1.
+.\" Actualizare a traducerii pentru versiunea 5.4.0-pre2, făcută de R-GC, dec-2022.
+.\" Actualizare a traducerii pentru versiunea 5.4.3, făcută de R-GC, mai-2023.
+.\" Actualizare a traducerii pentru versiunea 5.4.4-pre1, făcută de R-GC, iul-2023.
+.\" Actualizare a traducerii pentru versiunea 5.6.0-pre1, făcută de R-GC, feb-2024.
+.\" Actualizare a traducerii pentru versiunea 5.6.0-pre2, făcută de R-GC, feb-2024.
+.\" Actualizare a traducerii pentru versiunea Y, făcută de X, Z(luna-anul).
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH LZMAINFO 1 30.06.2013 Tukaani "Utilități XZ"
+.SH NUME
+lzmainfo \- afișează informațiile stocate în antetul fișierului .lzma
+.SH REZUMAT
+\fBlzmainfo\fP [\fB\-\-help\fP] [\fB\-\-version\fP] [\fIfișier...\fP]
+.SH DESCRIERE
+\fBlzmainfo\fP afișează informațiile stocate în antetul fișierului
+\&\fB.lzma\fP. Citește primii 13 octeți din \fIfișierul\fP specificat, decodifică
+antetul și îl afișează la ieșirea standard în format care poate fi citit de
+om. Dacă nu sunt date \fIfișiere\fP sau dacă \fIfișier\fP este \fB\-\fP, se citește
+intrarea standard.
+.PP
+De obicei, cele mai interesante informații sunt dimensiunea necomprimată și
+dimensiunea dicționarului. Dimensiunea necomprimată poate fi afișată numai
+dacă fișierul este în varianta formatului \fB.lzma\fP netransmis în
+flux. Cantitatea de memorie necesară pentru a decomprima fișierul este de
+câteva zeci de kiloocteți plus dimensiunea dicționarului.
+.PP
+\fBlzmainfo\fP este inclus în XZ Utils în primul rând pentru compatibilitatea
+cu LZMA Utils.
+.SH "STARE DE IEȘIRE"
+.TP
+\fB0\fP
+Totul este bine.
+.TP
+\fB1\fP
+A apărut o eroare.
+.SH ERORI
+\fBlzmainfo\fP folosește sufixul \fBMB\fP în timp ce sufixul corect ar fi \fBMiB\fP
+(2^20 octeți). Acest lucru este pentru a menține ieșirea compatibilă cu LZMA
+Utils.
+.SH "CONSULTAȚI ȘI"
+\fBxz\fP(1)
diff --git a/po4a/man/ro/xz.1 b/po4a/man/ro/xz.1
new file mode 100644
index 00000000..40d98904
--- /dev/null
+++ b/po4a/man/ro/xz.1
@@ -0,0 +1,2039 @@
+'\" t
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Lasse Collin
+.\" Jia Tan
+.\"
+.\" Romanian translation for xz-man.
+.\" Mesajele în limba română pentru manualul pachetului XZ Utils.
+.\" Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2022 - 2024.
+.\" Cronologia traducerii fiÈ™ierului „xz-manâ€:
+.\" Traducerea inițială, făcută de R-GC, pentru versiunea xz-man 5.4.0-pre1.
+.\" Actualizare a traducerii pentru versiunea 5.4.0-pre2, făcută de R-GC, dec-2022.
+.\" Actualizare a traducerii pentru versiunea 5.4.3, făcută de R-GC, mai-2023.
+.\" Actualizare a traducerii pentru versiunea 5.4.4-pre1, făcută de R-GC, iul-2023.
+.\" Actualizare a traducerii pentru versiunea 5.6.0-pre1, făcută de R-GC, feb-2024.
+.\" Actualizare a traducerii pentru versiunea 5.6.0-pre2, făcută de R-GC, feb-2024.
+.\" Actualizare a traducerii pentru versiunea Y, făcută de X, Z(luna-anul).
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZ 1 "25 februarie 2024" Tukaani "Utilități XZ"
+.
+.SH NUME
+xz, unxz, xzcat, lzma, unlzma, lzcat \- Comprimă sau decomprimă fișiere .xz
+și .lzma
+.
+.SH REZUMAT
+\fBxz\fP [\fIopțiune...\fP] [\fIfișier...\fP]
+.
+.SH "ALIAS COMENZI"
+\fBunxz\fP este echivalent cu \fBxz \-\-decompress\fP.
+.br
+\fBxzcat\fP este echivalent cu \fBxz \-\-decompress \-\-stdout\fP.
+.br
+\fBlzma\fP este echivalent cu \fBxz \-\-format=lzma\fP.
+.br
+\fBunlzma\fP este echivalent cu \fBxz \-\-format=lzma \-\-decompress\fP.
+.br
+\fBlzcat\fP este echivalent cu \fBxz \-\-format=lzma \-\-decompress \-\-stdout\fP.
+.PP
+Când scrieți scripturi care trebuie să decomprime fișiere, este recomandat
+să folosiți întotdeauna comanda \fBxz\fP cu argumentele adecvate (\fBxz \-d\fP sau
+\fBxz \-dc\fP) în loc de comenzile \fBunxz\fP și \fBxzcat\fP.
+.
+.SH DESCRIERE
+\fBxz\fP este un instrument de comprimare a datelor de uz general cu sintaxă de
+linie de comandă similară cu \fBgzip\fP(1) și \fBbzip2\fP(1). Formatul de fișier
+nativ este formatul \fB.xz\fP, dar formatul vechi \fB.lzma\fP folosit de LZMA
+Utils și fluxurile comprimate brute fără anteturi de format container sunt
+de asemenea acceptate. În plus, este acceptată decomprimarea formatului
+\&\fB.lz\fP folosit de \fBlzip\fP.
+.PP
+\fBxz\fP comprimă sau decomprimă fiecare \fIfișier\fP în funcție de modul de
+operare selectat. Dacă nu sunt date \fIfișiere\fP sau \fIfișier\fP este \fB\-\fP,
+\fBxz\fP citește de la intrarea standard și scrie datele procesate la ieșirea
+standard. \fBxz\fP va refuza (afișează o eroare și omite \fIfișier\fP) să scrie
+date comprimate la ieșirea standard dacă este un terminal. În mod similar,
+\fBxz\fP va refuza să citească datele comprimate de la intrarea standard dacă
+este un terminal.
+.PP
+Cu excepția cazului în care este specificată opțiunea \fB\-\-stdout\fP,
+\fIfișierele\fP altele decât \fB\-\fP sunt scrise într\-un fișier nou al cărui nume
+este derivat din numele \fIfișierului\fP sursă:
+.IP \(bu 3
+La comprimare, sufixul formatului de fișier țintă (\fB.xz\fP sau \fB.lzma\fP) este
+atașat la numele fișierului sursă pentru a se obține numele fișierului
+țintă.
+.IP \(bu 3
+La decomprimare, sufixul \fB.xz\fP, \fB.lzma\fP sau \fB.lz\fP este eliminat din
+numele fișierului pentru a se obține numele fișierului țintă. \fBxz\fP
+recunoaște și sufixele \fB.txz\fP și \fB.tlz\fP și le înlocuiește cu sufixul
+\&\fB.tar\fP.
+.PP
+Dacă fișierul țintă există deja, este afișată o eroare și \fIfișier\fP este
+omis.
+.PP
+Cu excepția cazului în care scrie la ieșirea standard, \fBxz\fP va afișa un
+avertisment și va omite \fIfișier\fPul dacă se aplică oricare dintre
+următoarele:
+.IP \(bu 3
+\fIFișierul\fP nu este un fișier obișnuit. Legăturile simbolice nu sunt urmate
+și, prin urmare, nu sunt considerate fișiere obișnuite.
+.IP \(bu 3
+\fIFișierul\fP are mai mult de o legătură dură.
+.IP \(bu 3
+\fIFișierul\fP are activat bitul «setuid», «setgid» sau cel lipicios(sticky).
+.IP \(bu 3
+Modul de operare este stabilit la comprimare și \fIfișier\fP are deja un sufix
+al formatului de fișier țintă (\fB.xz\fP sau \fB.txz\fP când se comprimă în
+formatul \fB.xz\fP și \fB.lzma\fP sau \fB.tlz\fP când se comprimă în formatul
+\&\fB.lzma\fP).
+.IP \(bu 3
+Modul de operare este stabilit la decomprimare și \fIfișierul\fP nu are un
+sufix al niciunui format de fișier acceptat (\fB.xz\fP, \fB.txz\fP, \fB.lzma\fP,
+\&\fB.tlz\fP, sau \fB.lz\fP).
+.PP
+După comprimarea sau decomprimarea cu succes a \fIfișierului\fP, \fBxz\fP copiază
+proprietarul, grupul, permisiunile, timpul de acces și timpul de modificare
+din \fIfișierul\fP sursă în fișierul țintă. Dacă copierea grupului eșuează,
+permisiunile sunt modificate astfel încât fișierul țintă să nu devină
+accesibil utilizatorilor care nu aveau permisiunea de a accesa \fIfișierul\fP
+sursă. \fBxz\fP nu acceptă încă copierea altor metadate, cum ar fi listele de
+control al accesului sau atributele extinse.
+.PP
+Odată ce fișierul țintă a fost închis cu succes, \fIfișierul\fP sursă este
+eliminat dacă nu a fost specificată opțiunea \fB\-\-keep\fP. \fIFișierul\fP sursă nu
+este niciodată eliminat dacă rezultatul este scris la ieșirea standard sau
+dacă apare o eroare.
+.PP
+Trimiterea unui semnal \fBSIGINFO\fP sau \fBSIGUSR1\fP către procesul \fBxz\fP face
+ca acesta să imprime informații despre progres la ieșirea de eroare
+standard. Acest lucru are o utilizare limitată, deoarece atunci când ieșirea
+de eroare standard este un terminal, folosind opțiunea \fB\-\-verbose\fP va afișa
+un indicator de progres de actualizare automată.
+.
+.SS "Utilizarea memoriei"
+Cantitatea de memorie utilizată de \fBxz\fP variază de la câteva sute de
+kiloocteți la câțiva gigaocteți, în funcție de opțiunile de
+comprimare. Opțiunile utilizate la comprimarea unui fișier determină
+cerințele de memorie ale instrumentului de decomprimare. De obicei,
+instrumentul de decomprimare are nevoie de 5% până la 20% din cantitatea de
+memorie de care a avut nevoie instrumentul de comprimare la crearea
+fișierului. De exemplu, decomprimarea unui fișier creat cu \fBxz \-9\fP necesită
+în prezent 65Mio de memorie. Totuși, este posibil să aveți fișiere \fB.xz\fP
+care necesită câțiva gigaocteți de memorie pentru decomprimare.
+.PP
+În special utilizatorii de sisteme mai vechi pot considera deranjantă
+posibilitatea unei utilizări foarte mari a memoriei. Pentru a preveni
+surprizele neplăcute, \fBxz\fP are încorporat un limitator de utilizare a
+memoriei, care este dezactivat implicit. ÃŽn timp ce unele sisteme de operare
+oferă modalități de a limita utilizarea memoriei proceselor, bazarea pe
+aceasta nu a fost considerată a fi suficient de flexibilă (de exemplu,
+utilizarea \fBulimit\fP(1) pentru a limita memoria virtuală tinde să paralizeze
+\fBmmap\fP(2)).
+.PP
+Limitatorul de utilizare a memoriei poate fi activat cu opțiunea din linia
+de comandă \fB\-\-memlimit=\fP\fIlimita\fP. Adesea este mai convenabil să activați
+limitatorul în mod implicit prin definirea variabilei de mediu
+\fBXZ_DEFAULTS\fP, de exemplu, \fBXZ_DEFAULTS=\-\-memlimit=150MiB\fP. Este posibil
+să stabiliți limitele separat pentru comprimare și decomprimare folosind
+\fB\-\-memlimit\-compress=\fP\fIlimita\fP și
+\fB\-\-memlimit\-decompress=\fP\fIlimita\fP. Utilizarea acestor două opțiuni în afara
+\fBXZ_DEFAULTS\fP este foarte rar utilă, deoarece o singură rulare a \fBxz\fP nu
+poate face atât comprimarea, cât și decomprimarea și \fB\-\-memlimit=\fP\fIlimita\fP
+(sau \fB\-M\fP \fIlimita\fP ) este mai scurt de tastat pe linia de comandă.
+.PP
+Dacă limita de utilizare a memoriei specificată este depășită la
+decomprimare, \fBxz\fP va afișa o eroare și decomprimarea fișierului va
+eșua. Dacă limita este depășită la comprimare, \fBxz\fP va încerca să reducă
+valorile stabilite astfel încât limita să nu mai fie depășită (cu excepția
+cazului în care se utilizează opțiunea \fB\-\-format=raw\fP sau
+\fB\-\-no\-adjust\fP). În acest fel, operațiunea nu va eșua decât dacă limita
+stabilită este foarte mică. Scalarea valorilor stabilite se face în pași
+care nu se potrivesc cu valorile prestabilite ale nivelului de comprimare,
+de exemplu, dacă limita este doar puțin mai mică decât cantitatea necesară
+pentru \fBxz \-9\fP, valorile stabilite vor fi reduse doar puțin , nu până la
+valoarea prestabilită a lui \fBxz \-8\fP.
+.
+.SS "Concatenare și completare (prin umplere cu octeți nuli) cu fișiere .xz"
+Este posibil să concatenați fișierele \fB.xz\fP așa cum sunt. \fBxz\fP va
+decomprima astfel de fișiere ca și cum ar fi un singur fișier \fB.xz\fP.
+.PP
+Este posibil să se introducă umplutură între părțile concatenate sau după
+ultima parte. Umplutura trebuie să fie compusă din octeți nuli, iar
+dimensiunea umpluturii trebuie să fie un multiplu de patru octeți. Acest
+lucru poate fi util, de exemplu, dacă fișierul \fB.xz\fP este stocat pe un
+mediu care măsoară dimensiunile fișierelor în blocuri de 512 de octeți.
+.PP
+Concatenarea și completarea nu sunt permise cu fișierele \fB.lzma\fP sau
+fluxurile brute.
+.
+.SH OPÈšIUNI
+.
+.SS "Sufixe de numere întregi și valori speciale"
+În majoritatea locurilor în care este de așteptat un număr întreg ca
+argument, un sufix opțional este acceptat pentru a indica cu ușurință
+numerele întregi mari. Nu trebuie să existe spațiu între numărul întreg și
+sufix.
+.TP
+\fBKiB\fP
+Înmulțește numărul întreg cu 1.024 (2^10). \fBKi\fP, \fBk\fP, \fBkB\fP, \fBK\fP și
+\fBKB\fP sunt acceptate ca sinonime pentru \fBKiB\fP.
+.TP
+\fBMiB\fP
+Înmulțește numărul întreg cu 1,048,576 (2^20). \fBMi\fP, \fBm\fP, \fBM\fP, și \fBMB\fP
+sunt acceptate ca sinonime pentru \fBMiB\fP.
+.TP
+\fBGiB\fP
+Înmulțește numărul întreg cu 1,073,741,824 (2^30). \fBGi\fP, \fBg\fP, \fBG\fP, și
+\fBGB\fP sunt acceptate ca sinonime pentru \fBGiB\fP.
+.PP
+Valoarea specială \fBmax\fP poate fi utilizată pentru a indica valoarea maximă
+întreagă suportată de opțiune.
+.
+.SS "Mod de operare"
+Dacă sunt date mai multe opțiuni de mod de funcționare, ultima dintre ele,
+este cea care va avea efect.
+.TP
+\fB\-z\fP, \fB\-\-compress\fP
+Comprimare. Acesta este modul de operare implicit atunci când nu este
+specificată nicio opțiune de mod de funcționare și nici un alt mod de
+operare nu este implicat din numele comenzii (de exemplu, \fBunxz\fP implică
+\fB\-\-decompress\fP).
+.TP
+\fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
+Decomprimare.
+.TP
+\fB\-t\fP, \fB\-\-test\fP
+Testează integritatea \fIfișierelor\fP comprimate. Această opțiune este
+echivalentă cu \fB\-\-decompress \-\-stdout\fP cu excepția faptului că datele
+decomprimate sunt înlăturate în loc să fie scrise la ieșirea standard. Nu
+sunt create sau eliminate fișiere.
+.TP
+\fB\-l\fP, \fB\-\-list\fP
+Afișează informații despre \fIfișiere\fP comprimate. Nu are loc nicio
+decomprimare la ieșire și nu sunt create sau eliminate fișiere. În modul
+listă, programul nu poate citi datele comprimate din intrarea standard sau
+din alte surse care nu pot fi căutate.
+.IP ""
+Listarea implicită arată informații de bază despre \fIfișiere\fP, câte un
+fișier pe linie. Pentru a obține informații mai detaliate, utilizați și
+opțiunea \fB\-\-verbose\fP. Pentru și mai multe informații, utilizați opțiunea
+\fB\-\-verbose\fP de două ori, dar rețineți că acest lucru poate fi lent,
+deoarece obținerea tuturor informațiilor suplimentare necesită multe
+căutări. Lățimea ieșirii detaliate depășește 80 de caractere, deci
+canalizarea ieșirii către, de exemplu, \fBless\ \-S\fP poate fi convenabilă dacă
+terminalul nu este suficient de lat.
+.IP ""
+Ieșirea exactă poate varia între versiunile \fBxz\fP și diferitele
+localizări(configurările regionale). Pentru ieșiri care pot fi citite de
+mașină, ar trebui utilizată opțiunea \fB\-\-robot \-\-list\fP.
+.
+.SS "Modificatori de operare"
+.TP
+\fB\-k\fP, \fB\-\-keep\fP
+Nu șterge fișierele de intrare.
+.IP ""
+Începând cu \fBxz\fP 5.2.6, această opțiune face ca \fBxz\fP să comprime sau să
+decomprime, chiar dacă intrarea este o legătură simbolică către un fișier
+obișnuit, are mai mult de\-o legătură dură sau are marcați biții setuid,
+setgid sau bitul lipicios. Biții setuid, setgid și bitul lipicios nu sunt
+copiați în fișierul țintă. În versiunile anterioare acest lucru se făcea
+numai cu ajutorul opțiunii \fB\-\-force\fP.
+.TP
+\fB\-f\fP, \fB\-\-force\fP
+Această opțiune are mai multe efecte:
+.RS
+.IP \(bu 3
+Dacă fișierul țintă există deja, îl șterge înainte de comprimare sau
+decomprimare.
+.IP \(bu 3
+Comprimă sau decomprimă chiar dacă intrarea este o legătură simbolică către
+un fișier obișnuit, are mai mult de\-o legătură dură sau are marcați biții
+setuid, setgid sau bitul lipicios. Biții setuid, setgid și bitul lipicios nu
+sunt copiați în fișierul țintă.
+.IP \(bu 3
+Când este utilizată cu opțiunile \fB\-\-decompress\fP și \fB\-\-stdout\fP, comanda
+\fBxz\fP nu poate recunoaște tipul fișierului sursă, și copiază fișierul sursă
+așa cum este la ieșirea standard. Acest lucru permite comenzii \fBxzcat\fP
+\fB\-\-force\fP să fie folosită drept comanda \fBcat\fP(1) pentru fișierele care nu
+au fost comprimate cu \fBxz\fP. Rețineți că, în viitor, \fBxz\fP ar putea să
+accepte noi formate de fișiere comprimate, ceea ce poate face ca \fBxz\fP să
+decomprime mai multe tipuri de fișiere în loc să le copieze așa cum sunt la
+ieșirea standard. Opțiunea \fB\-\-format=\fP\fIformat\fP poate fi folosită pentru a
+restricționa \fBxz\fP să decomprime doar un singur format de fișier.
+.RE
+.TP
+\fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
+Scrie datele comprimate sau decomprimate la ieșirea standard în loc de
+într\-un fișier. Aceasta implică \fB\-\-keep\fP.
+.TP
+\fB\-\-single\-stream\fP
+Decomprimă numai primul flux \fB.xz\fP și ignoră în tăcere posibilele date de
+intrare rămase în urma fluxului. În mod normal, astfel de resturi rămase
+face ca \fBxz\fP să afișeze o eroare.
+.IP ""
+\fBxz\fP nu decomprimă niciodată mai mult de un flux din fișierele \fB.lzma\fP sau
+din fluxurile brute, dar această opțiune face ca \fBxz\fP să ignore posibilele
+resturi de date rămase după fișierul \fB.lzma\fP sau fluxul brut.
+.IP ""
+Această opțiune nu are efect dacă modul de funcționare nu este
+\fB\-\-decompress\fP sau \fB\-\-test\fP.
+.TP
+\fB\-\-no\-sparse\fP
+Dezactivează crearea de fișiere dispersate. În mod implicit, dacă decomprimă
+într\-un fișier obișnuit, \fBxz\fP încearcă să facă fișierul dispersat dacă
+datele decomprimate conțin secvențe lungi de zerouri binare. De asemenea,
+funcționează atunci când scrie la ieșirea standard, atâta timp cât ieșirea
+standard este conectată la un fișier obișnuit și sunt îndeplinite anumite
+condiții suplimentare pentru a o face în siguranță. Crearea de fișiere
+dispersate poate economisi spațiu pe disc și poate accelera decomprimarea
+prin reducerea cantității de date de In/Ieș pe disc.
+.TP
+\fB\-S\fP \fI.suf\fP, \fB\-\-suffix=\fP\fI.suf\fP
+Când comprimă, utilizează \fI.suf\fP ca sufix pentru fișierul țintă în loc de
+\&\fB.xz\fP sau \fB.lzma\fP. Dacă nu scrie la ieșirea standard și fișierul sursă are
+deja sufixul \fI.suf\fP, este afișat un avertisment și fișierul este omis.
+.IP ""
+Când decomprimă, recunoaște fișierele cu sufixul \fI.suf\fP în plus față de
+fișierele cu sufixul \fB.xz\fP, \fB.txz\fP, \fB.lzma\fP, \fB.tlz\fP sau \fB.lz\fP. Dacă
+fișierul sursă are sufixul \fI.suf\fP, sufixul este eliminat pentru a obține
+numele fișierului țintă.
+.IP ""
+La comprimarea sau decomprimarea fluxurilor brute (\fB\-\-format=raw\fP), sufixul
+trebuie să fie întotdeauna specificat, cu excepția cazului în care se scrie
+la ieșirea standard, deoarece nu există un sufix implicit pentru fluxurile
+brute.
+.TP
+\fB\-\-files\fP[\fB=\fP\fIfișier\fP]
+Citește numele fișierelor de procesat din \fIfișier\fP; dacă \fIfișierul\fP este
+omis, numele fișierelor sunt citite de la intrarea standard. Numele de
+fișiere trebuie să fie terminate cu caracterul de linie nouă. O liniuță
+(\fB\-\fP) este luată ca nume de fișier obișnuit; nu înseamnă intrarea
+standard. Dacă numele de fișiere sunt date și ca argumente în linia de
+comandă, ele sunt procesate înainte ca numele fișierelor să fie citite din
+\fIfișier\fP.
+.TP
+\fB\-\-files0\fP[\fB=\fP\fIfișier\fP]
+Această opțiune este identică cu \fB\-\-files\fP[\fB=\fP\fIfișier\fP], cu excepția
+faptului că fiecare nume de fișier trebuie să fie terminat cu caracterul
+nul.
+.
+.SS "Formatul de bază al fișierului și opțiunile de comprimare"
+.TP
+\fB\-F\fP \fIformat\fP, \fB\-\-format=\fP\fIformat\fP
+Specifică \fIformatul\fP fișierului pentru comprimare sau decomprimare:
+.RS
+.TP
+\fBauto\fP
+Aceasta este valoarea implicită. La comprimare, \fBauto\fP este echivalent cu
+\fBxz\fP. La decomprimare, formatul fișierului de intrare este detectat
+automat. Rețineți că fluxurile brute (create cu \fB\-\-format=raw\fP) nu pot fi
+detectate automat.
+.TP
+\fBxz\fP
+Comprimă în formatul de fișier \fB.xz\fP sau acceptă numai fișierele \fB.xz\fP
+când decomprimă.
+.TP
+\fBlzma\fP, \fBalone\fP
+Comprimă în formatul de fișier \fB.lzma\fP vechi sau acceptă numai fișierele
+\&\fB.lzma\fP când decomprimă. Numele alternativ \fBalone\fP este furnizat pentru
+compatibilitatea cu versiunile mai vechi de LZMA Utils.
+.TP
+\fBlzip\fP
+Acceptă numai fișierele \fB.lz\fP când decomprimă. Comprimarea nu este
+acceptată.
+.IP ""
+Formatul \fB.lz\fP versiunea 0 și versiunea neextinsă 1 sunt
+acceptate. Fișierele versiunea 0 au fost produse de \fBlzip\fP cu versiunea 1.3
+sau mai veche. Astfel de fișiere nu sunt obișnuite, dar pot fi găsite în
+arhivele de fișiere, deoarece câteva pachete sursă au fost lansate în acest
+format. Oamenii ar putea avea și fișiere personale vechi în acest
+format. Suportul de decomprimare pentru versiunea de format 0 a fost
+eliminat în \fBlzip\fP 1.18.
+.IP ""
+\fBlzip\fP 1.4 și versiunile ulterioare creează fișiere în formatul versiunea
+1. Extensia „sync flush marker†pentru versiunea 1 de format a fost adăugată
+în \fBlzip\fP 1.6. Această extensie este folosită rar și nu este acceptată de
+\fBxz\fP (diagnosticată ca intrare coruptă).
+.TP
+\fBraw\fP
+Comprimă sau decomprimă un flux brut (fără anteturi). Acest lucru este
+destinat doar utilizatorilor avansați. Pentru a decodifica fluxurile brute,
+trebuie să utilizați opțiunea \fB\-\-format=raw\fP și să specificați în mod
+explicit lanțul de filtre, care în mod normal ar fi fost stocat în
+anteturile containerului.
+.RE
+.TP
+\fB\-C\fP \fIverificarea\fP, \fB\-\-check=\fP\fIverificarea\fP
+Specifică tipul verificării integrității. Verificarea este calculată din
+datele necomprimate și stocată în fișierul \fB.xz\fP. Această opțiune are efect
+numai la comprimarea în format \fB.xz\fP; formatul \fB.lzma\fP nu acceptă
+verificări de integritate. Verificarea integrității (dacă există) este
+efectuată atunci când fișierul \fB.xz\fP este decomprimat.
+.IP ""
+Tipuri de \fIverificare\fP acceptate:
+.RS
+.TP
+\fBnone\fP
+Nu calculează deloc o verificare a integrității. Aceasta este de obicei o
+idee proastă. Acest lucru poate fi util atunci când integritatea datelor
+este oricum verificată prin alte mijloace.
+.TP
+\fBcrc32\fP
+Calculează CRC32 folosind polinomul din IEEE\-802.3 (Ethernet).
+.TP
+\fBcrc64\fP
+Calculează CRC64 folosind polinomul din ECMA\-182. Aceasta este valoarea
+implicită, deoarece este ceva mai bună decât CRC32 la detectarea fișierelor
+deteriorate, iar diferența de viteză este neglijabilă.
+.TP
+\fBsha256\fP
+Calculează SHA\-256. Acest lucru este oarecum mai lent decât CRC32 și CRC64.
+.RE
+.IP ""
+Integritatea antetelor \fB.xz\fP este întotdeauna verificată cu CRC32. Nu este
+posibilă modificarea sau dezactivarea acesteia.
+.TP
+\fB\-\-ignore\-check\fP
+Nu efectuează verificarea integrității datelor comprimate la
+decomprimare. Valorile CRC32 din antetele \fB.xz\fP vor fi însă verificate
+normal.
+.IP ""
+\fBNu utilizați această opțiune decât dacă știți ce faceți\fP. Motive posibile
+pentru a utiliza această opțiune:
+.RS
+.IP \(bu 3
+Încercarea de a recupera datele dintr\-un fișier .xz corupt.
+.IP \(bu 3
+Accelerarea decomprimării. Acest lucru contează mai ales cu SHA\-256 sau cu
+fișierele care s\-au comprimat extrem de bine. Este recomandat să nu
+utilizați această opțiune în acest scop decât dacă integritatea fișierului
+este verificată extern într\-un alt mod.
+.RE
+.TP
+\fB\-0\fP ... \fB\-9\fP
+Selectează un nivel prestabilit de comprimare. Valoarea implicită este
+\fB\-6\fP. Dacă sunt specificate mai multe niveluri prestabilite, ultimul are
+efect. Dacă a fost deja specificat un lanț de filtre personalizat,
+specificarea unui nivel prestabilit de comprimare șterge lanțul de filtre
+personalizat.
+.IP ""
+Diferențele dintre valorile prestabilite sunt mai semnificative decât cu
+\fBgzip\fP(1) și \fBbzip2\fP(1). Valorile de comprimare selectate determină
+cerințele de memorie ale instrumentului de decomprimare, astfel încât
+utilizarea unui nivel prea mare prestabilit ar putea face „dureroasăâ€
+decomprimarea fișierului pe un sistem vechi cu puțină memorie RAM. Mai
+exact, \fBnu este o idee bună să folosiți orbește \-9 pentru tot\fP așa cum se
+întâmplă adesea cu \fBgzip\fP(1) și \fBbzip2\fP(1).
+.RS
+.TP
+\fB\-0\fP ... \fB\-3\fP
+Acestea sunt valorile prestabilite oarecum rapide. \fB\-0\fP este uneori mai
+rapid decât \fBgzip \-9\fP în timp ce comprimă mult mai bine. Cele mai ridicate
+au adesea viteza comparabilă cu \fBbzip2\fP(1) cu un raport de comprimare
+comparabil sau mai bun, deși rezultatele depind foarte mult de tipul de date
+care sunt comprimate.
+.TP
+\fB\-4\fP ... \fB\-6\fP
+Comprimare bună spre foarte bună, păstrând în același timp utilizarea
+memoriei de către instrumentul de decomprimare la un nivel rezonabil chiar
+și pentru sistemele vechi. \fB\-6\fP este valoarea implicită, care este de
+obicei o alegere bună pentru distribuirea fișierelor care trebuie să poată
+fi decomprimate chiar și pe sisteme cu doar 16Mio de memorie RAM. Opțiunile
+(\fB\-5e\fP sau \fB\-6e\fP ar putea fi demne de luat în considerare. A se vedea
+opțiunea \fB\-\-extreme\fP.)
+.TP
+\fB\-7 ... \-9\fP
+Acestea sunt precum \fB\-6\fP, dar cu cerințe mai mari de memorie pentru
+comprimare și decomprimare. Acestea sunt utile numai atunci când comprimați
+fișiere mai mari de 8Mio, 16Mio și, respectiv, 32Mio.
+.RE
+.IP ""
+Pe același hardware, viteza de decomprimare este aproximativ un număr
+constant de octeți de date comprimate pe secundă. Cu alte cuvinte, cu cât
+comprimarea este mai bună, cu atât decomprimarea va fi de obicei mai
+rapidă. Aceasta înseamnă, de asemenea, că valoarea de la ieșire a cantității
+de date necomprimate produsă pe secundă poate varia foarte mult.
+.IP ""
+Următorul tabel rezumă caracteristicile valorilor prestabilite:
+.RS
+.RS
+.PP
+.TS
+tab(;);
+c c c c c
+n n n n n.
+ValPrestab;DimDict;CPUComp;MemComp;MemDec
+\-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
+.TE
+.RE
+.RE
+.IP ""
+Descrieri coloane:
+.RS
+.IP \(bu 3
+DimDict este dimensiunea dicționarului LZMA2. Este o risipă de memorie să
+folosești un dicționar mai mare decât dimensiunea fișierului necomprimat. De
+aceea este bine să evitați utilizarea valorilor prestabilite \fB\-7\fP ... \fB\-9\fP
+atunci când nu este nevoie cu adevărat de ele. Pentru valoarea prestabilită
+\fB\-6\fP sau alta mai mică, cantitatea de memorie irosită este de obicei
+suficient de mică pentru a nu conta.
+.IP \(bu 3
+CPUComp este o reprezentare simplificată a configurărilor LZMA2 care
+afectează viteza de comprimare. Dimensiunea dicționarului afectează și
+viteza, așa că, în timp ce CPUComp este aceeași pentru nivelurile \fB\-6\fP
+\&... \fB\-9\fP, nivelurile mai mari tind să fie puțin mai lente. Pentru a obține
+o comprimare și mai lentă și, astfel, posibil mai bună, consultați opțiunea
+\fB\-\-extreme\fP.
+.IP \(bu 3
+MemComp conține cerințele de memorie ale comprimării în modul cu un singur
+fir de execuție. Poate varia ușor între versiunile \fBxz\fP.
+.IP \(bu 3
+MemDec conține cerințele de memorie pentru decomprimare. Adică,
+configurările de comprimare determină cerințele de memorie ale
+decomprimării. Cantitatea exactă a memoriei utilizate la decomprimare este
+puțin mai mare decât dimensiunea dicționarului LZMA2, dar valorile din tabel
+au fost rotunjite la următorul Mio.
+.RE
+.IP ""
+Cerințele de memorie ale modului cu mai multe fire de execuție sunt
+semnificativ mai mari decât cele ale modului cu un singur fir de
+execuție. Cu valoarea implicită a lui \fB\-\-block\-size\fP, fiecare fir are
+nevoie de 3*3*DictSize plus MemComp sau MemDec. De exemplu, patru fire de
+execuție cu valoarea prestabilită \fB\-6\fP au nevoie de 660\(en670\ Mio de
+memorie.
+.TP
+\fB\-e\fP, \fB\-\-extreme\fP
+Utilizează o variantă mai lentă a nivelului prestabilit de comprimare
+selectat (\fB\-0\fP ... \fB\-9\fP) pentru a obține un raport de comprimare puțin mai
+bun, dar din nefericire, acest lucru îl poate înrăutăți. Utilizarea memoriei
+pentru decomprimare nu este afectată, dar utilizarea memoriei la comprimare
+crește puțin la nivelurile prestabilite \fB\-0\fP ... \fB\-3\fP.
+.IP ""
+Deoarece există două valori prestabilite cu dimensiuni ale dicționarului de
+4Mio și 8Mio, valorile prestabilite \fB\-3e\fP și \fB\-5e\fP folosesc configurări
+puțin mai rapide (CPUComp mai mic) decât \fB\-4e\fP și \fB\-6e\fP, respectiv. În
+acest fel, nu există două nivele prestabilite identice.
+.RS
+.RS
+.PP
+.TS
+tab(;);
+c c c c c
+n n n n n.
+ValPrestab;DimDict;CPUComp;MemComp;MemDec
+\-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
+.TE
+.RE
+.RE
+.IP ""
+De exemplu, există un total de patru nivele prestabilite care folosesc
+dicționarul 8Mio, a căror ordine de la cel mai rapid la cel mai lent este
+\fB\-5\fP, \fB\-6\fP, \fB\-5e\fP și \fB\-6e\fP .
+.TP
+\fB\-\-fast\fP
+.PD 0
+.TP
+\fB\-\-best\fP
+.PD
+Acestea sunt alias de opțiuni, oarecum înșelătoare pentru \fB\-0\fP și,
+respectiv, \fB\-9\fP. Acestea sunt furnizate numai pentru compatibilitatea cu
+LZMA Utils. Evitați utilizarea acestor opțiuni.
+.TP
+\fB\-\-block\-size=\fP\fIdimensiunea\fP
+Când comprimă în formatul \fB.xz\fP, împarte datele de intrare în blocuri de
+\fIdimensiunea\fP octeți. Blocurile sunt comprimate independent unul de
+celălalt, ceea ce ajută în modul cu mai multe fire de execuție și face
+posibilă decomprimarea cu acces aleatoriu limitat. Această opțiune este de
+obicei folosită pentru a suprascrie dimensiunea implicită a blocului în
+modul cu mai multe fire de execuție, dar această opțiune poate fi folosită
+și în modul cu un singur fir de execuție.
+.IP ""
+În modul cu mai multe fire de execuție, aproximativ de trei ori
+\fIdimensiunea\fP de octeți vor fi alocați în fiecare fir pentru stocarea
+intrării și ieșirii. \fIDimensiunea\fP implicită este de trei ori dimensiunea
+dicționarului LZMA2 sau 1Mio, oricare dintre acestea este mai mare. În mod
+obișnuit, o valoare bună este de două la patru ori dimensiunea dicționarului
+LZMA2 sau de cel puțin 1Mio. Utilizarea unei \fIdimensiuni\fP mai mici decât
+dimensiunea dicționarului LZMA2 este o risipă de memorie RAM, deoarece
+atunci memoria tampon a dicționarului LZMA2 nu va fi niciodată utilizată pe
+deplin. În modul cu mai multe fire de execuție, dimensiunile blocurilor sunt
+stocate în anteturile blocurilor. Aceste informații privind dimensiunea sunt
+necesare pentru decomprimarea cu mai multe fire.
+.IP ""
+În modul cu un singur fir de execuție, nicio divizare a blocurilor nu se
+face în mod implicit. Folosirea acestei opțiuni nu afectează utilizarea
+memoriei. Nu sunt stocate informații despre dimensiune în antetele
+blocurilor, astfel încât fișierele create în modul cu un singur fir de
+execuție nu vor fi identice cu fișierele create în modul cu mai multe fire
+de execuție. Lipsa informațiilor privind dimensiunea înseamnă, de asemenea,
+că \fBxz\fP nu va putea decomprima fișierele în modul cu mai multe fire. de
+execuție.
+.TP
+\fB\-\-block\-list=\fP\fIelemente\fP
+Când comprimă în formatul \fB.xz\fP, începe un nou bloc cu un lanț de filtre
+personalizat opțional după intervalele specificate de date necomprimate.
+.IP ""
+\fIelementele\fP sunt o listă separată prin virgule. Fiecare element este
+format dintr\-un număr opțional de lanț de filtrare între 0 și 9, urmat de
+două puncte (\fB:\fP) și de o dimensiune cerută a datelor
+necomprimate. Omiterea unui element (două sau mai multe virgule consecutive)
+este o prescurtare pentru a utiliza dimensiunea și filtrele din elementul
+anterior.
+.IP ""
+În cazul în care fișierul de intrare este mai mare decât suma dimensiunilor
+din \fIelemente\fP, ultimul element se repetă până la sfârșitul fișierului. O
+valoare specială de \fB0\fP poate fi utilizată ca ultimă dimensiune pentru a
+indica faptul că restul fișierului trebuie să fie codificat ca un singur
+bloc.
+.IP ""
+Un lanț de filtre alternativ pentru fiecare bloc poate fi specificat în
+combinație cu opțiunile \fB\-\-filters1=\fP\fIfiltre\fP \&...\&
+\fB\-\-filters9=\fP\fIfiltre\fP. Aceste opțiuni definesc lanțuri de filtre cu un
+identificator cuprins între 1\(en9. Lanțul de filtre 0 poate fi utilizat
+pentru a se referi la lanțul de filtre implicit, ceea ce este același lucru
+cu a nu specifica un lanț de filtre. Identificatorul lanțului de filtre
+poate fi utilizat înaintea dimensiunii necomprimate, urmat de două puncte
+(\fB:\fP). De exemplu, dacă se specifică
+\fB\-\-block\-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB\fP, atunci blocurile vor fi
+create folosind:
+.RS
+.IP \(bu 3
+Lanțul de filtre specificat de \fB\-\-filters1\fP și 2 Mio de intrare
+.IP \(bu 3
+Lanțul de filtre specificat de \fB\-\-filters3\fP și 2 Mio de intrare
+.IP \(bu 3
+Lanțul de filtre specificat de \fB\-\-filters2\fP și 4 Mio de intrare
+.IP \(bu 3
+Lanțul de filtre specificat de \fB\-\-filters2\fP și 4 Mio de intrare
+.IP \(bu 3
+Lanțul de filtre implicit și 2 MiB de intrare
+.IP \(bu 3
+Lanțul de filtre implicit și 4 MiB de intrare pentru fiecare bloc până la
+sfârșitul intrării.
+.RE
+.IP ""
+Dacă se specifică o dimensiune care depășește dimensiunea blocului
+codificatorului (fie valoarea implicită în modul cu fire de execuție, fie
+valoarea specificată cu \fB\-\-block\-size=\fP\fIdimensiune\fP), codificatorul va
+crea blocuri suplimentare, păstrând limitele specificate în \fIelemente\fP. De
+exemplu, dacă se specifică \fB\-\-block\-size=10MiB\fP
+\fB\-\-block\-list=5MiB,10MiB,8MiB,12MiB,24MiB\fP și fișierul de intrare este de
+80 MiB, se vor obține 11 blocuri: 5, 10, 8, 10, 10, 2, 10, 10, 10, 4, 10,
+10, 10 și 1 Mio.
+.IP ""
+În modul cu mai multe fire de execuție, dimensiunile blocurilor sunt stocate
+în antetele blocurilor. Acest lucru nu se face în modul cu un singur fir de
+execuție, astfel încât ieșirea codificată nu va fi identică cu cea a modului
+cu mai multe fire de execuție.
+.TP
+\fB\-\-flush\-timeout=\fP\fItimp_limită\fP
+La comprimare, dacă au trecut mai mult de \fItimp_limită\fP milisecunde (un
+întreg pozitiv) de la curățarea anterioară și citirea mai multor intrări
+s\-ar bloca, toate datele de intrare în așteptare sunt eliminate din
+codificator și puse la dispoziție în fluxul de ieșire. Acest lucru poate să
+fie util dacă \fBxz\fP este utilizat pentru a comprima datele care sunt
+transmise în flux printr\-o rețea. Valorile mici de \fItimp_limită\fP fac datele
+disponibile la capătul de recepție cu o mică întârziere, dar valorile mari
+de \fItimp_limită\fP oferă un raport de comprimare mai bun.
+.IP ""
+Această caracteristică este dezactivată în mod implicit. Dacă această
+opțiune este specificată de mai multe ori, ultima este cea care se ia în
+considerare. Valoarea specială a lui \fItimp_limită\fP de \fB0\fP, poate fi
+utilizată pentru a dezactiva în mod explicit această caracteristică.
+.IP ""
+Această caracteristică nu este disponibilă în sistemele non\-POSIX.
+.IP ""
+.\" FIXME
+\fBAceastă caracteristică este încă experimentală\fP. În prezent, \fBxz\fP este
+nepotrivit pentru decomprimarea fluxului în timp real datorită modului în
+care \fBxz\fP utilizează memoria tampon.
+.TP
+\fB\-\-memlimit\-compress=\fP\fIlimita\fP
+Stabilește o limită de utilizare a memoriei pentru comprimare. Dacă această
+opțiune este specificată de mai multe ori, ultima va avea efect.
+.IP ""
+Dacă parametrii de comprimare depășesc \fIlimita\fP, \fBxz\fP va încerca să
+ajusteze parametrii scăzând valorile acestora, astfel încât limita să nu mai
+fie depășită și va afișa o notificare că ajustarea automată a fost
+efectuată. Ajustările se fac în această ordine: reducerea numărului de fire,
+trecerea la modul un singur fir de execuție dacă chiar și un singur fir în
+modul cu mai multe fire de execuție depășește \fIlimita\fP și, în final,
+reducerea dimensiunii dicționarului LZMA2.
+.IP ""
+Când comprimă cu opțiunea \fB\-\-format=raw\fP sau dacă a fost specificată
+opțiunea \fB\-\-no\-adjust\fP, numai numărul de fire poate fi redus, deoarece se
+poate face fără a afecta rezultatul comprimării.
+.IP ""
+Dacă \fIlimita\fP nu poate fi îndeplinită chiar și cu ajustările descrise mai
+sus, este afișată o eroare și \fBxz\fP va ieși cu starea de ieșire 1.
+.IP ""
+\fILimita\fP poate fi specificata în mai multe moduri:
+.RS
+.IP \(bu 3
+\fILimita\fP poate fi o valoare absolută în octeți. Utilizarea unui sufix
+întreg precum \fBMiB\fP poate fi utilă. De exemplu:
+\fB\-\-memlimit\-compress=80MiB\fP
+.IP \(bu 3
+\fILimita\fP poate fi specificată ca procent din memoria fizică totală
+(RAM). Acest lucru poate fi util mai ales atunci când definiți variabila de
+mediu \fBXZ_DEFAULTS\fP într\-un script de inițializare shell care este partajat
+între diferite calculatoare. În acest fel, limita este automat mai mare pe
+sistemele cu mai multă memorie. De exemplu: \fB\-\-memlimit\-compress=70%\fP
+.IP \(bu 3
+\fILimita\fP poate fi restabilită la valoarea implicită dându\-i valoarea
+\fB0\fP. În prezent, aceasta este echivalentă cu stabilirea \fIlimitei\fP la
+\fBmax\fP (fără limită de utilizare a memoriei).
+.RE
+.IP ""
+Pentru \fBxz\fP pe 32 de biți există un caz special: dacă \fIlimita\fP ar fi peste
+\fB4020MiB\fP, \fIlimita\fP este stabilită la \fB4020MiB\fP. Pe MIPS32 este
+stabilită în schimb la \fB2000MiB\fP; (valorile \fB0\fP și \fBmax\fP nu sunt afectate
+de acest lucru \-\- o caracteristică similară nu există pentru
+decomprimare). Acest lucru poate fi util atunci când un executabil pe 32 de
+biți are acces la un spațiu de adrese de 4Gio (2Gio pe MIPS32), se speră că
+nu produce daune în alte situații.
+.IP ""
+Consultați și secțiunea \fBUtilizarea memoriei\fP.
+.TP
+\fB\-\-memlimit\-decompress=\fP\fIlimita\fP
+Stabilește o limită de utilizare a memoriei pentru decomprimare. Acest lucru
+afectează și modul \fB\-\-list\fP. Dacă operațiunea nu este posibilă fără a
+depăși \fIlimita\fP, \fBxz\fP va afișa o eroare și decomprimarea fișierului va
+eșua. Consultați \fB\-\-memlimit\-compress=\fP\fIlimita\fP pentru modalitățile
+posibile de a specifica \fIlimita\fP.
+.TP
+\fB\-\-memlimit\-mt\-decompress=\fP\fIlimita\fP
+Stabilește o limită de utilizare a memoriei pentru decomprimarea cu mai
+multe fire de execuție. Acest lucru poate afecta doar numărul de fire de
+execuție; acest lucru nu îl va face niciodată pe \fBxz\fP să refuze
+decomprimarea unui fișier. Dacă \fIlimita\fP este prea scăzută pentru a permite
+orice mod cu mai multe fire de execuție, \fIlimita\fP este ignorată și \fBxz\fP va
+continua în modul cu un singur fir de execuție. Rețineți că, dacă se
+folosește și opțiunea \fB\-\-memlimit\-decompress\fP, se va aplica întotdeauna
+atât modurilor cu un singur fir de execuție, cât și modurilor cu mai multe
+fire de execuție și astfel \fIlimita\fP efectivă pentru modul cu mai multe fire
+de execuție nu va fi niciodată mai mare decât limita stabilită cu opțiunea
+\fB\-\-memlimit\-decompress\fP.
+.IP ""
+Spre deosebire de celelalte opțiuni de limită de utilizare a memoriei,
+opțiunea \fB\-\-memlimit\-mt\-decompress=\fP\fIlimita\fP are o \fIlimită\fP implicită
+specifică sistemului. Comanda \fBxz \-\-info\-memory\fP poate fi folosită pentru a
+vedea valoarea curentă.
+.IP ""
+Această opțiune și valoarea ei implicită există deoarece, fără nicio limită,
+decomprimarea cu (mai multe) fire de execuție ar putea ajunge să aloce o
+cantitate „nebună†de memorie cu unele fișiere de intrare. Dacă \fIlimita\fP
+implicită este prea scăzută pe sistemul dumneavoastră, nu ezitați să
+creșteți \fIlimita\fP, dar niciodată să nu o stabiliți la o valoare mai mare
+decât cantitatea de memorie RAM utilizabilă și cu niște fișiere de intrare
+adecvate, \fBxz\fP va încerca să utilizeze acea cantitate de memorie chiar și
+cu un număr redus de fire de execuție. Rularea lui \fBxz\fP cu depășirea
+cantității de memorie fizice(RAM) sau a celei de interschimb(swap) nu va
+îmbunătăți performanța de decomprimare.
+.IP ""
+Consultați opțiunea \fB\-\-memlimit\-compress=\fP\fIlimita\fP pentru modalități
+posibile de a specifica \fIlimita\fP. Stabilirea \fIlimitei\fP la \fB0\fP
+restabilește \fIlimita\fP la valoarea implicită specifică sistemului.
+.TP
+\fB\-M\fP \fIlimita\fP, \fB\-\-memlimit=\fP\fIlimita\fP, \fB\-\-memory=\fP\fIlimita\fP
+Aceasta este echivalentă cu specificarea opțiunilor:
+\fB\-\-memlimit\-compress=\fP\fIlimita\fP \fB\-\-memlimit\-decompress=\fP\fIlimita\fP
+\fB\-\-memlimit\-mt\-decompress=\fP\fIlimita\fP.
+.TP
+\fB\-\-no\-adjust\fP
+Afișează o eroare și iese dacă limita de utilizare a memoriei nu poate fi
+îndeplinită fără ajustarea parametrilor care afectează ieșirea
+comprimată. Adică, acest lucru împiedică \fBxz\fP să comute codificatorul din
+modul cu mai multe fire de execuție în modul cu un singur fir de execuție și
+să reducă dimensiunea dicționarului LZMA2. Chiar și atunci când această
+opțiune este utilizată, numărul de fire de execuție poate fi redus pentru a
+îndeplini limita de utilizare a memoriei, deoarece aceasta nu va afecta
+comprimarea.
+.IP ""
+Ajustarea automată este întotdeauna dezactivată la crearea fluxurilor brute
+(\fB\-\-format=raw\fP).
+.TP
+\fB\-T\fP \fInumăr\fP, \fB\-\-threads=\fP\fInumăr\fP
+Specifică numărul de fire de execuție de utilizat. Stabilirea \fInumărului\fP
+la valoarea specială \fB0\fP, face ca \fBxz\fP să utilizeze până la atâtea fire de
+execuție câte procesoare sunt în sistem. Numărul real de fire de execuție
+poate fi mai mic decât \fInumăr\fP dacă fișierul de intrare nu este suficient
+de mare pentru a trece la modul cu mai multe fire de execuție cu parametrii
+dați, sau dacă folosirea mai multor fire de execuție ar depăși limita de
+utilizare a memoriei.
+.IP ""
+Operațiile de comprimare cu un singur fir de execuție și cele cu mai multe
+fire de execuție produc ieșiri diferite. Comprimarea cu un singur fir de
+execuție va oferi cea mai mică dimensiune a fișierului, dar numai ieșirea de
+la comprimarea cu mai multe fire de execuție poate fi decomprimată folosind
+mai multe fire. Stabilirea \fInumărului\fP la \fB1\fP va determina ca \fBxz\fP să
+folosească modul cu un singur fir de execuție. Stabilirea \fInumărului\fP la
+orice altă valoare, inclusiv \fB0\fP, va determina ca \fBxz\fP să folosească
+comprimarea cu mai multe fire de execuție chiar dacă sistemul acceptă doar
+un fir hardware; (\fBxz\fP 5.2.x folosește modul cu un singur fir de execuție
+în această situație).
+.IP ""
+Pentru a utiliza modul cu mai multe fire de execuție cu un singur fir,
+stabiliți \fInumărul\fP la \fB+1\fP. Prefixul \fB+\fP nu are efect cu alte valori
+decât \fB1\fP. O limită de utilizare a memoriei poate face în continuare \fBxz\fP
+să treacă în modul cu un singur fir, cu excepția cazului în care este
+utilizată opțiunea \fB\-\-no\-adjust\fP. Suportul pentru prefixul \fB+\fP a fost
+adăugat în \fBxz\fP 5.4.0.
+.IP ""
+Dacă a fost solicitat un număr automat de fire și nu a fost specificată
+nicio limită de utilizare a memoriei, atunci o limită „maleabilă†implicită
+specifică sistemului va fi utilizată pentru a limita eventual numărul de
+fire de execuție. Este o limită „maleabilă†în sensul că este ignorată dacă
+numărul de fire devine unul, astfel o limită „maleabilă†nu va opri
+niciodată \fBxz\fP să comprime sau să decomprime. Această limită „maleabilăâ€
+implicită nu va face \fBxz\fP să treacă de la modul cu mai multe fire de
+execuție la modul cu un singur fir de execuție. Limitele active pot fi
+văzute rulând comanda \fBxz \-\-info\-memory\fP.
+.IP ""
+În prezent, singura metodă de procesare cu fire de execuție este împărțirea
+intrării în blocuri și comprimarea lor independent unul de
+celălalt. Dimensiunea implicită a blocului depinde de nivelul de comprimare
+și poate fi înlocuită cu opțiunea \fB\-\-block\-size=\fP\fIdimensiune\fP.
+.IP ""
+Decomprimarea cu fire de execuție funcționează numai pe fișierele care
+conțin mai multe blocuri cu informații despre dimensiune în antetele
+blocurilor. Toate fișierele suficient de mari comprimate în modul cu mai
+multe fire de execuție îndeplinesc această condiție, dar fișierele
+comprimate în modul cu un singur fir de execuție nu o îndeplinesc chiar dacă
+a fost folosită opțiunea \fB\-\-block\-size=\fP\fIdimensiune\fP.
+.IP ""
+Valoarea implicită pentru \fIfire de execuție\fP este \fB0\fP. În \fBxz\fP 5.4.x și
+mai vechi, valoarea implicită este \fB1\fP.
+.
+.SS "Lanțuri de filtrare personalizate pentru instrumentul de comprimare"
+Un lanÈ› de filtrare personalizat permite specificarea parametrilor de
+comprimare în detaliu, în loc să se bazeze pe cei asociați opțiunilor
+prestabilite. Când este specificat un lanț de filtrare personalizat,
+opțiunile prestabilite (\fB\-0\fP \&...\& \fB\-9\fP și \fB\-\-extreme\fP) de mai devreme
+din linia de comandă sunt uitate. Dacă o opțiune prestabilită este
+specificată după una sau mai multe opțiuni de lanț de filtrare personalizat,
+noua prestabilire intră în vigoare și opțiunile lanțului de filtrare
+personalizat, specificate mai devreme sunt uitate.
+.PP
+Un lanț de filtrare este comparabil cu conductele din linia de comandă. La
+comprimare, intrarea necomprimată merge la primul filtru, a cărui ieșire
+merge la următorul filtru (dacă există). Ieșirea ultimului filtru este
+scrisă în fișierul comprimat. Numărul maxim de filtre din lanț este de
+patru, dar de obicei un lanț de filtrare are doar unul sau două filtre.
+.PP
+Multe filtre au limitări în ceea ce privește locul în care se pot afla în
+lanțul de filtrare: unele filtre pot funcționa doar ca ultimul filtru din
+lanț, altele doar ca non\-ultim filtru și unele funcționează în orice poziție
+din lanț. În funcție de filtru, această limitare este fie inerentă
+proiectării filtrului, fie există pentru a preveni problemele de securitate.
+.PP
+Un lanț de filtre personalizat poate fi specificat în două moduri
+diferite. Opțiunile \fB\-\-filters=\fP\fIfiltre\fP și \fB\-\-filters1=\fP\fIfiltre\fP
+\&...\& \fB\-\-filters9=\fP\fIfiltre\fP permit specificarea unui întreg lanț de
+filtre într\-o singură opțiune, folosind sintaxa șirului de filtre
+liblzma. Alternativ, un lanÈ› de filtre poate fi specificat prin utilizarea
+uneia sau mai multor opțiuni de filtrare individuale în ordinea în care sunt
+dorite în lanțul de filtre. Adică, ordinea opțiunilor de filtrare
+individuale este semnificativă! La decodificarea fluxurilor brute
+(\fB\-\-format=raw\fP), lanțul de filtre trebuie să fie specificat în aceeași
+ordine în care a fost specificat la comprimare. Orice filtru individual sau
+opțiuni presetate specificate înainte de opțiunea de lanț complet
+(\fB\-\-filters=\fP\fIfiltre\fP) vor fi uitate. Filtrele individuale specificate
+după opțiunea „lanț complet†vor reinițializa lanțul de filtre.
+.PP
+Atât opțiunile de filtrare completă, cât și cele de filtrare individuală
+acceptă \fIopțiuni\fP specifice filtrului sub forma unei liste separate prin
+virgule. Se ignoră virgulele suplimentare din \fIopțiuni\fP. Fiecare opțiune
+are o valoare implicită, deci specificați\-le pe cele pe care doriți să le
+modificați.
+.PP
+Pentru a vedea întregul lanț de filtre și \fIopțiuni\fP, utilizați \fBxz \-vv\fP
+(adică folosiți \fB\-\-verbose\fP de două ori). Acest lucru funcționează și
+pentru vizualizarea opțiunilor lanțului de filtre utilizate de valorile
+prestabilite.
+.TP
+\fB\-\-filters=\fP\fIfiltre\fP
+Specificați întregul lanț de filtre sau o presetare într\-o singură
+opțiune. Fiecare filtru poate fi separat prin spații sau două liniuțe
+(\fB\-\-\fP). Este posibil să fie necesar ca \fIfiltrele\fP să fie puse între
+ghilimele în linia de comandă a shell\-ului pentru a fi analizate ca o
+singură opțiune. Pentru a indica \fIopțiuni\fP, utilizați \fB:\fP sau \fB=\fP. O
+presetare poate fi prefixată cu un \fB\-\fP și urmată de zero sau mai multe
+indicatoare. Singurul indicator suportat este \fBe\fP pentru a aplica aceleași
+opțiuni ca și \fB\-\-extreme\fP.
+.TP
+\fB\-\-filters1\fP=\fIfiltre\fP ... \fB\-\-filters9\fP=\fIfiltre\fP
+Specifică până la nouă lanțuri de filtre suplimentare care pot fi utilizate
+cu \fB\-\-block\-list\fP.
+.IP ""
+De exemplu, atunci când se comprimă o arhivă cu fișiere executabile urmate
+de fișiere text, partea executabilă ar putea utiliza un lanț de filtre cu un
+filtru BCJ, iar partea de text doar filtrul LZMA2.
+.TP
+\fB\-\-filters\-help\fP
+Afișează un mesaj de ajutor care descrie modul de specificare a presetărilor
+și a lanțurilor de filtre personalizate în opțiunile \fB\-\-filters\fP și
+\fB\-\-filters1=\fP\fIfiltre\fP \&...\& \fB\-\-filters9=\fP\fIfiltre\fP și iese.
+.TP
+\fB\-\-lzma1\fP[\fB=\fP\fIopțiuni\fP]
+.PD 0
+.TP
+\fB\-\-lzma2\fP[\fB=\fP\fIopțiuni\fP]
+.PD
+Adaugă filtrul LZMA1 sau LZMA2 la lanțul de filtre. Aceste filtre pot fi
+folosite doar ca ultimul filtru din lanÈ›.
+.IP ""
+LZMA1 este un filtru vechi, care este acceptat aproape exclusiv datorită
+formatului de fișier vechi \fB.lzma\fP, care acceptă numai LZMA1. LZMA2 este o
+versiune actualizată a LZMA1 pentru a rezolva unele probleme practice ale
+LZMA1. Formatul \fB.xz\fP folosește LZMA2 și nu acceptă deloc LZMA1. Viteza de
+comprimare și rapoartele LZMA1 și LZMA2 sunt practic aceleași.
+.IP ""
+LZMA1 și LZMA2 au același set de \fIopțiuni\fP:
+.RS
+.TP
+\fBpreset=\fP\fIprestabilit\fP
+Reconfigurează toate \fIopțiunile\fP LZMA1 sau LZMA2 la
+\fIprestabilit\fP. \fIprestabilit\fP constă dintr\-un număr întreg, care poate fi
+urmat de modificatori prestabiliți cu o singură literă. Numărul întreg
+poate fi de la \fB0\fP la \fB9\fP, potrivindu\-se cu opțiunile liniei de comandă
+\fB\-0\fP \&...\& \fB\-9\fP. Singurul modificator acceptat în prezent este \fBe\fP,
+care se potrivește cu \fB\-\-extreme\fP. Dacă nu este specificat \fBprestabilit\fP,
+valorile implicite ale \fIopțiunilor\fP LZMA1 sau LZMA2 sunt preluate din
+prestabilirea \fB6\fP.
+.TP
+\fBdict=\fP\fIdimensiunea\fP
+\fIDimensiunea\fP dicționarului (istoricul memoriei tampon) indică câți octeți
+din datele necomprimate recent procesate sunt păstrați în
+memorie. Algoritmul încearcă să găsească secvențe de octeți care se repetă
+(potriviri) în datele necomprimate și să le înlocuiască cu referințe la
+datele aflate în prezent în dicționar. Cu cât dicționarul este mai mare, cu
+atât este mai mare șansa de a găsi o potrivire. Astfel, creșterea
+\fIdimensiunii\fP dicționarului îmbunătățește de obicei raportul de comprimare,
+dar un dicționar mai mare decât fișierul necomprimat este risipă de memorie.
+.IP ""
+\fIDimensiunea\fPtipică a dicționarului este de la 64Kio până la 64Mio. Minimul
+este de 4Kio. Maximul pentru compresie este în prezent de 1,5Gio
+(1536Mio). Decomprimarea acceptă deja dicționare cu până la un octet mai
+puțin de 4Gio, care este maximul pentru formatele de flux LZMA1 și LZMA2.
+.IP ""
+\fIDimensiunea\fP dicționarului și găsitorul de potriviri (match finder) →
+(\fImf\fP) determină împreună utilizarea memoriei de către codificatorul LZMA1
+sau LZMA2. Aceeași \fIdimensiune\fP a dicționarului (sau mai mare) care a fost
+utilizată la comprimare, este necesară pentru decomprimare, astfel încât
+utilizarea memoriei de către decodificator este determinată de dimensiunea
+dicționarului utilizată la comprimare. Antetele \fB.xz\fP stochează
+\fIdimensiunea\fP dicționarului fie ca 2^\fIn\fP, fie ca 2^\fIn\fP + 2^(\fIn\fP\-1), deci
+aceste \fIdimensiuni\fP sunt oarecum preferate pentru comprimare. Alte
+\fIdimensiuni\fP vor fi rotunjite atunci când sunt stocate în anteturile
+\&\fB.xz\fP.
+.TP
+\fBlc=\fP\fIlc\fP
+Specifică numărul de biți de context literal. Minimul este 0 și maximul este
+4; implicit este 3. În plus, suma \fIlc\fP și \fIlp\fP nu trebuie să depășească
+4.
+.IP ""
+Toți octeții care nu pot fi codificați ca potriviri sunt codificați ca
+literali. Adică, literalii sunt pur și simplu octeți de 8 biți care sunt
+codificați unul câte unul.
+.IP ""
+Codificarea literală presupune că cei mai mari biți \fIlc\fP ai octetului
+anterior necomprimat se corelează cu octetul următor. De exemplu, în textul
+tipic englezesc, o literă mare este adesea urmată de o literă mică, iar o
+literă mică este urmată de obicei de o altă literă mică. În setul de
+caractere US\-ASCII, cei mai mari trei biți sunt 010 pentru literele mari și
+011 pentru literele mici. Când \fIlc\fP este cel puțin 3, codificarea literală
+poate profita de această proprietate în datele necomprimate.
+.IP ""
+Valoarea implicită (3) este de obicei bună. Dacă doriți o comprimare maximă,
+testați \fBlc=4\fP. Uneori ajută puțin, iar uneori înrăutățește comprimarea
+\&. Dacă o agravează, încercați de\-asemeni cu \fBlc=2\fP.
+.TP
+\fBlp=\fP\fIlp\fP
+Specifică numărul de biți de poziție literală. Minimul este 0 și maximul
+este 4; implicit este 0.
+.IP ""
+\fILp\fP afectează ce fel de aliniere în datele necomprimate este presupusă la
+codificarea literalelor. Consultați argumentul \fIpb\fP de mai jos pentru mai
+multe informații despre aliniere.
+.TP
+\fBpb=\fP\fIpb\fP
+Specifică numărul de biți de poziție. Minimul este 0 și maximul este 4;
+implicit este 2.
+.IP ""
+\fIPb\fP afectează ce fel de aliniere în datele necomprimate este presupusă în
+general. Valoarea implicită înseamnă alinierea pe patru octeți
+(2^\fIpb\fP=2^2=4), care este adesea o alegere bună atunci când nu există o
+ipoteză mai bună.
+.IP ""
+Când alinierea este cunoscută, definirea lui \fIpb\fP în mod corespunzător
+poate reduce puțin dimensiunea fișierului. De exemplu, cu fișierele text cu
+aliniere pe un octet (US\-ASCII, ISO\-8859\-*, UTF\-8), definirea \fBpb=0\fP poate
+îmbunătăți ușor comprimarea. Pentru textul UTF\-16, \fBpb=1\fP este o alegere
+bună. Dacă alinierea este un număr impar, cum ar fi 3 octeți, \fBpb=0\fP ar
+putea fi cea mai bună alegere.
+.IP ""
+Chiar dacă alinierea presupusă poate fi ajustată cu \fIpb\fP și \fIlp\fP, LZMA1 și
+LZMA2 încă favorizează ușor alinierea pe 16 octeți. Ar putea fi demn de luat
+în considerare atunci când proiectați formate de fișiere care pot fi adesea
+comprimate cu LZMA1 sau LZMA2.
+.TP
+\fBmf=\fP\fImf\fP
+Căutarea potrivirilor are un efect major asupra vitezei codificatorului,
+utilizării memoriei și raportului de comprimare. De obicei, găsitorii de
+potriviri din lanțul sumelor de control sunt mai rapizi decât găsitorii de
+potriviri din arborele binar. Valoarea implicită depinde de \fIprestabilit\fP:
+0 folosește \fBhc3\fP, 1\(en3 folosește \fBhc4\fP, iar restul folosește \fBbt4\fP.
+.IP ""
+Sunt acceptate următoarele opțiuni de căutare de potriviri. Formulele de
+utilizare a memoriei de mai jos sunt aproximări estimative, care se apropie
+cel mai mult de realitate atunci când \fIdict\fP este o putere a lui doi.
+.RS
+.TP
+\fBhc3\fP
+Lanț de sumă de control, cu suma de control de 2 și 3 octeți
+.br
+Valoarea minimă pentru \fInice\fP: 3
+.br
+Utilizarea memoriei:
+.br
+\fIdict\fP * 7.5 (dacă \fIdict\fP <= 16 Mio);
+.br
+\fIdict\fP * 5.5 + 64 MiB (dacă \fIdict\fP > 16 Mio)
+.TP
+\fBhc4\fP
+Lanț de sumă de control, cu suma de control de 2, 3 și 4 octeți
+.br
+Valoarea minimă pentru \fInice\fP: 4
+.br
+Utilizarea memoriei:
+.br
+\fIdict\fP * 7.5 (dacă \fIdict\fP <= 32 Mio);
+.br
+\fIdict\fP * 6.5 (dacă \fIdict\fP > 32 Mio)
+.TP
+\fBbt2\fP
+Arbore binar cu suma de control de 2 octeți
+.br
+Valoarea minimă pentru \fInice\fP: 2
+.br
+Utilizarea memoriei: \fIdict\fP * 9.5
+.TP
+\fBbt3\fP
+Arbore binar cu suma de control de 2 și 3 octeți
+.br
+Valoarea minimă pentru \fInice\fP: 3
+.br
+Utilizarea memoriei:
+.br
+\fIdict\fP * 11.5 (dacă \fIdict\fP <= 16 Mio);
+.br
+\fIdict\fP * 9.5 + 64 MiB (dacă \fIdict\fP > 16 Mio)
+.TP
+\fBbt4\fP
+Arbore binar cu suma de control de 2, 3 și 4 octeți
+.br
+Valoarea minimă pentru \fInice\fP: 4
+.br
+Utilizarea memoriei:
+.br
+\fIdict\fP * 11.5 (dacă \fIdict\fP <= 32 Mio);
+.br
+\fIdict\fP * 10.5 (dacă \fIdict\fP > 32 Mio)
+.RE
+.TP
+\fBmode=\fP\fImod\fP
+Comprimarea \fImod\fP specifică metoda de analiză a datelor produse de
+găsitorul de potriviri. \fIModurile\fP acceptate sunt \fBfast\fP(rapid) și
+\fBnormal\fP. Valoarea implicită este \fBfast\fP pentru \fIprestabiliri\fP 0\(en3 și
+\fBnormal\fP pentru \fIprestabiliri\fP 4\(en9.
+.IP ""
+De obicei, \fBfast\fP este folosit cu instrumentele de căutare de potriviri ale
+lanțului de sume de control, și \fBnormal\fP cu instrumentele de căutare de
+potriviri din arborele binar. Aceasta este și ceea ce fac \fIprestabiririle\fP.
+.TP
+\fBnice=\fP\fInice\fP
+Specifică ceea ce este considerat a fi o lungime bună(nice) pentru o
+potrivire. Odată ce este găsită o potrivire de cel puțin \fInice\fP octeți,
+algoritmul nu mai caută după potriviri posibile mai bune.
+.IP ""
+\fINice\fP poate fi de 2\(en273 octeți. Valorile mai mari tind să ofere un
+raport de comprimare mai bun în detrimentul vitezei. Valoarea implicită
+depinde de \fIprestabilit\fP.
+.TP
+\fBdepth=\fP\fIadâncimea\fP
+Specifică adâncimea maximă de căutare în găsitorul de potriviri. Valoarea
+implicită este valoarea specială de 0, ceea ce face ca instrumentul de
+comprimare să determine o \fIadâncime\fP rezonabilă pornind de la valorile
+\fImf\fP și \fInice\fP.
+.IP ""
+\fIAdâncimea\fP rezonabilă pentru lanțuri de sumă de control este 4\(en100 și
+16\(en1000 pentru arbori binari. Folosirea unor valori foarte mari pentru
+\fIadâncime\fP poate face codificatorul extrem de lent cu unele
+fișiere. Evitați să stabiliți \fIadâncimea\fP la valori peste 1000, cu excepția
+cazului în care sunteți pregătit să întrerupeți comprimarea în cazul în care
+durează prea mult.
+.RE
+.IP ""
+La decodificarea fluxurilor brute (\fB\-\-format=raw\fP), LZMA2 are nevoie doar
+de \fIdimensiunea\fP dicționarului. LZMA1 are nevoie de asemenea de \fIlc\fP,
+\fIlp\fP și \fIpb\fP.
+.TP
+\fB\-\-x86\fP[\fB=\fP\fIopțiuni\fP]
+.PD 0
+.TP
+\fB\-\-arm\fP[\fB=\fP\fIopțiuni\fP]
+.TP
+\fB\-\-armthumb\fP[\fB=\fP\fIopțiuni\fP]
+.TP
+\fB\-\-arm64\fP[\fB=\fP\fIopțiuni\fP]
+.TP
+\fB\-\-powerpc\fP[\fB=\fP\fIopțiuni\fP]
+.TP
+\fB\-\-ia64\fP[\fB=\fP\fIopțiuni\fP]
+.TP
+\fB\-\-sparc\fP[\fB=\fP\fIopțiuni\fP]
+.TP
+\fB\-\-riscv\fP[\fB=\fP\fIopțiuni\fP]
+.PD
+Adaugă un filtru de ramură/apel/salt (branch/call/jump ⟶ „BCJâ€) la lanÈ›ul de
+filtre. Aceste filtre pot fi utilizate numai ca un filtru care nu este
+ultimul din lanțul de filtrare.
+.IP ""
+Un filtru BCJ convertește adresele relative din codul mașinii în omoloagele
+lor absolute. Acest lucru nu modifică dimensiunea datelor, dar crește
+redundanța, ceea ce poate ajuta LZMA2 să producă fișier \fB.xz\fP cu 0\(en15\ %
+mai mic. Filtrele BCJ sunt întotdeauna reversibile, deci folosind un filtru
+BCJ pentru tipul greșit de date nu provoacă nicio pierdere de date, deși
+poate înrăutăți puțin raportul de comprimare. Filtrele BCJ sunt foarte
+rapide și folosesc o cantitate nesemnificativă de memorie.
+.IP ""
+Aceste filtre BCJ au probleme cunoscute legate de raportul de comprimare:
+.RS
+.IP \(bu 3
+Unele tipuri de fișiere care conțin cod executabil (de exemplu, fișiere
+obiect, biblioteci statice și module de kernel Linux) au adresele din
+instrucțiuni completate cu valori de umplere. Aceste filtre BCJ vor face în
+continuare conversia adresei, ceea ce va înrăutăți comprimarea cu aceste
+fișiere.
+.IP \(bu 3
+Dacă pe o arhivă este aplicat un filtru BCJ, este posibil ca raportul de
+comprimare să fie mai rău decât la neutilizarea unui filtru BCJ. De exemplu,
+dacă există executabile similare sau chiar identice, filtrarea va face
+probabil fișierele mai puțin asemănătoare și astfel comprimarea este mai
+proastă. Conținutul fișierelor neexecutabile din aceeași arhivă poate conta
+și el. În practică, trebuie să încercați cu și fără filtru BCJ pentru a
+vedea care rezultat este mai bun în fiecare situație.
+.RE
+.IP ""
+Seturi de instrucțiuni diferite au o aliniere diferită: fișierul executabil
+trebuie aliniat la un multiplu al acestei valori în datele de intrare pentru
+ca filtrul să funcționeze.
+.RS
+.RS
+.PP
+.TS
+tab(;);
+l n l
+l n l.
+Filtru;Aliniere;Note
+x86;1;x86 pe 32 de biți
+;;sau 64 de biți
+ARM;4;
+ARM\-Thumb;2;
+ARM64;4;alinierea pe 4096\-octeți
+;;este cea mai bună
+PowerPC;4;Doar big endian
+IA\-64;16;Itanium
+SPARC;4;
+RISC\-V;2;
+.TE
+.RE
+.RE
+.IP ""
+Deoarece datele filtrate prin BCJ sunt de obicei comprimate cu LZMA2,
+raportul de comprimare poate fi ușor îmbunătățit dacă opțiunile LZMA2 sunt
+definite pentru a se potrivi cu alinierea filtrului BCJ selectat. Exemple:
+.RS
+.IP \(bu 3
+Filtrul IA\-64 are o aliniere de 16 octeți, astfel încât \fBpb=4,lp=4,lc=0\fP
+este alegere adecvată cu LZMA2 (2^4=16).
+.IP \(bu 3
+Codul RISC\-V are o aliniere pe 2 sau 4 octeți, depinzând de faptul că
+fișierul conține instrucțiuni comprimate pe 16 biți (extensia C) sau
+nu. Atunci când se utilizează instrucțiuni pe 16 biți, \fBpb=2,lp=1,lc=3\fP sau
+\fBpb=1,lp=1,lc=3\fP este o alegere bună. Atunci când nu sunt prezente
+instrucțiuni pe 16 biți, \fBpb=2,lp=2,lc=2\fP este cea mai bună
+alegere. \fBreadelf \-h\fP poate fi utilizată pentru a verifica dacă „RVC†apare
+în linia „Indicatori".
+.IP \(bu 3
+ARM64 este întotdeauna aliniat pe 4 octeți, astfel încât \fBpb=2,lp=2,lc=2\fP
+este cea mai bună alegere.
+.IP \(bu 3
+Filtrul x86 este o excepție. De obicei, este bine să rămâneți la valorile
+implicite ale LZMA2 (\fBpb=2,lp=0,lc=3\fP) atunci când comprimați executabile
+x86.
+.RE
+.IP ""
+Toate filtrele BCJ acceptă același \fIopțiuni\fP:
+.RS
+.TP
+\fBstart=\fP\fIpoziție\fP
+Specifică \fIpoziția\fP de pornire care este utilizată la conversia între
+adresele relative și absolute. \fIPoziția\fP trebuie să fie un multiplu al
+alinierii filtrului (consultați tabelul de mai sus). Valoarea implicită
+este zero. În practică, valoarea implicită este bună; specificarea unei
+\fIpoziții\fP personalizate nu este aproape niciodată utilă.
+.RE
+.TP
+\fB\-\-delta\fP[\fB=\fP\fIopțiuni\fP]
+Adaugă filtrul Delta în lanțul de filtrare. Filtrul Delta poate fi folosit
+doar ca un filtru care nu este ultimul în lanțul de filtrare.
+.IP ""
+În prezent, este acceptat doar calculul delta simplu de octeți. Poate fi
+util la comprimarea, de exemplu, a imaginilor bitmap necomprimate sau a
+sunetului PCM necomprimat. Cu toate acestea, algoritmii cu scop special pot
+da rezultate semnificativ mai bune decât Delta + LZMA2. Acest lucru este
+valabil mai ales în cazul audio, care se comprimă mai repede și mai bine, de
+exemplu, cu \fBflac\fP(1).
+.IP ""
+\fIOpțiuni\fP acceptate:
+.RS
+.TP
+\fBdist=\fP\fIdistanța\fP
+Specifică \fIdistanța\fP calculului delta în octeți. \fIDistanța\fP trebuie să fie
+1\(en256. Valoarea implicită este 1.
+.IP ""
+De exemplu, cu \fBdist=2\fP și intrare de opt octeți: A1 B1 A2 B3 A3 B5 A4 B7,
+ieșirea va fi: A1 B1 01 02 01 02 01 02.
+.RE
+.
+.SS "Alte opțiuni"
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Suprimă avertismentele și notificările. Specificați acest lucru de două ori
+pentru a suprima și erorile. Această opțiune nu are niciun efect asupra
+stării de ieșire. Adică, chiar dacă o avertizare a fost suprimată, starea de
+ieșire pentru a indica o avertizare este încă utilizată.
+.TP
+\fB\-v\fP, \fB\-\-verbose\fP
+Oferă informații detaliate. Dacă ieșirea de eroare standard este conectată
+la un terminal, \fBxz\fP va afișa un indicator de progres. Specificarea
+opțiunii \fB\-\-verbose\fP de două ori, va avea ca rezultat oferirea de
+informații și mai detaliate.
+.IP ""
+Indicatorul de progres afișează următoarele informații:
+.RS
+.IP \(bu 3
+Procentul de completare este afișat dacă se cunoaște dimensiunea fișierului
+de intrare. Adică, procentul nu poate fi afișat la procesarea fișierului
+prin conducte(pipe).
+.IP \(bu 3
+Cantitatea de date comprimate produse (comprimare) sau consumate
+(decomprimare).
+.IP \(bu 3
+Cantitatea de date necomprimate consumate (comprimare) sau produse
+(decomprimare).
+.IP \(bu 3
+Raportul de comprimare, care se calculează împărțind cantitatea de date
+comprimate procesate până acum la cantitatea de date necomprimate procesate
+până acum.
+.IP \(bu 3
+Viteza de comprimare sau decomprimare. Aceasta este măsurată drept
+cantitatea de date necomprimate consumate (comprimare) sau produse
+(decomprimare) pe secundă. Este afișată după ce au trecut câteva secunde de
+când \fBxz\fP a început procesarea fișierului.
+.IP \(bu 3
+Timpul scurs în format M:SS sau H:MM:SS.
+.IP \(bu 3
+Timpul rămas estimat este afișat numai atunci când dimensiunea fișierului de
+intrare este cunoscută și au trecut deja câteva secunde de când \fBxz\fP a
+început procesarea fișierului. Ora este afișată într\-un format mai puțin
+precis, care nu are niciodată două puncte, de exemplu, 2 min 30 s.
+.RE
+.IP ""
+Când ieșirea de eroare standard nu este un terminal, \fB\-\-verbose\fP va face
+\fBxz\fP să imprime numele fișierului, dimensiunea comprimată, dimensiunea
+necomprimată, raportul de comprimare și, eventual, de asemenea, viteza și
+timpul scurs pe o singură linie la ieșirea de eroare standard după
+comprimarea sau decomprimarea fișierului. Viteza și timpul scurs sunt
+incluse numai atunci când operațiunea a durat cel puțin câteva secunde. Dacă
+operațiunea nu s\-a încheiat, de exemplu, din cauza întreruperii din partea
+utilizatorului, se imprimă și procentul de completare dacă se cunoaște
+dimensiunea fișierului de intrare.
+.TP
+\fB\-Q\fP, \fB\-\-no\-warn\fP
+Nu comută starea de ieșire la 2 chiar dacă a fost detectată o condiție care
+merită avertizată. Această opțiune nu afectează nivelul de detaliere al
+informațiilor, astfel încât atât \fB\-\-quiet\fP cât și \fB\-\-no\-warn\fP trebuie
+folosite pentru a nu afișa avertismente și pentru a nu modifica starea de
+ieșire.
+.TP
+\fB\-\-robot\fP
+Afișează mesajele într\-un format care poate fi analizat de mașină. Acest
+lucru are scopul de a ușura scrierea interfețelor în care se dorește să se
+folosească \fBxz\fP în loc de liblzma, ceea ce poate fi cazul cu diferite
+scripturi. Ieșirea cu această opțiune activată este menită să fie stabilă în
+toate versiunile \fBxz\fP. Consultați secțiunea \fBMOD ROBOT\fP pentru detalii.
+.TP
+\fB\-\-info\-memory\fP
+Afișează, într\-un format care poate fi citit de om, câtă memorie fizică
+(RAM) și câte fire de execuție de procesor \fBxz\fP crede că are sistemul și
+limitele de utilizare a memoriei pentru comprimare și decomprimare și iese
+cu succes.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afișează un mesaj de ajutor care descrie opțiunile cele mai frecvent
+utilizate și iese cu succes.
+.TP
+\fB\-H\fP, \fB\-\-long\-help\fP
+Afișează un mesaj de ajutor care descrie toate caracteristicile \fBxz\fP și
+iese cu succes
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afișează numărul versiunii \fBxz\fP și liblzma într\-un format care poate fi
+citit de om. Pentru a obține rezultate analizabile de mașină, specificați
+\fB\-\-robot\fP înainte de \fB\-\-version\fP.
+.
+.SH "MOD ROBOT"
+Modul robot este activat cu opțiunea \fB\-\-robot\fP. Face ieșirea lui \fBxz\fP mai
+ușor de analizat de către alte programe. În prezent, opțiunea \fB\-\-robot\fP
+este acceptată numai împreună cu opțiunile \fB\-\-list\fP, \fB\-\-filters\-help\fP,
+\fB\-\-info\-memory\fP, și \fB\-\-version\fP. Va fi acceptată pentru comprimare și
+decomprimare în viitor.
+.
+.SS "Modul listă"
+\fBxz \-\-robot \-\-list\fP utilizează o ieșire separată de tabulatori. Prima
+coloană a fiecărei linii are un șir care indică tipul de informații găsite
+pe acea linie:
+.TP
+\fBname\fP
+Aceasta este întotdeauna prima linie când începe să se listeze un fișier. A
+doua coloană de pe linie este numele fișierului.
+.TP
+\fBfile\fP
+Această linie conține informații generale despre fișierul \fB.xz\fP. Această
+linie este întotdeauna tipărită după linia \fBname\fP.
+.TP
+\fBstream\fP
+Acest tip de linie este utilizat numai atunci când a fost specificată
+opțiunea \fB\-\-verbose\fP. Există tot atâtea linii \fBstream\fP câte fluxuri există
+în fișierul \fB.xz\fP.
+.TP
+\fBblock\fP
+Acest tip de linie este utilizat numai atunci când a fost specificată
+opțiunea \fB\-\-verbose\fP. Există tot atâtea linii \fBblock\fP câte blocuri există
+în fișierul \fB.xz\fP. Liniile \fBblock\fP sunt afișate după toate liniile
+\fBstream\fP; tipurile diferite de linii nu sunt intercalate.
+.TP
+\fBsummary\fP
+Acest tip de linie este folosit numai atunci când opțiunea \fB\-\-verbose\fP a
+fost specificată de două ori. Această linie este afișată după toate liniile
+\fBblock\fP. Ca și linia \fBfile\fP, linia \fBsummary\fP conține informații generale
+despre fișierul \fB.xz\fP.
+.TP
+\fBtotals\fP
+Această linie este întotdeauna ultima linie din lista afișată la
+ieșire. Aceasta arată numărul total și dimensiunile.
+.PP
+Coloanele din liniile \fBfile\fP:
+.PD 0
+.RS
+.IP 2. 4
+Numărul de fluxuri din fișier
+.IP 3. 4
+Numărul total de blocuri din fluxuri
+.IP 4. 4
+Dimensiunea comprimată a fișierului
+.IP 5. 4
+Dimensiunea necomprimată a fișierului
+.IP 6. 4
+Raportul de comprimare, de exemplu, \fB0,123\fP. Dacă raportul este peste
+9,999, în locul raportului sunt afișate trei liniuțe (\fB\-\-\-\fP).
+.IP 7. 4
+Lista de nume de verificare a integrității, separate prin
+virgule. Următoarele șiruri sunt utilizate pentru tipurile de verificare
+cunoscute: \fBNone\fP, \fBCRC32\fP, \fBCRC64\fP și \fBSHA\-256\fP. Pentru tipurile de
+verificări necunoscute, se utilizează \fBNone\-\fP\fIN\fP, unde \fIN\fP este ID\-ul de
+verificare ca număr zecimal (una sau două cifre).
+.IP 8. 4
+Dimensiunea totală a umpluturii fluxului din fișier
+.RE
+.PD
+.PP
+Coloanele din liniile \fBstream\fP:
+.PD 0
+.RS
+.IP 2. 4
+Numărul fluxului (primul flux este 1)
+.IP 3. 4
+Numărul de blocuri din flux
+.IP 4. 4
+Poziția de pornire a comprimării
+.IP 5. 4
+Poziția de pornire a decomprimării
+.IP 6. 4
+Dimensiune comprimată (nu include umplutura fluxului)
+.IP 7. 4
+Dimensiune necomprimată
+.IP 8. 4
+Raport de comprimare
+.IP 9. 4
+Numele verificării de integritate
+.IP 10. 4
+Dimensiunea umpluturii fluxului
+.RE
+.PD
+.PP
+Coloanele din liniile \fBblock\fP:
+.PD 0
+.RS
+.IP 2. 4
+Numărul fluxului care conține acest bloc
+.IP 3. 4
+Numărul blocului în raport cu începutul fluxului (primul bloc este 1)
+.IP 4. 4
+Numărul blocului în raport cu începutul fișierului
+.IP 5. 4
+Poziția de pornire a comprimării în raport cu începutul fișierului
+.IP 6. 4
+Poziția de pornire necomprimată în raport cu începutul fișierului
+.IP 7. 4
+Dimensiunea totală comprimată a blocului (include antetele)
+.IP 8. 4
+Dimensiune necomprimată
+.IP 9. 4
+Raport de comprimare
+.IP 10. 4
+Numele verificării de integritate
+.RE
+.PD
+.PP
+Dacă opțiunea \fB\-\-verbose\fP a fost specificată de două ori, coloane
+suplimentare sunt incluse pe liniile \fBblock\fP. Acestea nu sunt afișate cu o
+singură specificare a opțiunii \fB\-\-verbose\fP, deoarece obținerea acestor
+informații necesită multe căutări și, prin urmare, poate fi lentă:
+.PD 0
+.RS
+.IP 11. 4
+Valoarea verificării integrității în hexazecimal
+.IP 12. 4
+Dimensiunea antetului blocului
+.IP 13. 4
+Indicatori de bloc: \fBc\fP indică faptul că este prezentă dimensiunea
+comprimată, iar \fBu\fP indică faptul că este prezentă dimensiunea
+necomprimată. Dacă indicatorul nu este determinat, este afișată o liniuță
+(\fB\-\fP) pentru a menține lungimea șirului fixă. Pot fi adăugate noi
+indicatoare la sfârșitul șirului, în viitor.
+.IP 14. 4
+Dimensiunea datelor comprimate reale din bloc (acest lucru exclude antetul
+blocului, umplutura blocului și câmpurile de verificare)
+.IP 15. 4
+Cantitatea de memorie (în octeți) necesară pentru a decomprima acest bloc cu
+această versiune \fBxz\fP
+.IP 16. 4
+Lanț de filtrare. Rețineți că majoritatea opțiunilor utilizate în timpul
+comprimării nu pot fi cunoscute, deoarece doar opțiunile necesare pentru
+decomprimare sunt stocate în anteturile \fB.xz\fP.
+.RE
+.PD
+.PP
+Coloanele din liniile \fBsummary\fP:
+.PD 0
+.RS
+.IP 2. 4
+Cantitatea de memorie (în octeți) necesară pentru a decomprima acest fișier
+cu această versiune \fBxz\fP
+.IP 3. 4
+\fByes\fP sau \fBno\fP indicând dacă toate antetele blocurilor au atât dimensiunea
+comprimată, cât și dimensiunea necomprimată stocate în ele
+.PP
+\fIÎncepând cu\fP \fBxz\fP \fI5.1.2alpha:\fP
+.IP 4. 4
+Versiunea \fBxz\fP minimă necesară pentru a decomprima fișierul
+.RE
+.PD
+.PP
+Coloanele din linia \fBtotals\fP:
+.PD 0
+.RS
+.IP 2. 4
+Numărul de fluxuri
+.IP 3. 4
+Numărul de blocuri
+.IP 4. 4
+Dimensiunea comprimată
+.IP 5. 4
+Dimensiune necomprimată
+.IP 6. 4
+Raportul mediu de comprimare
+.IP 7. 4
+Lista de nume de verificare a integrității, separate prin virgule, care au
+fost prezente în fișiere
+.IP 8. 4
+Dimensiunea umpluturii fluxului
+.IP 9. 4
+Numărul de fișiere. Aceasta este aici pentru a păstra ordinea coloanelor
+anterioare la fel ca pe liniile \fBfile\fP.
+.PD
+.RE
+.PP
+Dacă opțiunea \fB\-\-verbose\fP a fost specificată de două ori, pe linia
+\fBtotals\fP sunt incluse coloane suplimentare:
+.PD 0
+.RS
+.IP 10. 4
+Cantitatea maximă de memorie (în octeți) necesară pentru a decomprima
+fișierele cu această versiune \fBxz\fP
+.IP 11. 4
+\fByes\fP sau \fBno\fP indicând dacă toate antetele blocurilor au atât dimensiunea
+comprimată, cât și dimensiunea necomprimată stocate în ele
+.PP
+\fIÎncepând cu\fP \fBxz\fP \fI5.1.2alpha:\fP
+.IP 12. 4
+Versiunea \fBxz\fP minimă necesară pentru a decomprima fișierul
+.RE
+.PD
+.PP
+Versiunile viitoare pot adăuga noi tipuri de linii și pot fi adăugate
+coloane noi la tipurile de linii existente, dar coloanele existente nu vor
+fi modificate.
+.
+.SS "Ajutor pentru filtrare"
+\fBxz \-\-robot \-\-filters\-help\fP afișează filtrele acceptate în următorul
+format:
+.PP
+\fIfiltru\fP\fB:\fP\fIopțiune\fP\fB=<\fP\fIvaloare\fP\fB>,\fP\fIopțiune\fP\fB=<\fP\fIvaloare\fP\fB>\fP...
+.TP
+\fBfiltru\fP
+Numele filtrului
+.TP
+\fIopțiune\fP
+Numele unei opțiuni specifice unui filtru
+.TP
+\fIvaloare\fP
+Intervalele numerice \fIvaloare\fP apar ca
+\fB<\fP\fImin\fP\fB\-\fP\fImax\fP\fB>\fP. Alegerile \fIvaloare\fP de tip șir de
+caractere sunt afișate în cadrul \fB< >\fP și separate de un caracter
+\fB|\fP.
+.PP
+Fiecare filtru este afișat pe propria linie.
+.
+.SS "Informații privind limita memoriei"
+\fBxz \-\-robot \-\-info\-memory\fP afișează o singură linie cu multiple coloane
+separate prin tabulatoare:
+.IP 1. 4
+Cantitatea totală de memorie fizică (RAM) în octeți.
+.IP 2. 4
+Limita de utilizare a memoriei pentru comprimare în octeți
+(\fB\-\-memlimit\-compress\fP). O valoare specială de \fB0\fP indică configurarea
+implicită, care pentru modul cu un singur fir este la fel ca fără limită.
+.IP 3. 4
+Limita de utilizare a memoriei pentru decomprimare în octeți
+(\fB\-\-memlimit\-decompress\fP). O valoare specială de \fB0\fP indică configurarea
+implicită, care pentru modul cu un singur fir este la fel ca fără limită.
+.IP 4. 4
+Începând cu \fBxz\fP 5.3.4alpha: Utilizarea memoriei pentru decomprimarea cu
+mai multe fire în octeți (\fB\-\-memlimit\-mt\-decompress\fP). Acesta nu este
+niciodată zero, deoarece o valoare implicită specifică sistemului afișată în
+coloana 5 este utilizată dacă nu a fost specificată în mod explicit nicio
+limită. De asemenea, aceasta nu este niciodată mai mare decât valoarea din
+coloana 3, chiar dacă a fost specificată o valoare mai mare cu
+\fB\-\-memlimit\-mt\-decompress\fP.
+.IP 5. 4
+Începând cu \fBxz\fP 5.3.4alpha: o limită implicită de utilizare a memoriei
+specifică sistemului, care este utilizată pentru a limita numărul de fire de
+execuție atunci când se comprimă cu un număr automat de fire de execuție
+(\fB\-\-threads=0\fP) și nicio limită de utilizare a memoriei nu fost specificată
+cu (\fB\-\-memlimit\-compress\fP). Aceasta este, de asemenea, utilizată ca valoare
+implicită pentru \fB\-\-memlimit\-mt\-decompress\fP.
+.IP 6. 4
+Începând cu \fBxz\fP 5.3.4alpha: numărul de fire de execuție de procesor
+disponibile.
+.PP
+ÃŽn viitor, rezultatul \fBxz \-\-robot \-\-info\-memory\fP poate avea mai multe
+coloane, dar niciodată mai mult de o singură linie.
+.
+.SS Versiunea
+\fBxz \-\-robot \-\-version\fP va afișa numărul versiunii \fBxz\fP și liblzma în
+următorul format:
+.PP
+\fBXZ_VERSION=\fP\fIXYYYZZZS\fP
+.br
+\fBLIBLZMA_VERSION=\fP\fIXYYYZZZS\fP
+.TP
+\fIX\fP
+Versiunea majoră.
+.TP
+\fIYYY\fP
+Versiunea minoră. Numerele pare sunt prezente în versiunile
+stabile. Numerele impare sunt prezente în versiunile alfa sau beta.
+.TP
+\fIZZZ\fP
+Nivelul de plasture(patch) pentru versiunile stabile sau doar un contor
+pentru versiunile de dezvoltare.
+.TP
+\fIS\fP
+Stabilitate. 0 este alfa, 1 este beta și 2 este stabil. \fIS\fP trebuie să fie
+întotdeauna 2 atunci când \fIAAA\fP este par.
+.PP
+\fIXYYYZZZS\fP sunt aceleași pe ambele linii dacă \fBxz\fP și liblzma sunt din
+aceeași versiune XZ Utils.
+.PP
+Exemple: 4.999.9beta este \fB49990091\fP și 5.0.0 este \fB50000002\fP.
+.
+.SH "STARE DE IEȘIRE"
+.TP
+\fB0\fP
+Totul este bine.
+.TP
+\fB1\fP
+A apărut o eroare.
+.TP
+\fB2\fP
+A apărut ceva care merită să fie avertizat, dar nu au apărut erori reale.
+.PP
+Notificările (nu avertismentele sau erorile) afișate la ieșirea de eroare
+standard nu afectează starea de ieșire.
+.
+.SH "VARIABILE DE MEDIU"
+\fBxz\fP analizează liste de opțiuni separate prin spații din variabilele de
+mediu \fBXZ_DEFAULTS\fP și \fBXZ_OPT\fP, în această ordine, înainte de a analiza
+opțiunile din linia de comandă. Rețineți că numai opțiunile sunt analizate
+din variabilele de mediu; toate non\-opțiunile sunt ignorate în
+tăcere. Analiza se face cu funcția \fBgetopt_long\fP(3) care este folosită și
+pentru argumentele liniei de comandă.
+.TP
+\fBXZ_DEFAULTS\fP
+Opțiuni implicite specifice utilizatorului sau la nivelul întregului
+sistem. De obicei, acest lucru este specificat într\-un script de
+inițializare shell pentru a activa limitatorul de utilizare a memoriei lui
+\fBxz\fP implicit. Excluzând scripturile de inițializare shell și cazurile
+speciale similare, scripturile nu trebuie niciodată să modifice sau să
+dezactiveze \fBXZ_DEFAULTS\fP.
+.TP
+\fBXZ_OPT\fP
+Acest lucru este pentru transmiterea opțiunilor către \fBxz\fP atunci când nu
+este posibil să definiți opțiunile direct în linia de comandă a
+\fBxz\fP. Acesta este cazul când \fBxz\fP este rulat de un script sau de un
+instrument, de exemplu, GNU \fBtar\fP(1):
+.RS
+.RS
+.PP
+.nf
+\f(CWXZ_OPT=\-2v tar caf foo.tar.xz foo\fP
+.fi
+.RE
+.RE
+.IP ""
+Scripturile pot folosi \fBXZ_OPT\fP, de exemplu, pentru a configura opțiunile
+implicite de comprimare specifice scriptului. Se recomandă totuși să se
+permită utilizatorilor să înlocuiască \fBXZ_OPT\fP dacă acest lucru este
+rezonabil. De exemplu, în scripturile \fBsh\fP(1) se poate folosi ceva de genul
+acesta:
+.RS
+.RS
+.PP
+.nf
+\f(CWXZ_OPT=${XZ_OPT\-"\-7e"} export XZ_OPT\fP
+.fi
+.RE
+.RE
+.
+.SH "COMPATIBILITATE CU LZMA\-UTILS"
+Sintaxa liniei de comandă a lui \fBxz\fP este practic o super\-colecție de
+\fBlzma\fP, \fBunlzma\fP și \fBlzcat\fP așa cum se găsește în LZMA Utils 4.32.x. În
+cele mai multe cazuri, este posibil să înlocuiți LZMA Utils cu XZ Utils fără
+a întrerupe scripturile existente. Există totuși unele incompatibilități,
+care uneori pot cauza probleme.
+.
+.SS "Niveluri de comprimare prestabilite"
+Numerotarea nivelurilor de comprimare prestabilite nu este identică în \fBxz\fP
+și LZMA Utils. Cea mai importantă diferență este modul în care dimensiunile
+dicționarului sunt atribuite diferitelor niveluri prestabilite. Dimensiunea
+dicționarului este aproximativ egală cu memoria utilizată la decomprimare.
+.RS
+.PP
+.TS
+tab(;);
+c c c
+c n n.
+Nivel;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
+.TE
+.RE
+.PP
+Diferențele de dimensiune a dicționarului afectează deasemenea cantitatea de
+memorie utilizată la comprimare dar există și alte diferențe între LZMA
+Utils și XZ Utils, care fac diferența și mai mare:
+.RS
+.PP
+.TS
+tab(;);
+c c c
+c n n.
+Nivel;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
+.TE
+.RE
+.PP
+Nivelul prestabilit implicit în LZMA Utils este \fB\-7\fP, în timp ce în XZ
+Utils este \fB\-6\fP, deci ambele folosesc un dicționar de 8Mio în mod implicit.
+.
+.SS "Fișiere .lzma transmise în flux vs. netransmise în flux"
+Dimensiunea necomprimată a fișierului poate fi stocată în antetul
+\&\fB.lzma\fP. LZMA Utils face asta atunci când comprimă fișiere
+obișnuite. Alternativa este să marcați că dimensiunea necomprimată este
+necunoscută și să folosiți marcajul de sfârșit de încărcare pentru a indica
+unde ar trebui să se oprească decomprimarea. LZMA Utils folosește această
+metodă atunci când dimensiunea necomprimată nu este cunoscută, ceea ce este
+cazul, de exemplu, când se folosesc conducte.
+.PP
+\fBxz\fP acceptă decomprimarea fișierelor \fB.lzma\fP cu sau fără marcaj de
+sfârșit de încărcare, dar toate fișierele \fB.lzma\fP create de \fBxz\fP vor
+folosi marcajul de sfârșit de încărcare și vor avea dimensiunea necomprimată
+marcată ca necunoscută în antetul \fB.lzma\fP. Aceasta poate fi o problemă în
+unele situații mai puțin frecvente. De exemplu, un instrument de
+decomprimare \fB.lzma\fP încorporat într\-un dispozitiv poate funcționa numai cu
+fișiere care au dimensiunea necomprimată cunoscută. Dacă întâmpinați această
+problemă, trebuie să utilizați LZMA Utils sau LZMA SDK pentru a crea fișiere
+\&\fB.lzma\fP cu dimensiunea necomprimată cunoscută.
+.
+.SS "Fișiere .lzma neacceptate"
+Formatul \fB.lzma\fP permite valori \fIlc\fP de până la 8 și valori \fIlp\fP de până
+la 4. LZMA Utils poate decomprima fișiere cu orice \fIlc\fP și \fIlp\fP, dar
+creează întotdeauna fișiere cu \fBlc=3\fP și \fBlp=0\fP. Crearea de fișiere cu
+alte \fIlc\fP și \fIlp\fP este posibilă cu \fBxz\fP și cu LZMA SDK.
+.PP
+Implementarea filtrului LZMA1 în liblzma necesită ca suma \fIlc\fP și \fIlp\fP să
+nu depășească 4. Altfel, fișierele \fB.lzma\fP, care depășesc această limitare,
+nu pot fi decomprimate cu \fBxz\fP.
+.PP
+LZMA Utils creează numai fișiere \fB.lzma\fP care au o dimensiune de dicționar
+de 2^\fIn\fP (o putere de 2), dar acceptă fișiere cu orice dimensiune de
+dicționar. liblzma acceptă numai fișierele \fB.lzma\fP care au dimensiunea de
+dicționar de 2^\fIn\fP sau 2^\fIn\fP + 2^(\fIn\fP\-1). Acest lucru este pentru a
+reduce numărul de „fals pozitiv†atunci când se detectează fișiere \fB.lzma\fP.
+.PP
+Aceste limitări nu ar trebui să fie o problemă în practică, deoarece practic
+toate fișierele \fB.lzma\fP au fost comprimate cu opțiuni pe care liblzma le va
+accepta.
+.
+.SS "Resturi rămase"
+Când decomprimă, LZMA Utils ignoră în tăcere totul după primul flux
+\&\fB.lzma\fP. În majoritatea situațiilor, aceasta este o eroare. Aceasta
+înseamnă, de asemenea, că LZMA Utils nu acceptă decomprimarea fișierelor
+\&\fB.lzma\fP concatenate.
+.PP
+Dacă au rămas date după primul flux \fB.lzma\fP, \fBxz\fP consideră că fișierul
+este corupt, cu excepția cazului în care a fost utilizată opțiunea
+\fB\-\-single\-stream\fP. Acest lucru poate rupe scripturile obscure(scrise
+deficitar) care presupun că resturile rămase sunt ignorate.
+.
+.SH NOTE
+.
+.SS "Rezultatul comprimării poate varia"
+Ieșirea exactă comprimată produsă din același fișier de intrare necomprimat
+poate varia între versiunile XZ Utils, chiar dacă opțiunile de comprimare
+sunt identice. Acest lucru se datorează faptului că instrumentul codificator
+poate fi îmbunătățit (comprimare mai rapidă sau mai bună) fără a afecta
+formatul fișierului. Ieșirea poate varia chiar și între compilările diferite
+ale aceleiași versiuni XZ Utils, dacă sunt utilizate opțiuni diferite de
+compilare.
+.PP
+Cele de mai sus înseamnă că odată ce opțiunea \fB\-\-rsyncable\fP a fost
+utilizată, fișierele rezultate nu vor fi neapărat sincronizate cu rsync
+decât dacă atât fișierele vechi, cât și cele noi au fost comprimate cu
+aceeași versiune xz. Această problemă poate fi remediată dacă o parte a
+implementării codificatorului este înghețată pentru a menține stabilă
+ieșirea „rsyncabilă†între versiunile xz.
+.
+.SS "Instrumente de decomprimare .xz încorporate"
+Implementările instrumentului de decomprimare \fB.xz\fP încorporat, cum ar fi
+XZ Embedded, nu acceptă neapărat fișiere create cu tipuri de \fIverificare\fP a
+integrității, altele decât \fBnone\fP și \fBcrc32\fP. Deoarece valoarea implicită
+este \fB\-\-check=crc64\fP, trebuie să utilizați \fB\-\-check=none\fP sau
+\fB\-\-check=crc32\fP atunci când creați fișiere pentru sistemele încorporate.
+.PP
+În afara sistemelor încorporate, toate instrumentele de decomprimare în
+format \fB.xz\fP acceptă toate tipurile de \fIverificare\fP sau cel puțin pot
+decomprima fișierul fără a efectua verificarea integrității dacă acel tip de
+\fIverificare\fP nu este acceptat.
+.PP
+XZ Embedded acceptă filtre BCJ, dar numai cu poziție de pornire implicită.
+.
+.SH EXEMPLE
+.
+.SS Bazice
+Comprimă fișierul \fIfoo\fP în \fIfoo.xz\fP folosind nivelul de comprimare
+implicit (\fB\-6\fP) și elimină fișierul \fIfoo\fP dacă comprimarea are succes:
+.RS
+.PP
+.nf
+\f(CWxz foo\fP
+.fi
+.RE
+.PP
+Decomprimă \fIbar.xz\fP în \fIbar\fP și nu elimină \fIbar.xz\fP chiar dacă
+decomprimarea este efectuată cu succes:
+.RS
+.PP
+.nf
+\f(CWxz \-dk bar.xz\fP
+.fi
+.RE
+.PP
+Creează \fIbaz.tar.xz\fP cu nivelul prestabilit \fB\-4e\fP (\fB\-4 \-\-extreme\fP), care
+este mai lent decât nivelul prestabilit implicit \fB\-6\fP, dar necesită mai
+puțină memorie pentru comprimare și decomprimare (48Mio și, respectiv,
+5Mio):
+.RS
+.PP
+.nf
+\f(CWtar cf \- baz | xz \-4e > baz.tar.xz\fP
+.fi
+.RE
+.PP
+Un amestec de fișiere comprimate și necomprimate poate fi decomprimat la
+ieșirea standard cu o singură comandă:
+.RS
+.PP
+.nf
+\f(CWxz \-dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt\fP
+.fi
+.RE
+.
+.SS "Comprimarea în paralel a mai multor fișiere"
+În sisteme GNU și *BSD, \fBfind\fP(1) și \fBxargs\fP(1) pot fi utilizate pentru a
+paraleliza comprimarea mai multor fișiere:
+.RS
+.PP
+.nf
+\f(CWfind . \-type f \e! \-name '*.xz' \-print0 \e | xargs \-0r \-P4 \-n16 xz \-T1\fP
+.fi
+.RE
+.PP
+Opțiunea \fB\-P\fP pentru comanda \fBxargs\fP(1) stabilește numărul de procese
+paralele \fBxz\fP. Cea mai bună valoare pentru opțiunea \fB\-n\fP depinde de câte
+fișiere trebuie să fie comprimate. Dacă există doar câteva fișiere, valoarea
+ar trebui probabil să fie 1; cu zeci de mii de fișiere, 100 sau chiar mai
+mult poate să fie valoarea potrivită pentru a reduce numărul de procese
+\fBxz\fP pe care \fBxargs\fP(1) le va crea în final.
+.PP
+Opțiunea \fB\-T1\fP pentru \fBxz\fP este acolo pentru a\-l forța să ruleze în modul
+cu un singur fir de execuție, deoarece \fBxargs\fP(1) este folosit pentru a
+controla cantitatea de paralelizare.
+.
+.SS "Modul robot"
+Calculează câți octeți au fost salvați în total după comprimarea mai multor
+fișiere:
+.RS
+.PP
+.nf
+\f(CWxz \-\-robot \-\-list *.xz | awk '/^totals/{print $5\-$4}'\fP
+.fi
+.RE
+.PP
+Un script poate dori să afle dacă folosește o versiune \fBxz\fP suficient de
+nouă. Următorul script \fBsh\fP(1) verifică dacă numărul versiunii
+instrumentului \fBxz\fP este cel puțin 5.0.0. Această metodă este compatibilă
+cu versiunile beta vechi, care nu acceptau opțiunea \fB\-\-robot\fP:
+.RS
+.PP
+.nf
+\f(CWif ! eval "$(xz \-\-robot \-\-version 2> /dev/null)" || [ "$XZ_VERSION" \-lt 50000002 ]; then echo "Versiunea dumneavoastră de „xz†este prea veche!" fi unset XZ_VERSION LIBLZMA_VERSION\fP
+.fi
+.RE
+.PP
+Stabilește o limită de utilizare a memoriei pentru decomprimare folosind
+variabila de mediu \fBXZ_OPT\fP, dar dacă o limită a fost deja stabilită, nu o
+mărește:
+.RS
+.PP
+.nf
+\f(CWNEWLIM=$((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\fP
+.fi
+.RE
+.
+.SS "Lanțuri de filtrare personalizate pentru instrumentul de comprimare"
+Cea mai simplă utilizare a lanțurilor de filtrare personalizate este
+personalizarea unei opțiuni prestabilite LZMA2. Acest lucru poate fi util,
+deoarece opțiunile prestabilite acoperă doar un subset al combinațiilor
+potențial utile de opțiuni de comprimare.
+.PP
+Coloanele CPUComp din tabelele de descriere a opțiunilor \fB\-0\fP ... \fB\-9\fP și
+\fB\-\-extreme\fP sunt utile atunci când personalizați opțiunilor prestabilite
+LZMA2. Iată părțile relevante colectate din aceste două tabele:
+.RS
+.PP
+.TS
+tab(;);
+c c
+n n.
+ValPrestab;CPUComp
+\-0;0
+\-1;1
+\-2;2
+\-3;3
+\-4;4
+\-5;5
+\-6;6
+\-5e;7
+\-6e;8
+.TE
+.RE
+.PP
+Dacă știți că un fișier necesită un dicționar oarecum mare (de exemplu,
+32Mio) pentru a se comprima bine, dar doriți să\-l comprimați mai repede
+decât ar face \fBxz \-8\fP, o opțiune prestabilită cu o valoare CPUComp scăzută
+(de exemplu, 1) poate fi modificată pentru a utiliza un dicționar mai mare:
+.RS
+.PP
+.nf
+\f(CWxz \-\-lzma2=preset=1,dict=32MiB foo.tar\fP
+.fi
+.RE
+.PP
+Cu anumite fișiere, comanda de mai sus poate fi mai rapidă decât \fBxz \-6\fP în
+timp ce comprimă semnificativ mai bine. Cu toate acestea, trebuie subliniat
+că doar unele fișiere se beneficiază de un dicționar mare, păstrând în
+același timp valoarea CPUComp scăzută. Cea mai evidentă situație, în care un
+dicționar mare poate ajuta foarte mult, este o arhivă care conține fișiere
+foarte asemănătoare de cel puțin câțiva megaocteți fiecare. Dimensiunea
+dicționarului trebuie să fie semnificativ mai mare decât orice fișier
+individual pentru a permite LZMA2 să profite din plin de asemănările dintre
+fișierele consecutive.
+.PP
+Dacă utilizarea unei mari cantități de memorie pentru comprimare și
+decomprimare este în regulă, iar fișierul comprimat are cel puțin câteva
+sute de megaocteți, poate fi util să folosiți un dicționar și mai mare decât
+cei 64Mio pe care i\-ar folosi \fBxz \-9\fP:
+.RS
+.PP
+.nf
+\f(CWxz \-vv \-\-lzma2=dict=192MiB big_foo.tar\fP
+.fi
+.RE
+.PP
+Utilizarea opțiunii \fB\-vv\fP (\fB\-\-verbose \-\-verbose\fP) ca în exemplul de mai
+sus, poate fi utilă pentru a vedea cerințele de memorie la comprimare și
+decomprimare. Amintiți\-vă că utilizarea unui dicționar mai mare decât
+dimensiunea fișierului necomprimat este risipă de memorie, de aceea, comanda
+de mai sus nu este utilă pentru fișiere mici.
+.PP
+Uneori, timpul de comprimare nu contează, dar utilizarea memoriei la
+decomprimare trebuie menținută la un nivel scăzut, de exemplu, pentru a face
+posibilă decomprimarea fișierului pe un sistem încorporat. Următoarea
+comandă folosește \fB\-6e\fP (\fB\-6 \-\-extreme\fP) ca bază și fixează dimensiunea
+dicționarului la doar 64Kio. Fișierul rezultat poate fi decomprimat cu XZ
+Embedded (de aceea există \fB\-\-check=crc32\fP) folosind aproximativ 100Kio de
+memorie.
+.RS
+.PP
+.nf
+\f(CWxz \-\-check=crc32 \-\-lzma2=preset=6e,dict=64KiB foo\fP
+.fi
+.RE
+.PP
+Dacă doriți să stoarceți cât mai mulți octeți posibil, ajustarea numărului
+de biți de context literal (\fIlc\fP) și a numărului de biți de poziție (\fIpb\fP)
+poate ajuta uneori. Ajustarea numărului de biți de poziție literală (\fIlp\fP)
+ar putea ajuta, de asemenea, dar de obicei \fIlc\fP și \fIpb\fP sunt mai
+importante. De exemplu, o arhivă de cod sursă conține în mare parte text
+US\-ASCII, așa că ceva precum comanda următoare, ar putea oferi un fișier
+„mai slăbuț†(aproximativ cu 0,1%) mai mic decât cu \fBxz \-6e\fP (încercați și
+fără \fBlc=4\fP):
+.RS
+.PP
+.nf
+\f(CWxz \-\-lzma2=preset=6e,pb=0,lc=4 fișierul_sursă.tar\fP
+.fi
+.RE
+.PP
+Utilizarea unui alt filtru împreună cu LZMA2 poate îmbunătăți comprimarea cu
+anumite tipuri de fișiere. De exemplu, pentru a comprima o bibliotecă
+partajată x86 pe 32 de biți sau x86 pe 64 de biți folosind filtrul BCJ x86:
+.RS
+.PP
+.nf
+\f(CWxz \-\-x86 \-\-lzma2 libfoo.so\fP
+.fi
+.RE
+.PP
+Rețineți că ordinea opțiunilor de filtrare este semnificativă. Dacă \fB\-\-x86\fP
+este specificată după \fB\-\-lzma2\fP, \fBxz\fP va da o eroare, deoarece nu poate
+exista niciun filtru după LZMA2 și, de asemenea, pentru că filtrul x86 BCJ
+nu poate fi utilizat ca ultimul filtru din lanțul de filtrare.
+.PP
+Filtrul Delta împreună cu LZMA2 pot da rezultate bune cu imagini bitmap. De
+obicei, ar trebui să întreacă comprimarea PNG, care are câteva filtre mai
+avansate decât delta simplă, dar utilizează Deflate pentru comprimarea
+reală.
+.PP
+Imaginea trebuie să fie salvată în format necomprimat, de exemplu, ca TIFF
+necomprimat. Parametrul de distanță al filtrului Delta este fixat să se
+potrivească cu numărul de octeți per pixel din imagine. De exemplu,
+bitmap\-ul RGB pe 24 de biți necesită \fBdist=3\fP și este, de asemenea, bine să
+pasați \fBpb=0\fP la LZMA2 pentru a se adapta alinierii pe trei octeți:
+.RS
+.PP
+.nf
+\f(CWxz \-\-delta=dist=3 \-\-lzma2=pb=0 foo.tiff\fP
+.fi
+.RE
+.PP
+Dacă mai multe imagini au fost introduse într\-o singură arhivă (de exemplu,
+\&\fB.tar\fP), filtrul Delta va funcționa și pe aceasta atâta timp cât toate
+imaginile au același număr de octeți per pixel.
+.
+.SH "CONSULTAȚI ȘI"
+\fBxzdec\fP(1), \fBxzdiff\fP(1), \fBxzgrep\fP(1), \fBxzless\fP(1), \fBxzmore\fP(1),
+\fBgzip\fP(1), \fBbzip2\fP(1), \fB7z\fP(1)
+.PP
+XZ Utils: <https://xz.tukaani.org/xz\-utils/>
+.br
+XZ Embedded: <https://xz.tukaani.org/xz\-embedded/>
+.br
+LZMA SDK: <https://7\-zip.org/sdk.html>
diff --git a/po4a/man/ro/xzdec.1 b/po4a/man/ro/xzdec.1
new file mode 100644
index 00000000..7e1598bf
--- /dev/null
+++ b/po4a/man/ro/xzdec.1
@@ -0,0 +1,98 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Author: Lasse Collin
+.\"
+.\" Romanian translation for xz-man.
+.\" Mesajele în limba română pentru manualul pachetului XZ Utils.
+.\" Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2022 - 2024.
+.\" Cronologia traducerii fiÈ™ierului „xz-manâ€:
+.\" Traducerea inițială, făcută de R-GC, pentru versiunea xz-man 5.4.0-pre1.
+.\" Actualizare a traducerii pentru versiunea 5.4.0-pre2, făcută de R-GC, dec-2022.
+.\" Actualizare a traducerii pentru versiunea 5.4.3, făcută de R-GC, mai-2023.
+.\" Actualizare a traducerii pentru versiunea 5.4.4-pre1, făcută de R-GC, iul-2023.
+.\" Actualizare a traducerii pentru versiunea 5.6.0-pre1, făcută de R-GC, feb-2024.
+.\" Actualizare a traducerii pentru versiunea 5.6.0-pre2, făcută de R-GC, feb-2024.
+.\" Actualizare a traducerii pentru versiunea Y, făcută de X, Z(luna-anul).
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZDEC 1 "19 ianuarie 2024" Tukaani "Utilități XZ"
+.SH NUME
+xzdec, lzmadec \- Programe de decomprimare mici de fișiere .xz și .lzma
+.SH REZUMAT
+\fBxzdec\fP [\fIopțiune...\fP] [\fIfișier...\fP]
+.br
+\fBlzmadec\fP [\fIopțiune...\fP] [\fIfișier...\fP]
+.SH DESCRIERE
+\fBxzdec\fP este un instrument de decomprimare bazat pe liblzma pentru
+fișierele \fB.xz\fP (și numai \fB.xz\fP). \fBxzdec\fP este destinat să funcționeze ca
+un înlocuitor pentru \fBxz\fP(1) în cele mai frecvente situații în care un
+script a fost scris pentru a utiliza \fBxz \-\-decompress \-\-stdout\fP (și posibil
+câteva alte opțiuni frecvent utilizate) pentru a decomprima fișierele
+\&\fB.xz\fP. \fBlzmadec\fP este identic cu \fBxzdec\fP cu excepția faptului că
+\fBlzmadec\fP acceptă fișierele \fB.lzma\fP în loc de fișierele \fB.xz\fP.
+.PP
+Pentru a reduce dimensiunea executabilului, \fBxzdec\fP nu acceptă modul cu mai
+multe fire de execuție sau localizarea(afișarea mesajelor în limba stabilită
+de configurările regionale) și nu citește opțiunile din variabilele de mediu
+\fBXZ_DEFAULTS\fP și \fBXZ_OPT\fP. \fBxzdec\fP nu acceptă afișarea informațiilor
+intermediare de progres: trimiterea semnalului \fBSIGINFO\fP la \fBxzdec\fP nu
+face nimic, iar trimiterea semnalului \fBSIGUSR1\fP încheie procesul în loc să
+afișeze informații despre progres.
+.SH OPÈšIUNI
+.TP
+\fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
+Ignorat pentru compatibilitate cu \fBxz\fP(1). \fBxzdec\fP acceptă numai
+decomprimarea.
+.TP
+\fB\-k\fP, \fB\-\-keep\fP
+Ignorat pentru compatibilitate cu \fBxz\fP(1). \fBxzdec\fP nu creează sau elimină
+niciodată niciun fișier.
+.TP
+\fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
+Ignorat pentru compatibilitate cu \fBxz\fP(1). \fBxzdec\fP scrie întotdeauna
+datele decomprimate la ieșirea standard.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Specificarea acestui lucru o dată nu face nimic, deoarece \fBxzdec\fP nu
+afișează niciodată avertismente sau notificări. Specificați acest lucru de
+două ori pentru a suprima erorile.
+.TP
+\fB\-Q\fP, \fB\-\-no\-warn\fP
+Ignorat pentru compatibilitate cu \fBxz\fP(1). \fBxzdec\fP nu folosește niciodată
+starea de ieșire 2.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afișează un mesaj de ajutor și iese cu succes.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afișează numărul versiunii \fBxzdec\fP și liblzma.
+.SH "STARE DE IEȘIRE"
+.TP
+\fB0\fP
+Toate au fost bine.
+.TP
+\fB1\fP
+A apărut o eroare.
+.PP
+\fBxzdec\fP nu are niciun mesaj de avertizare precum \fBxz\fP(1), astfel că starea
+de ieșire 2 nu este folosită de \fBxzdec\fP.
+.SH NOTE
+Utilizați \fBxz\fP(1) în loc de \fBxzdec\fP sau \fBlzmadec\fP pentru utilizarea
+normală de zi cu zi. \fBxzdec\fP sau \fBlzmadec\fP sunt destinate numai
+situațiilor în care este important să aveți un instrument de decomprimare
+mai mic decât \fBxz\fP(1), cu funcții complete.
+.PP
+\fBxzdec\fP și \fBlzmadec\fP nu sunt chiar atât de mici. Dimensiunea poate fi
+redusă și mai mult prin eliminarea caracteristicilor din liblzma în timpul
+compilării, dar acest lucru nu ar trebui să se facă de obicei pentru
+executabilele distribuite în distribuții tipice de sisteme de operare
+neîncorporate. Dacă aveți nevoie de un instrument de decomprimare \fB.xz\fP cu
+adevărat mic, luați în considerare utilizarea XZ Embedded.
+.SH "CONSULTAȚI ȘI"
+\fBxz\fP(1)
+.PP
+XZ Embedded: <https://xz.tukaani.org/xz\-embedded/>
diff --git a/po4a/man/ro/xzdiff.1 b/po4a/man/ro/xzdiff.1
new file mode 100644
index 00000000..227fd429
--- /dev/null
+++ b/po4a/man/ro/xzdiff.1
@@ -0,0 +1,66 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Lasse Collin
+.\" Jia Tan
+.\"
+.\" Romanian translation for xz-man.
+.\" Mesajele în limba română pentru manualul pachetului XZ Utils.
+.\" Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2022 - 2024.
+.\" Cronologia traducerii fiÈ™ierului „xz-manâ€:
+.\" Traducerea inițială, făcută de R-GC, pentru versiunea xz-man 5.4.0-pre1.
+.\" Actualizare a traducerii pentru versiunea 5.4.0-pre2, făcută de R-GC, dec-2022.
+.\" Actualizare a traducerii pentru versiunea 5.4.3, făcută de R-GC, mai-2023.
+.\" Actualizare a traducerii pentru versiunea 5.4.4-pre1, făcută de R-GC, iul-2023.
+.\" Actualizare a traducerii pentru versiunea 5.6.0-pre1, făcută de R-GC, feb-2024.
+.\" Actualizare a traducerii pentru versiunea 5.6.0-pre2, făcută de R-GC, feb-2024.
+.\" Actualizare a traducerii pentru versiunea Y, făcută de X, Z(luna-anul).
+.\"
+.\" (Note that this file is not based on gzip's zdiff.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZDIFF 1 "13 februarie 2024" Tukaani "Utilități XZ"
+.SH NUME
+xzcmp, xzdiff, lzcmp, lzdiff \- compară fișierele comprimate
+.
+.SH REZUMAT
+\fBxzcmp\fP [\fIopțiune...\fP] \fIfișier1\fP [\fIfișier2\fP]
+.br
+\fBxzdiff\fP \&...
+.br
+\fBlzcmp\fP \&...
+.br
+\fBlzdiff\fP \&...
+.
+.SH DESCRIERE
+\fBxzcmp\fP și \fBxzdiff\fP compară conținutul necomprimat a două fișiere. Datele
+necomprimate și opțiunile sunt transmise la \fBcmp\fP(1) sau \fBdiff\fP(1), cu
+excepția cazului în care se specifică \fB\-\-help\fP sau \fB\-\-version\fP.
+.PP
+Dacă sunt specificate atât \fIfișier1\fP, cât și \fIfișier2\fP, acestea pot fi
+fișiere necomprimate sau fișiere în formate pe care \fBxz\fP(1), \fBgzip\fP(1),
+\fBbzip2\fP(1), \fBlzop\fP(1), \fBzstd\fP(1) sau \fBlz4\fP(1) le poate
+decomprima. Comenzile de decomprimare necesare sunt determinate de sufixele
+numelor de fișiere \fIfișier1\fP și \fIfișier2\fP. Se presupune că un fișier cu un
+sufix necunoscut este fie necomprimat, fie într\-un format pe care \fBxz\fP(1)
+îl poate decomprima.
+.PP
+În cazul în care se furnizează un singur nume de fișier, \fIfișier1\fP trebuie
+să aibă un sufix al unui format de comprimare acceptat, iar numele pentru
+\fIfișier2\fP se presupune că este \fIfișier1\fP fără sufixul formatului de
+comprimare.
+.PP
+Comenzile \fBlzcmp\fP și \fBlzdiff\fP sunt furnizate pentru compatibilitate
+retroactivă cu LZMA Utils.
+.
+.SH "STARE DE IEȘIRE"
+În cazul în care apare o eroare de decomprimare, starea de ieșire este
+\fB2\fP. În caz contrar, se utilizează starea de ieșire \fBcmp\fP(1) sau
+\fBdiff\fP(1).
+.
+.SH "CONSULTAȚI ȘI"
+\fBcmp\fP(1), \fBdiff\fP(1), \fBxz\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1),
+\fBzstd\fP(1), \fBlz4\fP(1)
diff --git a/po4a/man/ro/xzgrep.1 b/po4a/man/ro/xzgrep.1
new file mode 100644
index 00000000..52aa072e
--- /dev/null
+++ b/po4a/man/ro/xzgrep.1
@@ -0,0 +1,103 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Lasse Collin
+.\" Jia Tan
+.\"
+.\" Romanian translation for xz-man.
+.\" Mesajele în limba română pentru manualul pachetului XZ Utils.
+.\" Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2022 - 2024.
+.\" Cronologia traducerii fiÈ™ierului „xz-manâ€:
+.\" Traducerea inițială, făcută de R-GC, pentru versiunea xz-man 5.4.0-pre1.
+.\" Actualizare a traducerii pentru versiunea 5.4.0-pre2, făcută de R-GC, dec-2022.
+.\" Actualizare a traducerii pentru versiunea 5.4.3, făcută de R-GC, mai-2023.
+.\" Actualizare a traducerii pentru versiunea 5.4.4-pre1, făcută de R-GC, iul-2023.
+.\" Actualizare a traducerii pentru versiunea 5.6.0-pre1, făcută de R-GC, feb-2024.
+.\" Actualizare a traducerii pentru versiunea 5.6.0-pre2, făcută de R-GC, feb-2024.
+.\" Actualizare a traducerii pentru versiunea Y, făcută de X, Z(luna-anul).
+.\"
+.\" (Note that this file is not based on gzip's zgrep.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZGREP 1 "13 februarie 2024" Tukaani "Utilități XZ"
+.SH NUME
+xzgrep \- caută modele în fișiere posibil comprimate
+.
+.SH REZUMAT
+\fBxzgrep\fP [\fIopțiune...\fP] \fIlistă\-modele\fP [\fIfișier...\fP]
+.br
+\fBxzegrep\fP \&...
+.br
+\fBxzfgrep\fP \&...
+.br
+\fBlzgrep\fP \&...
+.br
+\fBlzegrep\fP \&...
+.br
+\fBlzfgrep\fP \&...
+.
+.SH DESCRIERE
+\fBxzgrep\fP invocă \fBgrep\fP(1) asupra conținutului necomprimat al
+fișierelor. Formatele \fIfișierelor\fP sunt determinate de sufixele numelor de
+fișiere. Orice \fIfișier\fP cu un sufix acceptat de \fBxz\fP(1), \fBgzip\fP(1),
+\fBbzip2\fP(1), \fBlzop\fP(1), \fBzstd\fP(1) sau \fBlz4\fP(1) va fi decomprimat; toate
+celelalte fișiere sunt presupuse a fi necomprimate.
+.PP
+Dacă nu se specifică niciun \fIfișier\fP sau dacă \fIfișier\fP este \fB\-\fP, se
+citește intrarea standard. Atunci când se citește de la intrarea standard,
+sunt decomprimate numai fișierele acceptate de \fBxz\fP(1). Se presupune că
+celelalte fișiere sunt deja în format necomprimat.
+.PP
+Sunt acceptate majoritatea \fIopțiunilor\fP din \fBgrep\fP(1). Cu toate acestea,
+următoarele opțiuni nu sunt acceptate:
+.IP "" 4
+\fB\-r\fP, \fB\-\-recursive\fP
+.IP "" 4
+\fB\-R\fP, \fB\-\-dereference\-recursive\fP
+.IP "" 4
+\fB\-d\fP, \fB\-\-directories=\fP\fIacțiune\fP
+.IP "" 4
+\fB\-Z\fP, \fB\-\-null\fP
+.IP "" 4
+\fB\-z\fP, \fB\-\-null\-data\fP
+.IP "" 4
+\fB\-\-include=\fP\fIglobal\fP
+.IP "" 4
+\fB\-\-exclude=\fP\fIglobal\fP
+.IP "" 4
+\fB\-\-exclude\-from=\fP\fIfișier\fP
+.IP "" 4
+\fB\-\-exclude\-dir=\fP\fIglobal\fP
+.PP
+\fBxzegrep\fP este un alias pentru \fBxzgrep \-E\fP. \fBxzfgrep\fP este un alias
+pentru \fBxzgrep \-F\fP.
+.PP
+Comenzile \fBlzgrep\fP, \fBlzegrep\fP și \fBlzfgrep\fP sunt furnizate pentru
+compatibilitate retroactivă cu LZMA Utils.
+.
+.SH "STARE DE IEȘIRE"
+.TP
+0
+A fost găsită cel puțin o potrivire din cel puțin unul dintre fișierele de
+la intrare. Nu au apărut erori.
+.TP
+1
+Nu au fost găsite potriviri din niciunul dintre fișierele de la intrare. Nu
+au apărut erori.
+.TP
+>1
+A apărut una sau mai multe erori. Nu se cunoaște dacă au fost găsite
+potriviri.
+.
+.SH "VARIABILE DE MEDIU"
+.TP
+\fBGREP\fP
+Dacă variabila de mediu \fBGREP\fP este stabilită la o valoare nevidă, aceasta
+este utilizată în locul lui \fBgrep\fP, \fBgrep \-E\fP sau \fBgrep \-F\fP.
+.
+.SH "CONSULTAȚI ȘI"
+\fBgrep\fP(1), \fBxz\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1), \fBzstd\fP(1),
+\fBlz4\fP(1), \fBzgrep\fP(1)
diff --git a/po4a/man/ro/xzless.1 b/po4a/man/ro/xzless.1
new file mode 100644
index 00000000..c97911fc
--- /dev/null
+++ b/po4a/man/ro/xzless.1
@@ -0,0 +1,57 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Andrew Dudman
+.\" Lasse Collin
+.\"
+.\" Romanian translation for xz-man.
+.\" Mesajele în limba română pentru manualul pachetului XZ Utils.
+.\" Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2022 - 2024.
+.\" Cronologia traducerii fiÈ™ierului „xz-manâ€:
+.\" Traducerea inițială, făcută de R-GC, pentru versiunea xz-man 5.4.0-pre1.
+.\" Actualizare a traducerii pentru versiunea 5.4.0-pre2, făcută de R-GC, dec-2022.
+.\" Actualizare a traducerii pentru versiunea 5.4.3, făcută de R-GC, mai-2023.
+.\" Actualizare a traducerii pentru versiunea 5.4.4-pre1, făcută de R-GC, iul-2023.
+.\" Actualizare a traducerii pentru versiunea 5.6.0-pre1, făcută de R-GC, feb-2024.
+.\" Actualizare a traducerii pentru versiunea 5.6.0-pre2, făcută de R-GC, feb-2024.
+.\" Actualizare a traducerii pentru versiunea Y, făcută de X, Z(luna-anul).
+.\"
+.\" (Note that this file is not based on gzip's zless.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZLESS 1 "12 februarie 2024" Tukaani "Utilități XZ"
+.SH NUME
+xzless, lzless \- vizualizează fișierele (text) comprimate xz sau lzma
+.SH REZUMAT
+\fBxzless\fP [\fIfișier\fP...]
+.br
+\fBlzless\fP [\fIfișier\fP...]
+.SH DESCRIERE
+\fBxzless\fP este un filtru care afișează textul din fișierele comprimate pe un
+terminal. Fișierele acceptate de \fBxz\fP(1) sunt decomprimate; se presupune
+că celelalte fișiere sunt deja în format necomprimat. Dacă nu se dă nici un
+\fIfișier\fP, \fBxzless\fP citește de la intrarea standard.
+.PP
+\fBxzless\fP folosește \fBless\fP(1) pentru a\-și prezenta rezultatul. Spre
+deosebire de \fBxzmore\fP, alegerea sa de pager nu poate fi modificată prin
+definirea unei variabile de mediu. Comenzile se bazează atât pe \fBmore\fP(1)
+cât și pe \fBvi\fP(1) și permit mișcarea înainte și înapoi și
+căutarea. Consultați manualul \fBless\fP(1) pentru mai multe informații.
+.PP
+Comanda numită \fBlzless\fP este furnizată pentru compatibilitatea cu LZMA
+Utils.
+.SH "VARIABILE DE MEDIU"
+.TP
+\fBLESSMETACHARS\fP
+O listă de caractere speciale pentru shell. Definită de \fBxzless\fP, cu
+excepția cazului în care este deja definită în mediu.
+.TP
+\fBLESSOPEN\fP
+Aceasta este definită în linia de comandă pentru a invoca instrumentul de
+decomprimare \fBxz\fP(1) pentru preprocesarea fișierelor de intrare pentru
+\fBless\fP(1).
+.SH "CONSULTAȚI ȘI"
+\fBless\fP(1), \fBxz\fP(1), \fBxzmore\fP(1), \fBzless\fP(1)
diff --git a/po4a/man/ro/xzmore.1 b/po4a/man/ro/xzmore.1
new file mode 100644
index 00000000..e0b40540
--- /dev/null
+++ b/po4a/man/ro/xzmore.1
@@ -0,0 +1,57 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Andrew Dudman
+.\" Lasse Collin
+.\"
+.\" Romanian translation for xz-man.
+.\" Mesajele în limba română pentru manualul pachetului XZ Utils.
+.\" Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2022 - 2024.
+.\" Cronologia traducerii fiÈ™ierului „xz-manâ€:
+.\" Traducerea inițială, făcută de R-GC, pentru versiunea xz-man 5.4.0-pre1.
+.\" Actualizare a traducerii pentru versiunea 5.4.0-pre2, făcută de R-GC, dec-2022.
+.\" Actualizare a traducerii pentru versiunea 5.4.3, făcută de R-GC, mai-2023.
+.\" Actualizare a traducerii pentru versiunea 5.4.4-pre1, făcută de R-GC, iul-2023.
+.\" Actualizare a traducerii pentru versiunea 5.6.0-pre1, făcută de R-GC, feb-2024.
+.\" Actualizare a traducerii pentru versiunea 5.6.0-pre2, făcută de R-GC, feb-2024.
+.\" Actualizare a traducerii pentru versiunea Y, făcută de X, Z(luna-anul).
+.\"
+.\" (Note that this file is based on xzless.1 instead of gzip's zmore.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZMORE 1 "12 februarie 2024" Tukaani "Utilități XZ"
+.SH NUME
+xzmore, lzmore \- vizualizează fișierele (text) comprimate xz sau lzma
+.
+.SH REZUMAT
+\fBxzmore\fP [\fIfișier\fP...]
+.br
+\fBlzmore\fP [\fIfișier\fP...]
+.
+.SH DESCRIERE
+\fBxzmore\fP afișează textul din fișierele comprimate pe un terminal folosind
+\fBmore\fP(1). Fișierele acceptate de \fBxz\fP(1) sunt decomprimate; se presupune
+că celelalte fișiere sunt deja în format necomprimat. Dacă nu se dă nici un
+\fIfișiere\fP, \fBxzmore\fP citește de la intrarea standard. Consultați manualul
+\fBmore\fP(1) pentru comenzile de la tastatură.
+.PP
+Rețineți că este posibil ca derularea înapoi să nu fie posibilă în funcție
+de implementarea lui \fBmore\fP(1). Acest lucru se datorează faptului că
+\fBxzmore\fP utilizează o conductă pentru a transmite datele decomprimate către
+\fBmore\fP(1). \fBxzless\fP(1) utilizează \fBless\fP(1) care oferă caracteristici mai
+avansate.
+.PP
+Comanda \fBlzmore\fP este furnizată pentru compatibilitate retroactivă cu LZMA
+Utils.
+.
+.SH "VARIABILE DE MEDIU"
+.TP
+\fBPAGER\fP
+Dacă variabila de mediu \fBPAGER\fP, este definită, valoarea sa este utilizată
+ca paginator în loc de \fBmore\fP(1).
+.
+.SH "CONSULTAȚI ȘI"
+\fBmore\fP(1), \fBxz\fP(1), \fBxzless\fP(1), \fBzmore\fP(1)
diff --git a/po4a/man/uk/lzmainfo.1 b/po4a/man/uk/lzmainfo.1
new file mode 100644
index 00000000..95753eb6
--- /dev/null
+++ b/po4a/man/uk/lzmainfo.1
@@ -0,0 +1,45 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Author: Lasse Collin
+.\"
+.\" Ukrainian translation for xz-man.
+.\" Yuri Chornoivan <yurchor@ukr.net>, 2019, 2022, 2023, 2024.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH LZMAINFO 1 "30 Ñ‡ÐµÑ€Ð²Ð½Ñ 2013 року" Tukaani "XZ Utils"
+.SH ÐÐЗВÐ
+lzmainfo — показ відомоÑтей, Ñкі зберігаютьÑÑ Ñƒ заголовку файла .lzma
+.SH "КОРОТКИЙ ОПИС"
+\fBlzmainfo\fP [\fB\-\-help\fP] [\fB\-\-version\fP] [\fIфайл...\fP]
+.SH ОПИС
+\fBlzmainfo\fP показує дані, що зберігаютьÑÑ Ñƒ заголовку файла \fB.lzma\fP. Вона
+читає перші 13 байтів із вказаного \fIфайла\fP, розкодовує заголовок і виводить
+його до Ñтандартного Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñƒ зручному Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–. Якщо не
+вказано жодного \fIфайла\fP або заміÑÑ‚ÑŒ \fIфайла\fP вказано \fB\-\fP, дані буде
+прочитано зі Ñтандартного вхідного джерела даних.
+.PP
+Зазвичай, найцікавішою інформацією є розпакований розмір та розмір
+Ñловника. Розпакований розмір може бути показано, лише Ñкщо файл запиÑано у
+непотоковому варіанті формату \fB.lzma\fP. Об'єм пам'ÑÑ‚Ñ–, потрібний длÑ
+Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°, Ñкладає декілька деÑÑтків кілобайтів Ð¿Ð»ÑŽÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€
+Ñловника.
+.PP
+\fBlzmainfo\fP включено до XZ Utils в оÑновному Ð´Ð»Ñ Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¾Ñ— ÑуміÑноÑÑ‚Ñ– із
+LZMA Utils.
+.SH "СТÐРВИХОДУ"
+.TP
+\fB0\fP
+УÑе добре.
+.TP
+\fB1\fP
+СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°.
+.SH Ð’ÐДИ
+\fBlzmainfo\fP викориÑтовує \fBMB\fP, хоча правильним ÑуфікÑом мав би бути \fBMiB\fP
+(2^20 байтів). Так зроблено, щоб зберегти ÑуміÑніÑÑ‚ÑŒ виведених даних із LZMA
+Utils.
+.SH "ДИВ. ТÐКОЖ"
+\fBxz\fP(1)
diff --git a/po4a/man/uk/xz.1 b/po4a/man/uk/xz.1
new file mode 100644
index 00000000..e412fd48
--- /dev/null
+++ b/po4a/man/uk/xz.1
@@ -0,0 +1,1971 @@
+'\" t
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Lasse Collin
+.\" Jia Tan
+.\"
+.\" Ukrainian translation for xz-man.
+.\" Yuri Chornoivan <yurchor@ukr.net>, 2019, 2022, 2023, 2024.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZ 1 "25 лютого 2024 року" Tukaani "XZ Utils"
+.
+.SH ÐÐЗВÐ
+xz, unxz, xzcat, lzma, unlzma, lzcat — ÑтиÑÐºÐ°Ð½Ð½Ñ Ñ‚Ð° Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð²
+\&.xz Ñ– .lzma
+.
+.SH "КОРОТКИЙ ОПИС"
+\fBxz\fP [\fIпараметр...\fP] [\fIфайл...\fP]
+.
+.SH "СКОРОЧЕÐÐЯ КОМÐÐД"
+\fBunxz\fP є рівноцінним до \fBxz \-\-decompress\fP.
+.br
+\fBxzcat\fP є рівноцінним до \fBxz \-\-decompress \-\-stdout\fP.
+.br
+\fBlzma\fP є рівноцінним до \fBxz \-\-format=lzma\fP.
+.br
+\fBunlzma\fP є рівноцінним до \fBxz \-\-format=lzma \-\-decompress\fP.
+.br
+\fBlzcat\fP є рівноцінним до \fBxz \-\-format=lzma \-\-decompress \-\-stdout\fP.
+.PP
+При напиÑанні Ñкриптів, де потрібно розпаковувати файли, рекомендуємо завжди
+викориÑтовувати \fBxz\fP із відповідними аргументами (\fBxz \-d\fP або \fBxz \-dc\fP),
+заміÑÑ‚ÑŒ \fBunxz\fP Ñ– \fBxzcat\fP.
+.
+.SH ОПИС
+\fBxz\fP інÑтрумент загального Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ ÑтиÑÐºÐ°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… із ÑинтакÑиÑом
+командного Ñ€Ñдка, подібним Ð´Ð»Ñ \fBgzip\fP(1) Ñ– \fBbzip2\fP(1). ВлаÑним форматом
+файлів Ñ” \fB.xz\fP, але передбачено підтримку заÑтарілого формату \fB.lzma\fP,
+Ñкий було викориÑтано у LZMA Utils, та необроблених потоків ÑтиÑнених даних
+без заголовків формату контейнера. Крім того, передбачено підтримку
+Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñƒ \fB.lz\fP, Ñкий викориÑтано у \fBlzip\fP.
+.PP
+\fBxz\fP ÑтиÑкає або розпаковує кожен \fIфайл\fP відповідно до вибраного режиму
+дій. Якщо \fIфайли\fP не задано або Ñкщо \fIфайлом\fP Ñ” \fB\-\fP, \fBxz\fP читатиме дані
+зі Ñтандартного джерела вхідних даних Ñ– запиÑуватиме оброблені дані до
+Ñтандартного виведеннÑ. \fBxz\fP відмовить (покаже Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку Ñ–
+пропуÑтить \fIфайл\fP) у запиÑів ÑтиÑнених даних до Ñтандартного виведеннÑ,
+Ñкщо це термінал. Так Ñамо, \fBxz\fP відмовить у читанні ÑтиÑнених даних зі
+Ñтандартного джерела вхідних даних, Ñкщо це термінал.
+.PP
+Якщо не вказано \fB\-\-stdout\fP, \fIфайли\fP, відмінні від \fB\-\fP, буде запиÑано до
+нового файла, чию назву буде визначено з назви початкового \fIфайла\fP:
+.IP \(bu 3
+При ÑтиÑканні ÑÑƒÑ„Ñ–ÐºÑ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñƒ файла Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (\fB.xz\fP або \fB.lzma\fP) буде
+допиÑано до назви початкового файла Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ файла призначеннÑ.
+.IP \(bu 3
+При розпаковуванні ÑÑƒÑ„Ñ–ÐºÑ \fB.xz\fP, \fB.lzma\fP або \fB.lz\fP буде вилучено з назви
+файла Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ файла призначеннÑ. Крім того, \fBxz\fP розпізнає
+ÑуфікÑи \fB.txz\fP Ñ– \fB.tlz\fP Ñ– замінює Ñ—Ñ… на ÑÑƒÑ„Ñ–ÐºÑ \fB.tar\fP.
+.PP
+Якщо файл Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¶Ðµ Ñ–Ñнує, буде показано Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку, а
+\fIфайл\fP буде пропущено.
+.PP
+Окрім випадку запиÑу до Ñтандартного виведеннÑ, \fBxz\fP покаже Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ñ–
+пропуÑтить обробку \fIфайла\fP, Ñкщо буде виконано будь\-Ñку з таких умов:
+.IP \(bu 3
+\fIФайл\fP не Ñ” звичайним файлом. Програма не переходитиме за Ñимволічними
+поÑиланнÑми, а отже, не вважатиме Ñ—Ñ… звичайними файлами.
+.IP \(bu 3
+Ðа \fIфайл\fP Ñ–Ñнує декілька жорÑтких поÑилань.
+.IP \(bu 3
+Ð”Ð»Ñ \fIфайла\fP вÑтановлено setuid, setgid або «липкий» біт.
+.IP \(bu 3
+Режим дій вÑтановлено у Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«ÑтиÑканнÑ», Ñ– \fIфайл\fP вже має ÑÑƒÑ„Ñ–ÐºÑ Ð½Ð°Ð·Ð²Ð¸
+формату файла Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (\fB.xz\fP або \fB.txz\fP при ÑтиÑканні до формату
+\&\fB.xz\fP, Ñ– \fB.lzma\fP або \fB.tlz\fP при ÑтиÑканні до формату \fB.lzma\fP).
+.IP \(bu 3
+Режим дій вÑтановлено у Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ», Ñ– \fIфайл\fP не має ÑуфікÑа
+назви жодного з підтримуваних форматів (\fB.xz\fP, \fB.txz\fP, \fB.lzma\fP, \fB.tlz\fP
+або \fB.lz\fP).
+.PP
+ПіÑÐ»Ñ ÑƒÑпішного ÑтиÑÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ \fIфайла\fP, \fBxz\fP копіює дані
+щодо влаÑника, групи, прав доÑтупу, чаÑу доÑтупу та моменту внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ з
+початкового \fIфайла\fP до файла призначеннÑ. Якщо ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… щодо групи
+зазнає невдачі, права доÑтупу буде змінено так, що файл Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñтане
+недоÑтупним Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів, Ñкі не мають права доÑтупу до початкового
+\fIфайла\fP. Ð’ \fBxz\fP ще не передбачено підтримки ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ñ–Ð½ÑˆÐ¸Ñ… метаданих,
+зокрема ÑпиÑків ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупом або розширених атрибутів.
+.PP
+Щойно файл Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ уÑпішно закрито, початковий \fIфайл\fP буде
+вилучено, Ñкщо не вказано параметра \fB\-\-keep\fP. Початковий \fIфайл\fP ніколи не
+буде вилучено, Ñкщо виведені дані буде запиÑано до Ñтандартного виведеннÑ
+або Ñкщо ÑтанетьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°.
+.PP
+ÐадÑÐ¸Ð»Ð°Ð½Ð½Ñ \fBSIGINFO\fP або \fBSIGUSR1\fP до процеÑу \fBxz\fP призводить до
+Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… щодо поÑтупу до Ñтандартного Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº. Це має лише
+обмежене викориÑтаннÑ, оÑкільки Ñкщо Ñтандартним виведеннÑм помилок Ñ”
+термінал, викориÑÑ‚Ð°Ð½Ð½Ñ \fB\-\-verbose\fP призведе до показу автоматично
+оновлюваного індикатора поÑтупу.
+.
+.SS "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–"
+ВикориÑÑ‚Ð°Ð½Ð½Ñ \fBxz\fP пам'ÑÑ‚Ñ– може бути різним: від декількох Ñотень кілобайтів
+до декількох гігабайтів, залежно від параметрів ÑтиÑканнÑ. Параметри, Ñкі
+викориÑтано при ÑтиÑканні файла, визначають вимоги до об'єму пам'ÑÑ‚Ñ– при
+розпакуванні. Типово, заÑобу Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾ від 5\ % до 20\ %
+об'єму пам'ÑÑ‚Ñ–, Ñкого заÑіб ÑтиÑÐºÐ°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÑ” при Ñтворенні
+файла. Ðаприклад, Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°, Ñкий Ñтворено з викориÑтаннÑм \fBxz \-9\fP, у поточній верÑÑ–Ñ— потребує 65\ МіБ пам'ÑÑ‚Ñ–. Втім, можливе ÑтвореннÑ
+файлів \fB.xz\fP, Ñкі потребуватимуть Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… гігабайтів
+пам'ÑÑ‚Ñ–.
+.PP
+ЙмовірніÑÑ‚ÑŒ виÑокого Ñ€Ñ–Ð²Ð½Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– може бути оÑобливо
+дошкульною Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів заÑтарілих комп'ютерів. Щоб запобігти прикрим
+неÑподіванкам, у \fBxz\fP передбачено вбудований обмежувач пам'ÑÑ‚Ñ–, Ñкий типово
+вимкнено. Хоча у деÑких операційних ÑиÑтемах передбачено ÑпоÑіб обмежити
+викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– процеÑами, ÑÐ¿Ð¾Ð´Ñ–Ð²Ð°Ð½Ð½Ñ Ð½Ð° його ефективніÑÑ‚ÑŒ не Ñ” аж
+надто гнучким (наприклад, викориÑÑ‚Ð°Ð½Ð½Ñ \fBulimit\fP(1) Ð´Ð»Ñ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ
+віртуальної пам'ÑÑ‚Ñ– призводить до Ð²Ð¸ÐºÑ€Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… \fBmmap\fP(2)).
+.PP
+Обмежувач пам'ÑÑ‚Ñ– можна увімкнути за допомогою параметра командного Ñ€Ñдка
+\fB\-\-memlimit=\fP\fIобмеженнÑ\fP. ЧаÑто, зручніше увімкнути обмежувач на типовому
+рівні, вÑтановивши Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— Ñередовища \fBXZ_DEFAULTS\fP,
+наприклад, \fBXZ_DEFAULTS=\-\-memlimit=150MiB\fP. Можна вÑтановити обмеженнÑ
+окремо Ð´Ð»Ñ ÑтиÑÐºÐ°Ð½Ð½Ñ Ñ– Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° допомогою
+\fB\-\-memlimit\-compress=\fP\fIlimit\fP and
+\fB\-\-memlimit\-decompress=\fP\fIобмеженнÑ\fP. ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ†Ð¸Ñ… двох параметрів поза
+\fBXZ_DEFAULTS\fP не таке вже Ñ– кориÑне, оÑкільки одноразовий запуÑк \fBxz\fP не
+може одночаÑно призводити до ÑтиÑÐºÐ°Ð½Ð½Ñ Ñ‚Ð° розпаковуваннÑ, а набрати у
+командному Ñ€Ñдку \fB\-\-memlimit=\fP\fIобмеженнÑ\fP (або \fB\-M\fP \fIобмеженнÑ\fP)
+набагато швидше.
+.PP
+Якщо під Ñ‡Ð°Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ðµ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ перевищено, \fBxz\fP покаже
+Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку, а Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° зазнає невдачі. Якщо
+Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ перевищено при ÑтиÑканні, \fBxz\fP Ñпробує маÑштабувати
+параметри так, щоб не перевищувати Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ (окрім випадків викориÑтаннÑ
+\fB\-\-format=raw\fP або \fB\-\-no\-adjust\fP). Отже, дію буде виконано, Ñкщо обмеженнÑ
+не Ñ” надто жорÑтким. МаÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² буде виконано кроками, Ñкі не
+збігаютьÑÑ Ñ–Ð· рівнÑми шаблонів ÑтиÑканнÑ. Ðаприклад, Ñкщо Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð»Ð¸ÑˆÐµ
+трохи не вкладаєтьÑÑ Ñƒ об'єм потрібний Ð´Ð»Ñ \fBxz \-9\fP, параметри буде змінено
+лише трохи, не до Ñ€Ñ–Ð²Ð½Ñ \fBxz \-8\fP.
+.
+.SS "ÐŸÐ¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ– Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð· файлами .xz"
+Можна поєднати файли \fB.xz\fP без додаткової обробки. \fBxz\fP розпакує такі
+файли так, наче вони є єдиним файлом \fB.xz\fP.
+.PP
+Можна додати Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¼Ñ–Ð¶ з'єднаними чаÑтинами або піÑÐ»Ñ Ð¾Ñтанньої
+чаÑтини. Ð”Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” ÑкладатиÑÑ Ñ–Ð· нульових байтів Ñ– мати розмір, Ñкий Ñ”
+кратним до чотирьох байтів. Це може бути кориÑним, наприклад, Ñкщо файл
+\&\fB.xz\fP зберігаєтьÑÑ Ð½Ð° ноÑÑ–Ñ— даних, де розміри файла вимірюютьÑÑ Ñƒ
+512\-байтових блоках.
+.PP
+ÐŸÐ¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ‚Ð° Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð½Ðµ можна викориÑтовувати Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² \fB.lzma\fP або
+потоків необроблених даних.
+.
+.SH ПÐРÐМЕТРИ
+.
+.SS "ЦілочиÑельні ÑуфікÑи Ñ– Ñпеціальні значеннÑ"
+У більшоÑÑ‚Ñ– міÑць, де потрібен цілочиÑельний аргумент, передбачено підтримку
+необов'Ñзкового ÑуфікÑа Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñтого Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²ÐµÐ»Ð¸ÐºÐ¸Ñ… цілих чиÑел. Між
+цілим чиÑлом Ñ– ÑуфікÑом не повинно бути пробілів.
+.TP
+\fBKiB\fP
+Помножити ціле чиÑло на 1024 (2^10). Синонімами \fBKiB\fP Ñ” \fBKi\fP, \fBk\fP, \fBkB\fP,
+\fBK\fP та \fBKB\fP.
+.TP
+\fBMiB\fP
+Помножити ціле чиÑло на 1048576 (2^20). Синонімами \fBMiB\fP Ñ” B, \fBMi\fP, \fBm\fP,
+\fBM\fP та \fBMB\fP.
+.TP
+\fBGiB\fP
+Помножити ціле чиÑло на 1073741824 (2^30). Синонімами \fBGiB\fP Ñ” B, \fBGi\fP,
+\fBg\fP, \fBG\fP та \fBGB\fP.
+.PP
+Можна ÑкориÑтатиÑÑ Ð¾Ñобливим значеннÑм \fBmax\fP Ð´Ð»Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°ÐºÑимального
+цілого значеннÑ, підтримку Ñкого передбачено Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°.
+.
+.SS "Режим операції"
+Якщо вказано декілька параметрів режиму дій, буде викориÑтано лише оÑтанній
+з них.
+.TP
+\fB\-z\fP, \fB\-\-compress\fP
+СтиÑнути. Це типовий режим дій, Ñкщо не вказано параметр режиму дій, а назва
+команди неÑвним чином не визначає іншого режиму дій (наприклад, \fBunxz\fP
+неÑвно визначає \fB\-\-decompress\fP).
+.TP
+\fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
+Розпакувати.
+.TP
+\fB\-t\fP, \fB\-\-test\fP
+Перевірити ціліÑніÑÑ‚ÑŒ ÑтиÑнених файлів \fIфайли\fP. Цей параметр еквівалентний
+до \fB\-\-decompress \-\-stdout\fP, але розпаковані дані буде відкинуто, заміÑÑ‚ÑŒ
+запиÑу до Ñтандартного виведеннÑ. Жодних файлів не буде Ñтворено або
+вилучено.
+.TP
+\fB\-l\fP, \fB\-\-list\fP
+ВивеÑти відомоÑÑ‚Ñ– щодо ÑтиÑнених файлів \fIфайли\fP. Ð Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… не
+виконуватиметьÑÑ, жодних файлів не буде Ñтворено або вилучено. У режимі
+ÑпиÑку програма не може читати дані зі Ñтандартного Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ з інших
+джерел, де неможливе позиціюваннÑ.
+.IP ""
+У типовому ÑпиÑку буде показано базові відомоÑÑ‚Ñ– щодо файлів \fIфайли\fP, по
+одному файлу на Ñ€Ñдок. Щоб отримати докладніші відомоÑÑ‚Ñ–, ÑкориÑтайтеÑÑ
+параметром \fB\-\-verbose\fP. Щоб розширити Ñпектр відомоÑтей, ÑкориÑтайтеÑÑ
+параметром \fB\-\-verbose\fP двічі, але зауважте, що це може призвеÑти до
+значного ÑƒÐ¿Ð¾Ð²Ñ–Ð»ÑŒÐ½ÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸, оÑкільки Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ñ… відомоÑтей
+потребує великої кількоÑÑ‚Ñ– позиціювань. Ширина облаÑÑ‚Ñ– докладного виведеннÑ
+даних перевищує 80 Ñимволів, тому Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ð²ÐµÑ”Ñ€Ð¾Ð¼ виведених даних,
+наприклад, до \fBless\ \-S\fP, може бути зручним ÑпоÑобом переглÑду даних, Ñкщо
+термінал недоÑтатньо широкий.
+.IP ""
+Виведені дані залежать від верÑÑ–Ñ— \fBxz\fP та викориÑтаної локалі. ДлÑ
+Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…, Ñкі будуть придатні до обробки комп'ютером, Ñлід
+ÑкориÑтатиÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°Ð¼Ð¸ \fB\-\-robot \-\-list\fP.
+.
+.SS "Модифікатори режиму роботи"
+.TP
+\fB\-k\fP, \fB\-\-keep\fP
+Ðе вилучати вхідні файли.
+.IP ""
+Починаючи з верÑÑ–Ñ— \fBxz\fP 5.2.6, викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ параметра також наказує
+\fBxz\fP виконувати ÑтиÑÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾ розпаковуваннÑ, навіть Ñкщо вхідними даними Ñ”
+Ñимволічне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° звичайний файл, файл, Ñкий має декілька жорÑтких
+поÑилань, або файл, Ð´Ð»Ñ Ñкого вÑтановлено setuid, setgid або липкий
+біт. setuid, setgid та липкий біт не буде Ñкопійовано до файла\-результату. У
+попередніх верÑÑ–ÑÑ…, ці дії виконувалиÑÑ, лише Ñкщо було викориÑтано параметр
+\fB\-\-force\fP.
+.TP
+\fB\-f\fP, \fB\-\-force\fP
+Результатів викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ параметра буде декілька:
+.RS
+.IP \(bu 3
+Якщо файл\-результат вже Ñ–Ñнує, вилучити його до ÑтиÑÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾
+розпаковуваннÑ.
+.IP \(bu 3
+Виконувати ÑтиÑÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾ розпаковуваннÑ, навіть Ñкщо вхідними даними Ñ”
+Ñимволічне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° звичайний файл, файл, Ñкий має декілька жорÑтких
+поÑилань, або файл, Ð´Ð»Ñ Ñкого вÑтановлено setuid, setgid або липкий біт
+setuid, setgid та липкий біт не буде Ñкопійовано до файла\-результату.
+.IP \(bu 3
+Якщо викориÑтано разом із \fB\-\-decompress\fP, \fB\-\-stdout\fP, Ñ– \fBxz\fP не зможе
+розпізнати тип початкового файла, копіювати початковий файл без змін до
+Ñтандартного виведеннÑ. Це надає змогу кориÑтуватиÑÑ \fBxzcat\fP \fB\-\-force\fP
+подібно до \fBcat\fP(1) Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð², Ñкі не було ÑтиÑнено за допомогою
+\fBxz\fP. Зауважте, що у майбутньому у \fBxz\fP може бути реалізовано підтримку
+нових форматів ÑтиÑнених файлів, заміÑÑ‚ÑŒ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ñ—Ñ… без змін до
+Ñтандартного виведеннÑ. Можна ÑкориÑтатиÑÑ \fB\-\-format=\fP\fIформат\fP длÑ
+Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ ÑтиÑÐºÐ°Ð½Ð½Ñ Ñƒ \fBxz\fP єдиним форматом файлів.
+.RE
+.TP
+\fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
+ЗапиÑати ÑтиÑнені або розпаковані дані до Ñтандартного виведеннÑ, а не до
+файла. ÐеÑвним чином вÑтановлює \fB\-\-keep\fP.
+.TP
+\fB\-\-single\-stream\fP
+Розпакувати лише перший потік даних \fB.xz\fP і без повідомлень проігнорувати
+решту вхідних даних, Ñкі Ñлідують за цим потоком. Зазвичай, такі зайві дані
+наприкінці файла призводÑÑ‚ÑŒ до показу \fBxz\fP Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку.
+.IP ""
+\fBxz\fP ніколи не виконуватиме Ñпроби видобути декілька потоків даних з файлів
+\&\fB.lzma\fP або необроблених потоків даних, але викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ параметра
+вÑе одно наказує \fBxz\fP ігнорувати можливі кінцеві дані піÑÐ»Ñ Ñ„Ð°Ð¹Ð»Ð° \fB.lzma\fP
+або необробленого потоку даних.
+.IP ""
+Цей параметр нічого не змінює, Ñкщо режимом дій не Ñ” \fB\-\-decompress\fP або
+\fB\-\-test\fP.
+.TP
+\fB\-\-no\-sparse\fP
+Вимкнути ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ñ€Ñ–Ð´Ð¶ÐµÐ½Ð¸Ñ… файлів. Типово, Ñкщо Ð²Ð¸Ð´Ð¾Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ
+до звичайного файла, \fBxz\fP намагаєтьÑÑ Ñтворити розріджений файл, Ñкщо
+розпаковані дані міÑÑ‚ÑÑ‚ÑŒ довгі поÑлідовноÑÑ‚Ñ– двійкових нулів. Це також
+працює, коли виконуєтьÑÑ Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ Ñтандартного виведеннÑ, доки Ñтандартне
+Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·'єднано зі звичайним файлом Ñ– виконуютьÑÑ Ð¿ÐµÐ²Ð½Ñ– додаткові умови,
+Ñкі убезпечують роботу. Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ñ€Ñ–Ð´Ð¶ÐµÐ½Ð¸Ñ… файлів може заощадити міÑце на
+диÑку Ñ– пришвидшити Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÐ»Ñхом Ð·Ð¼ÐµÐ½ÑˆÐµÐ½Ð½Ñ ÐºÑ–Ð»ÑŒÐºÐ¾ÑÑ‚Ñ– дій введеннÑ
+та Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… на диÑку.
+.TP
+\fB\-S\fP \fI.suf\fP, \fB\-\-suffix=\fP\fI.suf\fP
+При ÑтиÑканні викориÑтати ÑÑƒÑ„Ñ–ÐºÑ \fI.suf\fP Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² призначеннÑ, заміÑÑ‚ÑŒ
+ÑуфікÑа \fB.xz\fP або \fB.lzma\fP. Якщо запиÑÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ Ð½Ðµ до Ñтандартного
+Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ– початковий файл вже має ÑÑƒÑ„Ñ–ÐºÑ Ð½Ð°Ð·Ð²Ð¸ \fI.suf\fP, буде показано
+попередженнÑ, а файл буде пропущено під Ñ‡Ð°Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸.
+.IP ""
+При розпаковуванні розпізнавати файли із ÑуфікÑом назви \fI.suf\fP, окрім
+файлів із ÑуфікÑами назв \fB.xz\fP, \fB.txz\fP, \fB.lzma\fP, \fB.tlz\fP або \fB.lz\fP. Якщо
+початковий файл мав ÑÑƒÑ„Ñ–ÐºÑ Ð½Ð°Ð·Ð²Ð¸ \fI.suf\fP, Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ файла
+Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†ÐµÐ¹ ÑÑƒÑ„Ñ–ÐºÑ Ð±ÑƒÐ´Ðµ вилучено.
+.IP ""
+При ÑтиÑканні або розпакуванні необроблених потоків даних (\fB\-\-format=raw\fP)
+ÑÑƒÑ„Ñ–ÐºÑ Ñлід вказувати завжди, Ñкщо Ð·Ð°Ð¿Ð¸Ñ Ð½Ðµ виконуєтьÑÑ Ð´Ð¾ Ñтандартного
+виведеннÑ, оÑкільки типового ÑуфікÑа назви Ð´Ð»Ñ Ð½ÐµÐ¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¸Ñ… потоків даних не
+передбачено.
+.TP
+\fB\-\-files\fP[\fB=\fP\fIфайл\fP]
+Прочитати назви файлів Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ з файла \fIфайл\fP; Ñкщо \fIfile\fP не вказано,
+назви файлів буде прочитано зі Ñтандартного потоку вхідних даних. Ðазви
+файлів має бути відокремлено Ñимволом нового Ñ€Ñдка. Символ дефіÑа (\fB\-\fP)
+буде оброблено Ñк звичайну назву файла; він не позначатиме Ñтандартного
+джерела вхідних даних. Якщо також буде вказано назви файлів у аргументах
+Ñ€Ñдка команди, файли з цими назвами буде оброблено до обробки файлів, назви
+Ñких було прочитано з файла \fIфайл\fP.
+.TP
+\fB\-\-files0\fP[\fB=\fP\fIфайл\fP]
+Те Ñаме, що Ñ– \fB\-\-files\fP[\fB=\fP\fIфайл\fP], але файли у ÑпиÑку має бути
+відокремлено нульовим Ñимволом.
+.
+.SS "Параметри базового формату файлів та ÑтиÑканнÑ"
+.TP
+\fB\-F\fP \fIformat\fP, \fB\-\-format=\fP\fIформат\fP
+Вказати файл \fIформат\fP Ð´Ð»Ñ ÑтиÑÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾ розпакуваннÑ:
+.RS
+.TP
+\fBauto\fP
+Типовий варіант. При ÑтиÑканні \fBauto\fP Ñ” еквівалентом \fBxz\fP. При
+розпакуванні формат файла вхідних даних буде виÑвлено автоматично. Зауважте,
+що автоматичне виÑÐ²Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¸Ñ… потоків даних (Ñтворених за допомогою
+\fB\-\-format=raw\fP) неможливе.
+.TP
+\fBxz\fP
+СтиÑнути до формату \fB.xz\fP або приймати лише файли \fB.xz\fP при
+розпаковуванні.
+.TP
+\fBlzma\fP, \fBalone\fP
+СтиÑнути дані до заÑтарілого формату файлів \fB.lzma\fP або приймати лише файли
+\&\fB.lzma\fP при розпаковуванні. Ðльтернативну назву \fBalone\fP може бути
+викориÑтано Ð´Ð»Ñ Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¾Ñ— ÑуміÑноÑÑ‚Ñ– із LZMA Utils.
+.TP
+\fBlzip\fP
+Приймати лише файли \fB.lz\fP при розпакуванні. Підтримки ÑтиÑÐºÐ°Ð½Ð½Ñ Ð½Ðµ
+передбачено.
+.IP ""
+Передбачено підтримку верÑÑ–Ñ— формату \fB.lz\fP 0 та нерозширеної верÑÑ–Ñ—
+1. Файли верÑÑ–Ñ— 0 було Ñтворено \fBlzip\fP 1.3 та Ñтарішими верÑÑ–Ñми. Такі
+файли не Ñ” поширеними, але Ñ—Ñ… можна знайти у файлових архівах, оÑкільки
+певну незначну кількіÑÑ‚ÑŒ пакунків із початковим кодом було випущено у цьому
+форматі. Також можуть Ñ–Ñнувати оÑобиÑÑ‚Ñ– файли у цьому форматі. Підтримку
+Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñƒ верÑÑ–Ñ— 0 було вилучено у \fBlzip\fP 1.18.
+.IP ""
+\fBlzip\fP 1.4 Ñ– пізніші верÑÑ–Ñ— Ñтворюють файли у форматі верÑÑ–Ñ— 1. РозширеннÑ
+Ñинхронізації позначки Ð²Ð¸Ñ‚Ð¸Ñ€Ð°Ð½Ð½Ñ Ð´Ð¾ формату верÑÑ–Ñ— 1 було додано у \fBlzip\fP
+1.6. Це Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтовують не чаÑто, його підтримки у \fBxz\fP не
+передбачено (програма повідомлÑтиме про пошкоджені вхідні дані).
+.TP
+\fBraw\fP
+СтиÑнути або розпакувати потік необроблених даних (лез заголовків). Цей
+параметр призначено лише Ð´Ð»Ñ Ð´Ð¾Ñвідчених кориÑтувачів. Ð”Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ
+необроблених потоків даних Ñлід кориÑтуватиÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ \fB\-\-format=raw\fP Ñ–
+Ñвно вказати ланцюжок фільтруваннÑ, Ñкий за звичайних умов мало б бути
+збережено у заголовках контейнера.
+.RE
+.TP
+\fB\-C\fP \fIперевірка\fP, \fB\-\-check=\fP\fIперевірка\fP
+Вказати тип перевірки ціліÑноÑÑ‚Ñ–. Контрольну Ñуму буде обчиÑлено на оÑнові
+неÑтиÑнених даних Ñ– збережено у файлі \fB.xz\fP. Цей параметр працюватиме, лише
+Ñкщо дані ÑтиÑнено до файла у форматі \fB.xz\fP; Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñƒ файлів \fB.lzma\fP
+підтримки перевірки ціліÑноÑÑ‚Ñ– не передбачено. Перевірку контрольної Ñуми
+(Ñкщо така Ñ”) буде виконано під Ñ‡Ð°Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° \fB.xz\fP.
+.IP ""
+Підтримувані типи \fIперевірок\fP:
+.RS
+.TP
+\fBnone\fP
+Ðе обчиÑлювати контрольну Ñуму взагалі. Зазвичай, не варто цього робити. Цим
+варіантом Ñлід ÑкориÑтатиÑÑ, Ñкщо ціліÑніÑÑ‚ÑŒ даних буде перевірено в інший
+ÑпоÑіб.
+.TP
+\fBcrc32\fP
+ОбчиÑлити CRC32 за допомогою полінома з IEEE\-802.3 (Ethernet).
+.TP
+\fBcrc64\fP
+ОбчиÑлити CRC64 за допомогою полінома з ECMA\-182. Це типовий варіант,
+оÑкільки він дещо кращий за CRC32 при виÑвленні пошкоджених файлів, а
+Ñ€Ñ–Ð·Ð½Ð¸Ñ†Ñ Ñƒ швидкоÑÑ‚Ñ– Ñ” незрачною.
+.TP
+\fBsha256\fP
+ОбчиÑлити SHA\-256. Цей варіант дещо повільніший за CRC32 Ñ– CRC64.
+.RE
+.IP ""
+ЦіліÑніÑÑ‚ÑŒ заголовків \fB.xz\fP завжди перевірÑÑŽÑ‚ÑŒ за допомогою CRC32. Таку
+перевірку не можна змінити або ÑкаÑувати.
+.TP
+\fB\-\-ignore\-check\fP
+Ðе перевірÑти ціліÑніÑÑ‚ÑŒ ÑтиÑнених даних при розпаковуванні. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ CRC32
+у заголовках \fB.xz\fP буде у звичайний ÑпоÑіб перевірено попри цей параметр.
+.IP ""
+\fBÐе кориÑтуйтеÑÑ Ñ†Ð¸Ð¼ параметром, Ñкщо ви не уÑвідомлюєте наÑлідків ваших дій.\fP Можливі причини ÑкориÑтатиÑÑ Ñ†Ð¸Ð¼ параметром:
+.RS
+.IP \(bu 3
+Спроба Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… з пошкодженого файла .xz.
+.IP \(bu 3
+ÐŸÑ€Ð¸ÑˆÐ²Ð¸Ð´ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ð½Ð½Ñ. Це, здебільшого, ÑтоÑуєтьÑÑ SHA\-256 або файлів із
+надзвичайно виÑоким рівнем пакуваннÑ. Ðе рекомендуємо кориÑтуватиÑÑ Ñ†Ð¸Ð¼
+параметром з цією метою, Ñкщо ціліÑніÑÑ‚ÑŒ файлів не буде перевірено у ÑкийÑÑŒ
+інший ÑпоÑіб.
+.RE
+.TP
+\fB\-0\fP ... \fB\-9\fP
+Вибрати рівень ÑтиÑканнÑ. Типовим Ñ” \fB\-6\fP. Якщо буде вказано декілька рівнів
+ÑтиÑканнÑ, програма викориÑтає оÑтанній вказаний. Якщо вже було вказано
+нетиповий ланцюжок фільтрів, вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ñ–Ð²Ð½Ñ ÑтиÑÐºÐ°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð·Ð²ÐµÐ´Ðµ до
+Ð½ÐµÑ…Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ†Ð¸Ð¼ нетиповим ланцюжком фільтрів.
+.IP ""
+Ð Ñ–Ð·Ð½Ð¸Ñ†Ñ Ð¼Ñ–Ð¶ рівнÑми Ñ” Ñуттєвішою, ніж у \fBgzip\fP(1) Ñ– \fBbzip2\fP(1). Вибрані
+параметри ÑтиÑÐºÐ°Ð½Ð½Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°ÑŽÑ‚ÑŒ вимоги до пам'ÑÑ‚Ñ– під Ñ‡Ð°Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ,
+отже викориÑÑ‚Ð°Ð½Ð½Ñ Ð½Ð°Ð´Ñ‚Ð¾ виÑокого Ñ€Ñ–Ð²Ð½Ñ ÑтиÑÐºÐ°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ призвеÑти до проблем
+під Ñ‡Ð°Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° на заÑтарілих комп'ютерах із невеликим обÑÑгом
+оперативної пам'ÑÑ‚Ñ–. Зокрема, \fBне варто викориÑтовувати \-9 Ð´Ð»Ñ ÑƒÑього\fP, Ñк
+це чаÑто буває Ð´Ð»Ñ \fBgzip\fP(1) Ñ– \fBbzip2\fP(1).
+.RS
+.TP
+\fB\-0\fP ... \fB\-3\fP
+Це дещо швидші набори налаштувань. \fB\-0\fP іноді є швидшим за \fBgzip \-9\fP,
+забезпечуючи набагато більший коефіцієнт ÑтиÑканнÑ. Вищі рівні чаÑто мають
+швидкіÑÑ‚ÑŒ, Ñку можна порівнÑти з \fBbzip2\fP(1) із подібним або кращим
+коефіцієнтом ÑтиÑканнÑ, хоча результати значно залежать від типу даних, Ñкі
+ÑтиÑкають.
+.TP
+\fB\-4\fP ... \fB\-6\fP
+СтиÑÐºÐ°Ð½Ð½Ñ Ð²Ñ–Ð´ доброго до дуже доброго Ñ€Ñ–Ð²Ð½Ñ Ñ–Ð· одночаÑним підтриманнÑм
+помірного Ñ€Ñ–Ð²Ð½Ñ ÑÐ¿Ð¾Ð¶Ð¸Ð²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– заÑобом розпаковуваннÑ, навіть длÑ
+заÑтарілих ÑиÑтеми. Типовим Ñ” Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fB\-6\fP, Ñке Ñ” добрим варіантом длÑ
+Ð¿Ð¾ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð², Ñкі мають бути придатними до Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð²Ñ–Ñ‚ÑŒ у
+ÑиÑтемах із лише 16\ МіБ оперативної пам'ÑÑ‚Ñ–. (Також можна розглÑнути
+варіанти \fB\-5e\fP і \fB\-6e\fP. Див. \fB\-\-extreme\fP.)
+.TP
+\fB\-7 ... \-9\fP
+Ці варіанти подібні до \fB\-6\fP, але із вищими вимогами щодо пам'ÑÑ‚Ñ– длÑ
+ÑтиÑÐºÐ°Ð½Ð½Ñ Ñ– розпаковуваннÑ. Можуть бути кориÑними лише Ð´Ð»Ñ ÑтиÑÐºÐ°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð²
+з розміром, що перевищує 8\ МіБ, 16\ МіБ та 32\ МіБ, відповідно.
+.RE
+.IP ""
+Ðа однаковому обладнанні швидкіÑÑ‚ÑŒ Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñ” приблизно Ñталою кількіÑÑ‚ÑŽ
+байтів ÑтиÑнених даних за Ñекунду. Іншими Ñловами, чим кращим Ñ” ÑтиÑканнÑ,
+тим швидшим буде, зазвичай, розпаковуваннÑ. Це також означає, що об'єм
+розпакованих виведених даних, Ñкі видає програма за Ñекунду, може коливатиÑÑ
+у широкому діапазоні.
+.IP ""
+У наведеній нижче таблиці підÑумовано можливоÑÑ‚Ñ– шаблонів:
+.RS
+.RS
+.PP
+.TS
+tab(;);
+c c c c c
+n n n n n.
+Шаблон;DictSize;CompCPU;CompMem;DecMem
+\-0;256 КіБ;0;3 МіБ;1 МіБ
+\-1;1 МіБ;1;9 МіБ;2 МіБ
+\-2;2 МіБ;2;17 МіБ;3 МіБ
+\-3;4 МіБ;3;32 МіБ;5 МіБ
+\-4;4 МіБ;4;48 МіБ;5 МіБ
+\-5;8 МіБ;5;94 МіБ;9 МіБ
+\-6;8 МіБ;6;94 МіБ;9 МіБ
+\-7;16 МіБ;6;186 МіБ;17 МіБ
+\-8;32 МіБ;6;370 МіБ;33 МіБ
+\-9;64 МіБ;6;674 МіБ;65 МіБ
+.TE
+.RE
+.RE
+.IP ""
+ОпиÑи Ñтовпчиків:
+.RS
+.IP \(bu 3
+DictSize Ñ” розміром Ñловника LZMA2. ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñловника, розмір Ñкого
+перевищує розмір неÑтиÑненого файла, — проÑта витрата пам'ÑÑ‚Ñ–. ОÑÑŒ чому не
+варто викориÑтовувати шаблони \fB\-7\fP ... \fB\-9\fP, Ñкщо у них немає реальної
+потреби. Ð”Ð»Ñ \fB\-6\fP та нижчих рівнів об'єм витраченої пам'ÑÑ‚Ñ–, зазвичай,
+такий низький, що цей фактор ні на що не впливає.
+.IP \(bu 3
+CompCPU Ñ” Ñпрощеним предÑтавленнÑм параметрів LZMA2, Ñкі впливають на
+швидкіÑÑ‚ÑŒ ÑтиÑканнÑ. Розмір Ñловника також впливає на швидкіÑÑ‚ÑŒ, тому, хоча
+Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ CompCPU Ñ” однаковим Ð´Ð»Ñ Ñ€Ñ–Ð²Ð½Ñ–Ð² \fB\-6\fP ... \fB\-9\fP, обробка на вищих
+рівнÑÑ… вÑе одно Ñ” трошки повільнішою. Що отримати повільніше Ñ–, ймовірно,
+краще ÑтиÑканнÑ, див. \fB\-\-extreme\fP.
+.IP \(bu 3
+CompMem міÑтить вимоги до пам'ÑÑ‚Ñ– заÑобу ÑтиÑÐºÐ°Ð½Ð½Ñ Ñƒ однопотоковому
+режимі. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶ÑƒÑ‚ÑŒ бути дещо різними Ð´Ð»Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… верÑій \fBxz\fP.
+.IP \(bu 3
+У DecMem міÑÑ‚ÑÑ‚ÑŒÑÑ Ð²Ð¸Ð¼Ð¾Ð³Ð¸ до пам'ÑÑ‚Ñ– при розпаковуванні. Тобто параметри
+заÑобу ÑтиÑÐºÐ°Ð½Ð½Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°ÑŽÑ‚ÑŒ вимоги до пам'ÑÑ‚Ñ– при розпаковуванні. Точний
+об'єм пам'ÑÑ‚Ñ–, Ñка потрібна Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ, дещо перевищує розмір
+Ñловника LZMA2, але Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ таблиці було округлено до наÑтупного цілого
+Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐœÑ–Ð‘.
+.RE
+.IP ""
+Вимоги до пам'ÑÑ‚Ñ– у багатопотоковому режимі Ñ” значно вищими, ніж у
+однопотоковому. З типовим значеннÑм \fB\-\-block\-size\fP Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ потоку треба
+3*3*DictSize Ð¿Ð»ÑŽÑ CompMem або DecMem. Ðаприклад, Ð´Ð»Ñ Ñ‡Ð¾Ñ‚Ð¸Ñ€ÑŒÐ¾Ñ… потоків з
+шаблоном \fB\-6\fP потрібно 660\(en670\ МіБ пам'ÑÑ‚Ñ–.
+.TP
+\fB\-e\fP, \fB\-\-extreme\fP
+ВикориÑтати повільніший варіант вибраного Ñ€Ñ–Ð²Ð½Ñ ÑтиÑÐºÐ°Ð½Ð½Ñ (\fB\-0\fP ... \fB\-9\fP)
+у Ñподіванні отримати трохи кращий коефіцієнт ÑтиÑканнÑ, але, Ñкщо не
+поталанить, можна його Ñ– погіршити. Ðе впливає на викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– при
+розпаковуванні, але викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– при ÑтиÑканні дещо збільшитьÑÑ Ð½Ð°
+рівнÑÑ… \fB\-0\fP ... \fB\-3\fP.
+.IP ""
+ОÑкільки Ñ–Ñнує два набори налаштувань із розмірами Ñловників 4\ МіБ та 8\ МіБ, у наборах \fB\-3e\fP Ñ– \fB\-5e\fP викориÑтано трошки швидші параметри (нижче
+CompCPU), ніж у наборах \fB\-4e\fP і \fB\-6e\fP, відповідно. Тому двох однакових
+наборів у ÑпиÑку немає.
+.RS
+.RS
+.PP
+.TS
+tab(;);
+c c c c c
+n n n n n.
+Шаблон;DictSize;CompCPU;CompMem;DecMem
+\-0e;256 КіБ;8;4 МіБ;1 МіБ
+\-1e;1 МіБ;8;13 МіБ;2 МіБ
+\-2e;2 МіБ;8;25 МіБ;3 МіБ
+\-3e;4 МіБ;7;48 МіБ;5 МіБ
+\-4e;4 МіБ;8;48 МіБ;5 МіБ
+\-5e;8 МіБ;7;94 МіБ;9 МіБ
+\-6e;8 МіБ;8;94 МіБ;9 МіБ
+\-7e;16 МіБ;8;186 МіБ;17 МіБ
+\-8e;32 МіБ;8;370 МіБ;33 МіБ
+\-9e;64 МіБ;8;674 МіБ;65 МіБ
+.TE
+.RE
+.RE
+.IP ""
+Ðаприклад, передбачено загалом чотири набори налаштувань із викориÑтаннÑм
+Ñловника у 8\ МіБ, порÑдок Ñких від найшвидшого до найповільнішого Ñ” таким:
+\fB\-5\fP, \fB\-6\fP, \fB\-5e\fP Ñ– \fB\-6e\fP.
+.TP
+\fB\-\-fast\fP
+.PD 0
+.TP
+\fB\-\-best\fP
+.PD
+Це дещо оманливі альтернативні варіанти Ð´Ð»Ñ \fB\-0\fP Ñ– \fB\-9\fP,
+відповідно. Реалізовано лише Ð´Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¾Ñ— ÑуміÑноÑÑ‚Ñ– із LZMA
+Utils. ÐамагайтеÑÑ Ð½Ðµ кориÑтуватиÑÑ Ñ†Ð¸Ð¼Ð¸ варіантами параметрів.
+.TP
+\fB\-\-block\-size=\fP\fIрозмір\fP
+При ÑтиÑканні до формату \fB.xz\fP поділити вхідні дані на блоки у \fIрозмір\fP
+байтів. Ці блоки буде ÑтиÑнуто незалежно один від одного, що допоможе у
+багатопотоковій обробці Ñ– зробить можливим обмежене Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð´Ð¾Ñтупу
+до будь\-Ñких даних. Цим параметром Ñлід типово кориÑтуватиÑÑ Ð´Ð»Ñ
+Ð¿ÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð³Ð¾ розміру блоку у багатопотоковому режимі обробки, але
+цим параметром можна також ÑкориÑтатиÑÑ Ð² однопотоковому режимі обробки.
+.IP ""
+У багатопотоковому режимі Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ потоку буде отримано Ð´Ð»Ñ Ð±ÑƒÑ„ÐµÑ€Ñ–Ð²
+вхідних і вихідних даних майже утричі більше за \fIрозмір\fP байтів. Типовий
+\fIрозмір\fP утричі більший за розмір Ñловника LZMA2 або дорівнює 1 МіБ, буде
+вибрано більше значеннÑ. Типовим добрим значеннÑм буде значеннÑ, Ñке у
+2\(en4 рази перевищує розмір Ñловника LZMA2 або дорівнює принаймні 1
+МіБ. ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIрозмір\fP, Ñке Ñ” меншим за розмір Ñловника LZMA2,
+має наÑлідком марну витрату оперативної пам'ÑÑ‚Ñ–, оÑкільки його викориÑтаннÑ
+призводить до того, що буфер Ñловника LZMA2 ніколи не буде викориÑтано
+повніÑÑ‚ÑŽ. У багатопотоковому режимі розміри блоків зберігатимутьÑÑ Ñƒ
+заголовках блоків. Ці дані потрібні Ð´Ð»Ñ Ð±Ð°Ð³Ð°Ñ‚Ð¾Ð¿Ð¾Ñ‚Ð¾ÐºÐ¾Ð²Ð¾Ð³Ð¾ розпаковуваннÑ.
+.IP ""
+У однопотоковому режимі поділ на блоки типово не
+виконуватиметьÑÑ. Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ параметра не впливатиме на
+викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–. У заголовках блоків не зберігатимутьÑÑ Ð´Ð°Ð½Ñ– щодо
+розміру, отже файли, Ñкі Ñтворено в однопотоковому режимі не будуть
+ідентичними до файлів, Ñкі Ñтворено у багатопотоковому режимі. Те, що у
+заголовках блоків не зберігатимутьÑÑ Ð´Ð°Ð½Ñ– щодо розміру також означає, що
+\fBxz\fP не зможе розпаковувати такі файли у багатопотоковому режимі.
+.TP
+\fB\-\-block\-list=\fP\fIзапиÑи\fP
+При ÑтиÑканні у форматі \fB.xz\fP починати новий блок із необов'Ñзковим
+ланцюжком фільтрів піÑÐ»Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾Ñ— кількоÑÑ‚Ñ– інтервалів неÑтиÑнених даних.
+.IP ""
+\fIзапиÑи\fP Ñ” ÑпиÑком відокремлених комами значень. Кожен Ð·Ð°Ð¿Ð¸Ñ ÑкладаєтьÑÑ Ð·
+необов'Ñзкового номера ланцюжка фільтрів від 0 до 9, піÑÐ»Ñ Ñкого йде
+двокрапка (\fB:\fP) Ñ– необхідний розмір неÑтиÑнутих даних. ÐŸÑ€Ð¾Ð¿ÑƒÑ‰ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу
+(дві або більше поÑлідовних ком) Ñ” Ñкороченим варіантом визначеннÑ
+викориÑÑ‚Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ та фільтрів попереднього запиÑу.
+.IP ""
+Якщо файл вхідних даних Ñ” більшим за розміром за Ñуму розмірів \fIзапиÑів\fP,
+оÑтаннє Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ \fIрозмірах\fP буде повторено до ÐºÑ–Ð½Ñ†Ñ Ñ„Ð°Ð¹Ð»Ð°. ОÑобливе
+Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fB0\fP може бути викориÑтано Ñк оÑтанній розмір, щоб позначити, що
+решту файла має бути закодовано Ñк єдиний блок.
+.IP ""
+Ðльтернативний ланцюжок фільтрів Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ блоку можна вказати в поєднанні
+з параметрами \fB\-\-filters1=\fP\fIфільтри\fP \&...\& \fB\-\-filters9=\fP\fIфільтри\fP. Ці
+параметри визначають ланцюжки фільтрів з ідентифікатором у діапазоні
+1\(en9. Ланцюжок фільтрів 0 можна викориÑтовувати Ð´Ð»Ñ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° типовий
+ланцюжок фільтрів — це те Ñаме, що не вказувати ланцюжок
+фільтрів. Ідентифікатор ланцюжка фільтрів можна викориÑтовувати перед
+неÑтиÑненим розміром, піÑÐ»Ñ Ñкого йде двокрапка (\fB:\fP). Ðаприклад, Ñкщо
+вказати \fB\-\-block\-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB\fP, блоки будуть
+Ñтворені так:
+.RS
+.IP \(bu 3
+Ланцюжок фільтрів задано \fB\-\-filters1\fP із вхідними даними у 2 МіБ
+.IP \(bu 3
+Ланцюжок фільтрів задано \fB\-\-filters3\fP із вхідними даними у 2 МіБ
+.IP \(bu 3
+Ланцюжок фільтрів задано \fB\-\-filters2\fP із вхідними даними у 4 МіБ
+.IP \(bu 3
+Ланцюжок фільтрів задано \fB\-\-filters2\fP із вхідними даними у 4 МіБ
+.IP \(bu 3
+Типовий ланцюжок даних і вхідні дані у 2 МіБ
+.IP \(bu 3
+Типовий ланцюжок фільтрів та вхідні дані у 4 МіБ Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ блоку до кінцÑ
+вхідних даних.
+.RE
+.IP ""
+Якщо вказати розмір, Ñкий перевищує розмір блоку кодувальника (або типове
+Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ режимі із потоками обробки, або значеннÑ, Ñке вÑтановлено за
+допомогою \fB\-\-block\-size=\fP\fIрозмір\fP), заÑіб ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ñтворить додаткові
+блоки, зберігаючи межі, Ñкі вказано у \fIзапиÑах\fP. Ðаприклад, Ñкщо вказати
+\fB\-\-block\-size=10MiB\fP \fB\-\-block\-list=5MiB,10MiB,8MiB,12MiB,24MiB\fP, а файл
+вхідних даних має розмір 80 МіБ, буде отримано такі 11 блоків: 5, 10, 8, 10,
+2, 10, 10, 4, 10, 10 і 1 МіБ.
+.IP ""
+У багатопотоковому режимі розмір блоків буде збережено у заголовках
+блоків. Програма не зберігатиме ці дані у однопотоковому режимі, отже
+закодований результат не буде ідентичним до отриманого у багатопотоковому
+режимі.
+.TP
+\fB\-\-flush\-timeout=\fP\fIчаÑ_очікуваннÑ\fP
+При ÑтиÑканнÑ, Ñкщо з моменту попереднього Ð²Ð¸Ñ‚Ð¸Ñ€Ð°Ð½Ð½Ñ Ð¼Ð¸Ð½Ðµ понад
+\fIчаÑ_очікуваннÑ\fP міліÑекунд (додатне ціле значеннÑ) Ñ– Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ñ…
+даних буде заблоковано, уÑÑ– вхідні дані у черзі обробки буде витерто з
+кодувальника Ñ– зроблено доÑтупним у потоці вихідних даних. Це може бути
+кориÑним, Ñкщо \fBxz\fP викориÑтовують Ð´Ð»Ñ ÑтиÑÐºÐ°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…, Ñкі передають
+потоком мережею. Ðевеликі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñƒ \fIчаÑ_очікуваннÑ\fP зроблÑÑ‚ÑŒ дані
+доÑтупними на боці Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ–Ð· малою затримкою, а великі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚
+\fIчаÑ_очікуваннÑ\fP уможливлÑÑ‚ÑŒ кращий коефіцієнт ÑтиÑканнÑ.
+.IP ""
+Типово, цю можливіÑÑ‚ÑŒ вимкнено. Якщо цей параметр вказано декілька разів,
+буде викориÑтано лише оÑтаннє вказане значеннÑ. ОÑобливим значеннÑм
+аргументу \fIчаÑ_очікуваннÑ\fP, рівним \fB0\fP, можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ
+цієї можливоÑÑ‚Ñ– Ñвним чином.
+.IP ""
+Ð¦Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ñ–ÑÑ‚ÑŒ недоÑтупна у ÑиÑтемах, Ñкі не Ñ” ÑиÑтемами POSIX.
+.IP ""
+.\" FIXME
+\fBÐ¦Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ñ–ÑÑ‚ÑŒ уÑе ще Ñ” екÑпериментальною.\fP У поточній верÑÑ–Ñ—, \fBxz\fP не
+може розпаковувати потік даних у режимі реального чаÑу через те, у Ñкий
+ÑпоÑіб \fBxz\fP виконує буферизацію.
+.TP
+\fB\-\-memlimit\-compress=\fP\fIобмеженнÑ\fP
+Ð’Ñтановити Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– при ÑтиÑканні. Якщо цей
+параметр вказано декілька разів, враховано буде лише оÑтаннє вказане
+значеннÑ.
+.IP ""
+Якщо параметри ÑтиÑÐºÐ°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÑƒÑŽÑ‚ÑŒ \fIобмеженнÑ\fP, \fBxz\fP Ñпробує Ñкоригувати
+параметри так, щоб Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ðµ було перевищено, Ñ– покаже Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾
+те, що було виконано автоматичне коригуваннÑ. ÐšÐ¾Ñ€Ð¸Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ виконано у
+такому порÑдку: Ð·Ð¼ÐµÐ½ÑˆÐµÐ½Ð½Ñ ÐºÑ–Ð»ÑŒÐºÐ¾ÑÑ‚Ñ– потоків обробки, Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ñƒ
+однопотоковий режим, Ñкщо хоч в одному потоці багатопотокового режиму буде
+перевищено \fIобмеженнÑ\fP, Ñ– нарешті, Ð·Ð¼ÐµÐ½ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ñловника LZMA2.
+.IP ""
+При ÑтиÑканні з викориÑтаннÑм \fB\-\-format=raw\fP, або Ñкщо було вказано
+\fB\-\-no\-adjust\fP, може бути зменшена лише кількіÑÑ‚ÑŒ потоків обробки, оÑкільки
+це може бути зроблено без впливу на ÑтиÑнені виведені дані.
+.IP ""
+Якщо \fIобмеженнÑ\fP не може бути виконано за допомогою коригувань, Ñкі опиÑано
+вище, буде показано Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку, а \fBxz\fP завершить роботу зі
+Ñтаном виходу 1.
+.IP ""
+Ðргумент \fIобмеженнÑ\fP можна вказати у декілька ÑпоÑобів:
+.RS
+.IP \(bu 3
+ЗначеннÑм \fIобмеженнÑ\fP може бути додатне ціле Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ байтах. Можна
+ÑкориÑтатиÑÑ Ñ†Ñ–Ð»Ð¾Ñ‡Ð¸Ñельним ÑуфікÑом, подібним до \fBMiB\fP. Приклад:
+\fB\-\-memlimit\-compress=80MiB\fP
+.IP \(bu 3
+Ðргумент \fIобмеженнÑ\fP може бути задано у відÑотках від загальної фізичної
+пам'ÑÑ‚Ñ– ÑиÑтеми (RAM). Це може бути кориÑним оÑобливо при вÑтановленні
+змінної Ñередовища \fBXZ_DEFAULTS\fP у Ñкрипті ініціалізації ÑиÑтеми, Ñкий Ñ”
+Ñпільним Ð´Ð»Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… комп'ютерів. У такий ÑпоÑіб можна вказати вищий рівень
+Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ ÑиÑтем із більшим об'ємом пам'ÑÑ‚Ñ–. Приклад:
+\fB\-\-memlimit\-compress=70%\fP
+.IP \(bu 3
+Ðргументу \fIобмеженнÑ\fP може бути повернуто типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²ÑтановленнÑм
+Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fB0\fP. У поточній верÑÑ–Ñ— це еквівалентно до вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ
+аргументу \fIобмеженнÑ\fP \fBmax\fP (без Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–).
+.RE
+.IP ""
+Ð”Ð»Ñ 32\-бітової верÑÑ–Ñ— \fBxz\fP передбачено оÑобливий випадок: Ñкщо \fIобмеженнÑ\fP
+перевищуватиме \fB4020\ МіБ\fP, Ð´Ð»Ñ \fIобмеженнÑ\fP буде вÑтановлено значеннÑ
+\fB4020\ MiB\fP. Ðа MIPS32 заміÑÑ‚ÑŒ цього буде викориÑтано \fB2000\ MiB\fP. (Це не
+ÑтоÑуєтьÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ \fB0\fP Ñ– \fBmax\fP. Подібної можливоÑÑ‚Ñ– Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ
+Ñ–Ñнує.) Це може бути кориÑним, коли 32\-бітовий виконуваний файл має доÑтуп
+до проÑтору Ð°Ð´Ñ€ÐµÑ Ñƒ 4\ ГіБ (2 GiB на MIPS32), хоча, ÑподіваємоÑÑ, не
+зашкодить і в інших випадках.
+.IP ""
+Див. також розділ \fBВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–\fP.
+.TP
+\fB\-\-memlimit\-decompress=\fP\fIобмеженнÑ\fP
+Ð’Ñтановити Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– на розпаковуваннÑ. це також вплине на режим
+\fB\-\-list\fP. Якщо Ð´Ñ–Ñ Ñ” неможливою без Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÐµÐ½Ð½Ñ \fIобмеженнÑ\fP, \fBxz\fP покаже
+Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку Ñ– Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° не
+відбудетьÑÑ. Див. \fB\-\-memlimit\-compress=\fP\fIобмеженнÑ\fP, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ
+про те, Ñк можна задати \fIобмеженнÑ\fP.
+.TP
+\fB\-\-memlimit\-mt\-decompress=\fP\fIобмеженнÑ\fP
+Ð’Ñтановити Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– Ð´Ð»Ñ Ð±Ð°Ð³Ð°Ñ‚Ð¾Ð¿Ð¾Ñ‚Ð¾ÐºÐ¾Ð²Ð¾Ð³Ð¾
+розпаковуваннÑ. Це може вплинути лише на кількіÑÑ‚ÑŒ потоків обробки; це
+ніколи не призводитиме до відмови \fBxz\fP у розпаковуванні файла. Якщо
+\fIÐ¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ” надто низьким\fP, щоб уможливити будь\-Ñку багатопотокову
+обробку, \fIобмеженнÑ\fP буде проігноровано, Ñ– \fBxz\fP продовжить обробку в
+однопотоковому режимі. Зауважте, що Ñкщо викориÑтано також
+\fB\-\-memlimit\-decompress\fP, цей параметр буде заÑтоÑовано до обох режимів,
+однопотокового та багатопотокового, а отже, задіÑне \fIобмеженнÑ\fP длÑ
+багатопотокового режиму ніколи не перевищуватиме обмеженнÑ, Ñке вÑтановлено
+за допомогою \fB\-\-memlimit\-decompress\fP.
+.IP ""
+Ðа відміну від інших параметрів Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–,
+\fB\-\-memlimit\-mt\-decompress=\fP\fIобмеженнÑ\fP міÑтить Ñпецифічне Ð´Ð»Ñ ÑиÑтеми
+типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIобмеженнÑ\fP. Можна ÑкориÑтатиÑÑ \fBxz \-\-info\-memory\fP длÑ
+переглÑду поточного значеннÑ.
+.IP ""
+Цей параметр Ñ– його типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ñнують, оÑкільки без будь\-Ñких обмежень
+заÑіб Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ñ– підтримкою потокової обробки міг би намагатиÑÑ
+отримати величезний об'єм пам'ÑÑ‚Ñ– Ð´Ð»Ñ Ð´ÐµÑких файлів вхідних даних. Якщо
+типове \fIобмеженнÑ\fP Ñ” надто низьким Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ñ— ÑиÑтеми, не вагайтеÑÑ Ñ–
+збільшуйте \fIобмеженнÑ\fP, але ніколи не вÑтановлюйте Ð´Ð»Ñ Ð½ÑŒÐ¾Ð³Ð¾ значеннÑ, Ñке
+Ñ” більшим за придатний до кориÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±'єм оперативної пам'ÑÑ‚Ñ–, оÑкільки
+за відповідних файлів вхідних даних \fBxz\fP Ñпробує ÑкориÑтатиÑÑ Ñ†Ð¸Ð¼ об'ємом
+пам'ÑÑ‚Ñ–, навіть із низькою кількіÑÑ‚ÑŽ потоків обробки. Ð’Ð¸Ñ‡ÐµÑ€Ð¿Ð°Ð½Ð½Ñ Ð¾Ð±'єму
+оперативної пам'ÑÑ‚Ñ– або викориÑÑ‚Ð°Ð½Ð½Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ñ— пам'ÑÑ‚Ñ– на диÑку не покращить
+швидкодію ÑиÑтеми під Ñ‡Ð°Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ.
+.IP ""
+Див. \fB\-\-memlimit\-compress=\fP\fIобмеженнÑ\fP, щоб ознайомитиÑÑ Ñ–Ð· можливими
+ÑпоÑобами Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIобмеженнÑ\fP. Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ \fIобмеженнÑ\fP значеннÑ
+\fB0\fP відновлює типове Ñпецифічне Ð´Ð»Ñ ÑиÑтеми Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIобмеженнÑ\fP.
+.TP
+\fB\-M\fP \fIобмеженнÑ\fP, \fB\-\-memlimit=\fP\fIобмеженнÑ\fP, \fB\-\-memory=\fP\fIобмеженнÑ\fP
+Є еквівалентом Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fB\-\-memlimit\-compress=\fP\fIобмеженнÑ\fP
+\fB\-\-memlimit\-decompress=\fP\fIобмеженнÑ\fP
+\fB\-\-memlimit\-mt\-decompress=\fP\fIобмеженнÑ\fP.
+.TP
+\fB\-\-no\-adjust\fP
+Показати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку Ñ– завершити роботу, Ñкщо не вдаÑÑ‚ÑŒÑÑ
+виконати умови щодо Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– без коригуваннÑ
+параметрів, Ñкі впливають на ÑтиÑнених виведених даних. Тобто це заборонÑÑ”
+\fBxz\fP перемикати кодувальник з багатопотокового режиму на однопотоковий
+режим Ñ– зменшувати розмір Ñловника LZMA2. Ðавіть Ñкщо викориÑтано цей
+параметр, кількіÑÑ‚ÑŒ потоків може бути зменшено Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð°
+викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–, оÑкільки це не вплине на результати ÑтиÑканнÑ.
+.IP ""
+Ðвтоматичне ÐºÐ¾Ñ€Ð¸Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð¶Ð´Ð¸ буде вимкнено при Ñтворенні потоків
+необроблених даних (\fB\-\-format=raw\fP).
+.TP
+\fB\-T\fP \fIпотоки\fP, \fB\-\-threads=\fP\fIпотоки\fP
+Вказати кількіÑÑ‚ÑŒ потоків обробки, Ñкими Ñлід ÑкориÑтатиÑÑ. Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ
+аргументу \fIпотоки\fP оÑобливого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fB0\fP наказує \fBxz\fP викориÑтати не
+більше потоків обробки, ніж передбачено підтримку у процеÑорах
+ÑиÑтеми. Ð¡Ð¿Ñ€Ð°Ð²Ð¶Ð½Ñ ÐºÑ–Ð»ÑŒÐºÑ–ÑÑ‚ÑŒ потоків може бути меншою за Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIпотоки\fP,
+Ñкщо файл вхідних даних не Ñ” доÑтатньо великим Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ–Ð»Ñƒ на потоки обробки
+при заданих параметрах або Ñкщо викориÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ñ… потоків призведе до
+Ð¿ÐµÑ€ÐµÐ²Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–.
+.IP ""
+ЗаÑоби ÑтиÑÐºÐ°Ð½Ð½Ñ Ð² однопотоковому та багатопотоковому режимі дають різні
+результати. Однопотоковий заÑіб ÑтиÑÐºÐ°Ð½Ð½Ñ Ð´Ð°ÑÑ‚ÑŒ найменший розмір файла, але
+лише результати роботи багатопотокового заÑобу ÑтиÑÐºÐ°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ бути
+розпаковано з викориÑтаннÑм декількох потоків. Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñƒ
+\fIпотоки\fP Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fB1\fP призведе до викориÑÑ‚Ð°Ð½Ð½Ñ Ð¾Ð´Ð½Ð¾Ð¿Ð¾Ñ‚Ð¾ÐºÐ¾Ð²Ð¾Ð³Ð¾
+режиму. Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñƒ \fIпотоки\fP будь\-Ñкого іншого значеннÑ,
+включно з \fB0\fP, призведе до викориÑÑ‚Ð°Ð½Ð½Ñ Ð±Ð°Ð³Ð°Ñ‚Ð¾Ð¿Ð¾Ñ‚Ð¾ÐºÐ¾Ð²Ð¾Ð³Ð¾ заÑобу ÑтиÑканнÑ,
+навіть Ñкщо у ÑиÑтемі передбачено підтримки лише одного апаратного потоку
+обробки даних. (ВерÑÑ–Ñ \fBxz\fP 5.2.x у цьому випадку викориÑтовувала
+однопотоковий режим.)
+.IP ""
+Щоб ÑкориÑтатиÑÑ Ð±Ð°Ð³Ð°Ñ‚Ð¾Ð¿Ð¾Ñ‚Ð¾ÐºÐ¾Ð²Ð¸Ð¼ режимом із лише одним потоком обробки,
+вÑтановіть Ð´Ð»Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñƒ \fIпотоки\fP Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fB+1\fP. ÐŸÑ€ÐµÑ„Ñ–ÐºÑ \fB+\fP не впливає
+на значеннÑ, окрім \fB1\fP. ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– можуть перемкнути
+\fBxz\fP в однопотоковий режим, Ñкщо не викориÑтано параметр
+\fB\-\-no\-adjust\fP. Підтримку \fB+\fP prefix було додано у верÑÑ–Ñ— \fBxz\fP 5.4.0.
+.IP ""
+Якщо було вказано автоматичне Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÑ–Ð»ÑŒÐºÐ¾ÑÑ‚Ñ– потоків Ñ– не вказано
+Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–, буде викориÑтано Ñпецифічне Ð´Ð»Ñ ÑиÑтеми
+типове м'Ñке Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾Ð³Ð¾ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ ÐºÑ–Ð»ÑŒÐºÐ¾ÑÑ‚Ñ– потоків обробки. Це
+Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ” м'Ñким у ÑенÑÑ– того, що його буде проігноровано, Ñкщо кількіÑÑ‚ÑŒ
+потоків зрівнÑєтьÑÑ Ð· одиницею, а отже, м'Ñке Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ñ–ÐºÐ¾Ð»Ð¸ не
+запобігатиму у \fBxz\fP ÑтиÑканню або розпаковуванню. Це типове м'Ñке обмеженнÑ
+не перемкне \fBxz\fP з багатопотокового режиму на однопотоковий режим. Ðктивні
+Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° переглÑнути за допомогою команди \fBxz \-\-info\-memory\fP.
+.IP ""
+У поточній верÑÑ–Ñ— єдиним ÑпоÑобом поділу на потоки обробки Ñ” поділ вхідних
+даних на блоки Ñ– ÑтиÑÐºÐ°Ð½Ð½Ñ Ñ†Ð¸Ñ… блоків незалежно один від одного. Типовий
+розмір блоку залежить від Ñ€Ñ–Ð²Ð½Ñ ÑтиÑканнÑ. Його може бути перевизначено за
+допомогою параметра \fB\-\-block\-size=\fP\fIрозмір\fP.
+.IP ""
+Ð Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð· потоками обробки працює лише Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð², Ñкі міÑÑ‚ÑÑ‚ÑŒ декілька
+блоків із даними щодо розміру у заголовках блоків. Цю умову задовольнÑÑŽÑ‚ÑŒ
+уÑÑ– доÑтатньо великі файли, Ñкі ÑтиÑнено у багатопотоковому режимі, але не
+задовольнÑÑŽÑ‚ÑŒ будь\-Ñкі файли, Ñкі було ÑтиÑнуто у однопотоковому режимі,
+навіть Ñкщо було викориÑтано параметр \fB\-\-block\-size=\fP\fIрозмір\fP.
+.IP ""
+Типовим значеннÑм Ð´Ð»Ñ \fIпотоків\fP Ñ” \fB0\fP. У \fBxz\fP 5.4.x та Ñтаріших верÑÑ–ÑÑ…
+типовим значеннÑм Ñ” \fB1\fP.
+.
+.SS "Ðетипові ланцюжки фільтрів заÑобу ÑтиÑканнÑ"
+Ðетиповий ланцюжок Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð»ÑŽÑ” докладне Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð²
+ÑтиÑÐºÐ°Ð½Ð½Ñ Ð·Ð°Ð¼Ñ–ÑÑ‚ÑŒ викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð², Ñкі пов'Ñзано із наперед
+визначеними рівнÑми ÑтиÑканнÑ. Якщо вказано нетиповий ланцюжок фільтрів,
+параметри рівнів ÑтиÑÐºÐ°Ð½Ð½Ñ (\fB\-0\fP \&...\& \fB\-9\fP Ñ– \fB\-\-extreme\fP), Ñкі
+передують їм у Ñ€Ñдку команди, буде знехтувано. Якщо параметр Ñ€Ñ–Ð²Ð½Ñ ÑтиÑканнÑ
+вказано піÑÐ»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ або декількох параметрів нетипового ланцюжка фільтрів,
+буде викориÑтано рівень ÑтиÑканнÑ, а попередніми параметрами ланцюжка
+Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ знехтувано.
+.PP
+Ланцюжок фільтрів можна порівнÑти із конвеєром у командному Ñ€Ñдку. При
+ÑтиÑканні неÑтиÑнені вхідні дані потраплÑÑŽÑ‚ÑŒ до першого фільтра, виведені
+ним дані йдуть до наÑтупного фільтра (Ñкщо такий Ñ”). Виведені оÑтаннім
+фільтром дані буде запиÑано до ÑтиÑненого файла. МакÑимальна кількіÑÑ‚ÑŒ
+фільтрів у ланцюжку дорівнює чотирьом, але у типовому ланцюжку фільтрів
+викориÑтовують один або два фільтри.
+.PP
+У багатьох фільтрів Ñ” Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° міÑце Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ ланцюжку фільтрів:
+деÑкі фільтри можуть працювати, лише Ñкщо вони Ñ” оÑтанніми у ланцюжку,
+деÑкі, лише Ñкщо не оÑтанніми, а деÑкі працюють у будь\-Ñкій позиції
+ланцюжка. Залежно від фільтра, це Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ” наÑлідком Ñтруктури фільтра
+або Ñ–Ñнує Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð±Ñ–Ð³Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼ із захиÑтом.
+.PP
+Ðетиповий ланцюжок фільтрів можна вказати двома різними ÑпоÑобами. Параметри
+\fB\-\-filters=\fP\fIфільтри\fP і \fB\-\-filters1=\fP\fIфільтри\fP \&...\&
+\fB\-\-filters9=\fP\fIфільтри\fP надають змогу вказати цілий ланцюжок фільтрів в
+одному варіанті з викориÑтаннÑм ÑинтакÑиÑу Ñ€Ñдків фільтрів liblzma. Крім
+того, ланцюжок фільтрів можна вказати за допомогою одного або кількох
+окремих параметрів Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ тому порÑдку, в Ñкому Ñ—Ñ… Ñлід викориÑтати
+у ланцюжку фільтрів. Тобто порÑдок окремих параметрів фільтра Ñ” важливим!
+Під Ñ‡Ð°Ñ Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð½ÐµÐ¾Ð±Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¸Ñ… потоків (\fB\-\-format=raw\fP) ланцюжок фільтрів
+має бути вказано у тому ж порÑдку, що й під Ñ‡Ð°Ñ ÑтиÑненнÑ. Будь\-Ñкий окремий
+фільтр або параметри попереднього налаштуваннÑ, вказані перед параметром
+повного ланцюжка (\fB\-\-filters=\fP\fIфільтри\fP), буде відкинуто. Окремі фільтри,
+указані піÑÐ»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° повного ланцюжка, відновлÑÑ‚ÑŒ типовий ланцюжок
+фільтрів.
+.PP
+І параметр повного Ñ– параметр окремого фільтра приймають Ñпецифічні длÑ
+фільтрів \fIпараметри\fP у форматі ÑпиÑку значень, Ñкі відокремлено
+комами. Зайві коми у \fIпараметрах\fP буде проігноровано. У кожного параметра є
+типове значеннÑ, отже, вам Ñлід вказати Ñ‚Ñ– параметри, Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñких ви
+хочете змінити.
+.PP
+Щоб переглÑнути увеÑÑŒ ланцюжок фільтрів та \fIпараметри\fP, ÑкориÑтайтеÑÑ
+командою \fBxz \-vv\fP (тобто, ÑкориÑтайтеÑÑ \fB\-\-verbose\fP двічі). Це працює
+також Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду параметрів ланцюжка фільтрів, Ñкий викориÑтано у рівнÑÑ…
+ÑтиÑканнÑ.
+.TP
+\fB\-\-filters=\fP\fIфільтри\fP
+Визначає повний ланцюжок фільтрів або шаблон у форматі одного
+параметра. Кожен фільтр можна відокремити від інших пробілами або двома
+дефіÑами (\fB\-\-\fP). Можливо, \fIфільтри\fP доведетьÑÑ Ð²Ð·Ñти в лапки в командному
+Ñ€Ñдку оболонки, щоб Ñ—Ñ… було оброблено Ñк один параметр. Ð”Ð»Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ
+\fIпараметрів\fP ÑкориÑтайтеÑÑ \fB:\fP або \fB=\fP. До шаблона можна додати префікÑ
+\fB\-\fP Ñ– завершити без прапорців або декількома прапорцÑми. Єдиним
+підтримуваним прапорцем Ñ” \fBe\fP Ð´Ð»Ñ Ð·Ð°ÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¸Ñ… Ñамих параметрів, що й
+\fB\-\-extreme\fP.
+.TP
+\fB\-\-filters1\fP=\fIфільтри\fP ... \fB\-\-filters9\fP=\fIфільтри\fP
+Вказати до дев'Ñти додаткових ланцюжків фільтрів, Ñкими можна ÑкориÑтатиÑÑ
+за допомогою \fB\-\-block\-list\fP.
+.IP ""
+Ðаприклад, Ñкщо виконуєтьÑÑ ÑтиÑÐºÐ°Ð½Ð½Ñ Ð°Ñ€Ñ…Ñ–Ð²Ñƒ із виконуваними файлами, за
+Ñкими йдуть текÑтові файли, Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ñ— чаÑтини може бути викориÑтано
+ланцюжок фільтрів з фільтром BCJ, а Ð´Ð»Ñ Ñ‚ÐµÐºÑтової чаÑтини — лише фільтр
+LZMA2.
+.TP
+\fB\-\-filters\-help\fP
+ВивеÑти довідкове Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð· опиÑом того, Ñк вказати шаблони та нетипові
+ланцюжки фільтрів у параметри \fB\-\-filters\fP і \fB\-\-filters1=\fP\fIфільтри\fP
+\&...\& \fB\-\-filters9=\fP\fIфільтри\fP Ñ– завершити роботу із кодом уÑпіху.
+.TP
+\fB\-\-lzma1\fP[\fB=\fP\fIпараметри\fP]
+.PD 0
+.TP
+\fB\-\-lzma2\fP[\fB=\fP\fIпараметри\fP]
+.PD
+Додати фільтр LZMA1 або LZMA2 до ланцюжка фільтрів. Ці фільтри може бути
+викориÑтано лише Ñк оÑтанній фільтр у ланцюжку.
+.IP ""
+LZMA1 Ñ” заÑтарілим фільтром, підтримку Ñкого збережено майже лише через
+викориÑÑ‚Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñƒ файлів \fB.lzma\fP, у Ñких передбачено підтримку лише
+LZMA1. LZMA2 Ñ” оновленою верÑією LZMA1, у Ñкій виправлено деÑкі практичні
+вади LZMA1. У форматі \fB.xz\fP викориÑтано LZMA2 Ñ– взагалі не передбачено
+підтримки LZMA1. ШвидкіÑÑ‚ÑŒ ÑтиÑÐºÐ°Ð½Ð½Ñ Ñ‚Ð° коефіцієнт ÑтиÑÐºÐ°Ð½Ð½Ñ Ð´Ð»Ñ LZMA1 Ñ–
+LZMA2 є практично однаковими.
+.IP ""
+LZMA1 Ñ– LZMA2 Ñпільно викориÑтовують той Ñамий набір \fIпараметрів\fP:
+.RS
+.TP
+\fBpreset=\fP\fIшаблон\fP
+Скинути уÑÑ– \fIпараметри\fP LZMA1 або LZMA2 до параметрів \fIшаблона\fP. Ðргумент
+\fIшаблон\fP ÑкладаєтьÑÑ Ð· цілого чиÑла, піÑÐ»Ñ Ñкого може бути однолітерний
+модифікатор шаблона. Ціле чиÑло може належати лише діапазону від \fB0\fP до
+\fB9\fP, що відповідає параметрам командного Ñ€Ñдка \fB\-0\fP \&...\& \fB\-9\fP. Єдиним
+підтримуваним модифікатором у поточній верÑÑ–Ñ— Ñ” \fBe\fP, щоб відповідає
+параметру \fB\-\-extreme\fP. Якщо аргумент \fBшаблон\fP не вказано, типові значеннÑ
+\fIпараметрів\fP LZMA1 або LZMA2 буде взÑто із шаблона \fB6\fP.
+.TP
+\fBdict=\fP\fIрозмір\fP
+Параметр \fIрозміру\fP Ñловника (буфера журналу) визначає, Ñкільки байтів
+нещодавно оброблених неÑтиÑнених даних Ñлід зберігати у пам'ÑÑ‚Ñ–. Ðлгоритм
+намагаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ повторювані поÑлідовноÑÑ‚Ñ– байтів (відповідники) у
+неÑтиÑнених даних Ñ– замінити Ñ—Ñ… на поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° дані зі Ñловника. Чим
+більшим Ñ” Ñловник, тим вищою Ñ” ймовірніÑÑ‚ÑŒ відшукати відповідник. Отже,
+Ð·Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ \fIрозміру\fP Ñловника, зазвичай, покращує коефіцієнт ÑтиÑканнÑ, але
+викориÑÑ‚Ð°Ð½Ð½Ñ Ñловника, розмір Ñкого перевищу Ñ” розмір неÑтиÑненого файла Ñ”
+проÑтоюю витратою пам'ÑÑ‚Ñ–.
+.IP ""
+\fIРозмір\fP типового Ñловника Ñкладає від 64\ КіБ до 64\ МіБ. Мінімальним Ñ”
+розмір 4\ КіБ. МакÑимальним розміром Ð´Ð»Ñ ÑтиÑÐºÐ°Ð½Ð½Ñ Ñƒ поточній верÑÑ–Ñ— 1.5\ ГіБ (1536\ МіБ). У заÑобі Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¶Ðµ передбачено підтримку Ñловників
+на один байт менших за 4\ ГіБ, що Ñ” макÑимальним значеннÑм Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–Ð²
+потоків даних LZMA1 і LZMA2.
+.IP ""
+Ðргумент \fIрозміру\fP Ñловника Ñ– заÑіб пошуку відповідників (\fImf\fP) разом
+визначають параметри викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– Ð´Ð»Ñ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ° LZMA1 або
+LZMA2. Ð”Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±ÐµÐ½ такий Ñамий (або більший) \fIрозмір\fP
+Ñловника, що Ñ– Ð´Ð»Ñ ÑтиÑканнÑ, отже, викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– Ð´Ð»Ñ Ð·Ð°Ñобу
+Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ визначено за розміром Ñловника, Ñкий було викориÑтано
+Ð´Ð»Ñ ÑтиÑканнÑ. У заголовках \fB.xz\fP зберігаєтьÑÑ \fIрозмір\fP Ñловника або Ñк
+2^\fIn\fP, або Ñк 2^\fIn\fP + 2^(\fIn\fP\-1), отже, ці \fIрозміри\fP Ñ” дещо пріоритетними
+Ð´Ð»Ñ ÑтиÑканнÑ. Інші \fIрозміри\fP буде отримано округленнÑм при зберіганні у
+заголовках \fB.xz\fP.
+.TP
+\fBlc=\fP\fIlc\fP
+Визначає кількіÑÑ‚ÑŒ буквальних контекÑтних бітів. Мінімальною кількіÑÑ‚ÑŽ Ñ” 0,
+а макÑимальною — 4. Типовою кількіÑÑ‚ÑŽ Ñ” 3. Крім того, Ñума \fIlc\fP Ñ– \fIlp\fP має
+не перевищувати 4.
+.IP ""
+УÑÑ– байти, Ñкі не може бути закодовано Ñк відповідноÑÑ‚Ñ–, буде закодовано Ñк
+літерали. Тобто літерали Ñ” проÑто 8\-бітовими байтами, Ñкі буде закодовано по
+одному за раз.
+.IP ""
+При кодуванні літералів роблÑÑ‚ÑŒ припущеннÑ, що найвищі біти \fIlc\fP
+попереднього неÑтиÑненого байта корелюють із наÑтупним байтом. Ðаприклад, у
+типовому текÑÑ‚Ñ– англійÑькою за літерою у верхньому регіÑтрі йде літера у
+нижньому регіÑтрі, а за літерою у нижньому регіÑтрі, зазвичай, йде інша
+літера у нижньому регіÑтрі. У наборі Ñимволів US\-ASCII найвищими трьома
+бітами Ñ” 010 Ð´Ð»Ñ Ð»Ñ–Ñ‚ÐµÑ€ верхнього регіÑтру Ñ– 011 Ð´Ð»Ñ Ð»Ñ–Ñ‚ÐµÑ€ нижнього
+регіÑтру. Якщо \fIlc\fP дорівнює принаймні 3, при кодуванні літералів можна
+отримати перевагу вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ†Ñ–Ñ”Ñ— влаÑтивоÑÑ‚Ñ– Ð´Ð»Ñ Ð½ÐµÑтиÑнених даних.
+.IP ""
+Зазвичай, типового Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (3) доÑтатньо. Якщо вам потрібне макÑимальне
+ÑтиÑканнÑ, Ñпробуйте \fBlc=4\fP. Іноді це трохи допомагає, а іноді, робить
+ÑтиÑÐºÐ°Ð½Ð½Ñ Ð³Ñ–Ñ€ÑˆÐ¸Ð¼. Якщо ÑтиÑÐºÐ°Ð½Ð½Ñ Ñтане гіршим, Ñпробуйте також \fBlc=2\fP.
+.TP
+\fBlp=\fP\fIlp\fP
+Визначає кількіÑÑ‚ÑŒ буквальних позиційних бітів. Мінімальною кількіÑÑ‚ÑŽ Ñ” 0, а
+макÑимальною — 4. Типовою кількіÑÑ‚ÑŽ Ñ” 0.
+.IP ""
+\fILp\fP впливає на те, Ñке Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñƒ неÑтиÑнених даних Ñлід припуÑкати
+при кодуванні літералів. Див. \fIpb\fP нижче, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про
+вирівнюваннÑ.
+.TP
+\fBpb=\fP\fIpb\fP
+Визначає кількіÑÑ‚ÑŒ позиційних бітів. Мінімальною кількіÑÑ‚ÑŽ Ñ” 0, а
+макÑимальною — 4. Типовою кількіÑÑ‚ÑŽ Ñ” 2.
+.IP ""
+\fIPb\fP впливає на те, Ñкий тип Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð³Ð°Ð»Ð¾Ð¼ припуÑкатиметьÑÑ Ð´Ð»Ñ
+неÑтиÑнених даних. Типовим Ñ” чотирибайтове Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ (2^\fIpb\fP=2^2=4),
+Ñке, зазвичай, Ñ” добрим варіантом, Ñкщо немає кращих припущень.
+.IP ""
+Якщо Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ” відомим, вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¸Ð¼ чином \fIpb\fP може трохи
+зменшити розмір файла. Ðаприклад, у текÑтових файлах із однобайтовим
+вирівнюваннÑм (US\-ASCII, ISO\-8859\-*, UTF\-8), вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fBpb=0\fP
+може трохи поліпшити ÑтиÑканнÑ. Ð”Ð»Ñ Ñ‚ÐµÐºÑту UTF\-16 добрим варіантом Ñ”
+\fBpb=1\fP. Якщо Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ” непарним чиÑлом, наприклад 3 байти, найкращим
+вибором, ймовірно, є \fBpb=0\fP.
+.IP ""
+Хоча прогнозоване Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° Ñкоригувати за допомогою \fIpb\fP Ñ– \fIlp\fP,
+у LZMA1 Ñ– LZMA2 дещо пріоритетним Ñ” 16\-байтове вирівнюваннÑ. Це, ймовірно,
+Ñлід враховувати при компонуванні форматів файлів, Ñкі, ймовірно, чаÑто
+будуть ÑтиÑкатиÑÑ Ð· викориÑтаннÑм LZMA1 або LZMA2.
+.TP
+\fBmf=\fP\fImf\fP
+ЗаÑіб пошуку відповідників має значний вплив на швидкіÑÑ‚ÑŒ, викориÑтаннÑ
+пам'ÑÑ‚Ñ– та коефіцієнт ÑтиÑÐºÐ°Ð½Ð½Ñ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¸ÐºÐ°. Зазвичай, заÑоби пошуку
+відповідників на оÑнові ланцюжка хешів Ñ” швидшими за заÑоби пошуку
+відповідників на оÑнові двійкового дерева. Типовий заÑіб залежить від
+\fIшаблона\fP: Ð´Ð»Ñ 0 викориÑтовують \fBhc3\fP, Ð´Ð»Ñ 1\(en3 — \fBhc4\fP, а Ð´Ð»Ñ Ñ€ÐµÑˆÑ‚Ð¸
+викориÑтовують \fBbt4\fP.
+.IP ""
+Передбачено підтримку вказаних нижче заÑобів пошуку відповідників. Ðаведені
+нижче формули обчиÑÐ»ÐµÐ½Ð½Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– Ñ” грубими наближеннÑми, Ñкі Ñ”
+найближчими до реальних значень, Ñкщо значеннÑм \fIÑловник\fP Ñ” Ñтепінь двійки.
+.RS
+.TP
+\fBhc3\fP
+Ланцюжок хешів із 2\- та 3\-байтовим хешуваннÑм
+.br
+Мінімальне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIпріоритетноÑÑ‚Ñ–\fP: 3
+.br
+ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–:
+.br
+\fIdict\fP * 7.5 (Ñкщо \fIdict\fP <= 16 МіБ);
+.br
+\fIdict\fP * 5.5 + 64 МіБ (Ñкщо \fIdict\fP > 16 МіБ)
+.TP
+\fBhc4\fP
+Ланцюжок хешів із 2\-, 3\- та 4\-байтовим хешуваннÑм
+.br
+Мінімальне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIпріоритетноÑÑ‚Ñ–\fP: 4
+.br
+ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–:
+.br
+\fIdict\fP * 7.5 (Ñкщо \fIdict\fP <= 32 МіБ);
+.br
+\fIdict\fP * 6.5 (Ñкщо \fIdict\fP > 32 МіБ)
+.TP
+\fBbt2\fP
+Двійкове дерево із 2\-байтовим хешуваннÑм
+.br
+Мінімальне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIпріоритетноÑÑ‚Ñ–\fP: 2
+.br
+ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–: \fIdict\fP * 9.5
+.TP
+\fBbt3\fP
+Двійкове дерево із 2\- Ñ– 3\-байтовим хешуваннÑм
+.br
+Мінімальне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIпріоритетноÑÑ‚Ñ–\fP: 3
+.br
+ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–:
+.br
+\fIdict\fP * 11.5 (Ñкщо \fIdict\fP <= 16 МіБ);
+.br
+\fIdict\fP * 9.5 + 64 МіБ (Ñкщо \fIdict\fP > 16 МіБ)
+.TP
+\fBbt4\fP
+Двійкове дерево із 2\-, 3\- Ñ– 4\-байтовим хешуваннÑм
+.br
+Мінімальне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIпріоритетноÑÑ‚Ñ–\fP: 4
+.br
+ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–:
+.br
+\fIdict\fP * 11.5 (Ñкщо \fIdict\fP <= 32 МіБ);
+.br
+\fIdict\fP * 10.5 (Ñкщо \fIdict\fP > 32 МіБ)
+.RE
+.TP
+\fBmode=\fP\fIрежим\fP
+Параметр \fIрежиму\fP ÑтиÑÐºÐ°Ð½Ð½Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°Ñ” ÑпоÑіб, Ñкий буде викориÑтано длÑ
+аналізу даних, Ñкі Ñтворено заÑобом пошуку відповідників. Підтримуваними
+\fIрежимами\fP є \fBfast\fP (швидкий) і \fBnormal\fP (нормальний). Типовим є режим
+\fBfast\fP Ð´Ð»Ñ \fIшаблонів\fP 0\(en3 Ñ– режим \fBnormal\fP Ð´Ð»Ñ \fIшаблонів\fP 4\(en9.
+.IP ""
+Зазвичай, із заÑобом пошуку відповідників на оÑнові ланцюжка хешів
+викориÑтовують \fBfast\fP, а із заÑобом пошуку відповідників на оÑнові
+двійкового дерева викориÑтовують \fBnormal\fP. Так Ñамо налаштовано Ñ–
+\fIшаблони\fP.
+.TP
+\fBnice=\fP\fIпріоритетніÑÑ‚ÑŒ\fP
+Вказати, Ñка довжина Ñ” пріоритетною Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾ÑÑ‚Ñ–. Щойно буде виÑвлено
+відповідніÑÑ‚ÑŒ у принаймні \fIпріоритетніÑÑ‚ÑŒ\fP байтів, алгоритм зупинÑтиме
+пошук можливих кращих відповідників.
+.IP ""
+\fIПріоритетніÑÑ‚ÑŽ\fP може бути чиÑло до 2\(en273 байтів. Вищі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð°ÑŽÑ‚ÑŒ
+кращий коефіцієнт ÑтиÑÐºÐ°Ð½Ð½Ñ Ð·Ð° рахунок швидкоÑÑ‚Ñ–. Типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ
+від \fIшаблона\fP.
+.TP
+\fBdepth=\fP\fIглибина\fP
+Вказати макÑимальну глибину пошуку у заÑобі пошуку відповідноÑÑ‚Ñ–. Типовим Ñ”
+оÑобливе Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ 0, Ñке наказує заÑобу ÑтиÑÐºÐ°Ð½Ð½Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ прийнÑтну
+\fIглибину\fP на оÑнові \fImf\fP Ñ– \fIпріоритетноÑÑ‚Ñ–\fP.
+.IP ""
+ПрийнÑтним значеннÑм \fIглибини\fP Ð´Ð»Ñ Ð»Ð°Ð½Ñ†ÑŽÐ¶ÐºÑ–Ð² хешів Ñ” 4\(en100 Ñ– 16\(en1000
+Ð´Ð»Ñ Ð´Ð²Ñ–Ð¹ÐºÐ¾Ð²Ð¸Ñ… дерев. ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð´ÑƒÐ¶Ðµ виÑоких значень Ð´Ð»Ñ \fIглибини\fP може
+зробити кодувальник дуже повільним Ð´Ð»Ñ Ð´ÐµÑких файлів. Ðе вÑтановлюйте
+Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIглибини\fP, що перевищує 1000, Ñкщо ви не готові перервати
+ÑтиÑканнÑ, Ñкщо воно триватиме надто довго.
+.RE
+.IP ""
+При декодуванні необроблених потоків даних (\fB\-\-format=raw\fP), LZMA2 потребує
+лише \fIрозміру\fP Ñловника. LZMA1 потребує також \fIlc\fP, \fIlp\fP Ñ– \fIpb\fP.
+.TP
+\fB\-\-x86\fP[\fB=\fP\fIпараметри\fP]
+.PD 0
+.TP
+\fB\-\-arm\fP[\fB=\fP\fIпараметри\fP]
+.TP
+\fB\-\-armthumb\fP[\fB=\fP\fIпараметри\fP]
+.TP
+\fB\-\-arm64\fP[\fB=\fP\fIпараметри\fP]
+.TP
+\fB\-\-powerpc\fP[\fB=\fP\fIпараметри\fP]
+.TP
+\fB\-\-ia64\fP[\fB=\fP\fIпараметри\fP]
+.TP
+\fB\-\-sparc\fP[\fB=\fP\fIпараметри\fP]
+.TP
+\fB\-\-riscv\fP[\fB=\fP\fIпараметри\fP]
+.PD
+Додати фільтр гілок/викликів/переходів (branch/call/jump або BCJ) до
+ланцюжка фільтрів. Цими фільтрами можна ÑкориÑтатиÑÑ, лише Ñкщо вони не Ñ”
+оÑтаннім фільтром у ланцюжку фільтрів.
+.IP ""
+Фільтр BCJ перетворює відноÑні адреÑи у машинному коді на їхні абÑолютні
+відповідники. Це не змінює розміру даних, але підвищує резервуваннÑ, що може
+допомогти LZMA2 Ñтворити файл \fB.xz\fP на 0\(en15\ % менше. Фільтри BCJ завжди
+Ñ” придатними до оберненнÑ, тому викориÑÑ‚Ð°Ð½Ð½Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ð° BCJ до помилкового типу
+даних не ÑпричинÑтиме втрати даних, хоча може дещо погіршити коефіцієнт
+ÑтиÑканнÑ. Фільтри BCJ Ñ” дуже швидкими Ñ– такими, що викориÑтовують незначний
+об'єм пам'ÑÑ‚Ñ–.
+.IP ""
+Ці фільтри BCJ мають відомі проблеми, Ñкі пов'Ñзано із рівнем ÑтиÑканнÑ:
+.RS
+.IP \(bu 3
+У деÑких типах файлів, де зберігаєтьÑÑ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹ код, (наприклад, в
+об'єктних файлах, Ñтатичних бібліотеках та модулÑÑ… Ñдра Linux) адреÑи в
+інÑтрукціÑÑ… заповнено значеннÑми заповнювача. Ці фільтри BCJ виконуватимуть
+Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð°Ð´Ñ€ÐµÑ, Ñке зробить ÑтиÑÐºÐ°Ð½Ð½Ñ Ð´Ð»Ñ Ñ†Ð¸Ñ… файлів гіршим.
+.IP \(bu 3
+Якщо фільтр BCJ заÑтоÑовано до архіву, може так ÑтатиÑÑ, що він погіршить
+коефіцієнт ÑтиÑÐºÐ°Ð½Ð½Ñ Ð¿Ð¾Ñ€Ñ–Ð²Ð½Ñно із варіантом без фільтра BCJ. Ðаприклад, Ñкщо
+Ñ” подібні або навіть однакові виконувані файли, фільтруваннÑ, ймовірно,
+зробить ці файли менш подібними, а отже, зробить ÑтиÑÐºÐ°Ð½Ð½Ñ Ð³Ñ–Ñ€ÑˆÐ¸Ð¼. ВміÑÑ‚
+файлів, Ñкі не Ñ” виконуваними, у тому Ñамому архіві також може вплинути на
+результат. Ðа практиці, варто Ñпробувати варіанти з фільтром BCJ Ñ– без
+нього, щоб визначитиÑÑ Ñ–Ð· тим, що буде кращим у кожній Ñитуації.
+.RE
+.IP ""
+Різні набори інÑтрукцій мають різне вирівнюваннÑ: виконуваний файл має бути
+вирівнÑно на кратне до цього Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ вхідних даних, щоб фільтр Ñпрацював.
+.RS
+.RS
+.PP
+.TS
+tab(;);
+l n l
+l n l.
+Фільтр;ВирівнюваннÑ;Ðотатки
+x86;1;32\-бітова або 64\-бітова x86
+ARM;4;
+ARM\-Thumb;2;
+ARM64;4;Ðайкращим Ñ” Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð·Ð°
+;;4096 байтами
+PowerPC;4;Лише зворотний порÑдок байтів
+IA\-64;16;Itanium
+SPARC;4;
+RISC\-V;2;
+.TE
+.RE
+.RE
+.IP ""
+ОÑкільки фільтровані BCJ дані, зазвичай, ÑтиÑкають за допомогою LZMA2,
+коефіцієнт ÑтиÑÐºÐ°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° трохи поліпшити, Ñкщо параметри LZMA2 буде
+вÑтановлено так, щоб вони відповідали вирівнюванню вибраного фільтра
+BCJ. Приклади:
+.RS
+.IP \(bu 3
+Фільтр IA\-64 має 16\-байтове вирівнюваннÑ, отже \fBpb=4,lp=4,lc=0\fP даÑÑ‚ÑŒ добрі
+результати у поєднанні із LZMA2 (2^4=16).
+.IP \(bu 3
+Код RISC\-V має 2\-байтове або 4\-байтове Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ від того, чи
+міÑтить файл 16\-бітові ÑтиÑлі інÑтрукції (Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ C). Якщо викориÑтано
+16\-бітові інÑтрукції, добрі результати даÑÑ‚ÑŒ \fBpb=2,lp=1,lc=3\fP або
+\fBpb=1,lp=1,lc=3\fP. Якщо 16\-бітових інÑтрукцій немає, найкращим варіантом Ñ”
+\fBpb=2,lp=2,lc=2\fP. Можна ÑкориÑтатиÑÑ \fBreadelf \-h\fP, щоб перевірити, чи Ñ”
+"RVC" у Ñ€Ñдку "Flags".
+.IP \(bu 3
+ARM64 завжди вирівнÑно на 4 байти, тому найкращим варіантом буде
+\fBpb=2,lp=2,lc=2\fP.
+.IP \(bu 3
+Фільтр x86 Ñ” виключеннÑм. Зазвичай, добрі результати дають типові Ð´Ð»Ñ LZMA2
+Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (\fBpb=2,lp=0,lc=3\fP), Ñкщо ÑтиÑкають виконувані файли x86.
+.RE
+.IP ""
+У вÑÑ–Ñ… фільтрах BCJ передбачено підтримку тих Ñамих \fIпараметрів\fP:
+.RS
+.TP
+\fBstart=\fP\fIзÑув\fP
+Ð’Ñтановити початковий \fIзÑув\fP, Ñкий буде викориÑтано при перетворенні між
+відноÑною та абÑолютною адреÑами. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIзÑув\fP має бути кратним до
+Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ð° (див. таблицю вище). Типовим зÑувом Ñ” нульовий. Ðа
+практиці, типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ” прийнÑтним; Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½ÐµÑ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð³Ð¾ значеннÑ
+\fIзÑув\fP майже завжди нічого кориÑного не дає.
+.RE
+.TP
+\fB\-\-delta\fP[\fB=\fP\fIпараметри\fP]
+Додати дельта\-фільтр до ланцюжка фільтрів. Дельта\-фільтр може бути
+викориÑтано, лише Ñкщо він не Ñ” оÑтаннім у ланцюжку фільтрів.
+.IP ""
+У поточній верÑÑ–Ñ— передбачено підтримку обчиÑÐ»ÐµÐ½Ð½Ñ Ð»Ð¸ÑˆÐµ проÑтої побітової
+дельти. Це може бути кориÑним при ÑтиÑканні, наприклад, неÑтиÑнутих
+раÑтрових зображень або неÑтиÑнутих звукових даних PCM. Втім, Ñпеціалізовані
+алгоритми можуть давати значно кращі результати за дельту + LZMA2. Це
+правило оÑобливо ÑтоÑуєтьÑÑ Ð·Ð²ÑƒÐºÐ¾Ð²Ð¸Ñ… даних, Ñкі ÑтиÑкає швидше Ñ– краще,
+наприклад, \fBflac\fP(1).
+.IP ""
+Підтримувані \fIпараметри\fP:
+.RS
+.TP
+\fBdist=\fP\fIвідÑтань\fP
+Вказати \fIвідÑтань\fP обчиÑлень різниці у байтах. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIвідÑтань\fP має
+потраплÑти у діапазон 1\(en256. Типовим значеннÑм Ñ” 1.
+.IP ""
+Ðаприклад, з \fBdist=2\fP та воÑьмибайтовими вхідними даними A1 B1 A2 B3 A3 B5
+A4 B7, результатом буде A1 B1 01 02 01 02 01 02.
+.RE
+.
+.SS "Інші параметри"
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Придушити Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð° ÑповіщеннÑ. Вкажіть цей параметр двічі, щоб
+придушити також Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилки. Цей параметр не впливає на Ñтан
+виходу з програми. Тобто, навіть Ñкщо було придушено попередженнÑ, Ñтан
+виходу вказуватиме на те, що Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¸.
+.TP
+\fB\-v\fP, \fB\-\-verbose\fP
+Докладний режим повідомлень. Якщо Ñтандартне Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº з'єднано із
+терміналом, \fBxz\fP показуватиме індикатор поÑтупу. ВикориÑÑ‚Ð°Ð½Ð½Ñ \fB\-\-verbose\fP
+двічі призведе до ще докладнішого виведеннÑ.
+.IP ""
+Індикатор поÑтупу показує такі дані:
+.RS
+.IP \(bu 3
+ЧаÑтку завершеноÑÑ‚Ñ– буде показано, Ñкщо відомий розмір файла вхідних
+даних. Тобто, Ð´Ð»Ñ ÐºÐ°Ð½Ð°Ð»Ñ–Ð² даних чаÑтку не може бути показано.
+.IP \(bu 3
+Об'єм ÑтиÑнених виведених даних (ÑтиÑканнÑ) або оброблених (розпаковуваннÑ).
+.IP \(bu 3
+Об'єм незапакованих даних (ÑтиÑканнÑ) або виведених даних (розпаковуваннÑ).
+.IP \(bu 3
+Коефіцієнт ÑтиÑканнÑ, Ñкий обчиÑлено діленнÑм об'єму оброблених ÑтиÑнутих
+даних на об'єм оброблених неÑтиÑнутих даних.
+.IP \(bu 3
+ШвидкіÑÑ‚ÑŒ ÑтиÑÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾ розпаковуваннÑ. ОбчиÑлюєтьÑÑ Ñк об'єм неÑтиÑнутих
+даних (ÑтиÑканнÑ) або виведених даних (розпаковуваннÑ) за Ñекунду. Його буде
+показано за декілька Ñекунд з моменту, коли \fBxz\fP почала оброблÑти файл.
+.IP \(bu 3
+Витрачений Ñ‡Ð°Ñ Ñƒ форматі Ð¥:СС або Г:ХХ:СС.
+.IP \(bu 3
+Оцінку чаÑу, що лишивÑÑ, буде показано, лише Ñкщо розмір файла вхідних даних
+Ñ” відомим, Ñ– минуло принаймні декілька Ñекунд з моменту, коли \fBxz\fP почала
+оброблÑти файл. Ð§Ð°Ñ Ð±ÑƒÐ´Ðµ показано у менш точному форматі, без двокрапок,
+наприклад, 2 хв. 30 Ñ.
+.RE
+.IP ""
+Якщо Ñтандартним виведеннÑм помилок не Ñ” термінал, \fB\-\-verbose\fP призведе до
+того, що \fBxz\fP виведе назву файла, ÑтиÑнений розмір, неÑтиÑнений розмір,
+коефіцієнт ÑтиÑÐºÐ°Ð½Ð½Ñ Ñ‚Ð°, можливо, також швидкіÑÑ‚ÑŒ та витрачений Ñ‡Ð°Ñ Ñƒ одному
+Ñ€Ñдку до Ñтандартного Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº піÑÐ»Ñ ÑтиÑÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾ розпаковуваннÑ
+файла. ШвидкіÑÑ‚ÑŒ та витрачений Ñ‡Ð°Ñ Ð±ÑƒÐ´Ðµ включено, лише Ñкщо Ð´Ñ–Ñ Ñ‚Ñ€Ð¸Ð²Ð°Ñ”
+принаймні декілька Ñекунд. Якщо дію не буде завершено, наприклад, через
+Ð²Ñ‚Ñ€ÑƒÑ‡Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача, буде також виведено чаÑтку виконаннÑ, Ñкщо відомий
+розмір файла вхідних даних.
+.TP
+\fB\-Q\fP, \fB\-\-no\-warn\fP
+Ðе вÑтановлювати Ñтан виходу 2, навіть Ñкщо було виÑвлено відповідніÑÑ‚ÑŒ
+умові, Ñка варта попередженнÑ. Цей параметр не впливає на рівень докладноÑÑ‚Ñ–
+повідомлень, отже, Ñлід викориÑтати \fB\-\-quiet\fP Ñ– \fB\-\-no\-warn\fP, щоб програма
+не показувала попереджень Ñ– не змінювала Ñтан виходу.
+.TP
+\fB\-\-robot\fP
+Виводити Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñƒ придатному Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ комп'ютером форматі. Цей
+формат призначено Ð´Ð»Ñ Ð¿Ð¾Ð»ÐµÐ³ÑˆÐµÐ½Ð½Ñ Ð½Ð°Ð¿Ð¸ÑÐ°Ð½Ð½Ñ Ð¾Ð±Ð¾Ð»Ð¾Ð½Ð¾Ðº, Ñкі викориÑтовуватимуть
+\fBxz\fP заміÑÑ‚ÑŒ liblzma, що може бути зручним Ð´Ð»Ñ Ñ€Ñ–Ð·Ð½Ð¾Ð¼Ð°Ð½Ñ–Ñ‚Ð½Ð¸Ñ…
+Ñкриптів. Виведені дані з цим параметром має бути Ñтабільним Ð´Ð»Ñ ÑƒÑÑ–Ñ…
+випуÑків \fBxz\fP. Докладніший Ð¾Ð¿Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð° знайти у розділі \fBРЕЖИМ РОБОТÐ\fP.
+.TP
+\fB\-\-info\-memory\fP
+ВивеÑти у придатному Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð»ÑŽÐ´Ð¸Ð½Ð¾ÑŽ форматі, Ñкільки фізичної пам'ÑÑ‚Ñ–
+(RAM) та Ñкільки потоків процеÑора Ñ” за даними \fBxz\fP у ÑиÑтемі, обмеженнÑ
+Ð´Ð»Ñ ÑтиÑÐºÐ°Ð½Ð½Ñ Ñ‚Ð° розпаковуваннÑ, а потім уÑпішно завершити роботу.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+ВивеÑти Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку з опиÑом найбільш типових викориÑтаних
+параметрів Ñ– уÑпішно завершити роботу.
+.TP
+\fB\-H\fP, \fB\-\-long\-help\fP
+ВивеÑти довідкове Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð· опиÑом уÑÑ–Ñ… можливоÑтей \fBxz\fP Ñ– уÑпішно
+завершити роботу
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+ВивеÑти номер верÑÑ–Ñ— \fBxz\fP та liblzma у зручному Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–. Щоб
+отримати дані, зручні Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ на комп'ютері, вкажіть \fB\-\-robot\fP до
+\fB\-\-version\fP.
+.
+.SH "РЕЖИМ РОБОТÐ"
+Режим робота активують за допомогою параметра \fB\-\-robot\fP. Він Ñпрощує
+обробку виведених \fBxz\fP даних іншими програмами. У поточній верÑÑ–Ñ— підтримку
+\fB\-\-robot\fP передбачено лише разом із \fB\-\-list\fP, \fB\-\-filters\-help\fP,
+\fB\-\-info\-memory\fP і \fB\-\-version\fP. У майбутньому підтримку параметра буде
+передбачено Ð´Ð»Ñ ÑтиÑÐºÐ°Ð½Ð½Ñ Ñ‚Ð° розпаковуваннÑ.
+.
+.SS "Режим ÑпиÑку"
+У \fBxz \-\-robot \-\-list\fP викориÑтано табулÑції Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ–Ð»Ñƒ виведених
+даних. Першим Ñтовпчиком у кожному Ñ€Ñдку Ñ” Ñ€Ñдок, що вказує на тип
+відомоÑтей, Ñкі можна знайти у цьому Ñ€Ñдку:
+.TP
+\fBназва\fP
+Це завжди перший Ñ€Ñдок на початку ÑпиÑку файла. Другим Ñтовпчиком у Ñ€Ñдку Ñ”
+назва файла.
+.TP
+\fBфайл\fP
+У цьому Ñ€Ñдку міÑÑ‚ÑÑ‚ÑŒÑÑ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ñ– відомоÑÑ‚Ñ– щодо файла \fB.xz\fP. Цей Ñ€Ñдок
+завжди виводÑÑ‚ÑŒ піÑÐ»Ñ Ñ€Ñдка \fBname\fP.
+.TP
+\fBstream\fP
+Цей тип Ñ€Ñдка викориÑтовують, лише Ñкщо було вказано \fB\-\-verbose\fP. Буде
+Ñтільки Ñ€Ñдків \fBstream\fP, Ñкільки потоків у файлі \fB.xz\fP.
+.TP
+\fBblock\fP
+Цей тип Ñ€Ñдка викориÑтовують, лише Ñкщо було вказано \fB\-\-verbose\fP. Буде
+Ñтільки Ñ€Ñдків \fBblock\fP, Ñкільки блоків у файлі \fB.xz\fP. РÑдки \fBblock\fP буде
+показано піÑÐ»Ñ ÑƒÑÑ–Ñ… Ñ€Ñдків \fBstream\fP; різні типи Ñ€Ñдків не перемежовуютьÑÑ.
+.TP
+\fBsummary\fP
+Цей тип Ñ€Ñдків викориÑтовують, лише Ñкщо \fB\-\-verbose\fP було вказано
+двічі. Цей Ñ€Ñдок буде виведено піÑÐ»Ñ ÑƒÑÑ–Ñ… Ñ€Ñдків \fBblock\fP. Подібно до Ñ€Ñдка
+\fBfile\fP, Ñ€Ñдок \fBsummary\fP міÑтить загальні відомоÑÑ‚Ñ– щодо файла \fB.xz\fP.
+.TP
+\fBtotals\fP
+Цей Ñ€Ñдок завжди Ñ” найоÑтаннішим Ñ€Ñдком у виведеному ÑпиÑку. У ньому буде
+показано загальні кількоÑÑ‚Ñ– та розміри.
+.PP
+Стовпчики у Ñ€Ñдках \fBфайла\fP:
+.PD 0
+.RS
+.IP 2. 4
+КількіÑÑ‚ÑŒ потоків у файлі
+.IP 3. 4
+Загальна кількіÑÑ‚ÑŒ блоків у потоках
+.IP 4. 4
+Розмір ÑтиÑненого файла
+.IP 5. 4
+Розмір неÑтиÑненого файла
+.IP 6. 4
+Коефіцієнт ÑтиÑканнÑ, наприклад, \fB0.123\fP. Якщо коефіцієнт перевищує 9.999,
+заміÑÑ‚ÑŒ коефіцієнта буде показано дефіÑи (\fB\-\-\-\fP).
+.IP 7. 4
+СпиÑок відокремлених комами назв перевірок ціліÑноÑÑ‚Ñ–. Ðаведені нижче Ñ€Ñдки
+викориÑтовують Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð¼Ð¸Ñ… типів перевірок: \fBNone\fP, \fBCRC32\fP, \fBCRC64\fP Ñ–
+\fBSHA\-256\fP. Ð”Ð»Ñ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¸Ñ… типів перевірок буде викориÑтано \fBUnknown\-\fP\fIN\fP,
+де \fIN\fP Ñ” ідентифікатором перевірки у форматі деÑÑткового чиÑла (одна або
+дві цифри).
+.IP 8. 4
+Загальний розмір Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ у файлі
+.RE
+.PD
+.PP
+Стовпчики у Ñ€Ñдках \fBstream\fP:
+.PD 0
+.RS
+.IP 2. 4
+Ðомер потоку (перший потік має номер 1)
+.IP 3. 4
+КількіÑÑ‚ÑŒ блоків у потоці
+.IP 4. 4
+ЗÑув початку ÑтиÑненого
+.IP 5. 4
+ЗÑув початку неÑтиÑненого
+.IP 6. 4
+СтиÑнений розмір (не включає Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ)
+.IP 7. 4
+ÐеÑтиÑнутий розмір
+.IP 8. 4
+Рівень ÑтиÑканнÑ
+.IP 9. 4
+Ðазва перевірки ціліÑноÑÑ‚Ñ–
+.IP 10. 4
+Розмір Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ
+.RE
+.PD
+.PP
+Стовпчики у Ñ€Ñдках \fBblock\fP:
+.PD 0
+.RS
+.IP 2. 4
+Ðомер потоку, що міÑтить цей блок
+.IP 3. 4
+Ðомер блоку відноÑно початку потоку (перший блок має номер 1)
+.IP 4. 4
+Ðомер блоку відноÑно початку файла
+.IP 5. 4
+ЗÑув початку ÑтиÑненого відноÑно початку файла
+.IP 6. 4
+ЗÑув початку неÑтиÑненого відноÑно початку файла
+.IP 7. 4
+Загальний ÑтиÑнений розмір блоку (включено з заголовками)
+.IP 8. 4
+ÐеÑтиÑнутий розмір
+.IP 9. 4
+Рівень ÑтиÑканнÑ
+.IP 10. 4
+Ðазва перевірки ціліÑноÑÑ‚Ñ–
+.RE
+.PD
+.PP
+Якщо \fB\-\-verbose\fP було вказано двічі, до Ñ€Ñдків \fBblock\fP буде включено
+додаткові Ñтовпчики. Ці Ñтовпчики не буде показано, Ñкщо вказано одинарний
+параметр \fB\-\-verbose\fP, оÑкільки Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ†Ð¸Ñ… відомоÑтей потребує багатьох
+позиціювань, а Ñ†Ñ Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð° може бути повільною:
+.PD 0
+.RS
+.IP 11. 4
+Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ ціліÑноÑÑ‚Ñ– у шіÑтнадцÑтковій формі
+.IP 12. 4
+Розмір заголовка блоку
+.IP 13. 4
+Прапорці блоку: \fBc\fP вказує, що наÑвний ÑтиÑнений розмір, а \fBu\fP вказує, що
+наÑвний неÑтиÑнений розмір. Якщо прапорець не вÑтановлено, буде показано
+(\fB\-\fP) заміÑÑ‚ÑŒ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ„Ñ–ÐºÑованого розміру Ñ€Ñдка. У майбутньому
+наприкінці Ñ€Ñдка може бути додано нові прапорці.
+.IP 14. 4
+Розмір Ñправжніх ÑтиÑнених даних у блоці (це включає заголовок блоку,
+Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð±Ð»Ð¾ÐºÑƒ та Ð¿Ð¾Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ð¾Ðº)
+.IP 15. 4
+Об'єм пам'ÑÑ‚Ñ– (у байтах), Ñкий потрібен Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ блоку за
+допомогою цієї верÑÑ–Ñ— \fBxz\fP
+.IP 16. 4
+Ланцюжок фільтрів. Зауважте, що більшіÑÑ‚ÑŒ параметрів, Ñкі викориÑтано під
+Ñ‡Ð°Ñ ÑтиÑканнÑ, не Ñ” наперед відомим, оÑкільки у заголовках \fB.xz\fP
+зберігаютьÑÑ Ð»Ð¸ÑˆÐµ параметри, Ñкі потрібні Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ.
+.RE
+.PD
+.PP
+Стовпчики у Ñ€Ñдках \fBsummary\fP:
+.PD 0
+.RS
+.IP 2. 4
+Об'єм пам'ÑÑ‚Ñ– (у байтах), Ñкий потрібен Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ файла за
+допомогою цієї верÑÑ–Ñ— \fBxz\fP
+.IP 3. 4
+\fByes\fP або \fBno\fP вказує, Ñкщо уÑÑ– заголовки блоків міÑÑ‚ÑÑ‚ÑŒ одразу ÑтиÑнений
+розмір та розпакований розмір
+.PP
+\fIПочинаючи з\fP \fBxz\fP \fI5.1.2alpha:\fP
+.IP 4. 4
+Мінімальна верÑÑ–Ñ \fBxz\fP, Ñка потрібна Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°
+.RE
+.PD
+.PP
+Стовпчики Ñ€Ñдка \fBtotals\fP:
+.PD 0
+.RS
+.IP 2. 4
+КількіÑÑ‚ÑŒ потоків
+.IP 3. 4
+КількіÑÑ‚ÑŒ блоків
+.IP 4. 4
+СтиÑнутий розмір
+.IP 5. 4
+ÐеÑтиÑнутий розмір
+.IP 6. 4
+Середній коефіцієнт ÑтиÑканнÑ
+.IP 7. 4
+СпиÑок відокремлених комами назв перевірок ціліÑноÑÑ‚Ñ–, результати Ñких
+наÑвні у файлах
+.IP 8. 4
+Розмір Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ
+.IP 9. 4
+КількіÑÑ‚ÑŒ файлів. ÐаÑвний тут Ð´Ð»Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ñ‚Ð°ÐºÐ¾Ð³Ð¾ Ñамого порÑдку
+Ñтовпчиків, що Ñ– у попередніх Ñ€Ñдках \fBfile\fP.
+.PD
+.RE
+.PP
+Якщо \fB\-\-verbose\fP було вказано двічі, до Ñ€Ñдка \fBtotals\fP буде включено
+додаткові Ñтовпчики:
+.PD 0
+.RS
+.IP 10. 4
+МакÑимальний об'єм пам'ÑÑ‚Ñ– (у байтах), Ñкий потрібен Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ
+файлів за допомогою цієї верÑÑ–Ñ— \fBxz\fP
+.IP 11. 4
+\fByes\fP або \fBno\fP вказує, Ñкщо уÑÑ– заголовки блоків міÑÑ‚ÑÑ‚ÑŒ одразу ÑтиÑнений
+розмір та розпакований розмір
+.PP
+\fIПочинаючи з\fP \fBxz\fP \fI5.1.2alpha:\fP
+.IP 12. 4
+Мінімальна верÑÑ–Ñ \fBxz\fP, Ñка потрібна Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°
+.RE
+.PD
+.PP
+У майбутніх верÑÑ–ÑÑ… може бути додано нові типи Ñ€Ñдків Ñ– нові Ñтовпчики до
+наÑвних типів Ñ€Ñдків, але наÑвні Ñтовпчики мають лишитиÑÑ Ð½ÐµÐ·Ð¼Ñ–Ð½Ð½Ð¸Ð¼Ð¸.
+.
+.SS "Довідка з фільтруваннÑ"
+\fBxz \-\-robot \-\-filters\-help\fP виведе ÑпиÑок підтримуваних фільтрів у такому
+форматі:
+.PP
+\fIфільтр\fP\fB:\fP\fIпараметр\fP\fB=<\fP\fIзначеннÑ\fP\fB>,\fP\fIпараметр\fP\fB=<\fP\fIзначеннÑ\fP\fB>\fP...
+.TP
+\fIфільтр\fP
+Ðазва фільтра
+.TP
+\fIпараметр\fP
+Ðазва Ñпецифічного Ð´Ð»Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ð° параметра
+.TP
+\fIзначеннÑ\fP
+ЧиÑлові діапазони \fIvalue\fP Ñлід вказати у форматі
+\fB<\fP\fIмінімум\fP\fB\-\fP\fIмакÑимум\fP\fB>\fP. Варіанти Ñ€Ñдка \fIзначеннÑ\fP
+показано у \fB< >\fP Ñ– відокремлено Ñимволом \fB|\fP.
+.PP
+Кожен фільтр буде виведено до окремого Ñ€Ñдка.
+.
+.SS "Дані щодо Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–"
+\fBxz \-\-robot \-\-info\-memory\fP виводить один Ñ€Ñдок з декількома відокремленими
+табулÑціÑми Ñтовпчиками:
+.IP 1. 4
+Загальний об'єм фізичної пам'ÑÑ‚Ñ– (RAM) у байтах.
+.IP 2. 4
+ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– Ð´Ð»Ñ ÑтиÑÐºÐ°Ð½Ð½Ñ Ñƒ байтах
+(\fB\-\-memlimit\-compress\fP). ОÑобливе Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fB0\fP вказує на типові
+налаштуваннÑ, Ñкими Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð¿Ð¾Ñ‚Ð¾ÐºÐ¾Ð²Ð¾Ð³Ð¾ режиму Ñ” Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÐµÐ· обмеженнÑ
+на викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–.
+.IP 3. 4
+ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ байтах
+(\fB\-\-memlimit\-decompress\fP). ОÑобливе Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fB0\fP вказує на типові
+налаштуваннÑ, Ñкими Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð¿Ð¾Ñ‚Ð¾ÐºÐ¾Ð²Ð¾Ð³Ð¾ режиму Ñ” Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÐµÐ· обмеженнÑ
+на викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–.
+.IP 4. 4
+Починаючи з \fBxz\fP 5.3.4alpha: викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– Ð´Ð»Ñ Ð±Ð°Ð³Ð°Ñ‚Ð¾Ð¿Ð¾Ñ‚Ð¾ÐºÐ¾Ð²Ð¾Ð³Ð¾
+Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ байтах (\fB\-\-memlimit\-mt\-decompress\fP). Ðіколи не дорівнює
+нулеві, оÑкільки буде викориÑтано Ñпецифічне Ð´Ð»Ñ ÑиÑтеми типове значеннÑ,
+Ñке показано у Ñтовпчику 5, Ñкщо Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ðµ вÑтановлено Ñвним чином. Також
+ніколи не перевищуватиме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ Ñтовпчику 3, навіть Ñкщо було вказано
+більше Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð° допомогою \fB\-\-memlimit\-mt\-decompress\fP.
+.IP 5. 4
+Починаючи з \fBxz\fP 5.3.4alpha: Ñпецифічне Ð´Ð»Ñ ÑиÑтеми типове Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð°
+викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–, Ñке викориÑтовують Ð´Ð»Ñ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ ÐºÑ–Ð»ÑŒÐºÐ¾ÑÑ‚Ñ– потоків при
+ÑтиÑканні з автоматичною кількіÑÑ‚ÑŽ потоків (\fB\-\-threads=0\fP) Ñ– без визначеннÑ
+Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– (\fB\-\-memlimit\-compress\fP). Це значеннÑ
+також викориÑтовують Ñк типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ \fB\-\-memlimit\-mt\-decompress\fP.
+.IP 6. 4
+Починаючи з \fBxz\fP 5.3.4alpha: кількіÑÑ‚ÑŒ доÑтупних потоків обробки процеÑора.
+.PP
+У майбутньому у виведенні \fBxz \-\-robot \-\-info\-memory\fP може бути більше
+Ñтовпчиків, але у виведеному буде не більше за один Ñ€Ñдок.
+.
+.SS ВерÑÑ–Ñ
+\fBxz \-\-robot \-\-version\fP виведе назву верÑÑ–Ñ— \fBxz\fP Ñ– liblzma у такому
+форматі:
+.PP
+\fBXZ_VERSION=\fP\fIXYYYZZZS\fP
+.br
+\fBLIBLZMA_VERSION=\fP\fIXYYYZZZS\fP
+.TP
+\fIX\fP
+ОÑновна верÑÑ–Ñ.
+.TP
+\fIYYY\fP
+Проміжна верÑÑ–Ñ. Ðепарні номери буде викориÑтано Ð´Ð»Ñ Ñтабільних
+верÑій. Ðепарні номери Ñ” номерами теÑтових верÑій.
+.TP
+\fIZZZ\fP
+Рівень Ð»Ð°Ñ‚Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñтабільних випуÑків або проÑто лічильник Ð´Ð»Ñ Ð²Ð¸Ð¿ÑƒÑків,
+Ñкі перебувають у розробці.
+.TP
+\fIS\fP
+СтабільніÑÑ‚ÑŒ. 0 — alpha, 1 — beta, а 2 означає «Ñтабільна верÑÑ–Ñ». \fIS\fP має
+завжди дорівнювати 2, Ñкщо \fIYYY\fP Ñ” парним.
+.PP
+\fIXYYYZZZS\fP Ñ” тим Ñамим в обох Ñ€Ñдках, Ñкщо \fBxz\fP Ñ– liblzma належать до
+одного випуÑку XZ Utils.
+.PP
+Приклади: 4.999.9beta — це \fB49990091\fP, а 5.0.0 — це \fB50000002\fP.
+.
+.SH "СТÐРВИХОДУ"
+.TP
+\fB0\fP
+УÑе добре.
+.TP
+\fB1\fP
+СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°.
+.TP
+\fB2\fP
+СталоÑÑ Ñ‰Ð¾ÑÑŒ варте попередженнÑ, але Ñправжніх помилок не ÑталоÑÑ.
+.PP
+Ð—Ð°ÑƒÐ²Ð°Ð¶ÐµÐ½Ð½Ñ (не Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ помилки), Ñкі виведено до Ñтандартного
+Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº, не впливають на Ñтан виходу.
+.
+.SH СЕРЕДОВИЩЕ
+\fBxz\fP оброблÑÑ” ÑпиÑки відокремлених пробілами параметрів зі змінних
+Ñередовища \fBXZ_DEFAULTS\fP Ñ– \fBXZ_OPT\fP, перш ніж оброблÑти параметри з Ñ€Ñдка
+команди. Зауважте, що буде оброблено лише параметри зі змінних Ñередовища;
+уÑÑ– непараметричні запиÑи буде без повідомлень проігноровано. Обробку буде
+виконано за допомогою функції \fBgetopt_long\fP(3), Ñку також викориÑтовують
+Ð´Ð»Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² Ñ€Ñдка команди.
+.TP
+\fBXZ_DEFAULTS\fP
+Специфічні Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача або загальноÑиÑтемні типові параметри. Зазвичай,
+Ñ—Ñ… вÑтановлюють у Ñкрипті ініціалізації оболонки Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð³Ð¾ вмиканнÑ
+Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– у \fBxz\fP. Окрім Ñкриптів ініціалізації
+оболонки Ñ– подібних оÑобливих випадків, не Ñлід вÑтановлювати або
+ÑкаÑовувати вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fBXZ_DEFAULTS\fP у Ñкриптах.
+.TP
+\fBXZ_OPT\fP
+Цю змінну призначено Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² до \fBxz\fP, Ñкщо неможливо
+вÑтановити параметри безпоÑередньо у Ñ€Ñдку команди \fBxz\fP. Це траплÑєтьÑÑ,
+Ñкщо \fBxz\fP запущено Ñкриптом або інÑтрументом, наприклад, GNU \fBtar\fP(1):
+.RS
+.RS
+.PP
+.nf
+\f(CWXZ_OPT=\-2v tar caf foo.tar.xz foo\fP
+.fi
+.RE
+.RE
+.IP ""
+Скрипти можуть викориÑтовувати \fBXZ_OPT\fP, наприклад, Ð´Ð»Ñ Ð²ÑтановленнÑ
+Ñпецифічних типових параметрів ÑтиÑканнÑ. Втім, рекомендуємо дозволити
+кориÑтувачам перевизначати \fBXZ_OPT\fP, Ñкщо це має ÑкіÑÑŒ причини. Ðаприклад,
+у Ñкриптах \fBsh\fP(1) можна ÑкориÑтатиÑÑ Ñ‡Ð¸Ð¼Ð¾ÑÑŒ таким:
+.RS
+.RS
+.PP
+.nf
+\f(CWXZ_OPT=${XZ_OPT\-"\-7e"} export XZ_OPT\fP
+.fi
+.RE
+.RE
+.
+.SH "СУМІСÐІСТЬ ІЗ LZMA UTILS"
+СинтакÑÐ¸Ñ Ñ€Ñдка команди \fBxz\fP практично Ñ” надбудовою щодо \fBlzma\fP, \fBunlzma\fP
+Ñ– \fBlzcat\fP з LZMA Utils 4.32.x. У більшоÑÑ‚Ñ– випадків можна замінити LZMA
+Utils XZ Utils без Ð¿Ð¾Ñ€ÑƒÑˆÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ñ†ÐµÐ·Ð´Ð°Ñ‚Ð½Ð¾ÑÑ‚Ñ– наÑвних Ñкриптів. Втім, Ñ–Ñнують
+певні неÑуміÑноÑÑ‚Ñ–, Ñкі іноді можуть ÑпричинÑти проблеми.
+.
+.SS "Рівні шаблонів ÑтиÑканнÑ"
+ÐÑƒÐ¼ÐµÑ€Ð°Ñ†Ñ–Ñ Ñƒ шаблонах рівнів ÑтиÑÐºÐ°Ð½Ð½Ñ Ñƒ \fBxz\fP не Ñ” тотожною до нумерації у
+LZMA Utils. Ðайважливішою відмінніÑÑ‚ÑŽ Ñ” прив'Ñзка розмірів Ñловника до
+різних шаблонів. Розмір Ñловника грубо рівний викориÑтанню пам'ÑÑ‚Ñ– у заÑобі
+розпаковуваннÑ.
+.RS
+.PP
+.TS
+tab(;);
+c c c
+c n n.
+Рівень;xz;LZMA Utils
+\-0;256 КіБ;н/д
+\-1;1 МіБ;64 КіБ
+\-2;2 МіБ;1 МіБ
+\-3;4 МіБ;512 КіБ
+\-4;4 МіБ;1 МіБ
+\-5;8 МіБ;2 МіБ
+\-6;8 МіБ;4 МіБ
+\-7;16 МіБ;8 МіБ
+\-8;32 МіБ;16 МіБ
+\-9;64 МіБ;32 МіБ
+.TE
+.RE
+.PP
+ВідмінноÑÑ‚Ñ– у розмірах Ñловників також впливають на викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–
+заÑобом ÑтиÑканнÑ, але Ñ” Ñ– інші відмінноÑÑ‚Ñ– між LZMA Utils Ñ– XZ Utils, Ñкі
+роблÑÑ‚ÑŒ різницю ще помітнішою:
+.RS
+.PP
+.TS
+tab(;);
+c c c
+c n n.
+Рівень;xz;LZMA Utils 4.32.x
+\-0;3 МіБ;н/д
+\-1;9 МіБ;2 МіБ
+\-2;17 МіБ;12 МіБ
+\-3;32 МіБ;12 МіБ
+\-4;48 МіБ;16 МіБ
+\-5;94 МіБ;26 МіБ
+\-6;94 МіБ;45 МіБ
+\-7;186 МіБ;83 МіБ
+\-8;370 МіБ;159 МіБ
+\-9;674 МіБ;311 МіБ
+.TE
+.RE
+.PP
+Типовим рівнем ÑтиÑÐºÐ°Ð½Ð½Ñ Ñƒ LZMA Utils Ñ” \fB\-7\fP, а у XZ Utils — \fB\-6\fP, отже,
+обидва комплекти програм типово викориÑтовують Ñловник розміром у 8 МіБ.
+.
+.SS "Потокові і непотокові файл .lzma"
+Розмір неÑтиÑненого файла може бути збережено у заголовку \fB.lzma\fP. LZMA
+Utils зберігають дані при ÑтиÑканні звичайних файлів. Ðльтернативним
+підходом Ñ” Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½ÐµÑтиÑненого розміру Ñк невідомого Ñ– викориÑтаннÑ
+позначки ÐºÑ–Ð½Ñ†Ñ Ð²Ð¼Ñ–Ñту Ð´Ð»Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ñ–ÑцÑ, де заÑіб Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð°Ñ”
+зупинитиÑÑ. У LZMA Utils цей ÑпоÑіб викориÑтовують, Ñкщо неÑтиÑнений розмір
+Ñ” невідомим, що траплÑєтьÑÑ, наприклад, Ð´Ð»Ñ ÐºÐ¾Ð½Ð²ÐµÑ”Ñ€Ñ–Ð² обробки даних.
+.PP
+У \fBxz\fP передбачено підтримку Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² \fB.lzma\fP з позначкою
+ÐºÑ–Ð½Ñ†Ñ Ð²Ð¼Ñ–Ñту та без неї, але уÑÑ– файли \fB.lzma\fP, Ñкі Ñтворено за допомогою
+\fBxz\fP, викориÑтовують позначку ÐºÑ–Ð½Ñ†Ñ Ð²Ð¼Ñ–Ñту, а неÑтиÑнений розмір у
+заголовку \fB.lzma\fP позначають Ñк невідомий. Це може призвеÑти до проблем у
+деÑких нетипових ÑитуаціÑÑ…. Ðаприклад, розпакувальник \fB.lzma\fP у вбудованому
+приÑтрої може працювати лише з файлами, Ð´Ð»Ñ Ñких відомий неÑтиÑнений
+розмір. Якщо ви зіткнулиÑÑ Ð· цією проблемою, вам Ñлід ÑкориÑтатиÑÑ LZMA
+Utils або LZMA SDK Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² \fB.lzma\fP із відомим розміром
+неÑтиÑнених даних.
+.
+.SS "Ðепідтримувані файли .lzma"
+У форматі \fB.lzma\fP можливі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIlc\fP аж до 8 Ñ– Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIlp\fP аж до
+4. LZMA Utils можуть розпаковувати файли із будь\-Ñкими значеннÑми \fIlc\fP Ñ–
+\fIlp\fP, але завжди Ñтворюють файли з \fBlc=3\fP Ñ– \fBlp=0\fP. Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² з
+іншими значеннÑми \fIlc\fP Ñ– \fIlp\fP Ñ” можливим за допомогою \fBxz\fP Ñ– LZMA SDK.
+.PP
+Ð ÐµÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ð° LZMA1 у liblzma потребує, щоби Ñума \fIlc\fP Ñ– \fIlp\fP не
+перевищувала 4. Отже, файли \fB.lzma\fP, у Ñких перевищено обмеженнÑ, не може
+бути розпаковано за допомогою \fBxz\fP.
+.PP
+LZMA Utils Ñтворюють лише файли \fB.lzma\fP, Ñкі мають розмір Ñловника у 2^\fIn\fP
+(Ñтепінь 2), але приймають файли із будь\-Ñким розміром Ñловника. liblzma
+приймає лише файли \fB.lzma\fP, Ñкі мають розмір Ñловника 2^\fIn\fP або 2^\fIn\fP +
+2^(\fIn\fP\-1). Так зроблено Ð´Ð»Ñ Ð·Ð¼ÐµÐ½ÑˆÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº при виÑвленні файлів
+\&\fB.lzma\fP.
+.PP
+Ці Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ðµ мають призводити до проблем на практиці, оÑкільки практично
+уÑÑ– файли \fB.lzma\fP було ÑтиÑнено з викориÑтаннÑм параметрів, Ñкі приймає
+liblzma.
+.
+.SS "Кінцевий мотлох"
+При розпаковуванні LZMA Utils без повідомлень ігнорують уÑÑ– дані піÑлÑ
+першого потоку \fB.lzma\fP. У більшоÑÑ‚Ñ– випадків це пов'Ñзано із вадою у
+програмі. Це також означає, що у LZMA Utils не передбачено підтримки
+Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð·'єднаних файлів \fB.lzma\fP.
+.PP
+Якщо піÑÐ»Ñ Ð¿ÐµÑ€ÑˆÐ¾Ð³Ð¾ потоку \fB.lzma\fP лишилиÑÑ Ð´Ð°Ð½Ñ–, \fBxz\fP вважатиме файл
+пошкодженим, Ñкщо не було викориÑтано \fB\-\-single\-stream\fP. Це може зашкодити
+роботі Ñкриптів, де зроблено припущеннÑ, що кінцеві зайві дані буде
+проігноровано.
+.
+.SH ПРИМІТКИ
+.
+.SS "СтиÑÐºÐ°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… може бути різним"
+Точні ÑтиÑнені дані, Ñкі Ñтворено на оÑнові того Ñамого неÑтиÑненого файла
+вхідних даних, можуть бути різними Ð´Ð»Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… верÑій XZ Utils, навіть Ñкщо
+викориÑтано однакові параметри ÑтиÑканнÑ. Причиною цього Ñ” удоÑÐºÐ¾Ð½Ð°Ð»ÐµÐ½Ð½Ñ Ñƒ
+кодувальнику (Ð¿Ñ€Ð¸ÑˆÐ²Ð¸Ð´ÑˆÐµÐ½Ð½Ñ Ð°Ð±Ð¾ краще ÑтиÑканнÑ) без зміни формату
+файлів. Виведені дані можуть бути різними навіть Ð´Ð»Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… збірок тієї
+Ñамої верÑÑ–Ñ— XZ Utils, Ñкщо викориÑтано різні параметри збираннÑ.
+.PP
+ÐапиÑане вище означає, що піÑÐ»Ñ Ñ€ÐµÐ°Ð»Ñ–Ð·Ð°Ñ†Ñ–Ñ— \fB\-\-rsyncable\fP файли\-результати
+не обов'Ñзково можна буде Ñинхронізувати за допомогою rsyncable, Ñкщо Ñтарий
+Ñ– новий файли було ÑтиÑнено за допомогою тієї Ñамої верÑÑ–Ñ— xz. Цю проблему
+можна уÑунути, Ñкщо буде заморожено чаÑтину реалізації кодувальника, щоб
+введені Ð´Ð»Ñ rsync дані були Ñтабільними між верÑÑ–Ñми xz.
+.
+.SS "Вбудовані розпакувальники .xz"
+У вбудованих реалізаціÑÑ… розпакувальника \fB.xz\fP, подібних до XZ Embedded, не
+обов'Ñзково передбачено підтримку файлів, Ñкі Ñтворено із типами
+\fIперевірки\fP ціліÑноÑÑ‚Ñ–, відмінними від \fBnone\fP Ñ– \fBcrc32\fP. ОÑкільки типовим
+Ñ” \fB\-\-check=crc64\fP, вам Ñлід викориÑтовувати \fB\-\-check=none\fP або
+\fB\-\-check=crc32\fP при Ñтворенні файлів Ð´Ð»Ñ Ð²Ð±ÑƒÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ… ÑиÑтем.
+.PP
+Поза вбудованими ÑиÑтемами, в уÑÑ–Ñ… заÑобах Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñƒ \fB.xz\fP
+передбачено підтримку уÑÑ–Ñ… типів \fIперевірок\fP або принаймні можливіÑÑ‚ÑŒ
+розпакувати файл без перевірки ціліÑноÑÑ‚Ñ–, Ñкщо підтримки певної
+\fIперевірки\fP не передбачено.
+.PP
+У XZ Embedded передбачено підтримку BCJ, але лише з типовим початковим
+зÑувом.
+.
+.SH ПРИКЛÐДИ
+.
+.SS ОÑнови
+СтиÑнути файл \fIfoo\fP до \fIfoo.xz\fP за допомогою типового Ñ€Ñ–Ð²Ð½Ñ ÑтиÑканнÑ
+(\fB\-6\fP) Ñ– вилучити \fIfoo\fP, Ñкщо ÑтиÑÐºÐ°Ð½Ð½Ñ Ð²Ñ–Ð´Ð±ÑƒÐ»Ð¾ÑÑ ÑƒÑпішно:
+.RS
+.PP
+.nf
+\f(CWxz foo\fP
+.fi
+.RE
+.PP
+Розпакувати \fIbar.xz\fP до \fIbar\fP Ñ– не вилучати \fIbar.xz\fP, навіть Ñкщо
+Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð±ÑƒÐ»Ð¾ÑÑ ÑƒÑпішно:
+.RS
+.PP
+.nf
+\f(CWxz \-dk bar.xz\fP
+.fi
+.RE
+.PP
+Створити \fIbaz.tar.xz\fP з викориÑтаннÑм шаблона \fB\-4e\fP (\fB\-4 \-\-extreme\fP),
+Ñкий Ñ” повільнішими за типовий \fB\-6\fP, але потребує менше пам'ÑÑ‚Ñ– длÑ
+ÑтиÑÐºÐ°Ð½Ð½Ñ Ñ‚Ð° Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ (48\ МіБ та 5\ МіБ, відповідно):
+.RS
+.PP
+.nf
+\f(CWtar cf \- baz | xz \-4e > baz.tar.xz\fP
+.fi
+.RE
+.PP
+Суміш ÑтиÑнених Ñ– неÑтиÑнених файлів можна розпакувати до Ñтандартного
+Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð° допомогою єдиної команди:
+.RS
+.PP
+.nf
+\f(CWxz \-dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt\fP
+.fi
+.RE
+.
+.SS "Паралельне ÑтиÑÐºÐ°Ð½Ð½Ñ Ð±Ð°Ð³Ð°Ñ‚ÑŒÐ¾Ñ… файлів"
+У GNU Ñ– *BSD можна ÑкориÑтатиÑÑ \fBfind\fP(1) Ñ– \fBxargs\fP(1) Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð»ÐµÐ»ÑŒÐ½Ð¾Ð³Ð¾
+ÑтиÑÐºÐ°Ð½Ð½Ñ Ð±Ð°Ð³Ð°Ñ‚ÑŒÐ¾Ñ… файлів:
+.RS
+.PP
+.nf
+\f(CWfind . \-type f \e! \-name '*.xz' \-print0 \e | xargs \-0r \-P4 \-n16 xz \-T1\fP
+.fi
+.RE
+.PP
+Параметр \fB\-P\fP \fBxargs\fP(1) вÑтановлює кількіÑÑ‚ÑŒ паралельних процеÑів
+\fBxz\fP. Ðайкраще Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° \fB\-n\fP залежить від того, Ñкільки файлів
+має бути ÑтиÑнено. Якщо файлів мало, значеннÑм, ймовірно, має бути 1. Якщо
+файлів деÑÑтки тиÑÑч, може знадобитиÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ 100 або навіть більше, щоб
+зменшити кількіÑÑ‚ÑŒ процеÑів \fBxz\fP, Ñкі врешті Ñтворить \fBxargs\fP(1).
+.PP
+Параметр \fB\-T1\fP Ð´Ð»Ñ \fBxz\fP тут Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÑƒÑового вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¾Ð´Ð½Ð¾Ð¿Ð¾Ñ‚Ð¾ÐºÐ¾Ð²Ð¾Ð³Ð¾
+режиму, оÑкільки Ð´Ð»Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ñ–Ð²Ð½ÐµÐ¼ паралелізації викориÑтано \fBxargs\fP(1).
+.
+.SS "Режим робота"
+ОбчиÑлити Ñкільки байтів було заощаджено загалом піÑÐ»Ñ ÑтиÑÐºÐ°Ð½Ð½Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ…
+файлів:
+.RS
+.PP
+.nf
+\f(CWxz \-\-robot \-\-list *.xz | awk '/^totals/{print $5\-$4}'\fP
+.fi
+.RE
+.PP
+Скрипту можуть знадобитиÑÑ Ð´Ð°Ð½Ñ– щодо того, що викориÑтано доÑтатньо нову
+верÑÑ–ÑŽ \fBxz\fP. У наведеному нижче Ñкрипті \fBsh\fP(1) виконано перевірку того,
+що номер верÑÑ–Ñ— заÑобу \fBxz\fP Ñ” принаймні рівним 5.0.0. Цей ÑпоÑіб Ñ” ÑуміÑним
+зі Ñтарими теÑтовими верÑÑ–Ñми, де не передбачено підтримки параметра
+\fB\-\-robot\fP:
+.RS
+.PP
+.nf
+\f(CWif ! eval "$(xz \-\-robot \-\-version 2> /dev/null)" || [ "$XZ_VERSION" \-lt 50000002 ]; then echo "Your xz is too old." fi unset XZ_VERSION LIBLZMA_VERSION\fP
+.fi
+.RE
+.PP
+Ð’Ñтановити Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° допомогою
+\fBXZ_OPT\fP, але Ñкщо Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð²Ð¶Ðµ було вÑтановлено, не збільшувати його:
+.RS
+.PP
+.nf
+\f(CWNEWLIM=$((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\fP
+.fi
+.RE
+.
+.SS "Ðетипові ланцюжки фільтрів заÑобу ÑтиÑканнÑ"
+ÐайпроÑтішим викориÑтаннÑм ланцюжка фільтрів Ñ” Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°
+LZMA2. Це може бути кориÑним, оÑкільки у шаблонах викориÑтано лише
+підмножину потенційно кориÑних комбінацій параметрів ÑтиÑканнÑ.
+.PP
+При налаштовуванні шаблонів LZMA2 кориÑними Ñ” Ñтовпчики CompCPU таблиць з
+опиÑів параметрів \fB\-0\fP ... \fB\-9\fP Ñ– \fB\-\-extreme\fP. ОÑÑŒ відповідні чаÑтини з
+цих двох таблиць:
+.RS
+.PP
+.TS
+tab(;);
+c c
+n n.
+Шаблон;CompCPU
+\-0;0
+\-1;1
+\-2;2
+\-3;3
+\-4;4
+\-5;5
+\-6;6
+\-5e;7
+\-6e;8
+.TE
+.RE
+.PP
+Якщо вам відомо, що певний файл потребує дещо більшого Ñловника (наприклад,
+32\ МіБ) Ð´Ð»Ñ ÑкіÑного ÑтиÑканнÑ, але ви хочете ÑтиÑнути його швидше за
+команду \fBxz \-8\fP, можна внеÑти зміни до шаблона із нижчим значеннÑм CompCPU
+(наприклад, 1) Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð±Ñ–Ð»ÑŒÑˆÐ¾Ð³Ð¾ Ñловника:
+.RS
+.PP
+.nf
+\f(CWxz \-\-lzma2=preset=1,dict=32MiB foo.tar\fP
+.fi
+.RE
+.PP
+Ð”Ð»Ñ Ð¿ÐµÐ²Ð½Ð¸Ñ… файлів наведена вище команда може працювати швидше за \fBxz \-6\fP Ñ–
+ÑтиÑкати дані значно краще. Втім, Ñлід наголоÑити, переваги більшого
+Ñловника з одночаÑним низьким значеннÑм CompCPU проÑвлÑÑŽÑ‚ÑŒÑÑ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ Ð´ÐµÑких
+файлів. Ðайочевиднішим випадком, коли великий Ñловник Ñ” кориÑним, Ñ” випадок,
+коли архів міÑтить дуже подібні файли розміром у принаймні декілька
+мегабайтів. Розмір Ñловника має бути значно більшим за будь\-Ñкий окремий
+файл, щоб у LZMA2 було викориÑтано уÑÑ– переваги подібноÑтей між поÑлідовними
+файлами.
+.PP
+Якщо дуже виÑокий рівень викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– у заÑобі ÑтиÑÐºÐ°Ð½Ð½Ñ Ð°Ð±Ð¾
+Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ Ñ” проблемою, Ñ– файли, Ñкий ÑтиÑкають має об'єм у принаймні
+декілька деÑÑтків мегабайтів, може бути кориÑним викориÑÑ‚Ð°Ð½Ð½Ñ Ð½Ð°Ð²Ñ–Ñ‚ÑŒ
+більшого за 64 МіБ Ñловника, Ñкий викориÑтано у \fBxz \-9\fP:
+.RS
+.PP
+.nf
+\f(CWxz \-vv \-\-lzma2=dict=192MiB big_foo.tar\fP
+.fi
+.RE
+.PP
+ВикориÑÑ‚Ð°Ð½Ð½Ñ \fB\-vv\fP (\fB\-\-verbose \-\-verbose\fP), подібно до наведеного вище
+прикладу, може бути кориÑним Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду вимог з боку заÑобів ÑтиÑÐºÐ°Ð½Ð½Ñ Ñ‚Ð°
+Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ пам'ÑÑ‚Ñ–. Пам'Ñтайте, що викориÑÑ‚Ð°Ð½Ð½Ñ Ñловника, розмір
+Ñкого перевищує розмір файла, Ñкий ÑтиÑкають, Ñ” проÑтоюю витратою пам'ÑÑ‚Ñ–,
+отже наведену вище команду не варто викориÑтовувати Ð´Ð»Ñ Ð¼Ð°Ð»Ð¸Ñ… файлів.
+.PP
+Іноді Ñ‡Ð°Ñ ÑтиÑÐºÐ°Ð½Ð½Ñ Ð½Ðµ має значеннÑ, але викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– заÑобом
+Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð°Ñ” бути низьким Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб, наприклад, уможливити
+Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° у вбудованій ÑиÑтемі. У наведеній нижче команді
+викориÑтано \fB\-6e\fP (\fB\-6 \-\-extreme\fP) Ñк оÑнову Ñ– вÑтановлено розмір Ñловника
+лише у 64\ КіБ. Файл\-результат можна розпакувати за допомогою XZ Embedded
+(оÑÑŒ чому викориÑтано \fB\-\-check=crc32\fP) з викориÑтаннÑм лише 100\ КіБ
+пам'ÑÑ‚Ñ–.
+.RS
+.PP
+.nf
+\f(CWxz \-\-check=crc32 \-\-lzma2=preset=6e,dict=64KiB foo\fP
+.fi
+.RE
+.PP
+Якщо вам потрібно витиÑнути зі ÑтиÑÐºÐ°Ð½Ð½Ñ Ð¼Ð°ÐºÑимальну кількіÑÑ‚ÑŒ байтів, може
+допомогти ÐºÐ¾Ñ€Ð¸Ð³ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÑ–Ð»ÑŒÐºÐ¾ÑÑ‚Ñ– бітів контекÑту літералів (\fIlc\fP) та
+кількіÑÑ‚ÑŒ позиційних бітів (\fIpb\fP). Також може допомогти коригуваннÑ
+кількоÑÑ‚Ñ– бітів позиції літералів (\fIlp\fP), але, зазвичай, важливішими Ñ”
+\fIlc\fP Ñ– \fIpb\fP. Ðаприклад, в архівах зі початковим кодом міÑтитьÑÑ
+здебільшого текÑÑ‚ US\-ASCII, щоÑÑŒ подібне до наведеного нижче може дещо (на
+щоÑÑŒ близьке до 0,1\ %) зменшити файл, порівнÑно із \fBxz \-6e\fP (Ñпробуйте
+також без \fBlc=4\fP):
+.RS
+.PP
+.nf
+\f(CWxz \-\-lzma2=preset=6e,pb=0,lc=4 source_code.tar\fP
+.fi
+.RE
+.PP
+ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ–Ð½ÑˆÐ¾Ð³Ð¾ фільтра разом із LZMA2 може покращити ÑтиÑÐºÐ°Ð½Ð½Ñ Ð´Ð»Ñ
+певних типів файлів. Ðаприклад, Ð´Ð»Ñ ÑтиÑÐºÐ°Ð½Ð½Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Ñпільного
+кориÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ x86\-32 або x86\-64 з викориÑтаннÑм фільтра BCJ x86 ÑкориÑтайтеÑÑ
+такою командою:
+.RS
+.PP
+.nf
+\f(CWxz \-\-x86 \-\-lzma2 libfoo.so\fP
+.fi
+.RE
+.PP
+Зауважте, що порÑдок параметрів Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð°Ñ” значеннÑ. Якщо \fB\-\-x86\fP
+вказано піÑÐ»Ñ \fB\-\-lzma2\fP, \fBxz\fP повідомить про помилку, оÑкільки піÑÐ»Ñ LZMA2
+не може бути жодного фільтра, а також оÑкільки фільтр BCJ x86 не можна
+викориÑтовувати Ñк оÑтанній фільтр у ланцюжку.
+.PP
+Фільтр Delta разом із LZMA2 може дати добрі результати Ð´Ð»Ñ Ñ€Ð°Ñтрових
+зображень. Зазвичай, результати Ñ” кращими за формат PNG, у Ñкого Ñ” декілька
+більш доÑконалих фільтрів, ніж проÑта дельта, але там викориÑтовують длÑ
+ÑтиÑÐºÐ°Ð½Ð½Ñ Deflate.
+.PP
+Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñлід берегти у неÑтиÑненому форматі, наприклад, Ñк неÑтиÑнений
+TIFF. Параметр відÑтані фільтра Delta вÑтановлюють так, щоб він збігавÑÑ Ñ–Ð·
+кількіÑÑ‚ÑŽ байтів на пікÑель у зображенні. Ðаприклад, Ð´Ð»Ñ 24\-бітового
+раÑтрового Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ RGB Ñлід вказати \fBdist=3\fP, а також добре передати
+\fBpb=0\fP до LZMA2 Ð´Ð»Ñ Ð¿Ñ€Ð¸ÑтоÑÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ трибайтового вирівнюваннÑ:
+.RS
+.PP
+.nf
+\f(CWxz \-\-delta=dist=3 \-\-lzma2=pb=0 foo.tiff\fP
+.fi
+.RE
+.PP
+Якщо в один архів запаковано декілька зображень (наприклад, в архів
+\&\fB.tar\fP), фільтр Delta також даватиме добрі результати, Ñкщо у вÑÑ–Ñ…
+зображеннÑÑ… однакова кількіÑÑ‚ÑŒ байтів Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ пікÑелÑ.
+.
+.SH "ДИВ. ТÐКОЖ"
+\fBxzdec\fP(1), \fBxzdiff\fP(1), \fBxzgrep\fP(1), \fBxzless\fP(1), \fBxzmore\fP(1),
+\fBgzip\fP(1), \fBbzip2\fP(1), \fB7z\fP(1)
+.PP
+XZ Utils: <https://xz.tukaani.org/xz\-utils/>
+.br
+Вбудовуваний XZ: <https://xz.tukaani.org/xz\-embedded/>
+.br
+LZMA SDK: <https://7\-zip.org/sdk.html>
diff --git a/po4a/man/uk/xzdec.1 b/po4a/man/uk/xzdec.1
new file mode 100644
index 00000000..5f0ca930
--- /dev/null
+++ b/po4a/man/uk/xzdec.1
@@ -0,0 +1,85 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Author: Lasse Collin
+.\"
+.\" Ukrainian translation for xz-man.
+.\" Yuri Chornoivan <yurchor@ukr.net>, 2019, 2022, 2023, 2024.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZDEC 1 "19 ÑÑ–Ñ‡Ð½Ñ 2024 року" Tukaani "XZ Utils"
+.SH ÐÐЗВÐ
+xzdec, lzmadec — невеличкі розпакувальники .xz і .lzma
+.SH "КОРОТКИЙ ОПИС"
+\fBxzdec\fP [\fIпараметр...\fP] [\fIфайл...\fP]
+.br
+\fBlzmadec\fP [\fIпараметр...\fP] [\fIфайл...\fP]
+.SH ОПИС
+\fBxzdec\fP Ñ” інÑтрументом на оÑнові liblzma, Ñкий призначено лише длÑ
+Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² \fB.xz\fP (Ñ– лише файлів \fB.xz\fP). \fBxzdec\fP призначено длÑ
+того, щоб працювати Ñк повноцінний замінник \fBxz\fP(1) у більшоÑÑ‚Ñ– типових
+Ñитуацій, де Ñкрипт було напиÑано Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ \fBxz \-\-decompress \-\-stdout\fP (Ñ–, можливо, декількох інших типових параметрів), длÑ
+Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² \fB.xz\fP. \fBlzmadec\fP Ñ” тотожним до \fBxzdec\fP, але у
+\fBlzmadec\fP передбачено підтримку файлів \fB.lzma\fP, заміÑÑ‚ÑŒ файлів \fB.xz\fP.
+.PP
+Щоб зменшити розмір виконуваного файла, у \fBxzdec\fP не передбачено підтримки
+багатопотокової обробки та локалізації, а також Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² зі
+змінних Ñередовища \fBXZ_DEFAULTS\fP Ñ– \fBXZ_OPT\fP. У \fBxzdec\fP не передбачено
+підтримки показу проміжних даних щодо поÑтупу: надÑÐ¸Ð»Ð°Ð½Ð½Ñ \fBSIGINFO\fP до
+\fBxzdec\fP не призводить ні до Ñких наÑлідків, але надÑÐ¸Ð»Ð°Ð½Ð½Ñ \fBSIGUSR1\fP
+перериває процеÑ, заміÑÑ‚ÑŒ показу даних щодо поÑтупу.
+.SH ПÐРÐМЕТРИ
+.TP
+\fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
+Буде проігноровано Ð´Ð»Ñ ÑуміÑноÑÑ‚Ñ– з \fBxz\fP(1). У \fBxzdec\fP передбачено
+підтримку лише розпаковуваннÑ.
+.TP
+\fB\-k\fP, \fB\-\-keep\fP
+Буде проігноровано. Призначено Ð´Ð»Ñ ÑуміÑноÑÑ‚Ñ– з \fBxz\fP(1). \fBxzdec\fP ніколи не
+Ñтворюватиме Ñ– ніколи не вилучатиме ці файли.
+.TP
+\fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
+Буде проігноровано. Ð”Ð»Ñ ÑуміÑноÑÑ‚Ñ– з \fBxz\fP(1). \fBxzdec\fP завжди запиÑує
+розпаковані дані до Ñтандартного виведеннÑ.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Якщо цей параметр вказано один раз, нічого не ÑтанетьÑÑ, оÑкільки \fBxzdec\fP
+ніколи не показуватиме жодних попереджень або нотаток. Вкажіть параметр
+двічі, щоб придушити Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилки.
+.TP
+\fB\-Q\fP, \fB\-\-no\-warn\fP
+Буде проігноровано Ð´Ð»Ñ ÑуміÑноÑÑ‚Ñ– із \fBxz\fP(1). \fBxzdec\fP ніколи не
+викориÑтовує Ñтан виходу 2.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+ВивеÑти довідкове Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ– уÑпішно завершити роботу.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+ВивеÑти номер верÑÑ–Ñ— \fBxzdec\fP та liblzma.
+.SH "СТÐРВИХОДУ"
+.TP
+\fB0\fP
+УÑе добре.
+.TP
+\fB1\fP
+СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°.
+.PP
+\fBxzdec\fP не має жодних повідомлень із попередженнÑми, на відміну від
+\fBxz\fP(1), тому у \fBxzdec\fP Ñтан виходу 2 не викориÑтовуєтьÑÑ.
+.SH ПРИМІТКИ
+КориÑтуйтеÑÑ \fBxz\fP(1), заміÑÑ‚ÑŒ \fBxzdec\fP або \fBlzmadec\fP, Ð´Ð»Ñ Ñ‰Ð¾Ð´ÐµÐ½Ð½Ð¸Ñ…
+потреб. \fBxzdec\fP та \fBlzmadec\fP призначено лише Ð´Ð»Ñ Ñ‚Ð¸Ñ… Ñитуацій, коли
+важливо мати меншу програму Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ, ніж \fBxz\fP(1).
+.PP
+\fBxzdec\fP і \fBlzmadec\fP не такі вже і малі програми. Їхній розмір можна
+зменшити викиданнÑм можливоÑтей з liblzma під Ñ‡Ð°Ñ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ, але цього
+зазвичай не роблÑÑ‚ÑŒ Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ñ… файлів, Ñкі поширюютьÑÑ Ñƒ типових, не
+вбудованих, диÑтрибутивах операційних ÑиÑтем. Якщо вам потрібний дуже мала
+програма Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ \fB.xz\fP, варто ÑкориÑтатиÑÑ XZ Embedded.
+.SH "ДИВ. ТÐКОЖ"
+\fBxz\fP(1)
+.PP
+Вбудовуваний XZ: <https://xz.tukaani.org/xz\-embedded/>
diff --git a/po4a/man/uk/xzdiff.1 b/po4a/man/uk/xzdiff.1
new file mode 100644
index 00000000..4b41aafe
--- /dev/null
+++ b/po4a/man/uk/xzdiff.1
@@ -0,0 +1,55 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Lasse Collin
+.\" Jia Tan
+.\"
+.\" Ukrainian translation for xz-man.
+.\" Yuri Chornoivan <yurchor@ukr.net>, 2019, 2022, 2023, 2024.
+.\"
+.\" (Note that this file is not based on gzip's zdiff.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZDIFF 1 "13 лютого 2024 року" Tukaani "XZ Utils"
+.SH ÐÐЗВÐ
+xzcmp, xzdiff, lzcmp, lzdiff — порівнÑÐ½Ð½Ñ ÑтиÑнених файлів
+.
+.SH "КОРОТКИЙ ОПИС"
+\fBxzcmp\fP [\fIпараметр...\fP] \fIфайл1\fP [\fIфайл2\fP]
+.br
+\fBxzdiff\fP \&...
+.br
+\fBlzcmp\fP \&...
+.br
+\fBlzdiff\fP \&...
+.
+.SH ОПИС
+\fBxzcmp\fP Ñ– \fBxzdiff\fP порівнюють неÑтиÑнені дані двох файлів. ÐеÑтиÑнені дані
+та параметри буде передано \fBcmp\fP(1) або \fBdiff\fP(1), Ñкщо не вказано
+\fB\-\-help\fP або \fB\-\-version\fP.
+.PP
+Якщо вказано одразу \fIфайл1\fP Ñ– \fIфайл2\fP, це можуть бути неÑтиÑнені файли або
+файли у форматах, Ñкі може бути розпаковано за допомогою \fBxz\fP(1),
+\fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1), \fBzstd\fP(1) або \fBlz4\fP(1). Потрібні
+команди Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°ÑŽÑ‚ÑŒÑÑ Ð· ÑуфікÑів назв файлів \fIфайл1\fP Ñ–
+\fIфайл2\fP. Файли із невідомими програмі ÑуфікÑами вважатимутьÑÑ Ð°Ð±Ð¾
+неÑтиÑненими або такими, що мають формат, дані у Ñкому може розпаковувати
+\fBxz\fP(1).
+.PP
+Якщо вказано лише одну назву файла, \fIфайл1\fP повинен мати ÑуфікÑ
+підтримуваного формату ÑтиÑканнÑ, а назвою \fIфайл2\fP має бути назва \fIфайл1\fP
+з вилученим ÑуфікÑом формату ÑтиÑканнÑ.
+.PP
+ПрацездатніÑÑ‚ÑŒ команд \fBlzcmp\fP Ñ– \fBlzdiff\fP забезпечено Ð´Ð»Ñ Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¾Ñ—
+ÑуміÑноÑÑ‚Ñ– із LZMA Utils.
+.
+.SH "СТÐРВИХОДУ"
+Якщо ÑтанетьÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° розпаковуваннÑ, Ñтаном виходу буде \fB2\fP. Інакше,
+Ñтаном виходу буде \fBcmp\fP(1) або буде викориÑтано \fBdiff\fP(1).
+.
+.SH "ДИВ. ТÐКОЖ"
+\fBcmp\fP(1), \fBdiff\fP(1), \fBxz\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1),
+\fBzstd\fP(1), \fBlz4\fP(1)
diff --git a/po4a/man/uk/xzgrep.1 b/po4a/man/uk/xzgrep.1
new file mode 100644
index 00000000..a763728e
--- /dev/null
+++ b/po4a/man/uk/xzgrep.1
@@ -0,0 +1,95 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Lasse Collin
+.\" Jia Tan
+.\"
+.\" Ukrainian translation for xz-man.
+.\" Yuri Chornoivan <yurchor@ukr.net>, 2019, 2022, 2023, 2024.
+.\"
+.\" (Note that this file is not based on gzip's zgrep.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZGREP 1 "13 лютого 2024 року" Tukaani "XZ Utils"
+.SH ÐÐЗВÐ
+xzgrep — пошук взірців у ймовірно ÑтиÑнених файлах
+.
+.SH "КОРОТКИЙ ОПИС"
+\fBxzgrep\fP [\fIпараметр...\fP] [\fIÑпиÑок_взірців\fP] [\fIфайл...\fP]
+.br
+\fBxzegrep\fP \&...
+.br
+\fBxzfgrep\fP \&...
+.br
+\fBlzgrep\fP \&...
+.br
+\fBlzegrep\fP \&...
+.br
+\fBlzfgrep\fP \&...
+.
+.SH ОПИС
+\fBxzgrep\fP викликає \fBgrep\fP(1) Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²Ð°Ð½Ð¸Ñ… даних файлів. Формати
+\fIфайлів\fP визначатимутьÑÑ Ð· ÑуфікÑів назв файлів. Будь\-Ñкий \fIфайл\fP із
+ÑуфікÑом назви, підтримку Ñкого передбачено у \fBxz\fP(1), \fBgzip\fP(1),
+\fBbzip2\fP(1), \fBlzop\fP(1), \fBzstd\fP(1) або \fBlz4\fP(1), буде розпаковано; уÑÑ–
+інші файли вважатимутьÑÑ Ð½ÐµÑтиÑненими.
+.PP
+Якщо не вказано аргументу \fIфайли\fP або заміÑÑ‚ÑŒ \fIфайл\fP вказано \fB\-\fP, дані
+буде прочитано зі Ñтандартного джерела вхідних даних. При читанні зі
+Ñтандартного джерела буде розпаковано лише файли, підтримку Ñких передбачено
+у \fBxz\fP(1). Інші файли вважатимутьÑÑ Ñ‚Ð°ÐºÐ¸Ð¼Ð¸, що вже перебувають у
+неÑтиÑненому форматі.
+.PP
+Передбачено підтримку більшоÑÑ‚Ñ– \fIпараметрів\fP \fBgrep\fP(1). Втім, підтримки
+цих параметрів не передбачено:
+.IP "" 4
+\fB\-r\fP, \fB\-\-recursive\fP
+.IP "" 4
+\fB\-R\fP, \fB\-\-dereference\-recursive\fP
+.IP "" 4
+\fB\-d\fP, \fB\-\-directories=\fP\fIдіÑ\fP
+.IP "" 4
+\fB\-Z\fP, \fB\-\-null\fP
+.IP "" 4
+\fB\-z\fP, \fB\-\-null\-data\fP
+.IP "" 4
+\fB\-\-include=\fP\fIglob\fP
+.IP "" 4
+\fB\-\-exclude=\fP\fIglob\fP
+.IP "" 4
+\fB\-\-exclude\-from=\fP\fIфайл\fP
+.IP "" 4
+\fB\-\-exclude\-dir=\fP\fIglob\fP
+.PP
+\fBxzegrep\fP Ñ” альтернативним запиÑом \fBxzgrep \-E\fP. \fBxzfgrep\fP Ñ”
+альтернативним запиÑом \fBxzgrep \-F\fP.
+.PP
+ПрацездатніÑÑ‚ÑŒ команд \fBlzgrep\fP, \fBlzegrep\fP Ñ– \fBlzfgrep\fP забезпечено длÑ
+зворотної ÑуміÑноÑÑ‚Ñ– із LZMA Utils.
+.
+.SH "СТÐРВИХОДУ"
+.TP
+0
+В одному з файлів вхідних даних знайдено принаймні одну
+відповідніÑÑ‚ÑŒ. Помилок не ÑталоÑÑ.
+.TP
+1
+У жодному з файлів вхідних даних не знайдено відповідника. Ðе ÑталоÑÑ Ð½Ñ–Ñких
+помилок.
+.TP
+>1
+СталаÑÑ Ð¾Ð´Ð½Ð° або декілька помилок. Ðевідомо, чи було знайдено відповідники
+критерію пошуку.
+.
+.SH СЕРЕДОВИЩЕ
+.TP
+\fBGREP\fP
+Якщо Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— Ñередовища \fBGREP\fP вÑтановлено непорожнє значеннÑ, його
+буде викориÑтано заміÑÑ‚ÑŒ \fBgrep\fP(1), \fBgrep \-E\fP або \fBgrep \-F\fP.
+.
+.SH "ДИВ. ТÐКОЖ"
+\fBgrep\fP(1), \fBxz\fP(1), \fBgzip\fP(1), \fBbzip2\fP(1), \fBlzop\fP(1), \fBzstd\fP(1),
+\fBlz4\fP(1), \fBzgrep\fP(1)
diff --git a/po4a/man/uk/xzless.1 b/po4a/man/uk/xzless.1
new file mode 100644
index 00000000..9c355650
--- /dev/null
+++ b/po4a/man/uk/xzless.1
@@ -0,0 +1,48 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Andrew Dudman
+.\" Lasse Collin
+.\"
+.\" Ukrainian translation for xz-man.
+.\" Yuri Chornoivan <yurchor@ukr.net>, 2019, 2022, 2023, 2024.
+.\"
+.\" (Note that this file is not based on gzip's zless.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZLESS 1 "12 лютого 2024 року" Tukaani "XZ Utils"
+.SH ÐÐЗВÐ
+xzless, lzless — переглÑд ÑтиÑнених xz або lzma (текÑтових) файлів
+.SH "КОРОТКИЙ ОПИС"
+\fBxzless\fP [\fIфайл\fP...]
+.br
+\fBlzless\fP [\fIфайл\fP...]
+.SH ОПИС
+\fBxzless\fP Ñ” фільтром, Ñкий показує текÑÑ‚ зі ÑтиÑнених файлів у
+терміналі. Файли, підтримку обробки Ñких передбачено у \fBxz\fP(1), буде
+розпаковано; інші файли вважатимутьÑÑ Ð½ÐµÑтиÑненими. Якщо не вказано жодного
+\fIфайла\fP, \fBxzless\fP читатиме дані зі Ñтандартного джерела вхідних даних.
+.PP
+Ð”Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ виведених даних \fBxzless\fP викориÑтовує \fBless\fP(1). Ðа відміну від
+\fBxzmore\fP, вибір програми Ð´Ð»Ñ Ð¿Ð¾Ð´Ñ–Ð»Ñƒ на Ñторінки не можна змінити за
+допомогою змінної Ñередовища. Команди заÑновано на \fBmore\fP(1) Ñ– \fBvi\fP(1). За
+допомогою команд можна проÑуватиÑÑ Ð½Ð°Ð·Ð°Ð´ Ñ– вперед даними та шукати дані. Щоб
+дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ, ознайомтеÑÑ Ñ–Ð· підручником з \fBless\fP(1).
+.PP
+Команду \fBlzless\fP реалізовано Ð´Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¾Ñ— ÑуміÑноÑÑ‚Ñ– з LZMA
+Utils.
+.SH СЕРЕДОВИЩЕ
+.TP
+\fBLESSMETACHARS\fP
+СпиÑок Ñимволів, Ñкі Ñ” оÑобливими Ñимволами командної
+оболонки. Ð’ÑтановлюєтьÑÑ \fBxzless\fP, Ñкщо його ще не вÑтановлено у
+Ñередовищі.
+.TP
+\fBLESSOPEN\fP
+Має Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€Ñдка команди Ð´Ð»Ñ Ð²Ð¸ÐºÐ»Ð¸ÐºÑƒ заÑобу Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ \fBxz\fP(1) длÑ
+обробки вхідних файлів \fBless\fP(1).
+.SH "ДИВ. ТÐКОЖ"
+\fBless\fP(1), \fBxz\fP(1), \fBxzmore\fP(1), \fBzless\fP(1)
diff --git a/po4a/man/uk/xzmore.1 b/po4a/man/uk/xzmore.1
new file mode 100644
index 00000000..ade3d1ba
--- /dev/null
+++ b/po4a/man/uk/xzmore.1
@@ -0,0 +1,48 @@
+.\" SPDX-License-Identifier: 0BSD
+.\"
+.\" Authors: Andrew Dudman
+.\" Lasse Collin
+.\"
+.\" Ukrainian translation for xz-man.
+.\" Yuri Chornoivan <yurchor@ukr.net>, 2019, 2022, 2023, 2024.
+.\"
+.\" (Note that this file is based on xzless.1 instead of gzip's zmore.1.)
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH XZMORE 1 "12 лютого 2024 року" Tukaani "XZ Utils"
+.SH ÐÐЗВÐ
+xzmore, lzmore — переглÑд ÑтиÑнених xz або lzma (текÑтових) файлів
+.
+.SH "КОРОТКИЙ ОПИС"
+\fBxzmore\fP [\fIфайл\fP...]
+.br
+\fBlzmore\fP [\fIфайл\fP...]
+.
+.SH ОПИС
+\fBxzmore\fP показує текÑÑ‚ зі ÑтиÑнених файлів у терміналі за допомогою
+\fBmore\fP(1). Файли, підтримку Ñких передбачено у \fBxz\fP(1), буде розпаковано;
+інші файли вважатимутьÑÑ Ð²Ð¶Ðµ наданими у розпакованій формі. Якщо не вказано
+аргументу \fIфайли\fP, \fBxzmore\fP читатиме дані зі Ñтандартного джерела
+даних. Див. підручник з \fBmore\fP(1), щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про клавіатурні
+команди.
+.PP
+Зауважте, що Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñƒ зворотному напрÑмку може бути неможливим через
+реалізацію \fBmore\fP(1). Причиною Ñ” те, що \fBxzmore\fP викориÑтовує канал длÑ
+Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²Ð°Ð½Ð¸Ñ… даних \fBmore\fP(1). \fBxzless\fP(1) викориÑтовує
+\fBless\fP(1), можливоÑÑ‚Ñ– Ñкої Ñ” ширшими.
+.PP
+Команду \fBlzmore\fP реалізовано Ð´Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ð·Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ð¾Ñ— ÑуміÑноÑÑ‚Ñ– з LZMA
+Utils.
+.
+.SH СЕРЕДОВИЩЕ
+.TP
+\fBPAGER\fP
+Якщо вÑтановлено Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fBPAGER\fP, Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ викориÑтано Ð´Ð»Ñ Ð·Ð°Ñобу
+поділу на Ñторінки, заміÑÑ‚ÑŒ \fBmore\fP(1).
+.
+.SH "ДИВ. ТÐКОЖ"
+\fBmore\fP(1), \fBxz\fP(1), \fBxzless\fP(1), \fBzmore\fP(1)
diff --git a/po4a/pt_BR.po b/po4a/pt_BR.po
index d75edd38..26b48f9d 100644
--- a/po4a/pt_BR.po
+++ b/po4a/pt_BR.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: xz-man 5.4.0-pre2\n"
-"POT-Creation-Date: 2024-03-05 18:22+0800\n"
+"POT-Creation-Date: 2024-03-09 16:16+0800\n"
"PO-Revision-Date: 2023-01-26 13:29-0300\n"
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
@@ -26,9 +26,9 @@ msgid "XZ"
msgstr "XZ"
#. type: TH
-#: ../src/xz/xz.1:7 ../src/scripts/xzdiff.1:8 ../src/scripts/xzgrep.1:8
+#: ../src/xz/xz.1:7
#, no-wrap
-msgid "2024-02-13"
+msgid "2024-02-25"
msgstr ""
#. type: TH
@@ -1777,6 +1777,13 @@ msgid ""
"means that B<xz> 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<size>"
+msgid "B<--block-list=>I<items>"
+msgstr "B<--block-size=>I<tamanho>"
+
#. type: Plain text
#: ../src/xz/xz.1:928
msgid ""
@@ -2370,6 +2377,13 @@ msgstr ""
"B<--verbose> duas vezes). Isso também funciona para visualizar as opções da "
"cadeia de filtros usadas pelas predefinições."
+#. type: TP
+#: ../src/xz/xz.1:1392
+#, fuzzy, no-wrap
+#| msgid "B<--files>[B<=>I<file>]"
+msgid "B<--filters=>I<filters>"
+msgstr "B<--files>[B<=>I<arquivo>]"
+
#. type: Plain text
#: ../src/xz/xz.1:1413
msgid ""
@@ -2402,6 +2416,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 ""
@@ -2967,6 +2988,7 @@ msgstr "B<--sparc>[B<=>I<opções>]"
#. type: TP
#: ../src/xz/xz.1:1815
+#, no-wrap
msgid "B<--riscv>[B<=>I<options>]"
msgstr "B<--riscv>[B<=>I<opções>]"
@@ -3142,13 +3164,13 @@ msgid "SPARC"
msgstr "SPARC"
#. type: tbl table
-#: ../src/xz/xz.1:1873
+#: ../src/xz/xz.1:1875
#, no-wrap
msgid "RISC-V"
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:1883
+#: ../src/xz/xz.1:1885
msgid ""
"Since the BCJ-filtered data is usually compressed with LZMA2, the "
"compression ratio may be improved slightly if the LZMA2 options are set to "
@@ -3156,14 +3178,14 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:1889
+#: ../src/xz/xz.1:1891
msgid ""
"IA-64 filter has 16-byte alignment so B<pb=4,lp=4,lc=0> is good with LZMA2 "
"(2^4=16)."
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:1904
+#: ../src/xz/xz.1:1906
msgid ""
"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 "
@@ -3173,19 +3195,19 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:1908
+#: ../src/xz/xz.1:1910
msgid "ARM64 is always 4-byte aligned so B<pb=2,lp=2,lc=2> is the best."
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:1913
+#: ../src/xz/xz.1:1915
msgid ""
"The x86 filter is an exception. It's usually good to stick to LZMA2's "
"defaults (B<pb=2,lp=0,lc=3>) when compressing x86 executables."
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:1917
+#: ../src/xz/xz.1:1919
msgid "All BCJ filters support the same I<options>:"
msgstr "Todos os filtros BCJ suportam as mesmas I<opções>:"
@@ -3513,7 +3535,7 @@ msgid "ROBOT MODE"
msgstr "MODO ROBÔ"
#. type: Plain text
-#: ../src/xz/xz.1:2097
+#: ../src/xz/xz.1:2099
msgid ""
"The robot mode is activated with the B<--robot> option. It makes the output "
"of B<xz> easier to parse by other programs. Currently B<--robot> is "
@@ -4045,33 +4067,61 @@ msgstr ""
"ser adicionadas aos tipos de linha existentes, mas as colunas existentes não "
"serão alteradas."
+#. type: SS
+#: ../src/xz/xz.1:2384
+#, fuzzy, no-wrap
+#| msgid "Filter"
+msgid "Filters help"
+msgstr "Filtro"
+
#. type: Plain text
-#: ../src/xz/xz.1:2385
+#: ../src/xz/xz.1:2387
msgid ""
"B<xz --robot --filters-help> prints the supported filters in the following "
"format:"
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2387
+#: ../src/xz/xz.1:2389
msgid ""
"I<filter>B<:>I<option>B<=E<lt>>I<value>B<E<gt>,"
">I<option>B<=E<lt>>I<value>B<E<gt>>..."
msgstr ""
+#. type: TP
+#: ../src/xz/xz.1:2389
+#, fuzzy, no-wrap
+#| msgid "B<file>"
+msgid "I<filter>"
+msgstr "B<file>"
+
+#. type: Plain text
+#: ../src/xz/xz.1:2392
+#, fuzzy
+#| msgid "Name of the integrity check"
+msgid "Name of the filter"
+msgstr "Nome da verificação de integridade"
+
+#. type: TP
+#: ../src/xz/xz.1:2392
+#, fuzzy, no-wrap
+#| msgid "Supported I<options>:"
+msgid "I<option>"
+msgstr "I<Opções> suportadas:"
+
#. type: Plain text
-#: ../src/xz/xz.1:2393
+#: ../src/xz/xz.1:2395
msgid "Name of a filter specific option"
msgstr ""
#. type: TP
-#: ../src/xz/xz.1:2393
+#: ../src/xz/xz.1:2395
#, no-wrap
msgid "I<value>"
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2406
+#: ../src/xz/xz.1:2408
msgid ""
"Numeric I<value> ranges appear as B<E<lt>>I<min>B<->I<max>B<E<gt>>. String "
"I<value> choices are shown within B<E<lt> E<gt>> and separated by a B<|> "
@@ -4079,7 +4129,7 @@ msgid ""
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2408
+#: ../src/xz/xz.1:2410
msgid "Each filter is printed on its own line."
msgstr ""
@@ -4090,7 +4140,7 @@ msgid "Memory limit information"
msgstr "Informações de limite de memória"
#. type: Plain text
-#: ../src/xz/xz.1:2412
+#: ../src/xz/xz.1:2414
msgid ""
"B<xz --robot --info-memory> prints a single line with multiple tab-separated "
"columns:"
@@ -4182,14 +4232,14 @@ msgid "Version"
msgstr "Versão"
#. type: Plain text
-#: ../src/xz/xz.1:2467
+#: ../src/xz/xz.1:2469
msgid ""
"B<xz --robot --version> prints the version number of B<xz> and liblzma in "
"the following format:"
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:2469
+#: ../src/xz/xz.1:2471
msgid "B<XZ_VERSION=>I<XYYYZZZS>"
msgstr "B<XZ_VERSION=>I<XYYYZZZS>"
@@ -5191,17 +5241,17 @@ msgstr ""
"B<gzip>(1), B<bzip2>(1), B<7z>(1)"
#. type: Plain text
-#: ../src/xz/xz.1:3178
+#: ../src/xz/xz.1:3180
msgid "XZ Utils: E<lt>https://xz.tukaani.org/xz-utils/E<gt>"
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:3180 ../src/xzdec/xzdec.1:144
+#: ../src/xz/xz.1:3182 ../src/xzdec/xzdec.1:144
msgid "XZ Embedded: E<lt>https://xz.tukaani.org/xz-embedded/E<gt>"
msgstr ""
#. type: Plain text
-#: ../src/xz/xz.1:3181
+#: ../src/xz/xz.1:3183
msgid "LZMA SDK: E<lt>https://7-zip.org/sdk.htmlE<gt>"
msgstr ""
@@ -5447,12 +5497,46 @@ msgstr ""
msgid "XZDIFF"
msgstr "XZDIFF"
+#. type: TH
+#: ../src/scripts/xzdiff.1:8 ../src/scripts/xzgrep.1:8
+#, no-wrap
+msgid "2024-02-13"
+msgstr ""
+
#. type: Plain text
#: ../src/scripts/xzdiff.1:11
msgid "xzcmp, xzdiff, lzcmp, lzdiff - compare compressed files"
msgstr "xzcmp, xzdiff, lzcmp, lzdiff - compara arquivos compactados"
#. type: Plain text
+#: ../src/scripts/xzdiff.1:17
+#, fuzzy
+#| msgid "B<xz> [I<option...>] [I<file...>]"
+msgid "B<xzcmp> [I<option...>] I<file1> [I<file2>]"
+msgstr "B<xz> [I<opção...>] [I<arquivo...>]"
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:20
+#, fuzzy
+#| msgid "B<xzfgrep> \\&..."
+msgid "B<xzdiff> \\&..."
+msgstr "B<xzfgrep> \\&..."
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:23
+#, fuzzy
+#| msgid "B<lzgrep> \\&..."
+msgid "B<lzcmp> \\&..."
+msgstr "B<lzgrep> \\&..."
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:26
+#, fuzzy
+#| msgid "B<lzfgrep> \\&..."
+msgid "B<lzdiff> \\&..."
+msgstr "B<lzfgrep> \\&..."
+
+#. type: Plain text
#: ../src/scripts/xzdiff.1:41
msgid ""
"B<xzcmp> and B<xzdiff> compare uncompressed contents of two files. "
@@ -5480,12 +5564,38 @@ msgid ""
msgstr ""
#. type: Plain text
+#: ../src/scripts/xzdiff.1:78
+#, fuzzy
+#| msgid ""
+#| "The command named B<lzless> is provided for backward compatibility with "
+#| "LZMA Utils."
+msgid ""
+"The commands B<lzcmp> and B<lzdiff> are provided for backward compatibility "
+"with LZMA Utils."
+msgstr ""
+"O comando denominado B<lzless> é fornecido para compatibilidade com versões "
+"anteriores do LZMA Utils."
+
+#. type: Plain text
#: ../src/scripts/xzdiff.1:87
msgid ""
"If a decompression error occurs, the exit status is B<2>. Otherwise the "
"exit status of B<cmp>(1) or B<diff>(1) is used."
msgstr ""
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:96
+#, fuzzy
+#| msgid ""
+#| "B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), "
+#| "B<gzip>(1), B<bzip2>(1), B<7z>(1)"
+msgid ""
+"B<cmp>(1), B<diff>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), "
+"B<zstd>(1), B<lz4>(1)"
+msgstr ""
+"B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), "
+"B<gzip>(1), B<bzip2>(1), B<7z>(1)"
+
#. type: TH
#: ../src/scripts/xzgrep.1:8
#, no-wrap
@@ -5498,6 +5608,13 @@ msgid "xzgrep - search possibly-compressed files for patterns"
msgstr ""
#. type: Plain text
+#: ../src/scripts/xzgrep.1:17
+#, fuzzy
+#| msgid "B<xz> [I<option...>] [I<file...>]"
+msgid "B<xzgrep> [I<option...>] [I<pattern_list>] [I<file...>]"
+msgstr "B<xz> [I<opção...>] [I<arquivo...>]"
+
+#. type: Plain text
#: ../src/scripts/xzgrep.1:20
msgid "B<xzegrep> \\&..."
msgstr "B<xzegrep> \\&..."
@@ -5549,11 +5666,60 @@ msgid ""
msgstr ""
#. type: Plain text
+#: ../src/scripts/xzgrep.1:75
+#, fuzzy
+#| msgid "B<-v>, B<--verbose>"
+msgid "B<-r>, B<--recursive>"
+msgstr "B<-v>, B<--verbose>"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:78
+#, fuzzy
+#| msgid "B<-f>, B<--force>"
+msgid "B<-R>, B<--dereference-recursive>"
+msgstr "B<-f>, B<--force>"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:81
+#, fuzzy
+#| msgid "B<-V>, B<--version>"
+msgid "B<-d>, B<--directories=>I<action>"
+msgstr "B<-V>, B<--version>"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:84
+#, fuzzy
+#| msgid "B<-l>, B<--list>"
+msgid "B<-Z>, B<--null>"
+msgstr "B<-l>, B<--list>"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:87
+#, fuzzy
+#| msgid "B<-l>, B<--list>"
+msgid "B<-z>, B<--null-data>"
+msgstr "B<-l>, B<--list>"
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:89
+#, fuzzy
+#| msgid "B<--files>[B<=>I<file>]"
+msgid "B<--include=>I<glob>"
+msgstr "B<--files>[B<=>I<arquivo>]"
+
+#. type: Plain text
#: ../src/scripts/xzgrep.1:91
msgid "B<--exclude=>I<glob>"
msgstr ""
#. type: Plain text
+#: ../src/scripts/xzgrep.1:93
+#, fuzzy
+#| msgid "B<--files>[B<=>I<file>]"
+msgid "B<--exclude-from=>I<file>"
+msgstr "B<--files>[B<=>I<arquivo>]"
+
+#. type: Plain text
#: ../src/scripts/xzgrep.1:95
msgid "B<--exclude-dir=>I<glob>"
msgstr ""
@@ -5566,6 +5732,19 @@ msgid ""
msgstr ""
#. type: Plain text
+#: ../src/scripts/xzgrep.1:109
+#, fuzzy
+#| msgid ""
+#| "The command named B<lzless> is provided for backward compatibility with "
+#| "LZMA Utils."
+msgid ""
+"The commands B<lzgrep>, B<lzegrep>, and B<lzfgrep> are provided for backward "
+"compatibility with LZMA Utils."
+msgstr ""
+"O comando denominado B<lzless> é fornecido para compatibilidade com versões "
+"anteriores do LZMA Utils."
+
+#. type: Plain text
#: ../src/scripts/xzgrep.1:115
msgid ""
"At least one match was found from at least one of the input files. No "
@@ -5606,6 +5785,19 @@ msgid ""
"B<grep -E>, or B<grep -F>."
msgstr ""
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:144
+#, fuzzy
+#| msgid ""
+#| "B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), "
+#| "B<gzip>(1), B<bzip2>(1), B<7z>(1)"
+msgid ""
+"B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), "
+"B<lz4>(1), B<zgrep>(1)"
+msgstr ""
+"B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), "
+"B<gzip>(1), B<bzip2>(1), B<7z>(1)"
+
#. type: TH
#: ../src/scripts/xzless.1:8
#, no-wrap
@@ -5713,6 +5905,20 @@ msgid "xzmore, lzmore - view xz or lzma compressed (text) files"
msgstr "xzmore, lzmore - visualiza arquivos (texto) compactados em xz ou lzma"
#. type: Plain text
+#: ../src/scripts/xzmore.1:15
+#, fuzzy
+#| msgid "B<xzless> [I<file>...]"
+msgid "B<xzmore> [I<file>...]"
+msgstr "B<xzless> [I<arquivo>...]"
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:18
+#, fuzzy
+#| msgid "B<lzless> [I<file>...]"
+msgid "B<lzmore> [I<file>...]"
+msgstr "B<lzless> [I<arquivo>...]"
+
+#. type: Plain text
#: ../src/scripts/xzmore.1:35
msgid ""
"B<xzmore> displays text from compressed files to a terminal using "
@@ -5731,6 +5937,18 @@ msgid ""
"provides more advanced features."
msgstr ""
+#. type: Plain text
+#: ../src/scripts/xzmore.1:51
+#, fuzzy
+#| msgid ""
+#| "The command named B<lzless> is provided for backward compatibility with "
+#| "LZMA Utils."
+msgid ""
+"The command B<lzmore> is provided for backward compatibility with LZMA Utils."
+msgstr ""
+"O comando denominado B<lzless> é fornecido para compatibilidade com versões "
+"anteriores do LZMA Utils."
+
#. type: TP
#: ../src/scripts/xzmore.1:53
#, no-wrap
diff --git a/po4a/pt_BR.po.authors b/po4a/pt_BR.po.authors
new file mode 100644
index 00000000..90e7b125
--- /dev/null
+++ b/po4a/pt_BR.po.authors
@@ -0,0 +1,5 @@
+PO4A-HEADER: position=^\.\\" Author; mode=after; beginboundary=^\.\\"$
+.\"
+.\" Brazilian Portuguese translations for xz package
+.\" Traduções em português brasileiro para o pacote xz.
+.\" Rafael Fontenelle <rafaelff@gnome.org>, 2022-2023.
diff --git a/po4a/ro.po b/po4a/ro.po
index 83031870..0d627a1f 100644
--- a/po4a/ro.po
+++ b/po4a/ro.po
@@ -18,7 +18,7 @@
msgid ""
msgstr ""
"Project-Id-Version: xz-man 5.6.0-pre2\n"
-"POT-Creation-Date: 2024-03-05 18:22+0800\n"
+"POT-Creation-Date: 2024-03-09 16:16+0800\n"
"PO-Revision-Date: 2024-02-16 14:15+0100\n"
"Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -26,7 +26,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: plural=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2);\n"
+"Plural-Forms: plural=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
+"20)) ? 1 : 2);\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: Poedit 3.2.2\n"
@@ -38,6 +39,7 @@ msgstr "XZ"
#. type: TH
#: ../src/xz/xz.1:7
+#, no-wrap
msgid "2024-02-25"
msgstr "25 februarie 2024"
@@ -67,8 +69,12 @@ msgstr "NUME"
#. type: Plain text
#: ../src/xz/xz.1:11
-msgid "xz, unxz, xzcat, lzma, unlzma, lzcat - Compress or decompress .xz and .lzma files"
-msgstr "xz, unxz, xzcat, lzma, unlzma, lzcat - Comprimă sau decomprimă fișiere .xz și .lzma"
+msgid ""
+"xz, unxz, xzcat, lzma, unlzma, lzcat - Compress or decompress .xz and .lzma "
+"files"
+msgstr ""
+"xz, unxz, xzcat, lzma, unlzma, lzcat - Comprimă sau decomprimă fișiere .xz "
+"și .lzma"
#. type: SH
#: ../src/xz/xz.1:12 ../src/xzdec/xzdec.1:8 ../src/lzmainfo/lzmainfo.1:8
@@ -116,8 +122,14 @@ msgstr "B<lzcat> este echivalent cu B<xz --format=lzma --decompress --stdout>."
#. type: Plain text
#: ../src/xz/xz.1:49
-msgid "When writing scripts that need to decompress files, it is recommended to always use the name B<xz> with appropriate arguments (B<xz -d> or B<xz -dc>) instead of the names B<unxz> and B<xzcat>."
-msgstr "Când scrieți scripturi care trebuie să decomprime fișiere, este recomandat să folosiți întotdeauna comanda B<xz> cu argumentele adecvate (B<xz -d> sau B<xz -dc>) în loc de comenzile B<unxz> și B<xzcat>."
+msgid ""
+"When writing scripts that need to decompress files, it is recommended to "
+"always use the name B<xz> with appropriate arguments (B<xz -d> or B<xz -"
+"dc>) instead of the names B<unxz> and B<xzcat>."
+msgstr ""
+"Când scrieți scripturi care trebuie să decomprime fișiere, este recomandat "
+"să folosiți întotdeauna comanda B<xz> cu argumentele adecvate (B<xz -d> sau "
+"B<xz -dc>) în loc de comenzile B<unxz> și B<xzcat>."
#. type: SH
#: ../src/xz/xz.1:50 ../src/xzdec/xzdec.1:16 ../src/lzmainfo/lzmainfo.1:13
@@ -129,18 +141,47 @@ msgstr "DESCRIERE"
#. type: Plain text
#: ../src/xz/xz.1:69
-msgid "B<xz> is a general-purpose data compression tool with command line syntax similar to B<gzip>(1) and B<bzip2>(1). The native file format is the B<.xz> format, but the legacy B<.lzma> format used by LZMA Utils and raw compressed streams with no container format headers are also supported. In addition, decompression of the B<.lz> format used by B<lzip> is supported."
-msgstr "B<xz> este un instrument de comprimare a datelor de uz general cu sintaxă de linie de comandă similară cu B<gzip>(1) și B<bzip2>(1). Formatul de fișier nativ este formatul B<.xz>, dar formatul vechi B<.lzma> folosit de LZMA Utils și fluxurile comprimate brute fără anteturi de format container sunt de asemenea acceptate. În plus, este acceptată decomprimarea formatului B<.lz> folosit de B<lzip>."
+msgid ""
+"B<xz> is a general-purpose data compression tool with command line syntax "
+"similar to B<gzip>(1) and B<bzip2>(1). The native file format is the B<."
+"xz> format, but the legacy B<.lzma> format used by LZMA Utils and raw "
+"compressed streams with no container format headers are also supported. In "
+"addition, decompression of the B<.lz> format used by B<lzip> is supported."
+msgstr ""
+"B<xz> este un instrument de comprimare a datelor de uz general cu sintaxă de "
+"linie de comandă similară cu B<gzip>(1) și B<bzip2>(1). Formatul de fișier "
+"nativ este formatul B<.xz>, dar formatul vechi B<.lzma> folosit de LZMA "
+"Utils și fluxurile comprimate brute fără anteturi de format container sunt "
+"de asemenea acceptate. În plus, este acceptată decomprimarea formatului B<."
+"lz> folosit de B<lzip>."
#. type: Plain text
#: ../src/xz/xz.1:91
-msgid "B<xz> compresses or decompresses each I<file> according to the selected operation mode. If no I<files> are given or I<file> is B<->, B<xz> reads from standard input and writes the processed data to standard output. B<xz> will refuse (display an error and skip the I<file>) to write compressed data to standard output if it is a terminal. Similarly, B<xz> will refuse to read compressed data from standard input if it is a terminal."
-msgstr "B<xz> comprimă sau decomprimă fiecare I<fișier> în funcție de modul de operare selectat. Dacă nu sunt date I<fișiere> sau I<fișier> este B<->, B<xz> citește de la intrarea standard și scrie datele procesate la ieșirea standard. B<xz> va refuza (afișează o eroare și omite I<fișier>) să scrie date comprimate la ieșirea standard dacă este un terminal. În mod similar, B<xz> va refuza să citească datele comprimate de la intrarea standard dacă este un terminal."
+msgid ""
+"B<xz> compresses or decompresses each I<file> according to the selected "
+"operation mode. If no I<files> are given or I<file> is B<->, B<xz> reads "
+"from standard input and writes the processed data to standard output. B<xz> "
+"will refuse (display an error and skip the I<file>) to write compressed "
+"data to standard output if it is a terminal. Similarly, B<xz> will refuse "
+"to read compressed data from standard input if it is a terminal."
+msgstr ""
+"B<xz> comprimă sau decomprimă fiecare I<fișier> în funcție de modul de "
+"operare selectat. Dacă nu sunt date I<fișiere> sau I<fișier> este B<->, "
+"B<xz> citește de la intrarea standard și scrie datele procesate la ieșirea "
+"standard. B<xz> va refuza (afișează o eroare și omite I<fișier>) să scrie "
+"date comprimate la ieșirea standard dacă este un terminal. În mod similar, "
+"B<xz> va refuza să citească datele comprimate de la intrarea standard dacă "
+"este un terminal."
#. type: Plain text
#: ../src/xz/xz.1:101
-msgid "Unless B<--stdout> is specified, I<files> other than B<-> are written to a new file whose name is derived from the source I<file> name:"
-msgstr "Cu excepția cazului în care este specificată opțiunea B<--stdout>, I<fișierele> altele decât B<-> sunt scrise într-un fișier nou al cărui nume este derivat din numele I<fișierului> sursă:"
+msgid ""
+"Unless B<--stdout> is specified, I<files> other than B<-> are written to a "
+"new file whose name is derived from the source I<file> name:"
+msgstr ""
+"Cu excepția cazului în care este specificată opțiunea B<--stdout>, "
+"I<fișierele> altele decât B<-> sunt scrise într-un fișier nou al cărui nume "
+"este derivat din numele I<fișierului> sursă:"
#. type: IP
#: ../src/xz/xz.1:101 ../src/xz/xz.1:107 ../src/xz/xz.1:132 ../src/xz/xz.1:137
@@ -160,28 +201,52 @@ msgstr "\\(bu"
#. type: Plain text
#: ../src/xz/xz.1:107
-msgid "When compressing, the suffix of the target file format (B<.xz> or B<.lzma>) is appended to the source filename to get the target filename."
-msgstr "La comprimare, sufixul formatului de fișier țintă (B<.xz> sau B<.lzma>) este atașat la numele fișierului sursă pentru a se obține numele fișierului țintă."
+msgid ""
+"When compressing, the suffix of the target file format (B<.xz> or B<.lzma>) "
+"is appended to the source filename to get the target filename."
+msgstr ""
+"La comprimare, sufixul formatului de fișier țintă (B<.xz> sau B<.lzma>) este "
+"atașat la numele fișierului sursă pentru a se obține numele fișierului țintă."
#. type: Plain text
#: ../src/xz/xz.1:122
-msgid "When decompressing, the B<.xz>, B<.lzma>, or B<.lz> suffix is removed from the filename to get the target filename. B<xz> also recognizes the suffixes B<.txz> and B<.tlz>, and replaces them with the B<.tar> suffix."
-msgstr "La decomprimare, sufixul B<.xz>, B<.lzma> sau B<.lz> este eliminat din numele fișierului pentru a se obține numele fișierului țintă. B<xz> recunoaște și sufixele B<.txz> și B<.tlz> și le înlocuiește cu sufixul B<.tar>."
+msgid ""
+"When decompressing, the B<.xz>, B<.lzma>, or B<.lz> suffix is removed from "
+"the filename to get the target filename. B<xz> also recognizes the suffixes "
+"B<.txz> and B<.tlz>, and replaces them with the B<.tar> suffix."
+msgstr ""
+"La decomprimare, sufixul B<.xz>, B<.lzma> sau B<.lz> este eliminat din "
+"numele fișierului pentru a se obține numele fișierului țintă. B<xz> "
+"recunoaște și sufixele B<.txz> și B<.tlz> și le înlocuiește cu sufixul B<."
+"tar>."
#. type: Plain text
#: ../src/xz/xz.1:126
-msgid "If the target file already exists, an error is displayed and the I<file> is skipped."
-msgstr "Dacă fișierul țintă există deja, este afișată o eroare și I<fișier> este omis."
+msgid ""
+"If the target file already exists, an error is displayed and the I<file> is "
+"skipped."
+msgstr ""
+"Dacă fișierul țintă există deja, este afișată o eroare și I<fișier> este "
+"omis."
#. type: Plain text
#: ../src/xz/xz.1:132
-msgid "Unless writing to standard output, B<xz> will display a warning and skip the I<file> if any of the following applies:"
-msgstr "Cu excepția cazului în care scrie la ieșirea standard, B<xz> va afișa un avertisment și va omite I<fișier>ul dacă se aplică oricare dintre următoarele:"
+msgid ""
+"Unless writing to standard output, B<xz> will display a warning and skip the "
+"I<file> if any of the following applies:"
+msgstr ""
+"Cu excepția cazului în care scrie la ieșirea standard, B<xz> va afișa un "
+"avertisment și va omite I<fișier>ul dacă se aplică oricare dintre "
+"următoarele:"
#. type: Plain text
#: ../src/xz/xz.1:137
-msgid "I<File> is not a regular file. Symbolic links are not followed, and thus they are not considered to be regular files."
-msgstr "I<Fișierul> nu este un fișier obișnuit. Legăturile simbolice nu sunt urmate și, prin urmare, nu sunt considerate fișiere obișnuite."
+msgid ""
+"I<File> is not a regular file. Symbolic links are not followed, and thus "
+"they are not considered to be regular files."
+msgstr ""
+"I<Fișierul> nu este un fișier obișnuit. Legăturile simbolice nu sunt urmate "
+"și, prin urmare, nu sunt considerate fișiere obișnuite."
#. type: Plain text
#: ../src/xz/xz.1:140
@@ -191,32 +256,76 @@ msgstr "I<Fișierul> are mai mult de o legătură dură."
#. type: Plain text
#: ../src/xz/xz.1:143
msgid "I<File> has setuid, setgid, or sticky bit set."
-msgstr "I<Fișierul> are activat bitul «setuid», «setgid» sau cel lipicios(sticky)."
+msgstr ""
+"I<Fișierul> are activat bitul «setuid», «setgid» sau cel lipicios(sticky)."
#. type: Plain text
#: ../src/xz/xz.1:159
-msgid "The operation mode is set to compress and the I<file> 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)."
-msgstr "Modul de operare este stabilit la comprimare și I<fișier> are deja un sufix al formatului de fișier țintă (B<.xz> sau B<.txz> când se comprimă în formatul B<.xz> și B<.lzma> sau B<.tlz> când se comprimă în formatul B<.lzma>)."
+msgid ""
+"The operation mode is set to compress and the I<file> 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)."
+msgstr ""
+"Modul de operare este stabilit la comprimare și I<fișier> are deja un sufix "
+"al formatului de fișier țintă (B<.xz> sau B<.txz> când se comprimă în "
+"formatul B<.xz> și B<.lzma> sau B<.tlz> când se comprimă în formatul B<."
+"lzma>)."
#. type: Plain text
#: ../src/xz/xz.1:169
-msgid "The operation mode is set to decompress and the I<file> doesn't have a suffix of any of the supported file formats (B<.xz>, B<.txz>, B<.lzma>, B<.tlz>, or B<.lz>)."
-msgstr "Modul de operare este stabilit la decomprimare și I<fișierul> nu are un sufix al niciunui format de fișier acceptat (B<.xz>, B<.txz>, B<.lzma>, B<.tlz>, sau B<.lz>)."
+msgid ""
+"The operation mode is set to decompress and the I<file> doesn't have a "
+"suffix of any of the supported file formats (B<.xz>, B<.txz>, B<.lzma>, B<."
+"tlz>, or B<.lz>)."
+msgstr ""
+"Modul de operare este stabilit la decomprimare și I<fișierul> nu are un "
+"sufix al niciunui format de fișier acceptat (B<.xz>, B<.txz>, B<.lzma>, B<."
+"tlz>, sau B<.lz>)."
#. type: Plain text
#: ../src/xz/xz.1:184
-msgid "After successfully compressing or decompressing the I<file>, B<xz> copies the owner, group, permissions, access time, and modification time from the source I<file> to the target file. If copying the group fails, the permissions are modified so that the target file doesn't become accessible to users who didn't have permission to access the source I<file>. B<xz> doesn't support copying other metadata like access control lists or extended attributes yet."
-msgstr "După comprimarea sau decomprimarea cu succes a I<fișierului>, B<xz> copiază proprietarul, grupul, permisiunile, timpul de acces și timpul de modificare din I<fișierul> sursă în fișierul țintă. Dacă copierea grupului eșuează, permisiunile sunt modificate astfel încât fișierul țintă să nu devină accesibil utilizatorilor care nu aveau permisiunea de a accesa I<fișierul> sursă. B<xz> nu acceptă încă copierea altor metadate, cum ar fi listele de control al accesului sau atributele extinse."
+msgid ""
+"After successfully compressing or decompressing the I<file>, B<xz> copies "
+"the owner, group, permissions, access time, and modification time from the "
+"source I<file> to the target file. If copying the group fails, the "
+"permissions are modified so that the target file doesn't become accessible "
+"to users who didn't have permission to access the source I<file>. B<xz> "
+"doesn't support copying other metadata like access control lists or extended "
+"attributes yet."
+msgstr ""
+"După comprimarea sau decomprimarea cu succes a I<fișierului>, B<xz> copiază "
+"proprietarul, grupul, permisiunile, timpul de acces și timpul de modificare "
+"din I<fișierul> sursă în fișierul țintă. Dacă copierea grupului eșuează, "
+"permisiunile sunt modificate astfel încât fișierul țintă să nu devină "
+"accesibil utilizatorilor care nu aveau permisiunea de a accesa I<fișierul> "
+"sursă. B<xz> nu acceptă încă copierea altor metadate, cum ar fi listele de "
+"control al accesului sau atributele extinse."
#. type: Plain text
#: ../src/xz/xz.1:194
-msgid "Once the target file has been successfully closed, the source I<file> is removed unless B<--keep> was specified. The source I<file> is never removed if the output is written to standard output or if an error occurs."
-msgstr "Odată ce fișierul țintă a fost închis cu succes, I<fișierul> sursă este eliminat dacă nu a fost specificată opțiunea B<--keep>. I<Fișierul> sursă nu este niciodată eliminat dacă rezultatul este scris la ieșirea standard sau dacă apare o eroare."
+msgid ""
+"Once the target file has been successfully closed, the source I<file> is "
+"removed unless B<--keep> was specified. The source I<file> is never removed "
+"if the output is written to standard output or if an error occurs."
+msgstr ""
+"Odată ce fișierul țintă a fost închis cu succes, I<fișierul> sursă este "
+"eliminat dacă nu a fost specificată opțiunea B<--keep>. I<Fișierul> sursă nu "
+"este niciodată eliminat dacă rezultatul este scris la ieșirea standard sau "
+"dacă apare o eroare."
#. type: Plain text
#: ../src/xz/xz.1:206
-msgid "Sending B<SIGINFO> or B<SIGUSR1> to the B<xz> process makes it print progress information to standard error. This has only limited use since when standard error is a terminal, using B<--verbose> will display an automatically updating progress indicator."
-msgstr "Trimiterea unui semnal B<SIGINFO> sau B<SIGUSR1> către procesul B<xz> face ca acesta să imprime informații despre progres la ieșirea de eroare standard. Acest lucru are o utilizare limitată, deoarece atunci când ieșirea de eroare standard este un terminal, folosind opțiunea B<--verbose> va afișa un indicator de progres de actualizare automată."
+msgid ""
+"Sending B<SIGINFO> or B<SIGUSR1> to the B<xz> process makes it print "
+"progress information to standard error. This has only limited use since "
+"when standard error is a terminal, using B<--verbose> will display an "
+"automatically updating progress indicator."
+msgstr ""
+"Trimiterea unui semnal B<SIGINFO> sau B<SIGUSR1> către procesul B<xz> face "
+"ca acesta să imprime informații despre progres la ieșirea de eroare "
+"standard. Acest lucru are o utilizare limitată, deoarece atunci când ieșirea "
+"de eroare standard este un terminal, folosind opțiunea B<--verbose> va afișa "
+"un indicator de progres de actualizare automată."
#. type: SS
#: ../src/xz/xz.1:207
@@ -232,23 +341,94 @@ msgstr "Utilizarea memoriei"
# va fi: „5% la 20%â€, È™i nu: „5 % la 20 %â€
#. type: Plain text
#: ../src/xz/xz.1:223
-msgid "The memory usage of B<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 decompressor. 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 B<xz -9> currently requires 65\\ MiB of memory. Still, it is possible to have B<.xz> files that require several gigabytes of memory to decompress."
-msgstr "Cantitatea de memorie utilizată de B<xz> variază de la câteva sute de kiloocteți la câțiva gigaocteți, în funcție de opțiunile de comprimare. Opțiunile utilizate la comprimarea unui fișier determină cerințele de memorie ale instrumentului de decomprimare. De obicei, instrumentul de decomprimare are nevoie de 5% până la 20% din cantitatea de memorie de care a avut nevoie instrumentul de comprimare la crearea fișierului. De exemplu, decomprimarea unui fișier creat cu B<xz -9> necesită în prezent 65Mio de memorie. Totuși, este posibil să aveți fișiere B<.xz> care necesită câțiva gigaocteți de memorie pentru decomprimare."
+msgid ""
+"The memory usage of B<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 decompressor. "
+"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 B<xz -9> currently requires 65\\ MiB of "
+"memory. Still, it is possible to have B<.xz> files that require several "
+"gigabytes of memory to decompress."
+msgstr ""
+"Cantitatea de memorie utilizată de B<xz> variază de la câteva sute de "
+"kiloocteți la câțiva gigaocteți, în funcție de opțiunile de comprimare. "
+"Opțiunile utilizate la comprimarea unui fișier determină cerințele de "
+"memorie ale instrumentului de decomprimare. De obicei, instrumentul de "
+"decomprimare are nevoie de 5% până la 20% din cantitatea de memorie de care "
+"a avut nevoie instrumentul de comprimare la crearea fișierului. De exemplu, "
+"decomprimarea unui fișier creat cu B<xz -9> necesită în prezent 65Mio de "
+"memorie. Totuși, este posibil să aveți fișiere B<.xz> care necesită câțiva "
+"gigaocteți de memorie pentru decomprimare."
#. type: Plain text
#: ../src/xz/xz.1:235
-msgid "Especially users of older systems may find the possibility of very large memory usage annoying. To prevent uncomfortable surprises, B<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 example, using B<ulimit>(1) to limit virtual memory tends to cripple B<mmap>(2))."
-msgstr "În special utilizatorii de sisteme mai vechi pot considera deranjantă posibilitatea unei utilizări foarte mari a memoriei. Pentru a preveni surprizele neplăcute, B<xz> are încorporat un limitator de utilizare a memoriei, care este dezactivat implicit. În timp ce unele sisteme de operare oferă modalități de a limita utilizarea memoriei proceselor, bazarea pe aceasta nu a fost considerată a fi suficient de flexibilă (de exemplu, utilizarea B<ulimit>(1) pentru a limita memoria virtuală tinde să paralizeze B<mmap>(2))."
+msgid ""
+"Especially users of older systems may find the possibility of very large "
+"memory usage annoying. To prevent uncomfortable surprises, B<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 example, using "
+"B<ulimit>(1) to limit virtual memory tends to cripple B<mmap>(2))."
+msgstr ""
+"În special utilizatorii de sisteme mai vechi pot considera deranjantă "
+"posibilitatea unei utilizări foarte mari a memoriei. Pentru a preveni "
+"surprizele neplăcute, B<xz> are încorporat un limitator de utilizare a "
+"memoriei, care este dezactivat implicit. ÃŽn timp ce unele sisteme de operare "
+"oferă modalități de a limita utilizarea memoriei proceselor, bazarea pe "
+"aceasta nu a fost considerată a fi suficient de flexibilă (de exemplu, "
+"utilizarea B<ulimit>(1) pentru a limita memoria virtuală tinde să paralizeze "
+"B<mmap>(2))."
#. type: Plain text
#: ../src/xz/xz.1:257
-msgid "The memory usage limiter can be enabled with the command line option B<--memlimit=>I<limit>. Often it is more convenient to enable the limiter by default by setting the environment variable B<XZ_DEFAULTS>, for example, B<XZ_DEFAULTS=--memlimit=150MiB>. It is possible to set the limits separately for compression and decompression by using B<--memlimit-compress=>I<limit> and B<--memlimit-decompress=>I<limit>. Using these two options outside B<XZ_DEFAULTS> is rarely useful because a single run of B<xz> cannot do both compression and decompression and B<--memlimit=>I<limit> (or B<-M> I<limit>) is shorter to type on the command line."
-msgstr "Limitatorul de utilizare a memoriei poate fi activat cu opțiunea din linia de comandă B<--memlimit=>I<limita>. Adesea este mai convenabil să activați limitatorul în mod implicit prin definirea variabilei de mediu B<XZ_DEFAULTS>, de exemplu, B<XZ_DEFAULTS=--memlimit=150MiB>. Este posibil să stabiliți limitele separat pentru comprimare și decomprimare folosind B<--memlimit-compress=>I<limita> și B<--memlimit-decompress=>I<limita>. Utilizarea acestor două opțiuni în afara B<XZ_DEFAULTS> este foarte rar utilă, deoarece o singură rulare a B<xz> nu poate face atât comprimarea, cât și decomprimarea și B<--memlimit=>I<limita> (sau B<-M> I<limita> ) este mai scurt de tastat pe linia de comandă."
+msgid ""
+"The memory usage limiter can be enabled with the command line option B<--"
+"memlimit=>I<limit>. Often it is more convenient to enable the limiter by "
+"default by setting the environment variable B<XZ_DEFAULTS>, for example, "
+"B<XZ_DEFAULTS=--memlimit=150MiB>. It is possible to set the limits "
+"separately for compression and decompression by using B<--memlimit-"
+"compress=>I<limit> and B<--memlimit-decompress=>I<limit>. Using these two "
+"options outside B<XZ_DEFAULTS> is rarely useful because a single run of "
+"B<xz> cannot do both compression and decompression and B<--"
+"memlimit=>I<limit> (or B<-M> I<limit>) is shorter to type on the command "
+"line."
+msgstr ""
+"Limitatorul de utilizare a memoriei poate fi activat cu opțiunea din linia "
+"de comandă B<--memlimit=>I<limita>. Adesea este mai convenabil să activați "
+"limitatorul în mod implicit prin definirea variabilei de mediu "
+"B<XZ_DEFAULTS>, de exemplu, B<XZ_DEFAULTS=--memlimit=150MiB>. Este posibil "
+"să stabiliți limitele separat pentru comprimare și decomprimare folosind B<--"
+"memlimit-compress=>I<limita> și B<--memlimit-decompress=>I<limita>. "
+"Utilizarea acestor două opțiuni în afara B<XZ_DEFAULTS> este foarte rar "
+"utilă, deoarece o singură rulare a B<xz> nu poate face atât comprimarea, cât "
+"și decomprimarea și B<--memlimit=>I<limita> (sau B<-M> I<limita> ) este mai "
+"scurt de tastat pe linia de comandă."
#. type: Plain text
#: ../src/xz/xz.1:276
-msgid "If the specified memory usage limit is exceeded when decompressing, B<xz> will display an error and decompressing the file will fail. If the limit is exceeded when compressing, B<xz> will try to scale the settings down so that the limit is no longer exceeded (except when using B<--format=raw> or B<--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 B<xz -9>, the settings will be scaled down only a little, not all the way down to B<xz -8>."
-msgstr "Dacă limita de utilizare a memoriei specificată este depășită la decomprimare, B<xz> va afișa o eroare și decomprimarea fișierului va eșua. Dacă limita este depășită la comprimare, B<xz> va încerca să reducă valorile stabilite astfel încât limita să nu mai fie depășită (cu excepția cazului în care se utilizează opțiunea B<--format=raw> sau B<--no-adjust>). În acest fel, operațiunea nu va eșua decât dacă limita stabilită este foarte mică. Scalarea valorilor stabilite se face în pași care nu se potrivesc cu valorile prestabilite ale nivelului de comprimare, de exemplu, dacă limita este doar puțin mai mică decât cantitatea necesară pentru B<xz -9>, valorile stabilite vor fi reduse doar puțin , nu până la valoarea prestabilită a lui B<xz -8>."
+msgid ""
+"If the specified memory usage limit is exceeded when decompressing, B<xz> "
+"will display an error and decompressing the file will fail. If the limit is "
+"exceeded when compressing, B<xz> will try to scale the settings down so that "
+"the limit is no longer exceeded (except when using B<--format=raw> or B<--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 B<xz -9>, the settings will be scaled down only "
+"a little, not all the way down to B<xz -8>."
+msgstr ""
+"Dacă limita de utilizare a memoriei specificată este depășită la "
+"decomprimare, B<xz> va afișa o eroare și decomprimarea fișierului va eșua. "
+"Dacă limita este depășită la comprimare, B<xz> va încerca să reducă valorile "
+"stabilite astfel încât limita să nu mai fie depășită (cu excepția cazului în "
+"care se utilizează opțiunea B<--format=raw> sau B<--no-adjust>). În acest "
+"fel, operațiunea nu va eșua decât dacă limita stabilită este foarte mică. "
+"Scalarea valorilor stabilite se face în pași care nu se potrivesc cu "
+"valorile prestabilite ale nivelului de comprimare, de exemplu, dacă limita "
+"este doar puțin mai mică decât cantitatea necesară pentru B<xz -9>, valorile "
+"stabilite vor fi reduse doar puțin , nu până la valoarea prestabilită a lui "
+"B<xz -8>."
#. type: SS
#: ../src/xz/xz.1:277
@@ -258,18 +438,35 @@ msgstr "Concatenare și completare (prin umplere cu octeți nuli) cu fișiere .x
#. type: Plain text
#: ../src/xz/xz.1:285
-msgid "It is possible to concatenate B<.xz> files as is. B<xz> will decompress such files as if they were a single B<.xz> file."
-msgstr "Este posibil să concatenați fișierele B<.xz> așa cum sunt. B<xz> va decomprima astfel de fișiere ca și cum ar fi un singur fișier B<.xz>."
+msgid ""
+"It is possible to concatenate B<.xz> files as is. B<xz> will decompress "
+"such files as if they were a single B<.xz> file."
+msgstr ""
+"Este posibil să concatenați fișierele B<.xz> așa cum sunt. B<xz> va "
+"decomprima astfel de fișiere ca și cum ar fi un singur fișier B<.xz>."
#. type: Plain text
#: ../src/xz/xz.1:294
-msgid "It is possible to insert padding between the concatenated parts or after 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 B<.xz> file is stored on a medium that measures file sizes in 512-byte blocks."
-msgstr "Este posibil să se introducă umplutură între părțile concatenate sau după ultima parte. Umplutura trebuie să fie compusă din octeți nuli, iar dimensiunea umpluturii trebuie să fie un multiplu de patru octeți. Acest lucru poate fi util, de exemplu, dacă fișierul B<.xz> este stocat pe un mediu care măsoară dimensiunile fișierelor în blocuri de 512 de octeți."
+msgid ""
+"It is possible to insert padding between the concatenated parts or after 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 B<.xz> file is stored on a medium that measures file sizes in 512-"
+"byte blocks."
+msgstr ""
+"Este posibil să se introducă umplutură între părțile concatenate sau după "
+"ultima parte. Umplutura trebuie să fie compusă din octeți nuli, iar "
+"dimensiunea umpluturii trebuie să fie un multiplu de patru octeți. Acest "
+"lucru poate fi util, de exemplu, dacă fișierul B<.xz> este stocat pe un "
+"mediu care măsoară dimensiunile fișierelor în blocuri de 512 de octeți."
#. type: Plain text
#: ../src/xz/xz.1:298
-msgid "Concatenation and padding are not allowed with B<.lzma> files or raw streams."
-msgstr "Concatenarea și completarea nu sunt permise cu fișierele B<.lzma> sau fluxurile brute."
+msgid ""
+"Concatenation and padding are not allowed with B<.lzma> files or raw streams."
+msgstr ""
+"Concatenarea și completarea nu sunt permise cu fișierele B<.lzma> sau "
+"fluxurile brute."
#. type: SH
#: ../src/xz/xz.1:299 ../src/xzdec/xzdec.1:59
@@ -285,8 +482,15 @@ msgstr "Sufixe de numere întregi și valori speciale"
#. type: Plain text
#: ../src/xz/xz.1:305
-msgid "In most places where an integer argument is expected, an optional suffix is supported to easily indicate large integers. There must be no space between the integer and the suffix."
-msgstr "În majoritatea locurilor în care este de așteptat un număr întreg ca argument, un sufix opțional este acceptat pentru a indica cu ușurință numerele întregi mari. Nu trebuie să existe spațiu între numărul întreg și sufix."
+msgid ""
+"In most places where an integer argument is expected, an optional suffix is "
+"supported to easily indicate large integers. There must be no space between "
+"the integer and the suffix."
+msgstr ""
+"În majoritatea locurilor în care este de așteptat un număr întreg ca "
+"argument, un sufix opțional este acceptat pentru a indica cu ușurință "
+"numerele întregi mari. Nu trebuie să existe spațiu între numărul întreg și "
+"sufix."
#. type: TP
#: ../src/xz/xz.1:305
@@ -296,8 +500,12 @@ msgstr "B<KiB>"
#. type: Plain text
#: ../src/xz/xz.1:316
-msgid "Multiply the integer by 1,024 (2^10). B<Ki>, B<k>, B<kB>, B<K>, and B<KB> are accepted as synonyms for B<KiB>."
-msgstr "Înmulțește numărul întreg cu 1.024 (2^10). B<Ki>, B<k>, B<kB>, B<K> și B<KB> sunt acceptate ca sinonime pentru B<KiB>."
+msgid ""
+"Multiply the integer by 1,024 (2^10). B<Ki>, B<k>, B<kB>, B<K>, and B<KB> "
+"are accepted as synonyms for B<KiB>."
+msgstr ""
+"Înmulțește numărul întreg cu 1.024 (2^10). B<Ki>, B<k>, B<kB>, B<K> și "
+"B<KB> sunt acceptate ca sinonime pentru B<KiB>."
#. type: TP
#: ../src/xz/xz.1:316
@@ -307,8 +515,12 @@ msgstr "B<MiB>"
#. type: Plain text
#: ../src/xz/xz.1:326
-msgid "Multiply the integer by 1,048,576 (2^20). B<Mi>, B<m>, B<M>, and B<MB> are accepted as synonyms for B<MiB>."
-msgstr "Înmulțește numărul întreg cu 1,048,576 (2^20). B<Mi>, B<m>, B<M>, și B<MB> sunt acceptate ca sinonime pentru B<MiB>."
+msgid ""
+"Multiply the integer by 1,048,576 (2^20). B<Mi>, B<m>, B<M>, and B<MB> are "
+"accepted as synonyms for B<MiB>."
+msgstr ""
+"Înmulțește numărul întreg cu 1,048,576 (2^20). B<Mi>, B<m>, B<M>, și B<MB> "
+"sunt acceptate ca sinonime pentru B<MiB>."
#. type: TP
#: ../src/xz/xz.1:326
@@ -318,13 +530,21 @@ msgstr "B<GiB>"
#. type: Plain text
#: ../src/xz/xz.1:336
-msgid "Multiply the integer by 1,073,741,824 (2^30). B<Gi>, B<g>, B<G>, and B<GB> are accepted as synonyms for B<GiB>."
-msgstr "Înmulțește numărul întreg cu 1,073,741,824 (2^30). B<Gi>, B<g>, B<G>, și B<GB> sunt acceptate ca sinonime pentru B<GiB>."
+msgid ""
+"Multiply the integer by 1,073,741,824 (2^30). B<Gi>, B<g>, B<G>, and B<GB> "
+"are accepted as synonyms for B<GiB>."
+msgstr ""
+"Înmulțește numărul întreg cu 1,073,741,824 (2^30). B<Gi>, B<g>, B<G>, și "
+"B<GB> sunt acceptate ca sinonime pentru B<GiB>."
#. type: Plain text
#: ../src/xz/xz.1:341
-msgid "The special value B<max> can be used to indicate the maximum integer value supported by the option."
-msgstr "Valoarea specială B<max> poate fi utilizată pentru a indica valoarea maximă întreagă suportată de opțiune."
+msgid ""
+"The special value B<max> can be used to indicate the maximum integer value "
+"supported by the option."
+msgstr ""
+"Valoarea specială B<max> poate fi utilizată pentru a indica valoarea maximă "
+"întreagă suportată de opțiune."
#. type: SS
#: ../src/xz/xz.1:342
@@ -334,8 +554,11 @@ msgstr "Mod de operare"
#. type: Plain text
#: ../src/xz/xz.1:345
-msgid "If multiple operation mode options are given, the last one takes effect."
-msgstr "Dacă sunt date mai multe opțiuni de mod de funcționare, ultima dintre ele, este cea care va avea efect."
+msgid ""
+"If multiple operation mode options are given, the last one takes effect."
+msgstr ""
+"Dacă sunt date mai multe opțiuni de mod de funcționare, ultima dintre ele, "
+"este cea care va avea efect."
#. type: TP
#: ../src/xz/xz.1:345
@@ -345,8 +568,15 @@ msgstr "B<-z>, B<--compress>"
#. type: Plain text
#: ../src/xz/xz.1:354
-msgid "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, B<unxz> implies B<--decompress>)."
-msgstr "Comprimare. Acesta este modul de operare implicit atunci când nu este specificată nicio opțiune de mod de funcționare și nici un alt mod de operare nu este implicat din numele comenzii (de exemplu, B<unxz> implică B<--decompress>)."
+msgid ""
+"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, B<unxz> implies B<--decompress>)."
+msgstr ""
+"Comprimare. Acesta este modul de operare implicit atunci când nu este "
+"specificată nicio opțiune de mod de funcționare și nici un alt mod de "
+"operare nu este implicat din numele comenzii (de exemplu, B<unxz> implică "
+"B<--decompress>)."
#. type: TP
#: ../src/xz/xz.1:354 ../src/xzdec/xzdec.1:60
@@ -367,8 +597,15 @@ msgstr "B<-t>, B<--test>"
#. type: Plain text
#: ../src/xz/xz.1:366
-msgid "Test the integrity of compressed I<files>. This option is equivalent to B<--decompress --stdout> except that the decompressed data is discarded instead of being written to standard output. No files are created or removed."
-msgstr "Testează integritatea I<fișierelor> comprimate. Această opțiune este echivalentă cu B<--decompress --stdout> cu excepția faptului că datele decomprimate sunt înlăturate în loc să fie scrise la ieșirea standard. Nu sunt create sau eliminate fișiere."
+msgid ""
+"Test the integrity of compressed I<files>. This option is equivalent to B<--"
+"decompress --stdout> except that the decompressed data is discarded instead "
+"of being written to standard output. No files are created or removed."
+msgstr ""
+"Testează integritatea I<fișierelor> comprimate. Această opțiune este "
+"echivalentă cu B<--decompress --stdout> cu excepția faptului că datele "
+"decomprimate sunt înlăturate în loc să fie scrise la ieșirea standard. Nu "
+"sunt create sau eliminate fișiere."
#. type: TP
#: ../src/xz/xz.1:366
@@ -378,18 +615,45 @@ msgstr "B<-l>, B<--list>"
#. type: Plain text
#: ../src/xz/xz.1:375
-msgid "Print information about compressed I<files>. No uncompressed output 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."
-msgstr "Afișează informații despre I<fișiere> comprimate. Nu are loc nicio decomprimare la ieșire și nu sunt create sau eliminate fișiere. În modul listă, programul nu poate citi datele comprimate din intrarea standard sau din alte surse care nu pot fi căutate."
+msgid ""
+"Print information about compressed I<files>. No uncompressed output 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."
+msgstr ""
+"Afișează informații despre I<fișiere> comprimate. Nu are loc nicio "
+"decomprimare la ieșire și nu sunt create sau eliminate fișiere. În modul "
+"listă, programul nu poate citi datele comprimate din intrarea standard sau "
+"din alte surse care nu pot fi căutate."
#. type: Plain text
#: ../src/xz/xz.1:390
-msgid "The default listing shows basic information about I<files>, one file per line. To get more detailed information, use also the B<--verbose> option. For even more information, use B<--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 example, B<less\\ -S> may be convenient if the terminal isn't wide enough."
-msgstr "Listarea implicită arată informații de bază despre I<fișiere>, câte un fișier pe linie. Pentru a obține informații mai detaliate, utilizați și opțiunea B<--verbose>. Pentru și mai multe informații, utilizați opțiunea B<--verbose> de două ori, dar rețineți că acest lucru poate fi lent, deoarece obținerea tuturor informațiilor suplimentare necesită multe căutări. Lățimea ieșirii detaliate depășește 80 de caractere, deci canalizarea ieșirii către, de exemplu, B<less\\ -S> poate fi convenabilă dacă terminalul nu este suficient de lat."
+msgid ""
+"The default listing shows basic information about I<files>, one file per "
+"line. To get more detailed information, use also the B<--verbose> option. "
+"For even more information, use B<--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 "
+"example, B<less\\ -S> may be convenient if the terminal isn't wide enough."
+msgstr ""
+"Listarea implicită arată informații de bază despre I<fișiere>, câte un "
+"fișier pe linie. Pentru a obține informații mai detaliate, utilizați și "
+"opțiunea B<--verbose>. Pentru și mai multe informații, utilizați opțiunea "
+"B<--verbose> de două ori, dar rețineți că acest lucru poate fi lent, "
+"deoarece obținerea tuturor informațiilor suplimentare necesită multe "
+"căutări. Lățimea ieșirii detaliate depășește 80 de caractere, deci "
+"canalizarea ieșirii către, de exemplu, B<less\\ -S> poate fi convenabilă "
+"dacă terminalul nu este suficient de lat."
#. type: Plain text
#: ../src/xz/xz.1:397
-msgid "The exact output may vary between B<xz> versions and different locales. For machine-readable output, B<--robot --list> should be used."
-msgstr "Ieșirea exactă poate varia între versiunile B<xz> și diferitele localizări(configurările regionale). Pentru ieșiri care pot fi citite de mașină, ar trebui utilizată opțiunea B<--robot --list>."
+msgid ""
+"The exact output may vary between B<xz> versions and different locales. For "
+"machine-readable output, B<--robot --list> should be used."
+msgstr ""
+"Ieșirea exactă poate varia între versiunile B<xz> și diferitele "
+"localizări(configurările regionale). Pentru ieșiri care pot fi citite de "
+"mașină, ar trebui utilizată opțiunea B<--robot --list>."
#. type: SS
#: ../src/xz/xz.1:398
@@ -410,8 +674,19 @@ msgstr "Nu șterge fișierele de intrare."
#. type: Plain text
#: ../src/xz/xz.1:416
-msgid "Since B<xz> 5.2.6, this option also makes B<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 B<--force>."
-msgstr "Începând cu B<xz> 5.2.6, această opțiune face ca B<xz> să comprime sau să decomprime, chiar dacă intrarea este o legătură simbolică către un fișier obișnuit, are mai mult de-o legătură dură sau are marcați biții setuid, setgid sau bitul lipicios. Biții setuid, setgid și bitul lipicios nu sunt copiați în fișierul țintă. În versiunile anterioare acest lucru se făcea numai cu ajutorul opțiunii B<--force>."
+msgid ""
+"Since B<xz> 5.2.6, this option also makes B<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 B<--force>."
+msgstr ""
+"Începând cu B<xz> 5.2.6, această opțiune face ca B<xz> să comprime sau să "
+"decomprime, chiar dacă intrarea este o legătură simbolică către un fișier "
+"obișnuit, are mai mult de-o legătură dură sau are marcați biții setuid, "
+"setgid sau bitul lipicios. Biții setuid, setgid și bitul lipicios nu sunt "
+"copiați în fișierul țintă. În versiunile anterioare acest lucru se făcea "
+"numai cu ajutorul opțiunii B<--force>."
#. type: TP
#: ../src/xz/xz.1:416
@@ -426,18 +701,46 @@ msgstr "Această opțiune are mai multe efecte:"
#. type: Plain text
#: ../src/xz/xz.1:423
-msgid "If the target file already exists, delete it before compressing or decompressing."
-msgstr "Dacă fișierul țintă există deja, îl șterge înainte de comprimare sau decomprimare."
+msgid ""
+"If the target file already exists, delete it before compressing or "
+"decompressing."
+msgstr ""
+"Dacă fișierul țintă există deja, îl șterge înainte de comprimare sau "
+"decomprimare."
#. type: Plain text
#: ../src/xz/xz.1:430
-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."
-msgstr "Comprimă sau decomprimă chiar dacă intrarea este o legătură simbolică către un fișier obișnuit, are mai mult de-o legătură dură sau are marcați biții setuid, setgid sau bitul lipicios. Biții setuid, setgid și bitul lipicios nu sunt copiați în fișierul țintă."
+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."
+msgstr ""
+"Comprimă sau decomprimă chiar dacă intrarea este o legătură simbolică către "
+"un fișier obișnuit, are mai mult de-o legătură dură sau are marcați biții "
+"setuid, setgid sau bitul lipicios. Biții setuid, setgid și bitul lipicios nu "
+"sunt copiați în fișierul țintă."
#. type: Plain text
#: ../src/xz/xz.1:455
-msgid "When used with B<--decompress> B<--stdout> and B<xz> cannot recognize the type of the source file, copy the source file as is to standard output. This allows B<xzcat> B<--force> to be used like B<cat>(1) for files that have not been compressed with B<xz>. Note that in future, B<xz> might support new compressed file formats, which may make B<xz> decompress more types of files instead of copying them as is to standard output. B<--format=>I<format> can be used to restrict B<xz> to decompress only a single file format."
-msgstr "Când este utilizată cu opțiunile B<--decompress> și B<--stdout>, comanda B<xz> nu poate recunoaște tipul fișierului sursă, și copiază fișierul sursă așa cum este la ieșirea standard. Acest lucru permite comenzii B<xzcat> B<--force> să fie folosită drept comanda B<cat>(1) pentru fișierele care nu au fost comprimate cu B<xz>. Rețineți că, în viitor, B<xz> ar putea să accepte noi formate de fișiere comprimate, ceea ce poate face ca B<xz> să decomprime mai multe tipuri de fișiere în loc să le copieze așa cum sunt la ieșirea standard. Opțiunea B<--format=>I<format> poate fi folosită pentru a restricționa B<xz> să decomprime doar un singur format de fișier."
+msgid ""
+"When used with B<--decompress> B<--stdout> and B<xz> cannot recognize the "
+"type of the source file, copy the source file as is to standard output. "
+"This allows B<xzcat> B<--force> to be used like B<cat>(1) for files that "
+"have not been compressed with B<xz>. Note that in future, B<xz> might "
+"support new compressed file formats, which may make B<xz> decompress more "
+"types of files instead of copying them as is to standard output. B<--"
+"format=>I<format> can be used to restrict B<xz> to decompress only a single "
+"file format."
+msgstr ""
+"Când este utilizată cu opțiunile B<--decompress> și B<--stdout>, comanda "
+"B<xz> nu poate recunoaște tipul fișierului sursă, și copiază fișierul sursă "
+"așa cum este la ieșirea standard. Acest lucru permite comenzii B<xzcat> B<--"
+"force> să fie folosită drept comanda B<cat>(1) pentru fișierele care nu au "
+"fost comprimate cu B<xz>. Rețineți că, în viitor, B<xz> ar putea să accepte "
+"noi formate de fișiere comprimate, ceea ce poate face ca B<xz> să decomprime "
+"mai multe tipuri de fișiere în loc să le copieze așa cum sunt la ieșirea "
+"standard. Opțiunea B<--format=>I<format> poate fi folosită pentru a "
+"restricționa B<xz> să decomprime doar un singur format de fișier."
#. type: TP
#: ../src/xz/xz.1:456 ../src/xzdec/xzdec.1:74
@@ -447,8 +750,12 @@ msgstr "B<-c>, B<--stdout>, B<--to-stdout>"
#. type: Plain text
#: ../src/xz/xz.1:462
-msgid "Write the compressed or decompressed data to standard output instead of a file. This implies B<--keep>."
-msgstr "Scrie datele comprimate sau decomprimate la ieșirea standard în loc de într-un fișier. Aceasta implică B<--keep>."
+msgid ""
+"Write the compressed or decompressed data to standard output instead of a "
+"file. This implies B<--keep>."
+msgstr ""
+"Scrie datele comprimate sau decomprimate la ieșirea standard în loc de într-"
+"un fișier. Aceasta implică B<--keep>."
#. type: TP
#: ../src/xz/xz.1:462
@@ -458,18 +765,34 @@ msgstr "B<--single-stream>"
#. type: Plain text
#: ../src/xz/xz.1:471
-msgid "Decompress only the first B<.xz> stream, and silently ignore possible remaining input data following the stream. Normally such trailing garbage makes B<xz> display an error."
-msgstr "Decomprimă numai primul flux B<.xz> și ignoră în tăcere posibilele date de intrare rămase în urma fluxului. În mod normal, astfel de resturi rămase face ca B<xz> să afișeze o eroare."
+msgid ""
+"Decompress only the first B<.xz> stream, and silently ignore possible "
+"remaining input data following the stream. Normally such trailing garbage "
+"makes B<xz> display an error."
+msgstr ""
+"Decomprimă numai primul flux B<.xz> și ignoră în tăcere posibilele date de "
+"intrare rămase în urma fluxului. În mod normal, astfel de resturi rămase "
+"face ca B<xz> să afișeze o eroare."
#. type: Plain text
#: ../src/xz/xz.1:480
-msgid "B<xz> never decompresses more than one stream from B<.lzma> files or raw streams, but this option still makes B<xz> ignore the possible trailing data after the B<.lzma> file or raw stream."
-msgstr "B<xz> nu decomprimă niciodată mai mult de un flux din fișierele B<.lzma> sau din fluxurile brute, dar această opțiune face ca B<xz> să ignore posibilele resturi de date rămase după fișierul B<.lzma> sau fluxul brut."
+msgid ""
+"B<xz> never decompresses more than one stream from B<.lzma> files or raw "
+"streams, but this option still makes B<xz> ignore the possible trailing data "
+"after the B<.lzma> file or raw stream."
+msgstr ""
+"B<xz> nu decomprimă niciodată mai mult de un flux din fișierele B<.lzma> sau "
+"din fluxurile brute, dar această opțiune face ca B<xz> să ignore posibilele "
+"resturi de date rămase după fișierul B<.lzma> sau fluxul brut."
#. type: Plain text
#: ../src/xz/xz.1:485
-msgid "This option has no effect if the operation mode is not B<--decompress> or B<--test>."
-msgstr "Această opțiune nu are efect dacă modul de funcționare nu este B<--decompress> sau B<--test>."
+msgid ""
+"This option has no effect if the operation mode is not B<--decompress> or "
+"B<--test>."
+msgstr ""
+"Această opțiune nu are efect dacă modul de funcționare nu este B<--"
+"decompress> sau B<--test>."
#. type: TP
#: ../src/xz/xz.1:485
@@ -479,8 +802,23 @@ msgstr "B<--no-sparse>"
#. type: Plain text
#: ../src/xz/xz.1:497
-msgid "Disable creation of sparse files. By default, if decompressing into a regular file, B<xz> tries to make the file sparse if the decompressed 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."
-msgstr "Dezactivează crearea de fișiere dispersate. În mod implicit, dacă decomprimă într-un fișier obișnuit, B<xz> încearcă să facă fișierul dispersat dacă datele decomprimate conțin secvențe lungi de zerouri binare. De asemenea, funcționează atunci când scrie la ieșirea standard, atâta timp cât ieșirea standard este conectată la un fișier obișnuit și sunt îndeplinite anumite condiții suplimentare pentru a o face în siguranță. Crearea de fișiere dispersate poate economisi spațiu pe disc și poate accelera decomprimarea prin reducerea cantității de date de In/Ieș pe disc."
+msgid ""
+"Disable creation of sparse files. By default, if decompressing into a "
+"regular file, B<xz> tries to make the file sparse if the decompressed 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."
+msgstr ""
+"Dezactivează crearea de fișiere dispersate. În mod implicit, dacă decomprimă "
+"într-un fișier obișnuit, B<xz> încearcă să facă fișierul dispersat dacă "
+"datele decomprimate conțin secvențe lungi de zerouri binare. De asemenea, "
+"funcționează atunci când scrie la ieșirea standard, atâta timp cât ieșirea "
+"standard este conectată la un fișier obișnuit și sunt îndeplinite anumite "
+"condiții suplimentare pentru a o face în siguranță. Crearea de fișiere "
+"dispersate poate economisi spațiu pe disc și poate accelera decomprimarea "
+"prin reducerea cantității de date de In/Ieș pe disc."
#. type: TP
#: ../src/xz/xz.1:497
@@ -490,18 +828,40 @@ msgstr "B<-S> I<.suf>, B<--suffix=>I<.suf>"
#. type: Plain text
#: ../src/xz/xz.1:509
-msgid "When compressing, use I<.suf> as the suffix for the target file instead of B<.xz> or B<.lzma>. If not writing to standard output and the source file already has the suffix I<.suf>, a warning is displayed and the file is skipped."
-msgstr "Când comprimă, utilizează I<.suf> ca sufix pentru fișierul țintă în loc de B<.xz> sau B<.lzma>. Dacă nu scrie la ieșirea standard și fișierul sursă are deja sufixul I<.suf>, este afișat un avertisment și fișierul este omis."
+msgid ""
+"When compressing, use I<.suf> as the suffix for the target file instead of "
+"B<.xz> or B<.lzma>. If not writing to standard output and the source file "
+"already has the suffix I<.suf>, a warning is displayed and the file is "
+"skipped."
+msgstr ""
+"Când comprimă, utilizează I<.suf> ca sufix pentru fișierul țintă în loc de "
+"B<.xz> sau B<.lzma>. Dacă nu scrie la ieșirea standard și fișierul sursă are "
+"deja sufixul I<.suf>, este afișat un avertisment și fișierul este omis."
#. type: Plain text
#: ../src/xz/xz.1:523
-msgid "When decompressing, recognize files with the suffix I<.suf> in addition to files with the B<.xz>, B<.txz>, B<.lzma>, B<.tlz>, or B<.lz> suffix. If the source file has the suffix I<.suf>, the suffix is removed to get the target filename."
-msgstr "Când decomprimă, recunoaște fișierele cu sufixul I<.suf> în plus față de fișierele cu sufixul B<.xz>, B<.txz>, B<.lzma>, B<.tlz> sau B<.lz>. Dacă fișierul sursă are sufixul I<.suf>, sufixul este eliminat pentru a obține numele fișierului țintă."
+msgid ""
+"When decompressing, recognize files with the suffix I<.suf> in addition to "
+"files with the B<.xz>, B<.txz>, B<.lzma>, B<.tlz>, or B<.lz> suffix. If the "
+"source file has the suffix I<.suf>, the suffix is removed to get the target "
+"filename."
+msgstr ""
+"Când decomprimă, recunoaște fișierele cu sufixul I<.suf> în plus față de "
+"fișierele cu sufixul B<.xz>, B<.txz>, B<.lzma>, B<.tlz> sau B<.lz>. Dacă "
+"fișierul sursă are sufixul I<.suf>, sufixul este eliminat pentru a obține "
+"numele fișierului țintă."
#. type: Plain text
#: ../src/xz/xz.1:529
-msgid "When compressing or decompressing raw streams (B<--format=raw>), the suffix must always be specified unless writing to standard output, because there is no default suffix for raw streams."
-msgstr "La comprimarea sau decomprimarea fluxurilor brute (B<--format=raw>), sufixul trebuie să fie întotdeauna specificat, cu excepția cazului în care se scrie la ieșirea standard, deoarece nu există un sufix implicit pentru fluxurile brute."
+msgid ""
+"When compressing or decompressing raw streams (B<--format=raw>), the suffix "
+"must always be specified unless writing to standard output, because there is "
+"no default suffix for raw streams."
+msgstr ""
+"La comprimarea sau decomprimarea fluxurilor brute (B<--format=raw>), sufixul "
+"trebuie să fie întotdeauna specificat, cu excepția cazului în care se scrie "
+"la ieșirea standard, deoarece nu există un sufix implicit pentru fluxurile "
+"brute."
#. type: TP
#: ../src/xz/xz.1:529
@@ -511,8 +871,19 @@ msgstr "B<--files>[B<=>I<fișier>]"
#. type: Plain text
#: ../src/xz/xz.1:543
-msgid "Read the filenames to process from I<file>; if I<file> is omitted, filenames are read from standard input. Filenames must be terminated with the newline character. A dash (B<->) is taken as a regular filename; it doesn't mean standard input. If filenames are given also as command line arguments, they are processed before the filenames read from I<file>."
-msgstr "Citește numele fișierelor de procesat din I<fișier>; dacă I<fișierul> este omis, numele fișierelor sunt citite de la intrarea standard. Numele de fișiere trebuie să fie terminate cu caracterul de linie nouă. O liniuță (B<->) este luată ca nume de fișier obișnuit; nu înseamnă intrarea standard. Dacă numele de fișiere sunt date și ca argumente în linia de comandă, ele sunt procesate înainte ca numele fișierelor să fie citite din I<fișier>."
+msgid ""
+"Read the filenames to process from I<file>; if I<file> is omitted, filenames "
+"are read from standard input. Filenames must be terminated with the newline "
+"character. A dash (B<->) is taken as a regular filename; it doesn't mean "
+"standard input. If filenames are given also as command line arguments, they "
+"are processed before the filenames read from I<file>."
+msgstr ""
+"Citește numele fișierelor de procesat din I<fișier>; dacă I<fișierul> este "
+"omis, numele fișierelor sunt citite de la intrarea standard. Numele de "
+"fișiere trebuie să fie terminate cu caracterul de linie nouă. O liniuță (B<-"
+">) este luată ca nume de fișier obișnuit; nu înseamnă intrarea standard. "
+"Dacă numele de fișiere sunt date și ca argumente în linia de comandă, ele "
+"sunt procesate înainte ca numele fișierelor să fie citite din I<fișier>."
#. type: TP
#: ../src/xz/xz.1:543
@@ -522,8 +893,12 @@ msgstr "B<--files0>[B<=>I<fișier>]"
#. type: Plain text
#: ../src/xz/xz.1:547
-msgid "This is identical to B<--files>[B<=>I<file>] except that each filename must be terminated with the null character."
-msgstr "Această opțiune este identică cu B<--files>[B<=>I<fișier>], cu excepția faptului că fiecare nume de fișier trebuie să fie terminat cu caracterul nul."
+msgid ""
+"This is identical to B<--files>[B<=>I<file>] except that each filename must "
+"be terminated with the null character."
+msgstr ""
+"Această opțiune este identică cu B<--files>[B<=>I<fișier>], cu excepția "
+"faptului că fiecare nume de fișier trebuie să fie terminat cu caracterul nul."
#. type: SS
#: ../src/xz/xz.1:548
@@ -550,8 +925,16 @@ msgstr "B<auto>"
#. type: Plain text
#: ../src/xz/xz.1:567
-msgid "This is the default. When compressing, B<auto> is equivalent to B<xz>. When decompressing, the format of the input file is automatically detected. Note that raw streams (created with B<--format=raw>) cannot be auto-detected."
-msgstr "Aceasta este valoarea implicită. La comprimare, B<auto> este echivalent cu B<xz>. La decomprimare, formatul fișierului de intrare este detectat automat. Rețineți că fluxurile brute (create cu B<--format=raw>) nu pot fi detectate automat."
+msgid ""
+"This is the default. When compressing, B<auto> is equivalent to B<xz>. "
+"When decompressing, the format of the input file is automatically detected. "
+"Note that raw streams (created with B<--format=raw>) cannot be auto-"
+"detected."
+msgstr ""
+"Aceasta este valoarea implicită. La comprimare, B<auto> este echivalent cu "
+"B<xz>. La decomprimare, formatul fișierului de intrare este detectat "
+"automat. Rețineți că fluxurile brute (create cu B<--format=raw>) nu pot fi "
+"detectate automat."
#. type: TP
#: ../src/xz/xz.1:567
@@ -561,8 +944,12 @@ msgstr "B<xz>"
#. type: Plain text
#: ../src/xz/xz.1:574
-msgid "Compress to the B<.xz> file format, or accept only B<.xz> files when decompressing."
-msgstr "Comprimă în formatul de fișier B<.xz> sau acceptă numai fișierele B<.xz> când decomprimă."
+msgid ""
+"Compress to the B<.xz> file format, or accept only B<.xz> files when "
+"decompressing."
+msgstr ""
+"Comprimă în formatul de fișier B<.xz> sau acceptă numai fișierele B<.xz> "
+"când decomprimă."
#. type: TP
#: ../src/xz/xz.1:574
@@ -572,8 +959,14 @@ msgstr "B<lzma>, B<alone>"
#. type: Plain text
#: ../src/xz/xz.1:584
-msgid "Compress to the legacy B<.lzma> file format, or accept only B<.lzma> files when decompressing. The alternative name B<alone> is provided for backwards compatibility with LZMA Utils."
-msgstr "Comprimă în formatul de fișier B<.lzma> vechi sau acceptă numai fișierele B<.lzma> când decomprimă. Numele alternativ B<alone> este furnizat pentru compatibilitatea cu versiunile mai vechi de LZMA Utils."
+msgid ""
+"Compress to the legacy B<.lzma> file format, or accept only B<.lzma> files "
+"when decompressing. The alternative name B<alone> is provided for backwards "
+"compatibility with LZMA Utils."
+msgstr ""
+"Comprimă în formatul de fișier B<.lzma> vechi sau acceptă numai fișierele B<."
+"lzma> când decomprimă. Numele alternativ B<alone> este furnizat pentru "
+"compatibilitatea cu versiunile mai vechi de LZMA Utils."
#. type: TP
#: ../src/xz/xz.1:584
@@ -583,18 +976,41 @@ msgstr "B<lzip>"
#. type: Plain text
#: ../src/xz/xz.1:590
-msgid "Accept only B<.lz> files when decompressing. Compression is not supported."
-msgstr "Acceptă numai fișierele B<.lz> când decomprimă. Comprimarea nu este acceptată."
+msgid ""
+"Accept only B<.lz> files when decompressing. Compression is not supported."
+msgstr ""
+"Acceptă numai fișierele B<.lz> când decomprimă. Comprimarea nu este "
+"acceptată."
#. type: Plain text
#: ../src/xz/xz.1:603
-msgid "The B<.lz> format version 0 and the unextended version 1 are supported. Version 0 files were produced by B<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 B<lzip> 1.18."
-msgstr "Formatul B<.lz> versiunea 0 și versiunea neextinsă 1 sunt acceptate. Fișierele versiunea 0 au fost produse de B<lzip> cu versiunea 1.3 sau mai veche. Astfel de fișiere nu sunt obișnuite, dar pot fi găsite în arhivele de fișiere, deoarece câteva pachete sursă au fost lansate în acest format. Oamenii ar putea avea și fișiere personale vechi în acest format. Suportul de decomprimare pentru versiunea de format 0 a fost eliminat în B<lzip> 1.18."
+msgid ""
+"The B<.lz> format version 0 and the unextended version 1 are supported. "
+"Version 0 files were produced by B<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 "
+"B<lzip> 1.18."
+msgstr ""
+"Formatul B<.lz> versiunea 0 și versiunea neextinsă 1 sunt acceptate. "
+"Fișierele versiunea 0 au fost produse de B<lzip> cu versiunea 1.3 sau mai "
+"veche. Astfel de fișiere nu sunt obișnuite, dar pot fi găsite în arhivele de "
+"fișiere, deoarece câteva pachete sursă au fost lansate în acest format. "
+"Oamenii ar putea avea și fișiere personale vechi în acest format. Suportul "
+"de decomprimare pentru versiunea de format 0 a fost eliminat în B<lzip> 1.18."
#. type: Plain text
#: ../src/xz/xz.1:612
-msgid "B<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 B<lzip> 1.6. This extension is rarely used and isn't supported by B<xz> (diagnosed as corrupt input)."
-msgstr "B<lzip> 1.4 și versiunile ulterioare creează fișiere în formatul versiunea 1. Extensia „sync flush marker†pentru versiunea 1 de format a fost adăugată în B<lzip> 1.6. Această extensie este folosită rar și nu este acceptată de B<xz> (diagnosticată ca intrare coruptă)."
+msgid ""
+"B<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 B<lzip> 1.6. This "
+"extension is rarely used and isn't supported by B<xz> (diagnosed as corrupt "
+"input)."
+msgstr ""
+"B<lzip> 1.4 și versiunile ulterioare creează fișiere în formatul versiunea "
+"1. Extensia „sync flush marker†pentru versiunea 1 de format a fost adăugată "
+"în B<lzip> 1.6. Această extensie este folosită rar și nu este acceptată de "
+"B<xz> (diagnosticată ca intrare coruptă)."
#. type: TP
#: ../src/xz/xz.1:612
@@ -604,8 +1020,17 @@ msgstr "B<raw>"
#. type: Plain text
#: ../src/xz/xz.1:620
-msgid "Compress or uncompress a raw stream (no headers). This is meant for advanced users only. To decode raw streams, you need use B<--format=raw> and explicitly specify the filter chain, which normally would have been stored in the container headers."
-msgstr "Comprimă sau decomprimă un flux brut (fără anteturi). Acest lucru este destinat doar utilizatorilor avansați. Pentru a decodifica fluxurile brute, trebuie să utilizați opțiunea B<--format=raw> și să specificați în mod explicit lanțul de filtre, care în mod normal ar fi fost stocat în anteturile containerului."
+msgid ""
+"Compress or uncompress a raw stream (no headers). This is meant for "
+"advanced users only. To decode raw streams, you need use B<--format=raw> "
+"and explicitly specify the filter chain, which normally would have been "
+"stored in the container headers."
+msgstr ""
+"Comprimă sau decomprimă un flux brut (fără anteturi). Acest lucru este "
+"destinat doar utilizatorilor avansați. Pentru a decodifica fluxurile brute, "
+"trebuie să utilizați opțiunea B<--format=raw> și să specificați în mod "
+"explicit lanțul de filtre, care în mod normal ar fi fost stocat în "
+"anteturile containerului."
#. type: TP
#: ../src/xz/xz.1:621
@@ -615,8 +1040,18 @@ msgstr "B<-C> I<verificarea>, B<--check=>I<verificarea>"
#. type: Plain text
#: ../src/xz/xz.1:636
-msgid "Specify the type of the integrity check. The check is calculated from the uncompressed data and stored in the B<.xz> file. This option has an effect only when compressing into the B<.xz> format; the B<.lzma> format doesn't support integrity checks. The integrity check (if any) is verified when the B<.xz> file is decompressed."
-msgstr "Specifică tipul verificării integrității. Verificarea este calculată din datele necomprimate și stocată în fișierul B<.xz>. Această opțiune are efect numai la comprimarea în format B<.xz>; formatul B<.lzma> nu acceptă verificări de integritate. Verificarea integrității (dacă există) este efectuată atunci când fișierul B<.xz> este decomprimat."
+msgid ""
+"Specify the type of the integrity check. The check is calculated from the "
+"uncompressed data and stored in the B<.xz> file. This option has an effect "
+"only when compressing into the B<.xz> format; the B<.lzma> format doesn't "
+"support integrity checks. The integrity check (if any) is verified when the "
+"B<.xz> file is decompressed."
+msgstr ""
+"Specifică tipul verificării integrității. Verificarea este calculată din "
+"datele necomprimate și stocată în fișierul B<.xz>. Această opțiune are efect "
+"numai la comprimarea în format B<.xz>; formatul B<.lzma> nu acceptă "
+"verificări de integritate. Verificarea integrității (dacă există) este "
+"efectuată atunci când fișierul B<.xz> este decomprimat."
#. type: Plain text
#: ../src/xz/xz.1:640
@@ -631,8 +1066,14 @@ msgstr "B<none>"
#. type: Plain text
#: ../src/xz/xz.1:647
-msgid "Don't calculate an integrity check at all. This is usually a bad idea. This can be useful when integrity of the data is verified by other means anyway."
-msgstr "Nu calculează deloc o verificare a integrității. Aceasta este de obicei o idee proastă. Acest lucru poate fi util atunci când integritatea datelor este oricum verificată prin alte mijloace."
+msgid ""
+"Don't calculate an integrity check at all. This is usually a bad idea. "
+"This can be useful when integrity of the data is verified by other means "
+"anyway."
+msgstr ""
+"Nu calculează deloc o verificare a integrității. Aceasta este de obicei o "
+"idee proastă. Acest lucru poate fi util atunci când integritatea datelor "
+"este oricum verificată prin alte mijloace."
#. type: TP
#: ../src/xz/xz.1:647
@@ -653,8 +1094,14 @@ msgstr "B<crc64>"
#. type: Plain text
#: ../src/xz/xz.1:655
-msgid "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 negligible."
-msgstr "Calculează CRC64 folosind polinomul din ECMA-182. Aceasta este valoarea implicită, deoarece este ceva mai bună decât CRC32 la detectarea fișierelor deteriorate, iar diferența de viteză este neglijabilă."
+msgid ""
+"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 negligible."
+msgstr ""
+"Calculează CRC64 folosind polinomul din ECMA-182. Aceasta este valoarea "
+"implicită, deoarece este ceva mai bună decât CRC32 la detectarea fișierelor "
+"deteriorate, iar diferența de viteză este neglijabilă."
#. type: TP
#: ../src/xz/xz.1:655
@@ -665,12 +1112,17 @@ msgstr "B<sha256>"
#. type: Plain text
#: ../src/xz/xz.1:659
msgid "Calculate SHA-256. This is somewhat slower than CRC32 and CRC64."
-msgstr "Calculează SHA-256. Acest lucru este oarecum mai lent decât CRC32 și CRC64."
+msgstr ""
+"Calculează SHA-256. Acest lucru este oarecum mai lent decât CRC32 și CRC64."
#. type: Plain text
#: ../src/xz/xz.1:665
-msgid "Integrity of the B<.xz> headers is always verified with CRC32. It is not possible to change or disable it."
-msgstr "Integritatea antetelor B<.xz> este întotdeauna verificată cu CRC32. Nu este posibilă modificarea sau dezactivarea acesteia."
+msgid ""
+"Integrity of the B<.xz> headers is always verified with CRC32. It is not "
+"possible to change or disable it."
+msgstr ""
+"Integritatea antetelor B<.xz> este întotdeauna verificată cu CRC32. Nu este "
+"posibilă modificarea sau dezactivarea acesteia."
#. type: TP
#: ../src/xz/xz.1:665
@@ -680,13 +1132,21 @@ msgstr "B<--ignore-check>"
#. type: Plain text
#: ../src/xz/xz.1:671
-msgid "Don't verify the integrity check of the compressed data when decompressing. The CRC32 values in the B<.xz> headers will still be verified normally."
-msgstr "Nu efectuează verificarea integrității datelor comprimate la decomprimare. Valorile CRC32 din antetele B<.xz> vor fi însă verificate normal."
+msgid ""
+"Don't verify the integrity check of the compressed data when decompressing. "
+"The CRC32 values in the B<.xz> headers will still be verified normally."
+msgstr ""
+"Nu efectuează verificarea integrității datelor comprimate la decomprimare. "
+"Valorile CRC32 din antetele B<.xz> vor fi însă verificate normal."
#. type: Plain text
#: ../src/xz/xz.1:674
-msgid "B<Do not use this option unless you know what you are doing.> Possible reasons to use this option:"
-msgstr "B<Nu utilizați această opțiune decât dacă știți ce faceți>. Motive posibile pentru a utiliza această opțiune:"
+msgid ""
+"B<Do not use this option unless you know what you are doing.> Possible "
+"reasons to use this option:"
+msgstr ""
+"B<Nu utilizați această opțiune decât dacă știți ce faceți>. Motive posibile "
+"pentru a utiliza această opțiune:"
#. type: Plain text
#: ../src/xz/xz.1:677
@@ -695,8 +1155,16 @@ msgstr "Încercarea de a recupera datele dintr-un fișier .xz corupt."
#. type: Plain text
#: ../src/xz/xz.1:683
-msgid "Speeding up decompression. This matters mostly with SHA-256 or with files that have compressed extremely well. It's recommended to not use this option for this purpose unless the file integrity is verified externally in some other way."
-msgstr "Accelerarea decomprimării. Acest lucru contează mai ales cu SHA-256 sau cu fișierele care s-au comprimat extrem de bine. Este recomandat să nu utilizați această opțiune în acest scop decât dacă integritatea fișierului este verificată extern într-un alt mod."
+msgid ""
+"Speeding up decompression. This matters mostly with SHA-256 or with files "
+"that have compressed extremely well. It's recommended to not use this "
+"option for this purpose unless the file integrity is verified externally in "
+"some other way."
+msgstr ""
+"Accelerarea decomprimării. Acest lucru contează mai ales cu SHA-256 sau cu "
+"fișierele care s-au comprimat extrem de bine. Este recomandat să nu "
+"utilizați această opțiune în acest scop decât dacă integritatea fișierului "
+"este verificată extern într-un alt mod."
#. type: TP
#: ../src/xz/xz.1:684
@@ -706,13 +1174,35 @@ msgstr "B<-0> ... B<-9>"
#. type: Plain text
#: ../src/xz/xz.1:693
-msgid "Select a compression preset level. The default is B<-6>. If multiple preset levels are specified, the last one takes effect. If a custom filter chain was already specified, setting a compression preset level clears the custom filter chain."
-msgstr "Selectează un nivel prestabilit de comprimare. Valoarea implicită este B<-6>. Dacă sunt specificate mai multe niveluri prestabilite, ultimul are efect. Dacă a fost deja specificat un lanț de filtre personalizat, specificarea unui nivel prestabilit de comprimare șterge lanțul de filtre personalizat."
+msgid ""
+"Select a compression preset level. The default is B<-6>. If multiple "
+"preset levels are specified, the last one takes effect. If a custom filter "
+"chain was already specified, setting a compression preset level clears the "
+"custom filter chain."
+msgstr ""
+"Selectează un nivel prestabilit de comprimare. Valoarea implicită este "
+"B<-6>. Dacă sunt specificate mai multe niveluri prestabilite, ultimul are "
+"efect. Dacă a fost deja specificat un lanț de filtre personalizat, "
+"specificarea unui nivel prestabilit de comprimare șterge lanțul de filtre "
+"personalizat."
#. type: Plain text
#: ../src/xz/xz.1:708
-msgid "The differences between the presets are more significant than with B<gzip>(1) and B<bzip2>(1). The selected compression settings determine the memory requirements of the decompressor, thus using a too high preset level might make it painful to decompress the file on an old system with little RAM. Specifically, B<it's not a good idea to blindly use -9 for everything> like it often is with B<gzip>(1) and B<bzip2>(1)."
-msgstr "Diferențele dintre valorile prestabilite sunt mai semnificative decât cu B<gzip>(1) și B<bzip2>(1). Valorile de comprimare selectate determină cerințele de memorie ale instrumentului de decomprimare, astfel încât utilizarea unui nivel prea mare prestabilit ar putea face „dureroasă†decomprimarea fișierului pe un sistem vechi cu puțină memorie RAM. Mai exact, B<nu este o idee bună să folosiți orbește -9 pentru tot> așa cum se întâmplă adesea cu B<gzip>(1) și B<bzip2>(1)."
+msgid ""
+"The differences between the presets are more significant than with "
+"B<gzip>(1) and B<bzip2>(1). The selected compression settings determine "
+"the memory requirements of the decompressor, thus using a too high preset "
+"level might make it painful to decompress the file on an old system with "
+"little RAM. Specifically, B<it's not a good idea to blindly use -9 for "
+"everything> like it often is with B<gzip>(1) and B<bzip2>(1)."
+msgstr ""
+"Diferențele dintre valorile prestabilite sunt mai semnificative decât cu "
+"B<gzip>(1) și B<bzip2>(1). Valorile de comprimare selectate determină "
+"cerințele de memorie ale instrumentului de decomprimare, astfel încât "
+"utilizarea unui nivel prea mare prestabilit ar putea face „dureroasă†"
+"decomprimarea fișierului pe un sistem vechi cu puțină memorie RAM. Mai "
+"exact, B<nu este o idee bună să folosiți orbește -9 pentru tot> așa cum se "
+"întâmplă adesea cu B<gzip>(1) și B<bzip2>(1)."
#. type: TP
#: ../src/xz/xz.1:709
@@ -722,8 +1212,17 @@ msgstr "B<-0> ... B<-3>"
#. type: Plain text
#: ../src/xz/xz.1:721
-msgid "These are somewhat fast presets. B<-0> is sometimes faster than B<gzip -9> while compressing much better. The higher ones often have speed comparable to B<bzip2>(1) with comparable or better compression ratio, although the results depend a lot on the type of data being compressed."
-msgstr "Acestea sunt valorile prestabilite oarecum rapide. B<-0> este uneori mai rapid decât B<gzip -9> în timp ce comprimă mult mai bine. Cele mai ridicate au adesea viteza comparabilă cu B<bzip2>(1) cu un raport de comprimare comparabil sau mai bun, deși rezultatele depind foarte mult de tipul de date care sunt comprimate."
+msgid ""
+"These are somewhat fast presets. B<-0> is sometimes faster than B<gzip -9> "
+"while compressing much better. The higher ones often have speed comparable "
+"to B<bzip2>(1) with comparable or better compression ratio, although the "
+"results depend a lot on the type of data being compressed."
+msgstr ""
+"Acestea sunt valorile prestabilite oarecum rapide. B<-0> este uneori mai "
+"rapid decât B<gzip -9> în timp ce comprimă mult mai bine. Cele mai ridicate "
+"au adesea viteza comparabilă cu B<bzip2>(1) cu un raport de comprimare "
+"comparabil sau mai bun, deși rezultatele depind foarte mult de tipul de date "
+"care sunt comprimate."
#. type: TP
#: ../src/xz/xz.1:721
@@ -733,8 +1232,20 @@ msgstr "B<-4> ... B<-6>"
#. type: Plain text
#: ../src/xz/xz.1:735
-msgid "Good to very good compression while keeping decompressor memory usage reasonable even for old systems. B<-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. (B<-5e> or B<-6e> may be worth considering too. See B<--extreme>.)"
-msgstr "Comprimare bună spre foarte bună, păstrând în același timp utilizarea memoriei de către instrumentul de decomprimare la un nivel rezonabil chiar și pentru sistemele vechi. B<-6> este valoarea implicită, care este de obicei o alegere bună pentru distribuirea fișierelor care trebuie să poată fi decomprimate chiar și pe sisteme cu doar 16Mio de memorie RAM. Opțiunile (B<-5e> sau B<-6e> ar putea fi demne de luat în considerare. A se vedea opțiunea B<--extreme>.)"
+msgid ""
+"Good to very good compression while keeping decompressor memory usage "
+"reasonable even for old systems. B<-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. (B<-5e> or B<-6e> may be worth considering "
+"too. See B<--extreme>.)"
+msgstr ""
+"Comprimare bună spre foarte bună, păstrând în același timp utilizarea "
+"memoriei de către instrumentul de decomprimare la un nivel rezonabil chiar "
+"și pentru sistemele vechi. B<-6> este valoarea implicită, care este de "
+"obicei o alegere bună pentru distribuirea fișierelor care trebuie să poată "
+"fi decomprimate chiar și pe sisteme cu doar 16Mio de memorie RAM. Opțiunile "
+"(B<-5e> sau B<-6e> ar putea fi demne de luat în considerare. A se vedea "
+"opțiunea B<--extreme>.)"
#. type: TP
#: ../src/xz/xz.1:735
@@ -744,13 +1255,29 @@ msgstr "B<-7 ... -9>"
#. type: Plain text
#: ../src/xz/xz.1:742
-msgid "These are like B<-6> but with higher compressor and decompressor memory requirements. These are useful only when compressing files bigger than 8\\ MiB, 16\\ MiB, and 32\\ MiB, respectively."
-msgstr "Acestea sunt precum B<-6>, dar cu cerințe mai mari de memorie pentru comprimare și decomprimare. Acestea sunt utile numai atunci când comprimați fișiere mai mari de 8Mio, 16Mio și, respectiv, 32Mio."
+msgid ""
+"These are like B<-6> but with higher compressor and decompressor memory "
+"requirements. These are useful only when compressing files bigger than 8\\ "
+"MiB, 16\\ MiB, and 32\\ MiB, respectively."
+msgstr ""
+"Acestea sunt precum B<-6>, dar cu cerințe mai mari de memorie pentru "
+"comprimare și decomprimare. Acestea sunt utile numai atunci când comprimați "
+"fișiere mai mari de 8Mio, 16Mio și, respectiv, 32Mio."
#. type: Plain text
#: ../src/xz/xz.1:750
-msgid "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 decompression will usually be. This also means that the amount of uncompressed output produced per second can vary a lot."
-msgstr "Pe același hardware, viteza de decomprimare este aproximativ un număr constant de octeți de date comprimate pe secundă. Cu alte cuvinte, cu cât comprimarea este mai bună, cu atât decomprimarea va fi de obicei mai rapidă. Aceasta înseamnă, de asemenea, că valoarea de la ieșire a cantității de date necomprimate produsă pe secundă poate varia foarte mult."
+msgid ""
+"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 decompression will usually be. This also "
+"means that the amount of uncompressed output produced per second can vary a "
+"lot."
+msgstr ""
+"Pe același hardware, viteza de decomprimare este aproximativ un număr "
+"constant de octeți de date comprimate pe secundă. Cu alte cuvinte, cu cât "
+"comprimarea este mai bună, cu atât decomprimarea va fi de obicei mai rapidă. "
+"Aceasta înseamnă, de asemenea, că valoarea de la ieșire a cantității de date "
+"necomprimate produsă pe secundă poate varia foarte mult."
#. type: Plain text
#: ../src/xz/xz.1:752
@@ -1030,28 +1557,73 @@ msgstr "Descrieri coloane:"
#. type: Plain text
#: ../src/xz/xz.1:787
-msgid "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 B<-7> ... B<-9> when there's no real need for them. At B<-6> and lower, the amount of memory wasted is usually low enough to not matter."
-msgstr "DimDict este dimensiunea dicționarului LZMA2. Este o risipă de memorie să folosești un dicționar mai mare decât dimensiunea fișierului necomprimat. De aceea este bine să evitați utilizarea valorilor prestabilite B<-7> ... B<-9> atunci când nu este nevoie cu adevărat de ele. Pentru valoarea prestabilită B<-6> sau alta mai mică, cantitatea de memorie irosită este de obicei suficient de mică pentru a nu conta."
+msgid ""
+"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 B<-7> ... B<-9> when there's no real need "
+"for them. At B<-6> and lower, the amount of memory wasted is usually low "
+"enough to not matter."
+msgstr ""
+"DimDict este dimensiunea dicționarului LZMA2. Este o risipă de memorie să "
+"folosești un dicționar mai mare decât dimensiunea fișierului necomprimat. De "
+"aceea este bine să evitați utilizarea valorilor prestabilite B<-7> ... B<-9> "
+"atunci când nu este nevoie cu adevărat de ele. Pentru valoarea prestabilită "
+"B<-6> sau alta mai mică, cantitatea de memorie irosită este de obicei "
+"suficient de mică pentru a nu conta."
#. type: Plain text
#: ../src/xz/xz.1:796
-msgid "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 B<-6> ... B<-9>, higher levels still tend to be a little slower. To get even slower and thus possibly better compression, see B<--extreme>."
-msgstr "CPUComp este o reprezentare simplificată a configurărilor LZMA2 care afectează viteza de comprimare. Dimensiunea dicționarului afectează și viteza, așa că, în timp ce CPUComp este aceeași pentru nivelurile B<-6> ... B<-9>, nivelurile mai mari tind să fie puțin mai lente. Pentru a obține o comprimare și mai lentă și, astfel, posibil mai bună, consultați opțiunea B<--extreme>."
+msgid ""
+"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 B<-6> ... B<-9>, higher levels still tend to be a "
+"little slower. To get even slower and thus possibly better compression, see "
+"B<--extreme>."
+msgstr ""
+"CPUComp este o reprezentare simplificată a configurărilor LZMA2 care "
+"afectează viteza de comprimare. Dimensiunea dicționarului afectează și "
+"viteza, așa că, în timp ce CPUComp este aceeași pentru nivelurile B<-6> ... "
+"B<-9>, nivelurile mai mari tind să fie puțin mai lente. Pentru a obține o "
+"comprimare și mai lentă și, astfel, posibil mai bună, consultați opțiunea "
+"B<--extreme>."
#. type: Plain text
#: ../src/xz/xz.1:802
-msgid "CompMem contains the compressor memory requirements in the single-threaded mode. It may vary slightly between B<xz> versions."
-msgstr "MemComp conține cerințele de memorie ale comprimării în modul cu un singur fir de execuție. Poate varia ușor între versiunile B<xz>."
+msgid ""
+"CompMem contains the compressor memory requirements in the single-threaded "
+"mode. It may vary slightly between B<xz> versions."
+msgstr ""
+"MemComp conține cerințele de memorie ale comprimării în modul cu un singur "
+"fir de execuție. Poate varia ușor între versiunile B<xz>."
#. type: Plain text
#: ../src/xz/xz.1:809
-msgid "DecMem contains the decompressor memory requirements. That is, the compression settings determine the memory requirements of the decompressor. The exact decompressor memory usage is slightly more than the LZMA2 dictionary size, but the values in the table have been rounded up to the next full MiB."
-msgstr "MemDec conține cerințele de memorie pentru decomprimare. Adică, configurările de comprimare determină cerințele de memorie ale decomprimării. Cantitatea exactă a memoriei utilizate la decomprimare este puțin mai mare decât dimensiunea dicționarului LZMA2, dar valorile din tabel au fost rotunjite la următorul Mio."
+msgid ""
+"DecMem contains the decompressor memory requirements. That is, the "
+"compression settings determine the memory requirements of the decompressor. "
+"The exact decompressor memory usage is slightly more than the LZMA2 "
+"dictionary size, but the values in the table have been rounded up to the "
+"next full MiB."
+msgstr ""
+"MemDec conține cerințele de memorie pentru decomprimare. Adică, "
+"configurările de comprimare determină cerințele de memorie ale "
+"decomprimării. Cantitatea exactă a memoriei utilizate la decomprimare este "
+"puțin mai mare decât dimensiunea dicționarului LZMA2, dar valorile din tabel "
+"au fost rotunjite la următorul Mio."
#. type: Plain text
#: ../src/xz/xz.1:819
-msgid "Memory requirements of the multi-threaded mode are significantly higher than that of the single-threaded mode. With the default value of B<--block-size>, each thread needs 3*3*DictSize plus CompMem or DecMem. For example, four threads with preset B<-6> needs 660\\(en670\\ MiB of memory."
-msgstr "Cerințele de memorie ale modului cu mai multe fire de execuție sunt semnificativ mai mari decât cele ale modului cu un singur fir de execuție. Cu valoarea implicită a lui B<--block-size>, fiecare fir are nevoie de 3*3*DictSize plus MemComp sau MemDec. De exemplu, patru fire de execuție cu valoarea prestabilită B<-6> au nevoie de 660\\(en670\\ Mio de memorie."
+msgid ""
+"Memory requirements of the multi-threaded mode are significantly higher than "
+"that of the single-threaded mode. With the default value of B<--block-"
+"size>, each thread needs 3*3*DictSize plus CompMem or DecMem. For example, "
+"four threads with preset B<-6> needs 660\\(en670\\ MiB of memory."
+msgstr ""
+"Cerințele de memorie ale modului cu mai multe fire de execuție sunt "
+"semnificativ mai mari decât cele ale modului cu un singur fir de execuție. "
+"Cu valoarea implicită a lui B<--block-size>, fiecare fir are nevoie de "
+"3*3*DictSize plus MemComp sau MemDec. De exemplu, patru fire de execuție cu "
+"valoarea prestabilită B<-6> au nevoie de 660\\(en670\\ Mio de memorie."
#. type: TP
#: ../src/xz/xz.1:819
@@ -1061,13 +1633,30 @@ msgstr "B<-e>, B<--extreme>"
#. type: Plain text
#: ../src/xz/xz.1:828
-msgid "Use a slower variant of the selected compression preset level (B<-0> ... B<-9>) to hopefully get a little bit better compression ratio, but with bad luck this can also make it worse. Decompressor memory usage is not affected, but compressor memory usage increases a little at preset levels B<-0> ... B<-3>."
-msgstr "Utilizează o variantă mai lentă a nivelului prestabilit de comprimare selectat (B<-0> ... B<-9>) pentru a obține un raport de comprimare puțin mai bun, dar din nefericire, acest lucru îl poate înrăutăți. Utilizarea memoriei pentru decomprimare nu este afectată, dar utilizarea memoriei la comprimare crește puțin la nivelurile prestabilite B<-0> ... B<-3>."
+msgid ""
+"Use a slower variant of the selected compression preset level (B<-0> ... "
+"B<-9>) to hopefully get a little bit better compression ratio, but with bad "
+"luck this can also make it worse. Decompressor memory usage is not "
+"affected, but compressor memory usage increases a little at preset levels "
+"B<-0> ... B<-3>."
+msgstr ""
+"Utilizează o variantă mai lentă a nivelului prestabilit de comprimare "
+"selectat (B<-0> ... B<-9>) pentru a obține un raport de comprimare puțin mai "
+"bun, dar din nefericire, acest lucru îl poate înrăutăți. Utilizarea memoriei "
+"pentru decomprimare nu este afectată, dar utilizarea memoriei la comprimare "
+"crește puțin la nivelurile prestabilite B<-0> ... B<-3>."
#. type: Plain text
#: ../src/xz/xz.1:840
-msgid "Since there are two presets with dictionary sizes 4\\ MiB and 8\\ MiB, the presets B<-3e> and B<-5e> use slightly faster settings (lower CompCPU) than B<-4e> and B<-6e>, respectively. That way no two presets are identical."
-msgstr "Deoarece există două valori prestabilite cu dimensiuni ale dicționarului de 4Mio și 8Mio, valorile prestabilite B<-3e> și B<-5e> folosesc configurări puțin mai rapide (CPUComp mai mic) decât B<-4e> și B<-6e>, respectiv. În acest fel, nu există două nivele prestabilite identice."
+msgid ""
+"Since there are two presets with dictionary sizes 4\\ MiB and 8\\ MiB, the "
+"presets B<-3e> and B<-5e> use slightly faster settings (lower CompCPU) than "
+"B<-4e> and B<-6e>, respectively. That way no two presets are identical."
+msgstr ""
+"Deoarece există două valori prestabilite cu dimensiuni ale dicționarului de "
+"4Mio și 8Mio, valorile prestabilite B<-3e> și B<-5e> folosesc configurări "
+"puțin mai rapide (CPUComp mai mic) decât B<-4e> și B<-6e>, respectiv. În "
+"acest fel, nu există două nivele prestabilite identice."
#. type: tbl table
#: ../src/xz/xz.1:848
@@ -1157,8 +1746,14 @@ msgstr "-9e"
#. type: Plain text
#: ../src/xz/xz.1:869
-msgid "For example, there are a total of four presets that use 8\\ MiB dictionary, whose order from the fastest to the slowest is B<-5>, B<-6>, B<-5e>, and B<-6e>."
-msgstr "De exemplu, există un total de patru nivele prestabilite care folosesc dicționarul 8Mio, a căror ordine de la cel mai rapid la cel mai lent este B<-5>, B<-6>, B<-5e> și B<-6e> ."
+msgid ""
+"For example, there are a total of four presets that use 8\\ MiB dictionary, "
+"whose order from the fastest to the slowest is B<-5>, B<-6>, B<-5e>, and "
+"B<-6e>."
+msgstr ""
+"De exemplu, există un total de patru nivele prestabilite care folosesc "
+"dicționarul 8Mio, a căror ordine de la cel mai rapid la cel mai lent este "
+"B<-5>, B<-6>, B<-5e> și B<-6e> ."
#. type: TP
#: ../src/xz/xz.1:869
@@ -1174,8 +1769,14 @@ msgstr "B<--best>"
#. type: Plain text
#: ../src/xz/xz.1:883
-msgid "These are somewhat misleading aliases for B<-0> and B<-9>, respectively. These are provided only for backwards compatibility with LZMA Utils. Avoid using these options."
-msgstr "Acestea sunt alias de opțiuni, oarecum înșelătoare pentru B<-0> și, respectiv, B<-9>. Acestea sunt furnizate numai pentru compatibilitatea cu LZMA Utils. Evitați utilizarea acestor opțiuni."
+msgid ""
+"These are somewhat misleading aliases for B<-0> and B<-9>, respectively. "
+"These are provided only for backwards compatibility with LZMA Utils. Avoid "
+"using these options."
+msgstr ""
+"Acestea sunt alias de opțiuni, oarecum înșelătoare pentru B<-0> și, "
+"respectiv, B<-9>. Acestea sunt furnizate numai pentru compatibilitatea cu "
+"LZMA Utils. Evitați utilizarea acestor opțiuni."
#. type: TP
#: ../src/xz/xz.1:883
@@ -1185,18 +1786,63 @@ msgstr "B<--block-size=>I<dimensiunea>"
#. type: Plain text
#: ../src/xz/xz.1:896
-msgid "When compressing to the B<.xz> format, split the input data into blocks of I<size> bytes. The blocks are compressed independently from each other, which helps with multi-threading and makes limited random-access decompression possible. This option is typically used to override the default block size in multi-threaded mode, but this option can be used in single-threaded mode too."
-msgstr "Când comprimă în formatul B<.xz>, împarte datele de intrare în blocuri de I<dimensiunea> octeți. Blocurile sunt comprimate independent unul de celălalt, ceea ce ajută în modul cu mai multe fire de execuție și face posibilă decomprimarea cu acces aleatoriu limitat. Această opțiune este de obicei folosită pentru a suprascrie dimensiunea implicită a blocului în modul cu mai multe fire de execuție, dar această opțiune poate fi folosită și în modul cu un singur fir de execuție."
+msgid ""
+"When compressing to the B<.xz> format, split the input data into blocks of "
+"I<size> bytes. The blocks are compressed independently from each other, "
+"which helps with multi-threading and makes limited random-access "
+"decompression possible. This option is typically used to override the "
+"default block size in multi-threaded mode, but this option can be used in "
+"single-threaded mode too."
+msgstr ""
+"Când comprimă în formatul B<.xz>, împarte datele de intrare în blocuri de "
+"I<dimensiunea> octeți. Blocurile sunt comprimate independent unul de "
+"celălalt, ceea ce ajută în modul cu mai multe fire de execuție și face "
+"posibilă decomprimarea cu acces aleatoriu limitat. Această opțiune este de "
+"obicei folosită pentru a suprascrie dimensiunea implicită a blocului în "
+"modul cu mai multe fire de execuție, dar această opțiune poate fi folosită "
+"și în modul cu un singur fir de execuție."
#. type: Plain text
#: ../src/xz/xz.1:913
-msgid "In multi-threaded mode about three times I<size> bytes will be allocated in each thread for buffering input and output. The default I<size> is three times the LZMA2 dictionary size or 1 MiB, whichever is more. Typically a good value is 2\\(en4 times the size of the LZMA2 dictionary or at least 1 MiB. Using I<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 decompression."
-msgstr "În modul cu mai multe fire de execuție, aproximativ de trei ori I<dimensiunea> de octeți vor fi alocați în fiecare fir pentru stocarea intrării și ieșirii. I<Dimensiunea> implicită este de trei ori dimensiunea dicționarului LZMA2 sau 1Mio, oricare dintre acestea este mai mare. În mod obișnuit, o valoare bună este de două la patru ori dimensiunea dicționarului LZMA2 sau de cel puțin 1Mio. Utilizarea unei I<dimensiuni> mai mici decât dimensiunea dicționarului LZMA2 este o risipă de memorie RAM, deoarece atunci memoria tampon a dicționarului LZMA2 nu va fi niciodată utilizată pe deplin. În modul cu mai multe fire de execuție, dimensiunile blocurilor sunt stocate în anteturile blocurilor. Aceste informații privind dimensiunea sunt necesare pentru decomprimarea cu mai multe fire."
+msgid ""
+"In multi-threaded mode about three times I<size> bytes will be allocated in "
+"each thread for buffering input and output. The default I<size> is three "
+"times the LZMA2 dictionary size or 1 MiB, whichever is more. Typically a "
+"good value is 2\\(en4 times the size of the LZMA2 dictionary or at least 1 "
+"MiB. Using I<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 decompression."
+msgstr ""
+"În modul cu mai multe fire de execuție, aproximativ de trei ori "
+"I<dimensiunea> de octeți vor fi alocați în fiecare fir pentru stocarea "
+"intrării și ieșirii. I<Dimensiunea> implicită este de trei ori dimensiunea "
+"dicționarului LZMA2 sau 1Mio, oricare dintre acestea este mai mare. În mod "
+"obișnuit, o valoare bună este de două la patru ori dimensiunea dicționarului "
+"LZMA2 sau de cel puțin 1Mio. Utilizarea unei I<dimensiuni> mai mici decât "
+"dimensiunea dicționarului LZMA2 este o risipă de memorie RAM, deoarece "
+"atunci memoria tampon a dicționarului LZMA2 nu va fi niciodată utilizată pe "
+"deplin. În modul cu mai multe fire de execuție, dimensiunile blocurilor sunt "
+"stocate în anteturile blocurilor. Aceste informații privind dimensiunea sunt "
+"necesare pentru decomprimarea cu mai multe fire."
#. type: Plain text
#: ../src/xz/xz.1:922
-msgid "In single-threaded mode no block splitting is done by default. Setting this option doesn't affect memory usage. No size information 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 B<xz> won't be able decompress the files in multi-threaded mode."
-msgstr "În modul cu un singur fir de execuție, nicio divizare a blocurilor nu se face în mod implicit. Folosirea acestei opțiuni nu afectează utilizarea memoriei. Nu sunt stocate informații despre dimensiune în antetele blocurilor, astfel încât fișierele create în modul cu un singur fir de execuție nu vor fi identice cu fișierele create în modul cu mai multe fire de execuție. Lipsa informațiilor privind dimensiunea înseamnă, de asemenea, că B<xz> nu va putea decomprima fișierele în modul cu mai multe fire. de execuție."
+msgid ""
+"In single-threaded mode no block splitting is done by default. Setting this "
+"option doesn't affect memory usage. No size information 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 B<xz> won't be able decompress the files in multi-threaded mode."
+msgstr ""
+"În modul cu un singur fir de execuție, nicio divizare a blocurilor nu se "
+"face în mod implicit. Folosirea acestei opțiuni nu afectează utilizarea "
+"memoriei. Nu sunt stocate informații despre dimensiune în antetele "
+"blocurilor, astfel încât fișierele create în modul cu un singur fir de "
+"execuție nu vor fi identice cu fișierele create în modul cu mai multe fire "
+"de execuție. Lipsa informațiilor privind dimensiunea înseamnă, de asemenea, "
+"că B<xz> nu va putea decomprima fișierele în modul cu mai multe fire. de "
+"execuție."
#. type: TP
#: ../src/xz/xz.1:922
@@ -1206,18 +1852,41 @@ msgstr "B<--block-list=>I<elemente>"
#. type: Plain text
#: ../src/xz/xz.1:928
-msgid "When compressing to the B<.xz> format, start a new block with an optional custom filter chain after the given intervals of uncompressed data."
-msgstr "Când comprimă în formatul B<.xz>, începe un nou bloc cu un lanț de filtre personalizat opțional după intervalele specificate de date necomprimate."
+msgid ""
+"When compressing to the B<.xz> format, start a new block with an optional "
+"custom filter chain after the given intervals of uncompressed data."
+msgstr ""
+"Când comprimă în formatul B<.xz>, începe un nou bloc cu un lanț de filtre "
+"personalizat opțional după intervalele specificate de date necomprimate."
#. type: Plain text
#: ../src/xz/xz.1:938
-msgid "The I<items> are a comma-separated list. Each item consists of an optional filter chain number between 0 and 9 followed by a colon (B<:>) 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."
-msgstr "I<elementele> sunt o listă separată prin virgule. Fiecare element este format dintr-un număr opțional de lanț de filtrare între 0 și 9, urmat de două puncte (B<:>) și de o dimensiune cerută a datelor necomprimate. Omiterea unui element (două sau mai multe virgule consecutive) este o prescurtare pentru a utiliza dimensiunea și filtrele din elementul anterior."
+msgid ""
+"The I<items> are a comma-separated list. Each item consists of an optional "
+"filter chain number between 0 and 9 followed by a colon (B<:>) 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."
+msgstr ""
+"I<elementele> sunt o listă separată prin virgule. Fiecare element este "
+"format dintr-un număr opțional de lanț de filtrare între 0 și 9, urmat de "
+"două puncte (B<:>) și de o dimensiune cerută a datelor necomprimate. "
+"Omiterea unui element (două sau mai multe virgule consecutive) este o "
+"prescurtare pentru a utiliza dimensiunea și filtrele din elementul anterior."
#. type: Plain text
#: ../src/xz/xz.1:947
-msgid "If the input file is bigger than the sum of the sizes in I<items>, the last item is repeated until the end of the file. A special value of B<0> may be used as the last size to indicate that the rest of the file should be encoded as a single block."
-msgstr "În cazul în care fișierul de intrare este mai mare decât suma dimensiunilor din I<elemente>, ultimul element se repetă până la sfârșitul fișierului. O valoare specială de B<0> poate fi utilizată ca ultimă dimensiune pentru a indica faptul că restul fișierului trebuie să fie codificat ca un singur bloc."
+msgid ""
+"If the input file is bigger than the sum of the sizes in I<items>, the last "
+"item is repeated until the end of the file. A special value of B<0> may be "
+"used as the last size to indicate that the rest of the file should be "
+"encoded as a single block."
+msgstr ""
+"În cazul în care fișierul de intrare este mai mare decât suma dimensiunilor "
+"din I<elemente>, ultimul element se repetă până la sfârșitul fișierului. O "
+"valoare specială de B<0> poate fi utilizată ca ultimă dimensiune pentru a "
+"indica faptul că restul fișierului trebuie să fie codificat ca un singur "
+"bloc."
# R-GC, scrie:
# în acest mesaj, mărimile „MiB†nu au fost
@@ -1228,8 +1897,26 @@ msgstr "În cazul în care fișierul de intrare este mai mare decât suma dimens
# ce este vorba...
#. type: Plain text
#: ../src/xz/xz.1:964
-msgid "An alternative filter chain for each block can be specified in combination with the B<--filters1=>I<filters> \\&...\\& B<--filters9=>I<filters> options. These options define filter chains with an identifier between 1\\(en9. 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 uncompressed size, followed by a colon (B<:>). For example, if one specifies B<--block-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB> then blocks will be created using:"
-msgstr "Un lanț de filtre alternativ pentru fiecare bloc poate fi specificat în combinație cu opțiunile B<--filters1=>I<filtre> \\&...\\& B<--filters9=>I<filtre>. Aceste opțiuni definesc lanțuri de filtre cu un identificator cuprins între 1\\(en9. Lanțul de filtre 0 poate fi utilizat pentru a se referi la lanțul de filtre implicit, ceea ce este același lucru cu a nu specifica un lanț de filtre. Identificatorul lanțului de filtre poate fi utilizat înaintea dimensiunii necomprimate, urmat de două puncte (B<:>). De exemplu, dacă se specifică B<--block-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB>, atunci blocurile vor fi create folosind:"
+msgid ""
+"An alternative filter chain for each block can be specified in combination "
+"with the B<--filters1=>I<filters> \\&...\\& B<--filters9=>I<filters> "
+"options. These options define filter chains with an identifier between "
+"1\\(en9. 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 uncompressed size, followed by a colon (B<:"
+">). For example, if one specifies B<--block-"
+"list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB> then blocks will be created using:"
+msgstr ""
+"Un lanț de filtre alternativ pentru fiecare bloc poate fi specificat în "
+"combinație cu opțiunile B<--filters1=>I<filtre> \\&...\\& B<--"
+"filters9=>I<filtre>. Aceste opțiuni definesc lanțuri de filtre cu un "
+"identificator cuprins între 1\\(en9. Lanțul de filtre 0 poate fi utilizat "
+"pentru a se referi la lanțul de filtre implicit, ceea ce este același lucru "
+"cu a nu specifica un lanț de filtre. Identificatorul lanțului de filtre "
+"poate fi utilizat înaintea dimensiunii necomprimate, urmat de două puncte "
+"(B<:>). De exemplu, dacă se specifică B<--block-"
+"list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB>, atunci blocurile vor fi create "
+"folosind:"
#. type: Plain text
#: ../src/xz/xz.1:969
@@ -1253,18 +1940,43 @@ msgstr "Lanțul de filtre implicit și 2 MiB de intrare"
#. type: Plain text
#: ../src/xz/xz.1:986
-msgid "The default filter chain and 4 MiB input for every block until end of input."
-msgstr "Lanțul de filtre implicit și 4 MiB de intrare pentru fiecare bloc până la sfârșitul intrării."
+msgid ""
+"The default filter chain and 4 MiB input for every block until end of input."
+msgstr ""
+"Lanțul de filtre implicit și 4 MiB de intrare pentru fiecare bloc până la "
+"sfârșitul intrării."
#. type: Plain text
#: ../src/xz/xz.1:1000
-msgid "If one specifies a size that exceeds the encoder's block size (either the default value in threaded mode or the value specified with B<--block-size=>I<size>), the encoder will create additional blocks while keeping the boundaries specified in I<items>. For example, if one specifies B<--block-size=10MiB> B<--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."
-msgstr "Dacă se specifică o dimensiune care depășește dimensiunea blocului codificatorului (fie valoarea implicită în modul cu fire de execuție, fie valoarea specificată cu B<--block-size=>I<dimensiune>), codificatorul va crea blocuri suplimentare, păstrând limitele specificate în I<elemente>. De exemplu, dacă se specifică B<--block-size=10MiB> B<--block-list=5MiB,10MiB,8MiB,12MiB,24MiB> și fișierul de intrare este de 80 MiB, se vor obține 11 blocuri: 5, 10, 8, 10, 10, 2, 10, 10, 10, 4, 10, 10, 10 și 1 Mio."
+msgid ""
+"If one specifies a size that exceeds the encoder's block size (either the "
+"default value in threaded mode or the value specified with B<--block-"
+"size=>I<size>), the encoder will create additional blocks while keeping the "
+"boundaries specified in I<items>. For example, if one specifies B<--block-"
+"size=10MiB> B<--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."
+msgstr ""
+"Dacă se specifică o dimensiune care depășește dimensiunea blocului "
+"codificatorului (fie valoarea implicită în modul cu fire de execuție, fie "
+"valoarea specificată cu B<--block-size=>I<dimensiune>), codificatorul va "
+"crea blocuri suplimentare, păstrând limitele specificate în I<elemente>. De "
+"exemplu, dacă se specifică B<--block-size=10MiB> B<--block-"
+"list=5MiB,10MiB,8MiB,12MiB,24MiB> și fișierul de intrare este de 80 MiB, se "
+"vor obține 11 blocuri: 5, 10, 8, 10, 10, 2, 10, 10, 10, 4, 10, 10, 10 și 1 "
+"Mio."
#. type: Plain text
#: ../src/xz/xz.1:1006
-msgid "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."
-msgstr "În modul cu mai multe fire de execuție, dimensiunile blocurilor sunt stocate în antetele blocurilor. Acest lucru nu se face în modul cu un singur fir de execuție, astfel încât ieșirea codificată nu va fi identică cu cea a modului cu mai multe fire de execuție."
+msgid ""
+"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."
+msgstr ""
+"În modul cu mai multe fire de execuție, dimensiunile blocurilor sunt stocate "
+"în antetele blocurilor. Acest lucru nu se face în modul cu un singur fir de "
+"execuție, astfel încât ieșirea codificată nu va fi identică cu cea a modului "
+"cu mai multe fire de execuție."
#. type: TP
#: ../src/xz/xz.1:1006
@@ -1274,13 +1986,35 @@ msgstr "B<--flush-timeout=>I<timp_limită>"
#. type: Plain text
#: ../src/xz/xz.1:1023
-msgid "When compressing, if more than I<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 B<xz> is used to compress data that is streamed over a network. Small I<timeout> values make the data available at the receiving end with a small delay, but large I<timeout> values give better compression ratio."
-msgstr "La comprimare, dacă au trecut mai mult de I<timp_limită> milisecunde (un întreg pozitiv) de la curățarea anterioară și citirea mai multor intrări s-ar bloca, toate datele de intrare în așteptare sunt eliminate din codificator și puse la dispoziție în fluxul de ieșire. Acest lucru poate să fie util dacă B<xz> este utilizat pentru a comprima datele care sunt transmise în flux printr-o rețea. Valorile mici de I<timp_limită> fac datele disponibile la capătul de recepție cu o mică întârziere, dar valorile mari de I<timp_limită> oferă un raport de comprimare mai bun."
+msgid ""
+"When compressing, if more than I<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 B<xz> is used to compress data that is "
+"streamed over a network. Small I<timeout> values make the data available at "
+"the receiving end with a small delay, but large I<timeout> values give "
+"better compression ratio."
+msgstr ""
+"La comprimare, dacă au trecut mai mult de I<timp_limită> milisecunde (un "
+"întreg pozitiv) de la curățarea anterioară și citirea mai multor intrări s-"
+"ar bloca, toate datele de intrare în așteptare sunt eliminate din "
+"codificator și puse la dispoziție în fluxul de ieșire. Acest lucru poate să "
+"fie util dacă B<xz> este utilizat pentru a comprima datele care sunt "
+"transmise în flux printr-o rețea. Valorile mici de I<timp_limită> fac datele "
+"disponibile la capătul de recepție cu o mică întârziere, dar valorile mari "
+"de I<timp_limită> oferă un raport de comprimare mai bun."
#. type: Plain text
#: ../src/xz/xz.1:1031
-msgid "This feature is disabled by default. If this option is specified more than once, the last one takes effect. The special I<timeout> value of B<0> can be used to explicitly disable this feature."
-msgstr "Această caracteristică este dezactivată în mod implicit. Dacă această opțiune este specificată de mai multe ori, ultima este cea care se ia în considerare. Valoarea specială a lui I<timp_limită> de B<0>, poate fi utilizată pentru a dezactiva în mod explicit această caracteristică."
+msgid ""
+"This feature is disabled by default. If this option is specified more than "
+"once, the last one takes effect. The special I<timeout> value of B<0> can "
+"be used to explicitly disable this feature."
+msgstr ""
+"Această caracteristică este dezactivată în mod implicit. Dacă această "
+"opțiune este specificată de mai multe ori, ultima este cea care se ia în "
+"considerare. Valoarea specială a lui I<timp_limită> de B<0>, poate fi "
+"utilizată pentru a dezactiva în mod explicit această caracteristică."
#. type: Plain text
#: ../src/xz/xz.1:1033
@@ -1290,8 +2024,13 @@ msgstr "Această caracteristică nu este disponibilă în sistemele non-POSIX."
#. FIXME
#. type: Plain text
#: ../src/xz/xz.1:1041
-msgid "B<This feature is still experimental.> Currently B<xz> is unsuitable for decompressing the stream in real time due to how B<xz> does buffering."
-msgstr "B<Această caracteristică este încă experimentală>. În prezent, B<xz> este nepotrivit pentru decomprimarea fluxului în timp real datorită modului în care B<xz> utilizează memoria tampon."
+msgid ""
+"B<This feature is still experimental.> Currently B<xz> is unsuitable for "
+"decompressing the stream in real time due to how B<xz> does buffering."
+msgstr ""
+"B<Această caracteristică este încă experimentală>. În prezent, B<xz> este "
+"nepotrivit pentru decomprimarea fluxului în timp real datorită modului în "
+"care B<xz> utilizează memoria tampon."
#. type: TP
#: ../src/xz/xz.1:1041
@@ -1301,23 +2040,50 @@ msgstr "B<--memlimit-compress=>I<limita>"
#. type: Plain text
#: ../src/xz/xz.1:1046
-msgid "Set a memory usage limit for compression. If this option is specified multiple times, the last one takes effect."
-msgstr "Stabilește o limită de utilizare a memoriei pentru comprimare. Dacă această opțiune este specificată de mai multe ori, ultima va avea efect."
+msgid ""
+"Set a memory usage limit for compression. If this option is specified "
+"multiple times, the last one takes effect."
+msgstr ""
+"Stabilește o limită de utilizare a memoriei pentru comprimare. Dacă această "
+"opțiune este specificată de mai multe ori, ultima va avea efect."
#. type: Plain text
#: ../src/xz/xz.1:1059
-msgid "If the compression settings exceed the I<limit>, B<xz> will attempt to adjust the settings downwards so that the limit is no longer exceeded 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 I<limit>, and finally reducing the LZMA2 dictionary size."
-msgstr "Dacă parametrii de comprimare depășesc I<limita>, B<xz> va încerca să ajusteze parametrii scăzând valorile acestora, astfel încât limita să nu mai fie depășită și va afișa o notificare că ajustarea automată a fost efectuată. Ajustările se fac în această ordine: reducerea numărului de fire, trecerea la modul un singur fir de execuție dacă chiar și un singur fir în modul cu mai multe fire de execuție depășește I<limita> și, în final, reducerea dimensiunii dicționarului LZMA2."
+msgid ""
+"If the compression settings exceed the I<limit>, B<xz> will attempt to "
+"adjust the settings downwards so that the limit is no longer exceeded 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 "
+"I<limit>, and finally reducing the LZMA2 dictionary size."
+msgstr ""
+"Dacă parametrii de comprimare depășesc I<limita>, B<xz> va încerca să "
+"ajusteze parametrii scăzând valorile acestora, astfel încât limita să nu mai "
+"fie depășită și va afișa o notificare că ajustarea automată a fost "
+"efectuată. Ajustările se fac în această ordine: reducerea numărului de fire, "
+"trecerea la modul un singur fir de execuție dacă chiar și un singur fir în "
+"modul cu mai multe fire de execuție depășește I<limita> și, în final, "
+"reducerea dimensiunii dicționarului LZMA2."
#. type: Plain text
#: ../src/xz/xz.1:1067
-msgid "When compressing with B<--format=raw> or if B<--no-adjust> has been specified, only the number of threads may be reduced since it can be done without affecting the compressed output."
-msgstr "Când comprimă cu opțiunea B<--format=raw> sau dacă a fost specificată opțiunea B<--no-adjust>, numai numărul de fire poate fi redus, deoarece se poate face fără a afecta rezultatul comprimării."
+msgid ""
+"When compressing with B<--format=raw> or if B<--no-adjust> has been "
+"specified, only the number of threads may be reduced since it can be done "
+"without affecting the compressed output."
+msgstr ""
+"Când comprimă cu opțiunea B<--format=raw> sau dacă a fost specificată "
+"opțiunea B<--no-adjust>, numai numărul de fire poate fi redus, deoarece se "
+"poate face fără a afecta rezultatul comprimării."
#. type: Plain text
#: ../src/xz/xz.1:1074
-msgid "If the I<limit> cannot be met even with the adjustments described above, an error is displayed and B<xz> will exit with exit status 1."
-msgstr "Dacă I<limita> nu poate fi îndeplinită chiar și cu ajustările descrise mai sus, este afișată o eroare și B<xz> va ieși cu starea de ieșire 1."
+msgid ""
+"If the I<limit> cannot be met even with the adjustments described above, an "
+"error is displayed and B<xz> will exit with exit status 1."
+msgstr ""
+"Dacă I<limita> nu poate fi îndeplinită chiar și cu ajustările descrise mai "
+"sus, este afișată o eroare și B<xz> va ieși cu starea de ieșire 1."
#. type: Plain text
#: ../src/xz/xz.1:1078
@@ -1326,23 +2092,56 @@ msgstr "I<Limita> poate fi specificata în mai multe moduri:"
#. type: Plain text
#: ../src/xz/xz.1:1088
-msgid "The I<limit> can be an absolute value in bytes. Using an integer suffix like B<MiB> can be useful. Example: B<--memlimit-compress=80MiB>"
-msgstr "I<Limita> poate fi o valoare absolută în octeți. Utilizarea unui sufix întreg precum B<MiB> poate fi utilă. De exemplu: B<--memlimit-compress=80MiB>"
+msgid ""
+"The I<limit> can be an absolute value in bytes. Using an integer suffix "
+"like B<MiB> can be useful. Example: B<--memlimit-compress=80MiB>"
+msgstr ""
+"I<Limita> poate fi o valoare absolută în octeți. Utilizarea unui sufix "
+"întreg precum B<MiB> poate fi utilă. De exemplu: B<--memlimit-compress=80MiB>"
#. type: Plain text
#: ../src/xz/xz.1:1100
-msgid "The I<limit> can be specified as a percentage of total physical memory (RAM). This can be useful especially when setting the B<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 memory. Example: B<--memlimit-compress=70%>"
-msgstr "I<Limita> poate fi specificată ca procent din memoria fizică totală (RAM). Acest lucru poate fi util mai ales atunci când definiți variabila de mediu B<XZ_DEFAULTS> într-un script de inițializare shell care este partajat între diferite calculatoare. În acest fel, limita este automat mai mare pe sistemele cu mai multă memorie. De exemplu: B<--memlimit-compress=70%>"
+msgid ""
+"The I<limit> can be specified as a percentage of total physical memory "
+"(RAM). This can be useful especially when setting the B<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 memory. Example: B<--memlimit-compress=70%>"
+msgstr ""
+"I<Limita> poate fi specificată ca procent din memoria fizică totală (RAM). "
+"Acest lucru poate fi util mai ales atunci când definiți variabila de mediu "
+"B<XZ_DEFAULTS> într-un script de inițializare shell care este partajat între "
+"diferite calculatoare. ÃŽn acest fel, limita este automat mai mare pe "
+"sistemele cu mai multă memorie. De exemplu: B<--memlimit-compress=70%>"
#. type: Plain text
#: ../src/xz/xz.1:1110
-msgid "The I<limit> can be reset back to its default value by setting it to B<0>. This is currently equivalent to setting the I<limit> to B<max> (no memory usage limit)."
-msgstr "I<Limita> poate fi restabilită la valoarea implicită dându-i valoarea B<0>. În prezent, aceasta este echivalentă cu stabilirea I<limitei> la B<max> (fără limită de utilizare a memoriei)."
+msgid ""
+"The I<limit> can be reset back to its default value by setting it to B<0>. "
+"This is currently equivalent to setting the I<limit> to B<max> (no memory "
+"usage limit)."
+msgstr ""
+"I<Limita> poate fi restabilită la valoarea implicită dându-i valoarea B<0>. "
+"În prezent, aceasta este echivalentă cu stabilirea I<limitei> la B<max> "
+"(fără limită de utilizare a memoriei)."
#. type: Plain text
#: ../src/xz/xz.1:1134
-msgid "For 32-bit B<xz> there is a special case: if the I<limit> would be over B<4020\\ MiB>, the I<limit> is set to B<4020\\ MiB>. On MIPS32 B<2000\\ MiB> is used instead. (The values B<0> and B<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."
-msgstr "Pentru B<xz> pe 32 de biți există un caz special: dacă I<limita> ar fi peste B<4020MiB>, I<limita> este stabilită la B<4020MiB>. Pe MIPS32 este stabilită în schimb la B<2000MiB>; (valorile B<0> și B<max> nu sunt afectate de acest lucru -- o caracteristică similară nu există pentru decomprimare). Acest lucru poate fi util atunci când un executabil pe 32 de biți are acces la un spațiu de adrese de 4Gio (2Gio pe MIPS32), se speră că nu produce daune în alte situații."
+msgid ""
+"For 32-bit B<xz> there is a special case: if the I<limit> would be over "
+"B<4020\\ MiB>, the I<limit> is set to B<4020\\ MiB>. On MIPS32 B<2000\\ "
+"MiB> is used instead. (The values B<0> and B<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."
+msgstr ""
+"Pentru B<xz> pe 32 de biți există un caz special: dacă I<limita> ar fi peste "
+"B<4020MiB>, I<limita> este stabilită la B<4020MiB>. Pe MIPS32 este "
+"stabilită în schimb la B<2000MiB>; (valorile B<0> și B<max> nu sunt afectate "
+"de acest lucru -- o caracteristică similară nu există pentru decomprimare). "
+"Acest lucru poate fi util atunci când un executabil pe 32 de biți are acces "
+"la un spațiu de adrese de 4Gio (2Gio pe MIPS32), se speră că nu produce "
+"daune în alte situații."
#. type: Plain text
#: ../src/xz/xz.1:1137
@@ -1357,8 +2156,17 @@ msgstr "B<--memlimit-decompress=>I<limita>"
#. type: Plain text
#: ../src/xz/xz.1:1151
-msgid "Set a memory usage limit for decompression. This also affects the B<--list> mode. If the operation is not possible without exceeding the I<limit>, B<xz> will display an error and decompressing the file will fail. See B<--memlimit-compress=>I<limit> for possible ways to specify the I<limit>."
-msgstr "Stabilește o limită de utilizare a memoriei pentru decomprimare. Acest lucru afectează și modul B<--list>. Dacă operațiunea nu este posibilă fără a depăși I<limita>, B<xz> va afișa o eroare și decomprimarea fișierului va eșua. Consultați B<--memlimit-compress=>I<limita> pentru modalitățile posibile de a specifica I<limita>."
+msgid ""
+"Set a memory usage limit for decompression. This also affects the B<--list> "
+"mode. If the operation is not possible without exceeding the I<limit>, "
+"B<xz> will display an error and decompressing the file will fail. See B<--"
+"memlimit-compress=>I<limit> for possible ways to specify the I<limit>."
+msgstr ""
+"Stabilește o limită de utilizare a memoriei pentru decomprimare. Acest lucru "
+"afectează și modul B<--list>. Dacă operațiunea nu este posibilă fără a "
+"depăși I<limita>, B<xz> va afișa o eroare și decomprimarea fișierului va "
+"eșua. Consultați B<--memlimit-compress=>I<limita> pentru modalitățile "
+"posibile de a specifica I<limita>."
#. type: TP
#: ../src/xz/xz.1:1151
@@ -1368,23 +2176,72 @@ msgstr "B<--memlimit-mt-decompress=>I<limita>"
#. type: Plain text
#: ../src/xz/xz.1:1173
-msgid "Set a memory usage limit for multi-threaded decompression. This can only affect the number of threads; this will never make B<xz> refuse to decompress a file. If I<limit> is too low to allow any multi-threading, the I<limit> is ignored and B<xz> will continue in single-threaded mode. Note that if also B<--memlimit-decompress> is used, it will always apply to both single-threaded and multi-threaded modes, and so the effective I<limit> for multi-threading will never be higher than the limit set with B<--memlimit-decompress>."
-msgstr "Stabilește o limită de utilizare a memoriei pentru decomprimarea cu mai multe fire de execuție. Acest lucru poate afecta doar numărul de fire de execuție; acest lucru nu îl va face niciodată pe B<xz> să refuze decomprimarea unui fișier. Dacă I<limita> este prea scăzută pentru a permite orice mod cu mai multe fire de execuție, I<limita> este ignorată și B<xz> va continua în modul cu un singur fir de execuție. Rețineți că, dacă se folosește și opțiunea B<--memlimit-decompress>, se va aplica întotdeauna atât modurilor cu un singur fir de execuție, cât și modurilor cu mai multe fire de execuție și astfel I<limita> efectivă pentru modul cu mai multe fire de execuție nu va fi niciodată mai mare decât limita stabilită cu opțiunea B<--memlimit-decompress>."
+msgid ""
+"Set a memory usage limit for multi-threaded decompression. This can only "
+"affect the number of threads; this will never make B<xz> refuse to "
+"decompress a file. If I<limit> is too low to allow any multi-threading, the "
+"I<limit> is ignored and B<xz> will continue in single-threaded mode. Note "
+"that if also B<--memlimit-decompress> is used, it will always apply to both "
+"single-threaded and multi-threaded modes, and so the effective I<limit> for "
+"multi-threading will never be higher than the limit set with B<--memlimit-"
+"decompress>."
+msgstr ""
+"Stabilește o limită de utilizare a memoriei pentru decomprimarea cu mai "
+"multe fire de execuție. Acest lucru poate afecta doar numărul de fire de "
+"execuție; acest lucru nu îl va face niciodată pe B<xz> să refuze "
+"decomprimarea unui fișier. Dacă I<limita> este prea scăzută pentru a permite "
+"orice mod cu mai multe fire de execuție, I<limita> este ignorată și B<xz> va "
+"continua în modul cu un singur fir de execuție. Rețineți că, dacă se "
+"folosește și opțiunea B<--memlimit-decompress>, se va aplica întotdeauna "
+"atât modurilor cu un singur fir de execuție, cât și modurilor cu mai multe "
+"fire de execuție și astfel I<limita> efectivă pentru modul cu mai multe fire "
+"de execuție nu va fi niciodată mai mare decât limita stabilită cu opțiunea "
+"B<--memlimit-decompress>."
#. type: Plain text
#: ../src/xz/xz.1:1180
-msgid "In contrast to the other memory usage limit options, B<--memlimit-mt-decompress=>I<limit> has a system-specific default I<limit>. B<xz --info-memory> can be used to see the current value."
-msgstr "Spre deosebire de celelalte opțiuni de limită de utilizare a memoriei, opțiunea B<--memlimit-mt-decompress=>I<limita> are o I<limită> implicită specifică sistemului. Comanda B<xz --info-memory> poate fi folosită pentru a vedea valoarea curentă."
+msgid ""
+"In contrast to the other memory usage limit options, B<--memlimit-mt-"
+"decompress=>I<limit> has a system-specific default I<limit>. B<xz --info-"
+"memory> can be used to see the current value."
+msgstr ""
+"Spre deosebire de celelalte opțiuni de limită de utilizare a memoriei, "
+"opțiunea B<--memlimit-mt-decompress=>I<limita> are o I<limită> implicită "
+"specifică sistemului. Comanda B<xz --info-memory> poate fi folosită pentru a "
+"vedea valoarea curentă."
#. type: Plain text
#: ../src/xz/xz.1:1196
-msgid "This option and its default value exist because without any limit the threaded decompressor could end up allocating an insane amount of memory with some input files. If the default I<limit> is too low on your system, feel free to increase the I<limit> but never set it to a value larger than the amount of usable RAM as with appropriate input files B<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 performance."
-msgstr "Această opțiune și valoarea ei implicită există deoarece, fără nicio limită, decomprimarea cu (mai multe) fire de execuție ar putea ajunge să aloce o cantitate „nebună†de memorie cu unele fișiere de intrare. Dacă I<limita> implicită este prea scăzută pe sistemul dumneavoastră, nu ezitați să creșteți I<limita>, dar niciodată să nu o stabiliți la o valoare mai mare decât cantitatea de memorie RAM utilizabilă și cu niște fișiere de intrare adecvate, B<xz> va încerca să utilizeze acea cantitate de memorie chiar și cu un număr redus de fire de execuție. Rularea lui B<xz> cu depășirea cantității de memorie fizice(RAM) sau a celei de interschimb(swap) nu va îmbunătăți performanța de decomprimare."
+msgid ""
+"This option and its default value exist because without any limit the "
+"threaded decompressor could end up allocating an insane amount of memory "
+"with some input files. If the default I<limit> is too low on your system, "
+"feel free to increase the I<limit> but never set it to a value larger than "
+"the amount of usable RAM as with appropriate input files B<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 performance."
+msgstr ""
+"Această opțiune și valoarea ei implicită există deoarece, fără nicio limită, "
+"decomprimarea cu (mai multe) fire de execuție ar putea ajunge să aloce o "
+"cantitate „nebună†de memorie cu unele fișiere de intrare. Dacă I<limita> "
+"implicită este prea scăzută pe sistemul dumneavoastră, nu ezitați să "
+"creșteți I<limita>, dar niciodată să nu o stabiliți la o valoare mai mare "
+"decât cantitatea de memorie RAM utilizabilă și cu niște fișiere de intrare "
+"adecvate, B<xz> va încerca să utilizeze acea cantitate de memorie chiar și "
+"cu un număr redus de fire de execuție. Rularea lui B<xz> cu depășirea "
+"cantității de memorie fizice(RAM) sau a celei de interschimb(swap) nu va "
+"îmbunătăți performanța de decomprimare."
#. type: Plain text
#: ../src/xz/xz.1:1208
-msgid "See B<--memlimit-compress=>I<limit> for possible ways to specify the I<limit>. Setting I<limit> to B<0> resets the I<limit> to the default system-specific value."
-msgstr "Consultați opțiunea B<--memlimit-compress=>I<limita> pentru modalități posibile de a specifica I<limita>. Stabilirea I<limitei> la B<0> restabilește I<limita> la valoarea implicită specifică sistemului."
+msgid ""
+"See B<--memlimit-compress=>I<limit> for possible ways to specify the "
+"I<limit>. Setting I<limit> to B<0> resets the I<limit> to the default "
+"system-specific value."
+msgstr ""
+"Consultați opțiunea B<--memlimit-compress=>I<limita> pentru modalități "
+"posibile de a specifica I<limita>. Stabilirea I<limitei> la B<0> "
+"restabilește I<limita> la valoarea implicită specifică sistemului."
#. type: TP
#: ../src/xz/xz.1:1208
@@ -1394,8 +2251,13 @@ msgstr "B<-M> I<limita>, B<--memlimit=>I<limita>, B<--memory=>I<limita>"
#. type: Plain text
#: ../src/xz/xz.1:1214
-msgid "This is equivalent to specifying B<--memlimit-compress=>I<limit> B<--memlimit-decompress=>I<limit> B<--memlimit-mt-decompress=>I<limit>."
-msgstr "Aceasta este echivalentă cu specificarea opțiunilor: B<--memlimit-compress=>I<limita> B<--memlimit-decompress=>I<limita> B<--memlimit-mt-decompress=>I<limita>."
+msgid ""
+"This is equivalent to specifying B<--memlimit-compress=>I<limit> B<--"
+"memlimit-decompress=>I<limit> B<--memlimit-mt-decompress=>I<limit>."
+msgstr ""
+"Aceasta este echivalentă cu specificarea opțiunilor: B<--memlimit-"
+"compress=>I<limita> B<--memlimit-decompress=>I<limita> B<--memlimit-mt-"
+"decompress=>I<limita>."
#. type: TP
#: ../src/xz/xz.1:1214
@@ -1405,13 +2267,30 @@ msgstr "B<--no-adjust>"
#. type: Plain text
#: ../src/xz/xz.1:1224
-msgid "Display an error and exit if the memory usage limit cannot be met without adjusting settings that affect the compressed output. That is, this prevents B<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."
-msgstr "Afișează o eroare și iese dacă limita de utilizare a memoriei nu poate fi îndeplinită fără ajustarea parametrilor care afectează ieșirea comprimată. Adică, acest lucru împiedică B<xz> să comute codificatorul din modul cu mai multe fire de execuție în modul cu un singur fir de execuție și să reducă dimensiunea dicționarului LZMA2. Chiar și atunci când această opțiune este utilizată, numărul de fire de execuție poate fi redus pentru a îndeplini limita de utilizare a memoriei, deoarece aceasta nu va afecta comprimarea."
+msgid ""
+"Display an error and exit if the memory usage limit cannot be met without "
+"adjusting settings that affect the compressed output. That is, this "
+"prevents B<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."
+msgstr ""
+"Afișează o eroare și iese dacă limita de utilizare a memoriei nu poate fi "
+"îndeplinită fără ajustarea parametrilor care afectează ieșirea comprimată. "
+"Adică, acest lucru împiedică B<xz> să comute codificatorul din modul cu mai "
+"multe fire de execuție în modul cu un singur fir de execuție și să reducă "
+"dimensiunea dicționarului LZMA2. Chiar și atunci când această opțiune este "
+"utilizată, numărul de fire de execuție poate fi redus pentru a îndeplini "
+"limita de utilizare a memoriei, deoarece aceasta nu va afecta comprimarea."
#. type: Plain text
#: ../src/xz/xz.1:1227
-msgid "Automatic adjusting is always disabled when creating raw streams (B<--format=raw>)."
-msgstr "Ajustarea automată este întotdeauna dezactivată la crearea fluxurilor brute (B<--format=raw>)."
+msgid ""
+"Automatic adjusting is always disabled when creating raw streams (B<--"
+"format=raw>)."
+msgstr ""
+"Ajustarea automată este întotdeauna dezactivată la crearea fluxurilor brute "
+"(B<--format=raw>)."
#. type: TP
#: ../src/xz/xz.1:1227
@@ -1421,38 +2300,115 @@ msgstr "B<-T> I<număr>, B<--threads=>I<număr>"
#. type: Plain text
#: ../src/xz/xz.1:1242
-msgid "Specify the number of worker threads to use. Setting I<threads> to a special value B<0> makes B<xz> use up to as many threads as the processor(s) on the system support. The actual number of threads can be fewer than I<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."
-msgstr "Specifică numărul de fire de execuție de utilizat. Stabilirea I<numărului> la valoarea specială B<0>, face ca B<xz> să utilizeze până la atâtea fire de execuție câte procesoare sunt în sistem. Numărul real de fire de execuție poate fi mai mic decât I<număr> dacă fișierul de intrare nu este suficient de mare pentru a trece la modul cu mai multe fire de execuție cu parametrii dați, sau dacă folosirea mai multor fire de execuție ar depăși limita de utilizare a memoriei."
+msgid ""
+"Specify the number of worker threads to use. Setting I<threads> to a "
+"special value B<0> makes B<xz> use up to as many threads as the processor(s) "
+"on the system support. The actual number of threads can be fewer than "
+"I<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."
+msgstr ""
+"Specifică numărul de fire de execuție de utilizat. Stabilirea I<numărului> "
+"la valoarea specială B<0>, face ca B<xz> să utilizeze până la atâtea fire de "
+"execuție câte procesoare sunt în sistem. Numărul real de fire de execuție "
+"poate fi mai mic decât I<număr> dacă fișierul de intrare nu este suficient "
+"de mare pentru a trece la modul cu mai multe fire de execuție cu parametrii "
+"dați, sau dacă folosirea mai multor fire de execuție ar depăși limita de "
+"utilizare a memoriei."
#. type: Plain text
#: ../src/xz/xz.1:1261
-msgid "The single-threaded and multi-threaded compressors produce different output. Single-threaded compressor will give the smallest file size but only the output from the multi-threaded compressor can be decompressed using multiple threads. Setting I<threads> to B<1> will use the single-threaded mode. Setting I<threads> to any other value, including B<0>, will use the multi-threaded compressor even if the system supports only one hardware thread. (B<xz> 5.2.x used single-threaded mode in this situation.)"
-msgstr "Operațiile de comprimare cu un singur fir de execuție și cele cu mai multe fire de execuție produc ieșiri diferite. Comprimarea cu un singur fir de execuție va oferi cea mai mică dimensiune a fișierului, dar numai ieșirea de la comprimarea cu mai multe fire de execuție poate fi decomprimată folosind mai multe fire. Stabilirea I<numărului> la B<1> va determina ca B<xz> să folosească modul cu un singur fir de execuție. Stabilirea I<numărului> la orice altă valoare, inclusiv B<0>, va determina ca B<xz> să folosească comprimarea cu mai multe fire de execuție chiar dacă sistemul acceptă doar un fir hardware; (B<xz> 5.2.x folosește modul cu un singur fir de execuție în această situație)."
+msgid ""
+"The single-threaded and multi-threaded compressors produce different "
+"output. Single-threaded compressor will give the smallest file size but "
+"only the output from the multi-threaded compressor can be decompressed using "
+"multiple threads. Setting I<threads> to B<1> will use the single-threaded "
+"mode. Setting I<threads> to any other value, including B<0>, will use the "
+"multi-threaded compressor even if the system supports only one hardware "
+"thread. (B<xz> 5.2.x used single-threaded mode in this situation.)"
+msgstr ""
+"Operațiile de comprimare cu un singur fir de execuție și cele cu mai multe "
+"fire de execuție produc ieșiri diferite. Comprimarea cu un singur fir de "
+"execuție va oferi cea mai mică dimensiune a fișierului, dar numai ieșirea de "
+"la comprimarea cu mai multe fire de execuție poate fi decomprimată folosind "
+"mai multe fire. Stabilirea I<numărului> la B<1> va determina ca B<xz> să "
+"folosească modul cu un singur fir de execuție. Stabilirea I<numărului> la "
+"orice altă valoare, inclusiv B<0>, va determina ca B<xz> să folosească "
+"comprimarea cu mai multe fire de execuție chiar dacă sistemul acceptă doar "
+"un fir hardware; (B<xz> 5.2.x folosește modul cu un singur fir de execuție "
+"în această situație)."
#. type: Plain text
#: ../src/xz/xz.1:1280
-msgid "To use multi-threaded mode with only one thread, set I<threads> to B<+1>. The B<+> prefix has no effect with values other than B<1>. A memory usage limit can still make B<xz> switch to single-threaded mode unless B<--no-adjust> is used. Support for the B<+> prefix was added in B<xz> 5.4.0."
-msgstr "Pentru a utiliza modul cu mai multe fire de execuție cu un singur fir, stabiliți I<numărul> la B<+1>. Prefixul B<+> nu are efect cu alte valori decât B<1>. O limită de utilizare a memoriei poate face în continuare B<xz> să treacă în modul cu un singur fir, cu excepția cazului în care este utilizată opțiunea B<--no-adjust>. Suportul pentru prefixul B<+> a fost adăugat în B<xz> 5.4.0."
+msgid ""
+"To use multi-threaded mode with only one thread, set I<threads> to B<+1>. "
+"The B<+> prefix has no effect with values other than B<1>. A memory usage "
+"limit can still make B<xz> switch to single-threaded mode unless B<--no-"
+"adjust> is used. Support for the B<+> prefix was added in B<xz> 5.4.0."
+msgstr ""
+"Pentru a utiliza modul cu mai multe fire de execuție cu un singur fir, "
+"stabiliți I<numărul> la B<+1>. Prefixul B<+> nu are efect cu alte valori "
+"decât B<1>. O limită de utilizare a memoriei poate face în continuare B<xz> "
+"să treacă în modul cu un singur fir, cu excepția cazului în care este "
+"utilizată opțiunea B<--no-adjust>. Suportul pentru prefixul B<+> a fost "
+"adăugat în B<xz> 5.4.0."
#. type: Plain text
#: ../src/xz/xz.1:1295
-msgid "If an automatic number of threads has been requested and no memory usage limit has been specified, then a system-specific default 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 B<xz> from compressing or decompressing. This default soft limit will not make B<xz> switch from multi-threaded mode to single-threaded mode. The active limits can be seen with B<xz --info-memory>."
-msgstr "Dacă a fost solicitat un număr automat de fire și nu a fost specificată nicio limită de utilizare a memoriei, atunci o limită „maleabilă†implicită specifică sistemului va fi utilizată pentru a limita eventual numărul de fire de execuție. Este o limită „maleabilă†în sensul că este ignorată dacă numărul de fire devine unul, astfel o limită „maleabilă†nu va opri niciodată B<xz> să comprime sau să decomprime. Această limită „maleabilă†implicită nu va face B<xz> să treacă de la modul cu mai multe fire de execuție la modul cu un singur fir de execuție. Limitele active pot fi văzute rulând comanda B<xz --info-memory>."
+msgid ""
+"If an automatic number of threads has been requested and no memory usage "
+"limit has been specified, then a system-specific default 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 B<xz> from compressing or decompressing. This default soft "
+"limit will not make B<xz> switch from multi-threaded mode to single-threaded "
+"mode. The active limits can be seen with B<xz --info-memory>."
+msgstr ""
+"Dacă a fost solicitat un număr automat de fire și nu a fost specificată "
+"nicio limită de utilizare a memoriei, atunci o limită „maleabilă†implicită "
+"specifică sistemului va fi utilizată pentru a limita eventual numărul de "
+"fire de execuție. Este o limită „maleabilă†în sensul că este ignorată dacă "
+"numărul de fire devine unul, astfel o limită „maleabilă†nu va opri "
+"niciodată B<xz> să comprime sau să decomprime. Această limită „maleabilă†"
+"implicită nu va face B<xz> să treacă de la modul cu mai multe fire de "
+"execuție la modul cu un singur fir de execuție. Limitele active pot fi "
+"văzute rulând comanda B<xz --info-memory>."
#. type: Plain text
#: ../src/xz/xz.1:1302
-msgid "Currently the only threading method is to split the input into blocks and compress them independently from each other. The default block size depends on the compression level and can be overridden with the B<--block-size=>I<size> option."
-msgstr "În prezent, singura metodă de procesare cu fire de execuție este împărțirea intrării în blocuri și comprimarea lor independent unul de celălalt. Dimensiunea implicită a blocului depinde de nivelul de comprimare și poate fi înlocuită cu opțiunea B<--block-size=>I<dimensiune>."
+msgid ""
+"Currently the only threading method is to split the input into blocks and "
+"compress them independently from each other. The default block size depends "
+"on the compression level and can be overridden with the B<--block-"
+"size=>I<size> option."
+msgstr ""
+"În prezent, singura metodă de procesare cu fire de execuție este împărțirea "
+"intrării în blocuri și comprimarea lor independent unul de celălalt. "
+"Dimensiunea implicită a blocului depinde de nivelul de comprimare și poate "
+"fi înlocuită cu opțiunea B<--block-size=>I<dimensiune>."
#. type: Plain text
#: ../src/xz/xz.1:1310
-msgid "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 B<--block-size=>I<size> has been used."
-msgstr "Decomprimarea cu fire de execuție funcționează numai pe fișierele care conțin mai multe blocuri cu informații despre dimensiune în antetele blocurilor. Toate fișierele suficient de mari comprimate în modul cu mai multe fire de execuție îndeplinesc această condiție, dar fișierele comprimate în modul cu un singur fir de execuție nu o îndeplinesc chiar dacă a fost folosită opțiunea B<--block-size=>I<dimensiune>."
+msgid ""
+"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 B<--block-size=>I<size> has been used."
+msgstr ""
+"Decomprimarea cu fire de execuție funcționează numai pe fișierele care "
+"conțin mai multe blocuri cu informații despre dimensiune în antetele "
+"blocurilor. Toate fișierele suficient de mari comprimate în modul cu mai "
+"multe fire de execuție îndeplinesc această condiție, dar fișierele "
+"comprimate în modul cu un singur fir de execuție nu o îndeplinesc chiar dacă "
+"a fost folosită opțiunea B<--block-size=>I<dimensiune>."
#. type: Plain text
#: ../src/xz/xz.1:1319
-msgid "The default value for I<threads> is B<0>. In B<xz> 5.4.x and older the default is B<1>."
-msgstr "Valoarea implicită pentru I<fire de execuție> este B<0>. În B<xz> 5.4.x și mai vechi, valoarea implicită este B<1>."
+msgid ""
+"The default value for I<threads> is B<0>. In B<xz> 5.4.x and older the "
+"default is B<1>."
+msgstr ""
+"Valoarea implicită pentru I<fire de execuție> este B<0>. În B<xz> 5.4.x și "
+"mai vechi, valoarea implicită este B<1>."
#. type: SS
#: ../src/xz/xz.1:1320 ../src/xz/xz.1:2982
@@ -1462,33 +2418,108 @@ msgstr "Lanțuri de filtrare personalizate pentru instrumentul de comprimare"
#. type: Plain text
#: ../src/xz/xz.1:1336
-msgid "A custom filter chain allows specifying the compression settings in detail instead of relying on the settings associated to the presets. When a custom filter chain is specified, preset options (B<-0> \\&...\\& B<-9> and B<--extreme>) earlier on the command line are forgotten. If a preset option 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."
-msgstr "Un lanț de filtrare personalizat permite specificarea parametrilor de comprimare în detaliu, în loc să se bazeze pe cei asociați opțiunilor prestabilite. Când este specificat un lanț de filtrare personalizat, opțiunile prestabilite (B<-0> \\&...\\& B<-9> și B<--extreme>) de mai devreme din linia de comandă sunt uitate. Dacă o opțiune prestabilită este specificată după una sau mai multe opțiuni de lanț de filtrare personalizat, noua prestabilire intră în vigoare și opțiunile lanțului de filtrare personalizat, specificate mai devreme sunt uitate."
+msgid ""
+"A custom filter chain allows specifying the compression settings in detail "
+"instead of relying on the settings associated to the presets. When a custom "
+"filter chain is specified, preset options (B<-0> \\&...\\& B<-9> and B<--"
+"extreme>) earlier on the command line are forgotten. If a preset option 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."
+msgstr ""
+"Un lanÈ› de filtrare personalizat permite specificarea parametrilor de "
+"comprimare în detaliu, în loc să se bazeze pe cei asociați opțiunilor "
+"prestabilite. Când este specificat un lanț de filtrare personalizat, "
+"opțiunile prestabilite (B<-0> \\&...\\& B<-9> și B<--extreme>) de mai "
+"devreme din linia de comandă sunt uitate. Dacă o opțiune prestabilită este "
+"specificată după una sau mai multe opțiuni de lanț de filtrare personalizat, "
+"noua prestabilire intră în vigoare și opțiunile lanțului de filtrare "
+"personalizat, specificate mai devreme sunt uitate."
#. type: Plain text
#: ../src/xz/xz.1:1343
-msgid "A filter chain is comparable to piping on the command line. When compressing, 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 filters."
-msgstr "Un lanț de filtrare este comparabil cu conductele din linia de comandă. La comprimare, intrarea necomprimată merge la primul filtru, a cărui ieșire merge la următorul filtru (dacă există). Ieșirea ultimului filtru este scrisă în fișierul comprimat. Numărul maxim de filtre din lanț este de patru, dar de obicei un lanț de filtrare are doar unul sau două filtre."
+msgid ""
+"A filter chain is comparable to piping on the command line. When "
+"compressing, 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 filters."
+msgstr ""
+"Un lanț de filtrare este comparabil cu conductele din linia de comandă. La "
+"comprimare, intrarea necomprimată merge la primul filtru, a cărui ieșire "
+"merge la următorul filtru (dacă există). Ieșirea ultimului filtru este "
+"scrisă în fișierul comprimat. Numărul maxim de filtre din lanț este de "
+"patru, dar de obicei un lanț de filtrare are doar unul sau două filtre."
#. type: Plain text
#: ../src/xz/xz.1:1351
-msgid "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. Depending on the filter, this limitation is either inherent to the filter design or exists to prevent security issues."
-msgstr "Multe filtre au limitări în ceea ce privește locul în care se pot afla în lanțul de filtrare: unele filtre pot funcționa doar ca ultimul filtru din lanț, altele doar ca non-ultim filtru și unele funcționează în orice poziție din lanț. În funcție de filtru, această limitare este fie inerentă proiectării filtrului, fie există pentru a preveni problemele de securitate."
+msgid ""
+"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. Depending on the "
+"filter, this limitation is either inherent to the filter design or exists to "
+"prevent security issues."
+msgstr ""
+"Multe filtre au limitări în ceea ce privește locul în care se pot afla în "
+"lanțul de filtrare: unele filtre pot funcționa doar ca ultimul filtru din "
+"lanț, altele doar ca non-ultim filtru și unele funcționează în orice poziție "
+"din lanț. În funcție de filtru, această limitare este fie inerentă "
+"proiectării filtrului, fie există pentru a preveni problemele de securitate."
#. type: Plain text
#: ../src/xz/xz.1:1374
-msgid "A custom filter chain can be specified in two different ways. The options B<--filters=>I<filters> and B<--filters1=>I<filters> \\&...\\& B<--filters9=>I<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 filter options is significant! When decoding raw streams (B<--format=raw>), the filter chain must be specified in the same order as it was specified when compressing. Any individual filter or preset options specified before the full chain option (B<--filters=>I<filters>) will be forgotten. Individual filters specified after the full chain option will reset the filter chain."
-msgstr "Un lanț de filtre personalizat poate fi specificat în două moduri diferite. Opțiunile B<--filters=>I<filtre> și B<--filters1=>I<filtre> \\&...\\& B<--filters9=>I<filtre> permit specificarea unui întreg lanț de filtre într-o singură opțiune, folosind sintaxa șirului de filtre liblzma. Alternativ, un lanț de filtre poate fi specificat prin utilizarea uneia sau mai multor opțiuni de filtrare individuale în ordinea în care sunt dorite în lanțul de filtre. Adică, ordinea opțiunilor de filtrare individuale este semnificativă! La decodificarea fluxurilor brute (B<--format=raw>), lanțul de filtre trebuie să fie specificat în aceeași ordine în care a fost specificat la comprimare. Orice filtru individual sau opțiuni presetate specificate înainte de opțiunea de lanț complet (B<--filters=>I<filtre>) vor fi uitate. Filtrele individuale specificate după opțiunea „lanț complet†vor reinițializa lanțul de filtre."
+msgid ""
+"A custom filter chain can be specified in two different ways. The options "
+"B<--filters=>I<filters> and B<--filters1=>I<filters> \\&...\\& B<--"
+"filters9=>I<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 "
+"filter options is significant! When decoding raw streams (B<--format=raw>), "
+"the filter chain must be specified in the same order as it was specified "
+"when compressing. Any individual filter or preset options specified before "
+"the full chain option (B<--filters=>I<filters>) will be forgotten. "
+"Individual filters specified after the full chain option will reset the "
+"filter chain."
+msgstr ""
+"Un lanț de filtre personalizat poate fi specificat în două moduri diferite. "
+"Opțiunile B<--filters=>I<filtre> și B<--filters1=>I<filtre> \\&...\\& B<--"
+"filters9=>I<filtre> permit specificarea unui întreg lanț de filtre într-o "
+"singură opțiune, folosind sintaxa șirului de filtre liblzma. Alternativ, un "
+"lanÈ› de filtre poate fi specificat prin utilizarea uneia sau mai multor "
+"opțiuni de filtrare individuale în ordinea în care sunt dorite în lanțul de "
+"filtre. Adică, ordinea opțiunilor de filtrare individuale este "
+"semnificativă! La decodificarea fluxurilor brute (B<--format=raw>), lanțul "
+"de filtre trebuie să fie specificat în aceeași ordine în care a fost "
+"specificat la comprimare. Orice filtru individual sau opțiuni presetate "
+"specificate înainte de opțiunea de lanț complet (B<--filters=>I<filtre>) vor "
+"fi uitate. Filtrele individuale specificate după opțiunea „lanț complet†vor "
+"reinițializa lanțul de filtre."
#. type: Plain text
#: ../src/xz/xz.1:1383
-msgid "Both the full and individual filter options take filter-specific I<options> as a comma-separated list. Extra commas in I<options> are ignored. Every option has a default value, so specify those you want to change."
-msgstr "Atât opțiunile de filtrare completă, cât și cele de filtrare individuală acceptă I<opțiuni> specifice filtrului sub forma unei liste separate prin virgule. Se ignoră virgulele suplimentare din I<opțiuni>. Fiecare opțiune are o valoare implicită, deci specificați-le pe cele pe care doriți să le modificați."
+msgid ""
+"Both the full and individual filter options take filter-specific I<options> "
+"as a comma-separated list. Extra commas in I<options> are ignored. Every "
+"option has a default value, so specify those you want to change."
+msgstr ""
+"Atât opțiunile de filtrare completă, cât și cele de filtrare individuală "
+"acceptă I<opțiuni> specifice filtrului sub forma unei liste separate prin "
+"virgule. Se ignoră virgulele suplimentare din I<opțiuni>. Fiecare opțiune "
+"are o valoare implicită, deci specificați-le pe cele pe care doriți să le "
+"modificați."
#. type: Plain text
#: ../src/xz/xz.1:1392
-msgid "To see the whole filter chain and I<options>, use B<xz -vv> (that is, use B<--verbose> twice). This works also for viewing the filter chain options used by presets."
-msgstr "Pentru a vedea întregul lanț de filtre și I<opțiuni>, utilizați B<xz -vv> (adică folosiți B<--verbose> de două ori). Acest lucru funcționează și pentru vizualizarea opțiunilor lanțului de filtre utilizate de valorile prestabilite."
+msgid ""
+"To see the whole filter chain and I<options>, use B<xz -vv> (that is, use "
+"B<--verbose> twice). This works also for viewing the filter chain options "
+"used by presets."
+msgstr ""
+"Pentru a vedea întregul lanț de filtre și I<opțiuni>, utilizați B<xz -vv> "
+"(adică folosiți B<--verbose> de două ori). Acest lucru funcționează și "
+"pentru vizualizarea opțiunilor lanțului de filtre utilizate de valorile "
+"prestabilite."
#. type: TP
#: ../src/xz/xz.1:1392
@@ -1498,8 +2529,21 @@ msgstr "B<--filters=>I<filtre>"
#. type: Plain text
#: ../src/xz/xz.1:1413
-msgid "Specify the full filter chain or a preset in a single option. Each filter can be separated by spaces or two dashes (B<-->). I<filters> may need to be quoted on the shell command line so it is parsed as a single option. To denote I<options>, use B<:> or B<=>. A preset can be prefixed with a B<-> and followed with zero or more flags. The only supported flag is B<e> to apply the same options as B<--extreme>."
-msgstr "Specificați întregul lanț de filtre sau o presetare într-o singură opțiune. Fiecare filtru poate fi separat prin spații sau două liniuțe (B<-->). Este posibil să fie necesar ca I<filtrele> să fie puse între ghilimele în linia de comandă a shell-ului pentru a fi analizate ca o singură opțiune. Pentru a indica I<opțiuni>, utilizați B<:> sau B<=>. O presetare poate fi prefixată cu un B<-> și urmată de zero sau mai multe indicatoare. Singurul indicator suportat este B<e> pentru a aplica aceleași opțiuni ca și B<--extreme>."
+msgid ""
+"Specify the full filter chain or a preset in a single option. Each filter "
+"can be separated by spaces or two dashes (B<-->). I<filters> may need to be "
+"quoted on the shell command line so it is parsed as a single option. To "
+"denote I<options>, use B<:> or B<=>. A preset can be prefixed with a B<-> "
+"and followed with zero or more flags. The only supported flag is B<e> to "
+"apply the same options as B<--extreme>."
+msgstr ""
+"Specificați întregul lanț de filtre sau o presetare într-o singură opțiune. "
+"Fiecare filtru poate fi separat prin spații sau două liniuțe (B<-->). Este "
+"posibil să fie necesar ca I<filtrele> să fie puse între ghilimele în linia "
+"de comandă a shell-ului pentru a fi analizate ca o singură opțiune. Pentru a "
+"indica I<opțiuni>, utilizați B<:> sau B<=>. O presetare poate fi prefixată "
+"cu un B<-> și urmată de zero sau mai multe indicatoare. Singurul indicator "
+"suportat este B<e> pentru a aplica aceleași opțiuni ca și B<--extreme>."
#. type: TP
#: ../src/xz/xz.1:1413
@@ -1509,13 +2553,23 @@ msgstr "B<--filters1>=I<filtre> ... B<--filters9>=I<filtre>"
#. type: Plain text
#: ../src/xz/xz.1:1417
-msgid "Specify up to nine additional filter chains that can be used with B<--block-list>."
-msgstr "Specifică până la nouă lanțuri de filtre suplimentare care pot fi utilizate cu B<--block-list>."
+msgid ""
+"Specify up to nine additional filter chains that can be used with B<--block-"
+"list>."
+msgstr ""
+"Specifică până la nouă lanțuri de filtre suplimentare care pot fi utilizate "
+"cu B<--block-list>."
#. type: Plain text
#: ../src/xz/xz.1:1421
-msgid "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."
-msgstr "De exemplu, atunci când se comprimă o arhivă cu fișiere executabile urmate de fișiere text, partea executabilă ar putea utiliza un lanț de filtre cu un filtru BCJ, iar partea de text doar filtrul LZMA2."
+msgid ""
+"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."
+msgstr ""
+"De exemplu, atunci când se comprimă o arhivă cu fișiere executabile urmate "
+"de fișiere text, partea executabilă ar putea utiliza un lanț de filtre cu un "
+"filtru BCJ, iar partea de text doar filtrul LZMA2."
#. type: TP
#: ../src/xz/xz.1:1421
@@ -1525,8 +2579,14 @@ msgstr "B<--filters-help>"
#. type: Plain text
#: ../src/xz/xz.1:1431
-msgid "Display a help message describing how to specify presets and custom filter chains in the B<--filters> and B<--filters1=>I<filters> \\&...\\& B<--filters9=>I<filters> options, and exit successfully."
-msgstr "Afișează un mesaj de ajutor care descrie modul de specificare a presetărilor și a lanțurilor de filtre personalizate în opțiunile B<--filters> și B<--filters1=>I<filtre> \\&...\\& B<--filters9=>I<filtre> și iese."
+msgid ""
+"Display a help message describing how to specify presets and custom filter "
+"chains in the B<--filters> and B<--filters1=>I<filters> \\&...\\& B<--"
+"filters9=>I<filters> options, and exit successfully."
+msgstr ""
+"Afișează un mesaj de ajutor care descrie modul de specificare a presetărilor "
+"și a lanțurilor de filtre personalizate în opțiunile B<--filters> și B<--"
+"filters1=>I<filtre> \\&...\\& B<--filters9=>I<filtre> și iese."
#. type: TP
#: ../src/xz/xz.1:1431
@@ -1542,13 +2602,27 @@ msgstr "B<--lzma2>[B<=>I<opțiuni>]"
#. type: Plain text
#: ../src/xz/xz.1:1439
-msgid "Add LZMA1 or LZMA2 filter to the filter chain. These filters can be used only as the last filter in the chain."
-msgstr "Adaugă filtrul LZMA1 sau LZMA2 la lanțul de filtre. Aceste filtre pot fi folosite doar ca ultimul filtru din lanț."
+msgid ""
+"Add LZMA1 or LZMA2 filter to the filter chain. These filters can be used "
+"only as the last filter in the chain."
+msgstr ""
+"Adaugă filtrul LZMA1 sau LZMA2 la lanțul de filtre. Aceste filtre pot fi "
+"folosite doar ca ultimul filtru din lanÈ›."
#. type: Plain text
#: ../src/xz/xz.1:1451
-msgid "LZMA1 is a legacy filter, which is supported almost solely due to the legacy B<.lzma> file format, which supports only LZMA1. LZMA2 is an updated version of LZMA1 to fix some practical issues of LZMA1. The B<.xz> format uses LZMA2 and doesn't support LZMA1 at all. Compression speed and ratios of LZMA1 and LZMA2 are practically the same."
-msgstr "LZMA1 este un filtru vechi, care este acceptat aproape exclusiv datorită formatului de fișier vechi B<.lzma>, care acceptă numai LZMA1. LZMA2 este o versiune actualizată a LZMA1 pentru a rezolva unele probleme practice ale LZMA1. Formatul B<.xz> folosește LZMA2 și nu acceptă deloc LZMA1. Viteza de comprimare și rapoartele LZMA1 și LZMA2 sunt practic aceleași."
+msgid ""
+"LZMA1 is a legacy filter, which is supported almost solely due to the legacy "
+"B<.lzma> file format, which supports only LZMA1. LZMA2 is an updated "
+"version of LZMA1 to fix some practical issues of LZMA1. The B<.xz> format "
+"uses LZMA2 and doesn't support LZMA1 at all. Compression speed and ratios "
+"of LZMA1 and LZMA2 are practically the same."
+msgstr ""
+"LZMA1 este un filtru vechi, care este acceptat aproape exclusiv datorită "
+"formatului de fișier vechi B<.lzma>, care acceptă numai LZMA1. LZMA2 este o "
+"versiune actualizată a LZMA1 pentru a rezolva unele probleme practice ale "
+"LZMA1. Formatul B<.xz> folosește LZMA2 și nu acceptă deloc LZMA1. Viteza de "
+"comprimare și rapoartele LZMA1 și LZMA2 sunt practic aceleași."
#. type: Plain text
#: ../src/xz/xz.1:1454
@@ -1563,8 +2637,22 @@ msgstr "B<preset=>I<prestabilit>"
#. type: Plain text
#: ../src/xz/xz.1:1482
-msgid "Reset all LZMA1 or LZMA2 I<options> to I<preset>. I<Preset> consist of an integer, which may be followed by single-letter preset modifiers. The integer can be from B<0> to B<9>, matching the command line options B<-0> \\&...\\& B<-9>. The only supported modifier is currently B<e>, which matches B<--extreme>. If no B<preset> is specified, the default values of LZMA1 or LZMA2 I<options> are taken from the preset B<6>."
-msgstr "Reconfigurează toate I<opțiunile> LZMA1 sau LZMA2 la I<prestabilit>. I<prestabilit> constă dintr-un număr întreg, care poate fi urmat de modificatori prestabiliți cu o singură literă. Numărul întreg poate fi de la B<0> la B<9>, potrivindu-se cu opțiunile liniei de comandă B<-0> \\&...\\& B<-9>. Singurul modificator acceptat în prezent este B<e>, care se potrivește cu B<--extreme>. Dacă nu este specificat B<prestabilit>, valorile implicite ale I<opțiunilor> LZMA1 sau LZMA2 sunt preluate din prestabilirea B<6>."
+msgid ""
+"Reset all LZMA1 or LZMA2 I<options> to I<preset>. I<Preset> consist of an "
+"integer, which may be followed by single-letter preset modifiers. The "
+"integer can be from B<0> to B<9>, matching the command line options B<-0> "
+"\\&...\\& B<-9>. The only supported modifier is currently B<e>, which "
+"matches B<--extreme>. If no B<preset> is specified, the default values of "
+"LZMA1 or LZMA2 I<options> are taken from the preset B<6>."
+msgstr ""
+"Reconfigurează toate I<opțiunile> LZMA1 sau LZMA2 la I<prestabilit>. "
+"I<prestabilit> constă dintr-un număr întreg, care poate fi urmat de "
+"modificatori prestabiliți cu o singură literă. Numărul întreg poate fi de "
+"la B<0> la B<9>, potrivindu-se cu opțiunile liniei de comandă B<-0> \\&..."
+"\\& B<-9>. Singurul modificator acceptat în prezent este B<e>, care se "
+"potrivește cu B<--extreme>. Dacă nu este specificat B<prestabilit>, valorile "
+"implicite ale I<opțiunilor> LZMA1 sau LZMA2 sunt preluate din prestabilirea "
+"B<6>."
#. type: TP
#: ../src/xz/xz.1:1482
@@ -1574,18 +2662,58 @@ msgstr "B<dict=>I<dimensiunea>"
#. type: Plain text
#: ../src/xz/xz.1:1497
-msgid "Dictionary (history buffer) I<size> indicates how many bytes of the recently processed uncompressed data is kept in memory. The algorithm tries to find repeating byte sequences (matches) in the uncompressed data, and replace them with references to the data currently in the dictionary. The bigger the dictionary, the higher is the chance to find a match. Thus, increasing dictionary I<size> usually improves compression ratio, but a dictionary bigger than the uncompressed file is waste of memory."
-msgstr "I<Dimensiunea> dicționarului (istoricul memoriei tampon) indică câți octeți din datele necomprimate recent procesate sunt păstrați în memorie. Algoritmul încearcă să găsească secvențe de octeți care se repetă (potriviri) în datele necomprimate și să le înlocuiască cu referințe la datele aflate în prezent în dicționar. Cu cât dicționarul este mai mare, cu atât este mai mare șansa de a găsi o potrivire. Astfel, creșterea I<dimensiunii> dicționarului îmbunătățește de obicei raportul de comprimare, dar un dicționar mai mare decât fișierul necomprimat este risipă de memorie."
+msgid ""
+"Dictionary (history buffer) I<size> indicates how many bytes of the "
+"recently processed uncompressed data is kept in memory. The algorithm tries "
+"to find repeating byte sequences (matches) in the uncompressed data, and "
+"replace them with references to the data currently in the dictionary. The "
+"bigger the dictionary, the higher is the chance to find a match. Thus, "
+"increasing dictionary I<size> usually improves compression ratio, but a "
+"dictionary bigger than the uncompressed file is waste of memory."
+msgstr ""
+"I<Dimensiunea> dicționarului (istoricul memoriei tampon) indică câți octeți "
+"din datele necomprimate recent procesate sunt păstrați în memorie. "
+"Algoritmul încearcă să găsească secvențe de octeți care se repetă "
+"(potriviri) în datele necomprimate și să le înlocuiască cu referințe la "
+"datele aflate în prezent în dicționar. Cu cât dicționarul este mai mare, cu "
+"atât este mai mare șansa de a găsi o potrivire. Astfel, creșterea "
+"I<dimensiunii> dicționarului îmbunătățește de obicei raportul de comprimare, "
+"dar un dicționar mai mare decât fișierul necomprimat este risipă de memorie."
#. type: Plain text
#: ../src/xz/xz.1:1506
-msgid "Typical dictionary I<size> is from 64\\ KiB to 64\\ MiB. The minimum is 4\\ KiB. The maximum for compression is currently 1.5\\ GiB (1536\\ MiB). The decompressor already supports dictionaries up to one byte less than 4\\ GiB, which is the maximum for the LZMA1 and LZMA2 stream formats."
-msgstr "I<Dimensiunea>tipică a dicționarului este de la 64Kio până la 64Mio. Minimul este de 4Kio. Maximul pentru compresie este în prezent de 1,5Gio (1536Mio). Decomprimarea acceptă deja dicționare cu până la un octet mai puțin de 4Gio, care este maximul pentru formatele de flux LZMA1 și LZMA2."
+msgid ""
+"Typical dictionary I<size> is from 64\\ KiB to 64\\ MiB. The minimum is 4\\ "
+"KiB. The maximum for compression is currently 1.5\\ GiB (1536\\ MiB). The "
+"decompressor already supports dictionaries up to one byte less than 4\\ GiB, "
+"which is the maximum for the LZMA1 and LZMA2 stream formats."
+msgstr ""
+"I<Dimensiunea>tipică a dicționarului este de la 64Kio până la 64Mio. Minimul "
+"este de 4Kio. Maximul pentru compresie este în prezent de 1,5Gio (1536Mio). "
+"Decomprimarea acceptă deja dicționare cu până la un octet mai puțin de 4Gio, "
+"care este maximul pentru formatele de flux LZMA1 și LZMA2."
#. type: Plain text
#: ../src/xz/xz.1:1533
-msgid "Dictionary I<size> and match finder (I<mf>) together determine the memory usage of the LZMA1 or LZMA2 encoder. The same (or bigger) dictionary I<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 B<.xz> headers store the dictionary I<size> either as 2^I<n> or 2^I<n> + 2^(I<n>-1), so these I<sizes> are somewhat preferred for compression. Other I<sizes> will get rounded up when stored in the B<.xz> headers."
-msgstr "I<Dimensiunea> dicționarului și găsitorul de potriviri (match finder) → (I<mf>) determină împreună utilizarea memoriei de către codificatorul LZMA1 sau LZMA2. Aceeași I<dimensiune> a dicționarului (sau mai mare) care a fost utilizată la comprimare, este necesară pentru decomprimare, astfel încât utilizarea memoriei de către decodificator este determinată de dimensiunea dicționarului utilizată la comprimare. Antetele B<.xz> stochează I<dimensiunea> dicționarului fie ca 2^I<n>, fie ca 2^I<n> + 2^(I<n>-1), deci aceste I<dimensiuni> sunt oarecum preferate pentru comprimare. Alte I<dimensiuni> vor fi rotunjite atunci când sunt stocate în anteturile B<.xz>."
+msgid ""
+"Dictionary I<size> and match finder (I<mf>) together determine the memory "
+"usage of the LZMA1 or LZMA2 encoder. The same (or bigger) dictionary "
+"I<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 B<.xz> headers store the dictionary I<size> either as "
+"2^I<n> or 2^I<n> + 2^(I<n>-1), so these I<sizes> are somewhat preferred for "
+"compression. Other I<sizes> will get rounded up when stored in the B<.xz> "
+"headers."
+msgstr ""
+"I<Dimensiunea> dicționarului și găsitorul de potriviri (match finder) → "
+"(I<mf>) determină împreună utilizarea memoriei de către codificatorul LZMA1 "
+"sau LZMA2. Aceeași I<dimensiune> a dicționarului (sau mai mare) care a fost "
+"utilizată la comprimare, este necesară pentru decomprimare, astfel încât "
+"utilizarea memoriei de către decodificator este determinată de dimensiunea "
+"dicționarului utilizată la comprimare. Antetele B<.xz> stochează "
+"I<dimensiunea> dicționarului fie ca 2^I<n>, fie ca 2^I<n> + 2^(I<n>-1), deci "
+"aceste I<dimensiuni> sunt oarecum preferate pentru comprimare. Alte "
+"I<dimensiuni> vor fi rotunjite atunci când sunt stocate în anteturile B<.xz>."
#. type: TP
#: ../src/xz/xz.1:1533
@@ -1595,23 +2723,54 @@ msgstr "B<lc=>I<lc>"
#. type: Plain text
#: ../src/xz/xz.1:1542
-msgid "Specify the number of literal context bits. The minimum is 0 and the maximum is 4; the default is 3. In addition, the sum of I<lc> and I<lp> must not exceed 4."
-msgstr "Specifică numărul de biți de context literal. Minimul este 0 și maximul este 4; implicit este 3. În plus, suma I<lc> și I<lp> nu trebuie să depășească 4."
+msgid ""
+"Specify the number of literal context bits. The minimum is 0 and the "
+"maximum is 4; the default is 3. In addition, the sum of I<lc> and I<lp> "
+"must not exceed 4."
+msgstr ""
+"Specifică numărul de biți de context literal. Minimul este 0 și maximul este "
+"4; implicit este 3. În plus, suma I<lc> și I<lp> nu trebuie să depășească 4."
#. type: Plain text
#: ../src/xz/xz.1:1547
-msgid "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."
-msgstr "Toți octeții care nu pot fi codificați ca potriviri sunt codificați ca literali. Adică, literalii sunt pur și simplu octeți de 8 biți care sunt codificați unul câte unul."
+msgid ""
+"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."
+msgstr ""
+"Toți octeții care nu pot fi codificați ca potriviri sunt codificați ca "
+"literali. Adică, literalii sunt pur și simplu octeți de 8 biți care sunt "
+"codificați unul câte unul."
#. type: Plain text
#: ../src/xz/xz.1:1561
-msgid "The literal coding makes an assumption that the highest I<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 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 I<lc> is at least 3, the literal coding can take advantage of this property in the uncompressed data."
-msgstr "Codificarea literală presupune că cei mai mari biți I<lc> ai octetului anterior necomprimat se corelează cu octetul următor. De exemplu, în textul tipic englezesc, o literă mare este adesea urmată de o literă mică, iar o literă mică este urmată de obicei de o altă literă mică. În setul de caractere US-ASCII, cei mai mari trei biți sunt 010 pentru literele mari și 011 pentru literele mici. Când I<lc> este cel puțin 3, codificarea literală poate profita de această proprietate în datele necomprimate."
+msgid ""
+"The literal coding makes an assumption that the highest I<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 "
+"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 I<lc> is at least "
+"3, the literal coding can take advantage of this property in the "
+"uncompressed data."
+msgstr ""
+"Codificarea literală presupune că cei mai mari biți I<lc> ai octetului "
+"anterior necomprimat se corelează cu octetul următor. De exemplu, în textul "
+"tipic englezesc, o literă mare este adesea urmată de o literă mică, iar o "
+"literă mică este urmată de obicei de o altă literă mică. În setul de "
+"caractere US-ASCII, cei mai mari trei biți sunt 010 pentru literele mari și "
+"011 pentru literele mici. Când I<lc> este cel puțin 3, codificarea literală "
+"poate profita de această proprietate în datele necomprimate."
#. type: Plain text
#: ../src/xz/xz.1:1570
-msgid "The default value (3) is usually good. If you want maximum compression, test B<lc=4>. Sometimes it helps a little, and sometimes it makes compression worse. If it makes it worse, test B<lc=2> too."
-msgstr "Valoarea implicită (3) este de obicei bună. Dacă doriți o comprimare maximă, testați B<lc=4>. Uneori ajută puțin, iar uneori înrăutățește comprimarea . Dacă o agravează, încercați de-asemeni cu B<lc=2>."
+msgid ""
+"The default value (3) is usually good. If you want maximum compression, "
+"test B<lc=4>. Sometimes it helps a little, and sometimes it makes "
+"compression worse. If it makes it worse, test B<lc=2> too."
+msgstr ""
+"Valoarea implicită (3) este de obicei bună. Dacă doriți o comprimare maximă, "
+"testați B<lc=4>. Uneori ajută puțin, iar uneori înrăutățește comprimarea . "
+"Dacă o agravează, încercați de-asemeni cu B<lc=2>."
#. type: TP
#: ../src/xz/xz.1:1570
@@ -1621,13 +2780,23 @@ msgstr "B<lp=>I<lp>"
#. type: Plain text
#: ../src/xz/xz.1:1574
-msgid "Specify the number of literal position bits. The minimum is 0 and the maximum is 4; the default is 0."
-msgstr "Specifică numărul de biți de poziție literală. Minimul este 0 și maximul este 4; implicit este 0."
+msgid ""
+"Specify the number of literal position bits. The minimum is 0 and the "
+"maximum is 4; the default is 0."
+msgstr ""
+"Specifică numărul de biți de poziție literală. Minimul este 0 și maximul "
+"este 4; implicit este 0."
#. type: Plain text
#: ../src/xz/xz.1:1581
-msgid "I<Lp> affects what kind of alignment in the uncompressed data is assumed when encoding literals. See I<pb> below for more information about alignment."
-msgstr "I<Lp> afectează ce fel de aliniere în datele necomprimate este presupusă la codificarea literalelor. Consultați argumentul I<pb> de mai jos pentru mai multe informații despre aliniere."
+msgid ""
+"I<Lp> affects what kind of alignment in the uncompressed data is assumed "
+"when encoding literals. See I<pb> below for more information about "
+"alignment."
+msgstr ""
+"I<Lp> afectează ce fel de aliniere în datele necomprimate este presupusă la "
+"codificarea literalelor. Consultați argumentul I<pb> de mai jos pentru mai "
+"multe informații despre aliniere."
#. type: TP
#: ../src/xz/xz.1:1581
@@ -1637,23 +2806,53 @@ msgstr "B<pb=>I<pb>"
#. type: Plain text
#: ../src/xz/xz.1:1585
-msgid "Specify the number of position bits. The minimum is 0 and the maximum is 4; the default is 2."
-msgstr "Specifică numărul de biți de poziție. Minimul este 0 și maximul este 4; implicit este 2."
+msgid ""
+"Specify the number of position bits. The minimum is 0 and the maximum is 4; "
+"the default is 2."
+msgstr ""
+"Specifică numărul de biți de poziție. Minimul este 0 și maximul este 4; "
+"implicit este 2."
#. type: Plain text
#: ../src/xz/xz.1:1592
-msgid "I<Pb> affects what kind of alignment in the uncompressed data is assumed in general. The default means four-byte alignment (2^I<pb>=2^2=4), which is often a good choice when there's no better guess."
-msgstr "I<Pb> afectează ce fel de aliniere în datele necomprimate este presupusă în general. Valoarea implicită înseamnă alinierea pe patru octeți (2^I<pb>=2^2=4), care este adesea o alegere bună atunci când nu există o ipoteză mai bună."
+msgid ""
+"I<Pb> affects what kind of alignment in the uncompressed data is assumed in "
+"general. The default means four-byte alignment (2^I<pb>=2^2=4), which is "
+"often a good choice when there's no better guess."
+msgstr ""
+"I<Pb> afectează ce fel de aliniere în datele necomprimate este presupusă în "
+"general. Valoarea implicită înseamnă alinierea pe patru octeți "
+"(2^I<pb>=2^2=4), care este adesea o alegere bună atunci când nu există o "
+"ipoteză mai bună."
#. type: Plain text
#: ../src/xz/xz.1:1606
-msgid "When the alignment is known, setting I<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 B<pb=0> can improve compression slightly. For UTF-16 text, B<pb=1> is a good choice. If the alignment is an odd number like 3 bytes, B<pb=0> might be the best choice."
-msgstr "Când alinierea este cunoscută, definirea lui I<pb> în mod corespunzător poate reduce puțin dimensiunea fișierului. De exemplu, cu fișierele text cu aliniere pe un octet (US-ASCII, ISO-8859-*, UTF-8), definirea B<pb=0> poate îmbunătăți ușor comprimarea. Pentru textul UTF-16, B<pb=1> este o alegere bună. Dacă alinierea este un număr impar, cum ar fi 3 octeți, B<pb=0> ar putea fi cea mai bună alegere."
+msgid ""
+"When the alignment is known, setting I<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 B<pb=0> can improve compression "
+"slightly. For UTF-16 text, B<pb=1> is a good choice. If the alignment is "
+"an odd number like 3 bytes, B<pb=0> might be the best choice."
+msgstr ""
+"Când alinierea este cunoscută, definirea lui I<pb> în mod corespunzător "
+"poate reduce puțin dimensiunea fișierului. De exemplu, cu fișierele text cu "
+"aliniere pe un octet (US-ASCII, ISO-8859-*, UTF-8), definirea B<pb=0> poate "
+"îmbunătăți ușor comprimarea. Pentru textul UTF-16, B<pb=1> este o alegere "
+"bună. Dacă alinierea este un număr impar, cum ar fi 3 octeți, B<pb=0> ar "
+"putea fi cea mai bună alegere."
#. type: Plain text
#: ../src/xz/xz.1:1614
-msgid "Even though the assumed alignment can be adjusted with I<pb> and I<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."
-msgstr "Chiar dacă alinierea presupusă poate fi ajustată cu I<pb> și I<lp>, LZMA1 și LZMA2 încă favorizează ușor alinierea pe 16 octeți. Ar putea fi demn de luat în considerare atunci când proiectați formate de fișiere care pot fi adesea comprimate cu LZMA1 sau LZMA2."
+msgid ""
+"Even though the assumed alignment can be adjusted with I<pb> and I<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."
+msgstr ""
+"Chiar dacă alinierea presupusă poate fi ajustată cu I<pb> și I<lp>, LZMA1 și "
+"LZMA2 încă favorizează ușor alinierea pe 16 octeți. Ar putea fi demn de luat "
+"în considerare atunci când proiectați formate de fișiere care pot fi adesea "
+"comprimate cu LZMA1 sau LZMA2."
#. type: TP
#: ../src/xz/xz.1:1614
@@ -1663,13 +2862,28 @@ msgstr "B<mf=>I<mf>"
#. type: Plain text
#: ../src/xz/xz.1:1629
-msgid "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 I<preset>: 0 uses B<hc3>, 1\\(en3 use B<hc4>, and the rest use B<bt4>."
-msgstr "Căutarea potrivirilor are un efect major asupra vitezei codificatorului, utilizării memoriei și raportului de comprimare. De obicei, găsitorii de potriviri din lanțul sumelor de control sunt mai rapizi decât găsitorii de potriviri din arborele binar. Valoarea implicită depinde de I<prestabilit>: 0 folosește B<hc3>, 1\\(en3 folosește B<hc4>, iar restul folosește B<bt4>."
+msgid ""
+"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 I<preset>: 0 uses B<hc3>, "
+"1\\(en3 use B<hc4>, and the rest use B<bt4>."
+msgstr ""
+"Căutarea potrivirilor are un efect major asupra vitezei codificatorului, "
+"utilizării memoriei și raportului de comprimare. De obicei, găsitorii de "
+"potriviri din lanțul sumelor de control sunt mai rapizi decât găsitorii de "
+"potriviri din arborele binar. Valoarea implicită depinde de I<prestabilit>: "
+"0 folosește B<hc3>, 1\\(en3 folosește B<hc4>, iar restul folosește B<bt4>."
#. type: Plain text
#: ../src/xz/xz.1:1635
-msgid "The following match finders are supported. The memory usage formulas below are rough approximations, which are closest to the reality when I<dict> is a power of two."
-msgstr "Sunt acceptate următoarele opțiuni de căutare de potriviri. Formulele de utilizare a memoriei de mai jos sunt aproximări estimative, care se apropie cel mai mult de realitate atunci când I<dict> este o putere a lui doi."
+msgid ""
+"The following match finders are supported. The memory usage formulas below "
+"are rough approximations, which are closest to the reality when I<dict> is a "
+"power of two."
+msgstr ""
+"Sunt acceptate următoarele opțiuni de căutare de potriviri. Formulele de "
+"utilizare a memoriei de mai jos sunt aproximări estimative, care se apropie "
+"cel mai mult de realitate atunci când I<dict> este o putere a lui doi."
#. type: TP
#: ../src/xz/xz.1:1636
@@ -1800,13 +3014,25 @@ msgstr "B<mode=>I<mod>"
#. type: Plain text
#: ../src/xz/xz.1:1745
-msgid "Compression I<mode> specifies the method to analyze the data produced by the match finder. Supported I<modes> are B<fast> and B<normal>. The default is B<fast> for I<presets> 0\\(en3 and B<normal> for I<presets> 4\\(en9."
-msgstr "Comprimarea I<mod> specifică metoda de analiză a datelor produse de găsitorul de potriviri. I<Modurile> acceptate sunt B<fast>(rapid) și B<normal>. Valoarea implicită este B<fast> pentru I<prestabiliri> 0\\(en3 și B<normal> pentru I<prestabiliri> 4\\(en9."
+msgid ""
+"Compression I<mode> specifies the method to analyze the data produced by the "
+"match finder. Supported I<modes> are B<fast> and B<normal>. The default is "
+"B<fast> for I<presets> 0\\(en3 and B<normal> for I<presets> 4\\(en9."
+msgstr ""
+"Comprimarea I<mod> specifică metoda de analiză a datelor produse de "
+"găsitorul de potriviri. I<Modurile> acceptate sunt B<fast>(rapid) și "
+"B<normal>. Valoarea implicită este B<fast> pentru I<prestabiliri> 0\\(en3 și "
+"B<normal> pentru I<prestabiliri> 4\\(en9."
#. type: Plain text
#: ../src/xz/xz.1:1754
-msgid "Usually B<fast> is used with Hash Chain match finders and B<normal> with Binary Tree match finders. This is also what the I<presets> do."
-msgstr "De obicei, B<fast> este folosit cu instrumentele de căutare de potriviri ale lanțului de sume de control, și B<normal> cu instrumentele de căutare de potriviri din arborele binar. Aceasta este și ceea ce fac I<prestabiririle>."
+msgid ""
+"Usually B<fast> is used with Hash Chain match finders and B<normal> with "
+"Binary Tree match finders. This is also what the I<presets> do."
+msgstr ""
+"De obicei, B<fast> este folosit cu instrumentele de căutare de potriviri ale "
+"lanțului de sume de control, și B<normal> cu instrumentele de căutare de "
+"potriviri din arborele binar. Aceasta este și ceea ce fac I<prestabiririle>."
#. type: TP
#: ../src/xz/xz.1:1754
@@ -1816,13 +3042,25 @@ msgstr "B<nice=>I<nice>"
#. type: Plain text
#: ../src/xz/xz.1:1761
-msgid "Specify what is considered to be a nice length for a match. Once a match of at least I<nice> bytes is found, the algorithm stops looking for possibly better matches."
-msgstr "Specifică ceea ce este considerat a fi o lungime bună(nice) pentru o potrivire. Odată ce este găsită o potrivire de cel puțin I<nice> octeți, algoritmul nu mai caută după potriviri posibile mai bune."
+msgid ""
+"Specify what is considered to be a nice length for a match. Once a match of "
+"at least I<nice> bytes is found, the algorithm stops looking for possibly "
+"better matches."
+msgstr ""
+"Specifică ceea ce este considerat a fi o lungime bună(nice) pentru o "
+"potrivire. Odată ce este găsită o potrivire de cel puțin I<nice> octeți, "
+"algoritmul nu mai caută după potriviri posibile mai bune."
#. type: Plain text
#: ../src/xz/xz.1:1768
-msgid "I<Nice> can be 2\\(en273 bytes. Higher values tend to give better compression ratio at the expense of speed. The default depends on the I<preset>."
-msgstr "I<Nice> poate fi de 2\\(en273 octeți. Valorile mai mari tind să ofere un raport de comprimare mai bun în detrimentul vitezei. Valoarea implicită depinde de I<prestabilit>."
+msgid ""
+"I<Nice> can be 2\\(en273 bytes. Higher values tend to give better "
+"compression ratio at the expense of speed. The default depends on the "
+"I<preset>."
+msgstr ""
+"I<Nice> poate fi de 2\\(en273 octeți. Valorile mai mari tind să ofere un "
+"raport de comprimare mai bun în detrimentul vitezei. Valoarea implicită "
+"depinde de I<prestabilit>."
#. type: TP
#: ../src/xz/xz.1:1768
@@ -1832,18 +3070,40 @@ msgstr "B<depth=>I<adâncimea>"
#. type: Plain text
#: ../src/xz/xz.1:1778
-msgid "Specify the maximum search depth in the match finder. The default is the special value of 0, which makes the compressor determine a reasonable I<depth> from I<mf> and I<nice>."
-msgstr "Specifică adâncimea maximă de căutare în găsitorul de potriviri. Valoarea implicită este valoarea specială de 0, ceea ce face ca instrumentul de comprimare să determine o I<adâncime> rezonabilă pornind de la valorile I<mf> și I<nice>."
+msgid ""
+"Specify the maximum search depth in the match finder. The default is the "
+"special value of 0, which makes the compressor determine a reasonable "
+"I<depth> from I<mf> and I<nice>."
+msgstr ""
+"Specifică adâncimea maximă de căutare în găsitorul de potriviri. Valoarea "
+"implicită este valoarea specială de 0, ceea ce face ca instrumentul de "
+"comprimare să determine o I<adâncime> rezonabilă pornind de la valorile "
+"I<mf> și I<nice>."
#. type: Plain text
#: ../src/xz/xz.1:1789
-msgid "Reasonable I<depth> for Hash Chains is 4\\(en100 and 16\\(en1000 for Binary Trees. Using very high values for I<depth> can make the encoder extremely slow with some files. Avoid setting the I<depth> over 1000 unless you are prepared to interrupt the compression in case it is taking far too long."
-msgstr "I<Adâncimea> rezonabilă pentru lanțuri de sumă de control este 4\\(en100 și 16\\(en1000 pentru arbori binari. Folosirea unor valori foarte mari pentru I<adâncime> poate face codificatorul extrem de lent cu unele fișiere. Evitați să stabiliți I<adâncimea> la valori peste 1000, cu excepția cazului în care sunteți pregătit să întrerupeți comprimarea în cazul în care durează prea mult."
+msgid ""
+"Reasonable I<depth> for Hash Chains is 4\\(en100 and 16\\(en1000 for Binary "
+"Trees. Using very high values for I<depth> can make the encoder extremely "
+"slow with some files. Avoid setting the I<depth> over 1000 unless you are "
+"prepared to interrupt the compression in case it is taking far too long."
+msgstr ""
+"I<Adâncimea> rezonabilă pentru lanțuri de sumă de control este 4\\(en100 și "
+"16\\(en1000 pentru arbori binari. Folosirea unor valori foarte mari pentru "
+"I<adâncime> poate face codificatorul extrem de lent cu unele fișiere. "
+"Evitați să stabiliți I<adâncimea> la valori peste 1000, cu excepția cazului "
+"în care sunteți pregătit să întrerupeți comprimarea în cazul în care durează "
+"prea mult."
#. type: Plain text
#: ../src/xz/xz.1:1800
-msgid "When decoding raw streams (B<--format=raw>), LZMA2 needs only the dictionary I<size>. LZMA1 needs also I<lc>, I<lp>, and I<pb>."
-msgstr "La decodificarea fluxurilor brute (B<--format=raw>), LZMA2 are nevoie doar de I<dimensiunea> dicționarului. LZMA1 are nevoie de asemenea de I<lc>, I<lp> și I<pb>."
+msgid ""
+"When decoding raw streams (B<--format=raw>), LZMA2 needs only the dictionary "
+"I<size>. LZMA1 needs also I<lc>, I<lp>, and I<pb>."
+msgstr ""
+"La decodificarea fluxurilor brute (B<--format=raw>), LZMA2 are nevoie doar "
+"de I<dimensiunea> dicționarului. LZMA1 are nevoie de asemenea de I<lc>, "
+"I<lp> și I<pb>."
#. type: TP
#: ../src/xz/xz.1:1800
@@ -1888,39 +3148,88 @@ msgid "B<--sparc>[B<=>I<options>]"
msgstr "B<--sparc>[B<=>I<opțiuni>]"
#. type: TP
-#: ../src/xz/xz.1:1815"
+#: ../src/xz/xz.1:1815
+#, no-wrap
msgid "B<--riscv>[B<=>I<options>]"
msgstr "B<--riscv>[B<=>I<opțiuni>]"
#. type: Plain text
#: ../src/xz/xz.1:1821
-msgid "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."
-msgstr "Adaugă un filtru de ramură/apel/salt (branch/call/jump ⟶ „BCJâ€) la lanÈ›ul de filtre. Aceste filtre pot fi utilizate numai ca un filtru care nu este ultimul din lanÈ›ul de filtrare."
+msgid ""
+"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."
+msgstr ""
+"Adaugă un filtru de ramură/apel/salt (branch/call/jump ⟶ „BCJâ€) la lanÈ›ul de "
+"filtre. Aceste filtre pot fi utilizate numai ca un filtru care nu este "
+"ultimul din lanțul de filtrare."
#. type: Plain text
#: ../src/xz/xz.1:1835
-msgid "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\\(en15\\ % smaller B<.xz> file. The BCJ filters are always reversible, 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 insignificant amount of memory."
-msgstr "Un filtru BCJ convertește adresele relative din codul mașinii în omoloagele lor absolute. Acest lucru nu modifică dimensiunea datelor, dar crește redundanța, ceea ce poate ajuta LZMA2 să producă fișier B<.xz> cu 0\\(en15\\ % mai mic. Filtrele BCJ sunt întotdeauna reversibile, deci folosind un filtru BCJ pentru tipul greșit de date nu provoacă nicio pierdere de date, deși poate înrăutăți puțin raportul de comprimare. Filtrele BCJ sunt foarte rapide și folosesc o cantitate nesemnificativă de memorie."
+msgid ""
+"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\\(en15\\ % smaller "
+"B<.xz> file. The BCJ filters are always reversible, 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 "
+"insignificant amount of memory."
+msgstr ""
+"Un filtru BCJ convertește adresele relative din codul mașinii în omoloagele "
+"lor absolute. Acest lucru nu modifică dimensiunea datelor, dar crește "
+"redundanța, ceea ce poate ajuta LZMA2 să producă fișier B<.xz> cu 0\\(en15\\ "
+"% mai mic. Filtrele BCJ sunt întotdeauna reversibile, deci folosind un "
+"filtru BCJ pentru tipul greșit de date nu provoacă nicio pierdere de date, "
+"deși poate înrăutăți puțin raportul de comprimare. Filtrele BCJ sunt foarte "
+"rapide și folosesc o cantitate nesemnificativă de memorie."
#. type: Plain text
#: ../src/xz/xz.1:1838
msgid "These BCJ filters have known problems related to the compression ratio:"
-msgstr "Aceste filtre BCJ au probleme cunoscute legate de raportul de comprimare:"
+msgstr ""
+"Aceste filtre BCJ au probleme cunoscute legate de raportul de comprimare:"
#. type: Plain text
#: ../src/xz/xz.1:1845
-msgid "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 conversion, which will make the compression worse with these files."
-msgstr "Unele tipuri de fișiere care conțin cod executabil (de exemplu, fișiere obiect, biblioteci statice și module de kernel Linux) au adresele din instrucțiuni completate cu valori de umplere. Aceste filtre BCJ vor face în continuare conversia adresei, ceea ce va înrăutăți comprimarea cu aceste fișiere."
+msgid ""
+"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 conversion, which will make the compression worse with these files."
+msgstr ""
+"Unele tipuri de fișiere care conțin cod executabil (de exemplu, fișiere "
+"obiect, biblioteci statice și module de kernel Linux) au adresele din "
+"instrucțiuni completate cu valori de umplere. Aceste filtre BCJ vor face în "
+"continuare conversia adresei, ceea ce va înrăutăți comprimarea cu aceste "
+"fișiere."
#. type: Plain text
#: ../src/xz/xz.1:1855
-msgid "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."
-msgstr "Dacă pe o arhivă este aplicat un filtru BCJ, este posibil ca raportul de comprimare să fie mai rău decât la neutilizarea unui filtru BCJ. De exemplu, dacă există executabile similare sau chiar identice, filtrarea va face probabil fișierele mai puțin asemănătoare și astfel comprimarea este mai proastă. Conținutul fișierelor neexecutabile din aceeași arhivă poate conta și el. În practică, trebuie să încercați cu și fără filtru BCJ pentru a vedea care rezultat este mai bun în fiecare situație."
+msgid ""
+"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."
+msgstr ""
+"Dacă pe o arhivă este aplicat un filtru BCJ, este posibil ca raportul de "
+"comprimare să fie mai rău decât la neutilizarea unui filtru BCJ. De exemplu, "
+"dacă există executabile similare sau chiar identice, filtrarea va face "
+"probabil fișierele mai puțin asemănătoare și astfel comprimarea este mai "
+"proastă. Conținutul fișierelor neexecutabile din aceeași arhivă poate conta "
+"și el. În practică, trebuie să încercați cu și fără filtru BCJ pentru a "
+"vedea care rezultat este mai bun în fiecare situație."
#. type: Plain text
#: ../src/xz/xz.1:1860
-msgid "Different instruction sets have different alignment: the executable file must be aligned to a multiple of this value in the input data to make the filter work."
-msgstr "Seturi de instrucțiuni diferite au o aliniere diferită: fișierul executabil trebuie aliniat la un multiplu al acestei valori în datele de intrare pentru ca filtrul să funcționeze."
+msgid ""
+"Different instruction sets have different alignment: the executable file "
+"must be aligned to a multiple of this value in the input data to make the "
+"filter work."
+msgstr ""
+"Seturi de instrucțiuni diferite au o aliniere diferită: fișierul executabil "
+"trebuie aliniat la un multiplu al acestei valori în datele de intrare pentru "
+"ca filtrul să funcționeze."
#. type: tbl table
#: ../src/xz/xz.1:1867
@@ -2024,28 +3333,57 @@ msgstr "RISC-V"
#. type: Plain text
#: ../src/xz/xz.1:1885
-msgid "Since the BCJ-filtered data is usually compressed with LZMA2, the compression ratio may be improved slightly if the LZMA2 options are set to match the alignment of the selected BCJ filter. Examples:"
-msgstr "Deoarece datele filtrate prin BCJ sunt de obicei comprimate cu LZMA2, raportul de comprimare poate fi ușor îmbunătățit dacă opțiunile LZMA2 sunt definite pentru a se potrivi cu alinierea filtrului BCJ selectat. Exemple:"
+msgid ""
+"Since the BCJ-filtered data is usually compressed with LZMA2, the "
+"compression ratio may be improved slightly if the LZMA2 options are set to "
+"match the alignment of the selected BCJ filter. Examples:"
+msgstr ""
+"Deoarece datele filtrate prin BCJ sunt de obicei comprimate cu LZMA2, "
+"raportul de comprimare poate fi ușor îmbunătățit dacă opțiunile LZMA2 sunt "
+"definite pentru a se potrivi cu alinierea filtrului BCJ selectat. Exemple:"
#. type: Plain text
#: ../src/xz/xz.1:1891
-msgid "IA-64 filter has 16-byte alignment so B<pb=4,lp=4,lc=0> is good with LZMA2 (2^4=16)."
-msgstr "Filtrul IA-64 are o aliniere de 16 octeți, astfel încât B<pb=4,lp=4,lc=0> este alegere adecvată cu LZMA2 (2^4=16)."
+msgid ""
+"IA-64 filter has 16-byte alignment so B<pb=4,lp=4,lc=0> is good with LZMA2 "
+"(2^4=16)."
+msgstr ""
+"Filtrul IA-64 are o aliniere de 16 octeți, astfel încât B<pb=4,lp=4,lc=0> "
+"este alegere adecvată cu LZMA2 (2^4=16)."
#. type: Plain text
#: ../src/xz/xz.1:1906
-msgid "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, B<pb=2,lp=1,lc=3> or B<pb=1,lp=1,lc=3> is good. When 16-bit instructions aren't present, B<pb=2,lp=2,lc=2> is the best. B<readelf -h> can be used to check if \"RVC\" appears on the \"Flags\" line."
-msgstr "Codul RISC-V are o aliniere pe 2 sau 4 octeți, depinzând de faptul că fișierul conține instrucțiuni comprimate pe 16 biți (extensia C) sau nu. Atunci când se utilizează instrucțiuni pe 16 biți, B<pb=2,lp=1,lc=3> sau B<pb=1,lp=1,lc=3> este o alegere bună. Atunci când nu sunt prezente instrucțiuni pe 16 biți, B<pb=2,lp=2,lc=2> este cea mai bună alegere. B<readelf -h> poate fi utilizată pentru a verifica dacă „RVC†apare în linia „Indicatori\"."
+msgid ""
+"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, B<pb=2,lp=1,lc=3> or B<pb=1,lp=1,lc=3> is good. When "
+"16-bit instructions aren't present, B<pb=2,lp=2,lc=2> is the best. "
+"B<readelf -h> can be used to check if \"RVC\" appears on the \"Flags\" line."
+msgstr ""
+"Codul RISC-V are o aliniere pe 2 sau 4 octeți, depinzând de faptul că "
+"fișierul conține instrucțiuni comprimate pe 16 biți (extensia C) sau nu. "
+"Atunci când se utilizează instrucțiuni pe 16 biți, B<pb=2,lp=1,lc=3> sau "
+"B<pb=1,lp=1,lc=3> este o alegere bună. Atunci când nu sunt prezente "
+"instrucțiuni pe 16 biți, B<pb=2,lp=2,lc=2> este cea mai bună alegere. "
+"B<readelf -h> poate fi utilizată pentru a verifica dacă „RVC†apare în linia "
+"„Indicatori\"."
#. type: Plain text
#: ../src/xz/xz.1:1910
msgid "ARM64 is always 4-byte aligned so B<pb=2,lp=2,lc=2> is the best."
-msgstr "ARM64 este întotdeauna aliniat pe 4 octeți, astfel încât B<pb=2,lp=2,lc=2> este cea mai bună alegere."
+msgstr ""
+"ARM64 este întotdeauna aliniat pe 4 octeți, astfel încât B<pb=2,lp=2,lc=2> "
+"este cea mai bună alegere."
#. type: Plain text
#: ../src/xz/xz.1:1915
-msgid "The x86 filter is an exception. It's usually good to stick to LZMA2's defaults (B<pb=2,lp=0,lc=3>) when compressing x86 executables."
-msgstr "Filtrul x86 este o excepție. De obicei, este bine să rămâneți la valorile implicite ale LZMA2 (B<pb=2,lp=0,lc=3>) atunci când comprimați executabile x86."
+msgid ""
+"The x86 filter is an exception. It's usually good to stick to LZMA2's "
+"defaults (B<pb=2,lp=0,lc=3>) when compressing x86 executables."
+msgstr ""
+"Filtrul x86 este o excepție. De obicei, este bine să rămâneți la valorile "
+"implicite ale LZMA2 (B<pb=2,lp=0,lc=3>) atunci când comprimați executabile "
+"x86."
#. type: Plain text
#: ../src/xz/xz.1:1919
@@ -2060,8 +3398,17 @@ msgstr "B<start=>I<poziție>"
#. type: Plain text
#: ../src/xz/xz.1:1934
-msgid "Specify the start I<offset> that is used when converting between relative and absolute addresses. The I<offset> must be a multiple of the alignment of the filter (see the table above). The default is zero. In practice, the default is good; specifying a custom I<offset> is almost never useful."
-msgstr "Specifică I<poziția> de pornire care este utilizată la conversia între adresele relative și absolute. I<Poziția> trebuie să fie un multiplu al alinierii filtrului (consultați tabelul de mai sus). Valoarea implicită este zero. În practică, valoarea implicită este bună; specificarea unei I<poziții> personalizate nu este aproape niciodată utilă."
+msgid ""
+"Specify the start I<offset> that is used when converting between relative "
+"and absolute addresses. The I<offset> must be a multiple of the alignment "
+"of the filter (see the table above). The default is zero. In practice, the "
+"default is good; specifying a custom I<offset> is almost never useful."
+msgstr ""
+"Specifică I<poziția> de pornire care este utilizată la conversia între "
+"adresele relative și absolute. I<Poziția> trebuie să fie un multiplu al "
+"alinierii filtrului (consultați tabelul de mai sus). Valoarea implicită "
+"este zero. În practică, valoarea implicită este bună; specificarea unei "
+"I<poziții> personalizate nu este aproape niciodată utilă."
#. type: TP
#: ../src/xz/xz.1:1935
@@ -2071,13 +3418,28 @@ msgstr "B<--delta>[B<=>I<opțiuni>]"
#. type: Plain text
#: ../src/xz/xz.1:1940
-msgid "Add the Delta filter to the filter chain. The Delta filter can be only used as a non-last filter in the filter chain."
-msgstr "Adaugă filtrul Delta în lanțul de filtrare. Filtrul Delta poate fi folosit doar ca un filtru care nu este ultimul în lanțul de filtrare."
+msgid ""
+"Add the Delta filter to the filter chain. The Delta filter can be only used "
+"as a non-last filter in the filter chain."
+msgstr ""
+"Adaugă filtrul Delta în lanțul de filtrare. Filtrul Delta poate fi folosit "
+"doar ca un filtru care nu este ultimul în lanțul de filtrare."
#. type: Plain text
#: ../src/xz/xz.1:1949
-msgid "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 purpose algorithms may give significantly better results than Delta + LZMA2. This is true especially with audio, which compresses faster and better, for example, with B<flac>(1)."
-msgstr "În prezent, este acceptat doar calculul delta simplu de octeți. Poate fi util la comprimarea, de exemplu, a imaginilor bitmap necomprimate sau a sunetului PCM necomprimat. Cu toate acestea, algoritmii cu scop special pot da rezultate semnificativ mai bune decât Delta + LZMA2. Acest lucru este valabil mai ales în cazul audio, care se comprimă mai repede și mai bine, de exemplu, cu B<flac>(1)."
+msgid ""
+"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 purpose algorithms may give "
+"significantly better results than Delta + LZMA2. This is true especially "
+"with audio, which compresses faster and better, for example, with B<flac>(1)."
+msgstr ""
+"În prezent, este acceptat doar calculul delta simplu de octeți. Poate fi "
+"util la comprimarea, de exemplu, a imaginilor bitmap necomprimate sau a "
+"sunetului PCM necomprimat. Cu toate acestea, algoritmii cu scop special pot "
+"da rezultate semnificativ mai bune decât Delta + LZMA2. Acest lucru este "
+"valabil mai ales în cazul audio, care se comprimă mai repede și mai bine, de "
+"exemplu, cu B<flac>(1)."
#. type: Plain text
#: ../src/xz/xz.1:1952
@@ -2092,13 +3454,21 @@ msgstr "B<dist=>I<distanța>"
#. type: Plain text
#: ../src/xz/xz.1:1961
-msgid "Specify the I<distance> of the delta calculation in bytes. I<distance> must be 1\\(en256. The default is 1."
-msgstr "Specifică I<distanța> calculului delta în octeți. I<Distanța> trebuie să fie 1\\(en256. Valoarea implicită este 1."
+msgid ""
+"Specify the I<distance> of the delta calculation in bytes. I<distance> must "
+"be 1\\(en256. The default is 1."
+msgstr ""
+"Specifică I<distanța> calculului delta în octeți. I<Distanța> trebuie să fie "
+"1\\(en256. Valoarea implicită este 1."
#. type: Plain text
#: ../src/xz/xz.1:1966
-msgid "For example, with B<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."
-msgstr "De exemplu, cu B<dist=2> și intrare de opt octeți: A1 B1 A2 B3 A3 B5 A4 B7, ieșirea va fi: A1 B1 01 02 01 02 01 02."
+msgid ""
+"For example, with B<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."
+msgstr ""
+"De exemplu, cu B<dist=2> și intrare de opt octeți: A1 B1 A2 B3 A3 B5 A4 B7, "
+"ieșirea va fi: A1 B1 01 02 01 02 01 02."
#. type: SS
#: ../src/xz/xz.1:1968
@@ -2114,8 +3484,15 @@ msgstr "B<-q>, B<--quiet>"
#. type: Plain text
#: ../src/xz/xz.1:1976
-msgid "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 indicate a warning is still used."
-msgstr "Suprimă avertismentele și notificările. Specificați acest lucru de două ori pentru a suprima și erorile. Această opțiune nu are niciun efect asupra stării de ieșire. Adică, chiar dacă o avertizare a fost suprimată, starea de ieșire pentru a indica o avertizare este încă utilizată."
+msgid ""
+"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 indicate a warning is still used."
+msgstr ""
+"Suprimă avertismentele și notificările. Specificați acest lucru de două ori "
+"pentru a suprima și erorile. Această opțiune nu are niciun efect asupra "
+"stării de ieșire. Adică, chiar dacă o avertizare a fost suprimată, starea de "
+"ieșire pentru a indica o avertizare este încă utilizată."
#. type: TP
#: ../src/xz/xz.1:1976
@@ -2125,8 +3502,15 @@ msgstr "B<-v>, B<--verbose>"
#. type: Plain text
#: ../src/xz/xz.1:1985
-msgid "Be verbose. If standard error is connected to a terminal, B<xz> will display a progress indicator. Specifying B<--verbose> twice will give even more verbose output."
-msgstr "Oferă informații detaliate. Dacă ieșirea de eroare standard este conectată la un terminal, B<xz> va afișa un indicator de progres. Specificarea opțiunii B<--verbose> de două ori, va avea ca rezultat oferirea de informații și mai detaliate."
+msgid ""
+"Be verbose. If standard error is connected to a terminal, B<xz> will "
+"display a progress indicator. Specifying B<--verbose> twice will give even "
+"more verbose output."
+msgstr ""
+"Oferă informații detaliate. Dacă ieșirea de eroare standard este conectată "
+"la un terminal, B<xz> va afișa un indicator de progres. Specificarea "
+"opțiunii B<--verbose> de două ori, va avea ca rezultat oferirea de "
+"informații și mai detaliate."
#. type: Plain text
#: ../src/xz/xz.1:1987
@@ -2135,28 +3519,54 @@ msgstr "Indicatorul de progres afișează următoarele informații:"
#. type: Plain text
#: ../src/xz/xz.1:1992
-msgid "Completion percentage is shown if the size of the input file is known. That is, the percentage cannot be shown in pipes."
-msgstr "Procentul de completare este afișat dacă se cunoaște dimensiunea fișierului de intrare. Adică, procentul nu poate fi afișat la procesarea fișierului prin conducte(pipe)."
+msgid ""
+"Completion percentage is shown if the size of the input file is known. That "
+"is, the percentage cannot be shown in pipes."
+msgstr ""
+"Procentul de completare este afișat dacă se cunoaște dimensiunea fișierului "
+"de intrare. Adică, procentul nu poate fi afișat la procesarea fișierului "
+"prin conducte(pipe)."
#. type: Plain text
#: ../src/xz/xz.1:1995
-msgid "Amount of compressed data produced (compressing) or consumed (decompressing)."
-msgstr "Cantitatea de date comprimate produse (comprimare) sau consumate (decomprimare)."
+msgid ""
+"Amount of compressed data produced (compressing) or consumed "
+"(decompressing)."
+msgstr ""
+"Cantitatea de date comprimate produse (comprimare) sau consumate "
+"(decomprimare)."
#. type: Plain text
#: ../src/xz/xz.1:1998
-msgid "Amount of uncompressed data consumed (compressing) or produced (decompressing)."
-msgstr "Cantitatea de date necomprimate consumate (comprimare) sau produse (decomprimare)."
+msgid ""
+"Amount of uncompressed data consumed (compressing) or produced "
+"(decompressing)."
+msgstr ""
+"Cantitatea de date necomprimate consumate (comprimare) sau produse "
+"(decomprimare)."
#. type: Plain text
#: ../src/xz/xz.1:2002
-msgid "Compression ratio, which is calculated by dividing the amount of compressed data processed so far by the amount of uncompressed data processed so far."
-msgstr "Raportul de comprimare, care se calculează împărțind cantitatea de date comprimate procesate până acum la cantitatea de date necomprimate procesate până acum."
+msgid ""
+"Compression ratio, which is calculated by dividing the amount of compressed "
+"data processed so far by the amount of uncompressed data processed so far."
+msgstr ""
+"Raportul de comprimare, care se calculează împărțind cantitatea de date "
+"comprimate procesate până acum la cantitatea de date necomprimate procesate "
+"până acum."
#. type: Plain text
#: ../src/xz/xz.1:2009
-msgid "Compression or decompression speed. This is measured as the amount of uncompressed data consumed (compression) or produced (decompression) per second. It is shown after a few seconds have passed since B<xz> started processing the file."
-msgstr "Viteza de comprimare sau decomprimare. Aceasta este măsurată drept cantitatea de date necomprimate consumate (comprimare) sau produse (decomprimare) pe secundă. Este afișată după ce au trecut câteva secunde de când B<xz> a început procesarea fișierului."
+msgid ""
+"Compression or decompression speed. This is measured as the amount of "
+"uncompressed data consumed (compression) or produced (decompression) per "
+"second. It is shown after a few seconds have passed since B<xz> started "
+"processing the file."
+msgstr ""
+"Viteza de comprimare sau decomprimare. Aceasta este măsurată drept "
+"cantitatea de date necomprimate consumate (comprimare) sau produse "
+"(decomprimare) pe secundă. Este afișată după ce au trecut câteva secunde de "
+"când B<xz> a început procesarea fișierului."
#. type: Plain text
#: ../src/xz/xz.1:2011
@@ -2165,13 +3575,37 @@ msgstr "Timpul scurs în format M:SS sau H:MM:SS."
#. type: Plain text
#: ../src/xz/xz.1:2019
-msgid "Estimated remaining time is shown only when the size of the input file is known and a couple of seconds have already passed since B<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."
-msgstr "Timpul rămas estimat este afișat numai atunci când dimensiunea fișierului de intrare este cunoscută și au trecut deja câteva secunde de când B<xz> a început procesarea fișierului. Ora este afișată într-un format mai puțin precis, care nu are niciodată două puncte, de exemplu, 2 min 30 s."
+msgid ""
+"Estimated remaining time is shown only when the size of the input file is "
+"known and a couple of seconds have already passed since B<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."
+msgstr ""
+"Timpul rămas estimat este afișat numai atunci când dimensiunea fișierului de "
+"intrare este cunoscută și au trecut deja câteva secunde de când B<xz> a "
+"început procesarea fișierului. Ora este afișată într-un format mai puțin "
+"precis, care nu are niciodată două puncte, de exemplu, 2 min 30 s."
#. type: Plain text
#: ../src/xz/xz.1:2034
-msgid "When standard error is not a terminal, B<--verbose> will make B<xz> print the filename, compressed size, uncompressed size, compression 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 completion percentage is printed if the size of the input file is known."
-msgstr "Când ieșirea de eroare standard nu este un terminal, B<--verbose> va face B<xz> să imprime numele fișierului, dimensiunea comprimată, dimensiunea necomprimată, raportul de comprimare și, eventual, de asemenea, viteza și timpul scurs pe o singură linie la ieșirea de eroare standard după comprimarea sau decomprimarea fișierului. Viteza și timpul scurs sunt incluse numai atunci când operațiunea a durat cel puțin câteva secunde. Dacă operațiunea nu s-a încheiat, de exemplu, din cauza întreruperii din partea utilizatorului, se imprimă și procentul de completare dacă se cunoaște dimensiunea fișierului de intrare."
+msgid ""
+"When standard error is not a terminal, B<--verbose> will make B<xz> print "
+"the filename, compressed size, uncompressed size, compression 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 "
+"completion percentage is printed if the size of the input file is known."
+msgstr ""
+"Când ieșirea de eroare standard nu este un terminal, B<--verbose> va face "
+"B<xz> să imprime numele fișierului, dimensiunea comprimată, dimensiunea "
+"necomprimată, raportul de comprimare și, eventual, de asemenea, viteza și "
+"timpul scurs pe o singură linie la ieșirea de eroare standard după "
+"comprimarea sau decomprimarea fișierului. Viteza și timpul scurs sunt "
+"incluse numai atunci când operațiunea a durat cel puțin câteva secunde. Dacă "
+"operațiunea nu s-a încheiat, de exemplu, din cauza întreruperii din partea "
+"utilizatorului, se imprimă și procentul de completare dacă se cunoaște "
+"dimensiunea fișierului de intrare."
#. type: TP
#: ../src/xz/xz.1:2034 ../src/xzdec/xzdec.1:87
@@ -2181,8 +3615,17 @@ msgstr "B<-Q>, B<--no-warn>"
#. type: Plain text
#: ../src/xz/xz.1:2044
-msgid "Don't set the exit status to 2 even if a condition worth a warning was detected. This option doesn't affect the verbosity level, thus both B<--quiet> and B<--no-warn> have to be used to not display warnings and to not alter the exit status."
-msgstr "Nu comută starea de ieșire la 2 chiar dacă a fost detectată o condiție care merită avertizată. Această opțiune nu afectează nivelul de detaliere al informațiilor, astfel încât atât B<--quiet> cât și B<--no-warn> trebuie folosite pentru a nu afișa avertismente și pentru a nu modifica starea de ieșire."
+msgid ""
+"Don't set the exit status to 2 even if a condition worth a warning was "
+"detected. This option doesn't affect the verbosity level, thus both B<--"
+"quiet> and B<--no-warn> have to be used to not display warnings and to not "
+"alter the exit status."
+msgstr ""
+"Nu comută starea de ieșire la 2 chiar dacă a fost detectată o condiție care "
+"merită avertizată. Această opțiune nu afectează nivelul de detaliere al "
+"informațiilor, astfel încât atât B<--quiet> cât și B<--no-warn> trebuie "
+"folosite pentru a nu afișa avertismente și pentru a nu modifica starea de "
+"ieșire."
#. type: TP
#: ../src/xz/xz.1:2044
@@ -2192,8 +3635,18 @@ msgstr "B<--robot>"
#. type: Plain text
#: ../src/xz/xz.1:2056
-msgid "Print messages in a machine-parsable format. This is intended to ease writing frontends that want to use B<xz> instead of liblzma, which may be the case with various scripts. The output with this option enabled is meant to be stable across B<xz> releases. See the section B<ROBOT MODE> for details."
-msgstr "Afișează mesajele într-un format care poate fi analizat de mașină. Acest lucru are scopul de a ușura scrierea interfețelor în care se dorește să se folosească B<xz> în loc de liblzma, ceea ce poate fi cazul cu diferite scripturi. Ieșirea cu această opțiune activată este menită să fie stabilă în toate versiunile B<xz>. Consultați secțiunea B<MOD ROBOT> pentru detalii."
+msgid ""
+"Print messages in a machine-parsable format. This is intended to ease "
+"writing frontends that want to use B<xz> instead of liblzma, which may be "
+"the case with various scripts. The output with this option enabled is meant "
+"to be stable across B<xz> releases. See the section B<ROBOT MODE> for "
+"details."
+msgstr ""
+"Afișează mesajele într-un format care poate fi analizat de mașină. Acest "
+"lucru are scopul de a ușura scrierea interfețelor în care se dorește să se "
+"folosească B<xz> în loc de liblzma, ceea ce poate fi cazul cu diferite "
+"scripturi. Ieșirea cu această opțiune activată este menită să fie stabilă în "
+"toate versiunile B<xz>. Consultați secțiunea B<MOD ROBOT> pentru detalii."
#. type: TP
#: ../src/xz/xz.1:2056
@@ -2203,8 +3656,15 @@ msgstr "B<--info-memory>"
#. type: Plain text
#: ../src/xz/xz.1:2063
-msgid "Display, in human-readable format, how much physical memory (RAM) and how many processor threads B<xz> thinks the system has and the memory usage limits for compression and decompression, and exit successfully."
-msgstr "Afișează, într-un format care poate fi citit de om, câtă memorie fizică (RAM) și câte fire de execuție de procesor B<xz> crede că are sistemul și limitele de utilizare a memoriei pentru comprimare și decomprimare și iese cu succes."
+msgid ""
+"Display, in human-readable format, how much physical memory (RAM) and how "
+"many processor threads B<xz> thinks the system has and the memory usage "
+"limits for compression and decompression, and exit successfully."
+msgstr ""
+"Afișează, într-un format care poate fi citit de om, câtă memorie fizică "
+"(RAM) și câte fire de execuție de procesor B<xz> crede că are sistemul și "
+"limitele de utilizare a memoriei pentru comprimare și decomprimare și iese "
+"cu succes."
#. type: TP
#: ../src/xz/xz.1:2063 ../src/xzdec/xzdec.1:94
@@ -2214,8 +3674,12 @@ msgstr "B<-h>, B<--help>"
#. type: Plain text
#: ../src/xz/xz.1:2067
-msgid "Display a help message describing the most commonly used options, and exit successfully."
-msgstr "Afișează un mesaj de ajutor care descrie opțiunile cele mai frecvent utilizate și iese cu succes."
+msgid ""
+"Display a help message describing the most commonly used options, and exit "
+"successfully."
+msgstr ""
+"Afișează un mesaj de ajutor care descrie opțiunile cele mai frecvent "
+"utilizate și iese cu succes."
#. type: TP
#: ../src/xz/xz.1:2067
@@ -2225,8 +3689,12 @@ msgstr "B<-H>, B<--long-help>"
#. type: Plain text
#: ../src/xz/xz.1:2072
-msgid "Display a help message describing all features of B<xz>, and exit successfully"
-msgstr "Afișează un mesaj de ajutor care descrie toate caracteristicile B<xz> și iese cu succes"
+msgid ""
+"Display a help message describing all features of B<xz>, and exit "
+"successfully"
+msgstr ""
+"Afișează un mesaj de ajutor care descrie toate caracteristicile B<xz> și "
+"iese cu succes"
#. type: TP
#: ../src/xz/xz.1:2072 ../src/xzdec/xzdec.1:97
@@ -2236,8 +3704,13 @@ msgstr "B<-V>, B<--version>"
#. type: Plain text
#: ../src/xz/xz.1:2081
-msgid "Display the version number of B<xz> and liblzma in human readable format. To get machine-parsable output, specify B<--robot> before B<--version>."
-msgstr "Afișează numărul versiunii B<xz> și liblzma într-un format care poate fi citit de om. Pentru a obține rezultate analizabile de mașină, specificați B<--robot> înainte de B<--version>."
+msgid ""
+"Display the version number of B<xz> and liblzma in human readable format. "
+"To get machine-parsable output, specify B<--robot> before B<--version>."
+msgstr ""
+"Afișează numărul versiunii B<xz> și liblzma într-un format care poate fi "
+"citit de om. Pentru a obține rezultate analizabile de mașină, specificați "
+"B<--robot> înainte de B<--version>."
#. type: SH
#: ../src/xz/xz.1:2082
@@ -2247,8 +3720,18 @@ msgstr "MOD ROBOT"
#. type: Plain text
#: ../src/xz/xz.1:2099
-msgid "The robot mode is activated with the B<--robot> option. It makes the output of B<xz> easier to parse by other programs. Currently B<--robot> is supported only together with B<--list>, B<--filters-help>, B<--info-memory>, and B<--version>. It will be supported for compression and decompression in the future."
-msgstr "Modul robot este activat cu opțiunea B<--robot>. Face ieșirea lui B<xz> mai ușor de analizat de către alte programe. În prezent, opțiunea B<--robot> este acceptată numai împreună cu opțiunile B<--list>, B<--filters-help>, B<--info-memory>, și B<--version>. Va fi acceptată pentru comprimare și decomprimare în viitor."
+msgid ""
+"The robot mode is activated with the B<--robot> option. It makes the output "
+"of B<xz> easier to parse by other programs. Currently B<--robot> is "
+"supported only together with B<--list>, B<--filters-help>, B<--info-memory>, "
+"and B<--version>. It will be supported for compression and decompression in "
+"the future."
+msgstr ""
+"Modul robot este activat cu opțiunea B<--robot>. Face ieșirea lui B<xz> mai "
+"ușor de analizat de către alte programe. În prezent, opțiunea B<--robot> "
+"este acceptată numai împreună cu opțiunile B<--list>, B<--filters-help>, B<--"
+"info-memory>, și B<--version>. Va fi acceptată pentru comprimare și "
+"decomprimare în viitor."
#. type: SS
#: ../src/xz/xz.1:2100
@@ -2258,8 +3741,14 @@ msgstr "Modul listă"
#. type: Plain text
#: ../src/xz/xz.1:2105
-msgid "B<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:"
-msgstr "B<xz --robot --list> utilizează o ieșire separată de tabulatori. Prima coloană a fiecărei linii are un șir care indică tipul de informații găsite pe acea linie:"
+msgid ""
+"B<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:"
+msgstr ""
+"B<xz --robot --list> utilizează o ieșire separată de tabulatori. Prima "
+"coloană a fiecărei linii are un șir care indică tipul de informații găsite "
+"pe acea linie:"
#. type: TP
#: ../src/xz/xz.1:2105
@@ -2269,8 +3758,12 @@ msgstr "B<name>"
#. type: Plain text
#: ../src/xz/xz.1:2109
-msgid "This is always the first line when starting to list a file. The second column on the line is the filename."
-msgstr "Aceasta este întotdeauna prima linie când începe să se listeze un fișier. A doua coloană de pe linie este numele fișierului."
+msgid ""
+"This is always the first line when starting to list a file. The second "
+"column on the line is the filename."
+msgstr ""
+"Aceasta este întotdeauna prima linie când începe să se listeze un fișier. A "
+"doua coloană de pe linie este numele fișierului."
#. type: TP
#: ../src/xz/xz.1:2109
@@ -2280,8 +3773,12 @@ msgstr "B<file>"
#. type: Plain text
#: ../src/xz/xz.1:2117
-msgid "This line contains overall information about the B<.xz> file. This line is always printed after the B<name> line."
-msgstr "Această linie conține informații generale despre fișierul B<.xz>. Această linie este întotdeauna tipărită după linia B<name>."
+msgid ""
+"This line contains overall information about the B<.xz> file. This line is "
+"always printed after the B<name> line."
+msgstr ""
+"Această linie conține informații generale despre fișierul B<.xz>. Această "
+"linie este întotdeauna tipărită după linia B<name>."
#. type: TP
#: ../src/xz/xz.1:2117
@@ -2291,8 +3788,13 @@ msgstr "B<stream>"
#. type: Plain text
#: ../src/xz/xz.1:2127
-msgid "This line type is used only when B<--verbose> was specified. There are as many B<stream> lines as there are streams in the B<.xz> file."
-msgstr "Acest tip de linie este utilizat numai atunci când a fost specificată opțiunea B<--verbose>. Există tot atâtea linii B<stream> câte fluxuri există în fișierul B<.xz>."
+msgid ""
+"This line type is used only when B<--verbose> was specified. There are as "
+"many B<stream> lines as there are streams in the B<.xz> file."
+msgstr ""
+"Acest tip de linie este utilizat numai atunci când a fost specificată "
+"opțiunea B<--verbose>. Există tot atâtea linii B<stream> câte fluxuri există "
+"în fișierul B<.xz>."
#. type: TP
#: ../src/xz/xz.1:2127
@@ -2302,8 +3804,16 @@ msgstr "B<block>"
#. type: Plain text
#: ../src/xz/xz.1:2142
-msgid "This line type is used only when B<--verbose> was specified. There are as many B<block> lines as there are blocks in the B<.xz> file. The B<block> lines are shown after all the B<stream> lines; different line types are not interleaved."
-msgstr "Acest tip de linie este utilizat numai atunci când a fost specificată opțiunea B<--verbose>. Există tot atâtea linii B<block> câte blocuri există în fișierul B<.xz>. Liniile B<block> sunt afișate după toate liniile B<stream>; tipurile diferite de linii nu sunt intercalate."
+msgid ""
+"This line type is used only when B<--verbose> was specified. There are as "
+"many B<block> lines as there are blocks in the B<.xz> file. The B<block> "
+"lines are shown after all the B<stream> lines; different line types are not "
+"interleaved."
+msgstr ""
+"Acest tip de linie este utilizat numai atunci când a fost specificată "
+"opțiunea B<--verbose>. Există tot atâtea linii B<block> câte blocuri există "
+"în fișierul B<.xz>. Liniile B<block> sunt afișate după toate liniile "
+"B<stream>; tipurile diferite de linii nu sunt intercalate."
#. type: TP
#: ../src/xz/xz.1:2142
@@ -2313,8 +3823,15 @@ msgstr "B<summary>"
#. type: Plain text
#: ../src/xz/xz.1:2157
-msgid "This line type is used only when B<--verbose> was specified twice. This line is printed after all B<block> lines. Like the B<file> line, the B<summary> line contains overall information about the B<.xz> file."
-msgstr "Acest tip de linie este folosit numai atunci când opțiunea B<--verbose> a fost specificată de două ori. Această linie este afișată după toate liniile B<block>. Ca și linia B<file>, linia B<summary> conține informații generale despre fișierul B<.xz>."
+msgid ""
+"This line type is used only when B<--verbose> was specified twice. This "
+"line is printed after all B<block> lines. Like the B<file> line, the "
+"B<summary> line contains overall information about the B<.xz> file."
+msgstr ""
+"Acest tip de linie este folosit numai atunci când opțiunea B<--verbose> a "
+"fost specificată de două ori. Această linie este afișată după toate liniile "
+"B<block>. Ca și linia B<file>, linia B<summary> conține informații generale "
+"despre fișierul B<.xz>."
#. type: TP
#: ../src/xz/xz.1:2157
@@ -2324,8 +3841,12 @@ msgstr "B<totals>"
#. type: Plain text
#: ../src/xz/xz.1:2161
-msgid "This line is always the very last line of the list output. It shows the total counts and sizes."
-msgstr "Această linie este întotdeauna ultima linie din lista afișată la ieșire. Aceasta arată numărul total și dimensiunile."
+msgid ""
+"This line is always the very last line of the list output. It shows the "
+"total counts and sizes."
+msgstr ""
+"Această linie este întotdeauna ultima linie din lista afișată la ieșire. "
+"Aceasta arată numărul total și dimensiunile."
#. type: Plain text
#: ../src/xz/xz.1:2165
@@ -2389,8 +3910,12 @@ msgstr "6."
#. type: Plain text
#: ../src/xz/xz.1:2181
-msgid "Compression ratio, for example, B<0.123>. If ratio is over 9.999, three dashes (B<--->) are displayed instead of the ratio."
-msgstr "Raportul de comprimare, de exemplu, B<0,123>. Dacă raportul este peste 9,999, în locul raportului sunt afișate trei liniuțe (B<--->)."
+msgid ""
+"Compression ratio, for example, B<0.123>. If ratio is over 9.999, three "
+"dashes (B<--->) are displayed instead of the ratio."
+msgstr ""
+"Raportul de comprimare, de exemplu, B<0,123>. Dacă raportul este peste "
+"9,999, în locul raportului sunt afișate trei liniuțe (B<--->)."
#. type: IP
#: ../src/xz/xz.1:2181 ../src/xz/xz.1:2214 ../src/xz/xz.1:2241
@@ -2401,8 +3926,17 @@ msgstr "7."
#. type: Plain text
#: ../src/xz/xz.1:2194
-msgid "Comma-separated list of integrity check names. The following strings are used for the known check types: B<None>, B<CRC32>, B<CRC64>, and B<SHA-256>. For unknown check types, B<Unknown->I<N> is used, where I<N> is the Check ID as a decimal number (one or two digits)."
-msgstr "Lista de nume de verificare a integrității, separate prin virgule. Următoarele șiruri sunt utilizate pentru tipurile de verificare cunoscute: B<None>, B<CRC32>, B<CRC64> și B<SHA-256>. Pentru tipurile de verificări necunoscute, se utilizează B<None->I<N>, unde I<N> este ID-ul de verificare ca număr zecimal (una sau două cifre)."
+msgid ""
+"Comma-separated list of integrity check names. The following strings are "
+"used for the known check types: B<None>, B<CRC32>, B<CRC64>, and "
+"B<SHA-256>. For unknown check types, B<Unknown->I<N> is used, where I<N> is "
+"the Check ID as a decimal number (one or two digits)."
+msgstr ""
+"Lista de nume de verificare a integrității, separate prin virgule. "
+"Următoarele șiruri sunt utilizate pentru tipurile de verificare cunoscute: "
+"B<None>, B<CRC32>, B<CRC64> și B<SHA-256>. Pentru tipurile de verificări "
+"necunoscute, se utilizează B<None->I<N>, unde I<N> este ID-ul de verificare "
+"ca număr zecimal (una sau două cifre)."
#. type: IP
#: ../src/xz/xz.1:2194 ../src/xz/xz.1:2216 ../src/xz/xz.1:2243
@@ -2490,7 +4024,8 @@ msgstr "Numărul fluxului care conține acest bloc"
#. type: Plain text
#: ../src/xz/xz.1:2235
-msgid "Block number relative to the beginning of the stream (the first block is 1)"
+msgid ""
+"Block number relative to the beginning of the stream (the first block is 1)"
msgstr "Numărul blocului în raport cu începutul fluxului (primul bloc este 1)"
#. type: Plain text
@@ -2515,8 +4050,15 @@ msgstr "Dimensiunea totală comprimată a blocului (include antetele)"
#. type: Plain text
#: ../src/xz/xz.1:2261
-msgid "If B<--verbose> was specified twice, additional columns are included on the B<block> lines. These are not displayed with a single B<--verbose>, because getting this information requires many seeks and can thus be slow:"
-msgstr "Dacă opțiunea B<--verbose> a fost specificată de două ori, coloane suplimentare sunt incluse pe liniile B<block>. Acestea nu sunt afișate cu o singură specificare a opțiunii B<--verbose>, deoarece obținerea acestor informații necesită multe căutări și, prin urmare, poate fi lentă:"
+msgid ""
+"If B<--verbose> was specified twice, additional columns are included on the "
+"B<block> lines. These are not displayed with a single B<--verbose>, because "
+"getting this information requires many seeks and can thus be slow:"
+msgstr ""
+"Dacă opțiunea B<--verbose> a fost specificată de două ori, coloane "
+"suplimentare sunt incluse pe liniile B<block>. Acestea nu sunt afișate cu o "
+"singură specificare a opțiunii B<--verbose>, deoarece obținerea acestor "
+"informații necesită multe căutări și, prin urmare, poate fi lentă:"
#. type: IP
#: ../src/xz/xz.1:2263 ../src/xz/xz.1:2363
@@ -2548,8 +4090,17 @@ msgstr "13."
#. type: Plain text
#: ../src/xz/xz.1:2277
-msgid "Block flags: B<c> indicates that compressed size is present, and B<u> indicates that uncompressed size is present. If the flag is not set, a dash (B<->) is shown instead to keep the string length fixed. New flags may be added to the end of the string in the future."
-msgstr "Indicatori de bloc: B<c> indică faptul că este prezentă dimensiunea comprimată, iar B<u> indică faptul că este prezentă dimensiunea necomprimată. Dacă indicatorul nu este determinat, este afișată o liniuță (B<->) pentru a menține lungimea șirului fixă. Pot fi adăugate noi indicatoare la sfârșitul șirului, în viitor."
+msgid ""
+"Block flags: B<c> indicates that compressed size is present, and B<u> "
+"indicates that uncompressed size is present. If the flag is not set, a dash "
+"(B<->) is shown instead to keep the string length fixed. New flags may be "
+"added to the end of the string in the future."
+msgstr ""
+"Indicatori de bloc: B<c> indică faptul că este prezentă dimensiunea "
+"comprimată, iar B<u> indică faptul că este prezentă dimensiunea "
+"necomprimată. Dacă indicatorul nu este determinat, este afișată o liniuță "
+"(B<->) pentru a menține lungimea șirului fixă. Pot fi adăugate noi "
+"indicatoare la sfârșitul șirului, în viitor."
#. type: IP
#: ../src/xz/xz.1:2277
@@ -2559,8 +4110,12 @@ msgstr "14."
#. type: Plain text
#: ../src/xz/xz.1:2280
-msgid "Size of the actual compressed data in the block (this excludes the block header, block padding, and check fields)"
-msgstr "Dimensiunea datelor comprimate reale din bloc (acest lucru exclude antetul blocului, umplutura blocului și câmpurile de verificare)"
+msgid ""
+"Size of the actual compressed data in the block (this excludes the block "
+"header, block padding, and check fields)"
+msgstr ""
+"Dimensiunea datelor comprimate reale din bloc (acest lucru exclude antetul "
+"blocului, umplutura blocului și câmpurile de verificare)"
#. type: IP
#: ../src/xz/xz.1:2280
@@ -2570,8 +4125,12 @@ msgstr "15."
#. type: Plain text
#: ../src/xz/xz.1:2285
-msgid "Amount of memory (in bytes) required to decompress this block with this B<xz> version"
-msgstr "Cantitatea de memorie (în octeți) necesară pentru a decomprima acest bloc cu această versiune B<xz>"
+msgid ""
+"Amount of memory (in bytes) required to decompress this block with this "
+"B<xz> version"
+msgstr ""
+"Cantitatea de memorie (în octeți) necesară pentru a decomprima acest bloc cu "
+"această versiune B<xz>"
#. type: IP
#: ../src/xz/xz.1:2285
@@ -2581,8 +4140,14 @@ msgstr "16."
#. type: Plain text
#: ../src/xz/xz.1:2292
-msgid "Filter chain. Note that most of the options used at compression time cannot be known, because only the options that are needed for decompression are stored in the B<.xz> headers."
-msgstr "Lanț de filtrare. Rețineți că majoritatea opțiunilor utilizate în timpul comprimării nu pot fi cunoscute, deoarece doar opțiunile necesare pentru decomprimare sunt stocate în anteturile B<.xz>."
+msgid ""
+"Filter chain. Note that most of the options used at compression time cannot "
+"be known, because only the options that are needed for decompression are "
+"stored in the B<.xz> headers."
+msgstr ""
+"Lanț de filtrare. Rețineți că majoritatea opțiunilor utilizate în timpul "
+"comprimării nu pot fi cunoscute, deoarece doar opțiunile necesare pentru "
+"decomprimare sunt stocate în anteturile B<.xz>."
#. type: Plain text
#: ../src/xz/xz.1:2298
@@ -2591,13 +4156,21 @@ msgstr "Coloanele din liniile B<summary>:"
#. type: Plain text
#: ../src/xz/xz.1:2305
-msgid "Amount of memory (in bytes) required to decompress this file with this B<xz> version"
-msgstr "Cantitatea de memorie (în octeți) necesară pentru a decomprima acest fișier cu această versiune B<xz>"
+msgid ""
+"Amount of memory (in bytes) required to decompress this file with this B<xz> "
+"version"
+msgstr ""
+"Cantitatea de memorie (în octeți) necesară pentru a decomprima acest fișier "
+"cu această versiune B<xz>"
#. type: Plain text
#: ../src/xz/xz.1:2311 ../src/xz/xz.1:2369
-msgid "B<yes> or B<no> indicating if all block headers have both compressed size and uncompressed size stored in them"
-msgstr "B<yes> sau B<no> indicând dacă toate antetele blocurilor au atât dimensiunea comprimată, cât și dimensiunea necomprimată stocate în ele"
+msgid ""
+"B<yes> or B<no> indicating if all block headers have both compressed size "
+"and uncompressed size stored in them"
+msgstr ""
+"B<yes> sau B<no> indicând dacă toate antetele blocurilor au atât dimensiunea "
+"comprimată, cât și dimensiunea necomprimată stocate în ele"
#. type: Plain text
#: ../src/xz/xz.1:2315 ../src/xz/xz.1:2373
@@ -2636,8 +4209,11 @@ msgstr "Raportul mediu de comprimare"
#. type: Plain text
#: ../src/xz/xz.1:2340
-msgid "Comma-separated list of integrity check names that were present in the files"
-msgstr "Lista de nume de verificare a integrității, separate prin virgule, care au fost prezente în fișiere"
+msgid ""
+"Comma-separated list of integrity check names that were present in the files"
+msgstr ""
+"Lista de nume de verificare a integrității, separate prin virgule, care au "
+"fost prezente în fișiere"
#. type: Plain text
#: ../src/xz/xz.1:2342
@@ -2646,23 +4222,40 @@ msgstr "Dimensiunea umpluturii fluxului"
#. type: Plain text
#: ../src/xz/xz.1:2348
-msgid "Number of files. This is here to keep the order of the earlier columns the same as on B<file> lines."
-msgstr "Numărul de fișiere. Aceasta este aici pentru a păstra ordinea coloanelor anterioare la fel ca pe liniile B<file>."
+msgid ""
+"Number of files. This is here to keep the order of the earlier columns the "
+"same as on B<file> lines."
+msgstr ""
+"Numărul de fișiere. Aceasta este aici pentru a păstra ordinea coloanelor "
+"anterioare la fel ca pe liniile B<file>."
#. type: Plain text
#: ../src/xz/xz.1:2356
-msgid "If B<--verbose> was specified twice, additional columns are included on the B<totals> line:"
-msgstr "Dacă opțiunea B<--verbose> a fost specificată de două ori, pe linia B<totals> sunt incluse coloane suplimentare:"
+msgid ""
+"If B<--verbose> was specified twice, additional columns are included on the "
+"B<totals> line:"
+msgstr ""
+"Dacă opțiunea B<--verbose> a fost specificată de două ori, pe linia "
+"B<totals> sunt incluse coloane suplimentare:"
#. type: Plain text
#: ../src/xz/xz.1:2363
-msgid "Maximum amount of memory (in bytes) required to decompress the files with this B<xz> version"
-msgstr "Cantitatea maximă de memorie (în octeți) necesară pentru a decomprima fișierele cu această versiune B<xz>"
+msgid ""
+"Maximum amount of memory (in bytes) required to decompress the files with "
+"this B<xz> version"
+msgstr ""
+"Cantitatea maximă de memorie (în octeți) necesară pentru a decomprima "
+"fișierele cu această versiune B<xz>"
#. type: Plain text
#: ../src/xz/xz.1:2383
-msgid "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."
-msgstr "Versiunile viitoare pot adăuga noi tipuri de linii și pot fi adăugate coloane noi la tipurile de linii existente, dar coloanele existente nu vor fi modificate."
+msgid ""
+"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."
+msgstr ""
+"Versiunile viitoare pot adăuga noi tipuri de linii și pot fi adăugate "
+"coloane noi la tipurile de linii existente, dar coloanele existente nu vor "
+"fi modificate."
#. type: SS
#: ../src/xz/xz.1:2384
@@ -2672,13 +4265,20 @@ msgstr "Ajutor pentru filtrare"
#. type: Plain text
#: ../src/xz/xz.1:2387
-msgid "B<xz --robot --filters-help> prints the supported filters in the following format:"
-msgstr "B<xz --robot --filters-help> afișează filtrele acceptate în următorul format:"
+msgid ""
+"B<xz --robot --filters-help> prints the supported filters in the following "
+"format:"
+msgstr ""
+"B<xz --robot --filters-help> afișează filtrele acceptate în următorul format:"
#. type: Plain text
#: ../src/xz/xz.1:2389
-msgid "I<filter>B<:>I<option>B<=E<lt>>I<value>B<E<gt>,>I<option>B<=E<lt>>I<value>B<E<gt>>..."
-msgstr "I<filtru>B<:>I<opțiune>B<=E<lt>>I<valoare>B<E<gt>,>I<opțiune>B<=E<lt>>I<valoare>B<E<gt>>..."
+msgid ""
+"I<filter>B<:>I<option>B<=E<lt>>I<value>B<E<gt>,"
+">I<option>B<=E<lt>>I<value>B<E<gt>>..."
+msgstr ""
+"I<filtru>B<:>I<opțiune>B<=E<lt>>I<valoare>B<E<gt>,"
+">I<opțiune>B<=E<lt>>I<valoare>B<E<gt>>..."
#. type: TP
#: ../src/xz/xz.1:2389
@@ -2710,8 +4310,14 @@ msgstr "I<valoare>"
#. type: Plain text
#: ../src/xz/xz.1:2408
-msgid "Numeric I<value> ranges appear as B<E<lt>>I<min>B<->I<max>B<E<gt>>. String I<value> choices are shown within B<E<lt> E<gt>> and separated by a B<|> character."
-msgstr "Intervalele numerice I<valoare> apar ca B<E<lt>>I<min>B<->I<max>B<E<gt>>. Alegerile I<valoare> de tip șir de caractere sunt afișate în cadrul B<E<lt> E<gt>> și separate de un caracter B<|>."
+msgid ""
+"Numeric I<value> ranges appear as B<E<lt>>I<min>B<->I<max>B<E<gt>>. String "
+"I<value> choices are shown within B<E<lt> E<gt>> and separated by a B<|> "
+"character."
+msgstr ""
+"Intervalele numerice I<valoare> apar ca B<E<lt>>I<min>B<->I<max>B<E<gt>>. "
+"Alegerile I<valoare> de tip șir de caractere sunt afișate în cadrul B<E<lt> "
+"E<gt>> și separate de un caracter B<|>."
#. type: Plain text
#: ../src/xz/xz.1:2410
@@ -2726,8 +4332,12 @@ msgstr "Informații privind limita memoriei"
#. type: Plain text
#: ../src/xz/xz.1:2414
-msgid "B<xz --robot --info-memory> prints a single line with multiple tab-separated columns:"
-msgstr "B<xz --robot --info-memory> afișează o singură linie cu multiple coloane separate prin tabulatoare:"
+msgid ""
+"B<xz --robot --info-memory> prints a single line with multiple tab-separated "
+"columns:"
+msgstr ""
+"B<xz --robot --info-memory> afișează o singură linie cu multiple coloane "
+"separate prin tabulatoare:"
#. type: IP
#: ../src/xz/xz.1:2414
@@ -2742,33 +4352,75 @@ msgstr "Cantitatea totală de memorie fizică (RAM) în octeți."
#. type: Plain text
#: ../src/xz/xz.1:2423
-msgid "Memory usage limit for compression in bytes (B<--memlimit-compress>). A special value of B<0> indicates the default setting which for single-threaded mode is the same as no limit."
-msgstr "Limita de utilizare a memoriei pentru comprimare în octeți (B<--memlimit-compress>). O valoare specială de B<0> indică configurarea implicită, care pentru modul cu un singur fir este la fel ca fără limită."
+msgid ""
+"Memory usage limit for compression in bytes (B<--memlimit-compress>). A "
+"special value of B<0> indicates the default setting which for single-"
+"threaded mode is the same as no limit."
+msgstr ""
+"Limita de utilizare a memoriei pentru comprimare în octeți (B<--memlimit-"
+"compress>). O valoare specială de B<0> indică configurarea implicită, care "
+"pentru modul cu un singur fir este la fel ca fără limită."
#. type: Plain text
#: ../src/xz/xz.1:2430
-msgid "Memory usage limit for decompression in bytes (B<--memlimit-decompress>). A special value of B<0> indicates the default setting which for single-threaded mode is the same as no limit."
-msgstr "Limita de utilizare a memoriei pentru decomprimare în octeți (B<--memlimit-decompress>). O valoare specială de B<0> indică configurarea implicită, care pentru modul cu un singur fir este la fel ca fără limită."
+msgid ""
+"Memory usage limit for decompression in bytes (B<--memlimit-decompress>). A "
+"special value of B<0> indicates the default setting which for single-"
+"threaded mode is the same as no limit."
+msgstr ""
+"Limita de utilizare a memoriei pentru decomprimare în octeți (B<--memlimit-"
+"decompress>). O valoare specială de B<0> indică configurarea implicită, care "
+"pentru modul cu un singur fir este la fel ca fără limită."
#. type: Plain text
#: ../src/xz/xz.1:2442
-msgid "Since B<xz> 5.3.4alpha: Memory usage for multi-threaded decompression in bytes (B<--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 B<--memlimit-mt-decompress>."
-msgstr "Începând cu B<xz> 5.3.4alpha: Utilizarea memoriei pentru decomprimarea cu mai multe fire în octeți (B<--memlimit-mt-decompress>). Acesta nu este niciodată zero, deoarece o valoare implicită specifică sistemului afișată în coloana 5 este utilizată dacă nu a fost specificată în mod explicit nicio limită. De asemenea, aceasta nu este niciodată mai mare decât valoarea din coloana 3, chiar dacă a fost specificată o valoare mai mare cu B<--memlimit-mt-decompress>."
+msgid ""
+"Since B<xz> 5.3.4alpha: Memory usage for multi-threaded decompression in "
+"bytes (B<--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 B<--memlimit-mt-"
+"decompress>."
+msgstr ""
+"Începând cu B<xz> 5.3.4alpha: Utilizarea memoriei pentru decomprimarea cu "
+"mai multe fire în octeți (B<--memlimit-mt-decompress>). Acesta nu este "
+"niciodată zero, deoarece o valoare implicită specifică sistemului afișată în "
+"coloana 5 este utilizată dacă nu a fost specificată în mod explicit nicio "
+"limită. De asemenea, aceasta nu este niciodată mai mare decât valoarea din "
+"coloana 3, chiar dacă a fost specificată o valoare mai mare cu B<--memlimit-"
+"mt-decompress>."
#. type: Plain text
#: ../src/xz/xz.1:2454
-msgid "Since B<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 (B<--threads=0>) and no memory usage limit has been specified (B<--memlimit-compress>). This is also used as the default value for B<--memlimit-mt-decompress>."
-msgstr "Începând cu B<xz> 5.3.4alpha: o limită implicită de utilizare a memoriei specifică sistemului, care este utilizată pentru a limita numărul de fire de execuție atunci când se comprimă cu un număr automat de fire de execuție (B<--threads=0>) și nicio limită de utilizare a memoriei nu fost specificată cu (B<--memlimit-compress>). Aceasta este, de asemenea, utilizată ca valoare implicită pentru B<--memlimit-mt-decompress>."
+msgid ""
+"Since B<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 (B<--threads=0>) and no memory usage limit has been "
+"specified (B<--memlimit-compress>). This is also used as the default value "
+"for B<--memlimit-mt-decompress>."
+msgstr ""
+"Începând cu B<xz> 5.3.4alpha: o limită implicită de utilizare a memoriei "
+"specifică sistemului, care este utilizată pentru a limita numărul de fire de "
+"execuție atunci când se comprimă cu un număr automat de fire de execuție "
+"(B<--threads=0>) și nicio limită de utilizare a memoriei nu fost specificată "
+"cu (B<--memlimit-compress>). Aceasta este, de asemenea, utilizată ca valoare "
+"implicită pentru B<--memlimit-mt-decompress>."
#. type: Plain text
#: ../src/xz/xz.1:2459
msgid "Since B<xz> 5.3.4alpha: Number of available processor threads."
-msgstr "Începând cu B<xz> 5.3.4alpha: numărul de fire de execuție de procesor disponibile."
+msgstr ""
+"Începând cu B<xz> 5.3.4alpha: numărul de fire de execuție de procesor "
+"disponibile."
#. type: Plain text
#: ../src/xz/xz.1:2463
-msgid "In the future, the output of B<xz --robot --info-memory> may have more columns, but never more than a single line."
-msgstr "În viitor, rezultatul B<xz --robot --info-memory> poate avea mai multe coloane, dar niciodată mai mult de o singură linie."
+msgid ""
+"In the future, the output of B<xz --robot --info-memory> may have more "
+"columns, but never more than a single line."
+msgstr ""
+"ÃŽn viitor, rezultatul B<xz --robot --info-memory> poate avea mai multe "
+"coloane, dar niciodată mai mult de o singură linie."
#. type: SS
#: ../src/xz/xz.1:2464
@@ -2778,8 +4430,12 @@ msgstr "Versiunea"
#. type: Plain text
#: ../src/xz/xz.1:2469
-msgid "B<xz --robot --version> prints the version number of B<xz> and liblzma in the following format:"
-msgstr "B<xz --robot --version> va afișa numărul versiunii B<xz> și liblzma în următorul format:"
+msgid ""
+"B<xz --robot --version> prints the version number of B<xz> and liblzma in "
+"the following format:"
+msgstr ""
+"B<xz --robot --version> va afișa numărul versiunii B<xz> și liblzma în "
+"următorul format:"
#. type: Plain text
#: ../src/xz/xz.1:2471
@@ -2810,8 +4466,12 @@ msgstr "I<YYY>"
#. type: Plain text
#: ../src/xz/xz.1:2481
-msgid "Minor version. Even numbers are stable. Odd numbers are alpha or beta versions."
-msgstr "Versiunea minoră. Numerele pare sunt prezente în versiunile stabile. Numerele impare sunt prezente în versiunile alfa sau beta."
+msgid ""
+"Minor version. Even numbers are stable. Odd numbers are alpha or beta "
+"versions."
+msgstr ""
+"Versiunea minoră. Numerele pare sunt prezente în versiunile stabile. "
+"Numerele impare sunt prezente în versiunile alfa sau beta."
#. type: TP
#: ../src/xz/xz.1:2481
@@ -2821,8 +4481,11 @@ msgstr "I<ZZZ>"
#. type: Plain text
#: ../src/xz/xz.1:2485
-msgid "Patch level for stable releases or just a counter for development releases."
-msgstr "Nivelul de plasture(patch) pentru versiunile stabile sau doar un contor pentru versiunile de dezvoltare."
+msgid ""
+"Patch level for stable releases or just a counter for development releases."
+msgstr ""
+"Nivelul de plasture(patch) pentru versiunile stabile sau doar un contor "
+"pentru versiunile de dezvoltare."
#. type: TP
#: ../src/xz/xz.1:2485
@@ -2832,13 +4495,21 @@ msgstr "I<S>"
#. type: Plain text
#: ../src/xz/xz.1:2493
-msgid "Stability. 0 is alpha, 1 is beta, and 2 is stable. I<S> should be always 2 when I<YYY> is even."
-msgstr "Stabilitate. 0 este alfa, 1 este beta și 2 este stabil. I<S> trebuie să fie întotdeauna 2 atunci când I<AAA> este par."
+msgid ""
+"Stability. 0 is alpha, 1 is beta, and 2 is stable. I<S> should be always 2 "
+"when I<YYY> is even."
+msgstr ""
+"Stabilitate. 0 este alfa, 1 este beta și 2 este stabil. I<S> trebuie să fie "
+"întotdeauna 2 atunci când I<AAA> este par."
#. type: Plain text
#: ../src/xz/xz.1:2498
-msgid "I<XYYYZZZS> are the same on both lines if B<xz> and liblzma are from the same XZ Utils release."
-msgstr "I<XYYYZZZS> sunt aceleași pe ambele linii dacă B<xz> și liblzma sunt din aceeași versiune XZ Utils."
+msgid ""
+"I<XYYYZZZS> are the same on both lines if B<xz> and liblzma are from the "
+"same XZ Utils release."
+msgstr ""
+"I<XYYYZZZS> sunt aceleași pe ambele linii dacă B<xz> și liblzma sunt din "
+"aceeași versiune XZ Utils."
#. type: Plain text
#: ../src/xz/xz.1:2504
@@ -2883,12 +4554,17 @@ msgstr "B<2>"
#. type: Plain text
#: ../src/xz/xz.1:2516
msgid "Something worth a warning occurred, but no actual errors occurred."
-msgstr "A apărut ceva care merită să fie avertizat, dar nu au apărut erori reale."
+msgstr ""
+"A apărut ceva care merită să fie avertizat, dar nu au apărut erori reale."
#. type: Plain text
#: ../src/xz/xz.1:2519
-msgid "Notices (not warnings or errors) printed on standard error don't affect the exit status."
-msgstr "Notificările (nu avertismentele sau erorile) afișate la ieșirea de eroare standard nu afectează starea de ieșire."
+msgid ""
+"Notices (not warnings or errors) printed on standard error don't affect the "
+"exit status."
+msgstr ""
+"Notificările (nu avertismentele sau erorile) afișate la ieșirea de eroare "
+"standard nu afectează starea de ieșire."
#. type: SH
#: ../src/xz/xz.1:2520 ../src/scripts/xzgrep.1:124 ../src/scripts/xzless.1:50
@@ -2899,8 +4575,19 @@ msgstr "VARIABILE DE MEDIU"
#. type: Plain text
#: ../src/xz/xz.1:2533
-msgid "B<xz> parses space-separated lists of options from the environment variables B<XZ_DEFAULTS> and B<XZ_OPT>, in this order, before parsing the options from the command line. Note that only options are parsed from the environment variables; all non-options are silently ignored. Parsing is done with B<getopt_long>(3) which is used also for the command line arguments."
-msgstr "B<xz> analizează liste de opțiuni separate prin spații din variabilele de mediu B<XZ_DEFAULTS> și B<XZ_OPT>, în această ordine, înainte de a analiza opțiunile din linia de comandă. Rețineți că numai opțiunile sunt analizate din variabilele de mediu; toate non-opțiunile sunt ignorate în tăcere. Analiza se face cu funcția B<getopt_long>(3) care este folosită și pentru argumentele liniei de comandă."
+msgid ""
+"B<xz> parses space-separated lists of options from the environment variables "
+"B<XZ_DEFAULTS> and B<XZ_OPT>, in this order, before parsing the options from "
+"the command line. Note that only options are parsed from the environment "
+"variables; all non-options are silently ignored. Parsing is done with "
+"B<getopt_long>(3) which is used also for the command line arguments."
+msgstr ""
+"B<xz> analizează liste de opțiuni separate prin spații din variabilele de "
+"mediu B<XZ_DEFAULTS> și B<XZ_OPT>, în această ordine, înainte de a analiza "
+"opțiunile din linia de comandă. Rețineți că numai opțiunile sunt analizate "
+"din variabilele de mediu; toate non-opțiunile sunt ignorate în tăcere. "
+"Analiza se face cu funcția B<getopt_long>(3) care este folosită și pentru "
+"argumentele liniei de comandă."
#. type: TP
#: ../src/xz/xz.1:2533
@@ -2910,8 +4597,18 @@ msgstr "B<XZ_DEFAULTS>"
#. type: Plain text
#: ../src/xz/xz.1:2542
-msgid "User-specific or system-wide default options. Typically this is set in a shell initialization script to enable B<xz>'s memory usage limiter by default. Excluding shell initialization scripts and similar special cases, scripts must never set or unset B<XZ_DEFAULTS>."
-msgstr "Opțiuni implicite specifice utilizatorului sau la nivelul întregului sistem. De obicei, acest lucru este specificat într-un script de inițializare shell pentru a activa limitatorul de utilizare a memoriei lui B<xz> implicit. Excluzând scripturile de inițializare shell și cazurile speciale similare, scripturile nu trebuie niciodată să modifice sau să dezactiveze B<XZ_DEFAULTS>."
+msgid ""
+"User-specific or system-wide default options. Typically this is set in a "
+"shell initialization script to enable B<xz>'s memory usage limiter by "
+"default. Excluding shell initialization scripts and similar special cases, "
+"scripts must never set or unset B<XZ_DEFAULTS>."
+msgstr ""
+"Opțiuni implicite specifice utilizatorului sau la nivelul întregului sistem. "
+"De obicei, acest lucru este specificat într-un script de inițializare shell "
+"pentru a activa limitatorul de utilizare a memoriei lui B<xz> implicit. "
+"Excluzând scripturile de inițializare shell și cazurile speciale similare, "
+"scripturile nu trebuie niciodată să modifice sau să dezactiveze "
+"B<XZ_DEFAULTS>."
#. type: TP
#: ../src/xz/xz.1:2542
@@ -2921,8 +4618,15 @@ msgstr "B<XZ_OPT>"
#. type: Plain text
#: ../src/xz/xz.1:2553
-msgid "This is for passing options to B<xz> when it is not possible to set the options directly on the B<xz> command line. This is the case when B<xz> is run by a script or tool, for example, GNU B<tar>(1):"
-msgstr "Acest lucru este pentru transmiterea opțiunilor către B<xz> atunci când nu este posibil să definiți opțiunile direct în linia de comandă a B<xz>. Acesta este cazul când B<xz> este rulat de un script sau de un instrument, de exemplu, GNU B<tar>(1):"
+msgid ""
+"This is for passing options to B<xz> when it is not possible to set the "
+"options directly on the B<xz> command line. This is the case when B<xz> is "
+"run by a script or tool, for example, GNU B<tar>(1):"
+msgstr ""
+"Acest lucru este pentru transmiterea opțiunilor către B<xz> atunci când nu "
+"este posibil să definiți opțiunile direct în linia de comandă a B<xz>. "
+"Acesta este cazul când B<xz> este rulat de un script sau de un instrument, "
+"de exemplu, GNU B<tar>(1):"
#. type: Plain text
#: ../src/xz/xz.1:2559
@@ -2932,8 +4636,17 @@ msgstr "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
#. type: Plain text
#: ../src/xz/xz.1:2573
-msgid "Scripts may use B<XZ_OPT>, for example, to set script-specific default compression options. It is still recommended to allow users to override B<XZ_OPT> if that is reasonable. For example, in B<sh>(1) scripts one may use something like this:"
-msgstr "Scripturile pot folosi B<XZ_OPT>, de exemplu, pentru a configura opțiunile implicite de comprimare specifice scriptului. Se recomandă totuși să se permită utilizatorilor să înlocuiască B<XZ_OPT> dacă acest lucru este rezonabil. De exemplu, în scripturile B<sh>(1) se poate folosi ceva de genul acesta:"
+msgid ""
+"Scripts may use B<XZ_OPT>, for example, to set script-specific default "
+"compression options. It is still recommended to allow users to override "
+"B<XZ_OPT> if that is reasonable. For example, in B<sh>(1) scripts one may "
+"use something like this:"
+msgstr ""
+"Scripturile pot folosi B<XZ_OPT>, de exemplu, pentru a configura opțiunile "
+"implicite de comprimare specifice scriptului. Se recomandă totuși să se "
+"permită utilizatorilor să înlocuiască B<XZ_OPT> dacă acest lucru este "
+"rezonabil. De exemplu, în scripturile B<sh>(1) se poate folosi ceva de genul "
+"acesta:"
#. type: Plain text
#: ../src/xz/xz.1:2580
@@ -2953,8 +4666,18 @@ msgstr "COMPATIBILITATE CU LZMA-UTILS"
#. type: Plain text
#: ../src/xz/xz.1:2598
-msgid "The command line syntax of B<xz> is practically a superset of B<lzma>, B<unlzma>, and B<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."
-msgstr "Sintaxa liniei de comandă a lui B<xz> este practic o super-colecție de B<lzma>, B<unlzma> și B<lzcat> așa cum se găsește în LZMA Utils 4.32.x. În cele mai multe cazuri, este posibil să înlocuiți LZMA Utils cu XZ Utils fără a întrerupe scripturile existente. Există totuși unele incompatibilități, care uneori pot cauza probleme."
+msgid ""
+"The command line syntax of B<xz> is practically a superset of B<lzma>, "
+"B<unlzma>, and B<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."
+msgstr ""
+"Sintaxa liniei de comandă a lui B<xz> este practic o super-colecție de "
+"B<lzma>, B<unlzma> și B<lzcat> așa cum se găsește în LZMA Utils 4.32.x. În "
+"cele mai multe cazuri, este posibil să înlocuiți LZMA Utils cu XZ Utils fără "
+"a întrerupe scripturile existente. Există totuși unele incompatibilități, "
+"care uneori pot cauza probleme."
#. type: SS
#: ../src/xz/xz.1:2599
@@ -2964,8 +4687,16 @@ msgstr "Niveluri de comprimare prestabilite"
#. type: Plain text
#: ../src/xz/xz.1:2606
-msgid "The numbering of the compression level presets is not identical in B<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."
-msgstr "Numerotarea nivelurilor de comprimare prestabilite nu este identică în B<xz> și LZMA Utils. Cea mai importantă diferență este modul în care dimensiunile dicționarului sunt atribuite diferitelor niveluri prestabilite. Dimensiunea dicționarului este aproximativ egală cu memoria utilizată la decomprimare."
+msgid ""
+"The numbering of the compression level presets is not identical in B<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."
+msgstr ""
+"Numerotarea nivelurilor de comprimare prestabilite nu este identică în B<xz> "
+"și LZMA Utils. Cea mai importantă diferență este modul în care dimensiunile "
+"dicționarului sunt atribuite diferitelor niveluri prestabilite. Dimensiunea "
+"dicționarului este aproximativ egală cu memoria utilizată la decomprimare."
#. type: tbl table
#: ../src/xz/xz.1:2612 ../src/xz/xz.1:2637
@@ -3005,8 +4736,14 @@ msgstr "512 KiB"
#. type: Plain text
#: ../src/xz/xz.1:2631
-msgid "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:"
-msgstr "Diferențele de dimensiune a dicționarului afectează deasemenea cantitatea de memorie utilizată la comprimare dar există și alte diferențe între LZMA Utils și XZ Utils, care fac diferența și mai mare:"
+msgid ""
+"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:"
+msgstr ""
+"Diferențele de dimensiune a dicționarului afectează deasemenea cantitatea de "
+"memorie utilizată la comprimare dar există și alte diferențe între LZMA "
+"Utils și XZ Utils, care fac diferența și mai mare:"
#. type: tbl table
#: ../src/xz/xz.1:2637
@@ -3052,8 +4789,12 @@ msgstr "311 MiB"
#. type: Plain text
#: ../src/xz/xz.1:2656
-msgid "The default preset level in LZMA Utils is B<-7> while in XZ Utils it is B<-6>, so both use an 8 MiB dictionary by default."
-msgstr "Nivelul prestabilit implicit în LZMA Utils este B<-7>, în timp ce în XZ Utils este B<-6>, deci ambele folosesc un dicționar de 8Mio în mod implicit."
+msgid ""
+"The default preset level in LZMA Utils is B<-7> while in XZ Utils it is "
+"B<-6>, so both use an 8 MiB dictionary by default."
+msgstr ""
+"Nivelul prestabilit implicit în LZMA Utils este B<-7>, în timp ce în XZ "
+"Utils este B<-6>, deci ambele folosesc un dicționar de 8Mio în mod implicit."
#. type: SS
#: ../src/xz/xz.1:2657
@@ -3063,13 +4804,41 @@ msgstr "Fișiere .lzma transmise în flux vs. netransmise în flux"
#. type: Plain text
#: ../src/xz/xz.1:2667
-msgid "The uncompressed size of the file can be stored in the B<.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."
-msgstr "Dimensiunea necomprimată a fișierului poate fi stocată în antetul B<.lzma>. LZMA Utils face asta atunci când comprimă fișiere obișnuite. Alternativa este să marcați că dimensiunea necomprimată este necunoscută și să folosiți marcajul de sfârșit de încărcare pentru a indica unde ar trebui să se oprească decomprimarea. LZMA Utils folosește această metodă atunci când dimensiunea necomprimată nu este cunoscută, ceea ce este cazul, de exemplu, când se folosesc conducte."
+msgid ""
+"The uncompressed size of the file can be stored in the B<.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."
+msgstr ""
+"Dimensiunea necomprimată a fișierului poate fi stocată în antetul B<.lzma>. "
+"LZMA Utils face asta atunci când comprimă fișiere obișnuite. Alternativa "
+"este să marcați că dimensiunea necomprimată este necunoscută și să folosiți "
+"marcajul de sfârșit de încărcare pentru a indica unde ar trebui să se "
+"oprească decomprimarea. LZMA Utils folosește această metodă atunci când "
+"dimensiunea necomprimată nu este cunoscută, ceea ce este cazul, de exemplu, "
+"când se folosesc conducte."
#. type: Plain text
#: ../src/xz/xz.1:2688
-msgid "B<xz> supports decompressing B<.lzma> files with or without end-of-payload marker, but all B<.lzma> files created by B<xz> will use end-of-payload marker and have uncompressed size marked as unknown in the B<.lzma> header. This may be a problem in some uncommon situations. For example, a B<.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 B<.lzma> files with known uncompressed size."
-msgstr "B<xz> acceptă decomprimarea fișierelor B<.lzma> cu sau fără marcaj de sfârșit de încărcare, dar toate fișierele B<.lzma> create de B<xz> vor folosi marcajul de sfârșit de încărcare și vor avea dimensiunea necomprimată marcată ca necunoscută în antetul B<.lzma>. Aceasta poate fi o problemă în unele situații mai puțin frecvente. De exemplu, un instrument de decomprimare B<.lzma> încorporat într-un dispozitiv poate funcționa numai cu fișiere care au dimensiunea necomprimată cunoscută. Dacă întâmpinați această problemă, trebuie să utilizați LZMA Utils sau LZMA SDK pentru a crea fișiere B<.lzma> cu dimensiunea necomprimată cunoscută."
+msgid ""
+"B<xz> supports decompressing B<.lzma> files with or without end-of-payload "
+"marker, but all B<.lzma> files created by B<xz> will use end-of-payload "
+"marker and have uncompressed size marked as unknown in the B<.lzma> header. "
+"This may be a problem in some uncommon situations. For example, a B<.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 B<.lzma> files with known uncompressed size."
+msgstr ""
+"B<xz> acceptă decomprimarea fișierelor B<.lzma> cu sau fără marcaj de "
+"sfârșit de încărcare, dar toate fișierele B<.lzma> create de B<xz> vor "
+"folosi marcajul de sfârșit de încărcare și vor avea dimensiunea necomprimată "
+"marcată ca necunoscută în antetul B<.lzma>. Aceasta poate fi o problemă în "
+"unele situații mai puțin frecvente. De exemplu, un instrument de "
+"decomprimare B<.lzma> încorporat într-un dispozitiv poate funcționa numai cu "
+"fișiere care au dimensiunea necomprimată cunoscută. Dacă întâmpinați această "
+"problemă, trebuie să utilizați LZMA Utils sau LZMA SDK pentru a crea fișiere "
+"B<.lzma> cu dimensiunea necomprimată cunoscută."
#. type: SS
#: ../src/xz/xz.1:2689
@@ -3079,23 +4848,52 @@ msgstr "Fișiere .lzma neacceptate"
#. type: Plain text
#: ../src/xz/xz.1:2712
-msgid "The B<.lzma> format allows I<lc> values up to 8, and I<lp> values up to 4. LZMA Utils can decompress files with any I<lc> and I<lp>, but always creates files with B<lc=3> and B<lp=0>. Creating files with other I<lc> and I<lp> is possible with B<xz> and with LZMA SDK."
-msgstr "Formatul B<.lzma> permite valori I<lc> de până la 8 și valori I<lp> de până la 4. LZMA Utils poate decomprima fișiere cu orice I<lc> și I<lp>, dar creează întotdeauna fișiere cu B<lc=3> și B<lp=0>. Crearea de fișiere cu alte I<lc> și I<lp> este posibilă cu B<xz> și cu LZMA SDK."
+msgid ""
+"The B<.lzma> format allows I<lc> values up to 8, and I<lp> values up to 4. "
+"LZMA Utils can decompress files with any I<lc> and I<lp>, but always creates "
+"files with B<lc=3> and B<lp=0>. Creating files with other I<lc> and I<lp> "
+"is possible with B<xz> and with LZMA SDK."
+msgstr ""
+"Formatul B<.lzma> permite valori I<lc> de până la 8 și valori I<lp> de până "
+"la 4. LZMA Utils poate decomprima fișiere cu orice I<lc> și I<lp>, dar "
+"creează întotdeauna fișiere cu B<lc=3> și B<lp=0>. Crearea de fișiere cu "
+"alte I<lc> și I<lp> este posibilă cu B<xz> și cu LZMA SDK."
#. type: Plain text
#: ../src/xz/xz.1:2723
-msgid "The implementation of the LZMA1 filter in liblzma requires that the sum of I<lc> and I<lp> must not exceed 4. Thus, B<.lzma> files, which exceed this limitation, cannot be decompressed with B<xz>."
-msgstr "Implementarea filtrului LZMA1 în liblzma necesită ca suma I<lc> și I<lp> să nu depășească 4. Altfel, fișierele B<.lzma>, care depășesc această limitare, nu pot fi decomprimate cu B<xz>."
+msgid ""
+"The implementation of the LZMA1 filter in liblzma requires that the sum of "
+"I<lc> and I<lp> must not exceed 4. Thus, B<.lzma> files, which exceed this "
+"limitation, cannot be decompressed with B<xz>."
+msgstr ""
+"Implementarea filtrului LZMA1 în liblzma necesită ca suma I<lc> și I<lp> să "
+"nu depășească 4. Altfel, fișierele B<.lzma>, care depășesc această limitare, "
+"nu pot fi decomprimate cu B<xz>."
#. type: Plain text
#: ../src/xz/xz.1:2738
-msgid "LZMA Utils creates only B<.lzma> files which have a dictionary size of 2^I<n> (a power of 2) but accepts files with any dictionary size. liblzma accepts only B<.lzma> files which have a dictionary size of 2^I<n> or 2^I<n> + 2^(I<n>-1). This is to decrease false positives when detecting B<.lzma> files."
-msgstr "LZMA Utils creează numai fișiere B<.lzma> care au o dimensiune de dicționar de 2^I<n> (o putere de 2), dar acceptă fișiere cu orice dimensiune de dicționar. liblzma acceptă numai fișierele B<.lzma> care au dimensiunea de dicționar de 2^I<n> sau 2^I<n> + 2^(I<n>-1). Acest lucru este pentru a reduce numărul de „fals pozitiv†atunci când se detectează fișiere B<.lzma>."
+msgid ""
+"LZMA Utils creates only B<.lzma> files which have a dictionary size of "
+"2^I<n> (a power of 2) but accepts files with any dictionary size. liblzma "
+"accepts only B<.lzma> files which have a dictionary size of 2^I<n> or 2^I<n> "
+"+ 2^(I<n>-1). This is to decrease false positives when detecting B<.lzma> "
+"files."
+msgstr ""
+"LZMA Utils creează numai fișiere B<.lzma> care au o dimensiune de dicționar "
+"de 2^I<n> (o putere de 2), dar acceptă fișiere cu orice dimensiune de "
+"dicționar. liblzma acceptă numai fișierele B<.lzma> care au dimensiunea de "
+"dicționar de 2^I<n> sau 2^I<n> + 2^(I<n>-1). Acest lucru este pentru a "
+"reduce numărul de „fals pozitiv†atunci când se detectează fișiere B<.lzma>."
#. type: Plain text
#: ../src/xz/xz.1:2743
-msgid "These limitations shouldn't be a problem in practice, since practically all B<.lzma> files have been compressed with settings that liblzma will accept."
-msgstr "Aceste limitări nu ar trebui să fie o problemă în practică, deoarece practic toate fișierele B<.lzma> au fost comprimate cu opțiuni pe care liblzma le va accepta."
+msgid ""
+"These limitations shouldn't be a problem in practice, since practically all "
+"B<.lzma> files have been compressed with settings that liblzma will accept."
+msgstr ""
+"Aceste limitări nu ar trebui să fie o problemă în practică, deoarece practic "
+"toate fișierele B<.lzma> au fost comprimate cu opțiuni pe care liblzma le va "
+"accepta."
#. type: SS
#: ../src/xz/xz.1:2744
@@ -3105,13 +4903,27 @@ msgstr "Resturi rămase"
#. type: Plain text
#: ../src/xz/xz.1:2754
-msgid "When decompressing, LZMA Utils silently ignore everything after the first B<.lzma> stream. In most situations, this is a bug. This also means that LZMA Utils don't support decompressing concatenated B<.lzma> files."
-msgstr "Când decomprimă, LZMA Utils ignoră în tăcere totul după primul flux B<.lzma>. În majoritatea situațiilor, aceasta este o eroare. Aceasta înseamnă, de asemenea, că LZMA Utils nu acceptă decomprimarea fișierelor B<.lzma> concatenate."
+msgid ""
+"When decompressing, LZMA Utils silently ignore everything after the first B<."
+"lzma> stream. In most situations, this is a bug. This also means that LZMA "
+"Utils don't support decompressing concatenated B<.lzma> files."
+msgstr ""
+"Când decomprimă, LZMA Utils ignoră în tăcere totul după primul flux B<."
+"lzma>. În majoritatea situațiilor, aceasta este o eroare. Aceasta înseamnă, "
+"de asemenea, că LZMA Utils nu acceptă decomprimarea fișierelor B<.lzma> "
+"concatenate."
#. type: Plain text
#: ../src/xz/xz.1:2764
-msgid "If there is data left after the first B<.lzma> stream, B<xz> considers the file to be corrupt unless B<--single-stream> was used. This may break obscure scripts which have assumed that trailing garbage is ignored."
-msgstr "Dacă au rămas date după primul flux B<.lzma>, B<xz> consideră că fișierul este corupt, cu excepția cazului în care a fost utilizată opțiunea B<--single-stream>. Acest lucru poate rupe scripturile obscure(scrise deficitar) care presupun că resturile rămase sunt ignorate."
+msgid ""
+"If there is data left after the first B<.lzma> stream, B<xz> considers the "
+"file to be corrupt unless B<--single-stream> was used. This may break "
+"obscure scripts which have assumed that trailing garbage is ignored."
+msgstr ""
+"Dacă au rămas date după primul flux B<.lzma>, B<xz> consideră că fișierul "
+"este corupt, cu excepția cazului în care a fost utilizată opțiunea B<--"
+"single-stream>. Acest lucru poate rupe scripturile obscure(scrise deficitar) "
+"care presupun că resturile rămase sunt ignorate."
#. type: SH
#: ../src/xz/xz.1:2765 ../src/xzdec/xzdec.1:115
@@ -3127,13 +4939,37 @@ msgstr "Rezultatul comprimării poate varia"
#. type: Plain text
#: ../src/xz/xz.1:2778
-msgid "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 better 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."
-msgstr "Ieșirea exactă comprimată produsă din același fișier de intrare necomprimat poate varia între versiunile XZ Utils, chiar dacă opțiunile de comprimare sunt identice. Acest lucru se datorează faptului că instrumentul codificator poate fi îmbunătățit (comprimare mai rapidă sau mai bună) fără a afecta formatul fișierului. Ieșirea poate varia chiar și între compilările diferite ale aceleiași versiuni XZ Utils, dacă sunt utilizate opțiuni diferite de compilare."
+msgid ""
+"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 better "
+"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."
+msgstr ""
+"Ieșirea exactă comprimată produsă din același fișier de intrare necomprimat "
+"poate varia între versiunile XZ Utils, chiar dacă opțiunile de comprimare "
+"sunt identice. Acest lucru se datorează faptului că instrumentul codificator "
+"poate fi îmbunătățit (comprimare mai rapidă sau mai bună) fără a afecta "
+"formatul fișierului. Ieșirea poate varia chiar și între compilările diferite "
+"ale aceleiași versiuni XZ Utils, dacă sunt utilizate opțiuni diferite de "
+"compilare."
#. type: Plain text
#: ../src/xz/xz.1:2788
-msgid "The above means that once B<--rsyncable> has been implemented, the resulting 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 rsyncable output stable across xz versions."
-msgstr "Cele de mai sus înseamnă că odată ce opțiunea B<--rsyncable> a fost utilizată, fișierele rezultate nu vor fi neapărat sincronizate cu rsync decât dacă atât fișierele vechi, cât și cele noi au fost comprimate cu aceeași versiune xz. Această problemă poate fi remediată dacă o parte a implementării codificatorului este înghețată pentru a menține stabilă ieșirea „rsyncabilă†între versiunile xz."
+msgid ""
+"The above means that once B<--rsyncable> has been implemented, the resulting "
+"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 rsyncable output stable across "
+"xz versions."
+msgstr ""
+"Cele de mai sus înseamnă că odată ce opțiunea B<--rsyncable> a fost "
+"utilizată, fișierele rezultate nu vor fi neapărat sincronizate cu rsync "
+"decât dacă atât fișierele vechi, cât și cele noi au fost comprimate cu "
+"aceeași versiune xz. Această problemă poate fi remediată dacă o parte a "
+"implementării codificatorului este înghețată pentru a menține stabilă "
+"ieșirea „rsyncabilă†între versiunile xz."
#. type: SS
#: ../src/xz/xz.1:2789
@@ -3143,18 +4979,36 @@ msgstr "Instrumente de decomprimare .xz încorporate"
#. type: Plain text
#: ../src/xz/xz.1:2806
-msgid "Embedded B<.xz> decompressor implementations like XZ Embedded don't necessarily support files created with integrity I<check> types other than B<none> and B<crc32>. Since the default is B<--check=crc64>, you must use B<--check=none> or B<--check=crc32> when creating files for embedded systems."
-msgstr "Implementările instrumentului de decomprimare B<.xz> încorporat, cum ar fi XZ Embedded, nu acceptă neapărat fișiere create cu tipuri de I<verificare> a integrității, altele decât B<none> și B<crc32>. Deoarece valoarea implicită este B<--check=crc64>, trebuie să utilizați B<--check=none> sau B<--check=crc32> atunci când creați fișiere pentru sistemele încorporate."
+msgid ""
+"Embedded B<.xz> decompressor implementations like XZ Embedded don't "
+"necessarily support files created with integrity I<check> types other than "
+"B<none> and B<crc32>. Since the default is B<--check=crc64>, you must use "
+"B<--check=none> or B<--check=crc32> when creating files for embedded systems."
+msgstr ""
+"Implementările instrumentului de decomprimare B<.xz> încorporat, cum ar fi "
+"XZ Embedded, nu acceptă neapărat fișiere create cu tipuri de I<verificare> a "
+"integrității, altele decât B<none> și B<crc32>. Deoarece valoarea implicită "
+"este B<--check=crc64>, trebuie să utilizați B<--check=none> sau B<--"
+"check=crc32> atunci când creați fișiere pentru sistemele încorporate."
#. type: Plain text
#: ../src/xz/xz.1:2816
-msgid "Outside embedded systems, all B<.xz> format decompressors support all the I<check> types, or at least are able to decompress the file without verifying the integrity check if the particular I<check> is not supported."
-msgstr "În afara sistemelor încorporate, toate instrumentele de decomprimare în format B<.xz> acceptă toate tipurile de I<verificare> sau cel puțin pot decomprima fișierul fără a efectua verificarea integrității dacă acel tip de I<verificare> nu este acceptat."
+msgid ""
+"Outside embedded systems, all B<.xz> format decompressors support all the "
+"I<check> types, or at least are able to decompress the file without "
+"verifying the integrity check if the particular I<check> is not supported."
+msgstr ""
+"În afara sistemelor încorporate, toate instrumentele de decomprimare în "
+"format B<.xz> acceptă toate tipurile de I<verificare> sau cel puțin pot "
+"decomprima fișierul fără a efectua verificarea integrității dacă acel tip de "
+"I<verificare> nu este acceptat."
#. type: Plain text
#: ../src/xz/xz.1:2819
-msgid "XZ Embedded supports BCJ filters, but only with the default start offset."
-msgstr "XZ Embedded acceptă filtre BCJ, dar numai cu poziție de pornire implicită."
+msgid ""
+"XZ Embedded supports BCJ filters, but only with the default start offset."
+msgstr ""
+"XZ Embedded acceptă filtre BCJ, dar numai cu poziție de pornire implicită."
#. type: SH
#: ../src/xz/xz.1:2820
@@ -3170,8 +5024,12 @@ msgstr "Bazice"
#. type: Plain text
#: ../src/xz/xz.1:2832
-msgid "Compress the file I<foo> into I<foo.xz> using the default compression level (B<-6>), and remove I<foo> if compression is successful:"
-msgstr "Comprimă fișierul I<foo> în I<foo.xz> folosind nivelul de comprimare implicit (B<-6>) și elimină fișierul I<foo> dacă comprimarea are succes:"
+msgid ""
+"Compress the file I<foo> into I<foo.xz> using the default compression level "
+"(B<-6>), and remove I<foo> if compression is successful:"
+msgstr ""
+"Comprimă fișierul I<foo> în I<foo.xz> folosind nivelul de comprimare "
+"implicit (B<-6>) și elimină fișierul I<foo> dacă comprimarea are succes:"
#. type: Plain text
#: ../src/xz/xz.1:2837
@@ -3181,8 +5039,12 @@ msgstr "CW<xz foo>\n"
#. type: Plain text
#: ../src/xz/xz.1:2848
-msgid "Decompress I<bar.xz> into I<bar> and don't remove I<bar.xz> even if decompression is successful:"
-msgstr "Decomprimă I<bar.xz> în I<bar> și nu elimină I<bar.xz> chiar dacă decomprimarea este efectuată cu succes:"
+msgid ""
+"Decompress I<bar.xz> into I<bar> and don't remove I<bar.xz> even if "
+"decompression is successful:"
+msgstr ""
+"Decomprimă I<bar.xz> în I<bar> și nu elimină I<bar.xz> chiar dacă "
+"decomprimarea este efectuată cu succes:"
#. type: Plain text
#: ../src/xz/xz.1:2853
@@ -3192,8 +5054,14 @@ msgstr "CW<xz -dk bar.xz>\n"
#. type: Plain text
#: ../src/xz/xz.1:2866
-msgid "Create I<baz.tar.xz> with the preset B<-4e> (B<-4 --extreme>), which is slower than the default B<-6>, but needs less memory for compression and decompression (48\\ MiB and 5\\ MiB, respectively):"
-msgstr "Creează I<baz.tar.xz> cu nivelul prestabilit B<-4e> (B<-4 --extreme>), care este mai lent decât nivelul prestabilit implicit B<-6>, dar necesită mai puțină memorie pentru comprimare și decomprimare (48Mio și, respectiv, 5Mio):"
+msgid ""
+"Create I<baz.tar.xz> with the preset B<-4e> (B<-4 --extreme>), which is "
+"slower than the default B<-6>, but needs less memory for compression and "
+"decompression (48\\ MiB and 5\\ MiB, respectively):"
+msgstr ""
+"Creează I<baz.tar.xz> cu nivelul prestabilit B<-4e> (B<-4 --extreme>), care "
+"este mai lent decât nivelul prestabilit implicit B<-6>, dar necesită mai "
+"puțină memorie pentru comprimare și decomprimare (48Mio și, respectiv, 5Mio):"
#. type: Plain text
#: ../src/xz/xz.1:2871
@@ -3203,8 +5071,12 @@ msgstr "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
#. type: Plain text
#: ../src/xz/xz.1:2877
-msgid "A mix of compressed and uncompressed files can be decompressed to standard output with a single command:"
-msgstr "Un amestec de fișiere comprimate și necomprimate poate fi decomprimat la ieșirea standard cu o singură comandă:"
+msgid ""
+"A mix of compressed and uncompressed files can be decompressed to standard "
+"output with a single command:"
+msgstr ""
+"Un amestec de fișiere comprimate și necomprimate poate fi decomprimat la "
+"ieșirea standard cu o singură comandă:"
#. type: Plain text
#: ../src/xz/xz.1:2882
@@ -3220,8 +5092,12 @@ msgstr "Comprimarea în paralel a mai multor fișiere"
#. type: Plain text
#: ../src/xz/xz.1:2892
-msgid "On GNU and *BSD, B<find>(1) and B<xargs>(1) can be used to parallelize compression of many files:"
-msgstr "În sisteme GNU și *BSD, B<find>(1) și B<xargs>(1) pot fi utilizate pentru a paraleliza comprimarea mai multor fișiere:"
+msgid ""
+"On GNU and *BSD, B<find>(1) and B<xargs>(1) can be used to parallelize "
+"compression of many files:"
+msgstr ""
+"În sisteme GNU și *BSD, B<find>(1) și B<xargs>(1) pot fi utilizate pentru a "
+"paraleliza comprimarea mai multor fișiere:"
#. type: Plain text
#: ../src/xz/xz.1:2898
@@ -3235,13 +5111,30 @@ msgstr ""
#. type: Plain text
#: ../src/xz/xz.1:2920
-msgid "The B<-P> option to B<xargs>(1) sets the number of parallel B<xz> processes. The best value for the B<-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 B<xz> processes that B<xargs>(1) will eventually create."
-msgstr "Opțiunea B<-P> pentru comanda B<xargs>(1) stabilește numărul de procese paralele B<xz>. Cea mai bună valoare pentru opțiunea B<-n> depinde de câte fișiere trebuie să fie comprimate. Dacă există doar câteva fișiere, valoarea ar trebui probabil să fie 1; cu zeci de mii de fișiere, 100 sau chiar mai mult poate să fie valoarea potrivită pentru a reduce numărul de procese B<xz> pe care B<xargs>(1) le va crea în final."
+msgid ""
+"The B<-P> option to B<xargs>(1) sets the number of parallel B<xz> "
+"processes. The best value for the B<-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 B<xz> processes that B<xargs>(1) "
+"will eventually create."
+msgstr ""
+"Opțiunea B<-P> pentru comanda B<xargs>(1) stabilește numărul de procese "
+"paralele B<xz>. Cea mai bună valoare pentru opțiunea B<-n> depinde de câte "
+"fișiere trebuie să fie comprimate. Dacă există doar câteva fișiere, valoarea "
+"ar trebui probabil să fie 1; cu zeci de mii de fișiere, 100 sau chiar mai "
+"mult poate să fie valoarea potrivită pentru a reduce numărul de procese "
+"B<xz> pe care B<xargs>(1) le va crea în final."
#. type: Plain text
#: ../src/xz/xz.1:2928
-msgid "The option B<-T1> for B<xz> is there to force it to single-threaded mode, because B<xargs>(1) is used to control the amount of parallelization."
-msgstr "Opțiunea B<-T1> pentru B<xz> este acolo pentru a-l forța să ruleze în modul cu un singur fir de execuție, deoarece B<xargs>(1) este folosit pentru a controla cantitatea de paralelizare."
+msgid ""
+"The option B<-T1> for B<xz> is there to force it to single-threaded mode, "
+"because B<xargs>(1) is used to control the amount of parallelization."
+msgstr ""
+"Opțiunea B<-T1> pentru B<xz> este acolo pentru a-l forța să ruleze în modul "
+"cu un singur fir de execuție, deoarece B<xargs>(1) este folosit pentru a "
+"controla cantitatea de paralelizare."
#. type: SS
#: ../src/xz/xz.1:2929
@@ -3251,8 +5144,12 @@ msgstr "Modul robot"
#. type: Plain text
#: ../src/xz/xz.1:2932
-msgid "Calculate how many bytes have been saved in total after compressing multiple files:"
-msgstr "Calculează câți octeți au fost salvați în total după comprimarea mai multor fișiere:"
+msgid ""
+"Calculate how many bytes have been saved in total after compressing multiple "
+"files:"
+msgstr ""
+"Calculează câți octeți au fost salvați în total după comprimarea mai multor "
+"fișiere:"
#. type: Plain text
#: ../src/xz/xz.1:2937
@@ -3262,8 +5159,16 @@ msgstr "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
#. type: Plain text
#: ../src/xz/xz.1:2952
-msgid "A script may want to know that it is using new enough B<xz>. The following B<sh>(1) script checks that the version number of the B<xz> tool is at least 5.0.0. This method is compatible with old beta versions, which didn't support the B<--robot> option:"
-msgstr "Un script poate dori să afle dacă folosește o versiune B<xz> suficient de nouă. Următorul script B<sh>(1) verifică dacă numărul versiunii instrumentului B<xz> este cel puțin 5.0.0. Această metodă este compatibilă cu versiunile beta vechi, care nu acceptau opțiunea B<--robot>:"
+msgid ""
+"A script may want to know that it is using new enough B<xz>. The following "
+"B<sh>(1) script checks that the version number of the B<xz> tool is at "
+"least 5.0.0. This method is compatible with old beta versions, which didn't "
+"support the B<--robot> option:"
+msgstr ""
+"Un script poate dori să afle dacă folosește o versiune B<xz> suficient de "
+"nouă. Următorul script B<sh>(1) verifică dacă numărul versiunii "
+"instrumentului B<xz> este cel puțin 5.0.0. Această metodă este compatibilă "
+"cu versiunile beta vechi, care nu acceptau opțiunea B<--robot>:"
#. type: Plain text
#: ../src/xz/xz.1:2961
@@ -3283,8 +5188,13 @@ msgstr ""
#. type: Plain text
#: ../src/xz/xz.1:2968
-msgid "Set a memory usage limit for decompression using B<XZ_OPT>, but if a limit has already been set, don't increase it:"
-msgstr "Stabilește o limită de utilizare a memoriei pentru decomprimare folosind variabila de mediu B<XZ_OPT>, dar dacă o limită a fost deja stabilită, nu o mărește:"
+msgid ""
+"Set a memory usage limit for decompression using B<XZ_OPT>, but if a limit "
+"has already been set, don't increase it:"
+msgstr ""
+"Stabilește o limită de utilizare a memoriei pentru decomprimare folosind "
+"variabila de mediu B<XZ_OPT>, dar dacă o limită a fost deja stabilită, nu o "
+"mărește:"
#. type: Plain text
#: ../src/xz/xz.1:2978
@@ -3306,18 +5216,39 @@ msgstr ""
#. type: Plain text
#: ../src/xz/xz.1:2988
-msgid "The simplest use for custom filter chains is customizing a LZMA2 preset. This can be useful, because the presets cover only a subset of the potentially useful combinations of compression settings."
-msgstr "Cea mai simplă utilizare a lanțurilor de filtrare personalizate este personalizarea unei opțiuni prestabilite LZMA2. Acest lucru poate fi util, deoarece opțiunile prestabilite acoperă doar un subset al combinațiilor potențial utile de opțiuni de comprimare."
+msgid ""
+"The simplest use for custom filter chains is customizing a LZMA2 preset. "
+"This can be useful, because the presets cover only a subset of the "
+"potentially useful combinations of compression settings."
+msgstr ""
+"Cea mai simplă utilizare a lanțurilor de filtrare personalizate este "
+"personalizarea unei opțiuni prestabilite LZMA2. Acest lucru poate fi util, "
+"deoarece opțiunile prestabilite acoperă doar un subset al combinațiilor "
+"potențial utile de opțiuni de comprimare."
#. type: Plain text
#: ../src/xz/xz.1:2996
-msgid "The CompCPU columns of the tables from the descriptions of the options B<-0> ... B<-9> and B<--extreme> are useful when customizing LZMA2 presets. Here are the relevant parts collected from those two tables:"
-msgstr "Coloanele CPUComp din tabelele de descriere a opțiunilor B<-0> ... B<-9> și B<--extreme> sunt utile atunci când personalizați opțiunilor prestabilite LZMA2. Iată părțile relevante colectate din aceste două tabele:"
+msgid ""
+"The CompCPU columns of the tables from the descriptions of the options "
+"B<-0> ... B<-9> and B<--extreme> are useful when customizing LZMA2 presets. "
+"Here are the relevant parts collected from those two tables:"
+msgstr ""
+"Coloanele CPUComp din tabelele de descriere a opțiunilor B<-0> ... B<-9> și "
+"B<--extreme> sunt utile atunci când personalizați opțiunilor prestabilite "
+"LZMA2. Iată părțile relevante colectate din aceste două tabele:"
#. type: Plain text
#: ../src/xz/xz.1:3021
-msgid "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 B<xz -8> would do, a preset with a low CompCPU value (for example, 1) can be modified to use a bigger dictionary:"
-msgstr "Dacă știți că un fișier necesită un dicționar oarecum mare (de exemplu, 32Mio) pentru a se comprima bine, dar doriți să-l comprimați mai repede decât ar face B<xz -8>, o opțiune prestabilită cu o valoare CPUComp scăzută (de exemplu, 1) poate fi modificată pentru a utiliza un dicționar mai mare:"
+msgid ""
+"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 B<xz -8> "
+"would do, a preset with a low CompCPU value (for example, 1) can be "
+"modified to use a bigger dictionary:"
+msgstr ""
+"Dacă știți că un fișier necesită un dicționar oarecum mare (de exemplu, "
+"32Mio) pentru a se comprima bine, dar doriți să-l comprimați mai repede "
+"decât ar face B<xz -8>, o opțiune prestabilită cu o valoare CPUComp scăzută "
+"(de exemplu, 1) poate fi modificată pentru a utiliza un dicționar mai mare:"
#. type: Plain text
#: ../src/xz/xz.1:3026
@@ -3327,13 +5258,37 @@ msgstr "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
#. type: Plain text
#: ../src/xz/xz.1:3042
-msgid "With certain files, the above command may be faster than B<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."
-msgstr "Cu anumite fișiere, comanda de mai sus poate fi mai rapidă decât B<xz -6> în timp ce comprimă semnificativ mai bine. Cu toate acestea, trebuie subliniat că doar unele fișiere se beneficiază de un dicționar mare, păstrând în același timp valoarea CPUComp scăzută. Cea mai evidentă situație, în care un dicționar mare poate ajuta foarte mult, este o arhivă care conține fișiere foarte asemănătoare de cel puțin câțiva megaocteți fiecare. Dimensiunea dicționarului trebuie să fie semnificativ mai mare decât orice fișier individual pentru a permite LZMA2 să profite din plin de asemănările dintre fișierele consecutive."
+msgid ""
+"With certain files, the above command may be faster than B<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."
+msgstr ""
+"Cu anumite fișiere, comanda de mai sus poate fi mai rapidă decât B<xz -6> în "
+"timp ce comprimă semnificativ mai bine. Cu toate acestea, trebuie subliniat "
+"că doar unele fișiere se beneficiază de un dicționar mare, păstrând în "
+"același timp valoarea CPUComp scăzută. Cea mai evidentă situație, în care un "
+"dicționar mare poate ajuta foarte mult, este o arhivă care conține fișiere "
+"foarte asemănătoare de cel puțin câțiva megaocteți fiecare. Dimensiunea "
+"dicționarului trebuie să fie semnificativ mai mare decât orice fișier "
+"individual pentru a permite LZMA2 să profite din plin de asemănările dintre "
+"fișierele consecutive."
#. type: Plain text
#: ../src/xz/xz.1:3049
-msgid "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 B<xz -9> would use:"
-msgstr "Dacă utilizarea unei mari cantități de memorie pentru comprimare și decomprimare este în regulă, iar fișierul comprimat are cel puțin câteva sute de megaocteți, poate fi util să folosiți un dicționar și mai mare decât cei 64Mio pe care i-ar folosi B<xz -9>:"
+msgid ""
+"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 B<xz -9> would use:"
+msgstr ""
+"Dacă utilizarea unei mari cantități de memorie pentru comprimare și "
+"decomprimare este în regulă, iar fișierul comprimat are cel puțin câteva "
+"sute de megaocteți, poate fi util să folosiți un dicționar și mai mare decât "
+"cei 64Mio pe care i-ar folosi B<xz -9>:"
#. type: Plain text
#: ../src/xz/xz.1:3054
@@ -3343,13 +5298,35 @@ msgstr "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
#. type: Plain text
#: ../src/xz/xz.1:3067
-msgid "Using B<-vv> (B<--verbose --verbose>) like in the above example can be useful to see the memory requirements of the compressor and decompressor. Remember 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."
-msgstr "Utilizarea opțiunii B<-vv> (B<--verbose --verbose>) ca în exemplul de mai sus, poate fi utilă pentru a vedea cerințele de memorie la comprimare și decomprimare. Amintiți-vă că utilizarea unui dicționar mai mare decât dimensiunea fișierului necomprimat este risipă de memorie, de aceea, comanda de mai sus nu este utilă pentru fișiere mici."
+msgid ""
+"Using B<-vv> (B<--verbose --verbose>) like in the above example can be "
+"useful to see the memory requirements of the compressor and decompressor. "
+"Remember 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."
+msgstr ""
+"Utilizarea opțiunii B<-vv> (B<--verbose --verbose>) ca în exemplul de mai "
+"sus, poate fi utilă pentru a vedea cerințele de memorie la comprimare și "
+"decomprimare. Amintiți-vă că utilizarea unui dicționar mai mare decât "
+"dimensiunea fișierului necomprimat este risipă de memorie, de aceea, comanda "
+"de mai sus nu este utilă pentru fișiere mici."
#. type: Plain text
#: ../src/xz/xz.1:3079
-msgid "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 B<-6e> (B<-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 B<--check=crc32>) using about 100\\ KiB of memory."
-msgstr "Uneori, timpul de comprimare nu contează, dar utilizarea memoriei la decomprimare trebuie menținută la un nivel scăzut, de exemplu, pentru a face posibilă decomprimarea fișierului pe un sistem încorporat. Următoarea comandă folosește B<-6e> (B<-6 --extreme>) ca bază și fixează dimensiunea dicționarului la doar 64Kio. Fișierul rezultat poate fi decomprimat cu XZ Embedded (de aceea există B<--check=crc32>) folosind aproximativ 100Kio de memorie."
+msgid ""
+"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 B<-6e> (B<-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 B<--"
+"check=crc32>) using about 100\\ KiB of memory."
+msgstr ""
+"Uneori, timpul de comprimare nu contează, dar utilizarea memoriei la "
+"decomprimare trebuie menținută la un nivel scăzut, de exemplu, pentru a face "
+"posibilă decomprimarea fișierului pe un sistem încorporat. Următoarea "
+"comandă folosește B<-6e> (B<-6 --extreme>) ca bază și fixează dimensiunea "
+"dicționarului la doar 64Kio. Fișierul rezultat poate fi decomprimat cu XZ "
+"Embedded (de aceea există B<--check=crc32>) folosind aproximativ 100Kio de "
+"memorie."
#. type: Plain text
#: ../src/xz/xz.1:3084
@@ -3359,8 +5336,23 @@ msgstr "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
#. type: Plain text
#: ../src/xz/xz.1:3107
-msgid "If you want to squeeze out as many bytes as possible, adjusting the number of literal context bits (I<lc>) and number of position bits (I<pb>) can sometimes help. Adjusting the number of literal position bits (I<lp>) might help too, but usually I<lc> and I<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 B<xz -6e> (try also without B<lc=4>):"
-msgstr "Dacă doriți să stoarceți cât mai mulți octeți posibil, ajustarea numărului de biți de context literal (I<lc>) și a numărului de biți de poziție (I<pb>) poate ajuta uneori. Ajustarea numărului de biți de poziție literală (I<lp>) ar putea ajuta, de asemenea, dar de obicei I<lc> și I<pb> sunt mai importante. De exemplu, o arhivă de cod sursă conține în mare parte text US-ASCII, așa că ceva precum comanda următoare, ar putea oferi un fișier „mai slăbuț†(aproximativ cu 0,1%) mai mic decât cu B<xz -6e> (încercați și fără B<lc=4>):"
+msgid ""
+"If you want to squeeze out as many bytes as possible, adjusting the number "
+"of literal context bits (I<lc>) and number of position bits (I<pb>) can "
+"sometimes help. Adjusting the number of literal position bits (I<lp>) "
+"might help too, but usually I<lc> and I<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 B<xz "
+"-6e> (try also without B<lc=4>):"
+msgstr ""
+"Dacă doriți să stoarceți cât mai mulți octeți posibil, ajustarea numărului "
+"de biți de context literal (I<lc>) și a numărului de biți de poziție (I<pb>) "
+"poate ajuta uneori. Ajustarea numărului de biți de poziție literală (I<lp>) "
+"ar putea ajuta, de asemenea, dar de obicei I<lc> și I<pb> sunt mai "
+"importante. De exemplu, o arhivă de cod sursă conține în mare parte text US-"
+"ASCII, așa că ceva precum comanda următoare, ar putea oferi un fișier „mai "
+"slăbuț†(aproximativ cu 0,1%) mai mic decât cu B<xz -6e> (încercați și fără "
+"B<lc=4>):"
#. type: Plain text
#: ../src/xz/xz.1:3112
@@ -3370,8 +5362,14 @@ msgstr "CW<xz --lzma2=preset=6e,pb=0,lc=4 fișierul_sursă.tar>\n"
#. type: Plain text
#: ../src/xz/xz.1:3120
-msgid "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:"
-msgstr "Utilizarea unui alt filtru împreună cu LZMA2 poate îmbunătăți comprimarea cu anumite tipuri de fișiere. De exemplu, pentru a comprima o bibliotecă partajată x86 pe 32 de biți sau x86 pe 64 de biți folosind filtrul BCJ x86:"
+msgid ""
+"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:"
+msgstr ""
+"Utilizarea unui alt filtru împreună cu LZMA2 poate îmbunătăți comprimarea cu "
+"anumite tipuri de fișiere. De exemplu, pentru a comprima o bibliotecă "
+"partajată x86 pe 32 de biți sau x86 pe 64 de biți folosind filtrul BCJ x86:"
#. type: Plain text
#: ../src/xz/xz.1:3125
@@ -3381,18 +5379,42 @@ msgstr "CW<xz --x86 --lzma2 libfoo.so>\n"
#. type: Plain text
#: ../src/xz/xz.1:3139
-msgid "Note that the order of the filter options is significant. If B<--x86> is specified after B<--lzma2>, B<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."
-msgstr "Rețineți că ordinea opțiunilor de filtrare este semnificativă. Dacă B<--x86> este specificată după B<--lzma2>, B<xz> va da o eroare, deoarece nu poate exista niciun filtru după LZMA2 și, de asemenea, pentru că filtrul x86 BCJ nu poate fi utilizat ca ultimul filtru din lanțul de filtrare."
+msgid ""
+"Note that the order of the filter options is significant. If B<--x86> is "
+"specified after B<--lzma2>, B<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."
+msgstr ""
+"Rețineți că ordinea opțiunilor de filtrare este semnificativă. Dacă B<--x86> "
+"este specificată după B<--lzma2>, B<xz> va da o eroare, deoarece nu poate "
+"exista niciun filtru după LZMA2 și, de asemenea, pentru că filtrul x86 BCJ "
+"nu poate fi utilizat ca ultimul filtru din lanțul de filtrare."
#. type: Plain text
#: ../src/xz/xz.1:3145
-msgid "The Delta filter together with LZMA2 can give good results with bitmap images. It should usually beat PNG, which has a few more advanced filters than simple delta but uses Deflate for the actual compression."
-msgstr "Filtrul Delta împreună cu LZMA2 pot da rezultate bune cu imagini bitmap. De obicei, ar trebui să întreacă comprimarea PNG, care are câteva filtre mai avansate decât delta simplă, dar utilizează Deflate pentru comprimarea reală."
+msgid ""
+"The Delta filter together with LZMA2 can give good results with bitmap "
+"images. It should usually beat PNG, which has a few more advanced filters "
+"than simple delta but uses Deflate for the actual compression."
+msgstr ""
+"Filtrul Delta împreună cu LZMA2 pot da rezultate bune cu imagini bitmap. De "
+"obicei, ar trebui să întreacă comprimarea PNG, care are câteva filtre mai "
+"avansate decât delta simplă, dar utilizează Deflate pentru comprimarea reală."
#. type: Plain text
#: ../src/xz/xz.1:3155
-msgid "The image has to be saved in uncompressed format, for example, as uncompressed 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 B<dist=3>, and it is also good to pass B<pb=0> to LZMA2 to accommodate the three-byte alignment:"
-msgstr "Imaginea trebuie să fie salvată în format necomprimat, de exemplu, ca TIFF necomprimat. Parametrul de distanță al filtrului Delta este fixat să se potrivească cu numărul de octeți per pixel din imagine. De exemplu, bitmap-ul RGB pe 24 de biți necesită B<dist=3> și este, de asemenea, bine să pasați B<pb=0> la LZMA2 pentru a se adapta alinierii pe trei octeți:"
+msgid ""
+"The image has to be saved in uncompressed format, for example, as "
+"uncompressed 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 B<dist=3>, and it is also good to pass B<pb=0> to LZMA2 to "
+"accommodate the three-byte alignment:"
+msgstr ""
+"Imaginea trebuie să fie salvată în format necomprimat, de exemplu, ca TIFF "
+"necomprimat. Parametrul de distanță al filtrului Delta este fixat să se "
+"potrivească cu numărul de octeți per pixel din imagine. De exemplu, bitmap-"
+"ul RGB pe 24 de biți necesită B<dist=3> și este, de asemenea, bine să pasați "
+"B<pb=0> la LZMA2 pentru a se adapta alinierii pe trei octeți:"
#. type: Plain text
#: ../src/xz/xz.1:3160
@@ -3402,8 +5424,14 @@ msgstr "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
#. type: Plain text
#: ../src/xz/xz.1:3168
-msgid "If multiple images have been put into a single archive (for example, B<.tar>), the Delta filter will work on that too as long as all images have the same number of bytes per pixel."
-msgstr "Dacă mai multe imagini au fost introduse într-o singură arhivă (de exemplu, B<.tar>), filtrul Delta va funcționa și pe aceasta atâta timp cât toate imaginile au același număr de octeți per pixel."
+msgid ""
+"If multiple images have been put into a single archive (for example, B<."
+"tar>), the Delta filter will work on that too as long as all images have the "
+"same number of bytes per pixel."
+msgstr ""
+"Dacă mai multe imagini au fost introduse într-o singură arhivă (de exemplu, "
+"B<.tar>), filtrul Delta va funcționa și pe aceasta atâta timp cât toate "
+"imaginile au același număr de octeți per pixel."
#. type: SH
#: ../src/xz/xz.1:3169 ../src/xzdec/xzdec.1:141 ../src/lzmainfo/lzmainfo.1:57
@@ -3415,8 +5443,12 @@ msgstr "CONSULTAȚI ȘI"
#. type: Plain text
#: ../src/xz/xz.1:3178
-msgid "B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), B<gzip>(1), B<bzip2>(1), B<7z>(1)"
-msgstr "B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), B<gzip>(1), B<bzip2>(1), B<7z>(1)"
+msgid ""
+"B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), "
+"B<gzip>(1), B<bzip2>(1), B<7z>(1)"
+msgstr ""
+"B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), "
+"B<gzip>(1), B<bzip2>(1), B<7z>(1)"
#. type: Plain text
#: ../src/xz/xz.1:3180
@@ -3462,38 +5494,83 @@ msgstr "B<lzmadec> [I<opțiune...>] [I<fișier...>]"
#. type: Plain text
#: ../src/xzdec/xzdec.1:42
-msgid "B<xzdec> is a liblzma-based decompression-only tool for B<.xz> (and only B<.xz>) files. B<xzdec> is intended to work as a drop-in replacement for B<xz>(1) in the most common situations where a script has been written to use B<xz --decompress --stdout> (and possibly a few other commonly used options) to decompress B<.xz> files. B<lzmadec> is identical to B<xzdec> except that B<lzmadec> supports B<.lzma> files instead of B<.xz> files."
-msgstr "B<xzdec> este un instrument de decomprimare bazat pe liblzma pentru fișierele B<.xz> (și numai B<.xz>). B<xzdec> este destinat să funcționeze ca un înlocuitor pentru B<xz>(1) în cele mai frecvente situații în care un script a fost scris pentru a utiliza B<xz --decompress --stdout> (și posibil câteva alte opțiuni frecvent utilizate) pentru a decomprima fișierele B<.xz>. B<lzmadec> este identic cu B<xzdec> cu excepția faptului că B<lzmadec> acceptă fișierele B<.lzma> în loc de fișierele B<.xz>."
+msgid ""
+"B<xzdec> is a liblzma-based decompression-only tool for B<.xz> (and only B<."
+"xz>) files. B<xzdec> is intended to work as a drop-in replacement for "
+"B<xz>(1) in the most common situations where a script has been written to "
+"use B<xz --decompress --stdout> (and possibly a few other commonly used "
+"options) to decompress B<.xz> files. B<lzmadec> is identical to B<xzdec> "
+"except that B<lzmadec> supports B<.lzma> files instead of B<.xz> files."
+msgstr ""
+"B<xzdec> este un instrument de decomprimare bazat pe liblzma pentru "
+"fișierele B<.xz> (și numai B<.xz>). B<xzdec> este destinat să funcționeze ca "
+"un înlocuitor pentru B<xz>(1) în cele mai frecvente situații în care un "
+"script a fost scris pentru a utiliza B<xz --decompress --stdout> (și posibil "
+"câteva alte opțiuni frecvent utilizate) pentru a decomprima fișierele B<."
+"xz>. B<lzmadec> este identic cu B<xzdec> cu excepția faptului că B<lzmadec> "
+"acceptă fișierele B<.lzma> în loc de fișierele B<.xz>."
#. type: Plain text
#: ../src/xzdec/xzdec.1:59
-msgid "To reduce the size of the executable, B<xzdec> doesn't support multithreading or localization, and doesn't read options from B<XZ_DEFAULTS> and B<XZ_OPT> environment variables. B<xzdec> doesn't support displaying intermediate progress information: sending B<SIGINFO> to B<xzdec> does nothing, but sending B<SIGUSR1> terminates the process instead of displaying progress information."
-msgstr "Pentru a reduce dimensiunea executabilului, B<xzdec> nu acceptă modul cu mai multe fire de execuție sau localizarea(afișarea mesajelor în limba stabilită de configurările regionale) și nu citește opțiunile din variabilele de mediu B<XZ_DEFAULTS> și B<XZ_OPT>. B<xzdec> nu acceptă afișarea informațiilor intermediare de progres: trimiterea semnalului B<SIGINFO> la B<xzdec> nu face nimic, iar trimiterea semnalului B<SIGUSR1> încheie procesul în loc să afișeze informații despre progres."
+msgid ""
+"To reduce the size of the executable, B<xzdec> doesn't support "
+"multithreading or localization, and doesn't read options from B<XZ_DEFAULTS> "
+"and B<XZ_OPT> environment variables. B<xzdec> doesn't support displaying "
+"intermediate progress information: sending B<SIGINFO> to B<xzdec> does "
+"nothing, but sending B<SIGUSR1> terminates the process instead of displaying "
+"progress information."
+msgstr ""
+"Pentru a reduce dimensiunea executabilului, B<xzdec> nu acceptă modul cu mai "
+"multe fire de execuție sau localizarea(afișarea mesajelor în limba stabilită "
+"de configurările regionale) și nu citește opțiunile din variabilele de mediu "
+"B<XZ_DEFAULTS> și B<XZ_OPT>. B<xzdec> nu acceptă afișarea informațiilor "
+"intermediare de progres: trimiterea semnalului B<SIGINFO> la B<xzdec> nu "
+"face nimic, iar trimiterea semnalului B<SIGUSR1> încheie procesul în loc să "
+"afișeze informații despre progres."
#. type: Plain text
#: ../src/xzdec/xzdec.1:67
-msgid "Ignored for B<xz>(1) compatibility. B<xzdec> supports only decompression."
-msgstr "Ignorat pentru compatibilitate cu B<xz>(1). B<xzdec> acceptă numai decomprimarea."
+msgid ""
+"Ignored for B<xz>(1) compatibility. B<xzdec> supports only decompression."
+msgstr ""
+"Ignorat pentru compatibilitate cu B<xz>(1). B<xzdec> acceptă numai "
+"decomprimarea."
#. type: Plain text
#: ../src/xzdec/xzdec.1:74
-msgid "Ignored for B<xz>(1) compatibility. B<xzdec> never creates or removes any files."
-msgstr "Ignorat pentru compatibilitate cu B<xz>(1). B<xzdec> nu creează sau elimină niciodată niciun fișier."
+msgid ""
+"Ignored for B<xz>(1) compatibility. B<xzdec> never creates or removes any "
+"files."
+msgstr ""
+"Ignorat pentru compatibilitate cu B<xz>(1). B<xzdec> nu creează sau elimină "
+"niciodată niciun fișier."
#. type: Plain text
#: ../src/xzdec/xzdec.1:81
-msgid "Ignored for B<xz>(1) compatibility. B<xzdec> always writes the decompressed data to standard output."
-msgstr "Ignorat pentru compatibilitate cu B<xz>(1). B<xzdec> scrie întotdeauna datele decomprimate la ieșirea standard."
+msgid ""
+"Ignored for B<xz>(1) compatibility. B<xzdec> always writes the "
+"decompressed data to standard output."
+msgstr ""
+"Ignorat pentru compatibilitate cu B<xz>(1). B<xzdec> scrie întotdeauna "
+"datele decomprimate la ieșirea standard."
#. type: Plain text
#: ../src/xzdec/xzdec.1:87
-msgid "Specifying this once does nothing since B<xzdec> never displays any warnings or notices. Specify this twice to suppress errors."
-msgstr "Specificarea acestui lucru o dată nu face nimic, deoarece B<xzdec> nu afișează niciodată avertismente sau notificări. Specificați acest lucru de două ori pentru a suprima erorile."
+msgid ""
+"Specifying this once does nothing since B<xzdec> never displays any warnings "
+"or notices. Specify this twice to suppress errors."
+msgstr ""
+"Specificarea acestui lucru o dată nu face nimic, deoarece B<xzdec> nu "
+"afișează niciodată avertismente sau notificări. Specificați acest lucru de "
+"două ori pentru a suprima erorile."
#. type: Plain text
#: ../src/xzdec/xzdec.1:94
-msgid "Ignored for B<xz>(1) compatibility. B<xzdec> never uses the exit status 2."
-msgstr "Ignorat pentru compatibilitate cu B<xz>(1). B<xzdec> nu folosește niciodată starea de ieșire 2."
+msgid ""
+"Ignored for B<xz>(1) compatibility. B<xzdec> never uses the exit status 2."
+msgstr ""
+"Ignorat pentru compatibilitate cu B<xz>(1). B<xzdec> nu folosește niciodată "
+"starea de ieșire 2."
#. type: Plain text
#: ../src/xzdec/xzdec.1:97
@@ -3512,18 +5589,40 @@ msgstr "Toate au fost bine."
#. type: Plain text
#: ../src/xzdec/xzdec.1:115
-msgid "B<xzdec> doesn't have any warning messages like B<xz>(1) has, thus the exit status 2 is not used by B<xzdec>."
-msgstr "B<xzdec> nu are niciun mesaj de avertizare precum B<xz>(1), astfel că starea de ieșire 2 nu este folosită de B<xzdec>."
+msgid ""
+"B<xzdec> doesn't have any warning messages like B<xz>(1) has, thus the exit "
+"status 2 is not used by B<xzdec>."
+msgstr ""
+"B<xzdec> nu are niciun mesaj de avertizare precum B<xz>(1), astfel că starea "
+"de ieșire 2 nu este folosită de B<xzdec>."
#. type: Plain text
#: ../src/xzdec/xzdec.1:129
-msgid "Use B<xz>(1) instead of B<xzdec> or B<lzmadec> for normal everyday use. B<xzdec> or B<lzmadec> are meant only for situations where it is important to have a smaller decompressor than the full-featured B<xz>(1)."
-msgstr "Utilizați B<xz>(1) în loc de B<xzdec> sau B<lzmadec> pentru utilizarea normală de zi cu zi. B<xzdec> sau B<lzmadec> sunt destinate numai situațiilor în care este important să aveți un instrument de decomprimare mai mic decât B<xz>(1), cu funcții complete."
+msgid ""
+"Use B<xz>(1) instead of B<xzdec> or B<lzmadec> for normal everyday use. "
+"B<xzdec> or B<lzmadec> are meant only for situations where it is important "
+"to have a smaller decompressor than the full-featured B<xz>(1)."
+msgstr ""
+"Utilizați B<xz>(1) în loc de B<xzdec> sau B<lzmadec> pentru utilizarea "
+"normală de zi cu zi. B<xzdec> sau B<lzmadec> sunt destinate numai "
+"situațiilor în care este important să aveți un instrument de decomprimare "
+"mai mic decât B<xz>(1), cu funcții complete."
#. type: Plain text
#: ../src/xzdec/xzdec.1:141
-msgid "B<xzdec> and B<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 B<.xz> decompressor, consider using XZ Embedded."
-msgstr "B<xzdec> și B<lzmadec> nu sunt chiar atât de mici. Dimensiunea poate fi redusă și mai mult prin eliminarea caracteristicilor din liblzma în timpul compilării, dar acest lucru nu ar trebui să se facă de obicei pentru executabilele distribuite în distribuții tipice de sisteme de operare neîncorporate. Dacă aveți nevoie de un instrument de decomprimare B<.xz> cu adevărat mic, luați în considerare utilizarea XZ Embedded."
+msgid ""
+"B<xzdec> and B<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 B<.xz> "
+"decompressor, consider using XZ Embedded."
+msgstr ""
+"B<xzdec> și B<lzmadec> nu sunt chiar atât de mici. Dimensiunea poate fi "
+"redusă și mai mult prin eliminarea caracteristicilor din liblzma în timpul "
+"compilării, dar acest lucru nu ar trebui să se facă de obicei pentru "
+"executabilele distribuite în distribuții tipice de sisteme de operare "
+"neîncorporate. Dacă aveți nevoie de un instrument de decomprimare B<.xz> cu "
+"adevărat mic, luați în considerare utilizarea XZ Embedded."
#. type: Plain text
#: ../src/xzdec/xzdec.1:143 ../src/lzmainfo/lzmainfo.1:58
@@ -3554,18 +5653,40 @@ msgstr "B<lzmainfo> [B<--help>] [B<--version>] [I<fișier...>]"
#. type: Plain text
#: ../src/lzmainfo/lzmainfo.1:29
-msgid "B<lzmainfo> shows information stored in the B<.lzma> file header. It reads the first 13 bytes from the specified I<file>, decodes the header, and prints it to standard output in human readable format. If no I<files> are given or I<file> is B<->, standard input is read."
-msgstr "B<lzmainfo> afișează informațiile stocate în antetul fișierului B<.lzma>. Citește primii 13 octeți din I<fișierul> specificat, decodifică antetul și îl afișează la ieșirea standard în format care poate fi citit de om. Dacă nu sunt date I<fișiere> sau dacă I<fișier> este B<->, se citește intrarea standard."
+msgid ""
+"B<lzmainfo> shows information stored in the B<.lzma> file header. It reads "
+"the first 13 bytes from the specified I<file>, decodes the header, and "
+"prints it to standard output in human readable format. If no I<files> are "
+"given or I<file> is B<->, standard input is read."
+msgstr ""
+"B<lzmainfo> afișează informațiile stocate în antetul fișierului B<.lzma>. "
+"Citește primii 13 octeți din I<fișierul> specificat, decodifică antetul și "
+"îl afișează la ieșirea standard în format care poate fi citit de om. Dacă nu "
+"sunt date I<fișiere> sau dacă I<fișier> este B<->, se citește intrarea "
+"standard."
#. type: Plain text
#: ../src/lzmainfo/lzmainfo.1:38
-msgid "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 B<.lzma> format variant. The amount of memory required to decompress the file is a few dozen kilobytes plus the dictionary size."
-msgstr "De obicei, cele mai interesante informații sunt dimensiunea necomprimată și dimensiunea dicționarului. Dimensiunea necomprimată poate fi afișată numai dacă fișierul este în varianta formatului B<.lzma> netransmis în flux. Cantitatea de memorie necesară pentru a decomprima fișierul este de câteva zeci de kiloocteți plus dimensiunea dicționarului."
+msgid ""
+"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 B<.lzma> format variant. The amount of memory required to "
+"decompress the file is a few dozen kilobytes plus the dictionary size."
+msgstr ""
+"De obicei, cele mai interesante informații sunt dimensiunea necomprimată și "
+"dimensiunea dicționarului. Dimensiunea necomprimată poate fi afișată numai "
+"dacă fișierul este în varianta formatului B<.lzma> netransmis în flux. "
+"Cantitatea de memorie necesară pentru a decomprima fișierul este de câteva "
+"zeci de kiloocteți plus dimensiunea dicționarului."
#. type: Plain text
#: ../src/lzmainfo/lzmainfo.1:42
-msgid "B<lzmainfo> is included in XZ Utils primarily for backward compatibility with LZMA Utils."
-msgstr "B<lzmainfo> este inclus în XZ Utils în primul rând pentru compatibilitatea cu LZMA Utils."
+msgid ""
+"B<lzmainfo> is included in XZ Utils primarily for backward compatibility "
+"with LZMA Utils."
+msgstr ""
+"B<lzmainfo> este inclus în XZ Utils în primul rând pentru compatibilitatea "
+"cu LZMA Utils."
#. type: SH
#: ../src/lzmainfo/lzmainfo.1:49
@@ -3575,8 +5696,13 @@ msgstr "ERORI"
#. type: Plain text
#: ../src/lzmainfo/lzmainfo.1:57
-msgid "B<lzmainfo> uses B<MB> while the correct suffix would be B<MiB> (2^20 bytes). This is to keep the output compatible with LZMA Utils."
-msgstr "B<lzmainfo> folosește sufixul B<MB> în timp ce sufixul corect ar fi B<MiB> (2^20 octeți). Acest lucru este pentru a menține ieșirea compatibilă cu LZMA Utils."
+msgid ""
+"B<lzmainfo> uses B<MB> while the correct suffix would be B<MiB> (2^20 "
+"bytes). This is to keep the output compatible with LZMA Utils."
+msgstr ""
+"B<lzmainfo> folosește sufixul B<MB> în timp ce sufixul corect ar fi B<MiB> "
+"(2^20 octeți). Acest lucru este pentru a menține ieșirea compatibilă cu LZMA "
+"Utils."
#. type: TH
#: ../src/scripts/xzdiff.1:8
@@ -3617,33 +5743,71 @@ msgstr "B<lzdiff> \\&..."
#. type: Plain text
#: ../src/scripts/xzdiff.1:41
-msgid "B<xzcmp> and B<xzdiff> compare uncompressed contents of two files. Uncompressed data and options are passed to B<cmp>(1) or B<diff>(1) unless B<--help> or B<--version> is specified."
-msgstr "B<xzcmp> și B<xzdiff> compară conținutul necomprimat a două fișiere. Datele necomprimate și opțiunile sunt transmise la B<cmp>(1) sau B<diff>(1), cu excepția cazului în care se specifică B<--help> sau B<--version>."
+msgid ""
+"B<xzcmp> and B<xzdiff> compare uncompressed contents of two files. "
+"Uncompressed data and options are passed to B<cmp>(1) or B<diff>(1) unless "
+"B<--help> or B<--version> is specified."
+msgstr ""
+"B<xzcmp> și B<xzdiff> compară conținutul necomprimat a două fișiere. Datele "
+"necomprimate și opțiunile sunt transmise la B<cmp>(1) sau B<diff>(1), cu "
+"excepția cazului în care se specifică B<--help> sau B<--version>."
#. type: Plain text
#: ../src/scripts/xzdiff.1:64
-msgid "If both I<file1> and I<file2> are specified, they can be uncompressed files or files in formats that B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), or B<lz4>(1) can decompress. The required decompression commands are determined from the filename suffixes of I<file1> and I<file2>. A file with an unknown suffix is assumed to be either uncompressed or in a format that B<xz>(1) can decompress."
-msgstr "Dacă sunt specificate atât I<fișier1>, cât și I<fișier2>, acestea pot fi fișiere necomprimate sau fișiere în formate pe care B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1) sau B<lz4>(1) le poate decomprima. Comenzile de decomprimare necesare sunt determinate de sufixele numelor de fișiere I<fișier1> și I<fișier2>. Se presupune că un fișier cu un sufix necunoscut este fie necomprimat, fie într-un format pe care B<xz>(1) îl poate decomprima."
+msgid ""
+"If both I<file1> and I<file2> are specified, they can be uncompressed files "
+"or files in formats that B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), "
+"B<zstd>(1), or B<lz4>(1) can decompress. The required decompression "
+"commands are determined from the filename suffixes of I<file1> and "
+"I<file2>. A file with an unknown suffix is assumed to be either "
+"uncompressed or in a format that B<xz>(1) can decompress."
+msgstr ""
+"Dacă sunt specificate atât I<fișier1>, cât și I<fișier2>, acestea pot fi "
+"fișiere necomprimate sau fișiere în formate pe care B<xz>(1), B<gzip>(1), "
+"B<bzip2>(1), B<lzop>(1), B<zstd>(1) sau B<lz4>(1) le poate decomprima. "
+"Comenzile de decomprimare necesare sunt determinate de sufixele numelor de "
+"fișiere I<fișier1> și I<fișier2>. Se presupune că un fișier cu un sufix "
+"necunoscut este fie necomprimat, fie într-un format pe care B<xz>(1) îl "
+"poate decomprima."
#. type: Plain text
#: ../src/scripts/xzdiff.1:72
-msgid "If only one filename is provided, I<file1> must have a suffix of a supported compression format and the name for I<file2> is assumed to be I<file1> with the compression format suffix removed."
-msgstr "În cazul în care se furnizează un singur nume de fișier, I<fișier1> trebuie să aibă un sufix al unui format de comprimare acceptat, iar numele pentru I<fișier2> se presupune că este I<fișier1> fără sufixul formatului de comprimare."
+msgid ""
+"If only one filename is provided, I<file1> must have a suffix of a supported "
+"compression format and the name for I<file2> is assumed to be I<file1> with "
+"the compression format suffix removed."
+msgstr ""
+"În cazul în care se furnizează un singur nume de fișier, I<fișier1> trebuie "
+"să aibă un sufix al unui format de comprimare acceptat, iar numele pentru "
+"I<fișier2> se presupune că este I<fișier1> fără sufixul formatului de "
+"comprimare."
#. type: Plain text
#: ../src/scripts/xzdiff.1:78
-msgid "The commands B<lzcmp> and B<lzdiff> are provided for backward compatibility with LZMA Utils."
-msgstr "Comenzile B<lzcmp> și B<lzdiff> sunt furnizate pentru compatibilitate retroactivă cu LZMA Utils."
+msgid ""
+"The commands B<lzcmp> and B<lzdiff> are provided for backward compatibility "
+"with LZMA Utils."
+msgstr ""
+"Comenzile B<lzcmp> și B<lzdiff> sunt furnizate pentru compatibilitate "
+"retroactivă cu LZMA Utils."
#. type: Plain text
#: ../src/scripts/xzdiff.1:87
-msgid "If a decompression error occurs, the exit status is B<2>. Otherwise the exit status of B<cmp>(1) or B<diff>(1) is used."
-msgstr "În cazul în care apare o eroare de decomprimare, starea de ieșire este B<2>. În caz contrar, se utilizează starea de ieșire B<cmp>(1) sau B<diff>(1)."
+msgid ""
+"If a decompression error occurs, the exit status is B<2>. Otherwise the "
+"exit status of B<cmp>(1) or B<diff>(1) is used."
+msgstr ""
+"În cazul în care apare o eroare de decomprimare, starea de ieșire este B<2>. "
+"În caz contrar, se utilizează starea de ieșire B<cmp>(1) sau B<diff>(1)."
#. type: Plain text
#: ../src/scripts/xzdiff.1:96
-msgid "B<cmp>(1), B<diff>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), B<lz4>(1)"
-msgstr "B<cmp>(1), B<diff>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), B<lz4>(1)"
+msgid ""
+"B<cmp>(1), B<diff>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), "
+"B<zstd>(1), B<lz4>(1)"
+msgstr ""
+"B<cmp>(1), B<diff>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), "
+"B<zstd>(1), B<lz4>(1)"
#. type: TH
#: ../src/scripts/xzgrep.1:8
@@ -3688,18 +5852,40 @@ msgstr "B<lzfgrep> \\&..."
#. type: Plain text
#: ../src/scripts/xzgrep.1:53
-msgid "B<xzgrep> invokes B<grep>(1) on uncompressed contents of files. The formats of the I<files> are determined from the filename suffixes. Any I<file> with a suffix supported by B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), or B<lz4>(1) will be decompressed; all other files are assumed to be uncompressed."
-msgstr "B<xzgrep> invocă B<grep>(1) asupra conținutului necomprimat al fișierelor. Formatele I<fișierelor> sunt determinate de sufixele numelor de fișiere. Orice I<fișier> cu un sufix acceptat de B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1) sau B<lz4>(1) va fi decomprimat; toate celelalte fișiere sunt presupuse a fi necomprimate."
+msgid ""
+"B<xzgrep> invokes B<grep>(1) on uncompressed contents of files. The "
+"formats of the I<files> are determined from the filename suffixes. Any "
+"I<file> with a suffix supported by B<xz>(1), B<gzip>(1), B<bzip2>(1), "
+"B<lzop>(1), B<zstd>(1), or B<lz4>(1) will be decompressed; all other files "
+"are assumed to be uncompressed."
+msgstr ""
+"B<xzgrep> invocă B<grep>(1) asupra conținutului necomprimat al fișierelor. "
+"Formatele I<fișierelor> sunt determinate de sufixele numelor de fișiere. "
+"Orice I<fișier> cu un sufix acceptat de B<xz>(1), B<gzip>(1), B<bzip2>(1), "
+"B<lzop>(1), B<zstd>(1) sau B<lz4>(1) va fi decomprimat; toate celelalte "
+"fișiere sunt presupuse a fi necomprimate."
#. type: Plain text
#: ../src/scripts/xzgrep.1:65
-msgid "If no I<files> are specified or I<file> is B<-> then standard input is read. When reading from standard input, only files supported by B<xz>(1) are decompressed. Other files are assumed to be in uncompressed form already."
-msgstr "Dacă nu se specifică niciun I<fișier> sau dacă I<fișier> este B<->, se citește intrarea standard. Atunci când se citește de la intrarea standard, sunt decomprimate numai fișierele acceptate de B<xz>(1). Se presupune că celelalte fișiere sunt deja în format necomprimat."
+msgid ""
+"If no I<files> are specified or I<file> is B<-> then standard input is "
+"read. When reading from standard input, only files supported by B<xz>(1) "
+"are decompressed. Other files are assumed to be in uncompressed form "
+"already."
+msgstr ""
+"Dacă nu se specifică niciun I<fișier> sau dacă I<fișier> este B<->, se "
+"citește intrarea standard. Atunci când se citește de la intrarea standard, "
+"sunt decomprimate numai fișierele acceptate de B<xz>(1). Se presupune că "
+"celelalte fișiere sunt deja în format necomprimat."
#. type: Plain text
#: ../src/scripts/xzgrep.1:72
-msgid "Most I<options> of B<grep>(1) are supported. However, the following options are not supported:"
-msgstr "Sunt acceptate majoritatea I<opțiunilor> din B<grep>(1). Cu toate acestea, următoarele opțiuni nu sunt acceptate:"
+msgid ""
+"Most I<options> of B<grep>(1) are supported. However, the following "
+"options are not supported:"
+msgstr ""
+"Sunt acceptate majoritatea I<opțiunilor> din B<grep>(1). Cu toate acestea, "
+"următoarele opțiuni nu sunt acceptate:"
#. type: Plain text
#: ../src/scripts/xzgrep.1:75
@@ -3748,23 +5934,37 @@ msgstr "B<--exclude-dir=>I<global>"
#. type: Plain text
#: ../src/scripts/xzgrep.1:102
-msgid "B<xzegrep> is an alias for B<xzgrep -E>. B<xzfgrep> is an alias for B<xzgrep -F>."
-msgstr "B<xzegrep> este un alias pentru B<xzgrep -E>. B<xzfgrep> este un alias pentru B<xzgrep -F>."
+msgid ""
+"B<xzegrep> is an alias for B<xzgrep -E>. B<xzfgrep> is an alias for "
+"B<xzgrep -F>."
+msgstr ""
+"B<xzegrep> este un alias pentru B<xzgrep -E>. B<xzfgrep> este un alias "
+"pentru B<xzgrep -F>."
#. type: Plain text
#: ../src/scripts/xzgrep.1:109
-msgid "The commands B<lzgrep>, B<lzegrep>, and B<lzfgrep> are provided for backward compatibility with LZMA Utils."
-msgstr "Comenzile B<lzgrep>, B<lzegrep> și B<lzfgrep> sunt furnizate pentru compatibilitate retroactivă cu LZMA Utils."
+msgid ""
+"The commands B<lzgrep>, B<lzegrep>, and B<lzfgrep> are provided for backward "
+"compatibility with LZMA Utils."
+msgstr ""
+"Comenzile B<lzgrep>, B<lzegrep> și B<lzfgrep> sunt furnizate pentru "
+"compatibilitate retroactivă cu LZMA Utils."
#. type: Plain text
#: ../src/scripts/xzgrep.1:115
-msgid "At least one match was found from at least one of the input files. No errors occurred."
-msgstr "A fost găsită cel puțin o potrivire din cel puțin unul dintre fișierele de la intrare. Nu au apărut erori."
+msgid ""
+"At least one match was found from at least one of the input files. No "
+"errors occurred."
+msgstr ""
+"A fost găsită cel puțin o potrivire din cel puțin unul dintre fișierele de "
+"la intrare. Nu au apărut erori."
#. type: Plain text
#: ../src/scripts/xzgrep.1:119
msgid "No matches were found from any of the input files. No errors occurred."
-msgstr "Nu au fost găsite potriviri din niciunul dintre fișierele de la intrare. Nu au apărut erori."
+msgstr ""
+"Nu au fost găsite potriviri din niciunul dintre fișierele de la intrare. Nu "
+"au apărut erori."
#. type: TP
#: ../src/scripts/xzgrep.1:119
@@ -3775,7 +5975,9 @@ msgstr "E<gt>1"
#. type: Plain text
#: ../src/scripts/xzgrep.1:123
msgid "One or more errors occurred. It is unknown if matches were found."
-msgstr "A apărut una sau mai multe erori. Nu se cunoaște dacă au fost găsite potriviri."
+msgstr ""
+"A apărut una sau mai multe erori. Nu se cunoaște dacă au fost găsite "
+"potriviri."
#. type: TP
#: ../src/scripts/xzgrep.1:125
@@ -3785,13 +5987,21 @@ msgstr "B<GREP>"
#. type: Plain text
#: ../src/scripts/xzgrep.1:135
-msgid "If B<GREP> is set to a non-empty value, it is used instead of B<grep>, B<grep -E>, or B<grep -F>."
-msgstr "Dacă variabila de mediu B<GREP> este stabilită la o valoare nevidă, aceasta este utilizată în locul lui B<grep>, B<grep -E> sau B<grep -F>."
+msgid ""
+"If B<GREP> is set to a non-empty value, it is used instead of B<grep>, "
+"B<grep -E>, or B<grep -F>."
+msgstr ""
+"Dacă variabila de mediu B<GREP> este stabilită la o valoare nevidă, aceasta "
+"este utilizată în locul lui B<grep>, B<grep -E> sau B<grep -F>."
#. type: Plain text
#: ../src/scripts/xzgrep.1:144
-msgid "B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), B<lz4>(1), B<zgrep>(1)"
-msgstr "B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), B<lz4>(1), B<zgrep>(1)"
+msgid ""
+"B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), "
+"B<lz4>(1), B<zgrep>(1)"
+msgstr ""
+"B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), "
+"B<lz4>(1), B<zgrep>(1)"
#. type: TH
#: ../src/scripts/xzless.1:8
@@ -3822,18 +6032,40 @@ msgstr "B<lzless> [I<fișier>...]"
#. type: Plain text
#: ../src/scripts/xzless.1:29
-msgid "B<xzless> is a filter that displays text from compressed files to a terminal. Files supported by B<xz>(1) are decompressed; other files are assumed to be in uncompressed form already. If no I<files> are given, B<xzless> reads from standard input."
-msgstr "B<xzless> este un filtru care afișează textul din fișierele comprimate pe un terminal. Fișierele acceptate de B<xz>(1) sunt decomprimate; se presupune că celelalte fișiere sunt deja în format necomprimat. Dacă nu se dă nici un I<fișier>, B<xzless> citește de la intrarea standard."
+msgid ""
+"B<xzless> is a filter that displays text from compressed files to a "
+"terminal. Files supported by B<xz>(1) are decompressed; other files are "
+"assumed to be in uncompressed form already. If no I<files> are given, "
+"B<xzless> reads from standard input."
+msgstr ""
+"B<xzless> este un filtru care afișează textul din fișierele comprimate pe un "
+"terminal. Fișierele acceptate de B<xz>(1) sunt decomprimate; se presupune "
+"că celelalte fișiere sunt deja în format necomprimat. Dacă nu se dă nici un "
+"I<fișier>, B<xzless> citește de la intrarea standard."
#. type: Plain text
#: ../src/scripts/xzless.1:46
-msgid "B<xzless> uses B<less>(1) to present its output. Unlike B<xzmore>, its choice of pager cannot be altered by setting an environment variable. Commands are based on both B<more>(1) and B<vi>(1) and allow back and forth movement and searching. See the B<less>(1) manual for more information."
-msgstr "B<xzless> folosește B<less>(1) pentru a-și prezenta rezultatul. Spre deosebire de B<xzmore>, alegerea sa de pager nu poate fi modificată prin definirea unei variabile de mediu. Comenzile se bazează atât pe B<more>(1) cât și pe B<vi>(1) și permit mișcarea înainte și înapoi și căutarea. Consultați manualul B<less>(1) pentru mai multe informații."
+msgid ""
+"B<xzless> uses B<less>(1) to present its output. Unlike B<xzmore>, its "
+"choice of pager cannot be altered by setting an environment variable. "
+"Commands are based on both B<more>(1) and B<vi>(1) and allow back and "
+"forth movement and searching. See the B<less>(1) manual for more "
+"information."
+msgstr ""
+"B<xzless> folosește B<less>(1) pentru a-și prezenta rezultatul. Spre "
+"deosebire de B<xzmore>, alegerea sa de pager nu poate fi modificată prin "
+"definirea unei variabile de mediu. Comenzile se bazează atât pe B<more>(1) "
+"cât și pe B<vi>(1) și permit mișcarea înainte și înapoi și căutarea. "
+"Consultați manualul B<less>(1) pentru mai multe informații."
#. type: Plain text
#: ../src/scripts/xzless.1:50
-msgid "The command named B<lzless> is provided for backward compatibility with LZMA Utils."
-msgstr "Comanda numită B<lzless> este furnizată pentru compatibilitatea cu LZMA Utils."
+msgid ""
+"The command named B<lzless> is provided for backward compatibility with LZMA "
+"Utils."
+msgstr ""
+"Comanda numită B<lzless> este furnizată pentru compatibilitatea cu LZMA "
+"Utils."
#. type: TP
#: ../src/scripts/xzless.1:51
@@ -3843,8 +6075,12 @@ msgstr "B<LESSMETACHARS>"
#. type: Plain text
#: ../src/scripts/xzless.1:57
-msgid "A list of characters special to the shell. Set by B<xzless> unless it is already set in the environment."
-msgstr "O listă de caractere speciale pentru shell. Definită de B<xzless>, cu excepția cazului în care este deja definită în mediu."
+msgid ""
+"A list of characters special to the shell. Set by B<xzless> unless it is "
+"already set in the environment."
+msgstr ""
+"O listă de caractere speciale pentru shell. Definită de B<xzless>, cu "
+"excepția cazului în care este deja definită în mediu."
#. type: TP
#: ../src/scripts/xzless.1:57
@@ -3854,8 +6090,13 @@ msgstr "B<LESSOPEN>"
#. type: Plain text
#: ../src/scripts/xzless.1:63
-msgid "Set to a command line to invoke the B<xz>(1) decompressor for preprocessing the input files to B<less>(1)."
-msgstr "Aceasta este definită în linia de comandă pentru a invoca instrumentul de decomprimare B<xz>(1) pentru preprocesarea fișierelor de intrare pentru B<less>(1)."
+msgid ""
+"Set to a command line to invoke the B<xz>(1) decompressor for preprocessing "
+"the input files to B<less>(1)."
+msgstr ""
+"Aceasta este definită în linia de comandă pentru a invoca instrumentul de "
+"decomprimare B<xz>(1) pentru preprocesarea fișierelor de intrare pentru "
+"B<less>(1)."
#. type: Plain text
#: ../src/scripts/xzless.1:67
@@ -3885,18 +6126,40 @@ msgstr "B<lzmore> [I<fișier>...]"
#. type: Plain text
#: ../src/scripts/xzmore.1:35
-msgid "B<xzmore> displays text from compressed files to a terminal using B<more>(1). Files supported by B<xz>(1) are decompressed; other files are assumed to be in uncompressed form already. If no I<files> are given, B<xzmore> reads from standard input. See the B<more>(1) manual for the keyboard commands."
-msgstr "B<xzmore> afișează textul din fișierele comprimate pe un terminal folosind B<more>(1). Fișierele acceptate de B<xz>(1) sunt decomprimate; se presupune că celelalte fișiere sunt deja în format necomprimat. Dacă nu se dă nici un I<fișiere>, B<xzmore> citește de la intrarea standard. Consultați manualul B<more>(1) pentru comenzile de la tastatură."
+msgid ""
+"B<xzmore> displays text from compressed files to a terminal using "
+"B<more>(1). Files supported by B<xz>(1) are decompressed; other files are "
+"assumed to be in uncompressed form already. If no I<files> are given, "
+"B<xzmore> reads from standard input. See the B<more>(1) manual for the "
+"keyboard commands."
+msgstr ""
+"B<xzmore> afișează textul din fișierele comprimate pe un terminal folosind "
+"B<more>(1). Fișierele acceptate de B<xz>(1) sunt decomprimate; se presupune "
+"că celelalte fișiere sunt deja în format necomprimat. Dacă nu se dă nici un "
+"I<fișiere>, B<xzmore> citește de la intrarea standard. Consultați manualul "
+"B<more>(1) pentru comenzile de la tastatură."
#. type: Plain text
#: ../src/scripts/xzmore.1:47
-msgid "Note that scrolling backwards might not be possible depending on the implementation of B<more>(1). This is because B<xzmore> uses a pipe to pass the decompressed data to B<more>(1). B<xzless>(1) uses B<less>(1) which provides more advanced features."
-msgstr "Rețineți că este posibil ca derularea înapoi să nu fie posibilă în funcție de implementarea lui B<more>(1). Acest lucru se datorează faptului că B<xzmore> utilizează o conductă pentru a transmite datele decomprimate către B<more>(1). B<xzless>(1) utilizează B<less>(1) care oferă caracteristici mai avansate."
+msgid ""
+"Note that scrolling backwards might not be possible depending on the "
+"implementation of B<more>(1). This is because B<xzmore> uses a pipe to pass "
+"the decompressed data to B<more>(1). B<xzless>(1) uses B<less>(1) which "
+"provides more advanced features."
+msgstr ""
+"Rețineți că este posibil ca derularea înapoi să nu fie posibilă în funcție "
+"de implementarea lui B<more>(1). Acest lucru se datorează faptului că "
+"B<xzmore> utilizează o conductă pentru a transmite datele decomprimate către "
+"B<more>(1). B<xzless>(1) utilizează B<less>(1) care oferă caracteristici mai "
+"avansate."
#. type: Plain text
#: ../src/scripts/xzmore.1:51
-msgid "The command B<lzmore> is provided for backward compatibility with LZMA Utils."
-msgstr "Comanda B<lzmore> este furnizată pentru compatibilitate retroactivă cu LZMA Utils."
+msgid ""
+"The command B<lzmore> is provided for backward compatibility with LZMA Utils."
+msgstr ""
+"Comanda B<lzmore> este furnizată pentru compatibilitate retroactivă cu LZMA "
+"Utils."
#. type: TP
#: ../src/scripts/xzmore.1:53
@@ -3906,8 +6169,11 @@ msgstr "B<PAGER>"
#. type: Plain text
#: ../src/scripts/xzmore.1:60
-msgid "If B<PAGER> is set, its value is used as the pager instead of B<more>(1)."
-msgstr "Dacă variabila de mediu B<PAGER>, este definită, valoarea sa este utilizată ca paginator în loc de B<more>(1)."
+msgid ""
+"If B<PAGER> is set, its value is used as the pager instead of B<more>(1)."
+msgstr ""
+"Dacă variabila de mediu B<PAGER>, este definită, valoarea sa este utilizată "
+"ca paginator în loc de B<more>(1)."
#. type: Plain text
#: ../src/scripts/xzmore.1:65
diff --git a/po4a/ro.po.authors b/po4a/ro.po.authors
new file mode 100644
index 00000000..745d94f2
--- /dev/null
+++ b/po4a/ro.po.authors
@@ -0,0 +1,13 @@
+PO4A-HEADER: position=^\.\\" Author; mode=after; beginboundary=^\.\\"$
+.\"
+.\" Romanian translation for xz-man.
+.\" Mesajele în limba română pentru manualul pachetului XZ Utils.
+.\" Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2022 - 2024.
+.\" Cronologia traducerii fiÈ™ierului „xz-manâ€:
+.\" Traducerea inițială, făcută de R-GC, pentru versiunea xz-man 5.4.0-pre1.
+.\" Actualizare a traducerii pentru versiunea 5.4.0-pre2, făcută de R-GC, dec-2022.
+.\" Actualizare a traducerii pentru versiunea 5.4.3, făcută de R-GC, mai-2023.
+.\" Actualizare a traducerii pentru versiunea 5.4.4-pre1, făcută de R-GC, iul-2023.
+.\" Actualizare a traducerii pentru versiunea 5.6.0-pre1, făcută de R-GC, feb-2024.
+.\" Actualizare a traducerii pentru versiunea 5.6.0-pre2, făcută de R-GC, feb-2024.
+.\" Actualizare a traducerii pentru versiunea Y, făcută de X, Z(luna-anul).
diff --git a/po4a/uk.po.authors b/po4a/uk.po.authors
new file mode 100644
index 00000000..28c23fee
--- /dev/null
+++ b/po4a/uk.po.authors
@@ -0,0 +1,4 @@
+PO4A-HEADER: position=^\.\\" Author; mode=after; beginboundary=^\.\\"$
+.\"
+.\" Ukrainian translation for xz-man.
+.\" Yuri Chornoivan <yurchor@ukr.net>, 2019, 2022, 2023, 2024.
diff --git a/po4a/xz-man.pot b/po4a/xz-man.pot
new file mode 100644
index 00000000..8df8e123
--- /dev/null
+++ b/po4a/xz-man.pot
@@ -0,0 +1,4917 @@
+# 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 <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: XZ Utils 5.6.1\n"
+"POT-Creation-Date: 2024-03-09 16:18+0800\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. type: TH
+#: ../src/xz/xz.1:7
+#, no-wrap
+msgid "XZ"
+msgstr ""
+
+#. type: TH
+#: ../src/xz/xz.1:7
+#, no-wrap
+msgid "2024-02-25"
+msgstr ""
+
+#. type: TH
+#: ../src/xz/xz.1:7 ../src/xzdec/xzdec.1:5 ../src/lzmainfo/lzmainfo.1:5
+#: ../src/scripts/xzdiff.1:8 ../src/scripts/xzgrep.1:8
+#: ../src/scripts/xzless.1:8 ../src/scripts/xzmore.1:8
+#, no-wrap
+msgid "Tukaani"
+msgstr ""
+
+#. type: TH
+#: ../src/xz/xz.1:7 ../src/xzdec/xzdec.1:5 ../src/lzmainfo/lzmainfo.1:5
+#: ../src/scripts/xzdiff.1:8 ../src/scripts/xzgrep.1:8
+#: ../src/scripts/xzless.1:8 ../src/scripts/xzmore.1:8
+#, no-wrap
+msgid "XZ Utils"
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:9 ../src/xzdec/xzdec.1:6 ../src/lzmainfo/lzmainfo.1:6
+#: ../src/scripts/xzdiff.1:9 ../src/scripts/xzgrep.1:9
+#: ../src/scripts/xzless.1:9 ../src/scripts/xzmore.1:9
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:11
+msgid ""
+"xz, unxz, xzcat, lzma, unlzma, lzcat - Compress or decompress .xz and .lzma "
+"files"
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:12 ../src/xzdec/xzdec.1:8 ../src/lzmainfo/lzmainfo.1:8
+#: ../src/scripts/xzdiff.1:12 ../src/scripts/xzgrep.1:12
+#: ../src/scripts/xzless.1:11 ../src/scripts/xzmore.1:12
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:16
+msgid "B<xz> [I<option...>] [I<file...>]"
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:17
+#, no-wrap
+msgid "COMMAND ALIASES"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:21
+msgid "B<unxz> is equivalent to B<xz --decompress>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:25
+msgid "B<xzcat> is equivalent to B<xz --decompress --stdout>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:29
+msgid "B<lzma> is equivalent to B<xz --format=lzma>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:33
+msgid "B<unlzma> is equivalent to B<xz --format=lzma --decompress>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:37
+msgid "B<lzcat> is equivalent to B<xz --format=lzma --decompress --stdout>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:49
+msgid ""
+"When writing scripts that need to decompress files, it is recommended to "
+"always use the name B<xz> with appropriate arguments (B<xz -d> or B<xz -dc>) "
+"instead of the names B<unxz> and B<xzcat>."
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:50 ../src/xzdec/xzdec.1:16 ../src/lzmainfo/lzmainfo.1:13
+#: ../src/scripts/xzdiff.1:27 ../src/scripts/xzgrep.1:33
+#: ../src/scripts/xzless.1:17 ../src/scripts/xzmore.1:19
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:69
+msgid ""
+"B<xz> is a general-purpose data compression tool with command line syntax "
+"similar to B<gzip>(1) and B<bzip2>(1). The native file format is the "
+"B<.xz> format, but the legacy B<.lzma> format used by LZMA Utils and raw "
+"compressed streams with no container format headers are also supported. In "
+"addition, decompression of the B<.lz> format used by B<lzip> is supported."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:91
+msgid ""
+"B<xz> compresses or decompresses each I<file> according to the selected "
+"operation mode. If no I<files> are given or I<file> is B<->, B<xz> reads "
+"from standard input and writes the processed data to standard output. B<xz> "
+"will refuse (display an error and skip the I<file>) to write compressed "
+"data to standard output if it is a terminal. Similarly, B<xz> will refuse "
+"to read compressed data from standard input if it is a terminal."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:101
+msgid ""
+"Unless B<--stdout> is specified, I<files> other than B<-> are written to a "
+"new file whose name is derived from the source I<file> name:"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:101 ../src/xz/xz.1:107 ../src/xz/xz.1:132 ../src/xz/xz.1:137
+#: ../src/xz/xz.1:140 ../src/xz/xz.1:143 ../src/xz/xz.1:159 ../src/xz/xz.1:420
+#: ../src/xz/xz.1:423 ../src/xz/xz.1:430 ../src/xz/xz.1:675 ../src/xz/xz.1:677
+#: ../src/xz/xz.1:776 ../src/xz/xz.1:787 ../src/xz/xz.1:796 ../src/xz/xz.1:802
+#: ../src/xz/xz.1:965 ../src/xz/xz.1:969 ../src/xz/xz.1:973 ../src/xz/xz.1:977
+#: ../src/xz/xz.1:981 ../src/xz/xz.1:983 ../src/xz/xz.1:1079
+#: ../src/xz/xz.1:1088 ../src/xz/xz.1:1100 ../src/xz/xz.1:1839
+#: ../src/xz/xz.1:1845 ../src/xz/xz.1:1886 ../src/xz/xz.1:1891
+#: ../src/xz/xz.1:1906 ../src/xz/xz.1:1910 ../src/xz/xz.1:1988
+#: ../src/xz/xz.1:1992 ../src/xz/xz.1:1995 ../src/xz/xz.1:1998
+#: ../src/xz/xz.1:2002 ../src/xz/xz.1:2009 ../src/xz/xz.1:2011
+#, no-wrap
+msgid "\\(bu"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:107
+msgid ""
+"When compressing, the suffix of the target file format (B<.xz> or B<.lzma>) "
+"is appended to the source filename to get the target filename."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:122
+msgid ""
+"When decompressing, the B<.xz>, B<.lzma>, or B<.lz> suffix is removed from "
+"the filename to get the target filename. B<xz> also recognizes the suffixes "
+"B<.txz> and B<.tlz>, and replaces them with the B<.tar> suffix."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:126
+msgid ""
+"If the target file already exists, an error is displayed and the I<file> is "
+"skipped."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:132
+msgid ""
+"Unless writing to standard output, B<xz> will display a warning and skip the "
+"I<file> if any of the following applies:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:137
+msgid ""
+"I<File> is not a regular file. Symbolic links are not followed, and thus "
+"they are not considered to be regular files."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:140
+msgid "I<File> has more than one hard link."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:143
+msgid "I<File> has setuid, setgid, or sticky bit set."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:159
+msgid ""
+"The operation mode is set to compress and the I<file> 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)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:169
+msgid ""
+"The operation mode is set to decompress and the I<file> doesn't have a "
+"suffix of any of the supported file formats (B<.xz>, B<.txz>, B<.lzma>, "
+"B<.tlz>, or B<.lz>)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:184
+msgid ""
+"After successfully compressing or decompressing the I<file>, B<xz> copies "
+"the owner, group, permissions, access time, and modification time from the "
+"source I<file> to the target file. If copying the group fails, the "
+"permissions are modified so that the target file doesn't become accessible "
+"to users who didn't have permission to access the source I<file>. B<xz> "
+"doesn't support copying other metadata like access control lists or extended "
+"attributes yet."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:194
+msgid ""
+"Once the target file has been successfully closed, the source I<file> is "
+"removed unless B<--keep> was specified. The source I<file> is never removed "
+"if the output is written to standard output or if an error occurs."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:206
+msgid ""
+"Sending B<SIGINFO> or B<SIGUSR1> to the B<xz> process makes it print "
+"progress information to standard error. This has only limited use since "
+"when standard error is a terminal, using B<--verbose> will display an "
+"automatically updating progress indicator."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:207
+#, no-wrap
+msgid "Memory usage"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:223
+msgid ""
+"The memory usage of B<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 decompressor. "
+"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 B<xz -9> currently requires 65\\ MiB of "
+"memory. Still, it is possible to have B<.xz> files that require several "
+"gigabytes of memory to decompress."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:235
+msgid ""
+"Especially users of older systems may find the possibility of very large "
+"memory usage annoying. To prevent uncomfortable surprises, B<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 example, using "
+"B<ulimit>(1) to limit virtual memory tends to cripple B<mmap>(2))."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:257
+msgid ""
+"The memory usage limiter can be enabled with the command line option "
+"B<--memlimit=>I<limit>. Often it is more convenient to enable the limiter "
+"by default by setting the environment variable B<XZ_DEFAULTS>, for example, "
+"B<XZ_DEFAULTS=--memlimit=150MiB>. It is possible to set the limits "
+"separately for compression and decompression by using "
+"B<--memlimit-compress=>I<limit> and B<--memlimit-decompress=>I<limit>. "
+"Using these two options outside B<XZ_DEFAULTS> is rarely useful because a "
+"single run of B<xz> cannot do both compression and decompression and "
+"B<--memlimit=>I<limit> (or B<-M> I<limit>) is shorter to type on the "
+"command line."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:276
+msgid ""
+"If the specified memory usage limit is exceeded when decompressing, B<xz> "
+"will display an error and decompressing the file will fail. If the limit is "
+"exceeded when compressing, B<xz> will try to scale the settings down so that "
+"the limit is no longer exceeded (except when using B<--format=raw> or "
+"B<--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 B<xz -9>, the settings will be scaled down only "
+"a little, not all the way down to B<xz -8>."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:277
+#, no-wrap
+msgid "Concatenation and padding with .xz files"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:285
+msgid ""
+"It is possible to concatenate B<.xz> files as is. B<xz> will decompress "
+"such files as if they were a single B<.xz> file."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:294
+msgid ""
+"It is possible to insert padding between the concatenated parts or after 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 B<.xz> file is stored on a medium that measures file sizes in "
+"512-byte blocks."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:298
+msgid ""
+"Concatenation and padding are not allowed with B<.lzma> files or raw "
+"streams."
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:299 ../src/xzdec/xzdec.1:59
+#, no-wrap
+msgid "OPTIONS"
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:301
+#, no-wrap
+msgid "Integer suffixes and special values"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:305
+msgid ""
+"In most places where an integer argument is expected, an optional suffix is "
+"supported to easily indicate large integers. There must be no space between "
+"the integer and the suffix."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:305
+#, no-wrap
+msgid "B<KiB>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:316
+msgid ""
+"Multiply the integer by 1,024 (2^10). B<Ki>, B<k>, B<kB>, B<K>, and B<KB> "
+"are accepted as synonyms for B<KiB>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:316
+#, no-wrap
+msgid "B<MiB>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:326
+msgid ""
+"Multiply the integer by 1,048,576 (2^20). B<Mi>, B<m>, B<M>, and B<MB> are "
+"accepted as synonyms for B<MiB>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:326
+#, no-wrap
+msgid "B<GiB>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:336
+msgid ""
+"Multiply the integer by 1,073,741,824 (2^30). B<Gi>, B<g>, B<G>, and B<GB> "
+"are accepted as synonyms for B<GiB>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:341
+msgid ""
+"The special value B<max> can be used to indicate the maximum integer value "
+"supported by the option."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:342
+#, no-wrap
+msgid "Operation mode"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:345
+msgid "If multiple operation mode options are given, the last one takes effect."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:345
+#, no-wrap
+msgid "B<-z>, B<--compress>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:354
+msgid ""
+"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, B<unxz> implies B<--decompress>)."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:354 ../src/xzdec/xzdec.1:60
+#, no-wrap
+msgid "B<-d>, B<--decompress>, B<--uncompress>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:357
+msgid "Decompress."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:357
+#, no-wrap
+msgid "B<-t>, B<--test>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:366
+msgid ""
+"Test the integrity of compressed I<files>. This option is equivalent to "
+"B<--decompress --stdout> except that the decompressed data is discarded "
+"instead of being written to standard output. No files are created or "
+"removed."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:366
+#, no-wrap
+msgid "B<-l>, B<--list>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:375
+msgid ""
+"Print information about compressed I<files>. No uncompressed output 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."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:390
+msgid ""
+"The default listing shows basic information about I<files>, one file per "
+"line. To get more detailed information, use also the B<--verbose> option. "
+"For even more information, use B<--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 "
+"example, B<less\\ -S> may be convenient if the terminal isn't wide enough."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:397
+msgid ""
+"The exact output may vary between B<xz> versions and different locales. For "
+"machine-readable output, B<--robot --list> should be used."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:398
+#, no-wrap
+msgid "Operation modifiers"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:399 ../src/xzdec/xzdec.1:67
+#, no-wrap
+msgid "B<-k>, B<--keep>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:402
+msgid "Don't delete the input files."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:416
+msgid ""
+"Since B<xz> 5.2.6, this option also makes B<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 B<--force>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:416
+#, no-wrap
+msgid "B<-f>, B<--force>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:419
+msgid "This option has several effects:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:423
+msgid ""
+"If the target file already exists, delete it before compressing or "
+"decompressing."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:430
+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."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:455
+msgid ""
+"When used with B<--decompress> B<--stdout> and B<xz> cannot recognize the "
+"type of the source file, copy the source file as is to standard output. "
+"This allows B<xzcat> B<--force> to be used like B<cat>(1) for files that "
+"have not been compressed with B<xz>. Note that in future, B<xz> might "
+"support new compressed file formats, which may make B<xz> decompress more "
+"types of files instead of copying them as is to standard output. "
+"B<--format=>I<format> can be used to restrict B<xz> to decompress only a "
+"single file format."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:456 ../src/xzdec/xzdec.1:74
+#, no-wrap
+msgid "B<-c>, B<--stdout>, B<--to-stdout>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:462
+msgid ""
+"Write the compressed or decompressed data to standard output instead of a "
+"file. This implies B<--keep>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:462
+#, no-wrap
+msgid "B<--single-stream>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:471
+msgid ""
+"Decompress only the first B<.xz> stream, and silently ignore possible "
+"remaining input data following the stream. Normally such trailing garbage "
+"makes B<xz> display an error."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:480
+msgid ""
+"B<xz> never decompresses more than one stream from B<.lzma> files or raw "
+"streams, but this option still makes B<xz> ignore the possible trailing data "
+"after the B<.lzma> file or raw stream."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:485
+msgid ""
+"This option has no effect if the operation mode is not B<--decompress> or "
+"B<--test>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:485
+#, no-wrap
+msgid "B<--no-sparse>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:497
+msgid ""
+"Disable creation of sparse files. By default, if decompressing into a "
+"regular file, B<xz> tries to make the file sparse if the decompressed 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."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:497
+#, no-wrap
+msgid "B<-S> I<.suf>, B<--suffix=>I<.suf>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:509
+msgid ""
+"When compressing, use I<.suf> as the suffix for the target file instead of "
+"B<.xz> or B<.lzma>. If not writing to standard output and the source file "
+"already has the suffix I<.suf>, a warning is displayed and the file is "
+"skipped."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:523
+msgid ""
+"When decompressing, recognize files with the suffix I<.suf> in addition to "
+"files with the B<.xz>, B<.txz>, B<.lzma>, B<.tlz>, or B<.lz> suffix. If the "
+"source file has the suffix I<.suf>, the suffix is removed to get the target "
+"filename."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:529
+msgid ""
+"When compressing or decompressing raw streams (B<--format=raw>), the suffix "
+"must always be specified unless writing to standard output, because there is "
+"no default suffix for raw streams."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:529
+#, no-wrap
+msgid "B<--files>[B<=>I<file>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:543
+msgid ""
+"Read the filenames to process from I<file>; if I<file> is omitted, filenames "
+"are read from standard input. Filenames must be terminated with the newline "
+"character. A dash (B<->) is taken as a regular filename; it doesn't mean "
+"standard input. If filenames are given also as command line arguments, they "
+"are processed before the filenames read from I<file>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:543
+#, no-wrap
+msgid "B<--files0>[B<=>I<file>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:547
+msgid ""
+"This is identical to B<--files>[B<=>I<file>] except that each filename must "
+"be terminated with the null character."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:548
+#, no-wrap
+msgid "Basic file format and compression options"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:549
+#, no-wrap
+msgid "B<-F> I<format>, B<--format=>I<format>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:554
+msgid "Specify the file I<format> to compress or decompress:"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:555
+#, no-wrap
+msgid "B<auto>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:567
+msgid ""
+"This is the default. When compressing, B<auto> is equivalent to B<xz>. "
+"When decompressing, the format of the input file is automatically detected. "
+"Note that raw streams (created with B<--format=raw>) cannot be "
+"auto-detected."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:567
+#, no-wrap
+msgid "B<xz>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:574
+msgid ""
+"Compress to the B<.xz> file format, or accept only B<.xz> files when "
+"decompressing."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:574
+#, no-wrap
+msgid "B<lzma>, B<alone>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:584
+msgid ""
+"Compress to the legacy B<.lzma> file format, or accept only B<.lzma> files "
+"when decompressing. The alternative name B<alone> is provided for backwards "
+"compatibility with LZMA Utils."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:584
+#, no-wrap
+msgid "B<lzip>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:590
+msgid "Accept only B<.lz> files when decompressing. Compression is not supported."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:603
+msgid ""
+"The B<.lz> format version 0 and the unextended version 1 are supported. "
+"Version 0 files were produced by B<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 "
+"B<lzip> 1.18."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:612
+msgid ""
+"B<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 B<lzip> 1.6. This "
+"extension is rarely used and isn't supported by B<xz> (diagnosed as corrupt "
+"input)."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:612
+#, no-wrap
+msgid "B<raw>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:620
+msgid ""
+"Compress or uncompress a raw stream (no headers). This is meant for "
+"advanced users only. To decode raw streams, you need use B<--format=raw> "
+"and explicitly specify the filter chain, which normally would have been "
+"stored in the container headers."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:621
+#, no-wrap
+msgid "B<-C> I<check>, B<--check=>I<check>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:636
+msgid ""
+"Specify the type of the integrity check. The check is calculated from the "
+"uncompressed data and stored in the B<.xz> file. This option has an effect "
+"only when compressing into the B<.xz> format; the B<.lzma> format doesn't "
+"support integrity checks. The integrity check (if any) is verified when the "
+"B<.xz> file is decompressed."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:640
+msgid "Supported I<check> types:"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:641
+#, no-wrap
+msgid "B<none>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:647
+msgid ""
+"Don't calculate an integrity check at all. This is usually a bad idea. "
+"This can be useful when integrity of the data is verified by other means "
+"anyway."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:647
+#, no-wrap
+msgid "B<crc32>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:650
+msgid "Calculate CRC32 using the polynomial from IEEE-802.3 (Ethernet)."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:650
+#, no-wrap
+msgid "B<crc64>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:655
+msgid ""
+"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 negligible."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:655
+#, no-wrap
+msgid "B<sha256>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:659
+msgid "Calculate SHA-256. This is somewhat slower than CRC32 and CRC64."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:665
+msgid ""
+"Integrity of the B<.xz> headers is always verified with CRC32. It is not "
+"possible to change or disable it."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:665
+#, no-wrap
+msgid "B<--ignore-check>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:671
+msgid ""
+"Don't verify the integrity check of the compressed data when decompressing. "
+"The CRC32 values in the B<.xz> headers will still be verified normally."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:674
+msgid ""
+"B<Do not use this option unless you know what you are doing.> Possible "
+"reasons to use this option:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:677
+msgid "Trying to recover data from a corrupt .xz file."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:683
+msgid ""
+"Speeding up decompression. This matters mostly with SHA-256 or with files "
+"that have compressed extremely well. It's recommended to not use this "
+"option for this purpose unless the file integrity is verified externally in "
+"some other way."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:684
+#, no-wrap
+msgid "B<-0> ... B<-9>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:693
+msgid ""
+"Select a compression preset level. The default is B<-6>. If multiple "
+"preset levels are specified, the last one takes effect. If a custom filter "
+"chain was already specified, setting a compression preset level clears the "
+"custom filter chain."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:708
+msgid ""
+"The differences between the presets are more significant than with "
+"B<gzip>(1) and B<bzip2>(1). The selected compression settings determine "
+"the memory requirements of the decompressor, thus using a too high preset "
+"level might make it painful to decompress the file on an old system with "
+"little RAM. Specifically, B<it's not a good idea to blindly use -9 for "
+"everything> like it often is with B<gzip>(1) and B<bzip2>(1)."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:709
+#, no-wrap
+msgid "B<-0> ... B<-3>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:721
+msgid ""
+"These are somewhat fast presets. B<-0> is sometimes faster than B<gzip -9> "
+"while compressing much better. The higher ones often have speed comparable "
+"to B<bzip2>(1) with comparable or better compression ratio, although the "
+"results depend a lot on the type of data being compressed."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:721
+#, no-wrap
+msgid "B<-4> ... B<-6>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:735
+msgid ""
+"Good to very good compression while keeping decompressor memory usage "
+"reasonable even for old systems. B<-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. (B<-5e> or B<-6e> may be worth considering "
+"too. See B<--extreme>.)"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:735
+#, no-wrap
+msgid "B<-7 ... -9>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:742
+msgid ""
+"These are like B<-6> but with higher compressor and decompressor memory "
+"requirements. These are useful only when compressing files bigger than 8\\ "
+"MiB, 16\\ MiB, and 32\\ MiB, respectively."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:750
+msgid ""
+"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 decompression will usually be. This also "
+"means that the amount of uncompressed output produced per second can vary a "
+"lot."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:752
+msgid "The following table summarises the features of the presets:"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:759 ../src/xz/xz.1:847 ../src/xz/xz.1:3002
+#, no-wrap
+msgid "Preset"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:759 ../src/xz/xz.1:847
+#, no-wrap
+msgid "DictSize"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:759 ../src/xz/xz.1:847 ../src/xz/xz.1:3002
+#, no-wrap
+msgid "CompCPU"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:759 ../src/xz/xz.1:847
+#, no-wrap
+msgid "CompMem"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:759 ../src/xz/xz.1:847
+#, no-wrap
+msgid "DecMem"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:760 ../src/xz/xz.1:2613 ../src/xz/xz.1:2638
+#: ../src/xz/xz.1:3003
+#, no-wrap
+msgid "-0"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:760 ../src/xz/xz.1:848 ../src/xz/xz.1:2613
+#, no-wrap
+msgid "256 KiB"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:760 ../src/xz/xz.1:3003 ../src/scripts/xzgrep.1:111
+#, no-wrap
+msgid "0"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:760 ../src/xz/xz.1:762 ../src/xz/xz.1:850 ../src/xz/xz.1:2638
+#, no-wrap
+msgid "3 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:760 ../src/xz/xz.1:761 ../src/xz/xz.1:848 ../src/xz/xz.1:849
+#: ../src/xz/xz.1:2614 ../src/xz/xz.1:2615 ../src/xz/xz.1:2617
+#, no-wrap
+msgid "1 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:761 ../src/xz/xz.1:2614 ../src/xz/xz.1:2639
+#: ../src/xz/xz.1:3004
+#, no-wrap
+msgid "-1"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:761 ../src/xz/xz.1:1868 ../src/xz/xz.1:3004
+#: ../src/scripts/xzgrep.1:115
+#, no-wrap
+msgid "1"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:761 ../src/xz/xz.1:765 ../src/xz/xz.1:766 ../src/xz/xz.1:853
+#: ../src/xz/xz.1:854 ../src/xz/xz.1:2639
+#, no-wrap
+msgid "9 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:761 ../src/xz/xz.1:762 ../src/xz/xz.1:849 ../src/xz/xz.1:850
+#: ../src/xz/xz.1:2615 ../src/xz/xz.1:2618 ../src/xz/xz.1:2639
+#, no-wrap
+msgid "2 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:762 ../src/xz/xz.1:2615 ../src/xz/xz.1:2640
+#: ../src/xz/xz.1:3005
+#, no-wrap
+msgid "-2"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:762 ../src/xz/xz.1:1870 ../src/xz/xz.1:1875
+#: ../src/xz/xz.1:3005
+#, no-wrap
+msgid "2"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:762 ../src/xz/xz.1:767 ../src/xz/xz.1:855 ../src/xz/xz.1:2640
+#, no-wrap
+msgid "17 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:763 ../src/xz/xz.1:2616 ../src/xz/xz.1:2641
+#: ../src/xz/xz.1:3006
+#, no-wrap
+msgid "-3"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:763 ../src/xz/xz.1:764 ../src/xz/xz.1:848 ../src/xz/xz.1:851
+#: ../src/xz/xz.1:852 ../src/xz/xz.1:2616 ../src/xz/xz.1:2617
+#: ../src/xz/xz.1:2619
+#, no-wrap
+msgid "4 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:763 ../src/xz/xz.1:3006
+#, no-wrap
+msgid "3"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:763 ../src/xz/xz.1:768 ../src/xz/xz.1:856 ../src/xz/xz.1:2621
+#: ../src/xz/xz.1:2622 ../src/xz/xz.1:2641
+#, no-wrap
+msgid "32 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:763 ../src/xz/xz.1:764 ../src/xz/xz.1:851 ../src/xz/xz.1:852
+#, no-wrap
+msgid "5 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:764 ../src/xz/xz.1:2617 ../src/xz/xz.1:2642
+#: ../src/xz/xz.1:3007
+#, no-wrap
+msgid "-4"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:764 ../src/xz/xz.1:1869 ../src/xz/xz.1:1871
+#: ../src/xz/xz.1:1872 ../src/xz/xz.1:1874 ../src/xz/xz.1:3007
+#, no-wrap
+msgid "4"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:764 ../src/xz/xz.1:851 ../src/xz/xz.1:852 ../src/xz/xz.1:2642
+#, no-wrap
+msgid "48 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:765 ../src/xz/xz.1:2618 ../src/xz/xz.1:2643
+#: ../src/xz/xz.1:3008
+#, no-wrap
+msgid "-5"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:765 ../src/xz/xz.1:766 ../src/xz/xz.1:853 ../src/xz/xz.1:854
+#: ../src/xz/xz.1:2618 ../src/xz/xz.1:2619 ../src/xz/xz.1:2620
+#, no-wrap
+msgid "8 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:765 ../src/xz/xz.1:3008
+#, no-wrap
+msgid "5"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:765 ../src/xz/xz.1:766 ../src/xz/xz.1:853 ../src/xz/xz.1:854
+#: ../src/xz/xz.1:2643 ../src/xz/xz.1:2644
+#, no-wrap
+msgid "94 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:766 ../src/xz/xz.1:2619 ../src/xz/xz.1:2644
+#: ../src/xz/xz.1:3009
+#, no-wrap
+msgid "-6"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:766 ../src/xz/xz.1:767 ../src/xz/xz.1:768 ../src/xz/xz.1:769
+#: ../src/xz/xz.1:3009
+#, no-wrap
+msgid "6"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:767 ../src/xz/xz.1:2620 ../src/xz/xz.1:2645
+#, no-wrap
+msgid "-7"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:767 ../src/xz/xz.1:855 ../src/xz/xz.1:2620
+#: ../src/xz/xz.1:2621 ../src/xz/xz.1:2642
+#, no-wrap
+msgid "16 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:767 ../src/xz/xz.1:855 ../src/xz/xz.1:2645
+#, no-wrap
+msgid "186 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:768 ../src/xz/xz.1:2621 ../src/xz/xz.1:2646
+#, no-wrap
+msgid "-8"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:768 ../src/xz/xz.1:856 ../src/xz/xz.1:2646
+#, no-wrap
+msgid "370 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:768 ../src/xz/xz.1:856
+#, no-wrap
+msgid "33 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:769 ../src/xz/xz.1:2622 ../src/xz/xz.1:2647
+#, no-wrap
+msgid "-9"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:769 ../src/xz/xz.1:857 ../src/xz/xz.1:2622
+#, no-wrap
+msgid "64 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:769 ../src/xz/xz.1:857 ../src/xz/xz.1:2647
+#, no-wrap
+msgid "674 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:769 ../src/xz/xz.1:857
+#, no-wrap
+msgid "65 MiB"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:775
+msgid "Column descriptions:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:787
+msgid ""
+"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 B<-7> ... B<-9> when there's no real need "
+"for them. At B<-6> and lower, the amount of memory wasted is usually low "
+"enough to not matter."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:796
+msgid ""
+"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 B<-6> ... B<-9>, higher levels still tend to be a "
+"little slower. To get even slower and thus possibly better compression, see "
+"B<--extreme>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:802
+msgid ""
+"CompMem contains the compressor memory requirements in the single-threaded "
+"mode. It may vary slightly between B<xz> versions."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:809
+msgid ""
+"DecMem contains the decompressor memory requirements. That is, the "
+"compression settings determine the memory requirements of the decompressor. "
+"The exact decompressor memory usage is slightly more than the LZMA2 "
+"dictionary size, but the values in the table have been rounded up to the "
+"next full MiB."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:819
+msgid ""
+"Memory requirements of the multi-threaded mode are significantly higher than "
+"that of the single-threaded mode. With the default value of "
+"B<--block-size>, each thread needs 3*3*DictSize plus CompMem or DecMem. For "
+"example, four threads with preset B<-6> needs 660\\(en670\\ MiB of memory."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:819
+#, no-wrap
+msgid "B<-e>, B<--extreme>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:828
+msgid ""
+"Use a slower variant of the selected compression preset level (B<-0> "
+"... B<-9>) to hopefully get a little bit better compression ratio, but with "
+"bad luck this can also make it worse. Decompressor memory usage is not "
+"affected, but compressor memory usage increases a little at preset levels "
+"B<-0> ... B<-3>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:840
+msgid ""
+"Since there are two presets with dictionary sizes 4\\ MiB and 8\\ MiB, the "
+"presets B<-3e> and B<-5e> use slightly faster settings (lower CompCPU) than "
+"B<-4e> and B<-6e>, respectively. That way no two presets are identical."
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:848
+#, no-wrap
+msgid "-0e"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:848 ../src/xz/xz.1:849 ../src/xz/xz.1:850 ../src/xz/xz.1:852
+#: ../src/xz/xz.1:854 ../src/xz/xz.1:855 ../src/xz/xz.1:856 ../src/xz/xz.1:857
+#: ../src/xz/xz.1:3011
+#, no-wrap
+msgid "8"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:849
+#, no-wrap
+msgid "-1e"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:849
+#, no-wrap
+msgid "13 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:850
+#, no-wrap
+msgid "-2e"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:850
+#, no-wrap
+msgid "25 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:851
+#, no-wrap
+msgid "-3e"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:851 ../src/xz/xz.1:853 ../src/xz/xz.1:3010
+#, no-wrap
+msgid "7"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:852
+#, no-wrap
+msgid "-4e"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:853 ../src/xz/xz.1:3010
+#, no-wrap
+msgid "-5e"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:854 ../src/xz/xz.1:3011
+#, no-wrap
+msgid "-6e"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:855
+#, no-wrap
+msgid "-7e"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:856
+#, no-wrap
+msgid "-8e"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:857
+#, no-wrap
+msgid "-9e"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:869
+msgid ""
+"For example, there are a total of four presets that use 8\\ MiB dictionary, "
+"whose order from the fastest to the slowest is B<-5>, B<-6>, B<-5e>, and "
+"B<-6e>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:869
+#, no-wrap
+msgid "B<--fast>"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:872
+#, no-wrap
+msgid "B<--best>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:883
+msgid ""
+"These are somewhat misleading aliases for B<-0> and B<-9>, respectively. "
+"These are provided only for backwards compatibility with LZMA Utils. Avoid "
+"using these options."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:883
+#, no-wrap
+msgid "B<--block-size=>I<size>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:896
+msgid ""
+"When compressing to the B<.xz> format, split the input data into blocks of "
+"I<size> bytes. The blocks are compressed independently from each other, "
+"which helps with multi-threading and makes limited random-access "
+"decompression possible. This option is typically used to override the "
+"default block size in multi-threaded mode, but this option can be used in "
+"single-threaded mode too."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:913
+msgid ""
+"In multi-threaded mode about three times I<size> bytes will be allocated in "
+"each thread for buffering input and output. The default I<size> is three "
+"times the LZMA2 dictionary size or 1 MiB, whichever is more. Typically a "
+"good value is 2\\(en4 times the size of the LZMA2 dictionary or at least 1 "
+"MiB. Using I<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 "
+"decompression."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:922
+msgid ""
+"In single-threaded mode no block splitting is done by default. Setting this "
+"option doesn't affect memory usage. No size information 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 B<xz> won't be able decompress the files in multi-threaded mode."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:922
+#, no-wrap
+msgid "B<--block-list=>I<items>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:928
+msgid ""
+"When compressing to the B<.xz> format, start a new block with an optional "
+"custom filter chain after the given intervals of uncompressed data."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:938
+msgid ""
+"The I<items> are a comma-separated list. Each item consists of an optional "
+"filter chain number between 0 and 9 followed by a colon (B<:>) 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."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:947
+msgid ""
+"If the input file is bigger than the sum of the sizes in I<items>, the last "
+"item is repeated until the end of the file. A special value of B<0> may be "
+"used as the last size to indicate that the rest of the file should be "
+"encoded as a single block."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:964
+msgid ""
+"An alternative filter chain for each block can be specified in combination "
+"with the B<--filters1=>I<filters> \\&...\\& B<--filters9=>I<filters> "
+"options. These options define filter chains with an identifier between "
+"1\\(en9. 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 uncompressed size, followed by a colon "
+"(B<:>). For example, if one specifies "
+"B<--block-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB> then blocks will be "
+"created using:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:969
+msgid "The filter chain specified by B<--filters1> and 2 MiB input"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:973
+msgid "The filter chain specified by B<--filters3> and 2 MiB input"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:977 ../src/xz/xz.1:981
+msgid "The filter chain specified by B<--filters2> and 4 MiB input"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:983
+msgid "The default filter chain and 2 MiB input"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:986
+msgid "The default filter chain and 4 MiB input for every block until end of input."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1000
+msgid ""
+"If one specifies a size that exceeds the encoder's block size (either the "
+"default value in threaded mode or the value specified with "
+"B<--block-size=>I<size>), the encoder will create additional blocks while "
+"keeping the boundaries specified in I<items>. For example, if one specifies "
+"B<--block-size=10MiB> B<--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."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1006
+msgid ""
+"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."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1006
+#, no-wrap
+msgid "B<--flush-timeout=>I<timeout>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1023
+msgid ""
+"When compressing, if more than I<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 B<xz> is used to compress data that is "
+"streamed over a network. Small I<timeout> values make the data available at "
+"the receiving end with a small delay, but large I<timeout> values give "
+"better compression ratio."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1031
+msgid ""
+"This feature is disabled by default. If this option is specified more than "
+"once, the last one takes effect. The special I<timeout> value of B<0> can "
+"be used to explicitly disable this feature."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1033
+msgid "This feature is not available on non-POSIX systems."
+msgstr ""
+
+#. FIXME
+#. type: Plain text
+#: ../src/xz/xz.1:1041
+msgid ""
+"B<This feature is still experimental.> Currently B<xz> is unsuitable for "
+"decompressing the stream in real time due to how B<xz> does buffering."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1041
+#, no-wrap
+msgid "B<--memlimit-compress=>I<limit>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1046
+msgid ""
+"Set a memory usage limit for compression. If this option is specified "
+"multiple times, the last one takes effect."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1059
+msgid ""
+"If the compression settings exceed the I<limit>, B<xz> will attempt to "
+"adjust the settings downwards so that the limit is no longer exceeded 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 "
+"I<limit>, and finally reducing the LZMA2 dictionary size."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1067
+msgid ""
+"When compressing with B<--format=raw> or if B<--no-adjust> has been "
+"specified, only the number of threads may be reduced since it can be done "
+"without affecting the compressed output."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1074
+msgid ""
+"If the I<limit> cannot be met even with the adjustments described above, an "
+"error is displayed and B<xz> will exit with exit status 1."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1078
+msgid "The I<limit> can be specified in multiple ways:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1088
+msgid ""
+"The I<limit> can be an absolute value in bytes. Using an integer suffix "
+"like B<MiB> can be useful. Example: B<--memlimit-compress=80MiB>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1100
+msgid ""
+"The I<limit> can be specified as a percentage of total physical memory "
+"(RAM). This can be useful especially when setting the B<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 memory. Example: B<--memlimit-compress=70%>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1110
+msgid ""
+"The I<limit> can be reset back to its default value by setting it to B<0>. "
+"This is currently equivalent to setting the I<limit> to B<max> (no memory "
+"usage limit)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1134
+msgid ""
+"For 32-bit B<xz> there is a special case: if the I<limit> would be over "
+"B<4020\\ MiB>, the I<limit> is set to B<4020\\ MiB>. On MIPS32 B<2000\\ "
+"MiB> is used instead. (The values B<0> and B<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."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1137
+msgid "See also the section B<Memory usage>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1137
+#, no-wrap
+msgid "B<--memlimit-decompress=>I<limit>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1151
+msgid ""
+"Set a memory usage limit for decompression. This also affects the B<--list> "
+"mode. If the operation is not possible without exceeding the I<limit>, "
+"B<xz> will display an error and decompressing the file will fail. See "
+"B<--memlimit-compress=>I<limit> for possible ways to specify the I<limit>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1151
+#, no-wrap
+msgid "B<--memlimit-mt-decompress=>I<limit>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1173
+msgid ""
+"Set a memory usage limit for multi-threaded decompression. This can only "
+"affect the number of threads; this will never make B<xz> refuse to "
+"decompress a file. If I<limit> is too low to allow any multi-threading, the "
+"I<limit> is ignored and B<xz> will continue in single-threaded mode. Note "
+"that if also B<--memlimit-decompress> is used, it will always apply to both "
+"single-threaded and multi-threaded modes, and so the effective I<limit> for "
+"multi-threading will never be higher than the limit set with "
+"B<--memlimit-decompress>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1180
+msgid ""
+"In contrast to the other memory usage limit options, "
+"B<--memlimit-mt-decompress=>I<limit> has a system-specific default "
+"I<limit>. B<xz --info-memory> can be used to see the current value."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1196
+msgid ""
+"This option and its default value exist because without any limit the "
+"threaded decompressor could end up allocating an insane amount of memory "
+"with some input files. If the default I<limit> is too low on your system, "
+"feel free to increase the I<limit> but never set it to a value larger than "
+"the amount of usable RAM as with appropriate input files B<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 performance."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1208
+msgid ""
+"See B<--memlimit-compress=>I<limit> for possible ways to specify the "
+"I<limit>. Setting I<limit> to B<0> resets the I<limit> to the default "
+"system-specific value."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1208
+#, no-wrap
+msgid "B<-M> I<limit>, B<--memlimit=>I<limit>, B<--memory=>I<limit>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1214
+msgid ""
+"This is equivalent to specifying B<--memlimit-compress=>I<limit> "
+"B<--memlimit-decompress=>I<limit> B<--memlimit-mt-decompress=>I<limit>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1214
+#, no-wrap
+msgid "B<--no-adjust>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1224
+msgid ""
+"Display an error and exit if the memory usage limit cannot be met without "
+"adjusting settings that affect the compressed output. That is, this "
+"prevents B<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."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1227
+msgid ""
+"Automatic adjusting is always disabled when creating raw streams "
+"(B<--format=raw>)."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1227
+#, no-wrap
+msgid "B<-T> I<threads>, B<--threads=>I<threads>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1242
+msgid ""
+"Specify the number of worker threads to use. Setting I<threads> to a "
+"special value B<0> makes B<xz> use up to as many threads as the processor(s) "
+"on the system support. The actual number of threads can be fewer than "
+"I<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."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1261
+msgid ""
+"The single-threaded and multi-threaded compressors produce different "
+"output. Single-threaded compressor will give the smallest file size but "
+"only the output from the multi-threaded compressor can be decompressed using "
+"multiple threads. Setting I<threads> to B<1> will use the single-threaded "
+"mode. Setting I<threads> to any other value, including B<0>, will use the "
+"multi-threaded compressor even if the system supports only one hardware "
+"thread. (B<xz> 5.2.x used single-threaded mode in this situation.)"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1280
+msgid ""
+"To use multi-threaded mode with only one thread, set I<threads> to B<+1>. "
+"The B<+> prefix has no effect with values other than B<1>. A memory usage "
+"limit can still make B<xz> switch to single-threaded mode unless "
+"B<--no-adjust> is used. Support for the B<+> prefix was added in B<xz> "
+"5.4.0."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1295
+msgid ""
+"If an automatic number of threads has been requested and no memory usage "
+"limit has been specified, then a system-specific default 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 B<xz> from compressing or decompressing. This default soft "
+"limit will not make B<xz> switch from multi-threaded mode to single-threaded "
+"mode. The active limits can be seen with B<xz --info-memory>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1302
+msgid ""
+"Currently the only threading method is to split the input into blocks and "
+"compress them independently from each other. The default block size depends "
+"on the compression level and can be overridden with the "
+"B<--block-size=>I<size> option."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1310
+msgid ""
+"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 B<--block-size=>I<size> has been used."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1319
+msgid ""
+"The default value for I<threads> is B<0>. In B<xz> 5.4.x and older the "
+"default is B<1>."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:1320 ../src/xz/xz.1:2982
+#, no-wrap
+msgid "Custom compressor filter chains"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1336
+msgid ""
+"A custom filter chain allows specifying the compression settings in detail "
+"instead of relying on the settings associated to the presets. When a custom "
+"filter chain is specified, preset options (B<-0> \\&...\\& B<-9> and "
+"B<--extreme>) earlier on the command line are forgotten. If a preset "
+"option 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."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1343
+msgid ""
+"A filter chain is comparable to piping on the command line. When "
+"compressing, 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 filters."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1351
+msgid ""
+"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. Depending on "
+"the filter, this limitation is either inherent to the filter design or "
+"exists to prevent security issues."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1374
+msgid ""
+"A custom filter chain can be specified in two different ways. The options "
+"B<--filters=>I<filters> and B<--filters1=>I<filters> \\&...\\& "
+"B<--filters9=>I<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 filter options is significant! When decoding raw streams "
+"(B<--format=raw>), the filter chain must be specified in the same order as "
+"it was specified when compressing. Any individual filter or preset options "
+"specified before the full chain option (B<--filters=>I<filters>) will be "
+"forgotten. Individual filters specified after the full chain option will "
+"reset the filter chain."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1383
+msgid ""
+"Both the full and individual filter options take filter-specific I<options> "
+"as a comma-separated list. Extra commas in I<options> are ignored. Every "
+"option has a default value, so specify those you want to change."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1392
+msgid ""
+"To see the whole filter chain and I<options>, use B<xz -vv> (that is, use "
+"B<--verbose> twice). This works also for viewing the filter chain options "
+"used by presets."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1392
+#, no-wrap
+msgid "B<--filters=>I<filters>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1413
+msgid ""
+"Specify the full filter chain or a preset in a single option. Each filter "
+"can be separated by spaces or two dashes (B<-->). I<filters> may need to be "
+"quoted on the shell command line so it is parsed as a single option. To "
+"denote I<options>, use B<:> or B<=>. A preset can be prefixed with a B<-> "
+"and followed with zero or more flags. The only supported flag is B<e> to "
+"apply the same options as B<--extreme>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1413
+#, no-wrap
+msgid "B<--filters1>=I<filters> ... B<--filters9>=I<filters>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1417
+msgid ""
+"Specify up to nine additional filter chains that can be used with "
+"B<--block-list>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1421
+msgid ""
+"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."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1421
+#, no-wrap
+msgid "B<--filters-help>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1431
+msgid ""
+"Display a help message describing how to specify presets and custom filter "
+"chains in the B<--filters> and B<--filters1=>I<filters> \\&...\\& "
+"B<--filters9=>I<filters> options, and exit successfully."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1431
+#, no-wrap
+msgid "B<--lzma1>[B<=>I<options>]"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1434
+#, no-wrap
+msgid "B<--lzma2>[B<=>I<options>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1439
+msgid ""
+"Add LZMA1 or LZMA2 filter to the filter chain. These filters can be used "
+"only as the last filter in the chain."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1451
+msgid ""
+"LZMA1 is a legacy filter, which is supported almost solely due to the legacy "
+"B<.lzma> file format, which supports only LZMA1. LZMA2 is an updated "
+"version of LZMA1 to fix some practical issues of LZMA1. The B<.xz> format "
+"uses LZMA2 and doesn't support LZMA1 at all. Compression speed and ratios "
+"of LZMA1 and LZMA2 are practically the same."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1454
+msgid "LZMA1 and LZMA2 share the same set of I<options>:"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1455
+#, no-wrap
+msgid "B<preset=>I<preset>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1482
+msgid ""
+"Reset all LZMA1 or LZMA2 I<options> to I<preset>. I<Preset> consist of an "
+"integer, which may be followed by single-letter preset modifiers. The "
+"integer can be from B<0> to B<9>, matching the command line options B<-0> "
+"\\&...\\& B<-9>. The only supported modifier is currently B<e>, which "
+"matches B<--extreme>. If no B<preset> is specified, the default values of "
+"LZMA1 or LZMA2 I<options> are taken from the preset B<6>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1482
+#, no-wrap
+msgid "B<dict=>I<size>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1497
+msgid ""
+"Dictionary (history buffer) I<size> indicates how many bytes of the "
+"recently processed uncompressed data is kept in memory. The algorithm tries "
+"to find repeating byte sequences (matches) in the uncompressed data, and "
+"replace them with references to the data currently in the dictionary. The "
+"bigger the dictionary, the higher is the chance to find a match. Thus, "
+"increasing dictionary I<size> usually improves compression ratio, but a "
+"dictionary bigger than the uncompressed file is waste of memory."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1506
+msgid ""
+"Typical dictionary I<size> is from 64\\ KiB to 64\\ MiB. The minimum is 4\\ "
+"KiB. The maximum for compression is currently 1.5\\ GiB (1536\\ MiB). The "
+"decompressor already supports dictionaries up to one byte less than 4\\ GiB, "
+"which is the maximum for the LZMA1 and LZMA2 stream formats."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1533
+msgid ""
+"Dictionary I<size> and match finder (I<mf>) together determine the memory "
+"usage of the LZMA1 or LZMA2 encoder. The same (or bigger) dictionary "
+"I<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 B<.xz> headers store the dictionary I<size> either as "
+"2^I<n> or 2^I<n> + 2^(I<n>-1), so these I<sizes> are somewhat preferred for "
+"compression. Other I<sizes> will get rounded up when stored in the B<.xz> "
+"headers."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1533
+#, no-wrap
+msgid "B<lc=>I<lc>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1542
+msgid ""
+"Specify the number of literal context bits. The minimum is 0 and the "
+"maximum is 4; the default is 3. In addition, the sum of I<lc> and I<lp> "
+"must not exceed 4."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1547
+msgid ""
+"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."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1561
+msgid ""
+"The literal coding makes an assumption that the highest I<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 "
+"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 I<lc> is at least "
+"3, the literal coding can take advantage of this property in the "
+"uncompressed data."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1570
+msgid ""
+"The default value (3) is usually good. If you want maximum compression, "
+"test B<lc=4>. Sometimes it helps a little, and sometimes it makes "
+"compression worse. If it makes it worse, test B<lc=2> too."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1570
+#, no-wrap
+msgid "B<lp=>I<lp>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1574
+msgid ""
+"Specify the number of literal position bits. The minimum is 0 and the "
+"maximum is 4; the default is 0."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1581
+msgid ""
+"I<Lp> affects what kind of alignment in the uncompressed data is assumed "
+"when encoding literals. See I<pb> below for more information about "
+"alignment."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1581
+#, no-wrap
+msgid "B<pb=>I<pb>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1585
+msgid ""
+"Specify the number of position bits. The minimum is 0 and the maximum is 4; "
+"the default is 2."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1592
+msgid ""
+"I<Pb> affects what kind of alignment in the uncompressed data is assumed in "
+"general. The default means four-byte alignment (2^I<pb>=2^2=4), which is "
+"often a good choice when there's no better guess."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1606
+msgid ""
+"When the alignment is known, setting I<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 B<pb=0> can improve compression "
+"slightly. For UTF-16 text, B<pb=1> is a good choice. If the alignment is "
+"an odd number like 3 bytes, B<pb=0> might be the best choice."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1614
+msgid ""
+"Even though the assumed alignment can be adjusted with I<pb> and I<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."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1614
+#, no-wrap
+msgid "B<mf=>I<mf>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1629
+msgid ""
+"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 I<preset>: 0 uses B<hc3>, "
+"1\\(en3 use B<hc4>, and the rest use B<bt4>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1635
+msgid ""
+"The following match finders are supported. The memory usage formulas below "
+"are rough approximations, which are closest to the reality when I<dict> is a "
+"power of two."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1636
+#, no-wrap
+msgid "B<hc3>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1639
+msgid "Hash Chain with 2- and 3-byte hashing"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1643 ../src/xz/xz.1:1692
+msgid "Minimum value for I<nice>: 3"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1645 ../src/xz/xz.1:1664 ../src/xz/xz.1:1694
+#: ../src/xz/xz.1:1713
+msgid "Memory usage:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1650
+msgid "I<dict> * 7.5 (if I<dict> E<lt>= 16 MiB);"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1655
+msgid "I<dict> * 5.5 + 64 MiB (if I<dict> E<gt> 16 MiB)"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1655
+#, no-wrap
+msgid "B<hc4>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1658
+msgid "Hash Chain with 2-, 3-, and 4-byte hashing"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1662 ../src/xz/xz.1:1711
+msgid "Minimum value for I<nice>: 4"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1669
+msgid "I<dict> * 7.5 (if I<dict> E<lt>= 32 MiB);"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1674
+msgid "I<dict> * 6.5 (if I<dict> E<gt> 32 MiB)"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1674
+#, no-wrap
+msgid "B<bt2>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1677
+msgid "Binary Tree with 2-byte hashing"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1681
+msgid "Minimum value for I<nice>: 2"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1685
+msgid "Memory usage: I<dict> * 9.5"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1685
+#, no-wrap
+msgid "B<bt3>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1688
+msgid "Binary Tree with 2- and 3-byte hashing"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1699
+msgid "I<dict> * 11.5 (if I<dict> E<lt>= 16 MiB);"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1704
+msgid "I<dict> * 9.5 + 64 MiB (if I<dict> E<gt> 16 MiB)"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1704
+#, no-wrap
+msgid "B<bt4>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1707
+msgid "Binary Tree with 2-, 3-, and 4-byte hashing"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1718
+msgid "I<dict> * 11.5 (if I<dict> E<lt>= 32 MiB);"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1723
+msgid "I<dict> * 10.5 (if I<dict> E<gt> 32 MiB)"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1724
+#, no-wrap
+msgid "B<mode=>I<mode>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1745
+msgid ""
+"Compression I<mode> specifies the method to analyze the data produced by the "
+"match finder. Supported I<modes> are B<fast> and B<normal>. The default is "
+"B<fast> for I<presets> 0\\(en3 and B<normal> for I<presets> 4\\(en9."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1754
+msgid ""
+"Usually B<fast> is used with Hash Chain match finders and B<normal> with "
+"Binary Tree match finders. This is also what the I<presets> do."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1754
+#, no-wrap
+msgid "B<nice=>I<nice>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1761
+msgid ""
+"Specify what is considered to be a nice length for a match. Once a match of "
+"at least I<nice> bytes is found, the algorithm stops looking for possibly "
+"better matches."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1768
+msgid ""
+"I<Nice> can be 2\\(en273 bytes. Higher values tend to give better "
+"compression ratio at the expense of speed. The default depends on the "
+"I<preset>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1768
+#, no-wrap
+msgid "B<depth=>I<depth>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1778
+msgid ""
+"Specify the maximum search depth in the match finder. The default is the "
+"special value of 0, which makes the compressor determine a reasonable "
+"I<depth> from I<mf> and I<nice>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1789
+msgid ""
+"Reasonable I<depth> for Hash Chains is 4\\(en100 and 16\\(en1000 for Binary "
+"Trees. Using very high values for I<depth> can make the encoder extremely "
+"slow with some files. Avoid setting the I<depth> over 1000 unless you are "
+"prepared to interrupt the compression in case it is taking far too long."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1800
+msgid ""
+"When decoding raw streams (B<--format=raw>), LZMA2 needs only the dictionary "
+"I<size>. LZMA1 needs also I<lc>, I<lp>, and I<pb>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1800
+#, no-wrap
+msgid "B<--x86>[B<=>I<options>]"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1803
+#, no-wrap
+msgid "B<--arm>[B<=>I<options>]"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1805
+#, no-wrap
+msgid "B<--armthumb>[B<=>I<options>]"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1807
+#, no-wrap
+msgid "B<--arm64>[B<=>I<options>]"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1809
+#, no-wrap
+msgid "B<--powerpc>[B<=>I<options>]"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1811
+#, no-wrap
+msgid "B<--ia64>[B<=>I<options>]"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1813
+#, no-wrap
+msgid "B<--sparc>[B<=>I<options>]"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1815
+#, no-wrap
+msgid "B<--riscv>[B<=>I<options>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1821
+msgid ""
+"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."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1835
+msgid ""
+"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\\(en15\\ % smaller "
+"B<.xz> file. The BCJ filters are always reversible, 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 "
+"insignificant amount of memory."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1838
+msgid "These BCJ filters have known problems related to the compression ratio:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1845
+msgid ""
+"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 conversion, which will make the compression worse with these files."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1855
+msgid ""
+"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."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1860
+msgid ""
+"Different instruction sets have different alignment: the executable file "
+"must be aligned to a multiple of this value in the input data to make the "
+"filter work."
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1867
+#, no-wrap
+msgid "Filter"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1867
+#, no-wrap
+msgid "Alignment"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1867
+#, no-wrap
+msgid "Notes"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1868
+#, no-wrap
+msgid "x86"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1868
+#, no-wrap
+msgid "32-bit or 64-bit x86"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1869
+#, no-wrap
+msgid "ARM"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1870
+#, no-wrap
+msgid "ARM-Thumb"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1871
+#, no-wrap
+msgid "ARM64"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1871
+#, no-wrap
+msgid "4096-byte alignment is best"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1872
+#, no-wrap
+msgid "PowerPC"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1872
+#, no-wrap
+msgid "Big endian only"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1873
+#, no-wrap
+msgid "IA-64"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1873
+#, no-wrap
+msgid "16"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1873
+#, no-wrap
+msgid "Itanium"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1874
+#, no-wrap
+msgid "SPARC"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:1875
+#, no-wrap
+msgid "RISC-V"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1885
+msgid ""
+"Since the BCJ-filtered data is usually compressed with LZMA2, the "
+"compression ratio may be improved slightly if the LZMA2 options are set to "
+"match the alignment of the selected BCJ filter. Examples:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1891
+msgid ""
+"IA-64 filter has 16-byte alignment so B<pb=4,lp=4,lc=0> is good with LZMA2 "
+"(2^4=16)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1906
+msgid ""
+"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, B<pb=2,lp=1,lc=3> or B<pb=1,lp=1,lc=3> is good. When "
+"16-bit instructions aren't present, B<pb=2,lp=2,lc=2> is the best. "
+"B<readelf -h> can be used to check if \"RVC\" appears on the \"Flags\" line."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1910
+msgid "ARM64 is always 4-byte aligned so B<pb=2,lp=2,lc=2> is the best."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1915
+msgid ""
+"The x86 filter is an exception. It's usually good to stick to LZMA2's "
+"defaults (B<pb=2,lp=0,lc=3>) when compressing x86 executables."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1919
+msgid "All BCJ filters support the same I<options>:"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1920
+#, no-wrap
+msgid "B<start=>I<offset>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1934
+msgid ""
+"Specify the start I<offset> that is used when converting between relative "
+"and absolute addresses. The I<offset> must be a multiple of the alignment "
+"of the filter (see the table above). The default is zero. In practice, the "
+"default is good; specifying a custom I<offset> is almost never useful."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1935
+#, no-wrap
+msgid "B<--delta>[B<=>I<options>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1940
+msgid ""
+"Add the Delta filter to the filter chain. The Delta filter can be only used "
+"as a non-last filter in the filter chain."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1949
+msgid ""
+"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 purpose algorithms may give "
+"significantly better results than Delta + LZMA2. This is true especially "
+"with audio, which compresses faster and better, for example, with "
+"B<flac>(1)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1952
+msgid "Supported I<options>:"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1953
+#, no-wrap
+msgid "B<dist=>I<distance>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1961
+msgid ""
+"Specify the I<distance> of the delta calculation in bytes. I<distance> must "
+"be 1\\(en256. The default is 1."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1966
+msgid ""
+"For example, with B<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."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:1968
+#, no-wrap
+msgid "Other options"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1969 ../src/xzdec/xzdec.1:81
+#, no-wrap
+msgid "B<-q>, B<--quiet>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1976
+msgid ""
+"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 indicate a warning is still used."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:1976
+#, no-wrap
+msgid "B<-v>, B<--verbose>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1985
+msgid ""
+"Be verbose. If standard error is connected to a terminal, B<xz> will "
+"display a progress indicator. Specifying B<--verbose> twice will give even "
+"more verbose output."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1987
+msgid "The progress indicator shows the following information:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1992
+msgid ""
+"Completion percentage is shown if the size of the input file is known. That "
+"is, the percentage cannot be shown in pipes."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1995
+msgid ""
+"Amount of compressed data produced (compressing) or consumed "
+"(decompressing)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:1998
+msgid ""
+"Amount of uncompressed data consumed (compressing) or produced "
+"(decompressing)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2002
+msgid ""
+"Compression ratio, which is calculated by dividing the amount of compressed "
+"data processed so far by the amount of uncompressed data processed so far."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2009
+msgid ""
+"Compression or decompression speed. This is measured as the amount of "
+"uncompressed data consumed (compression) or produced (decompression) per "
+"second. It is shown after a few seconds have passed since B<xz> started "
+"processing the file."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2011
+msgid "Elapsed time in the format M:SS or H:MM:SS."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2019
+msgid ""
+"Estimated remaining time is shown only when the size of the input file is "
+"known and a couple of seconds have already passed since B<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."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2034
+msgid ""
+"When standard error is not a terminal, B<--verbose> will make B<xz> print "
+"the filename, compressed size, uncompressed size, compression 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 "
+"completion percentage is printed if the size of the input file is known."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2034 ../src/xzdec/xzdec.1:87
+#, no-wrap
+msgid "B<-Q>, B<--no-warn>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2044
+msgid ""
+"Don't set the exit status to 2 even if a condition worth a warning was "
+"detected. This option doesn't affect the verbosity level, thus both "
+"B<--quiet> and B<--no-warn> have to be used to not display warnings and to "
+"not alter the exit status."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2044
+#, no-wrap
+msgid "B<--robot>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2056
+msgid ""
+"Print messages in a machine-parsable format. This is intended to ease "
+"writing frontends that want to use B<xz> instead of liblzma, which may be "
+"the case with various scripts. The output with this option enabled is meant "
+"to be stable across B<xz> releases. See the section B<ROBOT MODE> for "
+"details."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2056
+#, no-wrap
+msgid "B<--info-memory>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2063
+msgid ""
+"Display, in human-readable format, how much physical memory (RAM) and how "
+"many processor threads B<xz> thinks the system has and the memory usage "
+"limits for compression and decompression, and exit successfully."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2063 ../src/xzdec/xzdec.1:94
+#, no-wrap
+msgid "B<-h>, B<--help>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2067
+msgid ""
+"Display a help message describing the most commonly used options, and exit "
+"successfully."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2067
+#, no-wrap
+msgid "B<-H>, B<--long-help>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2072
+msgid ""
+"Display a help message describing all features of B<xz>, and exit "
+"successfully"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2072 ../src/xzdec/xzdec.1:97
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2081
+msgid ""
+"Display the version number of B<xz> and liblzma in human readable format. "
+"To get machine-parsable output, specify B<--robot> before B<--version>."
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:2082
+#, no-wrap
+msgid "ROBOT MODE"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2099
+msgid ""
+"The robot mode is activated with the B<--robot> option. It makes the output "
+"of B<xz> easier to parse by other programs. Currently B<--robot> is "
+"supported only together with B<--list>, B<--filters-help>, B<--info-memory>, "
+"and B<--version>. It will be supported for compression and decompression in "
+"the future."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2100
+#, no-wrap
+msgid "List mode"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2105
+msgid ""
+"B<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:"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2105
+#, no-wrap
+msgid "B<name>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2109
+msgid ""
+"This is always the first line when starting to list a file. The second "
+"column on the line is the filename."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2109
+#, no-wrap
+msgid "B<file>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2117
+msgid ""
+"This line contains overall information about the B<.xz> file. This line is "
+"always printed after the B<name> line."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2117
+#, no-wrap
+msgid "B<stream>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2127
+msgid ""
+"This line type is used only when B<--verbose> was specified. There are as "
+"many B<stream> lines as there are streams in the B<.xz> file."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2127
+#, no-wrap
+msgid "B<block>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2142
+msgid ""
+"This line type is used only when B<--verbose> was specified. There are as "
+"many B<block> lines as there are blocks in the B<.xz> file. The B<block> "
+"lines are shown after all the B<stream> lines; different line types are not "
+"interleaved."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2142
+#, no-wrap
+msgid "B<summary>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2157
+msgid ""
+"This line type is used only when B<--verbose> was specified twice. This "
+"line is printed after all B<block> lines. Like the B<file> line, the "
+"B<summary> line contains overall information about the B<.xz> file."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2157
+#, no-wrap
+msgid "B<totals>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2161
+msgid ""
+"This line is always the very last line of the list output. It shows the "
+"total counts and sizes."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2165
+msgid "The columns of the B<file> lines:"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2167 ../src/xz/xz.1:2204 ../src/xz/xz.1:2230
+#: ../src/xz/xz.1:2300 ../src/xz/xz.1:2327 ../src/xz/xz.1:2416
+#, no-wrap
+msgid "2."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2169
+msgid "Number of streams in the file"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2169 ../src/xz/xz.1:2206 ../src/xz/xz.1:2232
+#: ../src/xz/xz.1:2305 ../src/xz/xz.1:2329 ../src/xz/xz.1:2423
+#, no-wrap
+msgid "3."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2171
+msgid "Total number of blocks in the stream(s)"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2171 ../src/xz/xz.1:2208 ../src/xz/xz.1:2235
+#: ../src/xz/xz.1:2315 ../src/xz/xz.1:2331 ../src/xz/xz.1:2430
+#, no-wrap
+msgid "4."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2173
+msgid "Compressed size of the file"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2173 ../src/xz/xz.1:2210 ../src/xz/xz.1:2237
+#: ../src/xz/xz.1:2333 ../src/xz/xz.1:2442
+#, no-wrap
+msgid "5."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2175
+msgid "Uncompressed size of the file"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2175 ../src/xz/xz.1:2212 ../src/xz/xz.1:2239
+#: ../src/xz/xz.1:2335 ../src/xz/xz.1:2454
+#, no-wrap
+msgid "6."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2181
+msgid ""
+"Compression ratio, for example, B<0.123>. If ratio is over 9.999, three "
+"dashes (B<--->) are displayed instead of the ratio."
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2181 ../src/xz/xz.1:2214 ../src/xz/xz.1:2241
+#: ../src/xz/xz.1:2337
+#, no-wrap
+msgid "7."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2194
+msgid ""
+"Comma-separated list of integrity check names. The following strings are "
+"used for the known check types: B<None>, B<CRC32>, B<CRC64>, and "
+"B<SHA-256>. For unknown check types, B<Unknown->I<N> is used, where I<N> is "
+"the Check ID as a decimal number (one or two digits)."
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2194 ../src/xz/xz.1:2216 ../src/xz/xz.1:2243
+#: ../src/xz/xz.1:2340
+#, no-wrap
+msgid "8."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2196
+msgid "Total size of stream padding in the file"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2202
+msgid "The columns of the B<stream> lines:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2206
+msgid "Stream number (the first stream is 1)"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2208
+msgid "Number of blocks in the stream"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2210
+msgid "Compressed start offset"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2212
+msgid "Uncompressed start offset"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2214
+msgid "Compressed size (does not include stream padding)"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2216 ../src/xz/xz.1:2245 ../src/xz/xz.1:2335
+msgid "Uncompressed size"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2218 ../src/xz/xz.1:2247
+msgid "Compression ratio"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2218 ../src/xz/xz.1:2245 ../src/xz/xz.1:2342
+#, no-wrap
+msgid "9."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2220 ../src/xz/xz.1:2249
+msgid "Name of the integrity check"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2220 ../src/xz/xz.1:2247 ../src/xz/xz.1:2358
+#, no-wrap
+msgid "10."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2222
+msgid "Size of stream padding"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2228
+msgid "The columns of the B<block> lines:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2232
+msgid "Number of the stream containing this block"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2235
+msgid "Block number relative to the beginning of the stream (the first block is 1)"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2237
+msgid "Block number relative to the beginning of the file"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2239
+msgid "Compressed start offset relative to the beginning of the file"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2241
+msgid "Uncompressed start offset relative to the beginning of the file"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2243
+msgid "Total compressed size of the block (includes headers)"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2261
+msgid ""
+"If B<--verbose> was specified twice, additional columns are included on the "
+"B<block> lines. These are not displayed with a single B<--verbose>, because "
+"getting this information requires many seeks and can thus be slow:"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2263 ../src/xz/xz.1:2363
+#, no-wrap
+msgid "11."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2265
+msgid "Value of the integrity check in hexadecimal"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2265 ../src/xz/xz.1:2373
+#, no-wrap
+msgid "12."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2267
+msgid "Block header size"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2267
+#, no-wrap
+msgid "13."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2277
+msgid ""
+"Block flags: B<c> indicates that compressed size is present, and B<u> "
+"indicates that uncompressed size is present. If the flag is not set, a dash "
+"(B<->) is shown instead to keep the string length fixed. New flags may be "
+"added to the end of the string in the future."
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2277
+#, no-wrap
+msgid "14."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2280
+msgid ""
+"Size of the actual compressed data in the block (this excludes the block "
+"header, block padding, and check fields)"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2280
+#, no-wrap
+msgid "15."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2285
+msgid ""
+"Amount of memory (in bytes) required to decompress this block with this "
+"B<xz> version"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2285
+#, no-wrap
+msgid "16."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2292
+msgid ""
+"Filter chain. Note that most of the options used at compression time cannot "
+"be known, because only the options that are needed for decompression are "
+"stored in the B<.xz> headers."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2298
+msgid "The columns of the B<summary> lines:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2305
+msgid ""
+"Amount of memory (in bytes) required to decompress this file with this B<xz> "
+"version"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2311 ../src/xz/xz.1:2369
+msgid ""
+"B<yes> or B<no> indicating if all block headers have both compressed size "
+"and uncompressed size stored in them"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2315 ../src/xz/xz.1:2373
+msgid "I<Since> B<xz> I<5.1.2alpha:>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2319 ../src/xz/xz.1:2377
+msgid "Minimum B<xz> version required to decompress the file"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2325
+msgid "The columns of the B<totals> line:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2329
+msgid "Number of streams"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2331
+msgid "Number of blocks"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2333
+msgid "Compressed size"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2337
+msgid "Average compression ratio"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2340
+msgid "Comma-separated list of integrity check names that were present in the files"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2342
+msgid "Stream padding size"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2348
+msgid ""
+"Number of files. This is here to keep the order of the earlier columns the "
+"same as on B<file> lines."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2356
+msgid ""
+"If B<--verbose> was specified twice, additional columns are included on the "
+"B<totals> line:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2363
+msgid ""
+"Maximum amount of memory (in bytes) required to decompress the files with "
+"this B<xz> version"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2383
+msgid ""
+"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."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2384
+#, no-wrap
+msgid "Filters help"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2387
+msgid ""
+"B<xz --robot --filters-help> prints the supported filters in the following "
+"format:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2389
+msgid "I<filter>B<:>I<option>B<=E<lt>>I<value>B<E<gt>,>I<option>B<=E<lt>>I<value>B<E<gt>>..."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2389
+#, no-wrap
+msgid "I<filter>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2392
+msgid "Name of the filter"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2392
+#, no-wrap
+msgid "I<option>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2395
+msgid "Name of a filter specific option"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2395
+#, no-wrap
+msgid "I<value>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2408
+msgid ""
+"Numeric I<value> ranges appear as B<E<lt>>I<min>B<->I<max>B<E<gt>>. String "
+"I<value> choices are shown within B<E<lt> E<gt>> and separated by a B<|> "
+"character."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2410
+msgid "Each filter is printed on its own line."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2411
+#, no-wrap
+msgid "Memory limit information"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2414
+msgid ""
+"B<xz --robot --info-memory> prints a single line with multiple tab-separated "
+"columns:"
+msgstr ""
+
+#. type: IP
+#: ../src/xz/xz.1:2414
+#, no-wrap
+msgid "1."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2416
+msgid "Total amount of physical memory (RAM) in bytes."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2423
+msgid ""
+"Memory usage limit for compression in bytes (B<--memlimit-compress>). A "
+"special value of B<0> indicates the default setting which for "
+"single-threaded mode is the same as no limit."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2430
+msgid ""
+"Memory usage limit for decompression in bytes (B<--memlimit-decompress>). A "
+"special value of B<0> indicates the default setting which for "
+"single-threaded mode is the same as no limit."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2442
+msgid ""
+"Since B<xz> 5.3.4alpha: Memory usage for multi-threaded decompression in "
+"bytes (B<--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 "
+"B<--memlimit-mt-decompress>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2454
+msgid ""
+"Since B<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 (B<--threads=0>) and no memory usage limit has been "
+"specified (B<--memlimit-compress>). This is also used as the default value "
+"for B<--memlimit-mt-decompress>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2459
+msgid "Since B<xz> 5.3.4alpha: Number of available processor threads."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2463
+msgid ""
+"In the future, the output of B<xz --robot --info-memory> may have more "
+"columns, but never more than a single line."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2464
+#, no-wrap
+msgid "Version"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2469
+msgid ""
+"B<xz --robot --version> prints the version number of B<xz> and liblzma in "
+"the following format:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2471
+msgid "B<XZ_VERSION=>I<XYYYZZZS>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2473
+msgid "B<LIBLZMA_VERSION=>I<XYYYZZZS>"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2473
+#, no-wrap
+msgid "I<X>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2476
+msgid "Major version."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2476
+#, no-wrap
+msgid "I<YYY>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2481
+msgid ""
+"Minor version. Even numbers are stable. Odd numbers are alpha or beta "
+"versions."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2481
+#, no-wrap
+msgid "I<ZZZ>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2485
+msgid "Patch level for stable releases or just a counter for development releases."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2485
+#, no-wrap
+msgid "I<S>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2493
+msgid ""
+"Stability. 0 is alpha, 1 is beta, and 2 is stable. I<S> should be always 2 "
+"when I<YYY> is even."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2498
+msgid ""
+"I<XYYYZZZS> are the same on both lines if B<xz> and liblzma are from the "
+"same XZ Utils release."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2504
+msgid "Examples: 4.999.9beta is B<49990091> and 5.0.0 is B<50000002>."
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:2505 ../src/xzdec/xzdec.1:102 ../src/lzmainfo/lzmainfo.1:42
+#: ../src/scripts/xzdiff.1:79 ../src/scripts/xzgrep.1:110
+#, no-wrap
+msgid "EXIT STATUS"
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2506 ../src/xzdec/xzdec.1:103 ../src/lzmainfo/lzmainfo.1:43
+#, no-wrap
+msgid "B<0>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2509 ../src/lzmainfo/lzmainfo.1:46
+msgid "All is good."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2509 ../src/xzdec/xzdec.1:106 ../src/lzmainfo/lzmainfo.1:46
+#, no-wrap
+msgid "B<1>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2512 ../src/xzdec/xzdec.1:109 ../src/lzmainfo/lzmainfo.1:49
+msgid "An error occurred."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2512
+#, no-wrap
+msgid "B<2>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2516
+msgid "Something worth a warning occurred, but no actual errors occurred."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2519
+msgid ""
+"Notices (not warnings or errors) printed on standard error don't affect the "
+"exit status."
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:2520 ../src/scripts/xzgrep.1:124 ../src/scripts/xzless.1:50
+#: ../src/scripts/xzmore.1:52
+#, no-wrap
+msgid "ENVIRONMENT"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2533
+msgid ""
+"B<xz> parses space-separated lists of options from the environment variables "
+"B<XZ_DEFAULTS> and B<XZ_OPT>, in this order, before parsing the options from "
+"the command line. Note that only options are parsed from the environment "
+"variables; all non-options are silently ignored. Parsing is done with "
+"B<getopt_long>(3) which is used also for the command line arguments."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2533
+#, no-wrap
+msgid "B<XZ_DEFAULTS>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2542
+msgid ""
+"User-specific or system-wide default options. Typically this is set in a "
+"shell initialization script to enable B<xz>'s memory usage limiter by "
+"default. Excluding shell initialization scripts and similar special cases, "
+"scripts must never set or unset B<XZ_DEFAULTS>."
+msgstr ""
+
+#. type: TP
+#: ../src/xz/xz.1:2542
+#, no-wrap
+msgid "B<XZ_OPT>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2553
+msgid ""
+"This is for passing options to B<xz> when it is not possible to set the "
+"options directly on the B<xz> command line. This is the case when B<xz> is "
+"run by a script or tool, for example, GNU B<tar>(1):"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2559
+#, no-wrap
+msgid "CW<XZ_OPT=-2v tar caf foo.tar.xz foo>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2573
+msgid ""
+"Scripts may use B<XZ_OPT>, for example, to set script-specific default "
+"compression options. It is still recommended to allow users to override "
+"B<XZ_OPT> if that is reasonable. For example, in B<sh>(1) scripts one may "
+"use something like this:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2580
+#, no-wrap
+msgid ""
+"CW<XZ_OPT=${XZ_OPT-\"-7e\"}\n"
+"export XZ_OPT>\n"
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:2585
+#, no-wrap
+msgid "LZMA UTILS COMPATIBILITY"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2598
+msgid ""
+"The command line syntax of B<xz> is practically a superset of B<lzma>, "
+"B<unlzma>, and B<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."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2599
+#, no-wrap
+msgid "Compression preset levels"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2606
+msgid ""
+"The numbering of the compression level presets is not identical in B<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."
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2612 ../src/xz/xz.1:2637
+#, no-wrap
+msgid "Level"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2612 ../src/xz/xz.1:2637
+#, no-wrap
+msgid "xz"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2612
+#, no-wrap
+msgid "LZMA Utils"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2613 ../src/xz/xz.1:2638
+#, no-wrap
+msgid "N/A"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2614
+#, no-wrap
+msgid "64 KiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2616
+#, no-wrap
+msgid "512 KiB"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2631
+msgid ""
+"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:"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2637
+#, no-wrap
+msgid "LZMA Utils 4.32.x"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2640 ../src/xz/xz.1:2641
+#, no-wrap
+msgid "12 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2643
+#, no-wrap
+msgid "26 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2644
+#, no-wrap
+msgid "45 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2645
+#, no-wrap
+msgid "83 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2646
+#, no-wrap
+msgid "159 MiB"
+msgstr ""
+
+#. type: tbl table
+#: ../src/xz/xz.1:2647
+#, no-wrap
+msgid "311 MiB"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2656
+msgid ""
+"The default preset level in LZMA Utils is B<-7> while in XZ Utils it is "
+"B<-6>, so both use an 8 MiB dictionary by default."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2657
+#, no-wrap
+msgid "Streamed vs. non-streamed .lzma files"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2667
+msgid ""
+"The uncompressed size of the file can be stored in the B<.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."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2688
+msgid ""
+"B<xz> supports decompressing B<.lzma> files with or without end-of-payload "
+"marker, but all B<.lzma> files created by B<xz> will use end-of-payload "
+"marker and have uncompressed size marked as unknown in the B<.lzma> header. "
+"This may be a problem in some uncommon situations. For example, a B<.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 B<.lzma> files with known uncompressed size."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2689
+#, no-wrap
+msgid "Unsupported .lzma files"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2712
+msgid ""
+"The B<.lzma> format allows I<lc> values up to 8, and I<lp> values up to 4. "
+"LZMA Utils can decompress files with any I<lc> and I<lp>, but always creates "
+"files with B<lc=3> and B<lp=0>. Creating files with other I<lc> and I<lp> "
+"is possible with B<xz> and with LZMA SDK."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2723
+msgid ""
+"The implementation of the LZMA1 filter in liblzma requires that the sum of "
+"I<lc> and I<lp> must not exceed 4. Thus, B<.lzma> files, which exceed this "
+"limitation, cannot be decompressed with B<xz>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2738
+msgid ""
+"LZMA Utils creates only B<.lzma> files which have a dictionary size of "
+"2^I<n> (a power of 2) but accepts files with any dictionary size. liblzma "
+"accepts only B<.lzma> files which have a dictionary size of 2^I<n> or 2^I<n> "
+"+ 2^(I<n>-1). This is to decrease false positives when detecting B<.lzma> "
+"files."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2743
+msgid ""
+"These limitations shouldn't be a problem in practice, since practically all "
+"B<.lzma> files have been compressed with settings that liblzma will accept."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2744
+#, no-wrap
+msgid "Trailing garbage"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2754
+msgid ""
+"When decompressing, LZMA Utils silently ignore everything after the first "
+"B<.lzma> stream. In most situations, this is a bug. This also means that "
+"LZMA Utils don't support decompressing concatenated B<.lzma> files."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2764
+msgid ""
+"If there is data left after the first B<.lzma> stream, B<xz> considers the "
+"file to be corrupt unless B<--single-stream> was used. This may break "
+"obscure scripts which have assumed that trailing garbage is ignored."
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:2765 ../src/xzdec/xzdec.1:115
+#, no-wrap
+msgid "NOTES"
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2767
+#, no-wrap
+msgid "Compressed output may vary"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2778
+msgid ""
+"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 better "
+"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."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2788
+msgid ""
+"The above means that once B<--rsyncable> has been implemented, the resulting "
+"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 rsyncable output stable across "
+"xz versions."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2789
+#, no-wrap
+msgid "Embedded .xz decompressors"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2806
+msgid ""
+"Embedded B<.xz> decompressor implementations like XZ Embedded don't "
+"necessarily support files created with integrity I<check> types other than "
+"B<none> and B<crc32>. Since the default is B<--check=crc64>, you must use "
+"B<--check=none> or B<--check=crc32> when creating files for embedded "
+"systems."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2816
+msgid ""
+"Outside embedded systems, all B<.xz> format decompressors support all the "
+"I<check> types, or at least are able to decompress the file without "
+"verifying the integrity check if the particular I<check> is not supported."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2819
+msgid "XZ Embedded supports BCJ filters, but only with the default start offset."
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:2820
+#, no-wrap
+msgid "EXAMPLES"
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2822
+#, no-wrap
+msgid "Basics"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2832
+msgid ""
+"Compress the file I<foo> into I<foo.xz> using the default compression level "
+"(B<-6>), and remove I<foo> if compression is successful:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2837
+#, no-wrap
+msgid "CW<xz foo>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2848
+msgid ""
+"Decompress I<bar.xz> into I<bar> and don't remove I<bar.xz> even if "
+"decompression is successful:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2853
+#, no-wrap
+msgid "CW<xz -dk bar.xz>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2866
+msgid ""
+"Create I<baz.tar.xz> with the preset B<-4e> (B<-4 --extreme>), which is "
+"slower than the default B<-6>, but needs less memory for compression and "
+"decompression (48\\ MiB and 5\\ MiB, respectively):"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2871
+#, no-wrap
+msgid "CW<tar cf - baz | xz -4e E<gt> baz.tar.xz>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2877
+msgid ""
+"A mix of compressed and uncompressed files can be decompressed to standard "
+"output with a single command:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2882
+#, no-wrap
+msgid "CW<xz -dcf a.txt b.txt.xz c.txt d.txt.lzma E<gt> abcd.txt>\n"
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2886
+#, no-wrap
+msgid "Parallel compression of many files"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2892
+msgid ""
+"On GNU and *BSD, B<find>(1) and B<xargs>(1) can be used to parallelize "
+"compression of many files:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2898
+#, no-wrap
+msgid ""
+"CW<find . -type f \\e! -name '*.xz' -print0 \\e\n"
+" | xargs -0r -P4 -n16 xz -T1>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2920
+msgid ""
+"The B<-P> option to B<xargs>(1) sets the number of parallel B<xz> "
+"processes. The best value for the B<-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 B<xz> processes that B<xargs>(1) "
+"will eventually create."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2928
+msgid ""
+"The option B<-T1> for B<xz> is there to force it to single-threaded mode, "
+"because B<xargs>(1) is used to control the amount of parallelization."
+msgstr ""
+
+#. type: SS
+#: ../src/xz/xz.1:2929
+#, no-wrap
+msgid "Robot mode"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2932
+msgid ""
+"Calculate how many bytes have been saved in total after compressing multiple "
+"files:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2937
+#, no-wrap
+msgid "CW<xz --robot --list *.xz | awk '/^totals/{print $5-$4}'>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2952
+msgid ""
+"A script may want to know that it is using new enough B<xz>. The following "
+"B<sh>(1) script checks that the version number of the B<xz> tool is at "
+"least 5.0.0. This method is compatible with old beta versions, which didn't "
+"support the B<--robot> option:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2961
+#, no-wrap
+msgid ""
+"CW<if ! eval \"$(xz --robot --version 2E<gt> /dev/null)\" ||\n"
+" [ \"$XZ_VERSION\" -lt 50000002 ]; then\n"
+" echo \"Your xz is too old.\"\n"
+"fi\n"
+"unset XZ_VERSION LIBLZMA_VERSION>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2968
+msgid ""
+"Set a memory usage limit for decompression using B<XZ_OPT>, but if a limit "
+"has already been set, don't increase it:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2978
+#, no-wrap
+msgid ""
+"CW<NEWLIM=$((123 E<lt>E<lt> 20))\\ \\ # 123 MiB\n"
+"OLDLIM=$(xz --robot --info-memory | cut -f3)\n"
+"if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then\n"
+" XZ_OPT=\"$XZ_OPT --memlimit-decompress=$NEWLIM\"\n"
+" export XZ_OPT\n"
+"fi>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2988
+msgid ""
+"The simplest use for custom filter chains is customizing a LZMA2 preset. "
+"This can be useful, because the presets cover only a subset of the "
+"potentially useful combinations of compression settings."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:2996
+msgid ""
+"The CompCPU columns of the tables from the descriptions of the options B<-0> "
+"... B<-9> and B<--extreme> are useful when customizing LZMA2 presets. Here "
+"are the relevant parts collected from those two tables:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3021
+msgid ""
+"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 B<xz -8> "
+"would do, a preset with a low CompCPU value (for example, 1) can be "
+"modified to use a bigger dictionary:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3026
+#, no-wrap
+msgid "CW<xz --lzma2=preset=1,dict=32MiB foo.tar>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3042
+msgid ""
+"With certain files, the above command may be faster than B<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."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3049
+msgid ""
+"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 B<xz -9> would use:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3054
+#, no-wrap
+msgid "CW<xz -vv --lzma2=dict=192MiB big_foo.tar>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3067
+msgid ""
+"Using B<-vv> (B<--verbose --verbose>) like in the above example can be "
+"useful to see the memory requirements of the compressor and decompressor. "
+"Remember 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."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3079
+msgid ""
+"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 B<-6e> (B<-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 "
+"B<--check=crc32>) using about 100\\ KiB of memory."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3084
+#, no-wrap
+msgid "CW<xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3107
+msgid ""
+"If you want to squeeze out as many bytes as possible, adjusting the number "
+"of literal context bits (I<lc>) and number of position bits (I<pb>) can "
+"sometimes help. Adjusting the number of literal position bits (I<lp>) "
+"might help too, but usually I<lc> and I<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 B<xz "
+"-6e> (try also without B<lc=4>):"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3112
+#, no-wrap
+msgid "CW<xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3120
+msgid ""
+"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:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3125
+#, no-wrap
+msgid "CW<xz --x86 --lzma2 libfoo.so>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3139
+msgid ""
+"Note that the order of the filter options is significant. If B<--x86> is "
+"specified after B<--lzma2>, B<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."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3145
+msgid ""
+"The Delta filter together with LZMA2 can give good results with bitmap "
+"images. It should usually beat PNG, which has a few more advanced filters "
+"than simple delta but uses Deflate for the actual compression."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3155
+msgid ""
+"The image has to be saved in uncompressed format, for example, as "
+"uncompressed 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 B<dist=3>, and it is also good to pass B<pb=0> to LZMA2 to "
+"accommodate the three-byte alignment:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3160
+#, no-wrap
+msgid "CW<xz --delta=dist=3 --lzma2=pb=0 foo.tiff>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3168
+msgid ""
+"If multiple images have been put into a single archive (for example, "
+"B<.tar>), the Delta filter will work on that too as long as all images have "
+"the same number of bytes per pixel."
+msgstr ""
+
+#. type: SH
+#: ../src/xz/xz.1:3169 ../src/xzdec/xzdec.1:141 ../src/lzmainfo/lzmainfo.1:57
+#: ../src/scripts/xzdiff.1:88 ../src/scripts/xzgrep.1:136
+#: ../src/scripts/xzless.1:63 ../src/scripts/xzmore.1:61
+#, no-wrap
+msgid "SEE ALSO"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3178
+msgid ""
+"B<xzdec>(1), B<xzdiff>(1), B<xzgrep>(1), B<xzless>(1), B<xzmore>(1), "
+"B<gzip>(1), B<bzip2>(1), B<7z>(1)"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3180
+msgid "XZ Utils: E<lt>https://xz.tukaani.org/xz-utils/E<gt>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3182 ../src/xzdec/xzdec.1:144
+msgid "XZ Embedded: E<lt>https://xz.tukaani.org/xz-embedded/E<gt>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xz/xz.1:3183
+msgid "LZMA SDK: E<lt>https://7-zip.org/sdk.htmlE<gt>"
+msgstr ""
+
+#. type: TH
+#: ../src/xzdec/xzdec.1:5
+#, no-wrap
+msgid "XZDEC"
+msgstr ""
+
+#. type: TH
+#: ../src/xzdec/xzdec.1:5
+#, no-wrap
+msgid "2024-01-19"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:8
+msgid "xzdec, lzmadec - Small .xz and .lzma decompressors"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:12
+msgid "B<xzdec> [I<option...>] [I<file...>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:16
+msgid "B<lzmadec> [I<option...>] [I<file...>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:42
+msgid ""
+"B<xzdec> is a liblzma-based decompression-only tool for B<.xz> (and only "
+"B<.xz>) files. B<xzdec> is intended to work as a drop-in replacement for "
+"B<xz>(1) in the most common situations where a script has been written to "
+"use B<xz --decompress --stdout> (and possibly a few other commonly used "
+"options) to decompress B<.xz> files. B<lzmadec> is identical to B<xzdec> "
+"except that B<lzmadec> supports B<.lzma> files instead of B<.xz> files."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:59
+msgid ""
+"To reduce the size of the executable, B<xzdec> doesn't support "
+"multithreading or localization, and doesn't read options from B<XZ_DEFAULTS> "
+"and B<XZ_OPT> environment variables. B<xzdec> doesn't support displaying "
+"intermediate progress information: sending B<SIGINFO> to B<xzdec> does "
+"nothing, but sending B<SIGUSR1> terminates the process instead of displaying "
+"progress information."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:67
+msgid "Ignored for B<xz>(1) compatibility. B<xzdec> supports only decompression."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:74
+msgid ""
+"Ignored for B<xz>(1) compatibility. B<xzdec> never creates or removes any "
+"files."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:81
+msgid ""
+"Ignored for B<xz>(1) compatibility. B<xzdec> always writes the "
+"decompressed data to standard output."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:87
+msgid ""
+"Specifying this once does nothing since B<xzdec> never displays any warnings "
+"or notices. Specify this twice to suppress errors."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:94
+msgid "Ignored for B<xz>(1) compatibility. B<xzdec> never uses the exit status 2."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:97
+msgid "Display a help message and exit successfully."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:102
+msgid "Display the version number of B<xzdec> and liblzma."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:106
+msgid "All was good."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:115
+msgid ""
+"B<xzdec> doesn't have any warning messages like B<xz>(1) has, thus the exit "
+"status 2 is not used by B<xzdec>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:129
+msgid ""
+"Use B<xz>(1) instead of B<xzdec> or B<lzmadec> for normal everyday use. "
+"B<xzdec> or B<lzmadec> are meant only for situations where it is important "
+"to have a smaller decompressor than the full-featured B<xz>(1)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:141
+msgid ""
+"B<xzdec> and B<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 "
+"B<.xz> decompressor, consider using XZ Embedded."
+msgstr ""
+
+#. type: Plain text
+#: ../src/xzdec/xzdec.1:143 ../src/lzmainfo/lzmainfo.1:58
+msgid "B<xz>(1)"
+msgstr ""
+
+#. type: TH
+#: ../src/lzmainfo/lzmainfo.1:5
+#, no-wrap
+msgid "LZMAINFO"
+msgstr ""
+
+#. type: TH
+#: ../src/lzmainfo/lzmainfo.1:5
+#, no-wrap
+msgid "2013-06-30"
+msgstr ""
+
+#. type: Plain text
+#: ../src/lzmainfo/lzmainfo.1:8
+msgid "lzmainfo - show information stored in the .lzma file header"
+msgstr ""
+
+#. type: Plain text
+#: ../src/lzmainfo/lzmainfo.1:13
+msgid "B<lzmainfo> [B<--help>] [B<--version>] [I<file...>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/lzmainfo/lzmainfo.1:29
+msgid ""
+"B<lzmainfo> shows information stored in the B<.lzma> file header. It reads "
+"the first 13 bytes from the specified I<file>, decodes the header, and "
+"prints it to standard output in human readable format. If no I<files> are "
+"given or I<file> is B<->, standard input is read."
+msgstr ""
+
+#. type: Plain text
+#: ../src/lzmainfo/lzmainfo.1:38
+msgid ""
+"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 B<.lzma> format variant. The amount of memory required to "
+"decompress the file is a few dozen kilobytes plus the dictionary size."
+msgstr ""
+
+#. type: Plain text
+#: ../src/lzmainfo/lzmainfo.1:42
+msgid ""
+"B<lzmainfo> is included in XZ Utils primarily for backward compatibility "
+"with LZMA Utils."
+msgstr ""
+
+#. type: SH
+#: ../src/lzmainfo/lzmainfo.1:49
+#, no-wrap
+msgid "BUGS"
+msgstr ""
+
+#. type: Plain text
+#: ../src/lzmainfo/lzmainfo.1:57
+msgid ""
+"B<lzmainfo> uses B<MB> while the correct suffix would be B<MiB> (2^20 "
+"bytes). This is to keep the output compatible with LZMA Utils."
+msgstr ""
+
+#. type: TH
+#: ../src/scripts/xzdiff.1:8
+#, no-wrap
+msgid "XZDIFF"
+msgstr ""
+
+#. type: TH
+#: ../src/scripts/xzdiff.1:8 ../src/scripts/xzgrep.1:8
+#, no-wrap
+msgid "2024-02-13"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:11
+msgid "xzcmp, xzdiff, lzcmp, lzdiff - compare compressed files"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:17
+msgid "B<xzcmp> [I<option...>] I<file1> [I<file2>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:20
+msgid "B<xzdiff> \\&..."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:23
+msgid "B<lzcmp> \\&..."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:26
+msgid "B<lzdiff> \\&..."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:41
+msgid ""
+"B<xzcmp> and B<xzdiff> compare uncompressed contents of two files. "
+"Uncompressed data and options are passed to B<cmp>(1) or B<diff>(1) unless "
+"B<--help> or B<--version> is specified."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:64
+msgid ""
+"If both I<file1> and I<file2> are specified, they can be uncompressed files "
+"or files in formats that B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), "
+"B<zstd>(1), or B<lz4>(1) can decompress. The required decompression "
+"commands are determined from the filename suffixes of I<file1> and "
+"I<file2>. A file with an unknown suffix is assumed to be either "
+"uncompressed or in a format that B<xz>(1) can decompress."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:72
+msgid ""
+"If only one filename is provided, I<file1> must have a suffix of a supported "
+"compression format and the name for I<file2> is assumed to be I<file1> with "
+"the compression format suffix removed."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:78
+msgid ""
+"The commands B<lzcmp> and B<lzdiff> are provided for backward compatibility "
+"with LZMA Utils."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:87
+msgid ""
+"If a decompression error occurs, the exit status is B<2>. Otherwise the "
+"exit status of B<cmp>(1) or B<diff>(1) is used."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzdiff.1:96
+msgid ""
+"B<cmp>(1), B<diff>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), "
+"B<zstd>(1), B<lz4>(1)"
+msgstr ""
+
+#. type: TH
+#: ../src/scripts/xzgrep.1:8
+#, no-wrap
+msgid "XZGREP"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:11
+msgid "xzgrep - search possibly-compressed files for patterns"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:17
+msgid "B<xzgrep> [I<option...>] [I<pattern_list>] [I<file...>]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:20
+msgid "B<xzegrep> \\&..."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:23
+msgid "B<xzfgrep> \\&..."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:26
+msgid "B<lzgrep> \\&..."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:29
+msgid "B<lzegrep> \\&..."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:32
+msgid "B<lzfgrep> \\&..."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:53
+msgid ""
+"B<xzgrep> invokes B<grep>(1) on uncompressed contents of files. The "
+"formats of the I<files> are determined from the filename suffixes. Any "
+"I<file> with a suffix supported by B<xz>(1), B<gzip>(1), B<bzip2>(1), "
+"B<lzop>(1), B<zstd>(1), or B<lz4>(1) will be decompressed; all other files "
+"are assumed to be uncompressed."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:65
+msgid ""
+"If no I<files> are specified or I<file> is B<-> then standard input is "
+"read. When reading from standard input, only files supported by B<xz>(1) "
+"are decompressed. Other files are assumed to be in uncompressed form "
+"already."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:72
+msgid ""
+"Most I<options> of B<grep>(1) are supported. However, the following "
+"options are not supported:"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:75
+msgid "B<-r>, B<--recursive>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:78
+msgid "B<-R>, B<--dereference-recursive>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:81
+msgid "B<-d>, B<--directories=>I<action>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:84
+msgid "B<-Z>, B<--null>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:87
+msgid "B<-z>, B<--null-data>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:89
+msgid "B<--include=>I<glob>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:91
+msgid "B<--exclude=>I<glob>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:93
+msgid "B<--exclude-from=>I<file>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:95
+msgid "B<--exclude-dir=>I<glob>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:102
+msgid ""
+"B<xzegrep> is an alias for B<xzgrep -E>. B<xzfgrep> is an alias for "
+"B<xzgrep -F>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:109
+msgid ""
+"The commands B<lzgrep>, B<lzegrep>, and B<lzfgrep> are provided for backward "
+"compatibility with LZMA Utils."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:115
+msgid ""
+"At least one match was found from at least one of the input files. No "
+"errors occurred."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:119
+msgid "No matches were found from any of the input files. No errors occurred."
+msgstr ""
+
+#. type: TP
+#: ../src/scripts/xzgrep.1:119
+#, no-wrap
+msgid "E<gt>1"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:123
+msgid "One or more errors occurred. It is unknown if matches were found."
+msgstr ""
+
+#. type: TP
+#: ../src/scripts/xzgrep.1:125
+#, no-wrap
+msgid "B<GREP>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:135
+msgid ""
+"If B<GREP> is set to a non-empty value, it is used instead of B<grep>, "
+"B<grep -E>, or B<grep -F>."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzgrep.1:144
+msgid ""
+"B<grep>(1), B<xz>(1), B<gzip>(1), B<bzip2>(1), B<lzop>(1), B<zstd>(1), "
+"B<lz4>(1), B<zgrep>(1)"
+msgstr ""
+
+#. type: TH
+#: ../src/scripts/xzless.1:8
+#, no-wrap
+msgid "XZLESS"
+msgstr ""
+
+#. type: TH
+#: ../src/scripts/xzless.1:8 ../src/scripts/xzmore.1:8
+#, no-wrap
+msgid "2024-02-12"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:11
+msgid "xzless, lzless - view xz or lzma compressed (text) files"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:14
+msgid "B<xzless> [I<file>...]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:17
+msgid "B<lzless> [I<file>...]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:29
+msgid ""
+"B<xzless> is a filter that displays text from compressed files to a "
+"terminal. Files supported by B<xz>(1) are decompressed; other files are "
+"assumed to be in uncompressed form already. If no I<files> are given, "
+"B<xzless> reads from standard input."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:46
+msgid ""
+"B<xzless> uses B<less>(1) to present its output. Unlike B<xzmore>, its "
+"choice of pager cannot be altered by setting an environment variable. "
+"Commands are based on both B<more>(1) and B<vi>(1) and allow back and "
+"forth movement and searching. See the B<less>(1) manual for more "
+"information."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:50
+msgid ""
+"The command named B<lzless> is provided for backward compatibility with LZMA "
+"Utils."
+msgstr ""
+
+#. type: TP
+#: ../src/scripts/xzless.1:51
+#, no-wrap
+msgid "B<LESSMETACHARS>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:57
+msgid ""
+"A list of characters special to the shell. Set by B<xzless> unless it is "
+"already set in the environment."
+msgstr ""
+
+#. type: TP
+#: ../src/scripts/xzless.1:57
+#, no-wrap
+msgid "B<LESSOPEN>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:63
+msgid ""
+"Set to a command line to invoke the B<xz>(1) decompressor for preprocessing "
+"the input files to B<less>(1)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzless.1:67
+msgid "B<less>(1), B<xz>(1), B<xzmore>(1), B<zless>(1)"
+msgstr ""
+
+#. type: TH
+#: ../src/scripts/xzmore.1:8
+#, no-wrap
+msgid "XZMORE"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:11
+msgid "xzmore, lzmore - view xz or lzma compressed (text) files"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:15
+msgid "B<xzmore> [I<file>...]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:18
+msgid "B<lzmore> [I<file>...]"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:35
+msgid ""
+"B<xzmore> displays text from compressed files to a terminal using "
+"B<more>(1). Files supported by B<xz>(1) are decompressed; other files are "
+"assumed to be in uncompressed form already. If no I<files> are given, "
+"B<xzmore> reads from standard input. See the B<more>(1) manual for the "
+"keyboard commands."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:47
+msgid ""
+"Note that scrolling backwards might not be possible depending on the "
+"implementation of B<more>(1). This is because B<xzmore> uses a pipe to pass "
+"the decompressed data to B<more>(1). B<xzless>(1) uses B<less>(1) which "
+"provides more advanced features."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:51
+msgid ""
+"The command B<lzmore> is provided for backward compatibility with LZMA "
+"Utils."
+msgstr ""
+
+#. type: TP
+#: ../src/scripts/xzmore.1:53
+#, no-wrap
+msgid "B<PAGER>"
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:60
+msgid "If B<PAGER> is set, its value is used as the pager instead of B<more>(1)."
+msgstr ""
+
+#. type: Plain text
+#: ../src/scripts/xzmore.1:65
+msgid "B<more>(1), B<xz>(1), B<xzless>(1), B<zmore>(1)"
+msgstr ""
diff --git a/src/Makefile.in b/src/Makefile.in
new file mode 100644
index 00000000..73e7a2a7
--- /dev/null
+++ b/src/Makefile.in
@@ -0,0 +1,697 @@
+# 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_XZ_TRUE@am__append_1 = xz
+@COND_LZMAINFO_TRUE@am__append_2 = lzmainfo
+@COND_SCRIPTS_TRUE@am__append_3 = scripts
+subdir = src
+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 =
+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
+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 \
+ distdir distdir-am
+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)`
+DIST_SUBDIRS = liblzma xzdec xz lzmainfo scripts
+am__DIST_COMMON = $(srcdir)/Makefile.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+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"
+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@
+SUBDIRS = liblzma xzdec $(am__append_1) $(am__append_2) \
+ $(am__append_3)
+EXTRA_DIST = \
+ common/common_w32res.rc \
+ common/mythread.h \
+ common/sysdefs.h \
+ common/tuklib_common.h \
+ common/tuklib_config.h \
+ common/tuklib_cpucores.c \
+ common/tuklib_cpucores.h \
+ common/tuklib_exit.c \
+ common/tuklib_exit.h \
+ common/tuklib_gettext.h \
+ common/tuklib_integer.h \
+ common/tuklib_mbstr_fw.c \
+ common/tuklib_mbstr.h \
+ common/tuklib_mbstr_width.c \
+ common/tuklib_open_stdxxx.c \
+ common/tuklib_open_stdxxx.h \
+ common/tuklib_physmem.c \
+ common/tuklib_physmem.h \
+ common/tuklib_progname.c \
+ common/tuklib_progname.h
+
+all: all-recursive
+
+.SUFFIXES:
+$(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 src/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/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):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+# 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"
+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
+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
+ @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
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+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."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+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 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:
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+ check-am clean clean-generic clean-libtool cscopelist-am ctags \
+ ctags-am distclean 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 \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean 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/src/liblzma/Makefile.in b/src/liblzma/Makefile.in
new file mode 100644
index 00000000..ed41196b
--- /dev/null
+++ b/src/liblzma/Makefile.in
@@ -0,0 +1,2252 @@
+# 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_SYMVERS_GENERIC_TRUE@am__append_1 = \
+@COND_SYMVERS_GENERIC_TRUE@ -Wl,--version-script=$(top_srcdir)/src/liblzma/liblzma_generic.map
+
+@COND_SYMVERS_LINUX_TRUE@am__append_2 = \
+@COND_SYMVERS_LINUX_TRUE@ -Wl,--version-script=$(top_srcdir)/src/liblzma/liblzma_linux.map
+
+@COND_THREADS_TRUE@am__append_3 = ../common/tuklib_cpucores.c
+@COND_THREADS_TRUE@am__append_4 = \
+@COND_THREADS_TRUE@ common/hardware_cputhreads.c \
+@COND_THREADS_TRUE@ common/outqueue.c \
+@COND_THREADS_TRUE@ common/outqueue.h
+
+@COND_MAIN_ENCODER_TRUE@am__append_5 = \
+@COND_MAIN_ENCODER_TRUE@ common/alone_encoder.c \
+@COND_MAIN_ENCODER_TRUE@ common/block_buffer_encoder.c \
+@COND_MAIN_ENCODER_TRUE@ common/block_buffer_encoder.h \
+@COND_MAIN_ENCODER_TRUE@ common/block_encoder.c \
+@COND_MAIN_ENCODER_TRUE@ common/block_encoder.h \
+@COND_MAIN_ENCODER_TRUE@ common/block_header_encoder.c \
+@COND_MAIN_ENCODER_TRUE@ common/easy_buffer_encoder.c \
+@COND_MAIN_ENCODER_TRUE@ common/easy_encoder.c \
+@COND_MAIN_ENCODER_TRUE@ common/easy_encoder_memusage.c \
+@COND_MAIN_ENCODER_TRUE@ common/filter_buffer_encoder.c \
+@COND_MAIN_ENCODER_TRUE@ common/filter_encoder.c \
+@COND_MAIN_ENCODER_TRUE@ common/filter_encoder.h \
+@COND_MAIN_ENCODER_TRUE@ common/filter_flags_encoder.c \
+@COND_MAIN_ENCODER_TRUE@ common/index_encoder.c \
+@COND_MAIN_ENCODER_TRUE@ common/index_encoder.h \
+@COND_MAIN_ENCODER_TRUE@ common/stream_buffer_encoder.c \
+@COND_MAIN_ENCODER_TRUE@ common/stream_encoder.c \
+@COND_MAIN_ENCODER_TRUE@ common/stream_flags_encoder.c \
+@COND_MAIN_ENCODER_TRUE@ common/vli_encoder.c
+
+@COND_MAIN_ENCODER_TRUE@@COND_THREADS_TRUE@am__append_6 = \
+@COND_MAIN_ENCODER_TRUE@@COND_THREADS_TRUE@ common/stream_encoder_mt.c
+
+@COND_MAIN_ENCODER_TRUE@@COND_MICROLZMA_TRUE@am__append_7 = \
+@COND_MAIN_ENCODER_TRUE@@COND_MICROLZMA_TRUE@ common/microlzma_encoder.c
+
+@COND_MAIN_DECODER_TRUE@am__append_8 = \
+@COND_MAIN_DECODER_TRUE@ common/alone_decoder.c \
+@COND_MAIN_DECODER_TRUE@ common/alone_decoder.h \
+@COND_MAIN_DECODER_TRUE@ common/auto_decoder.c \
+@COND_MAIN_DECODER_TRUE@ common/block_buffer_decoder.c \
+@COND_MAIN_DECODER_TRUE@ common/block_decoder.c \
+@COND_MAIN_DECODER_TRUE@ common/block_decoder.h \
+@COND_MAIN_DECODER_TRUE@ common/block_header_decoder.c \
+@COND_MAIN_DECODER_TRUE@ common/easy_decoder_memusage.c \
+@COND_MAIN_DECODER_TRUE@ common/file_info.c \
+@COND_MAIN_DECODER_TRUE@ common/filter_buffer_decoder.c \
+@COND_MAIN_DECODER_TRUE@ common/filter_decoder.c \
+@COND_MAIN_DECODER_TRUE@ common/filter_decoder.h \
+@COND_MAIN_DECODER_TRUE@ common/filter_flags_decoder.c \
+@COND_MAIN_DECODER_TRUE@ common/index_decoder.c \
+@COND_MAIN_DECODER_TRUE@ common/index_decoder.h \
+@COND_MAIN_DECODER_TRUE@ common/index_hash.c \
+@COND_MAIN_DECODER_TRUE@ common/stream_buffer_decoder.c \
+@COND_MAIN_DECODER_TRUE@ common/stream_decoder.c \
+@COND_MAIN_DECODER_TRUE@ common/stream_decoder.h \
+@COND_MAIN_DECODER_TRUE@ common/stream_flags_decoder.c \
+@COND_MAIN_DECODER_TRUE@ common/vli_decoder.c
+
+@COND_MAIN_DECODER_TRUE@@COND_THREADS_TRUE@am__append_9 = \
+@COND_MAIN_DECODER_TRUE@@COND_THREADS_TRUE@ common/stream_decoder_mt.c
+
+@COND_MAIN_DECODER_TRUE@@COND_MICROLZMA_TRUE@am__append_10 = \
+@COND_MAIN_DECODER_TRUE@@COND_MICROLZMA_TRUE@ common/microlzma_decoder.c
+
+@COND_LZIP_DECODER_TRUE@@COND_MAIN_DECODER_TRUE@am__append_11 = \
+@COND_LZIP_DECODER_TRUE@@COND_MAIN_DECODER_TRUE@ common/lzip_decoder.c \
+@COND_LZIP_DECODER_TRUE@@COND_MAIN_DECODER_TRUE@ common/lzip_decoder.h
+
+@COND_SMALL_TRUE@am__append_12 = check/crc32_small.c
+@COND_SMALL_FALSE@am__append_13 = \
+@COND_SMALL_FALSE@ check/crc32_table.c \
+@COND_SMALL_FALSE@ check/crc32_table_le.h \
+@COND_SMALL_FALSE@ check/crc32_table_be.h
+
+@COND_ASM_X86_TRUE@@COND_SMALL_FALSE@am__append_14 = check/crc32_x86.S
+@COND_ASM_X86_FALSE@@COND_SMALL_FALSE@am__append_15 = check/crc32_fast.c
+@COND_CHECK_CRC64_TRUE@@COND_SMALL_TRUE@am__append_16 = check/crc64_small.c
+@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@am__append_17 = \
+@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@ check/crc64_table.c \
+@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@ check/crc64_table_le.h \
+@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@ check/crc64_table_be.h
+
+@COND_ASM_X86_TRUE@@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@am__append_18 = check/crc64_x86.S
+@COND_ASM_X86_FALSE@@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@am__append_19 = check/crc64_fast.c
+@COND_CHECK_SHA256_TRUE@@COND_INTERNAL_SHA256_TRUE@am__append_20 = check/sha256.c
+@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@am__append_21 = \
+@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@ lz/lz_encoder.c \
+@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@ lz/lz_encoder.h \
+@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@ lz/lz_encoder_hash.h \
+@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@ lz/lz_encoder_hash_table.h \
+@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@ lz/lz_encoder_mf.c
+
+@COND_DECODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@am__append_22 = \
+@COND_DECODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@ lz/lz_decoder.c \
+@COND_DECODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@ lz/lz_decoder.h
+
+@COND_FILTER_LZMA1_TRUE@am__append_23 = lzma/fastpos_tablegen.c \
+@COND_FILTER_LZMA1_TRUE@ rangecoder/price_tablegen.c
+@COND_FILTER_LZMA1_TRUE@am__append_24 = \
+@COND_FILTER_LZMA1_TRUE@ lzma/lzma_common.h \
+@COND_FILTER_LZMA1_TRUE@ lzma/lzma_encoder_presets.c
+
+@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__append_25 = \
+@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@ lzma/fastpos.h \
+@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@ lzma/lzma_encoder.h \
+@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@ lzma/lzma_encoder.c \
+@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@ lzma/lzma_encoder_private.h \
+@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@ lzma/lzma_encoder_optimum_fast.c \
+@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@ lzma/lzma_encoder_optimum_normal.c
+
+@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@@COND_SMALL_FALSE@am__append_26 = lzma/fastpos_table.c
+@COND_DECODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__append_27 = \
+@COND_DECODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@ lzma/lzma_decoder.c \
+@COND_DECODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@ lzma/lzma_decoder.h
+
+@COND_ENCODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@am__append_28 = \
+@COND_ENCODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@ lzma/lzma2_encoder.c \
+@COND_ENCODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@ lzma/lzma2_encoder.h
+
+@COND_DECODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@am__append_29 = \
+@COND_DECODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@ lzma/lzma2_decoder.c \
+@COND_DECODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@ lzma/lzma2_decoder.h
+
+@COND_FILTER_LZMA1_TRUE@am__append_30 = rangecoder/range_common.h
+@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__append_31 = \
+@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@ rangecoder/range_encoder.h \
+@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@ rangecoder/price.h \
+@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@ rangecoder/price_table.c
+
+@COND_DECODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__append_32 = rangecoder/range_decoder.h
+@COND_FILTER_DELTA_TRUE@am__append_33 = \
+@COND_FILTER_DELTA_TRUE@ delta/delta_common.c \
+@COND_FILTER_DELTA_TRUE@ delta/delta_common.h \
+@COND_FILTER_DELTA_TRUE@ delta/delta_private.h
+
+@COND_ENCODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@am__append_34 = \
+@COND_ENCODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@ delta/delta_encoder.c \
+@COND_ENCODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@ delta/delta_encoder.h
+
+@COND_DECODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@am__append_35 = \
+@COND_DECODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@ delta/delta_decoder.c \
+@COND_DECODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@ delta/delta_decoder.h
+
+@COND_FILTER_SIMPLE_TRUE@am__append_36 = \
+@COND_FILTER_SIMPLE_TRUE@ simple/simple_coder.c \
+@COND_FILTER_SIMPLE_TRUE@ simple/simple_coder.h \
+@COND_FILTER_SIMPLE_TRUE@ simple/simple_private.h
+
+@COND_ENCODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_37 = \
+@COND_ENCODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@ simple/simple_encoder.c \
+@COND_ENCODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@ simple/simple_encoder.h
+
+@COND_DECODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_38 = \
+@COND_DECODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@ simple/simple_decoder.c \
+@COND_DECODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@ simple/simple_decoder.h
+
+@COND_FILTER_SIMPLE_TRUE@@COND_FILTER_X86_TRUE@am__append_39 = simple/x86.c
+@COND_FILTER_POWERPC_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_40 = simple/powerpc.c
+@COND_FILTER_IA64_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_41 = simple/ia64.c
+@COND_FILTER_ARM_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_42 = simple/arm.c
+@COND_FILTER_ARMTHUMB_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_43 = simple/armthumb.c
+@COND_FILTER_ARM64_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_44 = simple/arm64.c
+@COND_FILTER_SIMPLE_TRUE@@COND_FILTER_SPARC_TRUE@am__append_45 = simple/sparc.c
+@COND_FILTER_RISCV_TRUE@@COND_FILTER_SIMPLE_TRUE@am__append_46 = simple/riscv.c
+@COND_W32_TRUE@am__append_47 = liblzma.def liblzma.def.in empty.c
+@COND_W32_TRUE@am__append_48 = liblzma_w32res.rc
+@COND_W32_TRUE@am__append_49 = -Xlinker --output-def -Xlinker liblzma.def.in
+@COND_SHARED_TRUE@@COND_W32_TRUE@am__append_50 = liblzma.def
+subdir = src/liblzma
+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 =
+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)$(libdir)" "$(DESTDIR)$(docdir)" \
+ "$(DESTDIR)$(pkgconfigdir)"
+LTLIBRARIES = $(lib_LTLIBRARIES)
+liblzma_la_LIBADD =
+am__liblzma_la_SOURCES_DIST = ../common/tuklib_physmem.c \
+ ../common/tuklib_cpucores.c common/common.c common/common.h \
+ common/memcmplen.h common/block_util.c common/easy_preset.c \
+ common/easy_preset.h common/filter_common.c \
+ common/filter_common.h common/hardware_physmem.c \
+ common/index.c common/index.h common/stream_flags_common.c \
+ common/stream_flags_common.h common/string_conversion.c \
+ common/vli_size.c common/hardware_cputhreads.c \
+ common/outqueue.c common/outqueue.h common/alone_encoder.c \
+ common/block_buffer_encoder.c common/block_buffer_encoder.h \
+ common/block_encoder.c common/block_encoder.h \
+ common/block_header_encoder.c common/easy_buffer_encoder.c \
+ common/easy_encoder.c common/easy_encoder_memusage.c \
+ common/filter_buffer_encoder.c common/filter_encoder.c \
+ common/filter_encoder.h common/filter_flags_encoder.c \
+ common/index_encoder.c common/index_encoder.h \
+ common/stream_buffer_encoder.c common/stream_encoder.c \
+ common/stream_flags_encoder.c common/vli_encoder.c \
+ common/stream_encoder_mt.c common/microlzma_encoder.c \
+ common/alone_decoder.c common/alone_decoder.h \
+ common/auto_decoder.c common/block_buffer_decoder.c \
+ common/block_decoder.c common/block_decoder.h \
+ common/block_header_decoder.c common/easy_decoder_memusage.c \
+ common/file_info.c common/filter_buffer_decoder.c \
+ common/filter_decoder.c common/filter_decoder.h \
+ common/filter_flags_decoder.c common/index_decoder.c \
+ common/index_decoder.h common/index_hash.c \
+ common/stream_buffer_decoder.c common/stream_decoder.c \
+ common/stream_decoder.h common/stream_flags_decoder.c \
+ common/vli_decoder.c common/stream_decoder_mt.c \
+ common/microlzma_decoder.c common/lzip_decoder.c \
+ common/lzip_decoder.h check/check.c check/check.h \
+ check/crc_common.h check/crc_x86_clmul.h check/crc32_arm64.h \
+ check/crc32_small.c check/crc32_table.c check/crc32_table_le.h \
+ check/crc32_table_be.h check/crc32_x86.S check/crc32_fast.c \
+ check/crc64_small.c check/crc64_table.c check/crc64_table_le.h \
+ check/crc64_table_be.h check/crc64_x86.S check/crc64_fast.c \
+ check/sha256.c lz/lz_encoder.c lz/lz_encoder.h \
+ lz/lz_encoder_hash.h lz/lz_encoder_hash_table.h \
+ lz/lz_encoder_mf.c lz/lz_decoder.c lz/lz_decoder.h \
+ lzma/lzma_common.h lzma/lzma_encoder_presets.c lzma/fastpos.h \
+ lzma/lzma_encoder.h lzma/lzma_encoder.c \
+ lzma/lzma_encoder_private.h lzma/lzma_encoder_optimum_fast.c \
+ lzma/lzma_encoder_optimum_normal.c lzma/fastpos_table.c \
+ lzma/lzma_decoder.c lzma/lzma_decoder.h lzma/lzma2_encoder.c \
+ lzma/lzma2_encoder.h lzma/lzma2_decoder.c lzma/lzma2_decoder.h \
+ rangecoder/range_common.h rangecoder/range_encoder.h \
+ rangecoder/price.h rangecoder/price_table.c \
+ rangecoder/range_decoder.h delta/delta_common.c \
+ delta/delta_common.h delta/delta_private.h \
+ delta/delta_encoder.c delta/delta_encoder.h \
+ delta/delta_decoder.c delta/delta_decoder.h \
+ simple/simple_coder.c simple/simple_coder.h \
+ simple/simple_private.h simple/simple_encoder.c \
+ simple/simple_encoder.h simple/simple_decoder.c \
+ simple/simple_decoder.h simple/x86.c simple/powerpc.c \
+ simple/ia64.c simple/arm.c simple/armthumb.c simple/arm64.c \
+ simple/sparc.c simple/riscv.c liblzma_w32res.rc
+@COND_THREADS_TRUE@am__objects_1 = liblzma_la-tuklib_cpucores.lo
+@COND_THREADS_TRUE@am__objects_2 = liblzma_la-hardware_cputhreads.lo \
+@COND_THREADS_TRUE@ liblzma_la-outqueue.lo
+@COND_MAIN_ENCODER_TRUE@am__objects_3 = liblzma_la-alone_encoder.lo \
+@COND_MAIN_ENCODER_TRUE@ liblzma_la-block_buffer_encoder.lo \
+@COND_MAIN_ENCODER_TRUE@ liblzma_la-block_encoder.lo \
+@COND_MAIN_ENCODER_TRUE@ liblzma_la-block_header_encoder.lo \
+@COND_MAIN_ENCODER_TRUE@ liblzma_la-easy_buffer_encoder.lo \
+@COND_MAIN_ENCODER_TRUE@ liblzma_la-easy_encoder.lo \
+@COND_MAIN_ENCODER_TRUE@ liblzma_la-easy_encoder_memusage.lo \
+@COND_MAIN_ENCODER_TRUE@ liblzma_la-filter_buffer_encoder.lo \
+@COND_MAIN_ENCODER_TRUE@ liblzma_la-filter_encoder.lo \
+@COND_MAIN_ENCODER_TRUE@ liblzma_la-filter_flags_encoder.lo \
+@COND_MAIN_ENCODER_TRUE@ liblzma_la-index_encoder.lo \
+@COND_MAIN_ENCODER_TRUE@ liblzma_la-stream_buffer_encoder.lo \
+@COND_MAIN_ENCODER_TRUE@ liblzma_la-stream_encoder.lo \
+@COND_MAIN_ENCODER_TRUE@ liblzma_la-stream_flags_encoder.lo \
+@COND_MAIN_ENCODER_TRUE@ liblzma_la-vli_encoder.lo
+@COND_MAIN_ENCODER_TRUE@@COND_THREADS_TRUE@am__objects_4 = liblzma_la-stream_encoder_mt.lo
+@COND_MAIN_ENCODER_TRUE@@COND_MICROLZMA_TRUE@am__objects_5 = liblzma_la-microlzma_encoder.lo
+@COND_MAIN_DECODER_TRUE@am__objects_6 = liblzma_la-alone_decoder.lo \
+@COND_MAIN_DECODER_TRUE@ liblzma_la-auto_decoder.lo \
+@COND_MAIN_DECODER_TRUE@ liblzma_la-block_buffer_decoder.lo \
+@COND_MAIN_DECODER_TRUE@ liblzma_la-block_decoder.lo \
+@COND_MAIN_DECODER_TRUE@ liblzma_la-block_header_decoder.lo \
+@COND_MAIN_DECODER_TRUE@ liblzma_la-easy_decoder_memusage.lo \
+@COND_MAIN_DECODER_TRUE@ liblzma_la-file_info.lo \
+@COND_MAIN_DECODER_TRUE@ liblzma_la-filter_buffer_decoder.lo \
+@COND_MAIN_DECODER_TRUE@ liblzma_la-filter_decoder.lo \
+@COND_MAIN_DECODER_TRUE@ liblzma_la-filter_flags_decoder.lo \
+@COND_MAIN_DECODER_TRUE@ liblzma_la-index_decoder.lo \
+@COND_MAIN_DECODER_TRUE@ liblzma_la-index_hash.lo \
+@COND_MAIN_DECODER_TRUE@ liblzma_la-stream_buffer_decoder.lo \
+@COND_MAIN_DECODER_TRUE@ liblzma_la-stream_decoder.lo \
+@COND_MAIN_DECODER_TRUE@ liblzma_la-stream_flags_decoder.lo \
+@COND_MAIN_DECODER_TRUE@ liblzma_la-vli_decoder.lo
+@COND_MAIN_DECODER_TRUE@@COND_THREADS_TRUE@am__objects_7 = liblzma_la-stream_decoder_mt.lo
+@COND_MAIN_DECODER_TRUE@@COND_MICROLZMA_TRUE@am__objects_8 = liblzma_la-microlzma_decoder.lo
+@COND_LZIP_DECODER_TRUE@@COND_MAIN_DECODER_TRUE@am__objects_9 = liblzma_la-lzip_decoder.lo
+@COND_SMALL_TRUE@am__objects_10 = liblzma_la-crc32_small.lo
+@COND_SMALL_FALSE@am__objects_11 = liblzma_la-crc32_table.lo
+@COND_ASM_X86_TRUE@@COND_SMALL_FALSE@am__objects_12 = \
+@COND_ASM_X86_TRUE@@COND_SMALL_FALSE@ liblzma_la-crc32_x86.lo
+@COND_ASM_X86_FALSE@@COND_SMALL_FALSE@am__objects_13 = liblzma_la-crc32_fast.lo
+@COND_CHECK_CRC64_TRUE@@COND_SMALL_TRUE@am__objects_14 = liblzma_la-crc64_small.lo
+@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@am__objects_15 = liblzma_la-crc64_table.lo
+@COND_ASM_X86_TRUE@@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@am__objects_16 = liblzma_la-crc64_x86.lo
+@COND_ASM_X86_FALSE@@COND_CHECK_CRC64_TRUE@@COND_SMALL_FALSE@am__objects_17 = liblzma_la-crc64_fast.lo
+@COND_CHECK_SHA256_TRUE@@COND_INTERNAL_SHA256_TRUE@am__objects_18 = liblzma_la-sha256.lo
+@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@am__objects_19 = liblzma_la-lz_encoder.lo \
+@COND_ENCODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@ liblzma_la-lz_encoder_mf.lo
+@COND_DECODER_LZ_TRUE@@COND_FILTER_LZ_TRUE@am__objects_20 = liblzma_la-lz_decoder.lo
+@COND_FILTER_LZMA1_TRUE@am__objects_21 = \
+@COND_FILTER_LZMA1_TRUE@ liblzma_la-lzma_encoder_presets.lo
+@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__objects_22 = liblzma_la-lzma_encoder.lo \
+@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@ liblzma_la-lzma_encoder_optimum_fast.lo \
+@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@ liblzma_la-lzma_encoder_optimum_normal.lo
+@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@@COND_SMALL_FALSE@am__objects_23 = liblzma_la-fastpos_table.lo
+@COND_DECODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__objects_24 = liblzma_la-lzma_decoder.lo
+@COND_ENCODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@am__objects_25 = liblzma_la-lzma2_encoder.lo
+@COND_DECODER_LZMA2_TRUE@@COND_FILTER_LZMA1_TRUE@am__objects_26 = liblzma_la-lzma2_decoder.lo
+am__objects_27 =
+@COND_ENCODER_LZMA1_TRUE@@COND_FILTER_LZMA1_TRUE@am__objects_28 = liblzma_la-price_table.lo
+@COND_FILTER_DELTA_TRUE@am__objects_29 = liblzma_la-delta_common.lo
+@COND_ENCODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@am__objects_30 = liblzma_la-delta_encoder.lo
+@COND_DECODER_DELTA_TRUE@@COND_FILTER_DELTA_TRUE@am__objects_31 = liblzma_la-delta_decoder.lo
+@COND_FILTER_SIMPLE_TRUE@am__objects_32 = liblzma_la-simple_coder.lo
+@COND_ENCODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_33 = liblzma_la-simple_encoder.lo
+@COND_DECODER_SIMPLE_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_34 = liblzma_la-simple_decoder.lo
+@COND_FILTER_SIMPLE_TRUE@@COND_FILTER_X86_TRUE@am__objects_35 = liblzma_la-x86.lo
+@COND_FILTER_POWERPC_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_36 = liblzma_la-powerpc.lo
+@COND_FILTER_IA64_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_37 = liblzma_la-ia64.lo
+@COND_FILTER_ARM_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_38 = liblzma_la-arm.lo
+@COND_FILTER_ARMTHUMB_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_39 = liblzma_la-armthumb.lo
+@COND_FILTER_ARM64_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_40 = liblzma_la-arm64.lo
+@COND_FILTER_SIMPLE_TRUE@@COND_FILTER_SPARC_TRUE@am__objects_41 = liblzma_la-sparc.lo
+@COND_FILTER_RISCV_TRUE@@COND_FILTER_SIMPLE_TRUE@am__objects_42 = liblzma_la-riscv.lo
+@COND_W32_TRUE@am__objects_43 = liblzma_w32res.lo
+am_liblzma_la_OBJECTS = liblzma_la-tuklib_physmem.lo $(am__objects_1) \
+ liblzma_la-common.lo liblzma_la-block_util.lo \
+ liblzma_la-easy_preset.lo liblzma_la-filter_common.lo \
+ liblzma_la-hardware_physmem.lo liblzma_la-index.lo \
+ liblzma_la-stream_flags_common.lo \
+ liblzma_la-string_conversion.lo liblzma_la-vli_size.lo \
+ $(am__objects_2) $(am__objects_3) $(am__objects_4) \
+ $(am__objects_5) $(am__objects_6) $(am__objects_7) \
+ $(am__objects_8) $(am__objects_9) liblzma_la-check.lo \
+ $(am__objects_10) $(am__objects_11) $(am__objects_12) \
+ $(am__objects_13) $(am__objects_14) $(am__objects_15) \
+ $(am__objects_16) $(am__objects_17) $(am__objects_18) \
+ $(am__objects_19) $(am__objects_20) $(am__objects_21) \
+ $(am__objects_22) $(am__objects_23) $(am__objects_24) \
+ $(am__objects_25) $(am__objects_26) $(am__objects_27) \
+ $(am__objects_28) $(am__objects_27) $(am__objects_29) \
+ $(am__objects_30) $(am__objects_31) $(am__objects_32) \
+ $(am__objects_33) $(am__objects_34) $(am__objects_35) \
+ $(am__objects_36) $(am__objects_37) $(am__objects_38) \
+ $(am__objects_39) $(am__objects_40) $(am__objects_41) \
+ $(am__objects_42) $(am__objects_43)
+liblzma_la_OBJECTS = $(am_liblzma_la_OBJECTS)
+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 =
+liblzma_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(liblzma_la_LDFLAGS) $(LDFLAGS) -o $@
+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)/liblzma_la-alone_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-alone_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-arm.Plo \
+ ./$(DEPDIR)/liblzma_la-arm64.Plo \
+ ./$(DEPDIR)/liblzma_la-armthumb.Plo \
+ ./$(DEPDIR)/liblzma_la-auto_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-block_buffer_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-block_buffer_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-block_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-block_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-block_header_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-block_header_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-block_util.Plo \
+ ./$(DEPDIR)/liblzma_la-check.Plo \
+ ./$(DEPDIR)/liblzma_la-common.Plo \
+ ./$(DEPDIR)/liblzma_la-crc32_fast.Plo \
+ ./$(DEPDIR)/liblzma_la-crc32_small.Plo \
+ ./$(DEPDIR)/liblzma_la-crc32_table.Plo \
+ ./$(DEPDIR)/liblzma_la-crc32_x86.Plo \
+ ./$(DEPDIR)/liblzma_la-crc64_fast.Plo \
+ ./$(DEPDIR)/liblzma_la-crc64_small.Plo \
+ ./$(DEPDIR)/liblzma_la-crc64_table.Plo \
+ ./$(DEPDIR)/liblzma_la-crc64_x86.Plo \
+ ./$(DEPDIR)/liblzma_la-delta_common.Plo \
+ ./$(DEPDIR)/liblzma_la-delta_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-delta_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-easy_buffer_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-easy_decoder_memusage.Plo \
+ ./$(DEPDIR)/liblzma_la-easy_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-easy_encoder_memusage.Plo \
+ ./$(DEPDIR)/liblzma_la-easy_preset.Plo \
+ ./$(DEPDIR)/liblzma_la-fastpos_table.Plo \
+ ./$(DEPDIR)/liblzma_la-file_info.Plo \
+ ./$(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-filter_buffer_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-filter_common.Plo \
+ ./$(DEPDIR)/liblzma_la-filter_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-filter_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-filter_flags_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-filter_flags_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-hardware_cputhreads.Plo \
+ ./$(DEPDIR)/liblzma_la-hardware_physmem.Plo \
+ ./$(DEPDIR)/liblzma_la-ia64.Plo \
+ ./$(DEPDIR)/liblzma_la-index.Plo \
+ ./$(DEPDIR)/liblzma_la-index_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-index_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-index_hash.Plo \
+ ./$(DEPDIR)/liblzma_la-lz_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-lz_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-lz_encoder_mf.Plo \
+ ./$(DEPDIR)/liblzma_la-lzip_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-lzma2_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-lzma2_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-lzma_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-lzma_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Plo \
+ ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Plo \
+ ./$(DEPDIR)/liblzma_la-lzma_encoder_presets.Plo \
+ ./$(DEPDIR)/liblzma_la-microlzma_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-microlzma_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-outqueue.Plo \
+ ./$(DEPDIR)/liblzma_la-powerpc.Plo \
+ ./$(DEPDIR)/liblzma_la-price_table.Plo \
+ ./$(DEPDIR)/liblzma_la-riscv.Plo \
+ ./$(DEPDIR)/liblzma_la-sha256.Plo \
+ ./$(DEPDIR)/liblzma_la-simple_coder.Plo \
+ ./$(DEPDIR)/liblzma_la-simple_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-simple_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-sparc.Plo \
+ ./$(DEPDIR)/liblzma_la-stream_buffer_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-stream_buffer_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-stream_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-stream_decoder_mt.Plo \
+ ./$(DEPDIR)/liblzma_la-stream_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-stream_encoder_mt.Plo \
+ ./$(DEPDIR)/liblzma_la-stream_flags_common.Plo \
+ ./$(DEPDIR)/liblzma_la-stream_flags_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-stream_flags_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-string_conversion.Plo \
+ ./$(DEPDIR)/liblzma_la-tuklib_cpucores.Plo \
+ ./$(DEPDIR)/liblzma_la-tuklib_physmem.Plo \
+ ./$(DEPDIR)/liblzma_la-vli_decoder.Plo \
+ ./$(DEPDIR)/liblzma_la-vli_encoder.Plo \
+ ./$(DEPDIR)/liblzma_la-vli_size.Plo \
+ ./$(DEPDIR)/liblzma_la-x86.Plo
+am__mv = mv -f
+CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
+LTCPPASCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CCASFLAGS) $(CCASFLAGS)
+AM_V_CPPAS = $(am__v_CPPAS_@AM_V@)
+am__v_CPPAS_ = $(am__v_CPPAS_@AM_DEFAULT_V@)
+am__v_CPPAS_0 = @echo " CPPAS " $@;
+am__v_CPPAS_1 =
+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 = $(liblzma_la_SOURCES)
+DIST_SOURCES = $(am__liblzma_la_SOURCES_DIST)
+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
+DATA = $(doc_DATA) $(pkgconfig_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 \
+ distdir distdir-am
+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)`
+DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/check/Makefile.inc \
+ $(srcdir)/common/Makefile.inc $(srcdir)/delta/Makefile.inc \
+ $(srcdir)/lz/Makefile.inc $(srcdir)/lzma/Makefile.inc \
+ $(srcdir)/rangecoder/Makefile.inc \
+ $(srcdir)/simple/Makefile.inc $(top_srcdir)/build-aux/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+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"
+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@
+SUBDIRS = api
+EXTRA_DIST = liblzma_generic.map liblzma_linux.map validate_map.sh \
+ check/crc32_tablegen.c check/crc64_tablegen.c $(am__append_23) \
+ liblzma.pc.in
+CLEANFILES = $(am__append_47)
+doc_DATA = $(am__append_50)
+lib_LTLIBRARIES = liblzma.la
+liblzma_la_SOURCES = ../common/tuklib_physmem.c $(am__append_3) \
+ common/common.c common/common.h common/memcmplen.h \
+ common/block_util.c common/easy_preset.c common/easy_preset.h \
+ common/filter_common.c common/filter_common.h \
+ common/hardware_physmem.c common/index.c common/index.h \
+ common/stream_flags_common.c common/stream_flags_common.h \
+ common/string_conversion.c common/vli_size.c $(am__append_4) \
+ $(am__append_5) $(am__append_6) $(am__append_7) \
+ $(am__append_8) $(am__append_9) $(am__append_10) \
+ $(am__append_11) check/check.c check/check.h \
+ check/crc_common.h check/crc_x86_clmul.h check/crc32_arm64.h \
+ $(am__append_12) $(am__append_13) $(am__append_14) \
+ $(am__append_15) $(am__append_16) $(am__append_17) \
+ $(am__append_18) $(am__append_19) $(am__append_20) \
+ $(am__append_21) $(am__append_22) $(am__append_24) \
+ $(am__append_25) $(am__append_26) $(am__append_27) \
+ $(am__append_28) $(am__append_29) $(am__append_30) \
+ $(am__append_31) $(am__append_32) $(am__append_33) \
+ $(am__append_34) $(am__append_35) $(am__append_36) \
+ $(am__append_37) $(am__append_38) $(am__append_39) \
+ $(am__append_40) $(am__append_41) $(am__append_42) \
+ $(am__append_43) $(am__append_44) $(am__append_45) \
+ $(am__append_46) $(am__append_48)
+liblzma_la_CPPFLAGS = \
+ -I$(top_srcdir)/src/liblzma/api \
+ -I$(top_srcdir)/src/liblzma/common \
+ -I$(top_srcdir)/src/liblzma/check \
+ -I$(top_srcdir)/src/liblzma/lz \
+ -I$(top_srcdir)/src/liblzma/rangecoder \
+ -I$(top_srcdir)/src/liblzma/lzma \
+ -I$(top_srcdir)/src/liblzma/delta \
+ -I$(top_srcdir)/src/liblzma/simple \
+ -I$(top_srcdir)/src/common \
+ -DTUKLIB_SYMBOL_PREFIX=lzma_
+
+liblzma_la_LDFLAGS = -no-undefined -version-info 11:1:6 \
+ $(am__append_1) $(am__append_2) $(am__append_49)
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = liblzma.pc
+pc_verbose = $(pc_verbose_@AM_V@)
+pc_verbose_ = $(pc_verbose_@AM_DEFAULT_V@)
+pc_verbose_0 = @echo " PC " $@;
+all: all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .S .c .lo .o .obj .rc
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/common/Makefile.inc $(srcdir)/check/Makefile.inc $(srcdir)/lz/Makefile.inc $(srcdir)/lzma/Makefile.inc $(srcdir)/rangecoder/Makefile.inc $(srcdir)/delta/Makefile.inc $(srcdir)/simple/Makefile.inc $(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 src/liblzma/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/liblzma/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;
+$(srcdir)/common/Makefile.inc $(srcdir)/check/Makefile.inc $(srcdir)/lz/Makefile.inc $(srcdir)/lzma/Makefile.inc $(srcdir)/rangecoder/Makefile.inc $(srcdir)/delta/Makefile.inc $(srcdir)/simple/Makefile.inc $(am__empty):
+
+$(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):
+
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+ }
+
+uninstall-libLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+ done
+
+clean-libLTLIBRARIES:
+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+ @list='$(lib_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+
+liblzma.la: $(liblzma_la_OBJECTS) $(liblzma_la_DEPENDENCIES) $(EXTRA_liblzma_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(liblzma_la_LINK) -rpath $(libdir) $(liblzma_la_OBJECTS) $(liblzma_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-alone_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-alone_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-arm.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-arm64.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-armthumb.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-auto_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_buffer_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_buffer_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_header_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_header_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-block_util.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-check.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-common.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc32_fast.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc32_small.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc32_table.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc32_x86.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc64_fast.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc64_small.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc64_table.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-crc64_x86.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-delta_common.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-delta_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-delta_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_buffer_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_decoder_memusage.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_encoder_memusage.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-easy_preset.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-fastpos_table.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-file_info.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_buffer_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_common.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_flags_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-filter_flags_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-hardware_cputhreads.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-hardware_physmem.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-ia64.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-index.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-index_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-index_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-index_hash.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lz_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lz_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lz_encoder_mf.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzip_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma2_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma2_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-lzma_encoder_presets.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-microlzma_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-microlzma_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-outqueue.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-powerpc.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-price_table.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-riscv.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-sha256.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-simple_coder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-simple_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-simple_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-sparc.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_buffer_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_buffer_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_decoder_mt.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_encoder_mt.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_flags_common.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_flags_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-stream_flags_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-string_conversion.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-tuklib_cpucores.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-tuklib_physmem.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-vli_decoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-vli_encoder.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-vli_size.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liblzma_la-x86.Plo@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
+
+.S.o:
+@am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCCAS_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS@am__nodep@)$(CPPASCOMPILE) -c -o $@ $<
+
+.S.obj:
+@am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCCAS_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS@am__nodep@)$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.S.lo:
+@am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(LTCPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCCAS_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS@am__nodep@)$(LTCPPASCOMPILE) -c -o $@ $<
+
+liblzma_la-crc32_x86.lo: check/crc32_x86.S
+@am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -MT liblzma_la-crc32_x86.lo -MD -MP -MF $(DEPDIR)/liblzma_la-crc32_x86.Tpo -c -o liblzma_la-crc32_x86.lo `test -f 'check/crc32_x86.S' || echo '$(srcdir)/'`check/crc32_x86.S
+@am__fastdepCCAS_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-crc32_x86.Tpo $(DEPDIR)/liblzma_la-crc32_x86.Plo
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS)source='check/crc32_x86.S' object='liblzma_la-crc32_x86.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o liblzma_la-crc32_x86.lo `test -f 'check/crc32_x86.S' || echo '$(srcdir)/'`check/crc32_x86.S
+
+liblzma_la-crc64_x86.lo: check/crc64_x86.S
+@am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -MT liblzma_la-crc64_x86.lo -MD -MP -MF $(DEPDIR)/liblzma_la-crc64_x86.Tpo -c -o liblzma_la-crc64_x86.lo `test -f 'check/crc64_x86.S' || echo '$(srcdir)/'`check/crc64_x86.S
+@am__fastdepCCAS_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-crc64_x86.Tpo $(DEPDIR)/liblzma_la-crc64_x86.Plo
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS)source='check/crc64_x86.S' object='liblzma_la-crc64_x86.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o liblzma_la-crc64_x86.lo `test -f 'check/crc64_x86.S' || echo '$(srcdir)/'`check/crc64_x86.S
+
+.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 $@ $<
+
+liblzma_la-tuklib_physmem.lo: ../common/tuklib_physmem.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-tuklib_physmem.lo -MD -MP -MF $(DEPDIR)/liblzma_la-tuklib_physmem.Tpo -c -o liblzma_la-tuklib_physmem.lo `test -f '../common/tuklib_physmem.c' || echo '$(srcdir)/'`../common/tuklib_physmem.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-tuklib_physmem.Tpo $(DEPDIR)/liblzma_la-tuklib_physmem.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_physmem.c' object='liblzma_la-tuklib_physmem.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-tuklib_physmem.lo `test -f '../common/tuklib_physmem.c' || echo '$(srcdir)/'`../common/tuklib_physmem.c
+
+liblzma_la-tuklib_cpucores.lo: ../common/tuklib_cpucores.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-tuklib_cpucores.lo -MD -MP -MF $(DEPDIR)/liblzma_la-tuklib_cpucores.Tpo -c -o liblzma_la-tuklib_cpucores.lo `test -f '../common/tuklib_cpucores.c' || echo '$(srcdir)/'`../common/tuklib_cpucores.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-tuklib_cpucores.Tpo $(DEPDIR)/liblzma_la-tuklib_cpucores.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_cpucores.c' object='liblzma_la-tuklib_cpucores.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-tuklib_cpucores.lo `test -f '../common/tuklib_cpucores.c' || echo '$(srcdir)/'`../common/tuklib_cpucores.c
+
+liblzma_la-common.lo: common/common.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-common.lo -MD -MP -MF $(DEPDIR)/liblzma_la-common.Tpo -c -o liblzma_la-common.lo `test -f 'common/common.c' || echo '$(srcdir)/'`common/common.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-common.Tpo $(DEPDIR)/liblzma_la-common.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/common.c' object='liblzma_la-common.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-common.lo `test -f 'common/common.c' || echo '$(srcdir)/'`common/common.c
+
+liblzma_la-block_util.lo: common/block_util.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-block_util.lo -MD -MP -MF $(DEPDIR)/liblzma_la-block_util.Tpo -c -o liblzma_la-block_util.lo `test -f 'common/block_util.c' || echo '$(srcdir)/'`common/block_util.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-block_util.Tpo $(DEPDIR)/liblzma_la-block_util.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/block_util.c' object='liblzma_la-block_util.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-block_util.lo `test -f 'common/block_util.c' || echo '$(srcdir)/'`common/block_util.c
+
+liblzma_la-easy_preset.lo: common/easy_preset.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-easy_preset.lo -MD -MP -MF $(DEPDIR)/liblzma_la-easy_preset.Tpo -c -o liblzma_la-easy_preset.lo `test -f 'common/easy_preset.c' || echo '$(srcdir)/'`common/easy_preset.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-easy_preset.Tpo $(DEPDIR)/liblzma_la-easy_preset.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/easy_preset.c' object='liblzma_la-easy_preset.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-easy_preset.lo `test -f 'common/easy_preset.c' || echo '$(srcdir)/'`common/easy_preset.c
+
+liblzma_la-filter_common.lo: common/filter_common.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-filter_common.lo -MD -MP -MF $(DEPDIR)/liblzma_la-filter_common.Tpo -c -o liblzma_la-filter_common.lo `test -f 'common/filter_common.c' || echo '$(srcdir)/'`common/filter_common.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-filter_common.Tpo $(DEPDIR)/liblzma_la-filter_common.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/filter_common.c' object='liblzma_la-filter_common.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-filter_common.lo `test -f 'common/filter_common.c' || echo '$(srcdir)/'`common/filter_common.c
+
+liblzma_la-hardware_physmem.lo: common/hardware_physmem.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-hardware_physmem.lo -MD -MP -MF $(DEPDIR)/liblzma_la-hardware_physmem.Tpo -c -o liblzma_la-hardware_physmem.lo `test -f 'common/hardware_physmem.c' || echo '$(srcdir)/'`common/hardware_physmem.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-hardware_physmem.Tpo $(DEPDIR)/liblzma_la-hardware_physmem.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/hardware_physmem.c' object='liblzma_la-hardware_physmem.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-hardware_physmem.lo `test -f 'common/hardware_physmem.c' || echo '$(srcdir)/'`common/hardware_physmem.c
+
+liblzma_la-index.lo: common/index.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-index.lo -MD -MP -MF $(DEPDIR)/liblzma_la-index.Tpo -c -o liblzma_la-index.lo `test -f 'common/index.c' || echo '$(srcdir)/'`common/index.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-index.Tpo $(DEPDIR)/liblzma_la-index.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/index.c' object='liblzma_la-index.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-index.lo `test -f 'common/index.c' || echo '$(srcdir)/'`common/index.c
+
+liblzma_la-stream_flags_common.lo: common/stream_flags_common.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-stream_flags_common.lo -MD -MP -MF $(DEPDIR)/liblzma_la-stream_flags_common.Tpo -c -o liblzma_la-stream_flags_common.lo `test -f 'common/stream_flags_common.c' || echo '$(srcdir)/'`common/stream_flags_common.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-stream_flags_common.Tpo $(DEPDIR)/liblzma_la-stream_flags_common.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/stream_flags_common.c' object='liblzma_la-stream_flags_common.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-stream_flags_common.lo `test -f 'common/stream_flags_common.c' || echo '$(srcdir)/'`common/stream_flags_common.c
+
+liblzma_la-string_conversion.lo: common/string_conversion.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-string_conversion.lo -MD -MP -MF $(DEPDIR)/liblzma_la-string_conversion.Tpo -c -o liblzma_la-string_conversion.lo `test -f 'common/string_conversion.c' || echo '$(srcdir)/'`common/string_conversion.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-string_conversion.Tpo $(DEPDIR)/liblzma_la-string_conversion.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/string_conversion.c' object='liblzma_la-string_conversion.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-string_conversion.lo `test -f 'common/string_conversion.c' || echo '$(srcdir)/'`common/string_conversion.c
+
+liblzma_la-vli_size.lo: common/vli_size.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-vli_size.lo -MD -MP -MF $(DEPDIR)/liblzma_la-vli_size.Tpo -c -o liblzma_la-vli_size.lo `test -f 'common/vli_size.c' || echo '$(srcdir)/'`common/vli_size.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-vli_size.Tpo $(DEPDIR)/liblzma_la-vli_size.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/vli_size.c' object='liblzma_la-vli_size.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-vli_size.lo `test -f 'common/vli_size.c' || echo '$(srcdir)/'`common/vli_size.c
+
+liblzma_la-hardware_cputhreads.lo: common/hardware_cputhreads.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-hardware_cputhreads.lo -MD -MP -MF $(DEPDIR)/liblzma_la-hardware_cputhreads.Tpo -c -o liblzma_la-hardware_cputhreads.lo `test -f 'common/hardware_cputhreads.c' || echo '$(srcdir)/'`common/hardware_cputhreads.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-hardware_cputhreads.Tpo $(DEPDIR)/liblzma_la-hardware_cputhreads.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/hardware_cputhreads.c' object='liblzma_la-hardware_cputhreads.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-hardware_cputhreads.lo `test -f 'common/hardware_cputhreads.c' || echo '$(srcdir)/'`common/hardware_cputhreads.c
+
+liblzma_la-outqueue.lo: common/outqueue.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-outqueue.lo -MD -MP -MF $(DEPDIR)/liblzma_la-outqueue.Tpo -c -o liblzma_la-outqueue.lo `test -f 'common/outqueue.c' || echo '$(srcdir)/'`common/outqueue.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-outqueue.Tpo $(DEPDIR)/liblzma_la-outqueue.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/outqueue.c' object='liblzma_la-outqueue.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-outqueue.lo `test -f 'common/outqueue.c' || echo '$(srcdir)/'`common/outqueue.c
+
+liblzma_la-alone_encoder.lo: common/alone_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-alone_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-alone_encoder.Tpo -c -o liblzma_la-alone_encoder.lo `test -f 'common/alone_encoder.c' || echo '$(srcdir)/'`common/alone_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-alone_encoder.Tpo $(DEPDIR)/liblzma_la-alone_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/alone_encoder.c' object='liblzma_la-alone_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-alone_encoder.lo `test -f 'common/alone_encoder.c' || echo '$(srcdir)/'`common/alone_encoder.c
+
+liblzma_la-block_buffer_encoder.lo: common/block_buffer_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-block_buffer_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-block_buffer_encoder.Tpo -c -o liblzma_la-block_buffer_encoder.lo `test -f 'common/block_buffer_encoder.c' || echo '$(srcdir)/'`common/block_buffer_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-block_buffer_encoder.Tpo $(DEPDIR)/liblzma_la-block_buffer_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/block_buffer_encoder.c' object='liblzma_la-block_buffer_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-block_buffer_encoder.lo `test -f 'common/block_buffer_encoder.c' || echo '$(srcdir)/'`common/block_buffer_encoder.c
+
+liblzma_la-block_encoder.lo: common/block_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-block_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-block_encoder.Tpo -c -o liblzma_la-block_encoder.lo `test -f 'common/block_encoder.c' || echo '$(srcdir)/'`common/block_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-block_encoder.Tpo $(DEPDIR)/liblzma_la-block_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/block_encoder.c' object='liblzma_la-block_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-block_encoder.lo `test -f 'common/block_encoder.c' || echo '$(srcdir)/'`common/block_encoder.c
+
+liblzma_la-block_header_encoder.lo: common/block_header_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-block_header_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-block_header_encoder.Tpo -c -o liblzma_la-block_header_encoder.lo `test -f 'common/block_header_encoder.c' || echo '$(srcdir)/'`common/block_header_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-block_header_encoder.Tpo $(DEPDIR)/liblzma_la-block_header_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/block_header_encoder.c' object='liblzma_la-block_header_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-block_header_encoder.lo `test -f 'common/block_header_encoder.c' || echo '$(srcdir)/'`common/block_header_encoder.c
+
+liblzma_la-easy_buffer_encoder.lo: common/easy_buffer_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-easy_buffer_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-easy_buffer_encoder.Tpo -c -o liblzma_la-easy_buffer_encoder.lo `test -f 'common/easy_buffer_encoder.c' || echo '$(srcdir)/'`common/easy_buffer_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-easy_buffer_encoder.Tpo $(DEPDIR)/liblzma_la-easy_buffer_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/easy_buffer_encoder.c' object='liblzma_la-easy_buffer_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-easy_buffer_encoder.lo `test -f 'common/easy_buffer_encoder.c' || echo '$(srcdir)/'`common/easy_buffer_encoder.c
+
+liblzma_la-easy_encoder.lo: common/easy_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-easy_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-easy_encoder.Tpo -c -o liblzma_la-easy_encoder.lo `test -f 'common/easy_encoder.c' || echo '$(srcdir)/'`common/easy_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-easy_encoder.Tpo $(DEPDIR)/liblzma_la-easy_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/easy_encoder.c' object='liblzma_la-easy_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-easy_encoder.lo `test -f 'common/easy_encoder.c' || echo '$(srcdir)/'`common/easy_encoder.c
+
+liblzma_la-easy_encoder_memusage.lo: common/easy_encoder_memusage.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-easy_encoder_memusage.lo -MD -MP -MF $(DEPDIR)/liblzma_la-easy_encoder_memusage.Tpo -c -o liblzma_la-easy_encoder_memusage.lo `test -f 'common/easy_encoder_memusage.c' || echo '$(srcdir)/'`common/easy_encoder_memusage.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-easy_encoder_memusage.Tpo $(DEPDIR)/liblzma_la-easy_encoder_memusage.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/easy_encoder_memusage.c' object='liblzma_la-easy_encoder_memusage.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-easy_encoder_memusage.lo `test -f 'common/easy_encoder_memusage.c' || echo '$(srcdir)/'`common/easy_encoder_memusage.c
+
+liblzma_la-filter_buffer_encoder.lo: common/filter_buffer_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-filter_buffer_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-filter_buffer_encoder.Tpo -c -o liblzma_la-filter_buffer_encoder.lo `test -f 'common/filter_buffer_encoder.c' || echo '$(srcdir)/'`common/filter_buffer_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-filter_buffer_encoder.Tpo $(DEPDIR)/liblzma_la-filter_buffer_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/filter_buffer_encoder.c' object='liblzma_la-filter_buffer_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-filter_buffer_encoder.lo `test -f 'common/filter_buffer_encoder.c' || echo '$(srcdir)/'`common/filter_buffer_encoder.c
+
+liblzma_la-filter_encoder.lo: common/filter_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-filter_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-filter_encoder.Tpo -c -o liblzma_la-filter_encoder.lo `test -f 'common/filter_encoder.c' || echo '$(srcdir)/'`common/filter_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-filter_encoder.Tpo $(DEPDIR)/liblzma_la-filter_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/filter_encoder.c' object='liblzma_la-filter_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-filter_encoder.lo `test -f 'common/filter_encoder.c' || echo '$(srcdir)/'`common/filter_encoder.c
+
+liblzma_la-filter_flags_encoder.lo: common/filter_flags_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-filter_flags_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-filter_flags_encoder.Tpo -c -o liblzma_la-filter_flags_encoder.lo `test -f 'common/filter_flags_encoder.c' || echo '$(srcdir)/'`common/filter_flags_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-filter_flags_encoder.Tpo $(DEPDIR)/liblzma_la-filter_flags_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/filter_flags_encoder.c' object='liblzma_la-filter_flags_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-filter_flags_encoder.lo `test -f 'common/filter_flags_encoder.c' || echo '$(srcdir)/'`common/filter_flags_encoder.c
+
+liblzma_la-index_encoder.lo: common/index_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-index_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-index_encoder.Tpo -c -o liblzma_la-index_encoder.lo `test -f 'common/index_encoder.c' || echo '$(srcdir)/'`common/index_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-index_encoder.Tpo $(DEPDIR)/liblzma_la-index_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/index_encoder.c' object='liblzma_la-index_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-index_encoder.lo `test -f 'common/index_encoder.c' || echo '$(srcdir)/'`common/index_encoder.c
+
+liblzma_la-stream_buffer_encoder.lo: common/stream_buffer_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-stream_buffer_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-stream_buffer_encoder.Tpo -c -o liblzma_la-stream_buffer_encoder.lo `test -f 'common/stream_buffer_encoder.c' || echo '$(srcdir)/'`common/stream_buffer_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-stream_buffer_encoder.Tpo $(DEPDIR)/liblzma_la-stream_buffer_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/stream_buffer_encoder.c' object='liblzma_la-stream_buffer_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-stream_buffer_encoder.lo `test -f 'common/stream_buffer_encoder.c' || echo '$(srcdir)/'`common/stream_buffer_encoder.c
+
+liblzma_la-stream_encoder.lo: common/stream_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-stream_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-stream_encoder.Tpo -c -o liblzma_la-stream_encoder.lo `test -f 'common/stream_encoder.c' || echo '$(srcdir)/'`common/stream_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-stream_encoder.Tpo $(DEPDIR)/liblzma_la-stream_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/stream_encoder.c' object='liblzma_la-stream_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-stream_encoder.lo `test -f 'common/stream_encoder.c' || echo '$(srcdir)/'`common/stream_encoder.c
+
+liblzma_la-stream_flags_encoder.lo: common/stream_flags_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-stream_flags_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-stream_flags_encoder.Tpo -c -o liblzma_la-stream_flags_encoder.lo `test -f 'common/stream_flags_encoder.c' || echo '$(srcdir)/'`common/stream_flags_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-stream_flags_encoder.Tpo $(DEPDIR)/liblzma_la-stream_flags_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/stream_flags_encoder.c' object='liblzma_la-stream_flags_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-stream_flags_encoder.lo `test -f 'common/stream_flags_encoder.c' || echo '$(srcdir)/'`common/stream_flags_encoder.c
+
+liblzma_la-vli_encoder.lo: common/vli_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-vli_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-vli_encoder.Tpo -c -o liblzma_la-vli_encoder.lo `test -f 'common/vli_encoder.c' || echo '$(srcdir)/'`common/vli_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-vli_encoder.Tpo $(DEPDIR)/liblzma_la-vli_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/vli_encoder.c' object='liblzma_la-vli_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-vli_encoder.lo `test -f 'common/vli_encoder.c' || echo '$(srcdir)/'`common/vli_encoder.c
+
+liblzma_la-stream_encoder_mt.lo: common/stream_encoder_mt.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-stream_encoder_mt.lo -MD -MP -MF $(DEPDIR)/liblzma_la-stream_encoder_mt.Tpo -c -o liblzma_la-stream_encoder_mt.lo `test -f 'common/stream_encoder_mt.c' || echo '$(srcdir)/'`common/stream_encoder_mt.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-stream_encoder_mt.Tpo $(DEPDIR)/liblzma_la-stream_encoder_mt.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/stream_encoder_mt.c' object='liblzma_la-stream_encoder_mt.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-stream_encoder_mt.lo `test -f 'common/stream_encoder_mt.c' || echo '$(srcdir)/'`common/stream_encoder_mt.c
+
+liblzma_la-microlzma_encoder.lo: common/microlzma_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-microlzma_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-microlzma_encoder.Tpo -c -o liblzma_la-microlzma_encoder.lo `test -f 'common/microlzma_encoder.c' || echo '$(srcdir)/'`common/microlzma_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-microlzma_encoder.Tpo $(DEPDIR)/liblzma_la-microlzma_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/microlzma_encoder.c' object='liblzma_la-microlzma_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-microlzma_encoder.lo `test -f 'common/microlzma_encoder.c' || echo '$(srcdir)/'`common/microlzma_encoder.c
+
+liblzma_la-alone_decoder.lo: common/alone_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-alone_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-alone_decoder.Tpo -c -o liblzma_la-alone_decoder.lo `test -f 'common/alone_decoder.c' || echo '$(srcdir)/'`common/alone_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-alone_decoder.Tpo $(DEPDIR)/liblzma_la-alone_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/alone_decoder.c' object='liblzma_la-alone_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-alone_decoder.lo `test -f 'common/alone_decoder.c' || echo '$(srcdir)/'`common/alone_decoder.c
+
+liblzma_la-auto_decoder.lo: common/auto_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-auto_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-auto_decoder.Tpo -c -o liblzma_la-auto_decoder.lo `test -f 'common/auto_decoder.c' || echo '$(srcdir)/'`common/auto_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-auto_decoder.Tpo $(DEPDIR)/liblzma_la-auto_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/auto_decoder.c' object='liblzma_la-auto_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-auto_decoder.lo `test -f 'common/auto_decoder.c' || echo '$(srcdir)/'`common/auto_decoder.c
+
+liblzma_la-block_buffer_decoder.lo: common/block_buffer_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-block_buffer_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-block_buffer_decoder.Tpo -c -o liblzma_la-block_buffer_decoder.lo `test -f 'common/block_buffer_decoder.c' || echo '$(srcdir)/'`common/block_buffer_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-block_buffer_decoder.Tpo $(DEPDIR)/liblzma_la-block_buffer_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/block_buffer_decoder.c' object='liblzma_la-block_buffer_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-block_buffer_decoder.lo `test -f 'common/block_buffer_decoder.c' || echo '$(srcdir)/'`common/block_buffer_decoder.c
+
+liblzma_la-block_decoder.lo: common/block_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-block_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-block_decoder.Tpo -c -o liblzma_la-block_decoder.lo `test -f 'common/block_decoder.c' || echo '$(srcdir)/'`common/block_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-block_decoder.Tpo $(DEPDIR)/liblzma_la-block_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/block_decoder.c' object='liblzma_la-block_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-block_decoder.lo `test -f 'common/block_decoder.c' || echo '$(srcdir)/'`common/block_decoder.c
+
+liblzma_la-block_header_decoder.lo: common/block_header_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-block_header_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-block_header_decoder.Tpo -c -o liblzma_la-block_header_decoder.lo `test -f 'common/block_header_decoder.c' || echo '$(srcdir)/'`common/block_header_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-block_header_decoder.Tpo $(DEPDIR)/liblzma_la-block_header_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/block_header_decoder.c' object='liblzma_la-block_header_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-block_header_decoder.lo `test -f 'common/block_header_decoder.c' || echo '$(srcdir)/'`common/block_header_decoder.c
+
+liblzma_la-easy_decoder_memusage.lo: common/easy_decoder_memusage.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-easy_decoder_memusage.lo -MD -MP -MF $(DEPDIR)/liblzma_la-easy_decoder_memusage.Tpo -c -o liblzma_la-easy_decoder_memusage.lo `test -f 'common/easy_decoder_memusage.c' || echo '$(srcdir)/'`common/easy_decoder_memusage.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-easy_decoder_memusage.Tpo $(DEPDIR)/liblzma_la-easy_decoder_memusage.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/easy_decoder_memusage.c' object='liblzma_la-easy_decoder_memusage.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-easy_decoder_memusage.lo `test -f 'common/easy_decoder_memusage.c' || echo '$(srcdir)/'`common/easy_decoder_memusage.c
+
+liblzma_la-file_info.lo: common/file_info.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-file_info.lo -MD -MP -MF $(DEPDIR)/liblzma_la-file_info.Tpo -c -o liblzma_la-file_info.lo `test -f 'common/file_info.c' || echo '$(srcdir)/'`common/file_info.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-file_info.Tpo $(DEPDIR)/liblzma_la-file_info.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/file_info.c' object='liblzma_la-file_info.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-file_info.lo `test -f 'common/file_info.c' || echo '$(srcdir)/'`common/file_info.c
+
+liblzma_la-filter_buffer_decoder.lo: common/filter_buffer_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-filter_buffer_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-filter_buffer_decoder.Tpo -c -o liblzma_la-filter_buffer_decoder.lo `test -f 'common/filter_buffer_decoder.c' || echo '$(srcdir)/'`common/filter_buffer_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-filter_buffer_decoder.Tpo $(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/filter_buffer_decoder.c' object='liblzma_la-filter_buffer_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-filter_buffer_decoder.lo `test -f 'common/filter_buffer_decoder.c' || echo '$(srcdir)/'`common/filter_buffer_decoder.c
+
+liblzma_la-filter_decoder.lo: common/filter_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-filter_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-filter_decoder.Tpo -c -o liblzma_la-filter_decoder.lo `test -f 'common/filter_decoder.c' || echo '$(srcdir)/'`common/filter_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-filter_decoder.Tpo $(DEPDIR)/liblzma_la-filter_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/filter_decoder.c' object='liblzma_la-filter_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-filter_decoder.lo `test -f 'common/filter_decoder.c' || echo '$(srcdir)/'`common/filter_decoder.c
+
+liblzma_la-filter_flags_decoder.lo: common/filter_flags_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-filter_flags_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-filter_flags_decoder.Tpo -c -o liblzma_la-filter_flags_decoder.lo `test -f 'common/filter_flags_decoder.c' || echo '$(srcdir)/'`common/filter_flags_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-filter_flags_decoder.Tpo $(DEPDIR)/liblzma_la-filter_flags_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/filter_flags_decoder.c' object='liblzma_la-filter_flags_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-filter_flags_decoder.lo `test -f 'common/filter_flags_decoder.c' || echo '$(srcdir)/'`common/filter_flags_decoder.c
+
+liblzma_la-index_decoder.lo: common/index_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-index_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-index_decoder.Tpo -c -o liblzma_la-index_decoder.lo `test -f 'common/index_decoder.c' || echo '$(srcdir)/'`common/index_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-index_decoder.Tpo $(DEPDIR)/liblzma_la-index_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/index_decoder.c' object='liblzma_la-index_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-index_decoder.lo `test -f 'common/index_decoder.c' || echo '$(srcdir)/'`common/index_decoder.c
+
+liblzma_la-index_hash.lo: common/index_hash.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-index_hash.lo -MD -MP -MF $(DEPDIR)/liblzma_la-index_hash.Tpo -c -o liblzma_la-index_hash.lo `test -f 'common/index_hash.c' || echo '$(srcdir)/'`common/index_hash.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-index_hash.Tpo $(DEPDIR)/liblzma_la-index_hash.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/index_hash.c' object='liblzma_la-index_hash.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-index_hash.lo `test -f 'common/index_hash.c' || echo '$(srcdir)/'`common/index_hash.c
+
+liblzma_la-stream_buffer_decoder.lo: common/stream_buffer_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-stream_buffer_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-stream_buffer_decoder.Tpo -c -o liblzma_la-stream_buffer_decoder.lo `test -f 'common/stream_buffer_decoder.c' || echo '$(srcdir)/'`common/stream_buffer_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-stream_buffer_decoder.Tpo $(DEPDIR)/liblzma_la-stream_buffer_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/stream_buffer_decoder.c' object='liblzma_la-stream_buffer_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-stream_buffer_decoder.lo `test -f 'common/stream_buffer_decoder.c' || echo '$(srcdir)/'`common/stream_buffer_decoder.c
+
+liblzma_la-stream_decoder.lo: common/stream_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-stream_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-stream_decoder.Tpo -c -o liblzma_la-stream_decoder.lo `test -f 'common/stream_decoder.c' || echo '$(srcdir)/'`common/stream_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-stream_decoder.Tpo $(DEPDIR)/liblzma_la-stream_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/stream_decoder.c' object='liblzma_la-stream_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-stream_decoder.lo `test -f 'common/stream_decoder.c' || echo '$(srcdir)/'`common/stream_decoder.c
+
+liblzma_la-stream_flags_decoder.lo: common/stream_flags_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-stream_flags_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-stream_flags_decoder.Tpo -c -o liblzma_la-stream_flags_decoder.lo `test -f 'common/stream_flags_decoder.c' || echo '$(srcdir)/'`common/stream_flags_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-stream_flags_decoder.Tpo $(DEPDIR)/liblzma_la-stream_flags_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/stream_flags_decoder.c' object='liblzma_la-stream_flags_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-stream_flags_decoder.lo `test -f 'common/stream_flags_decoder.c' || echo '$(srcdir)/'`common/stream_flags_decoder.c
+
+liblzma_la-vli_decoder.lo: common/vli_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-vli_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-vli_decoder.Tpo -c -o liblzma_la-vli_decoder.lo `test -f 'common/vli_decoder.c' || echo '$(srcdir)/'`common/vli_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-vli_decoder.Tpo $(DEPDIR)/liblzma_la-vli_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/vli_decoder.c' object='liblzma_la-vli_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-vli_decoder.lo `test -f 'common/vli_decoder.c' || echo '$(srcdir)/'`common/vli_decoder.c
+
+liblzma_la-stream_decoder_mt.lo: common/stream_decoder_mt.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-stream_decoder_mt.lo -MD -MP -MF $(DEPDIR)/liblzma_la-stream_decoder_mt.Tpo -c -o liblzma_la-stream_decoder_mt.lo `test -f 'common/stream_decoder_mt.c' || echo '$(srcdir)/'`common/stream_decoder_mt.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-stream_decoder_mt.Tpo $(DEPDIR)/liblzma_la-stream_decoder_mt.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/stream_decoder_mt.c' object='liblzma_la-stream_decoder_mt.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-stream_decoder_mt.lo `test -f 'common/stream_decoder_mt.c' || echo '$(srcdir)/'`common/stream_decoder_mt.c
+
+liblzma_la-microlzma_decoder.lo: common/microlzma_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-microlzma_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-microlzma_decoder.Tpo -c -o liblzma_la-microlzma_decoder.lo `test -f 'common/microlzma_decoder.c' || echo '$(srcdir)/'`common/microlzma_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-microlzma_decoder.Tpo $(DEPDIR)/liblzma_la-microlzma_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/microlzma_decoder.c' object='liblzma_la-microlzma_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-microlzma_decoder.lo `test -f 'common/microlzma_decoder.c' || echo '$(srcdir)/'`common/microlzma_decoder.c
+
+liblzma_la-lzip_decoder.lo: common/lzip_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-lzip_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-lzip_decoder.Tpo -c -o liblzma_la-lzip_decoder.lo `test -f 'common/lzip_decoder.c' || echo '$(srcdir)/'`common/lzip_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-lzip_decoder.Tpo $(DEPDIR)/liblzma_la-lzip_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='common/lzip_decoder.c' object='liblzma_la-lzip_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-lzip_decoder.lo `test -f 'common/lzip_decoder.c' || echo '$(srcdir)/'`common/lzip_decoder.c
+
+liblzma_la-check.lo: check/check.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-check.lo -MD -MP -MF $(DEPDIR)/liblzma_la-check.Tpo -c -o liblzma_la-check.lo `test -f 'check/check.c' || echo '$(srcdir)/'`check/check.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-check.Tpo $(DEPDIR)/liblzma_la-check.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='check/check.c' object='liblzma_la-check.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-check.lo `test -f 'check/check.c' || echo '$(srcdir)/'`check/check.c
+
+liblzma_la-crc32_small.lo: check/crc32_small.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-crc32_small.lo -MD -MP -MF $(DEPDIR)/liblzma_la-crc32_small.Tpo -c -o liblzma_la-crc32_small.lo `test -f 'check/crc32_small.c' || echo '$(srcdir)/'`check/crc32_small.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-crc32_small.Tpo $(DEPDIR)/liblzma_la-crc32_small.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='check/crc32_small.c' object='liblzma_la-crc32_small.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-crc32_small.lo `test -f 'check/crc32_small.c' || echo '$(srcdir)/'`check/crc32_small.c
+
+liblzma_la-crc32_table.lo: check/crc32_table.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-crc32_table.lo -MD -MP -MF $(DEPDIR)/liblzma_la-crc32_table.Tpo -c -o liblzma_la-crc32_table.lo `test -f 'check/crc32_table.c' || echo '$(srcdir)/'`check/crc32_table.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-crc32_table.Tpo $(DEPDIR)/liblzma_la-crc32_table.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='check/crc32_table.c' object='liblzma_la-crc32_table.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-crc32_table.lo `test -f 'check/crc32_table.c' || echo '$(srcdir)/'`check/crc32_table.c
+
+liblzma_la-crc32_fast.lo: check/crc32_fast.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-crc32_fast.lo -MD -MP -MF $(DEPDIR)/liblzma_la-crc32_fast.Tpo -c -o liblzma_la-crc32_fast.lo `test -f 'check/crc32_fast.c' || echo '$(srcdir)/'`check/crc32_fast.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-crc32_fast.Tpo $(DEPDIR)/liblzma_la-crc32_fast.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='check/crc32_fast.c' object='liblzma_la-crc32_fast.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-crc32_fast.lo `test -f 'check/crc32_fast.c' || echo '$(srcdir)/'`check/crc32_fast.c
+
+liblzma_la-crc64_small.lo: check/crc64_small.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-crc64_small.lo -MD -MP -MF $(DEPDIR)/liblzma_la-crc64_small.Tpo -c -o liblzma_la-crc64_small.lo `test -f 'check/crc64_small.c' || echo '$(srcdir)/'`check/crc64_small.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-crc64_small.Tpo $(DEPDIR)/liblzma_la-crc64_small.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='check/crc64_small.c' object='liblzma_la-crc64_small.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-crc64_small.lo `test -f 'check/crc64_small.c' || echo '$(srcdir)/'`check/crc64_small.c
+
+liblzma_la-crc64_table.lo: check/crc64_table.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-crc64_table.lo -MD -MP -MF $(DEPDIR)/liblzma_la-crc64_table.Tpo -c -o liblzma_la-crc64_table.lo `test -f 'check/crc64_table.c' || echo '$(srcdir)/'`check/crc64_table.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-crc64_table.Tpo $(DEPDIR)/liblzma_la-crc64_table.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='check/crc64_table.c' object='liblzma_la-crc64_table.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-crc64_table.lo `test -f 'check/crc64_table.c' || echo '$(srcdir)/'`check/crc64_table.c
+
+liblzma_la-crc64_fast.lo: check/crc64_fast.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-crc64_fast.lo -MD -MP -MF $(DEPDIR)/liblzma_la-crc64_fast.Tpo -c -o liblzma_la-crc64_fast.lo `test -f 'check/crc64_fast.c' || echo '$(srcdir)/'`check/crc64_fast.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-crc64_fast.Tpo $(DEPDIR)/liblzma_la-crc64_fast.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='check/crc64_fast.c' object='liblzma_la-crc64_fast.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-crc64_fast.lo `test -f 'check/crc64_fast.c' || echo '$(srcdir)/'`check/crc64_fast.c
+
+liblzma_la-sha256.lo: check/sha256.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-sha256.lo -MD -MP -MF $(DEPDIR)/liblzma_la-sha256.Tpo -c -o liblzma_la-sha256.lo `test -f 'check/sha256.c' || echo '$(srcdir)/'`check/sha256.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-sha256.Tpo $(DEPDIR)/liblzma_la-sha256.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='check/sha256.c' object='liblzma_la-sha256.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-sha256.lo `test -f 'check/sha256.c' || echo '$(srcdir)/'`check/sha256.c
+
+liblzma_la-lz_encoder.lo: lz/lz_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-lz_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-lz_encoder.Tpo -c -o liblzma_la-lz_encoder.lo `test -f 'lz/lz_encoder.c' || echo '$(srcdir)/'`lz/lz_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-lz_encoder.Tpo $(DEPDIR)/liblzma_la-lz_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lz/lz_encoder.c' object='liblzma_la-lz_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-lz_encoder.lo `test -f 'lz/lz_encoder.c' || echo '$(srcdir)/'`lz/lz_encoder.c
+
+liblzma_la-lz_encoder_mf.lo: lz/lz_encoder_mf.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-lz_encoder_mf.lo -MD -MP -MF $(DEPDIR)/liblzma_la-lz_encoder_mf.Tpo -c -o liblzma_la-lz_encoder_mf.lo `test -f 'lz/lz_encoder_mf.c' || echo '$(srcdir)/'`lz/lz_encoder_mf.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-lz_encoder_mf.Tpo $(DEPDIR)/liblzma_la-lz_encoder_mf.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lz/lz_encoder_mf.c' object='liblzma_la-lz_encoder_mf.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-lz_encoder_mf.lo `test -f 'lz/lz_encoder_mf.c' || echo '$(srcdir)/'`lz/lz_encoder_mf.c
+
+liblzma_la-lz_decoder.lo: lz/lz_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-lz_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-lz_decoder.Tpo -c -o liblzma_la-lz_decoder.lo `test -f 'lz/lz_decoder.c' || echo '$(srcdir)/'`lz/lz_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-lz_decoder.Tpo $(DEPDIR)/liblzma_la-lz_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lz/lz_decoder.c' object='liblzma_la-lz_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-lz_decoder.lo `test -f 'lz/lz_decoder.c' || echo '$(srcdir)/'`lz/lz_decoder.c
+
+liblzma_la-lzma_encoder_presets.lo: lzma/lzma_encoder_presets.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-lzma_encoder_presets.lo -MD -MP -MF $(DEPDIR)/liblzma_la-lzma_encoder_presets.Tpo -c -o liblzma_la-lzma_encoder_presets.lo `test -f 'lzma/lzma_encoder_presets.c' || echo '$(srcdir)/'`lzma/lzma_encoder_presets.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-lzma_encoder_presets.Tpo $(DEPDIR)/liblzma_la-lzma_encoder_presets.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lzma/lzma_encoder_presets.c' object='liblzma_la-lzma_encoder_presets.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-lzma_encoder_presets.lo `test -f 'lzma/lzma_encoder_presets.c' || echo '$(srcdir)/'`lzma/lzma_encoder_presets.c
+
+liblzma_la-lzma_encoder.lo: lzma/lzma_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-lzma_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-lzma_encoder.Tpo -c -o liblzma_la-lzma_encoder.lo `test -f 'lzma/lzma_encoder.c' || echo '$(srcdir)/'`lzma/lzma_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-lzma_encoder.Tpo $(DEPDIR)/liblzma_la-lzma_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lzma/lzma_encoder.c' object='liblzma_la-lzma_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-lzma_encoder.lo `test -f 'lzma/lzma_encoder.c' || echo '$(srcdir)/'`lzma/lzma_encoder.c
+
+liblzma_la-lzma_encoder_optimum_fast.lo: lzma/lzma_encoder_optimum_fast.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-lzma_encoder_optimum_fast.lo -MD -MP -MF $(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Tpo -c -o liblzma_la-lzma_encoder_optimum_fast.lo `test -f 'lzma/lzma_encoder_optimum_fast.c' || echo '$(srcdir)/'`lzma/lzma_encoder_optimum_fast.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Tpo $(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lzma/lzma_encoder_optimum_fast.c' object='liblzma_la-lzma_encoder_optimum_fast.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-lzma_encoder_optimum_fast.lo `test -f 'lzma/lzma_encoder_optimum_fast.c' || echo '$(srcdir)/'`lzma/lzma_encoder_optimum_fast.c
+
+liblzma_la-lzma_encoder_optimum_normal.lo: lzma/lzma_encoder_optimum_normal.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-lzma_encoder_optimum_normal.lo -MD -MP -MF $(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Tpo -c -o liblzma_la-lzma_encoder_optimum_normal.lo `test -f 'lzma/lzma_encoder_optimum_normal.c' || echo '$(srcdir)/'`lzma/lzma_encoder_optimum_normal.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Tpo $(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lzma/lzma_encoder_optimum_normal.c' object='liblzma_la-lzma_encoder_optimum_normal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-lzma_encoder_optimum_normal.lo `test -f 'lzma/lzma_encoder_optimum_normal.c' || echo '$(srcdir)/'`lzma/lzma_encoder_optimum_normal.c
+
+liblzma_la-fastpos_table.lo: lzma/fastpos_table.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-fastpos_table.lo -MD -MP -MF $(DEPDIR)/liblzma_la-fastpos_table.Tpo -c -o liblzma_la-fastpos_table.lo `test -f 'lzma/fastpos_table.c' || echo '$(srcdir)/'`lzma/fastpos_table.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-fastpos_table.Tpo $(DEPDIR)/liblzma_la-fastpos_table.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lzma/fastpos_table.c' object='liblzma_la-fastpos_table.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-fastpos_table.lo `test -f 'lzma/fastpos_table.c' || echo '$(srcdir)/'`lzma/fastpos_table.c
+
+liblzma_la-lzma_decoder.lo: lzma/lzma_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-lzma_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-lzma_decoder.Tpo -c -o liblzma_la-lzma_decoder.lo `test -f 'lzma/lzma_decoder.c' || echo '$(srcdir)/'`lzma/lzma_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-lzma_decoder.Tpo $(DEPDIR)/liblzma_la-lzma_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lzma/lzma_decoder.c' object='liblzma_la-lzma_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-lzma_decoder.lo `test -f 'lzma/lzma_decoder.c' || echo '$(srcdir)/'`lzma/lzma_decoder.c
+
+liblzma_la-lzma2_encoder.lo: lzma/lzma2_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-lzma2_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-lzma2_encoder.Tpo -c -o liblzma_la-lzma2_encoder.lo `test -f 'lzma/lzma2_encoder.c' || echo '$(srcdir)/'`lzma/lzma2_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-lzma2_encoder.Tpo $(DEPDIR)/liblzma_la-lzma2_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lzma/lzma2_encoder.c' object='liblzma_la-lzma2_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-lzma2_encoder.lo `test -f 'lzma/lzma2_encoder.c' || echo '$(srcdir)/'`lzma/lzma2_encoder.c
+
+liblzma_la-lzma2_decoder.lo: lzma/lzma2_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-lzma2_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-lzma2_decoder.Tpo -c -o liblzma_la-lzma2_decoder.lo `test -f 'lzma/lzma2_decoder.c' || echo '$(srcdir)/'`lzma/lzma2_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-lzma2_decoder.Tpo $(DEPDIR)/liblzma_la-lzma2_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lzma/lzma2_decoder.c' object='liblzma_la-lzma2_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-lzma2_decoder.lo `test -f 'lzma/lzma2_decoder.c' || echo '$(srcdir)/'`lzma/lzma2_decoder.c
+
+liblzma_la-price_table.lo: rangecoder/price_table.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-price_table.lo -MD -MP -MF $(DEPDIR)/liblzma_la-price_table.Tpo -c -o liblzma_la-price_table.lo `test -f 'rangecoder/price_table.c' || echo '$(srcdir)/'`rangecoder/price_table.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-price_table.Tpo $(DEPDIR)/liblzma_la-price_table.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rangecoder/price_table.c' object='liblzma_la-price_table.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-price_table.lo `test -f 'rangecoder/price_table.c' || echo '$(srcdir)/'`rangecoder/price_table.c
+
+liblzma_la-delta_common.lo: delta/delta_common.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-delta_common.lo -MD -MP -MF $(DEPDIR)/liblzma_la-delta_common.Tpo -c -o liblzma_la-delta_common.lo `test -f 'delta/delta_common.c' || echo '$(srcdir)/'`delta/delta_common.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-delta_common.Tpo $(DEPDIR)/liblzma_la-delta_common.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='delta/delta_common.c' object='liblzma_la-delta_common.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-delta_common.lo `test -f 'delta/delta_common.c' || echo '$(srcdir)/'`delta/delta_common.c
+
+liblzma_la-delta_encoder.lo: delta/delta_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-delta_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-delta_encoder.Tpo -c -o liblzma_la-delta_encoder.lo `test -f 'delta/delta_encoder.c' || echo '$(srcdir)/'`delta/delta_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-delta_encoder.Tpo $(DEPDIR)/liblzma_la-delta_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='delta/delta_encoder.c' object='liblzma_la-delta_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-delta_encoder.lo `test -f 'delta/delta_encoder.c' || echo '$(srcdir)/'`delta/delta_encoder.c
+
+liblzma_la-delta_decoder.lo: delta/delta_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-delta_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-delta_decoder.Tpo -c -o liblzma_la-delta_decoder.lo `test -f 'delta/delta_decoder.c' || echo '$(srcdir)/'`delta/delta_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-delta_decoder.Tpo $(DEPDIR)/liblzma_la-delta_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='delta/delta_decoder.c' object='liblzma_la-delta_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-delta_decoder.lo `test -f 'delta/delta_decoder.c' || echo '$(srcdir)/'`delta/delta_decoder.c
+
+liblzma_la-simple_coder.lo: simple/simple_coder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-simple_coder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-simple_coder.Tpo -c -o liblzma_la-simple_coder.lo `test -f 'simple/simple_coder.c' || echo '$(srcdir)/'`simple/simple_coder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-simple_coder.Tpo $(DEPDIR)/liblzma_la-simple_coder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='simple/simple_coder.c' object='liblzma_la-simple_coder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-simple_coder.lo `test -f 'simple/simple_coder.c' || echo '$(srcdir)/'`simple/simple_coder.c
+
+liblzma_la-simple_encoder.lo: simple/simple_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-simple_encoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-simple_encoder.Tpo -c -o liblzma_la-simple_encoder.lo `test -f 'simple/simple_encoder.c' || echo '$(srcdir)/'`simple/simple_encoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-simple_encoder.Tpo $(DEPDIR)/liblzma_la-simple_encoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='simple/simple_encoder.c' object='liblzma_la-simple_encoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-simple_encoder.lo `test -f 'simple/simple_encoder.c' || echo '$(srcdir)/'`simple/simple_encoder.c
+
+liblzma_la-simple_decoder.lo: simple/simple_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-simple_decoder.lo -MD -MP -MF $(DEPDIR)/liblzma_la-simple_decoder.Tpo -c -o liblzma_la-simple_decoder.lo `test -f 'simple/simple_decoder.c' || echo '$(srcdir)/'`simple/simple_decoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-simple_decoder.Tpo $(DEPDIR)/liblzma_la-simple_decoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='simple/simple_decoder.c' object='liblzma_la-simple_decoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-simple_decoder.lo `test -f 'simple/simple_decoder.c' || echo '$(srcdir)/'`simple/simple_decoder.c
+
+liblzma_la-x86.lo: simple/x86.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-x86.lo -MD -MP -MF $(DEPDIR)/liblzma_la-x86.Tpo -c -o liblzma_la-x86.lo `test -f 'simple/x86.c' || echo '$(srcdir)/'`simple/x86.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-x86.Tpo $(DEPDIR)/liblzma_la-x86.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='simple/x86.c' object='liblzma_la-x86.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-x86.lo `test -f 'simple/x86.c' || echo '$(srcdir)/'`simple/x86.c
+
+liblzma_la-powerpc.lo: simple/powerpc.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-powerpc.lo -MD -MP -MF $(DEPDIR)/liblzma_la-powerpc.Tpo -c -o liblzma_la-powerpc.lo `test -f 'simple/powerpc.c' || echo '$(srcdir)/'`simple/powerpc.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-powerpc.Tpo $(DEPDIR)/liblzma_la-powerpc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='simple/powerpc.c' object='liblzma_la-powerpc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-powerpc.lo `test -f 'simple/powerpc.c' || echo '$(srcdir)/'`simple/powerpc.c
+
+liblzma_la-ia64.lo: simple/ia64.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-ia64.lo -MD -MP -MF $(DEPDIR)/liblzma_la-ia64.Tpo -c -o liblzma_la-ia64.lo `test -f 'simple/ia64.c' || echo '$(srcdir)/'`simple/ia64.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-ia64.Tpo $(DEPDIR)/liblzma_la-ia64.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='simple/ia64.c' object='liblzma_la-ia64.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-ia64.lo `test -f 'simple/ia64.c' || echo '$(srcdir)/'`simple/ia64.c
+
+liblzma_la-arm.lo: simple/arm.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-arm.lo -MD -MP -MF $(DEPDIR)/liblzma_la-arm.Tpo -c -o liblzma_la-arm.lo `test -f 'simple/arm.c' || echo '$(srcdir)/'`simple/arm.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-arm.Tpo $(DEPDIR)/liblzma_la-arm.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='simple/arm.c' object='liblzma_la-arm.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-arm.lo `test -f 'simple/arm.c' || echo '$(srcdir)/'`simple/arm.c
+
+liblzma_la-armthumb.lo: simple/armthumb.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-armthumb.lo -MD -MP -MF $(DEPDIR)/liblzma_la-armthumb.Tpo -c -o liblzma_la-armthumb.lo `test -f 'simple/armthumb.c' || echo '$(srcdir)/'`simple/armthumb.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-armthumb.Tpo $(DEPDIR)/liblzma_la-armthumb.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='simple/armthumb.c' object='liblzma_la-armthumb.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-armthumb.lo `test -f 'simple/armthumb.c' || echo '$(srcdir)/'`simple/armthumb.c
+
+liblzma_la-arm64.lo: simple/arm64.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-arm64.lo -MD -MP -MF $(DEPDIR)/liblzma_la-arm64.Tpo -c -o liblzma_la-arm64.lo `test -f 'simple/arm64.c' || echo '$(srcdir)/'`simple/arm64.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-arm64.Tpo $(DEPDIR)/liblzma_la-arm64.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='simple/arm64.c' object='liblzma_la-arm64.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-arm64.lo `test -f 'simple/arm64.c' || echo '$(srcdir)/'`simple/arm64.c
+
+liblzma_la-sparc.lo: simple/sparc.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-sparc.lo -MD -MP -MF $(DEPDIR)/liblzma_la-sparc.Tpo -c -o liblzma_la-sparc.lo `test -f 'simple/sparc.c' || echo '$(srcdir)/'`simple/sparc.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-sparc.Tpo $(DEPDIR)/liblzma_la-sparc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='simple/sparc.c' object='liblzma_la-sparc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-sparc.lo `test -f 'simple/sparc.c' || echo '$(srcdir)/'`simple/sparc.c
+
+liblzma_la-riscv.lo: simple/riscv.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liblzma_la-riscv.lo -MD -MP -MF $(DEPDIR)/liblzma_la-riscv.Tpo -c -o liblzma_la-riscv.lo `test -f 'simple/riscv.c' || echo '$(srcdir)/'`simple/riscv.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/liblzma_la-riscv.Tpo $(DEPDIR)/liblzma_la-riscv.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='simple/riscv.c' object='liblzma_la-riscv.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liblzma_la-riscv.lo `test -f 'simple/riscv.c' || echo '$(srcdir)/'`simple/riscv.c
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-docDATA: $(doc_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(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-docDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(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-pkgconfigDATA: $(pkgconfig_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || 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)$(pkgconfigdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
+ done
+
+uninstall-pkgconfigDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(pkgconfigdir)'; $(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"
+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
+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
+ @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
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(LTLIBRARIES) $(DATA)
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(pkgconfigdir)"; 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:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+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-recursive
+
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool clean-local \
+ mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f ./$(DEPDIR)/liblzma_la-alone_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-alone_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-arm.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-arm64.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-armthumb.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-auto_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-block_buffer_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-block_buffer_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-block_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-block_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-block_header_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-block_header_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-block_util.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-check.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-common.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-crc32_fast.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-crc32_small.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-crc32_table.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-crc32_x86.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-crc64_fast.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-crc64_small.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-crc64_table.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-crc64_x86.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-delta_common.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-delta_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-delta_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-easy_buffer_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-easy_decoder_memusage.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-easy_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-easy_encoder_memusage.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-easy_preset.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-fastpos_table.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-file_info.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-filter_buffer_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-filter_common.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-filter_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-filter_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-filter_flags_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-filter_flags_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-hardware_cputhreads.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-hardware_physmem.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-ia64.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-index.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-index_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-index_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-index_hash.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lz_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lz_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lz_encoder_mf.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lzip_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lzma2_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lzma2_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lzma_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_presets.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-microlzma_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-microlzma_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-outqueue.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-powerpc.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-price_table.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-riscv.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-sha256.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-simple_coder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-simple_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-simple_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-sparc.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-stream_buffer_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-stream_buffer_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-stream_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-stream_decoder_mt.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-stream_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-stream_encoder_mt.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-stream_flags_common.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-stream_flags_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-stream_flags_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-string_conversion.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-tuklib_cpucores.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-tuklib_physmem.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-vli_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-vli_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-vli_size.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-x86.Plo
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-docDATA install-pkgconfigDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am: install-libLTLIBRARIES
+
+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 ./$(DEPDIR)/liblzma_la-alone_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-alone_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-arm.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-arm64.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-armthumb.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-auto_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-block_buffer_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-block_buffer_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-block_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-block_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-block_header_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-block_header_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-block_util.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-check.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-common.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-crc32_fast.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-crc32_small.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-crc32_table.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-crc32_x86.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-crc64_fast.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-crc64_small.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-crc64_table.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-crc64_x86.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-delta_common.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-delta_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-delta_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-easy_buffer_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-easy_decoder_memusage.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-easy_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-easy_encoder_memusage.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-easy_preset.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-fastpos_table.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-file_info.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-filter_buffer_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-filter_buffer_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-filter_common.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-filter_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-filter_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-filter_flags_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-filter_flags_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-hardware_cputhreads.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-hardware_physmem.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-ia64.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-index.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-index_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-index_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-index_hash.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lz_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lz_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lz_encoder_mf.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lzip_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lzma2_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lzma2_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lzma_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_fast.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_optimum_normal.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-lzma_encoder_presets.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-microlzma_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-microlzma_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-outqueue.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-powerpc.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-price_table.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-riscv.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-sha256.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-simple_coder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-simple_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-simple_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-sparc.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-stream_buffer_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-stream_buffer_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-stream_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-stream_decoder_mt.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-stream_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-stream_encoder_mt.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-stream_flags_common.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-stream_flags_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-stream_flags_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-string_conversion.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-tuklib_cpucores.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-tuklib_physmem.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-vli_decoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-vli_encoder.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-vli_size.Plo
+ -rm -f ./$(DEPDIR)/liblzma_la-x86.Plo
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-docDATA uninstall-libLTLIBRARIES \
+ uninstall-pkgconfigDATA
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+ am--depfiles check check-am clean clean-generic \
+ clean-libLTLIBRARIES clean-libtool clean-local 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-docDATA install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-libLTLIBRARIES \
+ install-man install-pdf install-pdf-am install-pkgconfigDATA \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am uninstall-docDATA \
+ uninstall-libLTLIBRARIES uninstall-pkgconfigDATA
+
+.PRECIOUS: Makefile
+
+
+# Windows resource compiler support. libtool knows what to do with .rc
+# files, but Automake (<= 1.11 at least) doesn't know.
+#
+# We want the resource file only in shared liblzma. To avoid linking it into
+# static liblzma, we overwrite the static object file with an object file
+# compiled from empty input. Note that GNU-specific features are OK here,
+# because on Windows we are compiled with the GNU toolchain.
+#
+# The typedef in empty.c will prevent an empty translation unit, which is
+# not allowed by the C standard. It results in a warning with
+# -Wempty-translation-unit with Clang or -pedantic for GCC.
+.rc.lo:
+ $(LIBTOOL) --mode=compile $(RC) $(DEFS) $(DEFAULT_INCLUDES) \
+ $(INCLUDES) $(liblzma_la_CPPFLAGS) $(CPPFLAGS) $(RCFLAGS) \
+ -i $< -o $@
+ echo "typedef void empty;" > empty.c
+ $(COMPILE) -c empty.c -o $(*D)/$(*F).o
+
+# Remove ordinals from the generated .def file. People must link by name,
+# not by ordinal, because no one is going to track the ordinal numbers.
+liblzma.def: liblzma.la liblzma.def.in
+ sed 's/ \+@ *[0-9]\+//' liblzma.def.in > liblzma.def
+
+# Creating liblzma.def.in is a side effect of linking the library.
+liblzma.def.in: liblzma.la
+
+liblzma.pc: $(srcdir)/liblzma.pc.in
+ $(AM_V_at)rm -f $@
+ $(pc_verbose)sed \
+ -e 's,@prefix[@],$(prefix),g' \
+ -e 's,@exec_prefix[@],$(exec_prefix),g' \
+ -e 's,@libdir[@],$(libdir),g' \
+ -e 's,@includedir[@],$(includedir),g' \
+ -e 's,@PACKAGE_URL[@],$(PACKAGE_URL),g' \
+ -e 's,@PACKAGE_VERSION[@],$(PACKAGE_VERSION),g' \
+ -e 's,@PTHREAD_CFLAGS[@],$(PTHREAD_CFLAGS),g' \
+ -e 's,@LIBS[@],$(LIBS),g' \
+ < $(srcdir)/liblzma.pc.in > $@ || { rm -f $@; exit 1; }
+
+clean-local:
+ rm -f liblzma.pc
+
+# 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/src/liblzma/api/Makefile.in b/src/liblzma/api/Makefile.in
new file mode 100644
index 00000000..ef2dc0ca
--- /dev/null
+++ b/src/liblzma/api/Makefile.in
@@ -0,0 +1,631 @@
+# 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 = src/liblzma/api
+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 $(nobase_include_HEADERS) \
+ $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/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 =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) 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)$(includedir)"
+HEADERS = $(nobase_include_HEADERS)
+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
+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@
+nobase_include_HEADERS = \
+ lzma.h \
+ lzma/base.h \
+ lzma/bcj.h \
+ lzma/block.h \
+ lzma/check.h \
+ lzma/container.h \
+ lzma/delta.h \
+ lzma/filter.h \
+ lzma/hardware.h \
+ lzma/index.h \
+ lzma/index_hash.h \
+ lzma/lzma12.h \
+ lzma/stream_flags.h \
+ lzma/version.h \
+ lzma/vli.h
+
+all: all-am
+
+.SUFFIXES:
+$(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 src/liblzma/api/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/liblzma/api/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):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-nobase_includeHEADERS: $(nobase_include_HEADERS)
+ @$(NORMAL_INSTALL)
+ @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
+ fi; \
+ $(am__nobase_list) | while read dir files; do \
+ xfiles=; for file in $$files; do \
+ if test -f "$$file"; then xfiles="$$xfiles $$file"; \
+ else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
+ test -z "$$xfiles" || { \
+ test "x$$dir" = x. || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \
+ $(MKDIR_P) "$(DESTDIR)$(includedir)/$$dir"; }; \
+ echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(includedir)/$$dir'"; \
+ $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(includedir)/$$dir" || exit $$?; }; \
+ done
+
+uninstall-nobase_includeHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \
+ $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
+ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
+
+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 $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(includedir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+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 mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-nobase_includeHEADERS
+
+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 Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-nobase_includeHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-libtool cscopelist-am ctags ctags-am distclean \
+ 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-nobase_includeHEADERS install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am uninstall-nobase_includeHEADERS
+
+.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/src/lzmainfo/Makefile.in b/src/lzmainfo/Makefile.in
new file mode 100644
index 00000000..feea983d
--- /dev/null
+++ b/src/lzmainfo/Makefile.in
@@ -0,0 +1,867 @@
+# 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@
+bin_PROGRAMS = lzmainfo$(EXEEXT)
+@COND_W32_TRUE@am__append_1 = lzmainfo_w32res.rc
+@COND_GNULIB_TRUE@am__append_2 = $(top_builddir)/lib/libgnu.a
+subdir = src/lzmainfo
+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 =
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
+PROGRAMS = $(bin_PROGRAMS)
+am__lzmainfo_SOURCES_DIST = lzmainfo.c ../common/tuklib_progname.c \
+ ../common/tuklib_exit.c lzmainfo_w32res.rc
+@COND_W32_TRUE@am__objects_1 = lzmainfo_w32res.$(OBJEXT)
+am_lzmainfo_OBJECTS = lzmainfo-lzmainfo.$(OBJEXT) \
+ lzmainfo-tuklib_progname.$(OBJEXT) \
+ lzmainfo-tuklib_exit.$(OBJEXT) $(am__objects_1)
+lzmainfo_OBJECTS = $(am_lzmainfo_OBJECTS)
+am__DEPENDENCIES_1 =
+lzmainfo_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \
+ $(am__append_2) $(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 =
+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)/lzmainfo-lzmainfo.Po \
+ ./$(DEPDIR)/lzmainfo-tuklib_exit.Po \
+ ./$(DEPDIR)/lzmainfo-tuklib_progname.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 = $(lzmainfo_SOURCES)
+DIST_SOURCES = $(am__lzmainfo_SOURCES_DIST)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) 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; }; \
+ }
+man1dir = $(mandir)/man1
+NROFF = nroff
+MANS = $(dist_man_MANS)
+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 = $(dist_man_MANS) $(srcdir)/Makefile.in \
+ $(top_srcdir)/build-aux/depcomp
+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@
+lzmainfo_SOURCES = lzmainfo.c ../common/tuklib_progname.c \
+ ../common/tuklib_exit.c $(am__append_1)
+lzmainfo_CPPFLAGS = \
+ -DLOCALEDIR=\"$(localedir)\" \
+ -I$(top_srcdir)/src/common \
+ -I$(top_srcdir)/src/liblzma/api \
+ -I$(top_builddir)/lib
+
+lzmainfo_LDADD = $(top_builddir)/src/liblzma/liblzma.la \
+ $(am__append_2) $(LTLIBINTL)
+dist_man_MANS = lzmainfo.1
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj .rc
+$(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 src/lzmainfo/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/lzmainfo/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):
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+ @list='$(bin_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
+
+lzmainfo$(EXEEXT): $(lzmainfo_OBJECTS) $(lzmainfo_DEPENDENCIES) $(EXTRA_lzmainfo_DEPENDENCIES)
+ @rm -f lzmainfo$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(lzmainfo_OBJECTS) $(lzmainfo_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzmainfo-lzmainfo.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzmainfo-tuklib_exit.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzmainfo-tuklib_progname.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 $@ $<
+
+lzmainfo-lzmainfo.o: lzmainfo.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmainfo_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lzmainfo-lzmainfo.o -MD -MP -MF $(DEPDIR)/lzmainfo-lzmainfo.Tpo -c -o lzmainfo-lzmainfo.o `test -f 'lzmainfo.c' || echo '$(srcdir)/'`lzmainfo.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lzmainfo-lzmainfo.Tpo $(DEPDIR)/lzmainfo-lzmainfo.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lzmainfo.c' object='lzmainfo-lzmainfo.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmainfo_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lzmainfo-lzmainfo.o `test -f 'lzmainfo.c' || echo '$(srcdir)/'`lzmainfo.c
+
+lzmainfo-lzmainfo.obj: lzmainfo.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmainfo_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lzmainfo-lzmainfo.obj -MD -MP -MF $(DEPDIR)/lzmainfo-lzmainfo.Tpo -c -o lzmainfo-lzmainfo.obj `if test -f 'lzmainfo.c'; then $(CYGPATH_W) 'lzmainfo.c'; else $(CYGPATH_W) '$(srcdir)/lzmainfo.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lzmainfo-lzmainfo.Tpo $(DEPDIR)/lzmainfo-lzmainfo.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lzmainfo.c' object='lzmainfo-lzmainfo.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmainfo_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lzmainfo-lzmainfo.obj `if test -f 'lzmainfo.c'; then $(CYGPATH_W) 'lzmainfo.c'; else $(CYGPATH_W) '$(srcdir)/lzmainfo.c'; fi`
+
+lzmainfo-tuklib_progname.o: ../common/tuklib_progname.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmainfo_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lzmainfo-tuklib_progname.o -MD -MP -MF $(DEPDIR)/lzmainfo-tuklib_progname.Tpo -c -o lzmainfo-tuklib_progname.o `test -f '../common/tuklib_progname.c' || echo '$(srcdir)/'`../common/tuklib_progname.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lzmainfo-tuklib_progname.Tpo $(DEPDIR)/lzmainfo-tuklib_progname.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_progname.c' object='lzmainfo-tuklib_progname.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmainfo_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lzmainfo-tuklib_progname.o `test -f '../common/tuklib_progname.c' || echo '$(srcdir)/'`../common/tuklib_progname.c
+
+lzmainfo-tuklib_progname.obj: ../common/tuklib_progname.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmainfo_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lzmainfo-tuklib_progname.obj -MD -MP -MF $(DEPDIR)/lzmainfo-tuklib_progname.Tpo -c -o lzmainfo-tuklib_progname.obj `if test -f '../common/tuklib_progname.c'; then $(CYGPATH_W) '../common/tuklib_progname.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_progname.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lzmainfo-tuklib_progname.Tpo $(DEPDIR)/lzmainfo-tuklib_progname.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_progname.c' object='lzmainfo-tuklib_progname.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmainfo_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lzmainfo-tuklib_progname.obj `if test -f '../common/tuklib_progname.c'; then $(CYGPATH_W) '../common/tuklib_progname.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_progname.c'; fi`
+
+lzmainfo-tuklib_exit.o: ../common/tuklib_exit.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmainfo_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lzmainfo-tuklib_exit.o -MD -MP -MF $(DEPDIR)/lzmainfo-tuklib_exit.Tpo -c -o lzmainfo-tuklib_exit.o `test -f '../common/tuklib_exit.c' || echo '$(srcdir)/'`../common/tuklib_exit.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lzmainfo-tuklib_exit.Tpo $(DEPDIR)/lzmainfo-tuklib_exit.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_exit.c' object='lzmainfo-tuklib_exit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmainfo_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lzmainfo-tuklib_exit.o `test -f '../common/tuklib_exit.c' || echo '$(srcdir)/'`../common/tuklib_exit.c
+
+lzmainfo-tuklib_exit.obj: ../common/tuklib_exit.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmainfo_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lzmainfo-tuklib_exit.obj -MD -MP -MF $(DEPDIR)/lzmainfo-tuklib_exit.Tpo -c -o lzmainfo-tuklib_exit.obj `if test -f '../common/tuklib_exit.c'; then $(CYGPATH_W) '../common/tuklib_exit.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_exit.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lzmainfo-tuklib_exit.Tpo $(DEPDIR)/lzmainfo-tuklib_exit.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_exit.c' object='lzmainfo-tuklib_exit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmainfo_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lzmainfo-tuklib_exit.obj `if test -f '../common/tuklib_exit.c'; then $(CYGPATH_W) '../common/tuklib_exit.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_exit.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-man1: $(dist_man_MANS)
+ @$(NORMAL_INSTALL)
+ @list1=''; \
+ list2='$(dist_man_MANS)'; \
+ test -n "$(man1dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.1[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man1:
+ @$(NORMAL_UNINSTALL)
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
+
+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) $(MANS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+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-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f ./$(DEPDIR)/lzmainfo-lzmainfo.Po
+ -rm -f ./$(DEPDIR)/lzmainfo-tuklib_exit.Po
+ -rm -f ./$(DEPDIR)/lzmainfo-tuklib_progname.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-man
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man: install-man1
+
+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)/lzmainfo-lzmainfo.Po
+ -rm -f ./$(DEPDIR)/lzmainfo-tuklib_exit.Po
+ -rm -f ./$(DEPDIR)/lzmainfo-tuklib_progname.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: uninstall-binPROGRAMS uninstall-man
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
+uninstall-man: uninstall-man1
+
+.MAKE: install-am install-data-am install-strip uninstall-am
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+ clean-binPROGRAMS clean-generic clean-libtool 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-binPROGRAMS \
+ install-data install-data-am install-data-hook install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-man1 install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am uninstall-binPROGRAMS uninstall-hook \
+ uninstall-man uninstall-man1
+
+.PRECIOUS: Makefile
+
+
+# Windows resource compiler support
+.rc.o:
+ $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(lzmainfo_CPPFLAGS) $(CPPFLAGS) $(RCFLAGS) -i $< -o $@
+
+# The installation of translated man pages abuses Automake internals
+# by calling "install-man" with redefined dist_man_MANS and man_MANS.
+# If this breaks some day, don't blame Automake developers.
+install-data-hook:
+ languages= ; \
+ if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+ languages=`ls "$(top_srcdir)/po4a/man"`; \
+ fi; \
+ for lang in . $$languages; do \
+ man="$(top_srcdir)/po4a/man/$$lang/lzmainfo.1" ; \
+ if test -f "$$man"; then \
+ $(MAKE) dist_man_MANS="$$man" man_MANS= \
+ mandir="$(mandir)/$$lang" install-man; \
+ fi; \
+ done
+
+uninstall-hook:
+ languages= ; \
+ if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+ languages=`ls "$(top_srcdir)/po4a/man"`; \
+ fi; \
+ for lang in . $$languages; do \
+ name=`echo lzmainfo | sed '$(transform)'` && \
+ rm -f "$(DESTDIR)$(mandir)/$$lang/man1/$$name.1"; \
+ done
+
+# 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/src/scripts/Makefile.in b/src/scripts/Makefile.in
new file mode 100644
index 00000000..5cd5dbdc
--- /dev/null
+++ b/src/scripts/Makefile.in
@@ -0,0 +1,701 @@
+# 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_LZMALINKS_TRUE@am__append_1 = \
+@COND_LZMALINKS_TRUE@ xzdiff-lzdiff \
+@COND_LZMALINKS_TRUE@ xzdiff-lzcmp \
+@COND_LZMALINKS_TRUE@ xzgrep-lzgrep \
+@COND_LZMALINKS_TRUE@ xzgrep-lzegrep \
+@COND_LZMALINKS_TRUE@ xzgrep-lzfgrep \
+@COND_LZMALINKS_TRUE@ xzmore-lzmore \
+@COND_LZMALINKS_TRUE@ xzless-lzless
+
+subdir = src/scripts
+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 = xzdiff xzgrep xzmore xzless
+CONFIG_CLEAN_VPATH_FILES =
+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)$(bindir)" "$(DESTDIR)$(man1dir)"
+SCRIPTS = $(nodist_bin_SCRIPTS)
+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 =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+man1dir = $(mandir)/man1
+NROFF = nroff
+MANS = $(dist_man_MANS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \
+ $(srcdir)/xzdiff.in $(srcdir)/xzgrep.in $(srcdir)/xzless.in \
+ $(srcdir)/xzmore.in
+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@
+nodist_bin_SCRIPTS = xzdiff xzgrep xzmore xzless
+dist_man_MANS = xzdiff.1 xzgrep.1 xzmore.1 xzless.1
+links = xzdiff-xzcmp xzgrep-xzegrep xzgrep-xzfgrep $(am__append_1)
+all: all-am
+
+.SUFFIXES:
+$(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 src/scripts/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/scripts/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):
+xzdiff: $(top_builddir)/config.status $(srcdir)/xzdiff.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+xzgrep: $(top_builddir)/config.status $(srcdir)/xzgrep.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+xzmore: $(top_builddir)/config.status $(srcdir)/xzmore.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+xzless: $(top_builddir)/config.status $(srcdir)/xzless.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+install-nodist_binSCRIPTS: $(nodist_bin_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ @list='$(nodist_bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-nodist_binSCRIPTS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(nodist_bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-man1: $(dist_man_MANS)
+ @$(NORMAL_INSTALL)
+ @list1=''; \
+ list2='$(dist_man_MANS)'; \
+ test -n "$(man1dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.1[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man1:
+ @$(NORMAL_UNINSTALL)
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
+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: check-am
+all-am: Makefile $(SCRIPTS) $(MANS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+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 mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-man
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-nodist_binSCRIPTS
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man: install-man1
+
+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 Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-man uninstall-nodist_binSCRIPTS
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
+uninstall-man: uninstall-man1
+
+.MAKE: install-am install-data-am install-exec-am install-strip \
+ uninstall-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ cscopelist-am ctags-am distclean distclean-generic \
+ distclean-libtool distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-data-hook install-dvi install-dvi-am install-exec \
+ install-exec-am install-exec-hook install-html install-html-am \
+ install-info install-info-am install-man install-man1 \
+ install-nodist_binSCRIPTS install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+ uninstall-am uninstall-hook uninstall-man uninstall-man1 \
+ uninstall-nodist_binSCRIPTS
+
+.PRECIOUS: Makefile
+
+
+install-exec-hook:
+ cd "$(DESTDIR)$(bindir)" && \
+ for pair in $(links); do \
+ target=`echo $$pair | sed 's/-.*$$//' | sed '$(transform)'` && \
+ link=`echo $$pair | sed 's/^.*-//' | sed '$(transform)'` && \
+ rm -f "$$link" && \
+ $(LN_S) "$$target" "$$link"; \
+ done
+
+# The installation of translated man pages abuses Automake internals
+# by calling "install-man" with redefined dist_man_MANS and man_MANS.
+# If this breaks some day, don't blame Automake developers.
+install-data-hook:
+ languages= ; \
+ if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+ languages=`ls "$(top_srcdir)/po4a/man"`; \
+ fi; \
+ for lang in $$languages; do \
+ mans= ; \
+ for man in $(dist_man_MANS); do \
+ man="$(top_srcdir)/po4a/man/$$lang/$$man" ; \
+ if test -f "$$man"; then \
+ mans="$$mans $$man"; \
+ fi; \
+ done; \
+ $(MAKE) dist_man_MANS="$$mans" man_MANS= \
+ mandir="$(mandir)/$$lang" install-man; \
+ done; \
+ for lang in . $$languages; do \
+ for pair in $(links); do \
+ target=`echo $$pair | sed 's/-.*$$//' \
+ | sed '$(transform)'` && \
+ link=`echo $$pair | sed 's/^.*-//' \
+ | sed '$(transform)'` && \
+ man1dir="$(DESTDIR)$(mandir)/$$lang/man1" && \
+ if test -f "$$man1dir/$$target.1"; then ( \
+ cd "$$man1dir" && \
+ rm -f "$$link.1" && \
+ $(LN_S) "$$target.1" "$$link.1" \
+ ); fi; \
+ done; \
+ done
+
+uninstall-hook:
+ cd "$(DESTDIR)$(bindir)" && \
+ for pair in $(links); do \
+ link=`echo $$pair | sed 's/^.*-//' | sed '$(transform)'` && \
+ rm -f "$$link"; \
+ done
+ languages= ; \
+ if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+ languages=`ls "$(top_srcdir)/po4a/man"`; \
+ fi; \
+ for lang in . $$languages; do \
+ for pair in $(links); do \
+ target=`echo $$pair | sed 's/-.*$$//' \
+ | sed '$(transform)'` && \
+ link=`echo $$pair | sed 's/^.*-//' \
+ | sed '$(transform)'` && \
+ rm -f "$(DESTDIR)$(mandir)/$$lang/man1/$$target.1" \
+ "$(DESTDIR)$(mandir)/$$lang/man1/$$link.1"; \
+ done; \
+ done
+
+# 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/src/xz/Makefile.in b/src/xz/Makefile.in
new file mode 100644
index 00000000..18e01510
--- /dev/null
+++ b/src/xz/Makefile.in
@@ -0,0 +1,1183 @@
+# 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@
+bin_PROGRAMS = xz$(EXEEXT)
+@COND_MAIN_DECODER_TRUE@am__append_1 = \
+@COND_MAIN_DECODER_TRUE@ list.c \
+@COND_MAIN_DECODER_TRUE@ list.h
+
+@COND_W32_TRUE@am__append_2 = xz_w32res.rc
+@COND_GNULIB_TRUE@am__append_3 = $(top_builddir)/lib/libgnu.a
+@COND_LZMALINKS_TRUE@am__append_4 = lzma unlzma lzcat
+subdir = src/xz
+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 =
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
+PROGRAMS = $(bin_PROGRAMS)
+am__xz_SOURCES_DIST = args.c args.h coder.c coder.h file_io.c \
+ file_io.h hardware.c hardware.h main.c main.h message.c \
+ message.h mytime.c mytime.h options.c options.h private.h \
+ sandbox.c sandbox.h signals.c signals.h suffix.c suffix.h \
+ util.c util.h ../common/tuklib_open_stdxxx.c \
+ ../common/tuklib_progname.c ../common/tuklib_exit.c \
+ ../common/tuklib_mbstr_width.c ../common/tuklib_mbstr_fw.c \
+ list.c list.h xz_w32res.rc
+@COND_MAIN_DECODER_TRUE@am__objects_1 = xz-list.$(OBJEXT)
+@COND_W32_TRUE@am__objects_2 = xz_w32res.$(OBJEXT)
+am_xz_OBJECTS = xz-args.$(OBJEXT) xz-coder.$(OBJEXT) \
+ xz-file_io.$(OBJEXT) xz-hardware.$(OBJEXT) xz-main.$(OBJEXT) \
+ xz-message.$(OBJEXT) xz-mytime.$(OBJEXT) xz-options.$(OBJEXT) \
+ xz-sandbox.$(OBJEXT) xz-signals.$(OBJEXT) xz-suffix.$(OBJEXT) \
+ xz-util.$(OBJEXT) xz-tuklib_open_stdxxx.$(OBJEXT) \
+ xz-tuklib_progname.$(OBJEXT) xz-tuklib_exit.$(OBJEXT) \
+ xz-tuklib_mbstr_width.$(OBJEXT) xz-tuklib_mbstr_fw.$(OBJEXT) \
+ $(am__objects_1) $(am__objects_2)
+xz_OBJECTS = $(am_xz_OBJECTS)
+am__DEPENDENCIES_1 =
+xz_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \
+ $(am__append_3) $(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 =
+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)/xz-args.Po ./$(DEPDIR)/xz-coder.Po \
+ ./$(DEPDIR)/xz-file_io.Po ./$(DEPDIR)/xz-hardware.Po \
+ ./$(DEPDIR)/xz-list.Po ./$(DEPDIR)/xz-main.Po \
+ ./$(DEPDIR)/xz-message.Po ./$(DEPDIR)/xz-mytime.Po \
+ ./$(DEPDIR)/xz-options.Po ./$(DEPDIR)/xz-sandbox.Po \
+ ./$(DEPDIR)/xz-signals.Po ./$(DEPDIR)/xz-suffix.Po \
+ ./$(DEPDIR)/xz-tuklib_exit.Po \
+ ./$(DEPDIR)/xz-tuklib_mbstr_fw.Po \
+ ./$(DEPDIR)/xz-tuklib_mbstr_width.Po \
+ ./$(DEPDIR)/xz-tuklib_open_stdxxx.Po \
+ ./$(DEPDIR)/xz-tuklib_progname.Po ./$(DEPDIR)/xz-util.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 = $(xz_SOURCES)
+DIST_SOURCES = $(am__xz_SOURCES_DIST)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) 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; }; \
+ }
+man1dir = $(mandir)/man1
+NROFF = nroff
+MANS = $(dist_man_MANS)
+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 = $(dist_man_MANS) $(srcdir)/Makefile.in \
+ $(top_srcdir)/build-aux/depcomp
+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@
+xz_SOURCES = args.c args.h coder.c coder.h file_io.c file_io.h \
+ hardware.c hardware.h main.c main.h message.c message.h \
+ mytime.c mytime.h options.c options.h private.h sandbox.c \
+ sandbox.h signals.c signals.h suffix.c suffix.h util.c util.h \
+ ../common/tuklib_open_stdxxx.c ../common/tuklib_progname.c \
+ ../common/tuklib_exit.c ../common/tuklib_mbstr_width.c \
+ ../common/tuklib_mbstr_fw.c $(am__append_1) $(am__append_2)
+xz_CPPFLAGS = \
+ -DLOCALEDIR=\"$(localedir)\" \
+ -I$(top_srcdir)/src/common \
+ -I$(top_srcdir)/src/liblzma/api \
+ -I$(top_builddir)/lib
+
+
+# libgnu.a may need these libs, so this must be after libgnu.a.
+xz_LDADD = $(top_builddir)/src/liblzma/liblzma.la $(am__append_3) \
+ $(LTLIBINTL)
+dist_man_MANS = xz.1
+xzlinks = unxz xzcat $(am__append_4)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj .rc
+$(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 src/xz/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/xz/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):
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+ @list='$(bin_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
+
+xz$(EXEEXT): $(xz_OBJECTS) $(xz_DEPENDENCIES) $(EXTRA_xz_DEPENDENCIES)
+ @rm -f xz$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(xz_OBJECTS) $(xz_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-args.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-coder.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-file_io.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-hardware.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-list.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-main.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-message.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-mytime.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-options.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-sandbox.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-signals.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-suffix.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-tuklib_exit.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-tuklib_mbstr_fw.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-tuklib_mbstr_width.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-tuklib_open_stdxxx.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-tuklib_progname.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xz-util.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 $@ $<
+
+xz-args.o: args.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-args.o -MD -MP -MF $(DEPDIR)/xz-args.Tpo -c -o xz-args.o `test -f 'args.c' || echo '$(srcdir)/'`args.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-args.Tpo $(DEPDIR)/xz-args.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='args.c' object='xz-args.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-args.o `test -f 'args.c' || echo '$(srcdir)/'`args.c
+
+xz-args.obj: args.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-args.obj -MD -MP -MF $(DEPDIR)/xz-args.Tpo -c -o xz-args.obj `if test -f 'args.c'; then $(CYGPATH_W) 'args.c'; else $(CYGPATH_W) '$(srcdir)/args.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-args.Tpo $(DEPDIR)/xz-args.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='args.c' object='xz-args.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-args.obj `if test -f 'args.c'; then $(CYGPATH_W) 'args.c'; else $(CYGPATH_W) '$(srcdir)/args.c'; fi`
+
+xz-coder.o: coder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-coder.o -MD -MP -MF $(DEPDIR)/xz-coder.Tpo -c -o xz-coder.o `test -f 'coder.c' || echo '$(srcdir)/'`coder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-coder.Tpo $(DEPDIR)/xz-coder.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='coder.c' object='xz-coder.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-coder.o `test -f 'coder.c' || echo '$(srcdir)/'`coder.c
+
+xz-coder.obj: coder.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-coder.obj -MD -MP -MF $(DEPDIR)/xz-coder.Tpo -c -o xz-coder.obj `if test -f 'coder.c'; then $(CYGPATH_W) 'coder.c'; else $(CYGPATH_W) '$(srcdir)/coder.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-coder.Tpo $(DEPDIR)/xz-coder.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='coder.c' object='xz-coder.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-coder.obj `if test -f 'coder.c'; then $(CYGPATH_W) 'coder.c'; else $(CYGPATH_W) '$(srcdir)/coder.c'; fi`
+
+xz-file_io.o: file_io.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-file_io.o -MD -MP -MF $(DEPDIR)/xz-file_io.Tpo -c -o xz-file_io.o `test -f 'file_io.c' || echo '$(srcdir)/'`file_io.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-file_io.Tpo $(DEPDIR)/xz-file_io.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='file_io.c' object='xz-file_io.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-file_io.o `test -f 'file_io.c' || echo '$(srcdir)/'`file_io.c
+
+xz-file_io.obj: file_io.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-file_io.obj -MD -MP -MF $(DEPDIR)/xz-file_io.Tpo -c -o xz-file_io.obj `if test -f 'file_io.c'; then $(CYGPATH_W) 'file_io.c'; else $(CYGPATH_W) '$(srcdir)/file_io.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-file_io.Tpo $(DEPDIR)/xz-file_io.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='file_io.c' object='xz-file_io.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-file_io.obj `if test -f 'file_io.c'; then $(CYGPATH_W) 'file_io.c'; else $(CYGPATH_W) '$(srcdir)/file_io.c'; fi`
+
+xz-hardware.o: hardware.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-hardware.o -MD -MP -MF $(DEPDIR)/xz-hardware.Tpo -c -o xz-hardware.o `test -f 'hardware.c' || echo '$(srcdir)/'`hardware.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-hardware.Tpo $(DEPDIR)/xz-hardware.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hardware.c' object='xz-hardware.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-hardware.o `test -f 'hardware.c' || echo '$(srcdir)/'`hardware.c
+
+xz-hardware.obj: hardware.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-hardware.obj -MD -MP -MF $(DEPDIR)/xz-hardware.Tpo -c -o xz-hardware.obj `if test -f 'hardware.c'; then $(CYGPATH_W) 'hardware.c'; else $(CYGPATH_W) '$(srcdir)/hardware.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-hardware.Tpo $(DEPDIR)/xz-hardware.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='hardware.c' object='xz-hardware.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-hardware.obj `if test -f 'hardware.c'; then $(CYGPATH_W) 'hardware.c'; else $(CYGPATH_W) '$(srcdir)/hardware.c'; fi`
+
+xz-main.o: main.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-main.o -MD -MP -MF $(DEPDIR)/xz-main.Tpo -c -o xz-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-main.Tpo $(DEPDIR)/xz-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='main.c' object='xz-main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+
+xz-main.obj: main.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-main.obj -MD -MP -MF $(DEPDIR)/xz-main.Tpo -c -o xz-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-main.Tpo $(DEPDIR)/xz-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='main.c' object='xz-main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+
+xz-message.o: message.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-message.o -MD -MP -MF $(DEPDIR)/xz-message.Tpo -c -o xz-message.o `test -f 'message.c' || echo '$(srcdir)/'`message.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-message.Tpo $(DEPDIR)/xz-message.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='message.c' object='xz-message.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-message.o `test -f 'message.c' || echo '$(srcdir)/'`message.c
+
+xz-message.obj: message.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-message.obj -MD -MP -MF $(DEPDIR)/xz-message.Tpo -c -o xz-message.obj `if test -f 'message.c'; then $(CYGPATH_W) 'message.c'; else $(CYGPATH_W) '$(srcdir)/message.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-message.Tpo $(DEPDIR)/xz-message.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='message.c' object='xz-message.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-message.obj `if test -f 'message.c'; then $(CYGPATH_W) 'message.c'; else $(CYGPATH_W) '$(srcdir)/message.c'; fi`
+
+xz-mytime.o: mytime.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-mytime.o -MD -MP -MF $(DEPDIR)/xz-mytime.Tpo -c -o xz-mytime.o `test -f 'mytime.c' || echo '$(srcdir)/'`mytime.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-mytime.Tpo $(DEPDIR)/xz-mytime.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mytime.c' object='xz-mytime.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-mytime.o `test -f 'mytime.c' || echo '$(srcdir)/'`mytime.c
+
+xz-mytime.obj: mytime.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-mytime.obj -MD -MP -MF $(DEPDIR)/xz-mytime.Tpo -c -o xz-mytime.obj `if test -f 'mytime.c'; then $(CYGPATH_W) 'mytime.c'; else $(CYGPATH_W) '$(srcdir)/mytime.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-mytime.Tpo $(DEPDIR)/xz-mytime.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mytime.c' object='xz-mytime.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-mytime.obj `if test -f 'mytime.c'; then $(CYGPATH_W) 'mytime.c'; else $(CYGPATH_W) '$(srcdir)/mytime.c'; fi`
+
+xz-options.o: options.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-options.o -MD -MP -MF $(DEPDIR)/xz-options.Tpo -c -o xz-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-options.Tpo $(DEPDIR)/xz-options.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='options.c' object='xz-options.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-options.o `test -f 'options.c' || echo '$(srcdir)/'`options.c
+
+xz-options.obj: options.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-options.obj -MD -MP -MF $(DEPDIR)/xz-options.Tpo -c -o xz-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-options.Tpo $(DEPDIR)/xz-options.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='options.c' object='xz-options.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-options.obj `if test -f 'options.c'; then $(CYGPATH_W) 'options.c'; else $(CYGPATH_W) '$(srcdir)/options.c'; fi`
+
+xz-sandbox.o: sandbox.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-sandbox.o -MD -MP -MF $(DEPDIR)/xz-sandbox.Tpo -c -o xz-sandbox.o `test -f 'sandbox.c' || echo '$(srcdir)/'`sandbox.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-sandbox.Tpo $(DEPDIR)/xz-sandbox.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sandbox.c' object='xz-sandbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-sandbox.o `test -f 'sandbox.c' || echo '$(srcdir)/'`sandbox.c
+
+xz-sandbox.obj: sandbox.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-sandbox.obj -MD -MP -MF $(DEPDIR)/xz-sandbox.Tpo -c -o xz-sandbox.obj `if test -f 'sandbox.c'; then $(CYGPATH_W) 'sandbox.c'; else $(CYGPATH_W) '$(srcdir)/sandbox.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-sandbox.Tpo $(DEPDIR)/xz-sandbox.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sandbox.c' object='xz-sandbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-sandbox.obj `if test -f 'sandbox.c'; then $(CYGPATH_W) 'sandbox.c'; else $(CYGPATH_W) '$(srcdir)/sandbox.c'; fi`
+
+xz-signals.o: signals.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-signals.o -MD -MP -MF $(DEPDIR)/xz-signals.Tpo -c -o xz-signals.o `test -f 'signals.c' || echo '$(srcdir)/'`signals.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-signals.Tpo $(DEPDIR)/xz-signals.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='signals.c' object='xz-signals.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-signals.o `test -f 'signals.c' || echo '$(srcdir)/'`signals.c
+
+xz-signals.obj: signals.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-signals.obj -MD -MP -MF $(DEPDIR)/xz-signals.Tpo -c -o xz-signals.obj `if test -f 'signals.c'; then $(CYGPATH_W) 'signals.c'; else $(CYGPATH_W) '$(srcdir)/signals.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-signals.Tpo $(DEPDIR)/xz-signals.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='signals.c' object='xz-signals.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-signals.obj `if test -f 'signals.c'; then $(CYGPATH_W) 'signals.c'; else $(CYGPATH_W) '$(srcdir)/signals.c'; fi`
+
+xz-suffix.o: suffix.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-suffix.o -MD -MP -MF $(DEPDIR)/xz-suffix.Tpo -c -o xz-suffix.o `test -f 'suffix.c' || echo '$(srcdir)/'`suffix.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-suffix.Tpo $(DEPDIR)/xz-suffix.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='suffix.c' object='xz-suffix.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-suffix.o `test -f 'suffix.c' || echo '$(srcdir)/'`suffix.c
+
+xz-suffix.obj: suffix.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-suffix.obj -MD -MP -MF $(DEPDIR)/xz-suffix.Tpo -c -o xz-suffix.obj `if test -f 'suffix.c'; then $(CYGPATH_W) 'suffix.c'; else $(CYGPATH_W) '$(srcdir)/suffix.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-suffix.Tpo $(DEPDIR)/xz-suffix.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='suffix.c' object='xz-suffix.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-suffix.obj `if test -f 'suffix.c'; then $(CYGPATH_W) 'suffix.c'; else $(CYGPATH_W) '$(srcdir)/suffix.c'; fi`
+
+xz-util.o: util.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-util.o -MD -MP -MF $(DEPDIR)/xz-util.Tpo -c -o xz-util.o `test -f 'util.c' || echo '$(srcdir)/'`util.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-util.Tpo $(DEPDIR)/xz-util.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='util.c' object='xz-util.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-util.o `test -f 'util.c' || echo '$(srcdir)/'`util.c
+
+xz-util.obj: util.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-util.obj -MD -MP -MF $(DEPDIR)/xz-util.Tpo -c -o xz-util.obj `if test -f 'util.c'; then $(CYGPATH_W) 'util.c'; else $(CYGPATH_W) '$(srcdir)/util.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-util.Tpo $(DEPDIR)/xz-util.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='util.c' object='xz-util.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-util.obj `if test -f 'util.c'; then $(CYGPATH_W) 'util.c'; else $(CYGPATH_W) '$(srcdir)/util.c'; fi`
+
+xz-tuklib_open_stdxxx.o: ../common/tuklib_open_stdxxx.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-tuklib_open_stdxxx.o -MD -MP -MF $(DEPDIR)/xz-tuklib_open_stdxxx.Tpo -c -o xz-tuklib_open_stdxxx.o `test -f '../common/tuklib_open_stdxxx.c' || echo '$(srcdir)/'`../common/tuklib_open_stdxxx.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-tuklib_open_stdxxx.Tpo $(DEPDIR)/xz-tuklib_open_stdxxx.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_open_stdxxx.c' object='xz-tuklib_open_stdxxx.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-tuklib_open_stdxxx.o `test -f '../common/tuklib_open_stdxxx.c' || echo '$(srcdir)/'`../common/tuklib_open_stdxxx.c
+
+xz-tuklib_open_stdxxx.obj: ../common/tuklib_open_stdxxx.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-tuklib_open_stdxxx.obj -MD -MP -MF $(DEPDIR)/xz-tuklib_open_stdxxx.Tpo -c -o xz-tuklib_open_stdxxx.obj `if test -f '../common/tuklib_open_stdxxx.c'; then $(CYGPATH_W) '../common/tuklib_open_stdxxx.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_open_stdxxx.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-tuklib_open_stdxxx.Tpo $(DEPDIR)/xz-tuklib_open_stdxxx.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_open_stdxxx.c' object='xz-tuklib_open_stdxxx.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-tuklib_open_stdxxx.obj `if test -f '../common/tuklib_open_stdxxx.c'; then $(CYGPATH_W) '../common/tuklib_open_stdxxx.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_open_stdxxx.c'; fi`
+
+xz-tuklib_progname.o: ../common/tuklib_progname.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-tuklib_progname.o -MD -MP -MF $(DEPDIR)/xz-tuklib_progname.Tpo -c -o xz-tuklib_progname.o `test -f '../common/tuklib_progname.c' || echo '$(srcdir)/'`../common/tuklib_progname.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-tuklib_progname.Tpo $(DEPDIR)/xz-tuklib_progname.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_progname.c' object='xz-tuklib_progname.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-tuklib_progname.o `test -f '../common/tuklib_progname.c' || echo '$(srcdir)/'`../common/tuklib_progname.c
+
+xz-tuklib_progname.obj: ../common/tuklib_progname.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-tuklib_progname.obj -MD -MP -MF $(DEPDIR)/xz-tuklib_progname.Tpo -c -o xz-tuklib_progname.obj `if test -f '../common/tuklib_progname.c'; then $(CYGPATH_W) '../common/tuklib_progname.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_progname.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-tuklib_progname.Tpo $(DEPDIR)/xz-tuklib_progname.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_progname.c' object='xz-tuklib_progname.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-tuklib_progname.obj `if test -f '../common/tuklib_progname.c'; then $(CYGPATH_W) '../common/tuklib_progname.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_progname.c'; fi`
+
+xz-tuklib_exit.o: ../common/tuklib_exit.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-tuklib_exit.o -MD -MP -MF $(DEPDIR)/xz-tuklib_exit.Tpo -c -o xz-tuklib_exit.o `test -f '../common/tuklib_exit.c' || echo '$(srcdir)/'`../common/tuklib_exit.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-tuklib_exit.Tpo $(DEPDIR)/xz-tuklib_exit.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_exit.c' object='xz-tuklib_exit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-tuklib_exit.o `test -f '../common/tuklib_exit.c' || echo '$(srcdir)/'`../common/tuklib_exit.c
+
+xz-tuklib_exit.obj: ../common/tuklib_exit.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-tuklib_exit.obj -MD -MP -MF $(DEPDIR)/xz-tuklib_exit.Tpo -c -o xz-tuklib_exit.obj `if test -f '../common/tuklib_exit.c'; then $(CYGPATH_W) '../common/tuklib_exit.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_exit.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-tuklib_exit.Tpo $(DEPDIR)/xz-tuklib_exit.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_exit.c' object='xz-tuklib_exit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-tuklib_exit.obj `if test -f '../common/tuklib_exit.c'; then $(CYGPATH_W) '../common/tuklib_exit.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_exit.c'; fi`
+
+xz-tuklib_mbstr_width.o: ../common/tuklib_mbstr_width.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-tuklib_mbstr_width.o -MD -MP -MF $(DEPDIR)/xz-tuklib_mbstr_width.Tpo -c -o xz-tuklib_mbstr_width.o `test -f '../common/tuklib_mbstr_width.c' || echo '$(srcdir)/'`../common/tuklib_mbstr_width.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-tuklib_mbstr_width.Tpo $(DEPDIR)/xz-tuklib_mbstr_width.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_mbstr_width.c' object='xz-tuklib_mbstr_width.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-tuklib_mbstr_width.o `test -f '../common/tuklib_mbstr_width.c' || echo '$(srcdir)/'`../common/tuklib_mbstr_width.c
+
+xz-tuklib_mbstr_width.obj: ../common/tuklib_mbstr_width.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-tuklib_mbstr_width.obj -MD -MP -MF $(DEPDIR)/xz-tuklib_mbstr_width.Tpo -c -o xz-tuklib_mbstr_width.obj `if test -f '../common/tuklib_mbstr_width.c'; then $(CYGPATH_W) '../common/tuklib_mbstr_width.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_mbstr_width.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-tuklib_mbstr_width.Tpo $(DEPDIR)/xz-tuklib_mbstr_width.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_mbstr_width.c' object='xz-tuklib_mbstr_width.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-tuklib_mbstr_width.obj `if test -f '../common/tuklib_mbstr_width.c'; then $(CYGPATH_W) '../common/tuklib_mbstr_width.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_mbstr_width.c'; fi`
+
+xz-tuklib_mbstr_fw.o: ../common/tuklib_mbstr_fw.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-tuklib_mbstr_fw.o -MD -MP -MF $(DEPDIR)/xz-tuklib_mbstr_fw.Tpo -c -o xz-tuklib_mbstr_fw.o `test -f '../common/tuklib_mbstr_fw.c' || echo '$(srcdir)/'`../common/tuklib_mbstr_fw.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-tuklib_mbstr_fw.Tpo $(DEPDIR)/xz-tuklib_mbstr_fw.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_mbstr_fw.c' object='xz-tuklib_mbstr_fw.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-tuklib_mbstr_fw.o `test -f '../common/tuklib_mbstr_fw.c' || echo '$(srcdir)/'`../common/tuklib_mbstr_fw.c
+
+xz-tuklib_mbstr_fw.obj: ../common/tuklib_mbstr_fw.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-tuklib_mbstr_fw.obj -MD -MP -MF $(DEPDIR)/xz-tuklib_mbstr_fw.Tpo -c -o xz-tuklib_mbstr_fw.obj `if test -f '../common/tuklib_mbstr_fw.c'; then $(CYGPATH_W) '../common/tuklib_mbstr_fw.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_mbstr_fw.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-tuklib_mbstr_fw.Tpo $(DEPDIR)/xz-tuklib_mbstr_fw.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_mbstr_fw.c' object='xz-tuklib_mbstr_fw.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-tuklib_mbstr_fw.obj `if test -f '../common/tuklib_mbstr_fw.c'; then $(CYGPATH_W) '../common/tuklib_mbstr_fw.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_mbstr_fw.c'; fi`
+
+xz-list.o: list.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-list.o -MD -MP -MF $(DEPDIR)/xz-list.Tpo -c -o xz-list.o `test -f 'list.c' || echo '$(srcdir)/'`list.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-list.Tpo $(DEPDIR)/xz-list.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='list.c' object='xz-list.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-list.o `test -f 'list.c' || echo '$(srcdir)/'`list.c
+
+xz-list.obj: list.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xz-list.obj -MD -MP -MF $(DEPDIR)/xz-list.Tpo -c -o xz-list.obj `if test -f 'list.c'; then $(CYGPATH_W) 'list.c'; else $(CYGPATH_W) '$(srcdir)/list.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xz-list.Tpo $(DEPDIR)/xz-list.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='list.c' object='xz-list.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xz_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xz-list.obj `if test -f 'list.c'; then $(CYGPATH_W) 'list.c'; else $(CYGPATH_W) '$(srcdir)/list.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-man1: $(dist_man_MANS)
+ @$(NORMAL_INSTALL)
+ @list1=''; \
+ list2='$(dist_man_MANS)'; \
+ test -n "$(man1dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.1[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man1:
+ @$(NORMAL_UNINSTALL)
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
+
+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) $(MANS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+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-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f ./$(DEPDIR)/xz-args.Po
+ -rm -f ./$(DEPDIR)/xz-coder.Po
+ -rm -f ./$(DEPDIR)/xz-file_io.Po
+ -rm -f ./$(DEPDIR)/xz-hardware.Po
+ -rm -f ./$(DEPDIR)/xz-list.Po
+ -rm -f ./$(DEPDIR)/xz-main.Po
+ -rm -f ./$(DEPDIR)/xz-message.Po
+ -rm -f ./$(DEPDIR)/xz-mytime.Po
+ -rm -f ./$(DEPDIR)/xz-options.Po
+ -rm -f ./$(DEPDIR)/xz-sandbox.Po
+ -rm -f ./$(DEPDIR)/xz-signals.Po
+ -rm -f ./$(DEPDIR)/xz-suffix.Po
+ -rm -f ./$(DEPDIR)/xz-tuklib_exit.Po
+ -rm -f ./$(DEPDIR)/xz-tuklib_mbstr_fw.Po
+ -rm -f ./$(DEPDIR)/xz-tuklib_mbstr_width.Po
+ -rm -f ./$(DEPDIR)/xz-tuklib_open_stdxxx.Po
+ -rm -f ./$(DEPDIR)/xz-tuklib_progname.Po
+ -rm -f ./$(DEPDIR)/xz-util.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-man
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man: install-man1
+
+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)/xz-args.Po
+ -rm -f ./$(DEPDIR)/xz-coder.Po
+ -rm -f ./$(DEPDIR)/xz-file_io.Po
+ -rm -f ./$(DEPDIR)/xz-hardware.Po
+ -rm -f ./$(DEPDIR)/xz-list.Po
+ -rm -f ./$(DEPDIR)/xz-main.Po
+ -rm -f ./$(DEPDIR)/xz-message.Po
+ -rm -f ./$(DEPDIR)/xz-mytime.Po
+ -rm -f ./$(DEPDIR)/xz-options.Po
+ -rm -f ./$(DEPDIR)/xz-sandbox.Po
+ -rm -f ./$(DEPDIR)/xz-signals.Po
+ -rm -f ./$(DEPDIR)/xz-suffix.Po
+ -rm -f ./$(DEPDIR)/xz-tuklib_exit.Po
+ -rm -f ./$(DEPDIR)/xz-tuklib_mbstr_fw.Po
+ -rm -f ./$(DEPDIR)/xz-tuklib_mbstr_width.Po
+ -rm -f ./$(DEPDIR)/xz-tuklib_open_stdxxx.Po
+ -rm -f ./$(DEPDIR)/xz-tuklib_progname.Po
+ -rm -f ./$(DEPDIR)/xz-util.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: uninstall-binPROGRAMS uninstall-man
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
+uninstall-man: uninstall-man1
+
+.MAKE: install-am install-data-am install-exec-am install-strip \
+ uninstall-am
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+ clean-binPROGRAMS clean-generic clean-libtool 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-binPROGRAMS \
+ install-data install-data-am install-data-hook install-dvi \
+ install-dvi-am install-exec install-exec-am install-exec-hook \
+ install-html install-html-am install-info install-info-am \
+ install-man install-man1 install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am uninstall-binPROGRAMS uninstall-hook \
+ uninstall-man uninstall-man1
+
+.PRECIOUS: Makefile
+
+
+# Windows resource compiler support
+.rc.o:
+ $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(xz_CPPFLAGS) $(CPPFLAGS) $(RCFLAGS) -i $< -o $@
+
+install-exec-hook:
+ cd "$(DESTDIR)$(bindir)" && \
+ target=`echo xz | sed '$(transform)'`$(EXEEXT) && \
+ for name in $(xzlinks); do \
+ link=`echo $$name | sed '$(transform)'`$(LN_EXEEXT) && \
+ rm -f "$$link" && \
+ $(LN_S) "$$target" "$$link"; \
+ done
+
+# The installation of translated man pages abuses Automake internals
+# by calling "install-man" with redefined dist_man_MANS and man_MANS.
+# If this breaks some day, don't blame Automake developers.
+install-data-hook:
+ languages= ; \
+ if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+ languages=`ls "$(top_srcdir)/po4a/man"`; \
+ fi; \
+ target=`echo xz | sed '$(transform)'` && \
+ for lang in . $$languages; do \
+ man="$(top_srcdir)/po4a/man/$$lang/xz.1" ; \
+ if test -f "$$man"; then \
+ $(MAKE) dist_man_MANS="$$man" man_MANS= \
+ mandir="$(mandir)/$$lang" install-man; \
+ fi; \
+ man1dir="$(DESTDIR)$(mandir)/$$lang/man1" && \
+ if test -f "$$man1dir/$$target.1"; then ( \
+ cd "$$man1dir" && \
+ for name in $(xzlinks); do \
+ link=`echo $$name | sed '$(transform)'` && \
+ rm -f "$$link.1" && \
+ $(LN_S) "$$target.1" "$$link.1"; \
+ done \
+ ); fi; \
+ done
+
+uninstall-hook:
+ cd "$(DESTDIR)$(bindir)" && \
+ for name in $(xzlinks); do \
+ link=`echo $$name | sed '$(transform)'`$(LN_EXEEXT) && \
+ rm -f "$$link"; \
+ done
+ languages= ; \
+ if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+ languages=`ls "$(top_srcdir)/po4a/man"`; \
+ fi; \
+ for lang in . $$languages; do \
+ for name in xz $(xzlinks); do \
+ name=`echo $$name | sed '$(transform)'` && \
+ rm -f "$(DESTDIR)$(mandir)/$$lang/man1/$$name.1"; \
+ done; \
+ done
+
+# 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/src/xzdec/Makefile.in b/src/xzdec/Makefile.in
new file mode 100644
index 00000000..7d44f9b2
--- /dev/null
+++ b/src/xzdec/Makefile.in
@@ -0,0 +1,970 @@
+# 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_W32_TRUE@am__append_1 = xzdec_w32res.rc
+@COND_GNULIB_TRUE@am__append_2 = $(top_builddir)/lib/libgnu.a
+@COND_W32_TRUE@am__append_3 = lzmadec_w32res.rc
+bin_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2)
+@COND_XZDEC_TRUE@am__append_4 = xzdec
+@COND_LZMADEC_TRUE@am__append_5 = lzmadec
+
+# Create the symlink lzmadec.1->xzdec.1 only if xzdec.1 was installed.
+# This is better than creating a dangling symlink. The correct solution
+# would be to install xzdec.1 as lzmadec.1 but this code is already too
+# complicated so I won't do it. Installing only lzmadec is a bit unusual
+# situation anyway so it's not that important.
+@COND_LZMADEC_TRUE@@COND_XZDEC_TRUE@am__append_6 = lzmadec
+subdir = src/xzdec
+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 =
+@COND_XZDEC_TRUE@am__EXEEXT_1 = xzdec$(EXEEXT)
+@COND_LZMADEC_TRUE@am__EXEEXT_2 = lzmadec$(EXEEXT)
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
+PROGRAMS = $(bin_PROGRAMS)
+am__lzmadec_SOURCES_DIST = xzdec.c ../common/tuklib_progname.c \
+ ../common/tuklib_exit.c lzmadec_w32res.rc
+@COND_W32_TRUE@am__objects_1 = lzmadec_w32res.$(OBJEXT)
+am_lzmadec_OBJECTS = lzmadec-xzdec.$(OBJEXT) \
+ lzmadec-tuklib_progname.$(OBJEXT) \
+ lzmadec-tuklib_exit.$(OBJEXT) $(am__objects_1)
+lzmadec_OBJECTS = $(am_lzmadec_OBJECTS)
+am__DEPENDENCIES_1 =
+am__DEPENDENCIES_2 = $(top_builddir)/src/liblzma/liblzma.la \
+ $(am__append_2) $(am__DEPENDENCIES_1)
+lzmadec_DEPENDENCIES = $(am__DEPENDENCIES_2)
+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 =
+lzmadec_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(lzmadec_LDFLAGS) $(LDFLAGS) -o $@
+am__xzdec_SOURCES_DIST = xzdec.c ../common/tuklib_progname.c \
+ ../common/tuklib_exit.c xzdec_w32res.rc
+@COND_W32_TRUE@am__objects_2 = xzdec_w32res.$(OBJEXT)
+am_xzdec_OBJECTS = xzdec-xzdec.$(OBJEXT) \
+ xzdec-tuklib_progname.$(OBJEXT) xzdec-tuklib_exit.$(OBJEXT) \
+ $(am__objects_2)
+xzdec_OBJECTS = $(am_xzdec_OBJECTS)
+xzdec_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \
+ $(am__append_2) $(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)/lzmadec-tuklib_exit.Po \
+ ./$(DEPDIR)/lzmadec-tuklib_progname.Po \
+ ./$(DEPDIR)/lzmadec-xzdec.Po ./$(DEPDIR)/xzdec-tuklib_exit.Po \
+ ./$(DEPDIR)/xzdec-tuklib_progname.Po \
+ ./$(DEPDIR)/xzdec-xzdec.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 = $(lzmadec_SOURCES) $(xzdec_SOURCES)
+DIST_SOURCES = $(am__lzmadec_SOURCES_DIST) $(am__xzdec_SOURCES_DIST)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) 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; }; \
+ }
+man1dir = $(mandir)/man1
+NROFF = nroff
+MANS = $(dist_man_MANS)
+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 = $(dist_man_MANS) $(srcdir)/Makefile.in \
+ $(top_srcdir)/build-aux/depcomp
+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@
+xzdec_SOURCES = xzdec.c ../common/tuklib_progname.c \
+ ../common/tuklib_exit.c $(am__append_1)
+xzdec_CPPFLAGS = \
+ -DTUKLIB_GETTEXT=0 \
+ -I$(top_srcdir)/src/common \
+ -I$(top_srcdir)/src/liblzma/api \
+ -I$(top_builddir)/lib
+
+xzdec_LDADD = $(top_builddir)/src/liblzma/liblzma.la $(am__append_2) \
+ $(LTLIBINTL)
+lzmadec_SOURCES = xzdec.c ../common/tuklib_progname.c \
+ ../common/tuklib_exit.c $(am__append_3)
+lzmadec_CPPFLAGS = $(xzdec_CPPFLAGS) -DLZMADEC
+lzmadec_LDFLAGS = $(xzdec_LDFLAGS)
+lzmadec_LDADD = $(xzdec_LDADD)
+lzmadecmanlink = $(am__append_6)
+@COND_XZDEC_TRUE@dist_man_MANS = xzdec.1
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj .rc
+$(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 src/xzdec/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/xzdec/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):
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+ @list='$(bin_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
+
+lzmadec$(EXEEXT): $(lzmadec_OBJECTS) $(lzmadec_DEPENDENCIES) $(EXTRA_lzmadec_DEPENDENCIES)
+ @rm -f lzmadec$(EXEEXT)
+ $(AM_V_CCLD)$(lzmadec_LINK) $(lzmadec_OBJECTS) $(lzmadec_LDADD) $(LIBS)
+
+xzdec$(EXEEXT): $(xzdec_OBJECTS) $(xzdec_DEPENDENCIES) $(EXTRA_xzdec_DEPENDENCIES)
+ @rm -f xzdec$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(xzdec_OBJECTS) $(xzdec_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzmadec-tuklib_exit.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzmadec-tuklib_progname.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzmadec-xzdec.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xzdec-tuklib_exit.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xzdec-tuklib_progname.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xzdec-xzdec.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 $@ $<
+
+lzmadec-xzdec.o: xzdec.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmadec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lzmadec-xzdec.o -MD -MP -MF $(DEPDIR)/lzmadec-xzdec.Tpo -c -o lzmadec-xzdec.o `test -f 'xzdec.c' || echo '$(srcdir)/'`xzdec.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lzmadec-xzdec.Tpo $(DEPDIR)/lzmadec-xzdec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xzdec.c' object='lzmadec-xzdec.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmadec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lzmadec-xzdec.o `test -f 'xzdec.c' || echo '$(srcdir)/'`xzdec.c
+
+lzmadec-xzdec.obj: xzdec.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmadec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lzmadec-xzdec.obj -MD -MP -MF $(DEPDIR)/lzmadec-xzdec.Tpo -c -o lzmadec-xzdec.obj `if test -f 'xzdec.c'; then $(CYGPATH_W) 'xzdec.c'; else $(CYGPATH_W) '$(srcdir)/xzdec.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lzmadec-xzdec.Tpo $(DEPDIR)/lzmadec-xzdec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xzdec.c' object='lzmadec-xzdec.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmadec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lzmadec-xzdec.obj `if test -f 'xzdec.c'; then $(CYGPATH_W) 'xzdec.c'; else $(CYGPATH_W) '$(srcdir)/xzdec.c'; fi`
+
+lzmadec-tuklib_progname.o: ../common/tuklib_progname.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmadec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lzmadec-tuklib_progname.o -MD -MP -MF $(DEPDIR)/lzmadec-tuklib_progname.Tpo -c -o lzmadec-tuklib_progname.o `test -f '../common/tuklib_progname.c' || echo '$(srcdir)/'`../common/tuklib_progname.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lzmadec-tuklib_progname.Tpo $(DEPDIR)/lzmadec-tuklib_progname.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_progname.c' object='lzmadec-tuklib_progname.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmadec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lzmadec-tuklib_progname.o `test -f '../common/tuklib_progname.c' || echo '$(srcdir)/'`../common/tuklib_progname.c
+
+lzmadec-tuklib_progname.obj: ../common/tuklib_progname.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmadec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lzmadec-tuklib_progname.obj -MD -MP -MF $(DEPDIR)/lzmadec-tuklib_progname.Tpo -c -o lzmadec-tuklib_progname.obj `if test -f '../common/tuklib_progname.c'; then $(CYGPATH_W) '../common/tuklib_progname.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_progname.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lzmadec-tuklib_progname.Tpo $(DEPDIR)/lzmadec-tuklib_progname.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_progname.c' object='lzmadec-tuklib_progname.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmadec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lzmadec-tuklib_progname.obj `if test -f '../common/tuklib_progname.c'; then $(CYGPATH_W) '../common/tuklib_progname.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_progname.c'; fi`
+
+lzmadec-tuklib_exit.o: ../common/tuklib_exit.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmadec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lzmadec-tuklib_exit.o -MD -MP -MF $(DEPDIR)/lzmadec-tuklib_exit.Tpo -c -o lzmadec-tuklib_exit.o `test -f '../common/tuklib_exit.c' || echo '$(srcdir)/'`../common/tuklib_exit.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lzmadec-tuklib_exit.Tpo $(DEPDIR)/lzmadec-tuklib_exit.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_exit.c' object='lzmadec-tuklib_exit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmadec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lzmadec-tuklib_exit.o `test -f '../common/tuklib_exit.c' || echo '$(srcdir)/'`../common/tuklib_exit.c
+
+lzmadec-tuklib_exit.obj: ../common/tuklib_exit.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmadec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lzmadec-tuklib_exit.obj -MD -MP -MF $(DEPDIR)/lzmadec-tuklib_exit.Tpo -c -o lzmadec-tuklib_exit.obj `if test -f '../common/tuklib_exit.c'; then $(CYGPATH_W) '../common/tuklib_exit.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_exit.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/lzmadec-tuklib_exit.Tpo $(DEPDIR)/lzmadec-tuklib_exit.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_exit.c' object='lzmadec-tuklib_exit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lzmadec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lzmadec-tuklib_exit.obj `if test -f '../common/tuklib_exit.c'; then $(CYGPATH_W) '../common/tuklib_exit.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_exit.c'; fi`
+
+xzdec-xzdec.o: xzdec.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xzdec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xzdec-xzdec.o -MD -MP -MF $(DEPDIR)/xzdec-xzdec.Tpo -c -o xzdec-xzdec.o `test -f 'xzdec.c' || echo '$(srcdir)/'`xzdec.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xzdec-xzdec.Tpo $(DEPDIR)/xzdec-xzdec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xzdec.c' object='xzdec-xzdec.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xzdec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xzdec-xzdec.o `test -f 'xzdec.c' || echo '$(srcdir)/'`xzdec.c
+
+xzdec-xzdec.obj: xzdec.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xzdec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xzdec-xzdec.obj -MD -MP -MF $(DEPDIR)/xzdec-xzdec.Tpo -c -o xzdec-xzdec.obj `if test -f 'xzdec.c'; then $(CYGPATH_W) 'xzdec.c'; else $(CYGPATH_W) '$(srcdir)/xzdec.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xzdec-xzdec.Tpo $(DEPDIR)/xzdec-xzdec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xzdec.c' object='xzdec-xzdec.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xzdec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xzdec-xzdec.obj `if test -f 'xzdec.c'; then $(CYGPATH_W) 'xzdec.c'; else $(CYGPATH_W) '$(srcdir)/xzdec.c'; fi`
+
+xzdec-tuklib_progname.o: ../common/tuklib_progname.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xzdec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xzdec-tuklib_progname.o -MD -MP -MF $(DEPDIR)/xzdec-tuklib_progname.Tpo -c -o xzdec-tuklib_progname.o `test -f '../common/tuklib_progname.c' || echo '$(srcdir)/'`../common/tuklib_progname.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xzdec-tuklib_progname.Tpo $(DEPDIR)/xzdec-tuklib_progname.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_progname.c' object='xzdec-tuklib_progname.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xzdec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xzdec-tuklib_progname.o `test -f '../common/tuklib_progname.c' || echo '$(srcdir)/'`../common/tuklib_progname.c
+
+xzdec-tuklib_progname.obj: ../common/tuklib_progname.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xzdec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xzdec-tuklib_progname.obj -MD -MP -MF $(DEPDIR)/xzdec-tuklib_progname.Tpo -c -o xzdec-tuklib_progname.obj `if test -f '../common/tuklib_progname.c'; then $(CYGPATH_W) '../common/tuklib_progname.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_progname.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xzdec-tuklib_progname.Tpo $(DEPDIR)/xzdec-tuklib_progname.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_progname.c' object='xzdec-tuklib_progname.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xzdec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xzdec-tuklib_progname.obj `if test -f '../common/tuklib_progname.c'; then $(CYGPATH_W) '../common/tuklib_progname.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_progname.c'; fi`
+
+xzdec-tuklib_exit.o: ../common/tuklib_exit.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xzdec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xzdec-tuklib_exit.o -MD -MP -MF $(DEPDIR)/xzdec-tuklib_exit.Tpo -c -o xzdec-tuklib_exit.o `test -f '../common/tuklib_exit.c' || echo '$(srcdir)/'`../common/tuklib_exit.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xzdec-tuklib_exit.Tpo $(DEPDIR)/xzdec-tuklib_exit.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_exit.c' object='xzdec-tuklib_exit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xzdec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xzdec-tuklib_exit.o `test -f '../common/tuklib_exit.c' || echo '$(srcdir)/'`../common/tuklib_exit.c
+
+xzdec-tuklib_exit.obj: ../common/tuklib_exit.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xzdec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xzdec-tuklib_exit.obj -MD -MP -MF $(DEPDIR)/xzdec-tuklib_exit.Tpo -c -o xzdec-tuklib_exit.obj `if test -f '../common/tuklib_exit.c'; then $(CYGPATH_W) '../common/tuklib_exit.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_exit.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/xzdec-tuklib_exit.Tpo $(DEPDIR)/xzdec-tuklib_exit.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../common/tuklib_exit.c' object='xzdec-tuklib_exit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(xzdec_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xzdec-tuklib_exit.obj `if test -f '../common/tuklib_exit.c'; then $(CYGPATH_W) '../common/tuklib_exit.c'; else $(CYGPATH_W) '$(srcdir)/../common/tuklib_exit.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-man1: $(dist_man_MANS)
+ @$(NORMAL_INSTALL)
+ @list1=''; \
+ list2='$(dist_man_MANS)'; \
+ test -n "$(man1dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.1[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man1:
+ @$(NORMAL_UNINSTALL)
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
+
+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) $(MANS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+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."
+@COND_XZDEC_FALSE@install-data-hook:
+@COND_XZDEC_FALSE@uninstall-hook:
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f ./$(DEPDIR)/lzmadec-tuklib_exit.Po
+ -rm -f ./$(DEPDIR)/lzmadec-tuklib_progname.Po
+ -rm -f ./$(DEPDIR)/lzmadec-xzdec.Po
+ -rm -f ./$(DEPDIR)/xzdec-tuklib_exit.Po
+ -rm -f ./$(DEPDIR)/xzdec-tuklib_progname.Po
+ -rm -f ./$(DEPDIR)/xzdec-xzdec.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-man
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man: install-man1
+
+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)/lzmadec-tuklib_exit.Po
+ -rm -f ./$(DEPDIR)/lzmadec-tuklib_progname.Po
+ -rm -f ./$(DEPDIR)/lzmadec-xzdec.Po
+ -rm -f ./$(DEPDIR)/xzdec-tuklib_exit.Po
+ -rm -f ./$(DEPDIR)/xzdec-tuklib_progname.Po
+ -rm -f ./$(DEPDIR)/xzdec-xzdec.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: uninstall-binPROGRAMS uninstall-man
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
+uninstall-man: uninstall-man1
+
+.MAKE: install-am install-data-am install-strip uninstall-am
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
+ clean-binPROGRAMS clean-generic clean-libtool 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-binPROGRAMS \
+ install-data install-data-am install-data-hook install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-man1 install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am uninstall-binPROGRAMS uninstall-hook \
+ uninstall-man uninstall-man1
+
+.PRECIOUS: Makefile
+
+
+# Windows resource compiler support. It's fine to use xz_CPPFLAGS
+# also for lzmadec.
+.rc.o:
+ $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(xzdec_CPPFLAGS) $(CPPFLAGS) $(RCFLAGS) -i $< -o $@
+
+# The installation of translated man pages abuses Automake internals
+# by calling "install-man" with redefined dist_man_MANS and man_MANS.
+# If this breaks some day, don't blame Automake developers.
+@COND_XZDEC_TRUE@install-data-hook:
+@COND_XZDEC_TRUE@ languages= ; \
+@COND_XZDEC_TRUE@ if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+@COND_XZDEC_TRUE@ languages=`ls "$(top_srcdir)/po4a/man"`; \
+@COND_XZDEC_TRUE@ fi; \
+@COND_XZDEC_TRUE@ target=`echo xzdec | sed '$(transform)'` && \
+@COND_XZDEC_TRUE@ link=`echo lzmadec | sed '$(transform)'` && \
+@COND_XZDEC_TRUE@ for lang in . $$languages; do \
+@COND_XZDEC_TRUE@ man="$(top_srcdir)/po4a/man/$$lang/xzdec.1" ; \
+@COND_XZDEC_TRUE@ if test -f "$$man"; then \
+@COND_XZDEC_TRUE@ $(MAKE) dist_man_MANS="$$man" man_MANS= \
+@COND_XZDEC_TRUE@ mandir="$(mandir)/$$lang" install-man; \
+@COND_XZDEC_TRUE@ fi; \
+@COND_XZDEC_TRUE@ man1dir="$(DESTDIR)$(mandir)/$$lang/man1" && \
+@COND_XZDEC_TRUE@ if test -f "$$man1dir/$$target.1"; then \
+@COND_XZDEC_TRUE@ if test -n "$(lzmadecmanlink)"; then ( \
+@COND_XZDEC_TRUE@ cd "$$man1dir" && \
+@COND_XZDEC_TRUE@ rm -f "$$link.1" && \
+@COND_XZDEC_TRUE@ $(LN_S) "$$target.1" "$$link.1" \
+@COND_XZDEC_TRUE@ ); fi; \
+@COND_XZDEC_TRUE@ fi; \
+@COND_XZDEC_TRUE@ done
+
+@COND_XZDEC_TRUE@uninstall-hook:
+@COND_XZDEC_TRUE@ languages= ; \
+@COND_XZDEC_TRUE@ if test "$(USE_NLS)" = yes && test -d "$(top_srcdir)/po4a/man"; then \
+@COND_XZDEC_TRUE@ languages=`ls "$(top_srcdir)/po4a/man"`; \
+@COND_XZDEC_TRUE@ fi; \
+@COND_XZDEC_TRUE@ for lang in . $$languages; do \
+@COND_XZDEC_TRUE@ for name in xzdec $(lzmadecmanlink); do \
+@COND_XZDEC_TRUE@ name=`echo $$name | sed '$(transform)'` && \
+@COND_XZDEC_TRUE@ rm -f "$(DESTDIR)$(mandir)/$$lang/man1/$$name.1"; \
+@COND_XZDEC_TRUE@ done; \
+@COND_XZDEC_TRUE@ done
+
+# 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/tests/Makefile.in b/tests/Makefile.in
new file mode 100644
index 00000000..8f5c1625
--- /dev/null
+++ b/tests/Makefile.in
@@ -0,0 +1,1381 @@
+# 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@
+check_PROGRAMS = create_compress_files$(EXEEXT) test_check$(EXEEXT) \
+ test_hardware$(EXEEXT) test_stream_flags$(EXEEXT) \
+ test_filter_flags$(EXEEXT) test_filter_str$(EXEEXT) \
+ test_block_header$(EXEEXT) test_index$(EXEEXT) \
+ test_index_hash$(EXEEXT) test_bcj_exact_size$(EXEEXT) \
+ test_memlimit$(EXEEXT) test_lzip_decoder$(EXEEXT) \
+ test_vli$(EXEEXT) $(am__EXEEXT_1)
+TESTS = test_check$(EXEEXT) test_hardware$(EXEEXT) \
+ test_stream_flags$(EXEEXT) test_filter_flags$(EXEEXT) \
+ test_filter_str$(EXEEXT) test_block_header$(EXEEXT) \
+ test_index$(EXEEXT) test_index_hash$(EXEEXT) \
+ test_bcj_exact_size$(EXEEXT) test_memlimit$(EXEEXT) \
+ test_lzip_decoder$(EXEEXT) test_vli$(EXEEXT) test_files.sh \
+ test_suffix.sh test_compress_prepared_bcj_sparc \
+ test_compress_prepared_bcj_x86 test_compress_generated_abc \
+ test_compress_generated_random test_compress_generated_text \
+ $(am__EXEEXT_1) $(am__append_3)
+@COND_MICROLZMA_TRUE@am__append_1 = test_microlzma
+@COND_MICROLZMA_TRUE@am__append_2 = test_microlzma
+@COND_SCRIPTS_TRUE@am__append_3 = test_scripts.sh
+subdir = tests
+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 =
+@COND_MICROLZMA_TRUE@am__EXEEXT_1 = test_microlzma$(EXEEXT)
+create_compress_files_SOURCES = create_compress_files.c
+create_compress_files_OBJECTS = create_compress_files.$(OBJEXT)
+create_compress_files_LDADD = $(LDADD)
+am__DEPENDENCIES_1 =
+create_compress_files_DEPENDENCIES = \
+ $(top_builddir)/src/liblzma/liblzma.la $(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 =
+test_bcj_exact_size_SOURCES = test_bcj_exact_size.c
+test_bcj_exact_size_OBJECTS = test_bcj_exact_size.$(OBJEXT)
+test_bcj_exact_size_LDADD = $(LDADD)
+test_bcj_exact_size_DEPENDENCIES = \
+ $(top_builddir)/src/liblzma/liblzma.la $(am__DEPENDENCIES_1)
+test_block_header_SOURCES = test_block_header.c
+test_block_header_OBJECTS = test_block_header.$(OBJEXT)
+test_block_header_LDADD = $(LDADD)
+test_block_header_DEPENDENCIES = \
+ $(top_builddir)/src/liblzma/liblzma.la $(am__DEPENDENCIES_1)
+test_check_SOURCES = test_check.c
+test_check_OBJECTS = test_check.$(OBJEXT)
+test_check_LDADD = $(LDADD)
+test_check_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \
+ $(am__DEPENDENCIES_1)
+test_filter_flags_SOURCES = test_filter_flags.c
+test_filter_flags_OBJECTS = test_filter_flags.$(OBJEXT)
+test_filter_flags_LDADD = $(LDADD)
+test_filter_flags_DEPENDENCIES = \
+ $(top_builddir)/src/liblzma/liblzma.la $(am__DEPENDENCIES_1)
+test_filter_str_SOURCES = test_filter_str.c
+test_filter_str_OBJECTS = test_filter_str.$(OBJEXT)
+test_filter_str_LDADD = $(LDADD)
+test_filter_str_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \
+ $(am__DEPENDENCIES_1)
+test_hardware_SOURCES = test_hardware.c
+test_hardware_OBJECTS = test_hardware.$(OBJEXT)
+test_hardware_LDADD = $(LDADD)
+test_hardware_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \
+ $(am__DEPENDENCIES_1)
+test_index_SOURCES = test_index.c
+test_index_OBJECTS = test_index.$(OBJEXT)
+test_index_LDADD = $(LDADD)
+test_index_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \
+ $(am__DEPENDENCIES_1)
+test_index_hash_SOURCES = test_index_hash.c
+test_index_hash_OBJECTS = test_index_hash.$(OBJEXT)
+test_index_hash_LDADD = $(LDADD)
+test_index_hash_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \
+ $(am__DEPENDENCIES_1)
+test_lzip_decoder_SOURCES = test_lzip_decoder.c
+test_lzip_decoder_OBJECTS = test_lzip_decoder.$(OBJEXT)
+test_lzip_decoder_LDADD = $(LDADD)
+test_lzip_decoder_DEPENDENCIES = \
+ $(top_builddir)/src/liblzma/liblzma.la $(am__DEPENDENCIES_1)
+test_memlimit_SOURCES = test_memlimit.c
+test_memlimit_OBJECTS = test_memlimit.$(OBJEXT)
+test_memlimit_LDADD = $(LDADD)
+test_memlimit_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \
+ $(am__DEPENDENCIES_1)
+test_microlzma_SOURCES = test_microlzma.c
+test_microlzma_OBJECTS = test_microlzma.$(OBJEXT)
+test_microlzma_LDADD = $(LDADD)
+test_microlzma_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \
+ $(am__DEPENDENCIES_1)
+test_stream_flags_SOURCES = test_stream_flags.c
+test_stream_flags_OBJECTS = test_stream_flags.$(OBJEXT)
+test_stream_flags_LDADD = $(LDADD)
+test_stream_flags_DEPENDENCIES = \
+ $(top_builddir)/src/liblzma/liblzma.la $(am__DEPENDENCIES_1)
+test_vli_SOURCES = test_vli.c
+test_vli_OBJECTS = test_vli.$(OBJEXT)
+test_vli_LDADD = $(LDADD)
+test_vli_DEPENDENCIES = $(top_builddir)/src/liblzma/liblzma.la \
+ $(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)/create_compress_files.Po \
+ ./$(DEPDIR)/test_bcj_exact_size.Po \
+ ./$(DEPDIR)/test_block_header.Po ./$(DEPDIR)/test_check.Po \
+ ./$(DEPDIR)/test_filter_flags.Po \
+ ./$(DEPDIR)/test_filter_str.Po ./$(DEPDIR)/test_hardware.Po \
+ ./$(DEPDIR)/test_index.Po ./$(DEPDIR)/test_index_hash.Po \
+ ./$(DEPDIR)/test_lzip_decoder.Po ./$(DEPDIR)/test_memlimit.Po \
+ ./$(DEPDIR)/test_microlzma.Po ./$(DEPDIR)/test_stream_flags.Po \
+ ./$(DEPDIR)/test_vli.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 = create_compress_files.c test_bcj_exact_size.c \
+ test_block_header.c test_check.c test_filter_flags.c \
+ test_filter_str.c test_hardware.c test_index.c \
+ test_index_hash.c test_lzip_decoder.c test_memlimit.c \
+ test_microlzma.c test_stream_flags.c test_vli.c
+DIST_SOURCES = create_compress_files.c test_bcj_exact_size.c \
+ test_block_header.c test_check.c test_filter_flags.c \
+ test_filter_str.c test_hardware.c test_index.c \
+ test_index_hash.c test_lzip_decoder.c test_memlimit.c \
+ test_microlzma.c test_stream_flags.c test_vli.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__tty_colors_dummy = \
+ mgn= red= grn= lgn= blu= brg= std=; \
+ am__color_tests=no
+am__tty_colors = { \
+ $(am__tty_colors_dummy); \
+ if test "X$(AM_COLOR_TESTS)" = Xno; then \
+ am__color_tests=no; \
+ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+ am__color_tests=yes; \
+ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+ am__color_tests=yes; \
+ fi; \
+ if test $$am__color_tests = yes; then \
+ red=''; \
+ grn=''; \
+ lgn=''; \
+ blu=''; \
+ mgn=''; \
+ brg=''; \
+ std=''; \
+ fi; \
+}
+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__recheck_rx = ^[ ]*:recheck:[ ]*
+am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
+am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+ recheck = 1; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ { \
+ if ((getline line2 < ($$0 ".log")) < 0) \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+ { \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+ { \
+ break; \
+ } \
+ }; \
+ if (recheck) \
+ print $$0; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+ print "fatal: making $@: " msg | "cat >&2"; \
+ exit 1; \
+} \
+function rst_section(header) \
+{ \
+ print header; \
+ len = length(header); \
+ for (i = 1; i <= len; i = i + 1) \
+ printf "="; \
+ printf "\n\n"; \
+} \
+{ \
+ copy_in_global_log = 1; \
+ global_test_result = "RUN"; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".trs"); \
+ if (line ~ /$(am__global_test_result_rx)/) \
+ { \
+ sub("$(am__global_test_result_rx)", "", line); \
+ sub("[ ]*$$", "", line); \
+ global_test_result = line; \
+ } \
+ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+ copy_in_global_log = 0; \
+ }; \
+ if (copy_in_global_log) \
+ { \
+ rst_section(global_test_result ": " $$0); \
+ while ((rc = (getline line < ($$0 ".log"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".log"); \
+ print line; \
+ }; \
+ printf "\n"; \
+ }; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+ --color-tests "$$am__color_tests" \
+ --enable-hard-errors "$$am__enable_hard_errors" \
+ --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test. Creates the
+# directory for the log if needed. Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log. Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup); \
+$(am__vpath_adj_setup) $(am__vpath_adj) \
+$(am__tty_colors); \
+srcdir=$(srcdir); export srcdir; \
+case "$@" in \
+ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
+ *) am__odir=.;; \
+esac; \
+test "x$$am__odir" = x"." || test -d "$$am__odir" \
+ || $(MKDIR_P) "$$am__odir" || exit $$?; \
+if test -f "./$$f"; then dir=./; \
+elif test -f "$$f"; then dir=; \
+else dir="$(srcdir)/"; fi; \
+tst=$$dir$$f; log='$@'; \
+if test -n '$(DISABLE_HARD_ERRORS)'; then \
+ am__enable_hard_errors=no; \
+else \
+ am__enable_hard_errors=yes; \
+fi; \
+case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
+ am__expect_failure=yes;; \
+ *) \
+ am__expect_failure=no;; \
+esac; \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed). The result is saved in the shell variable
+# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+ bases='$(TEST_LOGS)'; \
+ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+ bases=`echo $$bases`
+AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)'
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+ case '$@' in \
+ */*) \
+ case '$*' in \
+ */*) b='$*';; \
+ *) b=`echo '$@' | sed 's/\.log$$//'`; \
+ esac;; \
+ *) \
+ b='$*';; \
+ esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+ $(TEST_LOG_FLAGS)
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+ $(top_srcdir)/build-aux/depcomp \
+ $(top_srcdir)/build-aux/test-driver
+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 = \
+ files \
+ ossfuzz \
+ tuktest.h \
+ tests.h \
+ test_files.sh \
+ test_compress.sh \
+ test_compress_prepared_bcj_sparc \
+ test_compress_prepared_bcj_x86 \
+ test_compress_generated_abc \
+ test_compress_generated_random \
+ test_compress_generated_text \
+ test_scripts.sh \
+ test_suffix.sh \
+ bcj_test.c \
+ compress_prepared_bcj_sparc \
+ compress_prepared_bcj_x86 \
+ xzgrep_expected_output
+
+AM_CPPFLAGS = \
+ -I$(top_srcdir)/src/common \
+ -I$(top_srcdir)/src/liblzma/api \
+ -I$(top_srcdir)/src/liblzma
+
+LDADD = $(top_builddir)/src/liblzma/liblzma.la $(LTLIBINTL)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
+$(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 tests/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign tests/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-checkPROGRAMS:
+ @list='$(check_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
+
+create_compress_files$(EXEEXT): $(create_compress_files_OBJECTS) $(create_compress_files_DEPENDENCIES) $(EXTRA_create_compress_files_DEPENDENCIES)
+ @rm -f create_compress_files$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(create_compress_files_OBJECTS) $(create_compress_files_LDADD) $(LIBS)
+
+test_bcj_exact_size$(EXEEXT): $(test_bcj_exact_size_OBJECTS) $(test_bcj_exact_size_DEPENDENCIES) $(EXTRA_test_bcj_exact_size_DEPENDENCIES)
+ @rm -f test_bcj_exact_size$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_bcj_exact_size_OBJECTS) $(test_bcj_exact_size_LDADD) $(LIBS)
+
+test_block_header$(EXEEXT): $(test_block_header_OBJECTS) $(test_block_header_DEPENDENCIES) $(EXTRA_test_block_header_DEPENDENCIES)
+ @rm -f test_block_header$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_block_header_OBJECTS) $(test_block_header_LDADD) $(LIBS)
+
+test_check$(EXEEXT): $(test_check_OBJECTS) $(test_check_DEPENDENCIES) $(EXTRA_test_check_DEPENDENCIES)
+ @rm -f test_check$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_check_OBJECTS) $(test_check_LDADD) $(LIBS)
+
+test_filter_flags$(EXEEXT): $(test_filter_flags_OBJECTS) $(test_filter_flags_DEPENDENCIES) $(EXTRA_test_filter_flags_DEPENDENCIES)
+ @rm -f test_filter_flags$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_filter_flags_OBJECTS) $(test_filter_flags_LDADD) $(LIBS)
+
+test_filter_str$(EXEEXT): $(test_filter_str_OBJECTS) $(test_filter_str_DEPENDENCIES) $(EXTRA_test_filter_str_DEPENDENCIES)
+ @rm -f test_filter_str$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_filter_str_OBJECTS) $(test_filter_str_LDADD) $(LIBS)
+
+test_hardware$(EXEEXT): $(test_hardware_OBJECTS) $(test_hardware_DEPENDENCIES) $(EXTRA_test_hardware_DEPENDENCIES)
+ @rm -f test_hardware$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_hardware_OBJECTS) $(test_hardware_LDADD) $(LIBS)
+
+test_index$(EXEEXT): $(test_index_OBJECTS) $(test_index_DEPENDENCIES) $(EXTRA_test_index_DEPENDENCIES)
+ @rm -f test_index$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_index_OBJECTS) $(test_index_LDADD) $(LIBS)
+
+test_index_hash$(EXEEXT): $(test_index_hash_OBJECTS) $(test_index_hash_DEPENDENCIES) $(EXTRA_test_index_hash_DEPENDENCIES)
+ @rm -f test_index_hash$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_index_hash_OBJECTS) $(test_index_hash_LDADD) $(LIBS)
+
+test_lzip_decoder$(EXEEXT): $(test_lzip_decoder_OBJECTS) $(test_lzip_decoder_DEPENDENCIES) $(EXTRA_test_lzip_decoder_DEPENDENCIES)
+ @rm -f test_lzip_decoder$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_lzip_decoder_OBJECTS) $(test_lzip_decoder_LDADD) $(LIBS)
+
+test_memlimit$(EXEEXT): $(test_memlimit_OBJECTS) $(test_memlimit_DEPENDENCIES) $(EXTRA_test_memlimit_DEPENDENCIES)
+ @rm -f test_memlimit$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_memlimit_OBJECTS) $(test_memlimit_LDADD) $(LIBS)
+
+test_microlzma$(EXEEXT): $(test_microlzma_OBJECTS) $(test_microlzma_DEPENDENCIES) $(EXTRA_test_microlzma_DEPENDENCIES)
+ @rm -f test_microlzma$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_microlzma_OBJECTS) $(test_microlzma_LDADD) $(LIBS)
+
+test_stream_flags$(EXEEXT): $(test_stream_flags_OBJECTS) $(test_stream_flags_DEPENDENCIES) $(EXTRA_test_stream_flags_DEPENDENCIES)
+ @rm -f test_stream_flags$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_stream_flags_OBJECTS) $(test_stream_flags_LDADD) $(LIBS)
+
+test_vli$(EXEEXT): $(test_vli_OBJECTS) $(test_vli_DEPENDENCIES) $(EXTRA_test_vli_DEPENDENCIES)
+ @rm -f test_vli$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_vli_OBJECTS) $(test_vli_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/create_compress_files.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_bcj_exact_size.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_block_header.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_check.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_filter_flags.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_filter_str.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_hardware.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_index.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_index_hash.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_lzip_decoder.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_memlimit.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_microlzma.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_stream_flags.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_vli.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
+
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+ rm -f $< $@
+ $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+ @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+ @$(am__set_TESTS_bases); \
+ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+ redo_bases=`for i in $$bases; do \
+ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+ done`; \
+ if test -n "$$redo_bases"; then \
+ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+ if $(am__make_dryrun); then :; else \
+ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+ fi; \
+ fi; \
+ if test -n "$$am__remaking_logs"; then \
+ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+ "recursion detected" >&2; \
+ elif test -n "$$redo_logs"; then \
+ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+ fi; \
+ if $(am__make_dryrun); then :; else \
+ st=0; \
+ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+ for i in $$redo_bases; do \
+ test -f $$i.trs && test -r $$i.trs \
+ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+ test -f $$i.log && test -r $$i.log \
+ || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+ done; \
+ test $$st -eq 0 || exit 1; \
+ fi
+ @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+ ws='[ ]'; \
+ results=`for b in $$bases; do echo $$b.trs; done`; \
+ test -n "$$results" || results=/dev/null; \
+ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
+ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
+ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
+ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
+ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+ if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+ success=true; \
+ else \
+ success=false; \
+ fi; \
+ br='==================='; br=$$br$$br$$br$$br; \
+ result_count () \
+ { \
+ if test x"$$1" = x"--maybe-color"; then \
+ maybe_colorize=yes; \
+ elif test x"$$1" = x"--no-color"; then \
+ maybe_colorize=no; \
+ else \
+ echo "$@: invalid 'result_count' usage" >&2; exit 4; \
+ fi; \
+ shift; \
+ desc=$$1 count=$$2; \
+ if test $$maybe_colorize = yes && test $$count -gt 0; then \
+ color_start=$$3 color_end=$$std; \
+ else \
+ color_start= color_end=; \
+ fi; \
+ echo "$${color_start}# $$desc $$count$${color_end}"; \
+ }; \
+ create_testsuite_report () \
+ { \
+ result_count $$1 "TOTAL:" $$all "$$brg"; \
+ result_count $$1 "PASS: " $$pass "$$grn"; \
+ result_count $$1 "SKIP: " $$skip "$$blu"; \
+ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+ result_count $$1 "FAIL: " $$fail "$$red"; \
+ result_count $$1 "XPASS:" $$xpass "$$red"; \
+ result_count $$1 "ERROR:" $$error "$$mgn"; \
+ }; \
+ { \
+ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
+ $(am__rst_title); \
+ create_testsuite_report --no-color; \
+ echo; \
+ echo ".. contents:: :depth: 2"; \
+ echo; \
+ for b in $$bases; do echo $$b; done \
+ | $(am__create_global_log); \
+ } >$(TEST_SUITE_LOG).tmp || exit 1; \
+ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
+ if $$success; then \
+ col="$$grn"; \
+ else \
+ col="$$red"; \
+ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
+ fi; \
+ echo "$${col}$$br$${std}"; \
+ echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \
+ echo "$${col}$$br$${std}"; \
+ create_testsuite_report --maybe-color; \
+ echo "$$col$$br$$std"; \
+ if $$success; then :; else \
+ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
+ if test -n "$(PACKAGE_BUGREPORT)"; then \
+ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+ fi; \
+ echo "$$col$$br$$std"; \
+ fi; \
+ $$success || exit 1
+
+check-TESTS: $(check_PROGRAMS)
+ @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
+ @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+ exit $$?;
+recheck: all $(check_PROGRAMS)
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ bases=`for i in $$bases; do echo $$i; done \
+ | $(am__list_recheck_tests)` || exit 1; \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ log_list=`echo $$log_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+ am__force_recheck=am--force-recheck \
+ TEST_LOGS="$$log_list"; \
+ exit $$?
+test_check.log: test_check$(EXEEXT)
+ @p='test_check$(EXEEXT)'; \
+ b='test_check'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_hardware.log: test_hardware$(EXEEXT)
+ @p='test_hardware$(EXEEXT)'; \
+ b='test_hardware'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_stream_flags.log: test_stream_flags$(EXEEXT)
+ @p='test_stream_flags$(EXEEXT)'; \
+ b='test_stream_flags'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_filter_flags.log: test_filter_flags$(EXEEXT)
+ @p='test_filter_flags$(EXEEXT)'; \
+ b='test_filter_flags'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_filter_str.log: test_filter_str$(EXEEXT)
+ @p='test_filter_str$(EXEEXT)'; \
+ b='test_filter_str'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_block_header.log: test_block_header$(EXEEXT)
+ @p='test_block_header$(EXEEXT)'; \
+ b='test_block_header'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_index.log: test_index$(EXEEXT)
+ @p='test_index$(EXEEXT)'; \
+ b='test_index'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_index_hash.log: test_index_hash$(EXEEXT)
+ @p='test_index_hash$(EXEEXT)'; \
+ b='test_index_hash'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_bcj_exact_size.log: test_bcj_exact_size$(EXEEXT)
+ @p='test_bcj_exact_size$(EXEEXT)'; \
+ b='test_bcj_exact_size'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_memlimit.log: test_memlimit$(EXEEXT)
+ @p='test_memlimit$(EXEEXT)'; \
+ b='test_memlimit'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_lzip_decoder.log: test_lzip_decoder$(EXEEXT)
+ @p='test_lzip_decoder$(EXEEXT)'; \
+ b='test_lzip_decoder'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_vli.log: test_vli$(EXEEXT)
+ @p='test_vli$(EXEEXT)'; \
+ b='test_vli'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_files.sh.log: test_files.sh
+ @p='test_files.sh'; \
+ b='test_files.sh'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_suffix.sh.log: test_suffix.sh
+ @p='test_suffix.sh'; \
+ b='test_suffix.sh'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_compress_prepared_bcj_sparc.log: test_compress_prepared_bcj_sparc
+ @p='test_compress_prepared_bcj_sparc'; \
+ b='test_compress_prepared_bcj_sparc'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_compress_prepared_bcj_x86.log: test_compress_prepared_bcj_x86
+ @p='test_compress_prepared_bcj_x86'; \
+ b='test_compress_prepared_bcj_x86'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_compress_generated_abc.log: test_compress_generated_abc
+ @p='test_compress_generated_abc'; \
+ b='test_compress_generated_abc'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_compress_generated_random.log: test_compress_generated_random
+ @p='test_compress_generated_random'; \
+ b='test_compress_generated_random'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_compress_generated_text.log: test_compress_generated_text
+ @p='test_compress_generated_text'; \
+ b='test_compress_generated_text'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_microlzma.log: test_microlzma$(EXEEXT)
+ @p='test_microlzma$(EXEEXT)'; \
+ b='test_microlzma'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+test_scripts.sh.log: test_scripts.sh
+ @p='test_scripts.sh'; \
+ b='test_scripts.sh'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+ @p='$<'; \
+ $(am__set_b); \
+ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@ @p='$<'; \
+@am__EXEEXT_TRUE@ $(am__set_b); \
+@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
+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
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile
+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:
+ -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+ -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+ -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+
+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-checkPROGRAMS clean-generic clean-libtool clean-local \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -f ./$(DEPDIR)/create_compress_files.Po
+ -rm -f ./$(DEPDIR)/test_bcj_exact_size.Po
+ -rm -f ./$(DEPDIR)/test_block_header.Po
+ -rm -f ./$(DEPDIR)/test_check.Po
+ -rm -f ./$(DEPDIR)/test_filter_flags.Po
+ -rm -f ./$(DEPDIR)/test_filter_str.Po
+ -rm -f ./$(DEPDIR)/test_hardware.Po
+ -rm -f ./$(DEPDIR)/test_index.Po
+ -rm -f ./$(DEPDIR)/test_index_hash.Po
+ -rm -f ./$(DEPDIR)/test_lzip_decoder.Po
+ -rm -f ./$(DEPDIR)/test_memlimit.Po
+ -rm -f ./$(DEPDIR)/test_microlzma.Po
+ -rm -f ./$(DEPDIR)/test_stream_flags.Po
+ -rm -f ./$(DEPDIR)/test_vli.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)/create_compress_files.Po
+ -rm -f ./$(DEPDIR)/test_bcj_exact_size.Po
+ -rm -f ./$(DEPDIR)/test_block_header.Po
+ -rm -f ./$(DEPDIR)/test_check.Po
+ -rm -f ./$(DEPDIR)/test_filter_flags.Po
+ -rm -f ./$(DEPDIR)/test_filter_str.Po
+ -rm -f ./$(DEPDIR)/test_hardware.Po
+ -rm -f ./$(DEPDIR)/test_index.Po
+ -rm -f ./$(DEPDIR)/test_index_hash.Po
+ -rm -f ./$(DEPDIR)/test_lzip_decoder.Po
+ -rm -f ./$(DEPDIR)/test_memlimit.Po
+ -rm -f ./$(DEPDIR)/test_microlzma.Po
+ -rm -f ./$(DEPDIR)/test_stream_flags.Po
+ -rm -f ./$(DEPDIR)/test_vli.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: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \
+ check-am clean clean-checkPROGRAMS clean-generic clean-libtool \
+ clean-local 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 recheck tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+clean-local:
+ -rm -f compress_generated_* \
+ xzgrep_test_output xzgrep_test_1.xz xzgrep_test_2.xz
+
+# 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/tests/code_coverage.sh b/tests/code_coverage.sh
deleted file mode 100755
index b2e06a6a..00000000
--- a/tests/code_coverage.sh
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/sh
-# SPDX-License-Identifier: 0BSD
-
-###############################################################################
-#
-# This builds xz with special CFLAGS for measuring code coverage and
-# uses lcov and genhtml to create coverage reports.
-#
-# The current directory is used as the build directory so out-of-tree
-# builds are possible. The coverage reports are written to the directory
-# "coverage" under the current directory.
-#
-# Any options passed to this script are passed to "make" so to get
-# faster builds use, for example, "-j4" as an argument to this script.
-#
-# Author: Jia Tan
-#
-###############################################################################
-
-set -e
-
-COVERAGE_DIR="coverage"
-
-# Test if lcov is installed
-if ! command -v lcov > /dev/null
-then
- echo "Error: lcov not installed"
- exit 1
-fi
-
-# Test if genhtml is installed
-if ! command -v genhtml > /dev/null
-then
- echo "Error: genhtml not installed"
- exit 1
-fi
-
-top_srcdir=$(cd -- "$(dirname -- "$0")" && cd .. && pwd)
-
-# Run the autogen.sh script if the configure script has not been generated
-if ! test -f "$top_srcdir/configure"
-then
- ( cd "$top_srcdir" && ./autogen.sh )
-fi
-
-# Execute the configure script if the Makefile is not present
-if ! test -f "Makefile"
-then
- "$top_srcdir/configure" \
- --disable-xzdec \
- --disable-lzmadec \
- --disable-lzmainfo \
- --disable-shared \
- --enable-silent-rules \
- CFLAGS="$CFLAGS --coverage --no-inline -O0"
-fi
-
-# Run the tests
-make "$@" check
-
-# Re-create the coverage directory
-rm -rf "$COVERAGE_DIR"
-mkdir -p "$COVERAGE_DIR/liblzma"
-mkdir -p "$COVERAGE_DIR/xz"
-
-# Run lcov with src/liblzma as the input directory and write the
-# results out to the coverage directory
-lcov -c -d "src/liblzma" -o "$COVERAGE_DIR/liblzma/liblzma.cov"
-lcov -c -d "src/xz" -o "$COVERAGE_DIR/xz/xz.cov"
-
-# Generate the reports
-genhtml "$COVERAGE_DIR/liblzma/liblzma.cov" -o "$COVERAGE_DIR/liblzma"
-genhtml "$COVERAGE_DIR/xz/xz.cov" -o "$COVERAGE_DIR/xz"
-
-echo "Success! See:"
-echo "file://$PWD/$COVERAGE_DIR/liblzma/index.html"
-echo "file://$PWD/$COVERAGE_DIR/xz/index.html"